PREME/G/MU344021

05026585987111311371777063083389776352514746940196402789237690207073461042180317985122842912906212617961954406982268345568479644064870705889134438584777820751744452811020464674237266182985451921737159201666285603321354340424757322613111766350537901342616346244720717244505317652465663040875003385507476833584372406065995040465586514784305936078974921682082508107796625224802724465875382218001266899571538409634207103144232956455434813747035683585147995635873074579176015449520730934708680808601567233405237750604607793511823519295635434131587925649128840727594020682868662122407029013583163077108128196666579026145920667551876474098026517376881525522884379838900027700786695559711806238191346259046590714845262553444567461262938914298732517233451909512747200931722837834794334079542875482006068933453576408688329695527145993783156420775744998173839374582634669324165800517182885337457771967113215342447968853146997589937396486245047488627452511553746718946573180275985935331031847801408458983495855072797349579638757637585855017809806854927346986584595250711451415425460768256155584685933264837684857002167819126782010041931229027703383887906463627235332935516990058963829961488296241931769510847398889351961228641922405175559926062011666209856023215699504503320775752551953776150943225295284252887455696204938413192034843339927336532261109013363128327859462311439069999034504035909732305832667855757250456411766427339609131892754527533773536916509294855648043337433004844528796320976611585010847137488551629122501913996481801503556118263721628292442028362938062874924761572704355247621542826860806576765123987790712023698469709466276678409121132839738304226264801590584268257683138821065112394571950550479990779923038538866354477222444973918107265821519456774947031669815367416194781871204853538651248067618780920158684669652634129245805344829865953071222221237568533202400705387988969353020708090785080513047292799471045703791503073099084506625726086170007586537044566597097692945025543011435355275020652649821763136617887647478263371339751471023582679085708017443606762453693615194675719895328361338937561206887273669235115136043160525879129327041566134315702087029406885372654883876122599487996410335893963816359857543727842861316254412364328716669639099722456032840037117253395778628688051786709028382129118655913583260303654837877544254385285235049650556631785554428784982222194945134228889230011737366133331890261169885365596617518477081230484402350833263914486411501114048692560505278505759310857381479471876020001950223987949453483656598860918450254558237364654520585941433605989622125748363777062873900009786252879849658469161214417245459305906834282983666068302918059984926987237648224076163588013404213958400781723337685522815238918981526192769818727359249609256549255728886643353941017717700296600497256212836869743899406850610817349865403209970141570118521495599340638929732021224188521639612469182367939494322743717780666005857255953765027089971531365721585018026883049173972634298574175111140873791257445650103631459400806091361236375402624319657935382346488734317047227219348781096859798056275666947179658690672348845280269076618381403745962573676406752679332818882109960440130092140997695620737260730932502700461709142057742139193299410717929974619786121542535737225007271592181583450292547496661583240639131744492545430901487690672095940776759902113618370735611502330485332066701719189479422618558301194911617114484307089836576799621138375723750218444927039004086580787174406481187187606564383215424616393350017655211381255359126976173941759491442376822377091111660255419982839430512899408128829599847395074174264901373778884024337829741767955483626919445635020491570035138146924080592387656832504013426344379678904111287176513490717283294889954042175508045109248019235637767306640730282382194819432316357379158482384111667162005422869730192125439363329450002428194525143878910399545303539753016195263719809521181165782726703977518427622856512265018752383556435238222764008995996748802710147258944896910145814730144495331411215027970309197929716168087382773146423564407236028759023529872835460869191610881639970481755981627432304742353920575365861093211900010292826826929944861485959332794199635270920499549247410775445771268646251198194646216926052094262804223587935985113387919619789286876946064682061321990172272839291788400363606654314464962096607866755077418531437675590240138388894388548631105158554704334028903958576463172069198848555371227722982028643346845699044076221988950871233026301455028227733679724273641766997110401892829407863133915283089637589319412332035754521826882752382605060439004575769578543983050658048972247577149264567938334252772259448184193786527555666806433021551836598350731159513973099171562073974130916099919274476537411807732150138946062239093393371150850874024956409571163123731486902813533651975480446083830422624969205461210329460869935342795994553499179193563955895231351916399208540464442535447582681426176083521079271171524547614441650774199460302515364120478903970007474715797883977703028199583689336602669264728824097444831844563318827127938930140533124857383517902876546701636972560658591913343388647330037159707667494492453999984394714334831967881477891146792535317256136848230416706074757818731069692207815526687986097877091238466546398483498914746673734232574572396040478942370338087847595621947143390087597231097358302568205546972514465467927489766093927830255339301773030002169631202768979908236392487047502655649317052191795431801297301335320578704435696994674965194159289363376485580989581907104834861563012064429250238462273190052828527513174567664512980745769544695346379334038536764382824718083977007282593967472179362536495655043383426370991101345184444082393258495271789102659506755558816949540502936511092091437203385174273913506273553577158219758474301668907605157109840632947826285664439454291357342150065761851394946514712048767669601402432987421541005671588926062089321608809688982757829997549082203058201330269403812653309116339407750749952469028478365864235978059958335130572737088205982198839598521333238102998718442182576744653237559981436504533215249445336638027576584267502603031716809974102921727920787420351455017880658608751021518826295308802238339864257619145101251589592889368242338942638896465454262097591528576061669358304558595532099204571285287933352573432834291669526266500083699234586888739342027561053820543854447189773819131531872836705425756907608279452200014404491447450902813369239203467646778147511178550856401782222279000772948262834893234460531140564430131875560436320344613084454034282049878063096115065281970737555097595167186143749265685334958535340541539603716711677982196314525992948716607618989030546406811474821437174550857199683576510488635409190616362210383652174780278914203934306824301443357766755115039188575157999397280325115643924642345857354462008856202460966335956961387881076340555647857404940392878801323578503616740830332948120936789349517908551410597588078436523881075241715954191277252424271136917464800294963383642738954720111550948724108068570105625549793075131886078764772757688994249661099523854387830719837128706483846394662580961560249955415454577323798267642239239632609336877163976489010866015453550257194444374656852559714539271976144725286323747228377724911221990486443529557166765053779202312065729986252387543348838484635273828247010400314304000527868745321781723883134643363872404453345655373618075257992649127760617735694760283173693929847200298535844660610200885388846135212727047962337438425920229275974114146031167899888668237064007502112147097244080319774581235972988099488421262713835359691113420183142161469450262814491268822857045792334900716810197346254907662154218102012634423095842285881616245480187868451419179658116404645243008260989905591191073958482159546261823508965140917924157118662684697418605180336866993058114633130221517085824969490064144514347120778040316688787320884475522237666156350496060681624088842397280944270623296999626111858479492298011472434344774975888988905850860560463025150799974122491282031652943388778588556375672443861456408609175269984870808112612754422365809167122635230337677413592522836755968323651656380221616196873970754754687491806440181006796645928035089928514288380288965558307545673490830611041139598656840678386044017319084744787823009592825732629403669155915829300096678969309173560301454531192168643658167509237755907604163726176788614865711969735284556481753210728795965311859046144710170796947712302913884972957333831148118340024817838730847241686614213418003204590487242377599234969536242960408961236955640450076890639481908881104267307533489089456645509481039991123020368164938142919991849696298427891033749597846347286160197017011436204796752055735709437795264708465519207663536045792105310347149532619816527427653367525830718392846051695103646339407689383729047188127808626839636758521411918864553345536899325309260879776638302364595912242858979560748598519216272580036038887013089201164614537105178459379164104815631348147962005746484914877329247382941396478231731702814714824627977289632821094310008187991341630949963389659806086305528066997652692375684699736271221221988067491481005359778377111503639400783579568229707607889642384890836558244011324641649991422596375084146047358155137203223892968994672591973176110736323718706034899886022618441255764434447731859272546392003414526474839017546427880270686875377005088774038826936396967695994212723943529600691373508641303139916787639884566838413089406526482059620358704237531739710752915732465434963249828305980734532651696966070827607557899289706907640829148141598094925698993577593600339827167770609994176641812856093885812701503533183206957702003924991972038146947555009023087250771194995469331004737269813309067764644201831852691833776580640843601997210984250495772557464639107608972758088520549185656578311419643629482347694301691667675225506907296475546679624976748146363593991880560456963959244680978636283485077531574870314627816834191282398101562196172423053008951562592307962832388907904088052002934486441874223208772751741090690658103339211331684716110565909828430729845873099392089737079763595535978615354204789597463052085806839760713132207939491069260688583682430197535706326159065725616621577838552869808369094739438862063885327545781542938902843447138620318141565557562350434486570245584097422720999544704346177213299201580501738098650700025188075424176099356493529211320145040403327369361383505887001258375572514121126754845511304872707431901887693264692246672462494540731812129436307467809853530489720742619427235921798419577832241664555168176727176656268986186322758294849977271088027304791009670957030623935494727343597748946016162307758895803311084729474837985869572553285140085108015201426577304194325039482441410779339755544285790623087793423329075486442753548705926040214324369943285149706726973040550133767178642053707339815765018325248385668727218160821618225994147066602641386147061255003615426842441528714315649144629603828221980610774417972577627318700578180595209914982835102967340854556893695194682491046471750305576379724490982306992562022107410668990029205833281220297179769693988705300911670389276096501968821498267537008423290140343642903238110094874510537322222284153038621281420974160544541152253867267701654114296414431878485122415352134386101283437822961036093746755576902970714156070251742107115254653290775716945830046214659894668519855886310728586328639700977417371365629247109599182814315035195134428841757064897182256074725695145551758239940508185478010877470000200238083432476246366549467615828505275030815723790276671572519052709407380619197502959626989865451607839408141535352244717758984250259545117627016691018043388857142357156142046610737510418359214768615186476985276354200258291788299353709257043029579633038998926979638988793016398994121983260462373821933588129492523600975326023759977736015736566669199260212545829659580132405068716572505079592853151152004183835781628179620253308536323747999753288265458462394762995137614541094357727577801570961427330831473497394986139613892137981741264504974926202335092273999650120281537127640418678405018217558879176719513993593832328485955884723474593157598912377091808930447408390113025282168481250412415396067849864671308612603845464969927455692227857287177413398948733670519414749735515857199784669117020598135044125963711571507844499221412708692213234380837743557955947872056117716115692745619289575333924936119684244483892000100472657874576776137775785288703501465255418881274119393577147336878327249436252869361552865284055006462406374925455666456142719151701500472340537211747709496389055323520629457653067949344227130759316280958546541733482875763079152555436067953250669857626900270311675904526734586480624722876779600885832434945579337586975029602627614876612578552912888486523564674614925285977372257776097862749395404309000495661684606591998568436011508004173503372192867467654716146628158932891966026870242161951186941379316097676497949991271077950837192278013576025196848851245690805026742860922576508048506677856781159290108184939850416083417649794693494340918787119374997165455074568297557485851775797850968649242080179712897151092526768648912153291225496373250812728608434295838576881924363930796572057760946928624285079880912975914231290248478552047609686705746722999826473351031972573990246843338736223557773358944625187227938028315618891555337795763722599435214342449559233812635833667000690424067923576713575812203561845798370229342711535838959246459182677756339399823469205997894257253193466054762109469300633337076166348405207574346211762298698032733915542734613060049378357067150413738637791171761945958165005009833847759378689195962449864829330723019569200132441682058171346725482295289688806817732913648028827298907297413461773325997080940938446965499178806960331917250864545706050749720416726785085197721851085016200597159945675392383275399567765333845230567707608253503704591556356160405914210419791452150589479102096337249714784791314916648035652254215214617946531396394443986560242530924225910540709079733039593884796615409953780018227496857519877796992664623459267148343238175659594492391786188266337984935610433774640543669285162875166238814585283186586240331225138837837930071896285347687121462998149594444862340607907660583517780422510884958471331642670299041649485598227277379644375258587040627771740491376132095524118907817839990137111097241858879249514742309006476258303763049487795219664238952253681086977511152785987545538706873748090496220939606083922801542439493923479688022462064091798651691212258295639301590297452225875996147988948806492061357138010578749718735338547186705055577707787771288815245184917518778189800490131152579833899222582283907327101117084814287250886467360146973808993077102007968110867361453707045901843617569435108325945593568371138134562117640687255803473028066341901110922465649497838361026280821172561774917387162784356843987021701036975026755852651617739549165437383523627647508464088455289352150413505484274414225737617449261198343698626207225672421985847010148636382369281870347441977933972455765629577634674039104974344751634703107556993050380004089424342060852088330832027825614446374582102981384798987825982419794851026718985593395937137684435718443814939750406560150227922660443076869459271707085611165605101988255977823593544252181306921873089009789793172989713213894704240563653319863781430639156174631360420934783890385526331000581697149858036567530653441211954860597027761997994144948760798188788471040264988485812777877087762239781946165514225473668548202003151675010425781694555377221336954658199307348745018674671288639776965859542899871807596801703077559803184529827767569056940818518927271043263270274816374584946049272981260483782878636985026112579443282131781851424223267252911620862020477770393027844814023898898837968980971337457747612035278338364261002935599142545810155464186881597952479559249662077008513808188776440306996495132808205392097965409282014311853045125098464491144826643326897244691596104590370839662258368108209929946590551350397125635963841165377052155908394234813128534864379113015988409491193546297138141547808386578920235067521146283926556765016786948995572995755915468105005096822369706840529879609873059453610384236441180834817038340094465640134047542578669311687453422936208086071039242336454932880660449501101556538694877597984167379325628999956321086826403601363449469405386094010587898295898386692651415744868557990383932631306685465454946343799433943365521910975632877550362274872262768921968626786308744418884954004136076847591915575485391586385314124152332414301904047763163804331626619403711119701799029251415315236595617224456540340402017164797394926660779178862511422306609838334774097487716790479298010760792133717373822116520756880589213655645990781614529073094171020851560012559199607247476036473881532551902252434168437014156575788109134056774871923082437478823463677074160019724492222528945648291603044009178062744659515710749984707455542210708830061219332148113722199125753830715202231151060847672808254209953601626349724200156482398767429901903905078774194805873678662821708481310942119252640953757494307760418413451218068479938758368050650781890911900671258134212217788521381874641121639547523748590331237871384226189523524962559501247456496591910046696944316527137249132495642985532850378051946924533165749358073584706297277579271940651957252956976324575662017125784098200159474726751546712633198447201346739093001094321047435652114153881954673591722152148221635539524422741842505290925226559198298186990629084036950438587807434577120709869825926145116448443135029574665334269020627193487673892370967478928914912569581884930911464389160896505419099519280200687270936603393680232504351522658665473866617567404234359374639380055585382026371627835708069054126378966444339161390932792376107238739135825011193692779296347290285534532854290300526177738166473259963934434402402926576996235939569793003878835725447714012504927274628050974501639177151545791472825462765388705047774694212544601355325227573211849327479756257832959964595991045522339578550660466669273541931539243016810360977902708099667928725674668579492268344458835260711528286592080822632491925825011775167715362596175373048331902879354252716798276139458474844269313118454149904900497960529108045231301693664010747499811538348980103353499292410510219240452088967055093390211908170955437914266685672371790850251620360624474582412624031425175006760942761896009810976628114990263176115782728652793739187287291515841632692438318626539072562308320229751810087251270612112553951679109837591674402967445805210760334763722387733941767956905651246752290073373493760705540510519572645603610737196570062865706620953787937570627719502315201884587688462086029907108440313437691967232928219018979792291646362293502342640862857447460101944173626644762904892307742519117317172970172474212377022207288657178780598998683248163182461814956367763947382630515653521378835868510953651008317306371274850245606871446229981745109437790567481420662061801324073809481037788881705169279570611443718262098350411023094115591329717503837977292606573619656969837389054501526319187341602042008869742390895897801179699354934218516645712889945028146160099251791271182152722306304552978819781261425026186977535536662744880515125762089450078502768723449218122446518479131550630316464572493663795425345506437751776711637957105821295220141922457680136830871450096540913806340659491809210787119412235506169161674781498509479370726731080781581445709493830403010028737108629806230808716196789745796132428745782162237220365341919832474168134508663049678125402441551869532193495607181467193767095060668752235077521780866683922633717608631379177122979797796946466406692578775746365396715383802276115154952556503205671055968832537788019823893985640908217372028742514320977145954372215268028618873226182238731475378013640913794629738929358799916767318773653983745029076154443031836745371186534697761491842227282760857287491663107172071097431064257247965283510551896637487503784212215632189869018998333108528449724773087607449990444178072829639045801029870423502920856866460251974480987529602999715042017632723415861957299205617115319153751162181678242151410222932012481555513125379051711965290319159888328705832327455093346059016242574754398058844810058757544127644807417229046173153581133020200699967102920268127894488824503905493381134736898949679564083614471850530679835546273063428078576019700258102123618093591738516647034530695405877392552527191011036647748401473641432083074464346142841053673364316614219524509786963610272525120949830745668524530947824211821348534156901817113941701777258163465338300999694745314383807012112904581382662051071179799827526558151501562298052091148596020405975552068473925735479165313661885685824679809674800525655000924923144166617685116117304134660013534380194690695725637334518731658189852068336941456866066411181322217680118117837042864571169948977712201877160308791470636351132598482216928125557981797498429830706918443393738983931483429640451346125465355084845791473477184765548043502574133359232537604624470124302966295230818814748857394853958236527072133308515773211902735863549723177826606237127978897513054166655944115820351940334688157052315382275518357081254103404870042265534542360574672859019311623208622554360390709498225193453502150068968608551006166982685679384732719688958401232026199204060841778403953159679781139604144357845411758216170237910581035260803517057397238534937616499311159649912807486458636034687580273876647257796857949215405609284924615101420745022170173773603677152025458590695833280993535116574906415966964728890886630266110493096752206311730329526512302276478265968540436131425296017755308022675914209309049085331853156569385583108365158593991083632049398658546646718073739043770840397986441663855399873616780196517810858672677312530466329502490606163654116257986119401405967727071961218739701568345543212122119901146514155188551825138666175573501238150056510994468681209243712399111913709947630673773410229654935511151913194738599239017080861578327309206302078288251271232402544472155103792855709640376372302477894354864438684382899419402836910782041412748273857318738947425688960592323382641749258088015793006855373347686453663998918532985193113544057031082294454156993100139001628421020473027773153230413859198705147205686645806310016741052693752348003331808955744958210864613425804669290179302649512519895623989513539723748253486385443862033023045338844457792172717657109822099364333275086017524828776470733477129873318237001272759406443865292594182539876014210871353911554629711639901611561001838164822303752530322842246285938920760865597478950202791425675203349691601468290601768994133723824956123108202934542815979670868930821018281447244878806375747107370704328025285203468040681912972949203671343057197176655654296593771403187918851493412157397751585642788058912764539507846650983647546113288298725359349647227146976753079503409707789076378683300873967858895762508161867238347246186952043389896108887153913920907466532881370780926215202767413343213536091321154404746661424188392926835897235771115755867717981558324817784243271347825188738908047089419863345858977462504932936915817155952654167706862426738285298666766369085529115577269818566656870121645372351170247644538606216013287849113842878088872083654199622743519960604113650111119982864072442413122254694295102573961706786646495886526781485242440715757056236854617242373977308802823513240083269149877466822140753255063606255664738823748348526963125425328491097199183923095216755054447496730669856923232562385715768949138670766824023558797786877191003794213800577326563985228646369396720792262718944444685610395991762158090291789830550410359337576702741568227877453886907666934967791407249809519019983113405322328084169945962095927545115963949741249562715877122254405780840694496123199077309116299965948316314921397503988265906532503221478745061694609441500287802234079042322243350327672094617354133338650243434660347433602708306035060430337324072979023813013038167412545025953690800214818682355970007534926337635621375811732059278374329694297046029134628730871351629159852745880502013407780617675780942364556056474146438740380678342976699037150722445266046993537949163333143697005681192379446716129170949637709045751413474887716349734730225317090502862384108657984652471574296002521093230728171188593142420865405972379910062407670879330422877579200350286402501423838699227935909788348811803233500136762808215819311084846309267869754333653740007203325772479778882070257008889946352987900441401978013136022062120540749051921200770132285722239220847259145351309705809538384847957865937026355312469099192890997105500704702721772971013350090674203734321132789774097382513607682146898630964546715304261747818101188800785043575779824855521258418669196297864218126459713492789755838578990037833745170678222357304927021567131136692318713668714841561643274799527519943202711516714239365446850479386724299758393970109494453767029691395604295641239964918270226022665235852880471672716938491535510917370161071465222774898400048327437953648995709090730728134653625484691528351956074919212570530224351430935781151509797653395444717765316346382558406468846715090540861377094718397695012169242057170073882761526175720033241855976946035920926724479056182686674223877218530983254400711290861842769080650519184959027721423945650371254664267287168968865569565626743083564261643659553831640404030612669701948754399658482410863289767561468580278271766827369337264999032499582233221520365868198761669146217889689812530645223343438044455999752706636719430229520747665129246104852929116852906898733270301612703152215285382297045003064950042929921000346190005227704448663825967980434804213432704236020374713879240340182170053486460832212790763414116283074377350351980114817438234468116894926121583146194374098660538781373566127525589309010121167103965655513751810777563732706453698914875355432941475054627804748149580185108575295295670861614516427136384233083133531031141719756822369104760367855414331371481784298682637090013288649049401264712301390997483873401161853593496172226458225831476049864566110299804290949496200830009755741130360237874592985051467782778434587242475803080625956540496907481298823950716383212313245631119919932345192725892652407703731464764413425683052824805973285474181854238453554268089816495481780468792358489725925064500351447997444331238276320622239800408552415260355637108614108460882441856831621543681379856586576134017666449637359138411797133579467090340867514444939738847259713321371718402187623084076229036525957560137960721294130512773308803553506089719825955735922112602975750893964067783979687657605652120528981561118534310536438906459528155350306752779666187667877663002841683349723781366813043572759737041708215936125941672473601380812902054692651454463314208628968533503844991072208969721091514405103274100522535553483077860014021793573387406146205383505901372924341069440260810663367789293576481571982898618842828614900841663685151458705780849279302300049562393055287049832353179299861363717777787693010852805036438156058748722041844997313720267352106638801224896762867178453153249539877223864419930734879972884606262800780126503938160171950409696482223283854909644201209820763408819802463692203074852970997988288091604702694290449840566520012433024315853532193306026830706403630893826437621250727366391839691721908336617541093225728965289603907381342468877715255682714833409361302132533612059245054934715950544157515807391138117801218186123558497958592704120951798552116006496145637503502174674871254607217162421805685028439199777045394970452399541935444978013634088075106034496550915205438235353104718610690195485105130564218203564175962884824905871492537810548749196380154007377641939769967209311770629317008420568842409928525098752117577397243105991831541068993325003883926485766590825129168825465713688497276207487456308499861499056966837648855426443838420697094252512261818844148776283363072847955004436476078538198001442627616581941751283321368861222080062678226202224091170022877129429751932989116344616671384038182480668204538521384076980239601666232761520637508024978287934324090144009282066883526704433755165736576387201221497974473442249330273608456298083920153302249920406501486168456750548638604435003824868649011991285708942263154949103908750145092265926142809220172972531461064799810861839400731522801923884635105990393702369093440490762972363801272607286342176300312911287392730869154252726628263535536171426568914451984242313840857818437474350116296653496880098705563853694833141743096899008664446357609830588302937955899759044214161931943370567941955585755565388844202420702837082972208710474740503459119143534040081948614001486349275773386710891609254616756686183401930248244281722977986705806895609702074100283849789463718356634971777105133011200485381196816393360732386200960581036136904662757757482693143708718493567716540327504064997903704660469245471711405687896629196942594658320811938900558376630092525292941715471049040143556888962846447006488053874764597621194912874155899408818543047189471998109110631403495838073738592007733955020664925940667355585413745518681107933783650861573229384250361138354916016270547982814137021886074355053471404387535312191030777029049641243347936157884879027490613175548451280018240622411963318583951976898894827191174517670609390834804046160896246754400134444573651700620475577727250178540125537816450317081526198549754341948239357059651942357122297787836975917569385295028982356439147756660370609909432045601952815981401672097846224142279751161165322894731610804886572240913242397839467763340067829657743781389918455568785176206102515264470568493723085825172614112756049247875746179458224753129711158798407839025857883443746337415917789301714182579222454591254002913561370885166351202991642024885849659103751367490109782668809809267153375549349404890011559962940509266869470925488491640540883393635509095470092446979547847502398047600567020359236799988679072630988350027339536817662976866775506028627777709563264802223944175706787021672469552603255503565916895167079400699890337849231268749045735783403159131498933958310660178626250711880356381026558451309561464604437245602862353857685293530009410642480024603218577039875152110803842457425452520864544187195025677456747882843606337275905464577031157864453638477675532503989608670339217515982405320350852483912626460629615479248870818422503568560439858926913987951073516292937971204409966428582452979809819039979615623384452867199122881506890813404733289912155005693846490875785819450132644926446173242123183009976683557608990226544780588342108694088737848736175418666502319321019798863217349257060390592973190208458328358050922181711471885160196028371018776125509910350712321513577329849353579625627599647056078419017939139122569642336978470324030615001817330519879177352270493249301221574475315979098487949922960032737854446046277669268188202871270316772292478311600301547715368351339079524997177794802797156145120932340590299858051844916123313264433275420725377462601137695086992639182183498381761446963677932703206322282339517009999281061054556442143346503832994040506906782379713681368808282023651962410796105466307322154568811089170089533649182147325345686655042158945808716379415210562957796854200224037193888525042488900159932472883097250891970065436725046771712961734349777684396629437965971135403933201643059514281186454450473355286377234362506947887460349844218377563912809066080890511257766440068875251812361145158846532480466745185622368963945271985966978295123238650154272403353104557553326496497146072981606729941706815944084795302119253600900399030219861388956033987845442968038370742384401066430310412581818198399770806535502450760103780180869814941956253147575285820517662384427416031674616468092646561680126298021626588062668425548106309049181185552656179057035277722021891545652864899496864122897012893065944691396058645136995884719865264601915845930300962276717362217443804432994907742402615175495911022935858872714344484645074716322100607797139573771746812102446380723929202927359710382100666149839187307176837862170837353986320467025093006043933290540664314949218372298889181993522234910220931219140382737998719926782716737110040667772991097824959424109958906152328502400240582405657440314914541556480692380707800707724320833798166077721966928926312835020911570396123445854290020609841357057638071311392629675151041956863400189876120163847335006854292560045132233008465061255749149950315112953641041796710449561305646674352955519700660114673448483030243694841295168515255349201711959250150922588484709686177887809556933742379193004632696307573407433179122103042267376448546672605010198381958653225691865184474566706173409836985763383907691866469956271499170499932169430757685324984529203419303484142314643685030766257007300259534564090390339002164226515859783656637184908632138418760770585088651795336021136064778715898830356584834990815091264891252169946812756105324711940242036295433002178969678014198484108837230597109867987616739453662902901688077690012675871882146818704901624999679500179876059273819953616570471223664360158933924831419997320115408305540310893518506046963373223065144527705660513983735477745670185241438388324073733798416238087781137112402094101267844529334680153306477117434586830360068041954966886221540220568970443313120079711705345168059034977814220802322679227875313350341802765584040903402431945444189855530212661310566733705546041811186452535623524179406976871005945080348073069561768785729020541965569630508466861324138171334459517795845745683372310534375482699754713661743624999153083752110797525228099713517396531156301560176997105527001055365658435457219549318785712551652001981398553276538488544927256079496785840022938338312395049002991925810990396956766316501196395875934536010480986934983701491176889354567814088826681166571421198114140688434371578898414564014376342868009128744128671927865880718725619832652859229402289210141873404645297991273421170351251023538355533823258568798339382382849296103567813598680469627368204139441634964999558451581278507253870037371256837924554959419505075916107247750806495065328148099232990496532305336807505344661249159409820903351358267592836770863415127843702324305403773559477160543009249103557724502773241854123928995103383472540691187995083404718927091031949541127257224034610315993490110036238416369700699487141287671711922212902235403370297988926085135356914798300994815441403323233711881556659621868608328359155312164075611366111883725770220381432613541778185955470103446861793048583293068316438923707624224562908272978538515653888826286581654523972959732868198061769006830511908279883528961569193286208821667099359372875544146820813895207027521930346276091002841622871312040974015118849885067127006557455449716613018274759016036975580314216243752912923550933651370705031684087801930110339310213262158050295336309293047525015825174741596653657536444271183373103343364900367504432138390154641306656417473435660930379113165812053929277558853208090293540547724200889393680812276285191245692978033921862898647101906502639934720771829336042103201444909651398960939385887569252248307507266899114312218091928987478624580809224758136911142640679194387365048357780879856085856351635249164832345354591965251815733253232882423638906598908374916257159931203627265241247075472979094111573955920780356205469228872018327329046974869046519694618337321747532153314375176742826872696613465587331800715147486974298777601582481281976419327810443371899792157875616911701690979212462126696638666140655777375383390962216752573499520761458030768124031007234871594024994093657213501854852514656329133964690814024842781409395715729917306411784052188193730010214403266237970790764899232462815002467905865006339624486453248737399358210298815163941408369855769307039944165246385325868239233000537037630403399211781271143358394679615869810414347959798475224996624272457511167037738454026192318662178017622750335182020208495212274853310997659876484873854752426468323212793054845502095190139319091792545224998407117644545369969092593419280415756688382143443184999652631137750619808868432685163809579852735566157470799399207652543673037253928185967527849184269863299894902446027453008454340734174395140513141992403507542225387119806080890683323806203182357675798473915541197379158776416837460407538657377236207251855757663933995942209584813327353524918594130907288824684695520755208312409739122639669908154027788959697767718930087664861889767335409698597209384942945241343585027474041013807445910466026513452314075759681495774976462993896142937046323759470201684281226366602244618324574574003713237605933764725925931457373679477011305891434290821299467091858600795081233230540050273310606078424691707938060670078183760081393733673923822328833705746107603654273722127578918737583480024930028225875906784474031910730726967806977712863077976124628550216734089624263535499996329102192785271680266826287124448640564188918141413420821379483237019643714771212204049348246098478824369530509442454736425309051232255938755177383882514097012312242530457255188878078119121649199832873031456891016549514834269870378551372501076988002125263858589868409668925653872966982637029528642495727091698333769077935795583109180104584721617566769542423424248798250676766612199886121993981592527016313372257858769340790216753675217393671216273970912992311815996975738384414641338828865598322741244099548508448806758085107924465622075301855143368579346032299650863121129136993060914700112879884692036652272742210329757237037621845234239168305861680934294854482606747485762743821153720963203396587306552100180169921056850570246352941319556252323693505334862270118543114020037731999114870467103223316132649013348228336591380593338581408200160123608722099768684173470894388944278076689934076652284028680039869903609671962826092041310549632747514473053466461764632908059613331186802632120591513081519576603180448813775945444439637443203766622887360248560426970472644595024391260453497945413827782166309176215823613534058948838501640222154953725309737794691511469116773911910942698978097162744733504959684728358235948773449430543647558268239816675310032978109991142492362183771088187072049084511711474998607819626231015284440480611657817093360349809254136174158938200493502033157558214789019957696863138152227471543940660207465823005745965811203526517846395332759518175755145815114564291392390501425099167367335399907709756762693297130499946541363689002492515852212436243064980181699918268161820444362797249433218668009496048597227691633272211097700343994829182139830838918869835157604255574843972315111302462768865211522773954973947403872246108179526206076243308988793163283015692183986936311321741046082904976203009366780040651588321903943026190862868074175664925316937364929544099024052279813850174274909490032557548808963252237979942090600680142128380556510798540182004338367695692361642597561241238169031586586845392801056198863404369742952319113916028510007141792229168156089274952401502345575483362224279116985608331275953016999739289399588330638723441324597539857851608259133953696556106204202914243839729735388803184090620256628509730488910762584397285431471755124314739169307987540185877564475119661061747863377447410889055238257791273380433947345317174385414162018911447426291303724404979307611340898922253404633059525387862137356988146275609881605930806362360152544643643701286882902955445816513104788667507643365779961605748938649638641754597871107381202870698837559931594752680948329086884025531792598881368390492923294073012931016768587331603281214092913059604256240714500003852945517275279956091464364375651583709707449127265390267905082476295368940785821017258347972851209183073009039672850288898861603376968476830085769853912204476298913342086922740564539860267029990792055436833362479540590702735063294609282821610003540904205946742325414412610481505191262922044248867895170036513600961999272038960835008407593212002698233941950897558207988636358293633322993048347723210835693090907582348741649914827294677489352356771084293272667874051542311332321617159019591980399362379485917844619771227895883896376187736170039952135252255596177702898890572849263431234739186706891465582491916458108608738755989439343261870436283886482184369432000346361248092545828036154618040527933460690594338514135533278404496484044789716280219019079038382152197211800010396163760688374168109261231551961315083215310106486368427404741332115438039823049891775280755838231045274732459903598814768951033452377363971748477390577696338513722004602480879894660184724689995193320846570030417184769366829553729295072075398499815612268356886428178815491703209912786501494714334163385175870445389598678981452026079085451917205405664111766668867090012224630824356405553396648367486742979412073381850272329765018566886920048442343932246488552350456258808289561245364376173238232422388095633535148747826536967054147222007690729909233704154476077156245023598483694786653632490875316141335552382189690207379945188244608543463440298593963894832236013281042355350070712343206659495705138243759067336776493427659336225406475808770083773205389797421941474691529624005664933810781358399130410252739632498246763505408120162175570853201047639499556677436523355975660228488287162690613990596199958717813502269738104466641407509616662500733548737019354462355945616784867240513934334950086567275096780574655056187303165406462961430691229047647902409997034137747785430703166347438741257153712463574861272611706544410633187523873141162906190929772334521798013217161669792026864793878405734862485867017682428638685366074960574910877320221475506427467869422074017637148476980693274946197698385388534378499329258816272137520278436328732527959743193586933871707144347282246083392740726189601626370391441420789500121426064049438627504595818712532866989313784435902820859040015598225740518967579555836429006053908604496029448679712926505879614449139244627352059310529323370885613732797209359891575425725151131198609175059797401522899683290381117435346413034385627094558682239746891879727055974615344360512375297630102629564687619079351333509164298866082989169993016926677206703329011827570002575784119317875943335021142183035058365737426018635002687222427126506268171934110827721103718543737480568668891362738134785692024489194997410311210271152357297528362421185572394335288682369323870871468420809901825506141432593817749904143029682020067542278721223025161302048764721696405766816524703608481185031439151003655612330794835031829432431330097200685235677881953739347481220430149375257264751590291578912501220704793137068281808327925412829038393432870220614817646498910353717313374957406791206501663316160571995156125410852568251615812618839314711716333283522670073528461891898917161337798458326549924689057922014358931362737919785920101716018080722078878999461697815980835530787614166681673176798424756094214592014139213739157768204679684181908264627202829774830724444991988210240659405362315666448584855634347089371833141358963614564844794087428908793390330030802868927974381518026787085292844631619959625725193387536154355370598762828033874432523453349961631586462664886124897572221624301345572917050129339047130529411955019001272435601074725670536582450135036564409647119093075534807756662059801423613236026368486977313780633424976685696203529459095430497372716788252834105020719505795137419571092523601577283842449003145259489084555131825210264911446544406918656738819902324165222194599640494233337840135398227278931963969249888609607789709778352615510370118422950161430858129783621989504747020698866611459679121510566959805602256712884908445593212613894773406066100217453525021278414825442552798760893993712779673077339903653750487453829975147846359925873902173629951394371389007296622182580473388695464057668642797413119576178561873470958258024192219284821108315218772224109727076387138550979717364486701403021445744309103399654261087840705991718297008897585843146120806394493661718341844276013424310021583522498362389962758613879926075843748288608102724743127907854642112808463683884723457743418800997875479535818920201644164106995184073031836592844145591655097131865110788330360552990480816587022554236225369677399711084253681061517886348419123295739128566200439463332394934159721470220350275409908142670298465472299254185697444541629828951028025356665346873686686459946504763401935971266729916916168798948476199026937615957412144250029468806229634386892135605060765146273389658848289554451109213277889442139544072881511269467959104246088964996480853332859384914656551379282476959056692197709852774786748303228495076910263027614541480666386471242873339786393892650730458524443750560338421097884260618942865251669024345956844034996816129978959613040731609493584507705190512837912032062103224048443485729603322196213463013999271746117790989083339315465071450996801288789574008252159783452387907009475419436313434006043410555106699859473987679664073435680524172774939944049107463544972928255894728575200679908786763243084729008560580821316796242399062696651171282721737541446325116307870307607321704709661691174531376510376558600644552121203874643646917593719650655759249476597350867565669204542116648740592834699694476716025177206805426617422700061567361359091818023752803722006452250252740373888047739236513860975453713641608460072168686683887639817847149213651240760869658020425271820938876014381442361339462838399265295557550757512391783319562179039886206590424710338779193021428431934723735034510569734918085675701791850672095626053368558868869431646336856297871586344298851959483268518948261312281510975568080949624827230868548951085494399035859024717215092148044059211821312765414749493281214583094217964584310920145355414081046983781653539493948833473152904735555531668174371335280406940426022806430123314504976242123020536453766761384542936377562083773328219949514750692918633478840341581646023701828857021713883295320017523985233598810442224116830115850874405417251461167904158961567454311008625016559990933865368435337114335892944633361438606887613526021800631056445598377789050054732146774969464101645367568209331126820472316102582880280095575496711155823822060284959108869552483797055942527460564111157030000733360813797919664409916704601789369538960817420728679615028815930356937224957913918448667310768058960967766577473375974367049313155247440974136227833610450902465260546930471973640693106430115792081781799084171752485322628555678194087859002676680616910593450124468620767674021470299488161440544290928152346742673116883319363717806683544551888712292357908735249225676736277291488516863591191021431767806286111550773427367382218356986823275187129647839498867514566262741359486818025474688121999807068243804171289690797349189125905734998951760556810809783018498638108553757457452153115296579848101934976414951430974212790054333427305176855574699644115598306269621763132405289892032844261762369113571153316510475704768444676260035615806550102217705329639639266872678303454022042873567389468216787433240818655715007809315381759592584028847741164462100214020618647080224800542654000192806438479206033385128882150221896678505444599033240568531876766376558834462414236111263043864042619957590424931710116710829478005685228848875809779449509719041373443318400772889106354375492091424274119796225806234567626517282262532732696329212207431138616639825180028328851285022504020563560916700965450600527534271018926349421896324612526970228758617254733063126872756370754410897711556278682753196550785524663434896185608725186956297173786055717696627666623628815859658406671855485894314622007682415669408131227358884725130096474288694108755483516862161721244402944842802853071882169817636077511032798248591331675223697838748288706686871828696698186594826149995586042540490751014078329586428978085287295743123022645653986714705160589661625706479097030404268765200274652998258508093823271988585337547161923664382384349811881469498170199082299805554258372051938189786588085736211735977173918768244058277467087097442420321761678092398444224646195227510752955397111136636745394276762129142472437018992713796327151899456217393156829488483211953443155873716563837091634097178496009712762727449438868181533308815227936896512457432780556195385716172041344669537183908751478586078984298961740846824699196963232516826846100735588580732535079518645825930184150484639628976306361933581429395292592800285669118737609266553319954215492756437209307028532853749112369824175970087313752365562773624891656124468219664209053000773930414925696413457122300858358532278551019737218819232544760381734601281704087898595906080466283017923670561603976848601782828414804126248037945127447514296196577153881405644319095343186837379978058145773019889307846451052824748842763204642464839216174634379217630061021606997954335460472145955430545831571083265679102941202850414552466533766504449822708388855992822249961103969582118421821438166855696514467103359214120060593212818672595704724301789269877879221243917875364117471499659321091101395661372555227790613427588162868002791996670121375660876897296503686978008478873784685212221859735781528897954780327687075012422467741931816906018155638337685641766479074274768305363951272006967898746988415265608438420044588171773181145675832554703496102924671692911620979617703474971072981087545231272337931596056420141377206804880787836125463658077788591974316009311941050301321350905809315349569701039899230659306340639327769333111691694569078298303478855660203765496308989493589043154833111453227808711932241454561196877985098162282877303805960938576612336653127241487612751896827431121959060033076762365444232656465373083675782179225525069726582728272777568921940442414766801725768457064044850309445978930705969541890370152377345926607710551425044878813100365718073326511199917174283732600167475732680348716406939111190338110844694229798233398891934258193037331817851839681367252498809568582904308367262010567533381830156465938455686478930641279591265230574072688251717405165376525945903488093243730123414826615348326546985946625464219201799064198931181025203975170384784772351974191087036410185219569901304324616145236465331689517400422796891339172583103905282201255910536960231307223940831161172693952201650989310562402875706601597979344770455509560210041456428817823961405673252606197087248997742030272800806218148831426196546792902843634099884948619679712452647961211874876999364264142014548715275792780320882846426092547668868628992438505873036787577927101382539374965707908867572652214196313932874988862524057647918181278194870400082068133140448092068510065682425950270255794218926298885764600562592863985980394662209488453002323960697138273871740809975659458261636319858200547718461366374728225651980688141116379779088503423742295519184617144240771726653712462221233137692708229373146519490537819068371242108677861103755389720441887652348033021743246047089574449824933948849127734286586103953515701116169342984384283024485208244126050208280300403218976758326321857524748736469845286465716956907131698043675275262531818895386391960023624789561130658865806282759459960678307104677052225004902851797147680359794304626992519869260566496398551718351048773752569014556109148566581834298367854885418231908936467550291357974994534463569139420918453580602080015000879962479142929705467169333752965802561974693145579024182275954930096557715675872123726327611867920485152180227757424250755640436305107034319091580142174181268595380317858253021933319555184486758370688757773449640134166792718763500786307189975018670433011411341699383050048070970964716612519721352903446997098766832689587513205046126970918098532976660094784256938017568905502001728714932137280105054677912186955017470351898818790297662562069760341306517387265422683519436348198759595199956591808169003127953503454029017825072785458663378770723413661171044739078642002965490828455915993309135616811910759610206821265261695881683295677368728701235634390050142126910068951371340316808399059083359342513962033268977659891052609741466194058201416273585436062850313688266551794712556488657845419139064801967064077542466963834234030163377965384710159124105794951729970341495695144862863020632949456291388262237467332082887460216480189751524672164274189337139362928126012732680864383320859482879340827008920907122105798149396674690693234294126893659979563177674027261732584639028286542771539439433295978671480126078181277733904641216764589423126684838184032582697812093794794956285110195288641797813102085971260304553030365804717559429919659944460840701167619031830927834662036281780956240921152523704485450394804419758947350813386783487110653324035581007248523476307055647422413193566570333222239322277101333251439845108915435599872801996595544737570490675466289949576440253833606164451780686106047824197954174990561970801709109507812716182244791652458508290249386343490127814263368763806237323583028379361616424475860595611123903070786119396321708028410128801818506344227687184276891683388782031194666714165979358001077999597848458643924619318671866422356841341326300344176191089313001931353336757742463533633650169345871274081991215949508177444023796019594497405563337921502671359589424522264923625708624236301608515070733661451194460345293096778811888716272276633746152896202030404458885238484225726452292410806345629917035518522371264853422588856148005463180401966841005334469636699480278375449216658675050132537444482249569014532967141876795105888591281691499492515938971610664003502723387006249802384520081567771385483667601478576020632574658529662643757114081979571831889876698762029541974515003349351837965318998320420499419423528236058085134934057519650541041950497930503678048820762307240205020572595188371963226661927257722284076424627221992191109411307268540056062266637948383407508002213539489975423684075928358745328793511068087796195451883517404570540567555837435267193938959394355509778249463667268368697110239470415478261409773612175007541786762169889033049482907851584286160409795286990360876325924965538060084022433082614992646799652173969173872860178714222649603140368226561149060006916928713466243617627940110713142306437336009223500522460314335089873945033604952623477205657914414987595435001746983476074686644942742536343745451807641200840642498020384825925648540077197478491399614986752442831769283381852530755515281328987414107846267529718255674589799958538389559495951347630258820891645560456570050005456710860542839104161016228594193901363655008644135068341924440781373701711500958429463240102541099803204760010822961647207138696366579112215085700082279926405674700749218021992058500923410692715969060998590553048745678057883579791250081516073794553840664917825682330303153162550572226494869476302004461439750044906756744509792406262865026549745357913156845763350844025175102719342352648713149185951909076927109376821345692173976132066683322626015111410358675229395404796270137923484486362728572506176688297945411787527038963077399027850402135810850166796574149780420299830377006764041074910999330249337838224536513655639313546741669853624627836509796440725158288217101645632389970098228817264070448326881201197887591749876603527277124614049883347082487350518181590677623100069225111373168298669232161870100653376238147929407817975349129062570012215566175327033401917367311222364197896011566722528963306150237518942360317910416378040702285859110439357963441191963216761117854583082287758646743353609897123995729878237745503495682791283576967949447675709444500421388211253577076855064715350377889323367753990658671660282858906721901342103873302648212098573613044180690443476100423150512469205378998776963883935416661293474851209557064304888633344677499611219446739924672061698330315632792369721960738635563202913621123876695893220462629180815278322064469398010000074205872889781883760618246825790230658068605404513029603893332817221928989097319341731024537546256566862894710006894199335559940029148690514621786533457357674632795777914539849227071436547223997398208492635204993835463284449515598660552970522217117705076000664642401792441652889883480778093481849469393580893286765012348118114823652009000437847880255686924474052115801477579088246852571089829920168328753804916944108574715585127243915099291660650973696885045580640307021420279855538252945507506426110867578194620601994399130391559644048127917806925420362517188493546721169641093096379100898876615517492996311867137204479583991912631898801494048463014810700826600486212108918818142394967941331756353961605559290105262543653382909011480693905483829173758919184331970120131827992234491255397179867082031846327312262229649249587193416723364691978810916209662950539056090007304430856303897839996040413588047784497047350584346191697009898127542255408702908941135957462530458957513591375171157679938924981890689036962039982914424628767549874877319611775909532346602597894681917319933188463030064139768159416803543106063089120945797175271716712782128008078004477807303977011212530960843454013829402764596980440883748580693285426022351559646915914730443072848200391158639167006423085252039501561315442174183480862433405934803494653357803235200678780759053663763565573789016941751116774802766667179022516016647252875736763141927460281732522711869225196507894035197902295251992488143893931537307512582464411952640502745886109005201705364014250865235196855544398036727223122824870769993711662619943470693653554386330025428246501625367868081994086533690801242435283958552883380145964218290198453804691804430231609003876359981710968728129336020912772766550499498502531738469916889101702829507300687436407593502828164124915594698327906544931758843005323151572349030437274730120829870870425808965852743430647774347970036311944600286412742438114665035975603461253729243167750514252721839672002198700579775984576711658705423987164121144078192163658638723615418725369701109305088057964017035673547166118809811657642510345230433604529815859016470089248248303626084410811242817419314302541136583132043609359613052660568214960614809345348806436316539316172739609876314150995021643022394549453299912777375514446494819710876233421654539783180084617622086328512677421509850010484278219480235890879514027066448051546688942770200306904254428536567247252199664055185268641816641123996227948332728700161680401680537769128017231598146583659570640584438910356353081497579899443614823860122298081316881607806326078565825500203792890169048419646741234323974657738213279418406675379964091699129336406241040142334747336828217278163072107323647951117801225395199231907250835318976604269361028167097624303935349499424181511478106964793259475678876676414835299609969023433713467456152158691513890868570397904718222725413494638719493068190920567040591205644667192592222034582455834521746524349743921591738019769068678335910059566120633766293466133886310539129088053812206423562545605663484671708830470983856479090951594655310387285811365512400751196784582515144070253474573291889555447534506880325038862844189753793436659874164433220187158042228778792293066873400315347404428208395048913949791189355708393458757167618701194548531392846370824263811436259459330601369939360525438247778731973933046390820859399407640439519834997747815167737867493261166445342450899727830232924442948530525164093015769642997205016069196164777550328653780558847803652770981872433639083956227267325719776135583061282381279363636624170603812853168508015571905167337135590419343431452486811745496793884951427335328559749481308231040179255942277603993869025257105365650273116516743274201349113123679523318867837169080624193768322750210237843902494613487933282103446618396175981909260071886479869026095984097007651803096432887490503932586793534724756847869365417960268402568403559942295882613639766984205581751411394646766257783508525374463720698894546800035689415639458563898149261365881549773066571884555430783694272459069635625520068714989234174667722343420960914249190113856632823097975873586564558660824360410453383250280682260448072357617187478798845161702981319481180573178099623264945415855197898515321965003189471681075315913446574333720925279608360987912932835760519095785265429636306033385564767562725058774283074967188767464148054376183713943447335776362453165134831862336540334442012732108799119365395165004280253735211074374022777113174514262908305742154363298608379675485194070461641348971626787195481442596947599464709629459049970324830928435138973974386841482587226056187328501614605928579192115677668484349235254811327302165342528720025533234597323382528179295243113903514948601207347977268182584795159340833379036282627325380133201490449694982764079859847750652163716471941060003658410922326959585894647716617723651650781297576006274923125358537586519711334020915327466878978410177752347126572488322059717084829499782578623495015619018733460630918517140733612067989492356881626140586137328788447067432821262702750963512323298471495697034960192327679857144557770921952523103745009843153108450582800966664503566668986157316874455116702903494665022398995234813647407670572596006037279498293284866197204138947434959682517488799636776997622634452056410689223184069951353761128508845665813315820130559295870741217905110977615074720988333030331439265249858242441133368107984721521592704826116372411968381730768964259152535307266828016472440335978459799764104802635298852010558043847888347163587642548408215203832581519237585563541275080117880783430383141114815030818404061526229519709780117300380536878705945326561677242530749433572343703272147826048091986068229447924823906934272025256902860453999731463380571281901617038023333874199344760197378930557192262277632349641781662325791167641081179468130436510145893751822869493325301886201293861661273992826330968123167006953312748815419598396654097029676364373054577273021363331546639717454267240388014840926236356185234598801102387127036557069653976811397413769215698489584643998221685597238843494538703066592294518500967277969768148015675998827391097075947546034598704879430632509970441050219756629394333587230673689325098709476187568945644280578296737191775331658067540376361455597641245693763277125187118468957988833965474427516404459283818127690880295982312831649012994418808721879450383003380476523449487528597738371524990079091505587758796328461848852008057668827715990343282572236527342693215273210294105968730016728850518568048260086377960640457898619375627641831947680307586136673526065071480472852131384049646724786615550986632675685940103464594969957857050574849471890990691244153607656253429115349328626665694126690863701049377647369752526383068969753965384960873022426510301297511841215709306235818374766052019356426441176044797702405687423507481010086102449343249322814472987234145838219901889044596023876166182313589609335180174968435177381669671986201660450389972506241055059369557582414296268153571386964463931166478536198670187946597135030178992826788793428144750893669494288344628632998640637348500685746809214923333357762464399585946413519263156264163605488513179611939016044961559267817435747918574140596608776923388528460052682005310752844210249913764576641699951490167660124855493600901001062975673933166869537588866902372537887378564194754579133771771844515001505474455166780031961316093357324552230721353352550276554658892289864585154073807428759409765671982955076740163830111478371803559095128047619337544270562717857290580202067163698496291029547251746531968353056940314745998337992397226897916414619737838779299055736458260500863290307573199298222469807168545467731680689243566667429309654281480032523630648864290576086975192044882923226256267223044920622313193545166290069819518834351781757944419172746943683766220585671683822643105484347565167649429994874995335871537077421626470499002283282089820115888859582464992994370376899967385520150465327775491273333229042278081087550593934127438195620795320481642244170724336609726321723198483208993303885762397657073289412791558930961387534525734371911501385480116522009867460289435081597626488136773508459778466276267040043753784453787562686085444678143807203192722239657852247708788143429798188893286492401708100813289853185929203816129862097812704095715751697851559329305802656768400617601995060412789326642490600551791858961227573155831776950403076080687976335835589649513781527841645810222532826969916445300678532632949412717023314978621938868161480312186367249584713845688237407896116332598102791002662081924935367682301124833688508169794150361063458609615970058617879165282673242152788917075242411913211297352507979327140634742774754238851394860970382750870991410691110857543648597033302333418678939561750421392615390620608563278298703873216424857939266553974479167869302374312458330718871829520258356016731920900689784777652222234872393207072440169158941987784592635906021509452741013846055314158160605004529775136493053217187056063080833504741975738473456258359682185120386919727952719012130129771960477781932064213310823778456070425516506799132054923741944307871725198943164889974132259531270341043890582270724131016391322870856178411612370579037123888077980989133311075822323558601281176584808019971658941846454152081860493671316251821728197085109143372725901969119063197598514646337568837646641744520495341124933619975648458736722650409762703575622201617592410582994688156512309040534728513870235081814901853899898326281164918450148274716218263234897178011195706484817150348241405688922418540054965121976083961602601241892400887634404756207030415803398869442011667326096008840049438599771112022462651592683337163649134011473372789367087261187761337880638694455178975031052866001337195095773352489887057682088456538587010960836024382550174199083580294667198024822273771507318521946726179290462351670361339236952478937916655149021477660480855537307065549180993127814465640693076658836793493861985191251881338603909793051438302839359160499128223880567171504009576010122619346204755434521075604287500520290989318563992673582754810767199070726286417772298298393736805025973654017975885286006253340339784359867215823085012087174141273159658416557732068775409477937365522053829267806322117817722652355864614831790068130348548770435984702991894416191137534693555725185231598047195680085953036794150678065141061482706332951254312277087725347150262048202437134485196338360454110284602734642136705028055878326054360953389506325905615408594910695811818542785879502134723524641428847196330031667485267350711620298961530694788061493193913334122748721091959351719728947609200420931747967145653996443082343422476657093320885063993877962706385867770547700743295639177799245168473726421493693394224190546351793571202916295453460917836957361863165183911053668633316078057660793479849790564016429065193603158524462316590305845428025875417631143661469387287315316631814026557608507809729314917025308908841824125145051885265215967534947663293468239920739693005210349284295718332278133506063745282996515196330752456297358909363284544700130469029301711715041883289553591109211352882745730810563092422681518579229780782183084536832590415230377679526588743300294717869096650269128368347287943568141586366028373440281143344044670698836665730401091030505278608145092459953071536402617638434386897760218387296799174133099380847520758374601091799723312553923974072208326220109563576030512072704222898094944871591414626969600140203906709694256637297372447693477994757452429687272681150548741772330228238467827185698832477974179967799273143799557688674346801202812728015123778363657514629813761504560695707665914279618194954081039615645881034430782655739780050624513757099764586898093836487287636863647590941868413797659932787376667362684225370616141953458219375123101342095995347780887403711685345088268827447443186063345307602085772232339716085752241887740718449051899285204793623829275143675488846606533696870592497869948702470388381998000846977470656029032178190172060753908015245414552135672385352374083060233915447979958645874206324025256785501834247567088715648725591022251179515709650942981515942512138666873086662376636109017667474998678293461832295934901521500074168468196044971303312320212008752985407765221390733780352493282632045456781708978592691190325170981896423788523829081784383616352887463992519202639134189253794828616462319155744211400179637650835900712696995123448697163883502438623438664051808439843524896678168152006005026823455856167352826614509441484372491614675119926610116063852680566058894700277678690479524306603791496242647486256753887819036243978839434225453756919004838006849944814366450139554606367565815297854283930003407295410131493067089122323100517032383884683781658943366907429962080931945478596686675700667681457649407447575714073767540639205973149452960242388949388645886902599792315592390978802363823461420019202244238578839539355491877994388163337821630289608787511714125459210694866013380883869613445648230989040259621935722964601008506263287752323981152491165512340399939880712604392412650166856752680109810463098513907542472033183814118089346076817051178542179578525093566339403780265461205129634872784767668874063229192329379154382039952681098246442629201549628688020566856969355428035509434497723617232996975858473262825433135203094970173538591605751262826799028008563860287135052580126201944648268569493125526959697734730410412052986513318972575173442751924893951736956050140372133165301209522399990546869955127784861557232745673296235162866976679123564909670666033314190937306216339679966258494351410066043753392813970131418970687572781733980320615869924899785810722556528593818740035133075778828351872920937127617204122213645820411370090713299863431335398007860113495396876524684987271118530998390615675696601191026861615469432576716039741879916493481773565197556879842300266197806911426817843238734283173189577932518125019643794842237443621290144523381464057182716900590720174366424033311493196299613526451574929089203014696918722493149065942198846482225933282701933345928667846224688242349859594811085212383033176345212267986946682070789301314179378009640983087924524514148238898747641069519325831198690570019174427732354813575773046955885874482992192524401303094804274274502962786624995812859610087030722008493760966922893544176683828154181146122037155361993171654531240826187111755818623003535752911014040146359860205824747218633523600110628204953793102835629061143395515721890858034028336850947690972346100920268082576735848791307423250147932673734647495116443321392417702028395998989442569072864222362441100283445903156356261655977594111122915459754384377393695878790360518500740724371141844467163502520717013776038658337183216341739178116811396112120923031657894477694776796922013320256828533489614422375489751873975023225308196068574483705060364164744649988878081629461752071758184639284475852574130150364406240017554171962484537402328850924608781000712156999868965462555361088946583548720512443414840491764417946413442386572691667600035661549043966441610880728765317469182417449175556268108198105460750485795684968599256223962046049646136737849316399741734997859570252013190392960290111525213917426107774751167541373223636508316395897333813592783321880316987470271877770322316693972779636346072705192781467530157465535704127249007600276799801485484505689042443254229557172620308344820328917486840715103449414650923932970818780262003355970733404334028057389593644806646020191220850046444573348803841484630576375903861655228736353632364274713826515690278167032269205994929071132056081120457906624598899981614781728140897104624178529146463503219319606542246220900889569967849883339889609622180929947643711198144788238325172558666536829932929196387667085033317925896723588051518893672294118295170941291973296866475110881232724344504165636768491940711350493388382947663859020270835840369245357588712018080333067273548251589401728242642380019642883926027897701364674781973702791966474326061600734312891674754668465471478730065051476085164416645493846892081211481271146067338033176417733599758758129090304044462029542155973714545069071751445352925918149964607249169149353454556768985544020070178015565652774600767231012517356588395494801683773838585776614833446663849260364679473206107726934325517727466268632865138668062778126262950797373534669445030048588417352517049343685871044533079518231759319905831779575281120788419680374798623065216023753427760357743871753225075414302286086408145706681864048083219446760914870612928606159462920443084803174735267632405879089387376246166611580842572341331634922004922488820052088085863761915544541576635797165445594233595986740899027955974383568223761629799417414785809970482983726175074877641277425527927560859612194002853417193872374196224504468601807672377100555836786605225749336481902319473881302934198060540502173170319504255814347589452616771006144966859702447279366626262841908145073514142205979115877526627023304326737198381105214613786958343860038371465624120742693110735160223025363367870160413614132986900070501824867467242129209449759712549441636282454294615788545792931193966015106054884003566331311040683447582823652856147161920726412248927154858140062171672660279868066630288469702333894739777284187751183762998192706722509028177039747735037891173808282115077378128860125345280823435045708147203215270200049046304511285750578025802315092929293454003889653695073801412458794784598303502747042404807047014540262945373603830123983942618146378830205527551649225628448076480050917611433722891230338223857599519672901022656828835103690815725630652566548802058094624585905239981856819894061655521349377667341296322326245444183371053862388437624938381135875750187200413346137728696473795524366384154966694254215994020453068148134783337511243599736115709887950202498148756685463106150148858290176348160643785925632206251132365399472790148895305167635871070401465373675975697645262727405700314086421353604474860783803572211367831915084730023184774565182720156590654270400295250504166404695082432936312953637953989955977398567636617050815618575124509928636566328958899954474676663149480135192914591115615348684030918606521907857416853182430719243899840629000983829050394882141312200133306562863853816189060021748555267746523180893216924993698188003935865854496082485951553595192563332099296301760373076307302097788788946536668427674662594729914126728736358132668463007926981136744962768233137452004251036581678799601812345599699445930226818541617930318173195402220335779484210910654510631180604775354140229839928830480954019652069852569415684771361361889731019999020065358658751182356895104248105585084752029076138805055959926079642217464850804474244943973922660711139950619034291294892543684909367020174286358618377670358671610941893306594926925876507413763996409036025379461555792973897181585634285121774559978898857045758345434630665573484403470588631146463022676242147489837904328223548177784539386692523642839361587071991738778677984842176682311013748412930776342202491500512087936530434379422099399253333597048581597443510693301112553192615684644787682221447173618680744727223853613967071231856305023170237989403122701106821823313929016266445590158631618039160755838638752024231001421908871877307284004328274136197739313898688561537875948030405905222144390189689374277051379951444838647911172508404342949966048775196121619854744271452519932177286408807286493480590654937385377697903226046046930633224457499937416697124514874370525925902644416149711603329929838779130938785951815409763010295781528286635840360219533003778647258282387707777507854282666013200396707391370139258067075900319258092048288053953394280677807493281124648946665482688574442608042418275037034002435601421749972354690320873945498947345838127652916260246748718392606400261786024519477345789728835997758980912649216464010651878091303204521969403088077110150018735651068490055567386775203225444543273696775386668065336005345124696860445785023509080509609034923271888032125904550497480116777225490987699134869491739658158450973911115412080517125786412128101863923814987898449324203247109449351273415956740266391409237837240984078702140373061335528508018493854717120673471012943338788347339848543911981090612374604353523007896386608096384060791415132601985630535394937559282497883767831378844557439630139869431074924096524216406060023839769646760362712952476046441527258239446756233379866966312492519816664461230514743247810067817414488551725843135200315648260306989510126706004949382900755632024213486827272426340278853435032633706084061755748200346923081290165713117027736862644607084655357958148552060022886073907700390515845522250806996226371149163563571102828624819512852575255647403102964530322139494107194194801774768295330879093956536103816155089764571733614580668813473377861831398192416507532750184754670487048239014510518419748231641352501220609934780295893927509259287478891571438775999706824870583148612918410972451295851791715249152944958053467400159938116669235597558329606938181152781978385466941843014476817321150003478901767842625876914465258715729158076681629092899007030833163455716177671605158144666548209100797422187333580177496556353838627491936784083918493705431672247341981656911371728094448206678140024300553072532119714186328408566628253973525707524865049735015639719029767549131154987654522827534792077374936458954771642213082508535471850664901447114969030947759384969747365530384338179618729696985643942402611125306962755880961446452570758381855527273270227511744298885873407576132891707083424471492081072776797110380480845637225253021903601662015295014118710527645960030216107274489238199770229976470065617961828086946670203648486838280366851120048408571864398296216904193415022829597583314830618710998890851448815098613565930948051239888245536178751354559319820925240596074343839085870917513611415065981206177859697529899591725549635900108808620646468176625532430552281440270245467324513746358442671764481721599106476752869204034979822568306897657292419072510536063273679158935890322446638076799225291824499503648928868703865519857162953025115323719245050393745238148053996329217398647333329847724176904210985352054118992505781180804073952986857126030177244361683632653138882873528558575952662827296108184251090667769552402011293589256540622106346203683803963870641262446160181652925593981166040305092580699943497452833771263050223844524661958111654780986056664726761630312210322231602394070440695626491475197897968899284130823840196314157256097662811018745547277225680062929119774444114121792128525962053608185319426716906311774659036403690581962514595979663582071582512196309321364430591117505844516627405359680887444645946103579595203931196755888899723677179198953332680339804010529624241272103155023128702474292923044070849349923412703334686074723839529182905643325428745914932190556562343655438762929891783317830150882932464812157673423105297029164214395800966729298779578683469873496521666147470925355440112813274882963311114587521313177853488457313201719420052511464110935951515419038770118020870664044066932786539874662851700286371561768688934711522628144564287601407865018701289500090623697560838937260425172606923691789371494075407610623301108414775534459350416954470652180580968113805350620853288995544879023845639595105487087771216904325496681961396078817437283834741136282773229270494765100244984866642539368297038312290415057057639168958912775091843871754586488970122163413370459411253336503861920210447294897025548881446540396720714678772742551874726138464561334120942094182975555510847190527089187497844637538037509007236185738257398768880630869403485782441745339963104037908363606908603454256749902733135543035168982827911049238010622341172138930386515835772575309120068798568573161604251379757247975805097884939767393676519583359439038595614064823761013147537896187185220433294208295592396304139554068926955431185144748095533337601828094440323296838259010082428834590417548110565931078240466483915504473344543842775899013488293934945743318885892008421118096745424403161311913951890581908754299395056308375444699268317487773077295203390475991292209936809465640516695970310730439451023700486679348470568543629184414148063418117994223672679553588614911552211225809963845159440312069864367147091115784819479291274583016904566620351124465320457266427507163189386534255672391914433938023532246277649147578470488837806621968736685641982217863926408096524127991494354353775776245913600635908447815331986992649106925615461228031192273922687133984824363130038869025003555173717733622015059128438890944783640440319971679010074068176554039929735332066675510024608334588379248279603359062910758752005797244828093379866656797199108657619619904048419137273597473860200325340855888262967541219243541870846938449913962491880827109858766332848532053282734901755642605045716665406203331015905369577765228825855275036697597583767129077377898503884434323620154423430711129340493391292859779003468695866962978295452125864681712105019725128354617276209445514858906177214142066355278030862211931792109819759206699277909885599184242593158595341865267692128440777546972892031806456479786997300521552831885385973588298939614753556293595868908346408577159346999100159586694870457917800473583017309814476790411316268481344472237856723334029898207865190253618310286105084514574348655477013246186770801594932927021517472516608495294806725504896451834022106945891348789772020830494442510394836167072587573516745697040009465838595533846960318526383122077816201760063590430572884674073831331276231103509199398145782082604777005609816227437266495757984346523964307358489285939685168130369287680885491218979983246859068856531474483541674893800156038985995704520077933846582490883359792904153285891701876841731832058491870327989250064466631540428595930957085700782218292170673431252873424001958593039523281340700690044695114394894069849000535967793610056080064933256580464717442036574448742285620624912467866820097388101552678781207089145834399459105979544631097430154722700327264632817626297433150642830153153463599117588287287866049376308383496970287120587907004177906922427742044426369204302828761553378240018356744042014427924415851862426734618432053943769106199249533487039685443664794563666897826279538256766790732847450025335714851213748740506751069584903533378026472464841645399442875491014977405667253730019496678073908845535082123059459738809598809941256480580221864838186487843293693600422691809443035424246105618419036596682228598065552599286310809435019859441420779070259142732953415167043841677425294211941305520929758916086512308883732697038681275415165872327564431550592629870053406313707101495245306257739347383219247091977842110154682719592607025457848235710914998085303159572025926337037196970393083396849043355328572925325523707284597304057344068107289392945419250543503379183200401744718037243835338413435450387404239020182929523987651456421400805430945661745039867915550414740149303605712512994276384451576157614314067863012749144277601155247019349376540377280369482159856751945767385182793198017748956845459379084744722443947379558149251297965247626657937117383374170435252760277821780179128578824042288805430017595149175200422733832120693546383638261214699477961817794204674449556334526434178479285828197312084206312206812145560290647787164369889301937101555828995873281265531220797209369921168044597993142671805450191166267652657404216137428384451603032309364862751495708873354205611958103832862327162369513121699365491040252020291683237402144703234716123879492208283067169323243656954027582516009452251118237640964713868556455571871256275496405466089680747944568909210045257031838498698242478265567132209517408322193959338287885425742916783499755542143501786572113137191991377398143150057349613505254017346815966559063504259766153999609536901074094107189844873052132335174056831960187382875478553552899868039185871225745453158972237029040831748289948898112596137476599633313156821598101733941478758917705998322596762264356357928367220469229484203033860910931207804758668830528350228620756715406386828554332552392293364225214942128444726478385919852457457011834844701845077397744788153659775376724200801242150182921999243430859461079175271957501713937870068581917723564696228975126718983996684023931756725874556637332616596872574552959274371053863104034407322682011369680369978942167449828126307668980663267380397321377263927011689839566426961115916024551862760631354143119555157091568814714129854692548600424886945529554860525399956568271588321706295920256059857594374425159167001205855777901134844620563596448543053052797021618829916758022980105023653062123723868426710422000006176168991461910226992940066611163081307755408185351806078253813424358141014038643151549510972533739789403518962934627350322268504994202360253423501224320678755513340364368396664074649395995186290169996500439503055374022290820338903096211066956742852012101402769291649270803111775830734539514309840414696659336802666660416182058428241186192481971888722731348504913480112235283937361812687085508728766106849105793944418668476471509392255069604626037825527346822442236379944040261517666061707052579926532327890048380723126227561684413607957755899172543376823703400694617165708346615456828816805376946756768375041158242282111260271232133658079691112555249518169201198122672217812369328905868949829101415244155129866006986335563890571253139859461036814127561184306232066110512213181900688903362322158145688872233971429323851085781941247726033218610571787138806158762165521304934548517209645841832422691182312522197473448969579363585020400055349096093655057307464205108114885586270468793912846775401594077338907569565566479685188455158096787801605141174472095524032372168684506813889217822392332911372667944651881932194119303395159280392714965535107543530292941385307704607738902106853929358823694264154544456513801590776137741714565734982270753434699533034838820123919459415260236084900982920719332852661792952372502076434069429003815075597513862444301611629774647821995866615127747586494667902030268858189697961315929673861361618764739654948827508703435161878983749578559104216831833732090816859477763032276007765889291818364593470156804513050700556182694923307968543720691645764382402803812808987094031349861440001485317565490938738819764847015145278365611992417671956799130324435697360008753711706235186256698732282543927040477899660118907605251240611621689246435938938926363725807188236766836557512415537843124336613069476845053874771216204519174899804263630970546042952053801743756090761432053126083814840282420017831354686169310812465168636945241624362219497769870539272934308834758706151555727239371623084002382643617072942805518764865893605225730425890656736474052917525240802557218486942306244600759947337528092345484215446505005742567231234485507973581370277304685975121878859202738618052509031585888006514867422627146928042791775123190558123170059197258453345571274824316821945731417312743226979637987613080029143196721470977740832691731947372894686870922162815181462618298433241590934049966063038041251941300337474962506999397951306459321473058537034990229012534795443339179357944799471373330231719594471613088973341545321659843060132516117090232177027757999244764223965099369309977775348364602459279886537408001001645857152297525240703176647333822425767337673777259829276082511721409179331023085108985275496865540579722290741673643507710721674579214096836944853274446652930456337256131373054363167890409356542343996038016486309207291984526932020463118378445414803922955637946574287396398443699147989264165285275153237605209356672062231338185000874109549248531955016930230074501776855713876687222923016191303666364871807109729867716487917125310143195393187212049087553716135688756951294025596709405268273288867967319653805600686805943406924935703649995772838302531644106616334275196774395276841085266982391363748925547023274718681716626750588747711363651607454122498448630928898678862879314311910820806135531262777798036670564630451512303752250440275193943150029542633214335036981845528420261186069769675347690321955116945170484605792781387392709051755196188267568991048751247979151364224143134031952044052748089854688292705659877865190657721726127101597430626908966498526680079405327634139049057266681024137523902110462300951742200024480293698793821449644477545322363292260775635357033797886856688183215797204913401158688877272943637770593480511233769082713740743841778178901201155554337687651814644811450290704255468776448425645791847259943743458948686577422352637533202654109763971504108142264730691268692335626613935477313863845226802703376909844684068407051467043095749561150004054547783952063435823630022006928689636116507427974711287197260912022079979813632293494974843974036479945982239735912333341058121937682680366164201248260961238306459748664655747055281968493823116978128798880786420327744317152965203920790888225223271016535962407986431458441680527745805538291093306556370658337180186444338833440552562242970780228470814689788264083412487181952937358149586713570854366653797120020438901819780302518915411116322847005661905916554806868718095902616768651014956114749462938933680493372509792697312306281217008667634120783816085193544874772302069786134786076040577979427850859348264207236003599484123465203250564670625487243272404748269575321958998836802113196949650972860785396068920764874314849523707504315020133584782804026023673161005446901544007291136545446778043099080115188646303162914522209622185044102794697083736986463433017028279171644705100155845858482873589919411244530683362415395605099282178962587087267157103107603217595280547254703397979069956984205336424383538453057900697473751734830838178625995005317301918885351825903573199771276160923068499961492271421536974040790933426166219584627227063998696892445294727795376233135011311965481991740915421313609765002286290650438111966878963989143460989481431632235823984133269413803562788209264727038996138166166660280518147607793063397782433197988900048659489263366048277987413309675267257599678312671390081669403547196596910307638474817432751420651126945103100065110692404123829939952179880030454923418780655011497682892540922049667459603501914390058084909834893612806998597812306836704348038843256916399405123892957054774466931620988200250341609548563017348836972707646157475835953543486894647436280323474774437084193645904908307497528876470967029096043605996160458982027269301694464397320065965249146123136598744930661960209096386441396409394730941308913582893005020761828390548600769283799296387891621899548249058290117492188910111391778651815585215350554173169489043906161294095388470621950466552739859062749141902430757190102278562154419480285949515214164849703130497675026255919622107988040675255410109094165125530006683977603014049578022045873813613190026690099836409885397218319270608162674901689191377023156272597348229181149160671037795195345122275473407858861906680848243328791536363130758147636899984519159346173507985737345189461061251479029013077415267722976621021233811852574497498955545229268040672371926403866726261048904912141858563792712729328815817230771929815790468140595675219528323382854936597034987142736926247731524450702715458220197936413881347403701612995351744036376173533377110922538081301863749442085725232826312069090627474229372184349429589691995170622745392694910225498709664559759354330921473620723137953036492824187953734957194699884652442365797159509222001963299571395974429958761464544660208768071980116983744308362939881628972291394824001756980509094897522359403327727986573913416634802853208760493784747950250745292382457906397691745452149907580325251766931090328296836514216682716268427557217092785223453826906474017104994630928517306931069233380729777341496701990982921360255332976785266113399086970712426630524951723558323236185918464862827437029670511109905382132650879308559488744619741748608539098343978596661111829851261810157494557613857717245694424107890646852551629761687110844547941544753949461888515331210693015626058498097314613176219700912740936947973868490248576990401581513270576317826628159803269954493619882735039746710490591854679659455830657874117165876128074563775468444609082458851392299111871336048653316367940020710196654746481255371101361037112782368728948180193690677209752964083344192817293103284805145343329200810491699619548624071185331068133533966877492985851160746198279559716422024763692882861169559881376985220859557833890285176381479804360088548297587449914480268958895789238255860622093383064405050608463644474971442358972870637587023777908083159244543457669934061530487062842005276696202912262432905605926304510326277626165462675341437622217881878865035746891676839520957498580569994721246365132478014446131036118242061139468497615489748255114266980444909593413971753603457903622134364554763124442399157059098772453945952024394177519287191580693603503046469298581317324382091273852890234626193179195451530950971046569636440419539049093226193972446557920538947693990871101993350410500055568594675535305200938338766774993984192200559340619254601061407148175766754503285707673186846806981192480775797379834278699311422257062594147238025606934910392205477779023385496377628461473799034669378598488044664024327932430259125151476470576129786637337398480140520680437394354999140468319220115733354815854373724770830254295116319221951455374299023845360482413396024358422959505405797897569940570405352183981362016975532415935142393138950253644095788848085305636978222614410550734479089541187820240926825420989923900425206432355500335231218423762002774498559109702235248438930489124569073284407787157563253252170837217872800402469822761289840870911137419508901823485156965981590560587101802384117544207177770528465856858225624721052506299334166592459873432326752268466321199083859764832416793042925439751825751770999262797684453438942283603027922685310602189607684729604727229222570362479800704486976548572700196096635746643994320718179969272426453362618695196505696248720503215707412835035000116616897096113988024264725048228818622017850485024206699847170567915569738434419185508984767957605203689016464263721356772279598678608588647614963951087823461099790577235056058512056854098899392586035993973499093339763063069194372984148785989419963006774142299069330535084089274515484918701627337449873111289817388893934593553897741391516941993938354535461979845810615045584079163655896477796911616534636494048546140105998965809620019697889532795670528199117266909253904564736970903121925542844935669493341359470798134574440009185594051296839954927008043595690488489107134037576747464020011276921401555452326956182011543223189559665490864933093850496438468653670127209098628491707790278780806609174060552092745279247496689914163786875210514244135111741777881350852967189656135810418885700125851893595235806307991414665043623523100526805773868480415212795679005107891341832527850006080722604249183675964705016837035023887110775698639924838326579193978968777067831080660957355686337358010779132574342909218714075620642645860389727179569751815921298155385744608563067330432767366383556948509828896959010725752401943638221394076203492742463800881597765482895925538150278056368306935101078987572921078896011263279802001653381535268646857363591397268122266344873050253719641399094261897985272301075274008381116613661542744660875200018845109790176141532044879094088585904960561982754302646586191090843919196069700793116864009579773554216526956779609298509425184611461351160636901246231301060480541120510046104571351215234481853507813998245453642568751239220290527984950232262675690124712702211796176235521553179583570772453780235784811076603335244224117505424412248135628922231616855903606771084023354100634523892551025863066284645880726890908758210390994916630237056202036669461474211646954608968842208483559896546048997356689262694795150057009626962622417106721367309784410931911365861036584524498165039747505944372247058954297538596817396837117051872480673192140085387072387143392487218673030255384074994878653527365077942112820283775193851499777852256359155271649396960144464309747642108044521646568011735308097147150396674643590925076530554934822942862321061496568438826580015939845848161605080068116022976831487923746647673727746873914055851284581996918381964508904677595372959996897817437257340115615622014637968169374525322283071670944126706091112893157400161462456295001128424691323443379007581716769711944001022600444598315568740608731916465667635849008984029258172651482611754825702589662776911488541364084787910219975921730328257651361810169621408401400827534656170264177101534069748403419663604349567871150032281663405744424045450710334926985835514492562390093014139884941066166071162723228220081018519742487105171473889459996249224884202487303586430679551558938317835508840059983141619456593251692279902922722094800632389529920946273957538672700749341838259822866860602399078833376929361222743561977331476249070624958077521414890630827560544763432404368160520016297639387913920036249685432642518054993345113098480570993761264784534723829783919536726541272247656193224253340737702637168983770194520857595395773986743610305046641821661344335509932357802310555642938983949539680695332192751526055310755623625537641142097137710275177647849941577459339897417260692429935906561978903154333085813090105863623574560292948275784892603458463930850360233920020453177383629192980783675516877725318695444872078986003520207586648414540034300977949213295249975758804015815871215956854331788468756814513639600365173901167175239208623714169219939265092219687308664408922792155725170866223684194692564524627670122951707561859418936253739288602465200827780588855908747052875118055237551094948384074109245252997258774360711637806943283071614460970386619981092525005619909528345570886975425574830799157494447137831971593047157063530464648817903563442202633369415608139211838134319220098197034978253578531310997654201381688038693566258159777538120055841619360905807991610392970096371760495377460730248927276554733997183899403267344433645518469685427629935223569609171976345661748898588104919511874230257383432707975412455240459569124209076043611839855535618627528744944003823353265550739481112390958910842871601629960825940184524038487603076551164917416049351741931670453639242684539552045289213544981693771831776327803844082956549825799959909962370874399004259936906937824153737131227157688622044884079714712549790914863038701482345103308408646403492532808627304286248735103095619358387507612112024806506721584815875787591962184582631500375878777258980203375121821935360573763337333723086997507236824048018944699578561407130459650720873400242124000910233207117493610038521136597156412075161837243851904282502392040555927114379082572986720073802579187090793533871481805724133991723922653391668404378707599687488871188470559633187100527512791928187702023111437162099449828782138363241671643171235226622727433183528969896080465666652267559933178536875065915470443205492701945911687148696947434296279513079138897071251026620404986577513328745507867315163397938951781755297331019240548315572204462556977609615963361153114680496058790339129909667404598690103040659514406477665108081708117999399916300117359031508564694912009229106793466480885420898406490664716876214592985276583892174283769038064768819096256971227194362287511749143055367414636539856984955217680744347895921204862338309564665148254242650191948520652611624614327637761707395945015430633034938414783542454666561017199066060921535786498595915470949038343057429981672947106107603819166445041946177728048308375829249927860442057881021056013284535058018636245682175219361752787642408627997316212409659646079257865606275678782075711222306387834982063953919194049801543428480814091095336054307111344421218184359465911664237227937518404700600817551325279200144389566614161127451295530737025225974366706488073978568967858965008763177743687434067791233955715556150877700463185245450928127607632034638308063186337406973741876532431005044506122408854974649195138842856110674700418829996318165363192730853378495229822494373882409751927344682913188958590609242014117984763425396729435989867197744547420705830857374205917274740276816878179184912274002750757190880473019802477975850742348796397707364987464883105818577298042156355461913567330152096017977197127652927279271649313962535140354039656875719685051509757079913876985891434153362105314952571509959408509206090374501426028366276788650063041890411256266955971456760742371615694623552908035086015708619355912952841840666603158736027690791763161281730822412237309001828788763066085941232017981057664576948723459440248488017243799961021843115394010375801181526663576609826361936390213801217115721408796444618302599876598683594189805136650436503871215870768010776414755256318447043176767517142505383234866348830688305641982805956662607226967057297684192308166663603968070975169208635461195278964373562087111947031754022715808119285783015637522230581397604439839349777459529320202867867903108007291139080460696938811739988506430157374288229624096959857319759903159866026920249534242134876917027810740359169795265073164452322005366558634938600430459283804054415163322583271316337581221630133413880663191732844522140763768279874629526447826876828441447194366449188979080578835454679042892727013272874099098754052024174051275584629055093466008648493903487760978914158292997338100778259566445698400769594292600506772324719890396819904866303809237261424188989514294502010940970195161760198888287247886714013546870324659806793022785421605248809496961640208321983778099619470304778120412217782600756777521276256439066302880712019042232614318858838628855289265551353198602816665589748987664845495493525607425680936353242470078251152127723395867884594022292949592709593543025330582005407547566949453488157669798182785688626407876152245978158811403313529753881841172572361451818855357644304696451100105824673528127881254752411536636307857108857386722072839783758209154978253081263847655833550781195165165783225781112679466538989481526525007157668667475861649266669775946540647962529414717589375262710731696911011667672364252402842501923845155004105417709823895467379060847299177266952571240477035808962712152028565338225599471847411660937544264020465539180787973109444972824711684128101781806351554192462430577905855590598490999925762727596965310205924689012860933819995868226667094978599773820966342548304029145303817436542798312466232606240682375693068617687250199102210645497892083279913656270253503035762127546117673238956425650889219891583743630643579957157905194276894326313215297548596988244614701234193184505442162962459542298109812022814248441207358908162855666224003054425143007430831419953150670655492871393839509406486601558258509954895807045498649532968080570528692117379699619852831721298012120510771759280593336261590809244316359466981393382643037965140934575116587427043984256705180116902721996171513567619672849809326536425835778141018742340658519557036817963112079623453397907981646251389345476732758918879667353009946897897249363290391457148796393325370846720564923326489661492963458891708553367574041168299408443527396332804952588005435846190205519756894260335682394650270765042269290474846081702686341573246589349140985483202060095750393190279309652443080376360618511417080358234414693059162804608431176718976655790323658995413123600196375487702412547762992851456956904944285983597704904645239449360452262317372689895492912669780075838528838483155694392227816606050743499947582698513098148995843029761886284346931325762958445626776266017306075046436223392025174718715351047865430893647104669988040831785563346617090088779941378519560986020241537339698371636846048981088119348988435674296790257111457560534955335810178767157104939366558642277568053892560847116770444908502673958416060644066084892176962898234178931130344362061569548011343193222157858108882668834756723821062312175999467614476598123166287163334174587299262817750185288498821769453272053044051664168917730493412240616692048511629916778391888576332234459688594933548844958364693750640289052331806869197808979131247786923846232990722067313793495207735352138351171786056051486593920938960398223360164767585590775736550391514369551523812582660120837270658692008584071690464867437801203254308419869387591716241594649779702345287491859266441178287889399821710791314505398490048854178572811117840206617300942397515386715109754123805726226565310520524318995038099945050342786129371956524688245209168531922165492804854539727753959125471607929185209009616284129213691533311851435559148896743807388513629681314288066236002676965156124687861593562825417465376068473726231720715122898653423014285650419653187481101145465062729808449942852416067084954627647922250551204532468147964658761728316379444586834260490679102415537647759087419109087912735832004921771170753647741513874565437705600971000976321050239530060951343354666243948778486392530014401456326955716235974026226189835581352441285882052364099200153111103108450958963230925453821283773305943310094267969103581525526694276422408881828304346041026266601473459629707848342628454133819805581381817204265750982136648766257576419695816881913040174274653655845389076963717110881440680095519275029206538567438837155891205146393389619744834062847747251949332240194746262349238548161725851440909990442582562037406467488890063456225483167462126662074459206330038365743321170031066270991058103940041989004224392072379497678205607231015339272803840322945599741850505630456787096944964417089905658474320000618066657559273274562045978425876692241931368456186486309905813610827636155771964334585495594941109868058192396844614743041585945244530433804137726450518258990793262015028602521121618667280376756347886870110335955288870508492932032641423429275739857496828976566195870394898349507516259653874984564044177845710909057717929140582508724147415679050685912336743824325181592836744922677713350105498265888301344516069935957980049441981952062239299067699597455066681668516490620846763900121779331171936089763055686600646309612826770594282631916765376815187968070532771822597225640008306345476313449538646678233854003284982592838211109088728721860525027463559145558588934483552882225570019445167473967093615349987650218887955239286121270702667814830486573624024826045086745311572486092664844567272742576574411799523767116830559448925414567743451318206813744703314944221014145715269660300002659232598407374977594331973273490386419916005812407722106270186791673130219198084344220922639018797142169384676115784225430342694254255091840231501877540449271285284749733309062632927667557539169496604775081126465232616406652499250856655732219307741646457732265493477286929966130407332974179471004822437782120413785394556771784586045728075046880750351878035366220839213406564486948457098901565511135194433054042172812451665869192609889911656432762389709485004737151360420332926584941051564047402567613318914713170085452689414459265791174053167683734510569749762218986485114248826565576651312984850741201761245762674042759046373044979383077093208620081871927514159652699821298093026764601550343136597517826539042223035607849020727633949771945215202458882353966197346118577865616610669899078567397924269804268234816038842691026969877959541029586465530665685441751555142678087191913462832997000007873038375566934343661427262752972819291421113021659119061669419553484519735085421569257385920839602515075276935517471691265239258488545111070204175722773361644229145478944811042184334267610002806627185301713180644273182158666954532089185404007726727111226330352160792449881594865298793680945726279969251588077150046293785633804298227110203827049916703951322315042526348302469320539357843676352242249203385736724815180021178456477203914769492363652338972964825772126694523618966471491118223450771857274102742625194127813917687437230859445077853064812091906814522783057937345834578991442076157815163284581451629198426668179732675369991038404888919037844742079086702052755401191459311973340160892374442050814852255707846814306288953562378565383154536392707839639430948746162944500094715789876427500045578711267584919529172962124819747736407565943024740129565560140534961804775762189133897791212495079568591460521334199975890032510469855140108651545871344832443447007797968474784183330561682725819457797428474966923989433990367673121487508029699432623029968129711372467652978251201982251842314946806627481789700189741416936765492640666061337864140827763452154878745349955119288277104898062458435862849476113778881792608303397786261417453974737461242046255657926345051830020304801042857972162263628095082611298096412400924686431493860087514414417414373299885220299219631522090530451080474517349657897429462226371470883545623618347545503014699926841954643050711806608724644186644180274255862833630462008156628507846245610184440769742192461569590230107465679044813049066070524211140911637115217336724454656729744472724471007251899077179755592302704216121945943080829533203582330968894366075569016245104004788563216625324701622038400697794076605529077900027629808093779859879583650001366383741212583729480708823400778580371898493569156699203680378706076919238684297837228119256457157654752704137490111825960066469770752716038587062696434590453523680998470745847119965571831417185764875111278117955734423607931544096295509737385327108588019678375916294281403267231294647355362226007171362939290449160072211891366405071896767855848966056487651948580161508103195837259550958893793226923065814217678493089520447248084710766603423823083164063282290820075659136943223054815741129688824455789441999337684365852210801964594880683241010170649004132621492278268021345065307499109646487809082352137366155750595135802672615867474715401350656994562323445334058883103820064664402552824974755472508383351640500169453371279477791776294356353735023128733414530180722608240061826247106287187071577753589243163262872726743567791508958622365947156676517200500401668763850040664690012624750684078646392086908903913206864856393645191334039963955660175217954505360767831321239906854852144270599058983910851118261815986203810090908279124608290690535906353111401275484097848059431226736700633247184658083808428683513302617572738066438253734726105153575343083606225320527063101503157317793426408891210925342233347122757558644662336307002782502696891218744045114226955613328816153665672169768225192170431592296277143149003662900639302629102805847508974583248901305784373750845096678887082798606501602197794430306051901328444954839195499526293625718206485428385726930287044008732681123911938457487043575693768334343929990422771470661665130428003653778407772319929723543225411846120387221638704588894439864087812533126138416379806943940442494771539787336041305801944024225614656006934352889615986940642749248722415425259994676186688173912784537675163216307037516682515206342717226248093977953612888906410329744322489209305109943897641405054368087742188020721801207340689669629642334006481484739028597032839267360644105960690119101217952756123781378070434577070150847396423427085665389901604692581272051965906958565369240232046652869543706822348439891474634459359254239143823799507141265671562511382960198755388877500606510504838058326302146993854843199794616494144690349650758224020613674956298433498846094017184184590983539695057167628183671463034699179802129060185383935874008051004760223672537954339370198139694121453368062490773509359604912515467617020768526149209276324965447098764435901516684860643466679404532261427534256728677997838985798463376730858004259880859970836045902744550815587713941815591585939336652249434120284718917173852413804274564795553946854480255908030102464355890697608294391982569219541954428332939510760894292182569113408825801983122384841464900135279554859493109198396614927584381760807583632541517415183313910575182758930807500687651517109045004778000914923487592208860180750782241515916883897899359170215123425172077222224467552910219508437786186008157324414231714843379894150023507683585024306442077665643302832293882094519409189235007063989404361386262852093609246941770990876394983830704366216501427386083394588952345385038118144615976624904624503476762607747213238221683963250805482716779777072983097444666745165718765644498433664324601600016291552976247057137867771824013851442101029692375643039237693276350690630173701151645931979550930137178473197111064651353634297672805433714873299481016647817117903869694631982062082491017601505039172345392771797796501956139952630545480936391273868677426977023808573836053996569535926782615304079139112410097119541751342444371742684160520177386261464991804632211350555215807086578386345582597647175819523804212243474117558277540125728457621203185290581420237661264784209802231949711186481622627347975953684087069823977333773458852417154427646329813399940189333083871402720585110948792179047060722358436772075221738142459029727103504751717621662875578610661938105420134030740206635396561042668331142076571527605464876186999482809947212488297734847392340705839933591489909751288690344235098167416135197015587854335336954206168343196401556030154767287865103277168403440310221045845703800362241122772215738263797548187741793665434904996276559825844876625243540087553485644057544484147291975224504647869251705478355242100102945246191957060671416809764054065662775887051590652364365303966936577068891902504116674237947236627574674529810322067383214962450479058198930199483643971259391157089332454005045427906779827538668024337008357955380089327740395091240384393478336607657744256820799009911761575734160911354570167992190551566141901774413566731087934141251272140181726648492788672859355574162273233923245868567893835554143407690428537966425785993653568265177153004240269654830348911483317203816107720639725660974025834308945773424743578184288411469152249396675485301086762957708836716875293429549314046699356616063700853981934977900601256864242669696436361466280435721108550250995516546223005400527517188461550413125787835198349314540821486035772384857844245569598705187649931450258642771997064096088608465114053718714546293861109811681190702475951730036239993112950493099567017750509395136788908249616191682892122028867389351753655704045880616609235624358652479023093084764771317367458249503935159741736871162241839288096452007673421248963760548002365054380585959325879505551738596668002778918745595878803884603476023206379133298819205500021606569104760859681539927719291995452088432579485118455525997766477708683350040437994727840393503009454466404689717796084579120717303530645758920315799323556442986268819104789623213713307560642005488245726124991389624729693164513076111949532894828694438057271200613268865629454332542390350122296162212792091176319468862206988606623332120933013547003923585336158436393012368494518601185963875639316974599179236272091370721592707213804567910854219582371869550770439514688542344392086889037490319765638940975778159020776297367821287855578371739940723476977032942762677734570302383259870195354201147975254108101989451409085709432493396107466600676375940069223510212300554123051043704231433279835385031603552154751835745767043392832017185774524811130057511327043160683455608768883723542848786949794988393490756298118559154467943577786257206439392446645514912305530353201552115411415504481641654890232495939163370805803970348714083128726903769727748954505726920705097423194479104048636263485618933895976397513497060688223377227539457065138804409527406153263074620317411068103308163018366736999894177399185635709787131427749035645062416166887203918071322323813074969056314651316884983576762174442430729273223584237815953124392332971316942103880666430446046983624136243081414985496760377257880339145711618260775380603677181041101521492256412850681517962307507817776704785401959803120342146482427582296649487853628070913799279513337265612518575999102264699389482391501447326310135137506980901497134406972412447791326176875018965353986974780080697366345804425062243663617338074507145230869965337151940614382890252543886823859234706185461956827967076945673965608330982244723487242902902815592961506379337781603766721250514815310795670044856127877213819853129979791871023069561925065886030622244937433226678764204245290857541244690773264845736817692398869747355850830861542166713837222189943166929346023501157641233052626757801375615240053246851971136189687309663434082052847711863467990921637580126552338659633950761148758416003172576328794694536993230719479781732466053991650761974026110441200959134821980840115843814575392760719718692921170579103451290722787196116012880292933654347703875703514907508531560784262878846154211945357755491077675005820959095981890184858881416994846997625194270626412495804695256253123904539944099597855323088767456112310267121774512644851628645078438060816297340703966640777980615375253282519173507522167394370987296181815005116969370040973548356540496519239096112798061892207776572905120913780482644673560697031886747111359492001708906774251503527444909714898759472898043044124223127726514326313898102934039077819890776029941638971418866816768304106646217314620083955500450116127063893955569209218165001806996133767781844807139175663087219442340223374692874098868762664804828015446996081178168048996010586636966574248699225027594479511452944083512041894170204702773330991113633975755759187356045923972140728128346318702880463313755954790711026688611254929954491643625430894264789989531467882121373142036217775874629737238625699309808144704292032050196874537125555428391219474135013174844549903385717270649647040642933073292245800913148458555791771790956469016679861964836753164089910863072697918773927525190256705654890853162563856434141847776861891394707029822339871860692416731619744565004619494871623225126898526788984116483830690005901998758090049024753854619752676506806680620194291593549311589177512788509401296451779812101269144234035943359193560558361735839520791901726441824595952783069830961425516086984773480950053449917758075055903966299666475678224779691430363243279126690493898362198265242772031031621842337862189511801579985975761109412021128936223420675537541514833005416063441296545983369241520878897115257648048551108854219445913938868709912803932401415894644460065925110909540034273566171028780385896219073897095467907904958376206739134192256600535510555111077505637845613416830507126615098887552933676633083050480968889519294171897003269988032051409042317212620056230060732495885763856495994415908101054155038708505102871345707207853387849896564664745965209709159176202335692498026085630381025046371281360301009591030588137485129449797365620894297617330340768141034692819330973318596906653628846743257879661925054219731116636155050365786168984329604066489965909226415031493499626922617856515715024460287384032550657051845444703863662356513704367420312275904502922178462671926093986835514095088754765085628385475370064607638336179250608995271576664334250776192717208136981182069353287614510433714117532190474728528030746781905929120375608908496161801706705613537475606750173141564376510415622505631040981354100277563247691970853769263825399188961745769027609110740574409696427927670909963597031299498307972168952054015432940414724211117845334477326771443507884034800237892923611331376303330586283533240527814898166500157775654736654161521807202241530259381739608395818578473149656200791227943506045535760446720960492181718018647069284549977585211525576881674965362473118661737551036245757071572784263919547293712876601440787365973399444879059596702460228292746006357663583624446989636237233016451271391187661493532838530953335340173086082603675471590750856970945535584108903060384804896337905918050933817054190360259597196324527022886791913288208011966722304105411849462293044213163255122604910836420313211042570473999121192633646033660982586595565600383263522468664769473686822023046472541213600257705463293531327977781190391366942667325356826997060944220769846628361690956151927185077647479279159338345452088789575667026373078533787541218248695437651008833980073958647928606365426417570392303164279546449614470382914271214030861631755176839698955284496310137529093116854972536343571289171656328821243780743896014080980795748136761675982415327188493140080937873030925413747722599457243133123630451343664941331280970237524422183646227337248664508265482330070194988108237144954593211716087664633696805540895202772933404390623085459343849311343478890003795420625045637624582279987047942059431065511631722069687330293307513238175661078270793113224996590691917543675756606454358634452708762659496739853895791325517428781440643027537519105009320177769577875006235737310077777196128000100029094787390153303957103790022015287857896774098533999158056454073119932619005659049270726413123736628711885242835358369551020882511018081654257058501115839303949446861971514064560070931388333378850450689727980259206951164193593568445622505811077472283871067526340133040382322492402628718532774774278382409812998213407442574193997541356905239300706916992167672772293354812603396623158763671295055100932791226243479083063018324982193799150529735003908957805387240699804416556291222017967866163882202722914319869113202740330672990111224764406386792209549786860039305173131552050042717258392996589453589060360311784450367589171329896786726479069240437013210451162311607172412380110706372205677939520398546120588379885028708506120683620794498214070471370922014048625521138617808155831195051633631062938135771486316916776883934169066224105516481373220020276175061909541531209143621192398844945503631995048192610731361622114118167156717374543565188287260165248625376769331853240181108730293809727253530132970584267538152494917721847924381249278878735599066458805448280548198507405502788559498344713870996418967850040659061984067341081403147907686423377254972830811001416761818983159604768252678056326036191796427339888714237085196705341063574112337672723269542979656389606341408449141075187237619029455901751801753162446066443315434890294451407065807304960241535673047878397219184334140799282009321709592724475895122907730856467292993549367255522608594320139160785728247444566435972419978156962736178338524139327884114849238091854959734677078040230941043207053521264162412352851720568755556591215161648745239428118532581076604741657490147352932662583086327140548961347744303360817251988254205228354353135261397293668891197981211720317369157589869777507879636696784838094487096033271717800041340298995329592016358396869311369183763273896021295552088396689351973759826658416090225697403402686906050993683877885282497939406297513321643427262415130952564013345951631768712697172496390565386176209529382019678291658321260770054095509448971208793222017568167978108756693950376803875289835334421091217688906305029264654905624032213648432287125338387891812715324549289627147080993164582570542999658112384090469489513908867339228569785046026420357765815866472903251174215595456842367456594979930672835812959063634408874426038294884246750371020672008262609747694835628688211256924526624852886129847115053221694531250949116867544102922602514712729116147234271150996478874678504765192364034847895795166995893650193559025572076989201554021591016317737907272323372111414808116294884341754421410234012008358186301862715822322423505933073439057692583437935317917731067500076337305262540603110143047809007240675111209561410900292611618183908169043975933744293132420113371455964992723310599199668787137182695607945355930258242311313343030787753922082613917007316370838614805856988373264469329930869697451404859229453763443641985841531150582106531286565099648070946580973384802225617436262657196397211688135053567979089175442847186698372755886971629284344133983949146086841097935711058682646009149741342911021997997603384696458460301704761183697389207299982557897876199184140238199843566868790663171744008715446026953152721959796469026812431164530535355083708356042834823011198129435634511762935880102302759394822000684584258894827288360165227119331714316491440373873739018030050554619057326748688572775506516030185050055682001987017845081820779084646383864569113181745143278364532963081002182376456184381691947095581730566491190130634386529223473537471840040991903529014230642920516155995018826765396824903981551708066481803555872406304752188799630442217615441430957898113771769766515026815988275367821035896431844485911366641158996541702078827502076265847716344028380357827008986762032805914341144926924064079867725361750402309436516879358118757716995958009857783612033324808915998884381506148171667579226079443924957356455372041933277092777524460111532807606438061284344351257855987639904104262886932890233115675922519669822826213882337204025814244891048535952965734800671331324897798479651317036044687507603547915702952486473843713551135139494132413725453975507528196286309068744516410790525177716869220633591435149069709596015316664429239466090341662160806016470062794762358446703512663152835436632861175226794216819420231220841821742689316836135571431948316656268245041896221783720984980570824793767916004187343710915321251135562903469983602985226939063653645051606983622566621450807116684827585042618659571148474675285703347429507613163167450601235843874806189745708295235546084335319905985292861368625518864470654753482373749656003855439405510223764376735618246608308476018378998671291947255983012789131348271918027998593677955786846416991828738290827353090895392018649161297048393018413849650337289598228558146457593971788808731553086681468584994748978645380164450424584029545284714470246127046891086806588406873530353877095447487220961798636352420747386396180329677375086761749027161519239432873062910593009385563659341290749932601088542857638643779604471000758010783231239087444069101729696625018069317976468806652257617896969409947894329390032258111011772121323973826831205737250428729353126487625130221926191063657963505866044073523989832823752474868653606609376222086023552741451391854528655184771317902522321938945661347089014386493509866115387938906474948807462076140983886844065411048093512169840416676739555056299926463320570575471626467255452080438819496446624914669860417285428021555601740358660442587432615797329236444685121440099936801186833049458128970837564306560525633549004411795416406176758163231665359695009133291665792335051908087950113318809142640886752224339392696123314538417343074693588640505786126599728586710591732254576149787785020223807591095173599230995050353903406983190520227328318804094113261743278196403068028196951813507499450749264222727948491551992907300056463650963727177081041574065745701356157179806920709924964118077799391549738227641821560468542427184021036177080559825287209702205209747701459382380432069819015821268376615321898432753807744376067301113525796513262011291217515346418231014427700276703031438655239925353642752091234515351894752934044139468669867534119039167046377398441370664441177044686907660998415732628412270475456064188903523093478817335987507755225578759323401598868190071847753612391793732982197372469473181867100050874259065691354975904842316656869356781756497659656006938699905248594507020372841272023669942483221214523016145206207538708580852590515521825142877874836039485807705298018498828074606021248308310367667187098829850134108212518967108362861897029347886288988710982068862507409288212981139133174248214278656584912747071100986650089403411062641977285945455721223090321488475973438642655829466291703313036117658675822437580603812006331234718000519215246495865775116135461459988793510729058001253116294646572999374350950180690508422394439585261117728325388675310413599153447885819662661126166238491712402296752873454275430416199674924210956573818703263152963921995440436117583565878342707425492074082072669536803266419105047162724490449356598226789993760608590734479954536453734255006177077940587482408649867623470452821487089723551515037594368826563155948293645383502577040761047849422711036335594679650265949506697556884130897219771682882750902016915175867459109722283644001043096629958415582170333551047510459471364591364965961914891890470415347096918082934154340165134323136825887673039962051093583887693267107439404760886254423224782433548698433260892252664294349080922127075925948882042756623204168222459712612901295857129933328991806803517040364398135497635931670458882083858320049720840963813141120613982541695095624373380979653886429363763258481053699986029144303152455038498596517044086127663606184042066933656817269035972978523792658319910189089058074052584054761295679654829837114271545658046079114634314877655025976568912517774784718542778361759503880623749667989299326882168369023047004133253975589766558956696665223270618816485933491932710838122323264941868126962244609227226683090894795782020809053098488268761717105306008938905258759115811787475346177460763131242245109021425772942485463229007000545593327416533964996038519768176278792131284395884552604040352061676998939461598598228245203306707623240722846892997844889329175673701445755265891145629755432940927345385389260783761312862786914423370068442088624677012183488155909599741785634081964792510561707727700591815843817234781294083833664725279293473275085803905548278801377622611568472912800569694544338214857921324511422753333832236994943555851846791094628771429484449462320344400791833158898382373403212398579164849010722614143664436310427662727652375139797457517924275960208416450442771243503544777197980168757848885975494281529268462281618087741793435966286468762614769833295731269076813773497055687983871264262164900937803951094579288074746387853403118519361154764798663527875011168826586299763761549521767593335873903356704887199620084651405762437896976733308569318404780531056588321002450711778678622850195302637885088756816724925507809303975909508732214683263608400017815055023890146937496704476589900547464238846915238365770382246203814330301474878249361939322617814405494741844432139007189000819911851396090014313787682138194577179358463228336441751085377937868249028328749573193344581446846340677162790041003380641362962899601901121465424996130801743070745088338924131875233224092497921794904255049069093703224333610598878507119448541216324814927491449508033199806531608731175680732704070054713422013091737135981857335565330082900603862591135267326897758488702992512943548654187453880122234787996303087828929516944861416789698098499327905884344724833072192760906118066649378796434515729710439241397603536617223654454206635134502789360436115417410450751059588432980300456303805746130728331839355171791910739905726864557704081556773851472842602445497332957828768986151507515340219997343667928564445981581879762756710876403946220192285822976494682763879190000989093089993785470895171906859281909624350970076390211915528746973474850411512488011385478727511746816057124027982515085561645808594705723587665752521823867772694592173783167063843490413015771823475904148941684103873266942191147866653758869326352040716863497189274573525547591998594169935971569932704697571917055728551451545667033559989276679493283075889006035903137598250605759622185758277446340928017916793500599662557136154625837096111403356881741494897497659011022427528615962331920848666749725869319157416112694602173699632262701897322894336789476957884170120820874860901804652855038699428726016751106684933372431547906489849559951115787599626575485501895917655104860194283415500179104412656949477376787329187150688449189371347063543465358950889330890277008403265068553729425877989781374662279156248042915455497502023556512908345095400941495232890140772336191877090541415646298786959148999930078868199039152280505892701248135880390888731064811692487724557513883116374784618258014650790515109186310659106448770467505600553982449191711703704554132047976533776791405656826265014843577107425754664791563727169327922807108299559478446359966761964646221306040325112853332859055164859810816952539696916313795306623611337727383332577304131389135682527829557543372453052638731279276223956274289152788565539910094377966934702845024552711777614105874146955604422178720015859157045396954700353824456082328747493551841705078756511133880004078692427971330683791770279627776361340313598233042788065583870214759728162847404813668281885987736493781206819444619977551128437647621897906436055693412774143081137624590894798896809636788557846675813918320934134993569666515570886262369191252075416732137118205313793055315758903601919505251027974144160882835699361052742627158593959576099131281580617493382478622633441942276121739688015188392653940539472038100287337475836629533407109063476529497521880459755523940693898450051238571834153085921750158198900132749559073644341093491305064210455758263145668257518403680094949887036025766251823547659815683110888448034081905768493092719941648448174275426431690206872685407370895738371027485962504423072801783586226212727660833959626938285931811183713391762065356553204344072167552916049529504805023732966869049416069720433606216077463867069193885130552563363750834439033887265462884162638617599830956741632504449011606525379122281107696807496940617645030251530702808792407646604944347674134995750546278538427289361062193941457664756737480741756348187502876488102266343824239608342176741128081397422444368677563262494533932159268021877988431155484863965536361361549841402809018306528819297523032029068361826409127190841259020111760837943947542210104755098605428480641614646104762403324622932321995433971780621100186633288746008728361629599156411432130621610888052956210636434811866802173865587920842306792245974513847924497878038563990520499954221785823095370273786559843555306595819261354508044762824539257068157005141437109873202846213451753248839511849103503061625146771759504039671344996153921833190082658412200171802222796419332589657956435501595429532675013548107289249052677195920759624164616401103205411685377211820391083430954390052910943917346144009359803435706593193335997250809179339427356653395133635749537928373910931881224643586926202057295104731158389948885528872422650384921518635166026381405700781114936997563636711623430426194016604102091609777280026264555033169257896297388961449190007944299134305012358707583303735385263648483280659149250177024553040365259470082692318930845741865057061361423163178470470658962735303883003967983017942268377657513671674069179579973782094931277319284037037514246743134130382081148502046480115231992594037768036909838756662642300455007600326125294652793388176660129311702665466995476521510482557551979200060549872845660748255335714961024934549125515685179981989949499093535780773013432968511080186056440212157568608673134207794170275676885836072700304367885976388521647524979341888429590248167291815436924135611189014934842015433882125972812719563632873290670463826155426969123626444995503263554815850148716870149492511290789354476495544163700294793921711383642390571659588447866631404423572688622554538454310399047703413119893532610752845445392127384354623839812345700076440309781090074449626092909933947357946840354102971961320765919666460020550523648705814615662250550422491154722039065140108343502733258495852373764016965192997961856229554894802022293673151652576403561482905743882934463893971994109291707810694078493909050949605224129461567789003308483230566115904299174214523118654227968887456575279914799517233314019881771755167244009664253463204737637265167198675977187712073959984868083516689147595530170486990666169197609058408449665563381615505956830089136461711707458786221713642966184932180096255357773259466251423677512442626792906784617112167518372936437934049319961263969223460454256767813641291464875004650199555169580494447892087305508490432489085374812727170219522127748007858210445940693810289675723358470437361221754525304175543562804656279849297954302357949768945264591305861873010634823876687577589494823014272223086030308412979050930667611706395092166126509667791012143293548892203823365176194698565013310530184591047789424823976969984369355139815554026199485074474667771997943283868748190153760011512682090485480481362584990979656610236777474235821959341078658322078072415466463295913167961375761985613911788432726892911147626821853919333978013348446131785456171246637207128836888684660020310188558552401333609614530052035568176111228736422547665129336046758203170903499048962873431107680904144245180469026782472966784473927862211180149420692890401165560408690909432054441658546784163375839822847615336515843633702468589963571064399863017392571354720244828346561077040616440033574044741827601103647400511076488014715030608239842908090597056821482339807039546957957457337694860114590693601100874448617871410758123686725741245005657942624983741652458240006630087003789919910909083293952574906805501849155031863790890281651562161983165604240544523111672484209027814094103955704622983076169117865701059484645551165349648028277076107524013173536806303352350742552923414544602235091236499391264894542283179166975064212219041368596659826440456158129835247275869183174296597523293740038935741417501912236612825868130953523386087765625264031066148995002036006026788097308828458363672471116946707710664576519658600900473970091393727707977048936761669373659901404301928776443357708156622219895018073975604676776707404893721840540904229245580080085402647904999416688977759828825286927457435420944056893273651422684462967038248572799959049745430916868771928251382060111144537285879249559889433570453230231687577494462429474832455676054416480535253207233163008841046167459781904830106100521443861397227724278451883389913965596301802638343440650550261810746630727602129195938869346499079879682989121551301192902968550308590545407857659894351911655605119715073194147688969516289292298297848014888918652240691513011383565957474080492603628439119428323759859187790765369433293365025941782452711706630032125859235318103444293114564853698885652801051777050401204005569954234127651374509286380694454905904200454696056069962318781693836149291218484913368305707915995349860251823099269203096466426331686100886157229361245004083073044010657984784490220262907651923387959746510921244812129005874145062751629815879412017555572182572456432664478507751703171686890008031877113740286299920378522064900158380147943541267278107755428018201820852561075177131975144489096203853334695568713024917254058518769200866033587498660430966697696040082934931529159805577796616697998391726738477451252713272197329895161258438439948150063476344651647418165941671532178188755179950628335116638863597062600513352041141449413949944518612921593697620417415504677200169010090530868453474139174053822695220806228955417589633169775921693530722411302948483429080868042418995938039369862580322132036899938778403829760980267296594720481964075843655153163069595514494906266245152463354969392261138337789295710868570593159401253073254758311107177036745300306323290657290559543897059807269540850816703940889926908726912704545638986326273100504914883411122480063374496372178593777305064193388579027312342239970394097689787329936543735662234063177842502828990651846495006048437641302249668331265989495370284679825375076658017102062692484591145878902479726597691893629933725762076047439942475600880533698060929358374955185903237611762001033339611624610367694402939826935611604290717285671157227657825423908015332140299987505730423775391789224743430646126231747458664700311150788803321522167347371670262064340579096510892953355551511095837436859131751604854514296543332922981669551721929442276755324449156958457456668457959458590010777278538917376647888751197885314598330278643882087850938748660433061900056104326505228975073590543452474092918811786857810839040356859922170789920782906913647728348940705199150874736605732495813844769780972456099670638761278942840300449122406282870501420352545339658490030688614011406905205514530363879012623891960511460408085225183340994612390400443368079855469357662045944474972536842985408246368967170263583628261491824087965350620720481272268170141975969524844847596843791983489905448707955209259478884728929192814082291878588757333897645278052637823913649377265190969420094448807027335749275848963097832574569696147495238696491728541296709972343883250917479909416800100480884585616091638595427050869465479499285197422024477240284894016120925219301736721494629762097017835380551773713878189355720891768232636171318302783793563131724026790048085076431269548751779480035015042403586250066873716826629822345498403125125786839662165414228247020611953749569069483134241653405332790759264609756646002758304894738797463130263940131721564633680278736140822154548785512787757097341999270776925490007005346023665106166744373946545835273749739755925224513147306634254858802711679363778307591769173170914097982274005854414266765297434249730004474953637935141370824709353310543516122991505216305790091208373763158781204509960396394992663943425176557162551847352713764733775413577576633484044455277394686061687708427120841301049266717522281083614842605114254413211193580557745325599571555845772910431156995209384510480362296277836269136520561409118424274372701202760787150306153515899450939003043106522776408935724186288884482948058254706566303741026035676629895295860981619537643541726113930765009619853616404103471855099002814163177324536646231387811734574804062844714915822364484178651475785665349942893334879559927833549879132497638636474031020559817368234785919700956080018577469001301022453635876154305517819933318458009727085028092971191099003729176691359750534932069579945962566656205890410877207672247419960640236886645321258693097615255828331407918169048281868797151434825638351873360006616511818054858332828118567431207673141111997780759234507920025943548216433374552178385453765559944292522680884610727396377465966861856385572663958974054165767934384474362779808863417017879055136340924794827831163579336310934707228260728090253017565278052997971601237535432366209395396328261713856466285713680071255677932276677301079185213138241237652668361787731937124877841544696889464721553314511430560282805799541275025884332968551090971751083802532994450631987852352047744404681333914027577021403789025635524654363136158058614144994109164997004573384915410815084229886967185772003649258216984467887524413123353332319614033288875683452576896740806556428973748648913412330058793504313054778283426897507697478031307873080453718629255586144062725848602174973549169950382704812229381906753481473518014244525579194741323096004817196047439259848153261960899311817893285148727515817867922196876809319796318371401169405283290224047546340969522896337296858061135519330099686893204997963130128223659229792497988602403085310587659901136974668036974612946442072631173003841756282589318691822888760731959467208113825448766438408832104094282715055976561936172580547134032245764176548276736862138376956003812000071463395402493393259062430150106879384616000739837800890725926152382668634748941233144108082373882641481569341311897103244397400456675516628108460489582307003012620972492761588202031258811424119556503815287798228924368032173444374360924999844767197371761238472622475934508770718937336201905024103285819265885738084057153679966121652624614480938661922087425384099684460240234634388038596512569432540156775759016949959742565393143723196106164157595815275589446514579522653525393091058322779333658791426807481220876471868003674226386629489894233533825479955589523296936746006721122014896016808529310435699217244867027072125443086752587822362490582225573921736935200937042731907799821053165902018439566549274195831951708263298502629933348450678851604562828564564447249161818691664355364600939772820959893764415633879761940263090671879702353915980369741571117509182962068104398489333711181350667425578051729626511504632282822401731475274885289541132519331752272513301912527551138223516099203605304172335635175831275219552621890554783519218309790865759177778044076730446513104233116055660451535528498792541957757737007160445477876671611180934169787934888171956868170475069192019709841603125823369250428755326961652449794641145337928842694575134533000257509850849018332117440458239451910989736770016590590853843723609841828898199784009207476822688409807011327098744017166430678512120468546190565629661976569690914981811996783888877063501300354548644648128114141691071280436943188236136129741372569469028436643189037461679533099157599494308397054408638840702356247020041189043728682038506442676208731018826691406966628258315141631959392196331496314484081472777243681286879501986776307186202492964856035423136150456049595476987839804150862032182675547218450981564363106353597858029143907293957457188023096886536204930847665867509317483373270618165543783134684599404103956430407459613195340926906513187888944637517602542401142045412341391158075386083532891219126703157182588597354702450166391730361352845500991780354084554775128634210137697313867912016248566950221688939190271358026465059150584069022879401878250646320188284013264859573007646362510621908317773502335097191573435614708844964516222651138870256081862032987628495407173863928038253186046534333952916341241466906055954445430864740511878059697429869754098217506645753065611604409222408613465846352885143555148192549705996180664525016088296828387928264879577636700987842612836095340346061240601494873513851041051129345118968553272734978184224139981413370498763759787229413425991835671613702606011279013138603255267649643592784816575038193697701937819680876393593906253407066282610352931499591349695757209043520799246920114202311944619361640772961456090363670521819668940453689978729568992087382394038104290971199305741487158520497484307084424592423019554030840884640849609833847076787973173933417965653907738521126293609730968957276874465062124619795623081860117718644544501096687362089496921969562379690052499880142973724764549396513619253367349463705731041585571079772534789494446231106819226357236680283332120797266946849122829296167801050312741555612931929844447473415440974597992494476917879034269848301813783206550167401068230876729056691483361206379250872384152533724016617168769564272107853841093519386707204582535830814686558889542816312140872754236349171465076223561161109167047286323761982178436855426256719598364946381605668695782953820768374235329904022557611187423318757207267215506270516823117331547878960062207680401895134339627675470878822792203888744627792704963797453561314626829437777301196380486861936159912129367267476540253045873103641982902188623491272953679688642062577611082055550091040176354925107589634612994711250780543118409687188661114314102391672360576835370200986150156759521123162235256524346464833240807165484962785757391923976893341743546434703182647293067719388469818890826190583448703704612669442427485008507421610382246202819441775381819268666421623117104000452382097680756102270651598891218104614518737424833327530180228046230013983859436070426989749368131391349819879458334237887553996125700713247515997922479806318044687109250079573572904610309626130591539014879061240759840140330206574783045203261048851872450958715425521386042203563929766229393415007560202042614979049282436186365329557791388359864893966930756660578995486734172443939968604667327379569090533209305438435590133273554223411976671595302396674033235248707708766406823945772692170239652725237847184516421205653398328682684983379254157187141015416499610034812750512781586161843459241406570728557886404097839305520130455263960127849680196284323975781616403175196150380122737691997643140872311682017193706683092036627651794682621083176498306171032952701912136891011125865219129063868890269932518106032272849511842378260562923637106416216100470031425767123634564105788025192811440282595955274700689447571413941666694492617685167480636094661017058470493700465815360934565181571199751679279751520536818944118720309657004824591523075644511610291667484340917206521759504815038850341842535102916571154262064804942831840153917637824604631578065773455621804950005939101415561355180317447142248050064578933931071899137321888249129945291516235780254155215778428687285514916493254185378632869642453271670016561976236243243314706471174010937442048987490684242778151408774508742761227763552746433415521629116998756783168045387509552019088385890032804343986268826796478329488060277347002427456767152219083650592506360622030980780725442753257930935297201162615052697140546534808031150745339416335071527772195252687835839816147522619524766315665113561506733394142624535262977805308926587124771569062994808411088954012448547355176555509972417222081496353414823907732549889253010251183039265847953798778131619787009124661593761978931376704206594250920211364370053810527061794725337895168168558789629270127508749161886599932673717609077192818839747990664334581458144569938743885126082282146076090928712288624039702533609890014109863372251238812229783189774854935607636991647537739313812687609944204571955684174284730004696537686153785730388254975013677351499363498461307188940691088966092515091322545142744591660981181482378117471479172470891256627504380436353834125285350834861813350353861220402939204076905755343963218840719196145172202940292320802713638460837383322971415077766404058722637001637728432004443337890763016704748364507467261617979259554075710658305033750837153402349387150672262938795679360334381470648524570416020157147964901658161565052334206375802482405245046590377262165506142763915447492183488360307623863206174962049353913631398969632536451808053114055354434802641022519089226575905025619729254225336653983792216405001983561633831151876347293562233591276871530936169885879144906668237631039687825661461151943722234819535583166050753936486951217534479226970066553401922143709888067062019207968188166436900546769302753007332065072147843630963484097606609130583549993941093225504248678584839887959546448922695978821453007355925342881686286843283414015080579566251957549501655669195965632874335732937113851594894469469756977260355183919529359128527929549907294173828943851603219184010667364619269498311185191779151333422547869220976066049211186154620675305164793951179908097931693382897558423030364995627757011929676270400737819442722295004817210176570832307798454041324193132633321704682500840314805038298747507302058224300893616705334812439946825714545781012285755224919230876393404600782759766517758184201109165663284045902783982009779068605753991810382538919722440368069479129722564085153320787601791824693094533025795186229031867261342835374927108466545499971607548293344298863555479693884794020753981811088927998454515077572834704199425401675803060751339707183099225439798443731952835494355380815475988612538853243389642810784688018201568811249856425041369492645042728993407587857284536639459008605454082136600115449037531785824051480956829745914782287518611783877560643842665407501014524501142182328178841025479957449982527884012748522258130547315696571602963088274154259419632742175355644042890477394633953475044573538376209745941415011247575265576289534870045575547334912177037738642049824777839891667621833554650377778528469536553813289555536134260728283818728542398043698121761616075692946260601579326447188365705395139292206403092407150165926096376661382823400527359731607896949921352384977665214352661985114910696358368728409220789484337494395147116119509273064449905422087947833027311396402966553009805115801709155872259892919764085970994027494663494939962111894637455607680625150688643943267910721483239840609762954644993391697178581522273813116988352460079898995740997261021513085331349992809918972537036022737013387532039517348022845072102009965598111172939386481198677629770108110037182042661701292100437850767207858298634218298648609855075306535545756474370438636134039363605507590288982272451485238382131158783486572421158926966297433106026378502424386091561494870840271106173634173029349371015114538551827556396779920654490733791613238496366732198357828517816450598593175956826017856518970103925508241088927793507722060233712777661273736709814726467357505244067162873155008532009637268097690325138033591076767984526156610793204241433372843964338629579001655767025048225856935124776248873960904921180543872820764624393133043528407915643528517478226781583285385058588636502052915069478986311732619091830974149246887323357554417393443935586191054743535146779790301996404237380891458392576721467613548394424128690734634161005828508787289562202525689116314243851363142355191946061861178862546845366285079771447763212278663849774000743610332389368897676524651909218120498248498170523775333735574252772152736879750040304495846709437764481194304472339226324369102363483007037382362166325749378753859398561060509511352915648834277605049209344807600502101012807466345960453369038461443039937350297743566777914455879599934367447922426459031019034705694323177664765181400141841887596700091892360486054374700899322405630508080131882165073869658723959835215739745745648776814252855664198544826076289307106932726399058442501620239116625654464205803959020128517181159690581762482083218364376372350918470249476966395041376270881543015658322171236340830323140843994190563993375586973696128431717236668994349543458625179507476636582604419293046695727022937471207701815665682589726428293460185842905592987274923342127480980890130304374812085959093693693013569073256858864507043658006824639151305750667831312450150682074536596040220126619510835815824052683254399943817599878205685154082833327096368933253431813917631805424734292627035382891287327002429634922328956442685150409361243215720931299019269269188235397018250546669027283072178286092412584516302369696619686091936399918862773748009060176448302224614369712075990148140973834771794872580148419117258371073918417858544082204210043116038598863248212419847703805790232197209924382031594822335257670348378268983824048860526110948431032151798986995433824322777428770726046610059542516952864550027706374652734881523663087594065789900733059101424537424475099107100121956832387556882496811102722755695531949250539012268050468083876187186098539199055103823152247030092069946807923792559026455604693244102285535544167534273306664496824303230028083315527363065645435268661850005221737736624791570666584719957143831562323852151322684653491151239090102776819608504525113401760950389711553297781876813371794768540646464030095504569814053180264949642579565880716863284229637221231980040294667809189195502394666510096871530356266553158663796680093659556794984369575750017582285572261017264778823037850774107076674000870158377118354530160845186857627834165123817408898338705667371005416832349512063407014399015050610561301250870956377050790198584587975786889697586170166719700239168396111428393507245963717742020676926706652485103783753187000407010938541082034564263187632463772264736275923959210075174436864656387297235453757998156079295323995297294561948926881011618719546520357222506821464289201151968569419253773638377442262103874458865189557234956864601485540759305956416275846018726111079122778733842107022170661666291517181001175915062712903378748457958525351626378981545330161220058886087296960537714816194295886139045902391137659028360214258308020595940137425809329365045788203164150623406325513984829287705476928571061501471436089749370927360941114669905061374695464223855724265760619415368068070847096759254539455621864855147317788893677782329800093894391250990634964440892282256228701460878503457520563920020145461390751295848014934344564199263748784522436653540700221243670000972172201149654232362506826286962064859472618532745477122959420723183894181051458903585972962620445886036141755248302950872065084550937836720160805290161172217516568512806551961390357726685024072134564441275081275955274661874677645599603272077188105479662572419766871438391703624629406444983117566284477668806439315326962671361958860512444641639194240899094180717713337486168255211580946760831215696293987730498290467859584406048746039475106665203471943983321582327625488760182083633528465690018009569688453827623647634671350611340875808305773776331433173966364193061025999203575119543569450957009152536182065756970965695062921494976229340855932457906032227063255316230592271035867121496317386659436671888270606792354270635251060030217493587847451485055106414845684538497012072254635563753079563868070737040794642601642273243711811685298168162325397302457374172260919339496313276157305576813784718143663532842969385540061902938764338706174370466709652940276244055804713139427288624882632376253469184494067482309210555583119328343476838832218221527657479473177316182577982181262151676801689523050047248106006802294036669636133797268008227972401211219358447816275822807971626014013345062736809437024435199235378409017519082178489904453910999479254424279643774809719446139976357977929427738166864510138374242459832382185666803936651206528156271837734557005811216308250380372472161626358636247255428556545341862495040596824533253345355435947515803815820264417215876551969680454146315936291712604604766295917538770297390747558078362355557390351574129613857666721963229789387328652951791234528766996770047923293705116083602789208905298258098601178433559346074882578858860870593481227971935738795226601678174848187539937314131009506124219671787715268391324344796819000253832267887974734203859034255744983656438852296825216991577436066018348928934400863487868173252138108180591635015427911368528595104968132824963938314822193385198839655596391643473619497255571911148520352855412107312309550769115051299253088582962199782483841646196540244087433865975340385183748039765452180265874302858264687385334856758719357427382870071397299917823752669509262671012235433158694771907653221371748316113686540801677757301948581929464119144307486723779356093706597565632010805010665856104889518953045190486155086622282128549619154801182844374152112227667557273654818070496360642294123152866024608314986171474771464644078683522208373434133615326871153308016257192130923986946898356313153657126402740002172566508860463830366328637358951769514151479782072522156928624940352554143962560494842596345629987685166344521437400318404536933215466773789487166315138666874559232037336385716841017969673876071284831646583848491884505109539062365907400381375560588616945499977503049824175640102209996720674324062718126042576155253029427596189963807805404249988346228277834539923377599670862371676839438282954276521019718126648834601804669687436363850182456437168452044260504515277731767564831776713990511329247383333455974521882323790268243364963694438257939921689099644563206277161161953893309645156951087060544231091710638352266148744883696303787486008179320277630807170007456317337647415620830170160957752593253939774652893146696457858311261625312984197863290313227698101420555888551109542737469225070234501926013935333241273093729904965918708357933194491592846785909355295930710599959892851739747549771247994855462696829084390042193080882633645648635343922424530445792961968077604238032993239254191583318727839504211047673172606716398508190798348454867507802401982144674031178209412563439267230219990276055143427517448218230922830724097488747622246921853818074496013238657394961406458624774683850507009450889132395535700058611115886094394283640567750576056372551504193534252489367797837477762747526888670159961579424703848379371586851203898033917380250364612522302495717299658021808123215924213083420078366286766290993494794529700341260747790308002278045951187436213024132221194828239668897686368492360189851777895466699850055203883582777086920825287928090435894945334534279584660345905632769918847782061273806559615263241891016369704802236913025063081308441777452884360981379559157628834513173149206914821684074102566045310285333442336184018704453570031145320500907109613601650469694270202215032469970222717401893088841246318823531583542512202708488360856195121014065420036998506345945445291519299157990862218280356557870777338900079586983911244343191635706648320076062874646973592786921027446407312020524409760076760290977281189922512016419207357803981769206049311675320631254226395278412779603925133057692747786892537540258344385872333057916001935993609162205830915983854264245352970677808194148383374083935009729555958702033084595216879193828705118715561466345086534590557816687568087709850991326187917402815397991647579940496813097691314065477006721303540714116311706293187057159421036181856462844164077519460759664641282606267810982214105018047959247971025265938951204698393677888254763422423773854641072819734708554766647619652152118412399260469292471869868504904943064063315270323875538818689355858984297837760897641649484141437840682999461224186307569101327900810183266603979354978831057648258598230851417948935903466181606314985714215029010181764593200016931875464415212004123323603608040507712769624318758886527048603723507530208945102286777799401364476066941708985187988388606401000988098178292823138608546086450875112679386788600901673599865574004328535024977484838765803586360841342071194088677623608530746147329303666767652051705340950960296528261993048667930320246730171582579889170396939201445822564628664716645382361464343981955164966422244000576364987600812693875469537432590005399195004884737115980011897122050556619814005350322892017562405499619987580204063555204336551920197397746697415354880588926381022641335958923187113301490990657150291349639258773441930008112101967426337805726336032231627058332079735920566043688647265180140959028876550608233903923710165936152238454374436929483690338647985587613051156969289380671851243831717528973836936835611364958721125141790280503373636367354481281106233262653879539353461179011768744523982769710747572333334743316045134272853973830456934933515333025589690585201663650834209417880540564219416999372132339545412471071572192579396795013377565082614828120662094750070654752322866354938160974568466122879680752822016813483779131111315296257981275868479682071245196150745545070306234631863638656693915293678620425268205634322265888368119647299805939241097610719722156206097345840929230123598576851257405105148057793247104422986239957077294752705407645121061726586019588587079910486407661221905224668697898304627306151799341452206322585911111709669813853365004313207306527805248855959730174696618071149372613022738129651314383444544304133293988586582123891064704196703230351193176669310651915616979510056375952756556667234325631902740330780692713664293669884431750147686433320387291124140599065807102619523939897625619646073956249608914747796840943458932364106310132911837918111882042350154617752367785175411441722978783505147260362105312231427640557932524864165644125867903052602447897076314820942892247613390658145748536349117165082883776036220258488635307682373189219148975658577143466401754618062854598267498158235638175732288721164681968360121408157526993724847143744549954554030480933692273137630042186061044050430665060218990252987346074644999800095057086785869361547190684471944814416435689420166171246791707855173157038877523742237319569935999329328896407400862860373626207004443460087979860245100482408515342696740804273224306519320274967912852116845901671765881927960949993923654765599928581218353166240230322502963479006379900542029565463133023972332034636590874068416761810077143570621365508603789366823560412890925267029776493375529889023822850995630150278717574813493424074601336775577015796485338525023906761149020657924818629412339768549762737916907141991543172286886901699501549492568589930745199017063547988724107820604812444414055412459944021171210332359811890863531755990398320732791317680753367707793379303930127513595517713502301476029070655181846487774668175074033382226213102380296654261317309522580020327455709154712851914945611385165306476103979640720357948576852167703150416862574931003330794569907598291145356618232490229062776724474772052644459885322480758915369659839829711691050356527080322801633717430551763953716514816575240787470785905765130130442162796937793229706441928828160035728530551621380655992651502485294610042427439975354490244843531779189644748638230465579222027288621441535636483705739287982293988475779283136124257149219960827064780934911715958245019768646069733828187312814947342834108015701429569163236377527118113126023894735710866918548427398343292303325954202672608477220997550768310275756343703225799998019698206734341164663326963661235642244963554304093358940600725138301257258445335125830730357044809181231517663482470231798264165351245261081542971923911858849701986221505156659289956167645171691031068392728383542016744148802871929916034414376684974981903021092482683569791210651408234625618708066597290889062768952545099438328372250882262469614028819907976780084822876257196233415960473852771689254815789694848571056587531423489087448944114150290672899095693309522031646292787896464914225908081083747656503951930553869297294689734338793835602127118211917794109824971041594673176785853800070618120746700138616182520305419457432426369522431108803266672873435811408597241448897537014061464183881578213093940495557607803221463046332273775277485602488333257541150392279623380026028165605347006426196448059927059094887445976173167769842746065947125253832973458571629298734869301377938752464883937763638323081266022072748048913820256503550927566516730006791728754519514546332198292246909177090592980107005516887246256435173583029837744706621306113211268743032820562100348443324364708625387555946538161474018098672628434717492689167199656021451389663766854310077118206342544821915027305561366022162437523691880691817010228165111777424447365746399964223828531911507485760448002224898773031691075103617150781260748569970417739234092112929928591466818601096411629401604048684881445665735522258939200735711944698148772752877827844149599414179307696639941513878821421053256195151913354538591228025541360138638495885856416215385364566014834499623175148794719486867357603179059540286399722114458673681277619725195904749399355974548908039043324722134550754088003843931451920470758058381926700563010868177398560099181448883157634503102313288514104823625403731121961158672196293564709781920039963559852795678439173948664237298491005883256650648464231306438020763010144197453122503776050579052039737420738014568498390912461424735920562963894388960281198096580303496682567864336557008332885566838573785721489354921490361554046410596498370258112611198013080227822333208194393770257333754719690256051319443740788230323909410157199788436478053296032906099626728207798447300016873414449825929995582840840934778070901185156841168903125931624712898544654563891874314173032199926177757662856132303596456392085081050027523806903608355281633147355421337490422909160557903873355821486474688548227617589474896860561157422580274481186443615203653624209416236726428126497696852367230975779161384296644619803677995673408553264875194004966536006863194894802631622815266300985959604856303721067247112032274361408816080965047229593956889078960037502055528314571500895706525027010012195536050548517176854337085097858084407220380327689869577950835174724005739571456681078584249006155154313433217916101628356628306500200073265811454863675835875937428066168677472157490488456273395996913454831922870890909019724067057957198481605869664846347292230067535301032810964622792141906087320327656802983516221830819089671469847974469966742270460131176085883190187728265549562805486506022385361398355927701458695273966659310887440360119580461354992617104207587888567032814809904745187385876960642965642376235570716988476381549629097283639779320733369243806073636760437225060433143735697894365906901178147320738922896882402436174224668560534042456539207683018363105059902505905062468549667254026635444731424966520908857611990764809622488080355813060198117706409155875092666648037202162180308770669799408511690034378471859433272725863334759891149584520155647524248101474359178247565129900154205409628433017462521373204383583238334118199579567118632289291745751775606973232093466359356036870151783571031609617653346187062635728854445666052502180217976057538467495293593516721279580518008178403303252470182974794822381304985630132982327959678132548534260451943776987527109786565202809352892259806475111226722695940701782100592029989104750668770889137582948427029991753153933400517995163796696895279070065196422878102109136482747945535856357139934405265691068984978872130816188758838570314690047006485167107022383805243683487896447769076556928832211591079680801472929009494912078982275897924911807337995047903916492636936448623126356492785632310265242557033116910821742351219342217557624937597033872018182357508313020669109106527918746843406909281620958016697570006833133438384901650565079413045379086245300198615326276507722621090803157050414152012173722713889609177898443185729136020830982907813830003175843862969939488656932151291269171221182842559150986313061046747614073675433077058415789594426593851321459484948171518992745489442316320316169566295637839893788558319255076596439166889912110552373755929115452309031403797346966499059429014781435521202854267692771937794044796310763776508021746650035277642602621100772619295680228417149151566584697240172062249078671887515136944822549755129504570457258963355061007472068919319529170203757962924303367415151981749265173038566962641116979547049635690894821057711081905417802218603361141844842305112505376613021401027506766579504539959175791942754330859006388891629649021105451138700915151313468877264095960025915628246546296686698368925475219035906524070520219806038554347427828928175948002074416884607300063791215493990152852945354396443007339179029624972499221043936412469967601948827228770067791070576304408166055398980360166233552423746011846983422525401260355604318917972738496031541681482532692557977119214738522247591240316636666159756862664315028690298185002405286050763933702048391673551282671788214035426364975777588859911088777899227582733633510211560899038039589453982453190057474873260247163359616149197981806893069647199695395916704841963289131272683364837521527279959480792561100654532482150542492642429243756266291308082777044964243018061864257626660027560343736949345387217411453736717801821397883164695294911240234861689827144426683367569185145524532461130429544914785479655655513556649475934821322035267870860453931624003699009678661358372547410699112881623272042317064185131906906164231288956128462094866920883318375871994316358432196116410990787984097971852931949542079476904958746715068417281362719587028249090501698315218811807901342393955580356436520249409522559071242164134336203040707744766018773457734095917267582025733131486818659205429418731774971910030908086688840769556211403479133918508892062508800159715182203558408328252090011130507854855728946988589626201408507712493052322290808838624967789979444851848402223552703928579502999112151560555409346329169640427465459090821803246328786375001994080641644028247300068823818658249493586776339432987162269828653175256502545500784511088928517309925603064976764592884450673422262921035572480981633530290902447291906947855421892682399919566615263528679307048565624099981244618095075872340334459949525545648713606503236612446398913289707414076101616164223184764336833739886599505098412463843771849542122414763492942871967358288143097758516047568573154000872221682963980843575414207909338948806367546494764855384026743296018090617353867780535151893691414720299264937030830081721831928018642970800390111784944926934089679303498025641069645528215437990443900143847727006087469061104497147106891005974887952033030414424240085673363804638315194322285409911431258622511391524556931470637999116729585322010362270413439366599100543835522536893154564718859394693733733187945723911600890572218366906242067069580840351013812174200701612949359000948519084133211092390164017567757642325100529392089019010157812313613422175276382185532960385500449851374344150094126929983482000687271259755841392417926695596261211558073899879243580216089179270848475241686583130263191213296237976894152497354368602598678384625970092828846371577626668819234461478316607716672798462836977843637854607205138377461955615666397551187061106039882650719831144430772046355699336634561541467698140978596330391815988957442079947769517440900756510287018913128714072383427156374451503768207370758867432262582604925049114713780403064338046208923329940183838451841843045766955497159593178587231365115808326245764202447722449615919046473379817108983287296810065420184987660430491964255848946012465994585410158356157119900458968935730068236531673078839646256686878259728710849636365562528628032436660230828243043272150773192225702544304671741903695009815290378900301563213229176094215859152932987384299115544789159020061258355867303210292212267969276792839605403854348482294061076541959112652304541461824992064275773306245594598764767435450105075759904675251525757199669916241815192542999125570802344465740989926919148417482330729329731207222579335910059376105810154317673253789712799994056983300747456708181588764678594150325619833626657614717849952870160392086963419901424267016994438179902363025698097939452151366618286067878437320795717577791889310689515966181400636090372817502617916058724258710429832445927586020544612115064173944144118385249636819533782088058416105649006789860513584896143908833806872138479331970935653605140058292052664650199161939799385736332084486243380242589358011405216166986477221847268120684398349893506121743856163573654493791575402618659102931960278991161045903722162355303057541118974019218613265165874505403368123468287502207945338927344700774742406828722575717420788573182727026073347107287162988605891381609339805583192917946631914459407525400112557757503852405638228360196190699479059905289609652387466649954069330837587461771500797136729413251090600003391882442874042358252807442982035751526563371105112986801698959149033607062140842996750809373448609720880024279367119813643002612093879082133045512779580134768345380799359500303085723618800399298237531389219633871599071957213465645671792918341081861304397515674249139169883936999430427883935316793466464165302666451926580786499986638513875023608120763980973880627319268198395770776402293491420171564628661651928611953074446840397153458189509811740874137979387625096177235410040328022371115329167762311442879502454097338377826017651411888380166885554274062017777723348257542907809706688813976223105109662199756655246503042165377835018841686191851529477976879967280127122033766912920438168096429851162669157802936048292582063346611577367555697176222531256645757203985308538301672388133714794039608225565667720605679805825279542062909417862609953608742617591804128825661399075945793027088143588808602706421726325827025964695616079799035986738776353982967971686355829659793605697652980579616101743395176894108986901086970405921868641635953085301165794408578245128275436755352650693848876374152878217894174947934922264439268094045709085976135212585968416744555191013590849289911979003693541444047515798816057619273309062284953797084753555871873575295256323991611678975018358245591740695130786600554465016128456384251182717735037375379402192805181970228517143096439544104141961547143960900899185523318315956619320054371876212378665476252126906726541712075635058178829373110592096287956734722533930767978584716441146575503696468434000858252249954112896899950385888621169795220660523994870452870269057357284355970399366080487985513019010451504840254140542648660470144780911280220927028058487082635551422716815564376481239173485444732044573206146021442338012705175244477739933968046300153963000862905262357494414094558396492964992866955281772968608339908177453570088424669703465101956864278552999177933679296165095425267871597882592966836128334214843119886814099636883202592121180958285259367273958351459502388258338693553478564774062148705791061536042430586073103125748377327955579464719265392440695256780642032526391689700154474556417852955774881203146532080435574775950502546694303777849305836154346467397535535611839214999883766738276197467739253843968736552923642054485909916722526714575399027828616148715577052386654174055930267154828140170876405159065958410582533829284421500094106314141939854481547619708615053093013087243679832438867204186976321883444457613760303734073730594767091622213966052076442284319218649837951069740828662028734288266002331990554280793361532434454342256118293163733698965334687067883857671040915539402173584777168866794707891457093963515531917904536726522777985608377116297315207186638492046087843900251341093204099711543779233759192892491880482293389265397038738589048932113400054450914318189402200848789321980276934399740901722867436093261398569103820086131804035278001413295735128872199960318813472781577605069564557231535209291115114173932500625718546335979727189667845261393648239439180060896809115579173387875762340750181150375847515449786968011621486130230722665351546475255624193034504503912208006797867948703328378980851085286052449338622311734408980557868695369254029017751259913752708109679910514645433407811427953437643365480675170027910600146719488777540986758250591876301167027201857664441713799957763343088295408838988230250798059853108548191925079716464490431011479552018615006670198511223420302977980241058744893089123864882020845462292151881619398839920125302060762167244047765172413319140577696211688109233965840725034459070139119287710484675907998579294663620049579498572987001014754375598371482447243067134051117279425281769030040391208207995362055406477439765586296121778400081213323090063656391535099178764358738497106244746081530764201382048769516674759555752367783407869837864992255497956928330552181385290557414034070763883970733803474361985782674410551891460222485275893292772104046956649523561924332808341247440231728733989141894511169505313572082775634725006655329690383433659162658426033333735319038663821211125636130718162236143802387732948521802132058465384700450757931345144951080055368607307733468626805768441626418812638320156867395990756506476996750817540539746815310985151429617628252714305819177422133835475475797523568201799151356473195701317382177825704365523287827230250697224519746063862459285326608140969124196179717010178478037690835809335545235308252239896685262450164343003884381428033387867614935071922626023347632428566113276631930426673666051412182027988989470285484560532238289068501423309570297611045669086581491587291888448664207754303429460480388550912528369163778694498743709288417532347697694847560377882832057836170605198445161451582890381728544611550286181467532203249818656112583507659085593600910717822772485546327257278564407120652726194172175431658476753383565834367487623326844599538634736643993206848523288374577045556790544642299370742544572464403910337526749366732914683926098016499520648613395327093558994745150681851801657876478479896658921300686062292726979728540193209993076189079569601665937278087499515880861127677520073240575597266928043912204696348950622351227809749513208018549639901060543851701016419553220529056724371426689921004466569402126286460801477990963939944467674145271038596154052142012459410873856214385055949454884007592513531318805580153910360879448498079994081138967952603169186786853470302473663787065963585544530892336547384118294628089780269716289915455201709540179479432743863398177146824848474036776669163849555270045066225515170717501295719161794215037819546838096404906373907469996230388746802713659581593599060844085197967555318528899828453419208009827493586222324589936192856320815390960740739290697430279227541411041214444521849575559907101883963363377009482865884827233131637409778534267466466510377401525570858126876090360872842741992040496505928906454581682809840446080276797592356610818052313622803466409626285264249355326642120755202772886697705087590471712110402064753103850246925234863049605714090761333003328313467364892112911502970745452338664737797686449773712958445947108943962800387405687073669179482709719348570860397663788133949033312284071685168536148160670674741703693426834447689985985097082820196252845844924346220043750483982387089703064482579306643051298852751310186201760599089707351201948572755765828585724410248476758189493787014701373717730778761543492054774322865376360648708541325741385866380893874546411720873307201254222060614146369536115048935874287232517820477814899341363498439249969599844283841413538103921364938310869139794169608220043073921295513953004337544283343973192839352995858059855668383461162597851606585503771472859785643576983977771634786279685390831587098949700474533914035694570021885883962240932407518715174203555159784740596533240284246047943853070914492193771438300546806794336667662727422899124085091465507435588031630256515635723324846881966672500150390511654629472129848317774529345384440671066193415041785843503313769293855262735490258384055965438710424029996094293647616624659115516471435169347852185402745578533888280108307543288433221843881371986352878411223113453307444889916158192593444988515266918894302262968259099435144485831514565414237553689039862067887742017614373700563670586051171246954911415480541649025894560429052611688920072363056381403718773635432257733935607659880543535829394853430122420944827878678656038524293311135338126187223015394205455689973627809392256739878343849932477501684032798180735055027343518297877302714142260128531653304206327584483588208584102836772365366768418772892840026701087947644921114033760611486038821854323354163935800116815760444626409266885835472214984260375340063804541224442455468060528703454470164879134631100802404355394298458258990633608865186586891890393129844271654890608870018686693713084259760691973969856761848077773018341546188564828338900007837497505508669388835596746172175259773489288028765021792331762266416563649835332529244443743151026702989962250303638353491694527358840039634604407899650228382015556499022765661151685618573090535111777033603907910994694412760926529251016964168410940765155396756923865592334601606869024361832450521011670951134489969102378341728551061105963881145294863005478839229356773149783993622337650828926796196068265589991471768022550969544813188001258271620850322290837188503184939707448888856929237184295010538501780090150179378186853603548182339660766128778392215012196816783998097169629780971124079997546082952237587537127971795446284204848986586535196970212892592781200777053648786048770782265367985679184830302647859306310957428631325992348130111640867345738935982333253229519985340274296320161803371241959607338594838172565303295759872693885242336048409736506160316282061063168316116031338576086059108805873528172842936092954278812247790185141472989353087599563818008749756220105775465355521128967758260293280019765600977328756428441574429235600851281521486552014218616545874871663851985768786827392225347580208421693667457620067742466788866567884131749391676777731655202176191375053529850120799419440706149821351520655103427850879157463242224255858310510577638373223871105148400118755869074815187840298232254822580221756598272323936919755437242848392099743187903738102758715174760820102985357290359200266353107525605242426088004733970107225658763134923687226851923572192965546445044455236211963013606043854998060696537470879364845920046444565721681560989499056321608292463300543473301049947602321686941584524542074305744219200426611432726350143648419381369543888481483170737248843322589240639475843501310336683347827110828815200238574869924343871536355947045054138765852187171453157946067889799173608880805367384604654247929975487318047756822840655311112387245684048476349412649858239961414554045267211770803273559197324949368944280398229305647596071191905619370159986487833449941851702672434627772267974105121019238706377647679812028280528233230103983834438207819149163280882967697870163663930499508834364703360836665895858604426586407351633535016781449657374855919983742548001839117151156855938961437378110092488142535823586141658122976331506711918777274258298562956854400777679343980327321077223870523358879623220911090625126230220809354878049005008413503773147690310714488050376210525194441817217051366715462716279012618616727882222557825022302380372940710855134482118729365018562996345755620374626962892600726388109593120424790745026826941580909833372898381195781930828683556225473604967681393279756268377948867577533036463094121380481742038048956508558451545440325590592151027452552388009627155383433448094898211588497048967074391235653783494856032557257810655521399192155576204204889529624621557523212551287712287988286039873094737459090001848558769732539560402350223324927141548646366745998717621526518316688633132045078239923985813512689445715127584859185806879175620321861957723577774940236486761915895165251360872175594314801078581497494963862015478150741114723705054822761814680047466741987465897001817729141668920878654946377422954105343548391938304953718960369383108847038727508211737093317094166078056464716860824856754785683520048638256198528495834586777361926153002115807752627772200069121295677501439562885615517106235173542100003297333053640393633988430590040130036600446239378431890139068286613758013986409603374079441120857745373064170786734946899953015454629023480083978851377649062470524360669125772037866043408257498770520846580670204657723928081575583923150646760685261002171343673411342682310204867325943885909473454434654103167525597563670774316168984573024436797698680688494448553462814813790236056801506179987419355491233419149735392782817180564497222810013965148197283672333350953843056363544376956192349942612386574371087544745642031208166638589809894826749822613306642147216813850360278844815835277411495766930164643566219225380826743525598489808331625710744632626765799771529802098899825643603007181844883476804368199885177283428073368817138750040361610388435562437445941054727624729574986307081764433491402258974911688736773573687776634141924659540961610809365108364200565202464202032297740519648807313904577191395054512953947708995073249469365837306992879988578808280198112847121084047527874693192951373573853906261113490865780152341228694452156000954119893778007936727427114855642180956026494479554861260199958089542643376544320136084015916285435742379181872399979803645987623538116898605206182025257525161503530450961738232554381529665375184266216481240852670781626308760408955545781429440803763187189097154976233668320697994670744635981295815806942524763518622453020352690249215698571512805739175179269134583011572754391971535220344966615284603426136271271041134859537137965889793809295561634717137477007725052725190770654392197215994481359284256879624993484658112896491566909966847892748205997070554784188579439166973795132167647573421655185897880828849079842463955276009306434051320600415956568981363283874894114523196298916614096197113039366758873490192814338460697409332730481792425800518028796996405911609969707514166902589400662939333600006335021228935217314281456822261312652838470307003546086869291883752680676469885038306532876857734067591879620917684765577940780273773001802776572957414081151418819170982467572285068046943902039181826914321182094211368695616053496460010809381044793809924579328289120674941695265362376358912039687087594104126903747640680249089582616903510480845798767420807672572795802908671196004561771359678409041800305418822940975895650970458420665748055220390455840553308252118864425126366891040115536797787734183716612787936556259292446470715903018490523291227086633266323079758411654814235014511043950069665368765294996523331579581828309178346649503854340015742469530995545103741984232125379661267551312898062285518027768472865024277946504480686495200641749784698706933727702902558813548831864982101205995607952996155202773680592711023086126560377593005759284663099472952050562059617357966611381704008551000365461844621995222297196783758717224949423474761600001281747030901248279489047512538003264221005607147069029771296342726606323681724169647300918982304871188498432408823285700121095410293724886224785209385414602780311836088596645882986753332072324194488193360503173714807097230986066773623346108171684450595060307763104636940298267094029421669899274556992493721091989219188277365273301387560258743130807872512219206596715559323343719359631415171653066798615053563303265449972483235353302422318491830572019241752007584225422819512091185024771634745635619999298006105258201952271396714403944667447887995406362499278180570262810081415856806112878440423334002788667559456622146580889531648602514468489331660585736980409964698929551175376192331818589851441445351942304792242492841145247428539554463663098013303412466277732422176931095553734435177315580168213255874929560817257717654643110224371963092827017188487332734058957904941008688474645959951692355736377584909159020673265122382944089085823793631254662988078233173993990843477675856921879717278975422969305068323192694634260777994990355370971797111673680222976745527235989738907275924797253771745701704567671763490593020989321000984889004932111001855410853583568597862161778408643374994783564917703280521358226289052991972832874714649274493037434776349330533003170781099552573822051025708266988990941264306870368573861543047931545354857994383328686732200187548745473384597414859267834296907052286568215127156125144130197945627488234654219428599052186352207952102889187496306791554308041678270790876088186000565393907987322957495953907176685948509044380432703224171775781194066826247598927569957935368665213530559880517587545170036565814928250622744647494179027443556948359440093825596454091273080448139976323358031623733770594471651196190959637728307825245835724917565277193562446575727884209386401851861168182578242312049468056772301996641957584098948986888526168469148703373872926227441186001681190761236751338376962070783830430072899527232978228580793702702011469779935683243967494654692825098891712207558841933082268090519541129885943015440859011890991840289030605548677260304567932958894345628867553060750631625264440469452301870627985606917670909705614399721552912720526420950496103423200646302846223304231743092363788794797095312162942683567928559449036461355778064754018192260081633953788732606488688968289229231412309180088851724355764439025589869844872224160157547685782248383440345818436670172006179724374185871666278507759079316083311321296664488730953181933196304083933083257441004703406751383341828779244043918826055318523991774208435228564125856080315717080651101519002398303096522143204167821804264419196431678400577236546056445462071632629643332410914302617324048448118598452098372996537196519633930023797926188063835915202898279904667727104086477743319606843606888784739221546628159590719735809064868395427282042857212783461552807034845081099724088765191189278100193511252174509740546905699571386875733405622142404357214407585398701217098845117722735743916359734583302901103743039479706148028678957111626581668224196103434083128912606728186925536942467786376094027353291959932264756138900840863072091594628833391833694073468333543479769715346533705867331215122592772173478300645130057645027815204787015655125619442182661621827687991562124390412566064334649489701734216652508283755139340943992098338730183843866078441816563508672480447390602341753233140145008392751808290613015446207340946586997233676354982526794146326797045964310200389504148677562040418443112451816078952517838659453155953550648787648772528486400039623317032316576951993944495674492767920633554499693127441089494208725743345202725224185306796765402746327153132366120474244800399833114311836578187681227745307978206739369477949095885911886584264496023003528585030550731840048641048989858601412478644289755385740979009421496776986419784227012291614335502550183317040591123332168669923293463787082135722381345795823526640640399219659031854023990357968107422406791608394365195326724391239986353877446646408968683413381436382185120570864433367753757787278460994473374650814931521537637952625201658310828705261944118453946190775504639988052687993156344693977133053190991315487850609930051971257168389268081945967719600875981909315888821449782972433592164832670710381755258515940594159684409718166887690858785465944857513645214525233332710898715307153477291067448642040381106196146679360645403966726402186044942588293361142562237151767509778662192742054400095037356421724355155077609083660307767975975399706252094385737631245288755959483083177752734808378421348219969558133258035055154842728251925757407889435010181370719705978089557643899434202486684601499556550237636702337454824589801991145947038861407773082311549036614124198508716838449362591737320817117494592447183757684537136887334099441142801104376975941001920235244012745227875389609256948315373374969366851031543154251500402695022848780521507897002868227690339053892385858876798685132404811150743903481681812738933904057251276008929946922010895967144627128802630067721262281801398644349066212829261350332741059165821016512348173446761513020810416044367068826952309832919638432445595244604169415768514389440897452968931938217024405418833488806643865632926873859971141963869646575072536116128674126503651891772622937442354068047830570088928261902816267991721142514195733433712134401531673057633132254117528721925694124744881999771289548125102794796003338659029104756670791675638387739359590965040084859728000185516339720157616761522346813664618259655095122983844052096487305760076294422099925507067629930175492637943444868279397171242938119553166349023609418266482981684994614543305777673564906341116310187683763595068075927728616411996543025231224369031081370846090367447399596254720608532319885313862839956425776436145620522656395792336320235933318727085256187292949116304281550543102553341078821588033517578878911599180367221437525413091618098238436464903555660133653258210377360790075441581199592568867756242043295194148917149569190138191146527383691061364768554254908009793945402017896445935836234820990449122732325253728325528287318672646592816782575504197751955759188862921865364770534030290717006406112553275464939240837475023384530727414944388236946195589091663179804857166249106030760795226369238916989621858463371225504882966615485935888529179619872950287497107616125320211352630280242414095889596023799141188165097607187032771144067925369900406298689403519507430543927355407136688300715789959569992093465321324892386775454608681521152767377734052701066162622300109577214741766180649135276385496484866500522093530635105636131741914719750646337714224483347089016035653084173370606019577413300291976873576951148551221811422096873512808774947047977495957987915224679483195927614041390131168579197602639966894734440555479974040593125931472616695035637379414523858797788658431368289255636915910745006548053722762849717116695539838082102773773429592073927385356753217957226246884590262313747289360724107406895532073998126418052036891847744696982279577643073681936680816499121822431702435490776643008805263214461996088396929586152226993907832724156738556780579800001708055383354271607302072589567039925268405844261608445941116507586139854217063621131469784860056193552229250337057157819296806690574136032757403871464690310198292428027178062973078009194723086548082245101951523608548268863601411891711693540000782776959414443860915044229482434657845591227943899290226641488015100926307946927029192772849771417171636382113393208875197506141998334766240899791865027613879016051986164508046596669946231373226700309952252137688154828919457437142564682354707389384717673374987609311151980719926475769069454516324770242995499481680546954566005269392082372302816161701939723305155693471637887107352585933773453352781361278401348203585495074113686701418881985407120902844587002950392018849441044074051410578529666980136850161435908547054783237188864913761616364850672476268623937057486565214732735821415461193433495693541760514647741147979101455995628122498662917472051103884502655075028905342899649052533636678975103844404066738560088318608635681567926010772763312377105019420338577007033073573358828796653143120571809983439402401362881401563782983172195779326361907248410677018662146815633670325999332134956926311867520092779739426383784632635814964575598963302261747890981714848001797889294764581648463527059035923416277477517079239082964273863194048326391173015252253064100736219071695946841461660533203225594698958891592028207086962829611840198765741165279869148750004765759084218174151951950761419546392422794599674839513034499550506186580539586830981716360082366961989638885561993102113972538572597553499010166773419411904707749204038633705098608445855525589853121151367970508995906574034809832547191925134260746473289083265597808918510057360230793785488193839963746699811967744073821053323404303414532012174193465455811776391464732451840733354355154874252355819512651201028445422557051934915318974167607961228608750873309458652558493713892873084442710257930851961658524362061271336755510621496443184379391681695421321633489063698691326411982461865682530456546323389523251021898273253355197617507805864680011724706470905022367977353536596334544081477646606455803583607056331124600350718047806899722637269680703648444780239513045076370214229614474327987618657373167732650082161836243877786114853258898434544918621983434805707984662158076785888701244039181619339347692736039957807460610626063372297968373404309556357347360790366079204468984182641023609676476468705126569754775168185614008066193879267650190708623193771160956721314484116939942822402474381157642333102954287728782383074643371067615975567828257423366674973513293655945552505589269586764429300464348303009564371851693995875812344296136223584874042768664088495158969089227038441687864084017273203665718879443219746057557263685709045987601387756962233928761008904144789975774770965467485098720660918042879380974341219837251892823128011656532344056765625783406860449965208297462853501539645744169175118478123364897982713934888484080226887536455835230732336214279277012654265040695428897177923150447646898109496358338962901344668213869818976165983834629684980477072669674885412458536572617367495460215636560758532834932495786090018547439830499600604111847301465215306093926387590640447029480218741195438225337461586138265229311253917777068579845804852487530104667878911522632705880288196654882962624958579296957081058465187181676642247785136425726943858879566847781990752665295766610527644044574828772582016340048133991068050311575942027506170929486021674619046465457478275243319520929630611068418795360287296086461674603747309386214147803776117206603279409303482066681040736892844836854998547385652974059336106323424202909308747540019899773696992281070244538370490565967614189338264778154670331790794939277617019308890611473085110496029297406372780222134801646352085239270625081482357100743258289559815906693085703898288464622099121108289376047946342391859751487037726908015243099906291245819996220922158344176831871148931220051856510162266331821524277112164920488392355167896411082767161742260385899246805613971329847395264300636579347666500391544158620800988527260413891918158027278641371493457424524779853984942203622309581357694958997732073520851743512361727411855457483160201183023942935298555169818869973491744908076646989870563894657368963320822668363686296949557972360193469601917178820960772976391432206658099058907620915646232741336675269679964469368931649712116339397774974323715273078543815148055279382820203779390523866604379736632819230935689687941833190956359026620526570589103666535753240788292526260903063797473244026928058985294762796808115668411072172929424599495972555183476942184481966311076078310305844910763512419324239946787716996005522505564660088492035901730991045945142985403214032020233530747849859005867238719620788187126889500188165107614322498659507323968036493960940806306099127583561296345488981003437043886762926773031014092563833018891140524544398502454578637506759829471343758398712097346342027164783087911854532170234570733138098656708570388745249859926413983217129228106785666009917993315670619965486874062406169693419923430350836386924270353505094277191549246095908804775221297597387241067865465461079416890629326366660711792174420123437734808081035284896335201435666932363601660102737924587821613628837067422854968548357142778962375571534520623252490927200925286746756369160070485707264846566143151443290889088004083014730922984637260349713041643068041948080964938565724181407950327248991944505881718067119632309405366111806080964112594550024562292332293571114308084475426645689746671166505037764601977596674371053644053348792786437037845873527977973855018235875065325367780886223638997270375799315441424711403694675174140271326275057986837515805791524662927453750999051228931057082756713321057195809761313005688380253477463806665391933211549468014423536179642379442863636472065344598218412968347698348321134036050575455217950562647381053571411500917372026543040597618218261187276491264415494360724241532324187568710991043663545946583210879661823262448863441099918915762658041635358584309901436960618295453744069127777710696527055105488141404438630199263278293801600910199679343147733344941229672359835152089567392564086154753204528471016770313227747005844131499662898328813629217567475381460857282282619016455595228448942083739269372504813762672645055422127885040363653721335555563366834240608533016418431815945626656320514386321151923097865763569582553895789125247897663264334992065733743988765143149975916169922378806829231786419916672435247778550459075398111029858608837257903309040552358974053821529143678074449064747350639719033069929369095298202046258487550202498781149709770923740210504382454621923536321811391145675317591300344703354607669814229188846450594240362646721045078665924064420299844788888607873408796518926693005387276212714963761895673086415997600517675702379015014091926491982502776737860676834245656335046355195889992738100144989641034685603150237547752241798223442281847656065026391575888475712768113522151252200591403280439829000964735066335126522604813772268718370473093023434748168894482041132752907349700076636374469314288012089069753829594764973282653817083320396103766069369302578442730570165501654288907771220232442812224669358403241604622073629677121796098506580177473318539062765811749055839945321163697001108109486294100277777149814074738326287730016212981620588829250058938928646287283877660337426688017419169538468889875668658599943974966383561357335013625030132566016065846632928743095728432507020316506251766986395547666258975650413079290504237908590892334138153080969570508524173768042637459029663165177793147722456314237138090073635091860364383568347723783210300027183344998264231638973721903634471768352913234817661447840515608185831690595643695195418684263292936582306927382769113564377141547202607142777583860081040689140789724627821208924001347723261441461530724979581678718138779523971598837928743082085966577677720117750605814896945489021313943344333774238894568410693190370793407300306644907106699015131172875285295236425435935974271147123846582707137292706127104365263699264234477315722260052573332115921773815831943764764748922576545765651599164370999509789396743820702010198550630628079789365612823082851920068766875590498099905878993357893988040839345248380360667024909424649158066537258596951996331416730795778466652460685757702525343848752213651813783680929470905100158445792727905579544011158405182055346799759273871560758286922463224646384493659576580803658243418589008291344301197757719996375832658461332373281772595854683935958714327706154808802388909881065616056484479664450537986538188132084097650261421211974933911178145923665961172327083823753687999677531297160073597461619762829156880223822996418483599852106503817201825183254699913787082980403662126271484513011835205115381270447964601911315351591389201560025466071270635391315104379363593782526138180458285504490582138939794186814892222970780293249471901952471628413368390702821954575716143911238876474203064088643015580739978876397344200087357389320139942729492104070572610840589622601165817899824203072012933049836464905128896533121616302532970968127568240832363766637855659131335995598081321404158877756538829151584466007543713006608231164412984358121596020557036277397831385043837731626211564258801050214850446404281612396630873031748229354890612515529148074415218126388719833742802756338543064756344539508421493913152638032676739404230113025374660110561006086162560809723915272516596081980181683749859714644394526514555174004739481268024838050223175289429432344160271632566547274218546755309348121019613707344398762101955583015158076939863219415812313472250788459210840796736281612846099206790654181049430114192386700943226079276943725240791263316386267231086554833265795673571770848781656546396917450036038431868153075587204057013085598674743001603789782794902874156382809098452526422608769681911639724602372486197448597265613395411174254726665581638254231098920475847056603882482445721688131127166399218928714564692994160067974133115520430886619801259051171657474959653376997353373114650857004814667076091424194793247007487886082416601491364810423895609886571223914991393408788737330456406981139838791319537619085251826947214377458431476709795483136823559062779288746971598786758509888702472129841697679884043331312087579079984006262755849152298276885986686668309738817578349980231937750621481363332323917481643958964658193980950976387539807322032695925532060056721334308741699203577454665284393010744751935995185036875504303925539266891361653525234598304867033619296945207530099112671317834586409647550827515414608240062836080592292540637870531997534983968674388712640751860500285571956317336957211088322129111301550667778809123296961531867751215335826555575761627869430335656484942686257391787225600766929379814744212698493282000554157414778699770939799503739196166641133045669987746448597747206386763325854626038048177687320968545743612094793781829546984553380008960842114245228946082062332580915604117412771008584146973476636202520570932911572931240839464416054800918171428361986863225595746392272367677957146518581283643884438406213206585662304054985020099622720137609669815712801081815313891572098400934882881383593938403046605479987979728724780279169889952268714049532054716943614447755518500826452934792329583381594938219718445615515064727484987633686587539559331971908930373708960320055024149101189779798516408229510809296763545586136756474814970622522350458416949904278408926130430041678804197064439005964044775048122676278806220016874220898688956703722114955171880937795099939946497834698897544339638066269303573760308667703705384346690782342723024775912288776182394864730416323731304330772262192855660868505573735541941824727452116984010280227367586332418449901743674101479276490681417212785225735313375712180653582698559609747214261114573740063374181913789633525553263579429103390874477271686605493796935646118231828660710254256619525735288217069860251720101713674431612422175591088459106314774022299825119549511528176149910447412182575037560677391288026039687973592011248952351513430079101395741388512572985642749661906016925976465146774709937648336024693564035619174517436733920773780189719250335214809297041285941143684586361443595069447195054363640826550063079091499492044902322410644302240411289669459130803507431061641650047969568237081748080985996601958355818676069690526682647783816660887342091609779655228659823229887178140776228092020295556901198681685602052223977490057748902487550794522306784318656999592107441688274622065822746597968752487983541158754147172287689466081459373150417748633069836390262365898189457055570291406549315261843240675328753588248891974626994864889875874956542074308016761864948057084962368511613737585919908668814247975561657437255120259113352530111707286302474251209061313905444662982010491076537621271343776210361775521004400667517530978403741418173550151798969877194941322224589505708461108422643999816412184729797268496504721342975581428658541976504860325400619047398103282638714684456612887497416224960328383226003853675096928908094583688928088730615622690188690321706409179912335475119801933512666619391349196919572553247845414475434004833259288408616295294762913390730391844088596956244890198321846937036365987574999582763985150897905861529864191066545105036507438273915627710187719269381816023130684857670636575111685999224616978828429794815424788527984612566002121622134872939588974807028147838854785059884190726719278342254471331866640049652503754933146263698924811718850451365613203134803318517980772999624981881912274723769931504561556275149321826185087078243795610118626020503348074578951224409444769112174514953055192846523459550904859280202567308924228049175374845868023332253047077185535271370882140289119730357410430237665497614775470325094508630198975504879525968277377370164249984228078424714992963315508841590173819936626491649264690880196276412181233941441232171912911938375945009603786348841939763694716408792081169146093498943948927682771027585709968140705322779911073693412372883134997642880638274135267242193003429762653701879803495373195898597145197268721053175285332487804563914498626913459167287893541994351953533794666202650593013428936417708763669585516471547561104616561875869945902012875883805427798683299752590904266945062709342368619404850622749673372668997973390108037117727391119039010009712423509359379659602088551771345466436240161984508442839037590786611913950922455229952733483120722798210795166340836488694635453909429286431486680936441045207250345708304018378223086570177288526456120612161000259176621394527882275897705078260237227057319194713210325359431945875639537061408717954637049107426892843025258958638282691348478652990434541815969992509492133857620446153991431419579565530002881663493657540141267510187113493520488178280075945293326906923621692039828481032585621327157050289565801242175824686916345219221551864383206267326555802291008740076283133902015498598536845363622822472113109206687346675849741101829950205939516228000381634741425899127336285070811185667521524970334374186294647215413348299190289336346493851480437307524393556914739543458528609680380928488457696128905539406633343692744293847929508842637317738080512105001620289875644271677056663777033925498212601825282120706235952947918222091365785177282405443478976024280149158283944963626884410243290730604883380841026753949884074943034906310862871809801861055440432219371259492207639028841899513368103260500315774887939130446850416631056869609424258107213798306088312162295763528558009183132501419405810282846563484869516193288401065340663440763895392654903249223657947333284626333489380226208328386405303920620970828920129072156415589465576142458973549929232026239088240125887866978476003232704089286718801574545488039445898902894818404591431873215846230984172108290228488306333005067160244247277617770004261023200542155946855959630833565359697314709159941965262546624701145905692059279165595205257700801725018879448245832123136166527286006327867052540292360350679529237789862757821557030006636456853153533784691761164150526950675872638798342812481873487308317602159651788014686628021226423285810475142328001469784670588852066516851270948826928695967028233623614516877540889188150895219397451525044568893365751362063551110964689613187799273197804246777027123920555541292284604447710484615998802666054367209032122871702889939643635380129872383378533726999841686542171987420742771635993015802065183807828443592990613859410846151375225439361017487983227100626054662978677784103001965788830196985305660305517970914313320944589642737941546665371693888385081903811468500496919110000258726270454129040236044101160736941516990289615820835248668042719816821773057745261562332419755797351747482858638544468913947817337586197239910030672566126494576649109589460933685058571317967595080848528351918996895886436198877726062471688437281549212347224796706739197119586898050143907693399948578925612442585213536231240316399655261427213482936683230720830454416955235790263970082444918769176216526486441909357390011623137513881957424049307814991735111732828762852016401348994631822596736753336567913100368645031114093399799057082547978131761460322720853458089393235051816070296566542691435314848033443898700970061360973604965840159751385073296898371565634058202289650892941328091755576453934438556626421528825956127406400065404898464429394902446138320456378060102030965163308494548863870826354261867478660019067082857674650106767919429312022114176541629419879104275896240189057626854980622998555697227593264742318522135278983516958069210431064380379408171558524809043430911772505039986831132993117401132376369724409493158840690406699989630523664274393453057275309064019407283233700432617295046086165335296700691719260945911403069669048133223512313917712540790001734582489866466238724129153134069864000926766984345268393545420482566360346669807420417322931178452927437574483832096515400873426377377985350527120928465923127239544880781570297249238897109721573698274742366428372334389990811081462887484208259193381978028422991928669978924919985931246452008909549323078046224988663865287937839021294826566127876858395807474709497012376994056689568643125453924512931652444358430403400164970469047883043892609741075759614337925216042909666337235875117390727454688284510780569206180061093681480155743311635750288005244890309293139696104302855197851577591916731199524442910367876867382458773921205579259420059128185514203837477939885702301375261133451038043410454354884140641180593477884716295328361808643945352810957895039806939286582538779699507591640492682145770898899848576564211638680602278298383114890935294511536773189953287803850017529634908895987138045257217241618984159534156493444097067684392578907372965854506571655077663634238902652526698192857617155265743041637205994172946231276693207131113994571676753779792162443570376101793448112562542546952972367024153984386149374110103566968063848636964545352791917812069508165277143427195463498757915949164186318767835610127698090251137285943448641604005316459559679726371732463992392867187501395475622387607068055956902177782044931752063422079918394772740353662203755749557824692642368647259456992097318535880449713829027029047851102569734753396529418537739101824727766657926062163597902246771122570595929869953885522458839394961202944172449673585700700599707289947695935524384172877885168407600843847241550662003656841128867247617278668995943613716493945133168034519639333460965406972619656617924836885431094237392738405270218919233320878147814119040894832171401414853426418980230740675414335597154953200994322888053636806544774419164922723745474690332309465460555101177326102433187796208239303414754160069955567766340936512055369288653229359435586682665655843354863346223072773576900735246945186332574107853223795890807595388286191988895953007279267402526509479102847711505754297022898418721701904528473779283392300426538946574395798653913009011122889057166981009250551500382039236486557903186791962475342567079453354726294427708162724275509904162857413097024662726556745650012796569686388936715921883298492377250373741018415811131678777736056330739203276150294713254021483044990209712190870094069647551905946306453321258864141923555955563843106865667226237248626963891798949175631589670548146821006575542363556831091739147372904688845224013892339786194054822600579734108002750839002934186672921620670232552157919878519167146481967049375761417056869602119782292208361459428372542516775810297011241959870516659221272007570669618663793162550503062884526689271618603854498908636358231129714322615091034469817490607946358793323394172369528430939690491871129112830231172087316083288251212858979932517776010795589830464809473193354088347684745355086444212811901899267801330050657935407907766612697469861006594612320763727737787502817617508234859172727253434679186729778252278528851809241077436199400902220520783561190594728497278601160048210676664050794448422269361694955967331587472464578586373839933979187715272914777452864340045441217948246561370899145117074251421144421481529862957437934544911671621140339724052024272644258636903200666109187276665898887827717843405955875929688060387375721480592211774123365164608931535882107696431989827242804545529873632880072556803437749202345978164182966629479799968124660661547377865598362163182303621191271728671737444862578326625990479122466038323152662475293805194671794496716786541242240538683909967774683994147873173072824177214485656054631169035257536094344655968559207782932802686684715067922723068280080670315262176061922736565321004183774093897742746448220585052589373743192417066803990745077603148898813277962496454763305205953926901240826081249415835694517244333241580498561974842277439081311548059058826607436913901404813405403934137887628725740443424220020405353696890768712642466505101657632342640743391589683796956318238112317272002631627893434975457555280088555246989165684838783252819276733722799490729420467077037810601913837209043024299056968294487255033678833237412251887409702410132014297588708631860115970508996235797761178564090804974119825009319825970351852356774666740195114593379417734231273308179287802703925460202494962286539513731871503134960607164848270018978335315185709522766571914437315726457781620439900984958781606388420181416983006061114438825500759387276768284590970049067386657418907151346309474632972651504446135504514945161314823149100091778482785489539207273913676551182786114992256383225490317195389278946595933275507547441548318202063977628988386895643128837424319050639274169821660524909327344821326500962996170950834819432563112329386292475569262405062850419178852947706897059273108782731333500682884022602853801432017947971817811509283424943549121163405212604816601560996333007633820503119335241761298537392669307040614041483385923230121618244755389528520124757109956296105917772985933387247563652863233088576115663104000546996299067473273211502400579175593823879288604924051876485377801376366506400821534934977103273721284756360262367557859537557443256265623924656417176968137694472993166761541065032002381366247861201547484066842687392068754809426891446479963368321868917803031748062460036667221609119376525000326269953381752747141128879150064981198430775106207135843166251740655254462610772156945141381731091808624623892852206112401044277688273391739527983011302794019793461833772672861542705612866318975544756043061729698368618226283314633504716569200156114369009383980756535781377408417898192606262786567713306592005668977188657204871152268592585932142358703909728183211137135254039998934811826256725145083867943953304890362747680600968613861871059773348089178860927803443429698784533699018173375770254838170692637935571881366695375173321983076411420745432836919950378150800447585237743941846038106797483568009727457060491722433535915726200619318376312728434019569871532092913798641625319225977565588614711407607836551554458740014948676259481888157757895139809710571791856219814210092618468943428392402066002574732190645944352009853411997006278302145740806159155486112153757050135770408324501232346284854466182556136505941835491250419808797764948332454283134761841402927265919192326105095147023387933838034850392822225250346326616888664778265554282162496364088536177002946585768664077477176684638040626048329942675634210350054692236330091454982228515688654209961124636387152547356149027767974729000030933821004183830144471864049504912246656209613759318277811317589017634355904916415706232458874894151915205887003240753932184658265327170142287553882404620587044125713988763186812973937370569421199344932638987939993630374691761269893292147290546665472040549599589220152434549738006833607505739654583153004536158709542694935996462921967882419430317862274215431438740734293977993487745743776650735704313991927716802499165173463072407184657024153851342184066674625444792472804577689695753660610831359752981270397881518251201469102081539400290502076897493268581141777718139652862843177894582989741993419652226562538627690960599940031356761107106138336784007588558387790298887483561397547910883953851372881694258436602368276404218559456866576921480561572869488823797370163720608433860344045037166746215910140893585117603664384075011238800399336123231603154591221828697572253071962111020295220531686321384069248455944762416981779579744204899541274723651662872621802597811859371016090021774274765617289723765540295582336228899966296651501830624348788546466635123736404461939584234833240811977873449598545058849887784314815274198723506266163193076367942424364139054032115171882108663508521429299362022840175258912024804875026537176325011864313885259204821535666379510403280608649467425201029120635730770703618408191387208956622774981997370438588274904107897215088282948412334744238661040027509013200868552806225646865343125923398235678711261029963036775876091414354768523149112815215560754681416947443223224848960842036630703409764683305181560105300884796137296729784102274580250268001603661742107602510269136085138206494187364901359393561906825304489421086798524978362364849261201710966933945949618206793159227916619314635016299668770938161718663112070199181562232684766070324495487609660147554463094704472272942117143991108264748057936211475140734840592469717150554047273524579900557331038464322368649297394019819684495638168136020341188561699432804088654586089686952814762355740804194053694711465183877287469539199899568672684863257490488043003000357154389224723855576507428428427398880025378786392537190566397880977815797333040916923764811704655355092767295407262975434958562513853481929816581990737964771448062571828205987649147206134856611205276593884923668445820301566943473743316488216708959019606448209979966602737561179408372657617797311052489625316025675450816365463100093470627963841511460319299227929695505923513688610689563584638117193913954512479097002940411106500940140727212370605094351839535440267392028513764806806598775874683680997761734843170411255321512891118496756163806982931062008883876803409031896013675674954835280723533859340985688665585203020891945714525110925944556606688797349890591546758037857220479354024207922808895786227932710818116021712560985384120655399306390744466967053015145064996608909353049687191729763429731493314125913477145051423604524739524052452700728938011580195279711971877031926320365320960007940716787635383677675302941975069101648947336602108655731957614799625544496344960381473698945380173679187211003167240067010351212221635994888814270711933461828437342960820691923377556082280024207206886777013627582901275330972985347089165440751158030269192316630439704583388144000845647182422587224332059881963589187851088458464363308185621265236913489349491343466010568886431205340977529495176859850399773636639579243787090723977618592213946948962260236725418027860339258035547272152093250866158877372427044801384027445170879677605569336460862182554376702887406351102858392459768153771338725618495538333067154934321294113636747596754799248905022244342681708219099998443564378717260628845733478140705902334523548636896437196082206261123259422061785099080004459355877964183938459132803564947827679563589930076595481995496420694365008981117474242698438665269428427799140765316910023927084355187415205165107514556613850637525712405170243144203032322361383674109018469362585279718742479206945053326646836567677075319161868384509656702828115379715496033784590367598122700865449259228394674099042912538780615825651305863405340348697641816074909661099323300066984234416394283768043224912010633529013366034014683168768003792014474346442613682682194278920829429301084913340788515214751757755196092219273308201117954155325944403226107313140408986701864531750458282372787016688127436661131822440833821516843290017524114341772171230033796922014358387082540354605580617186537719679001553912224803231423384455059124828316058633275011395676204796709380007596156349149868571252841229357455430630670913384055498329426544499119261906404196416040518035248336215321889245036137772239573003157181842526955886505200630332494275701846241193578878278841475112343741850922417448858853696851272616127165885220765160159779804410946004776334125884994030898979786163999301964291767053165731618873530200052391524104571299383095502548966328166053368591613722208099967049744793024745640496043949889231601367028162290190206884504862195284378569673143173213187105241866609718227591752010277351555788654991268793526795181186241887229829419555457527573168381861574858371203980832523076198344454493451112181797956645636358892685976235269041196510795520161104571056612447878067814365056383331381553020757898610449822570429589544294377064682343123088544136859792061591466919588925708075431571579342421732618787370119398385198595480994809064717766507940166360478064103512391561612484273965542789750952911552383719694414204855357363408519067892137824525322169873300367470066668399938840490143427526757014375156948182384365992939372707795696741542681839502462918017144544127627414928503773535247500153494086358320705603829057279965026659730590143537446522978484402475777860622482748688975098362272146882671988483886739614157841732669904786815805019078214906612353718904632608950684628754529070248409147597751181336133249035505065010060551354072591837546136588535999309235274989221777714664542633411056609948699822206735285729886155078363222862117127329293828726184417364070719357185852265789535788317699573104847371576473545866448215014777812890578774907617249872148354662116879899482879219000888997014886558141556227186217647529748286350650286526907965648263647357713003916966986845366060023307911290261585749950811917346044010462060228039062236981601386740721951168471436328463305584505382041350394248818233332601830118238561182865539582297691826796158655337683465654183576590671694773274867370746381242935469795851602073213392125044721149098073599167508661740119701332263910051450194279937965977947264378667922382416897670279913499548017773726295786251088888506351182625327072820235976172566107159816947918579070526663042638387266532896068060765141523060619227388258733662273270032267705542452497052953006884600210979187377705744491903875810120014283657023519348887075467908307520904531444078974844505051372618854023193470240106022078588044275743228030589226180701178474518588462854855626300174707060204052958228032085649848733314929349206723831033411518215096098390722610802768644815400774639996768770374559416059812692286629594512355854349087189824260086642850897966923808974621076274667416092662032618732082112855804661392827985126484264952772000595297123125645974484406652574320909974419133110473094495521864040073876757216691426189953816539314590866959987942937813675042662977219504261469851196230267574796207839669732606224306711186853186693646408707126922132450400936500581114463802573219836367053587995790199325436658357170690523710432775995924350285147112933836470263990990750259695824244302439467262391069828101180218004492652085608321741431039371787714895835398606604238343602082112322536254591448059937463276475301392275173305843420290867290488417561970218726558260383291719241018447537339485391210742730007870458810323705395696793772196506104468155832715378832565027676868253519035706896200578369348226196288300605821702355718798903121185717542080491431334834467191964778031461512419685407266537030346171882586992999282205692177137160580357751273007678041614447466484538537790505078881389070211306026878441969050948389414320614914547695123854718108763700668211717236215196771066730895819555736172121065290003627818806179058033460525143984072704122633008803141634535656905734008954410029294598128371410518939560116123493752039325970068351570612089478556315186184921562529353059831089051927403001997488578888887631360775180400531425778817495883414858721562019430160499920253320395316655459566454000713154439515767340506715880158442388103179802954688674666560101712666968031967994380179264950026034231412138911232523196804640734780434564483138423708482735891034750981633147523305284604807166585150561648100033639444142208157301204882870318858576588308818055247935173311709825535144773988831379195762185842731562535312784758552295815468728549672004440705920681002161184808999532262516218133996639067876820666751553449147896922420270053867974984593944911984297635943267102860525846268260927911727068474362089413378901020033972878523728279410240131047376064224279871026621291363626119756139944349719985519319532725275988933895554643448802591924933221156273683815751714410838943334862973180676923051244547960133239708261002398320109113961699070492752819810500708945593092435452630793368218781152768370930934854814152723398813255200676851929055504711613449277693959210664956250029753138851421159131515166281965218867696302582269209831560599775148131695025683809839731318662817644882832670944170690667398754946479197097464173445269477573272399303048627956077588265058961129145691714678796377155279290154828346842575969042689660372420623990058860598745624160062815869277842823408718868298456180672521886166115384512976209842420007796976478796722045939062582701325926987996475350589650449631014341260196935453995150901349686363149342541519263123340590443814653878756986181005095336813534316942008379252497547563257884120094122961206289059642507721152356039439126025307740655675341016096643660188180171719405759003030144568065050151596464256299959320435358112679727307493463390090575953658500874600169498505051657840066447049875435363913544715095312259395491521400757247742973714895913210075056147576993280599189117020824155263312690404733731549566759908239251456632511447357792072031972648628808856561379084266283948721718963581324745264417383390597985895691917359664112050498464504177076465595456712950739151769305429603309713007842699676971563242776337188756379144337697840063085784699366707754941599067661342369355463168190491608297741794506339476978616759689265293052632854714412561918647308688743755344298620962552660352933885033739976670551136097799213847783131740142703192407173954846398176484747820840206642292433021661844972796269411599764442222404458311129151269421883270761122109849216409084772145141578913919144307867428265688009312890200468330165952478788504854842793631806633913820055934256461242023910927803677215411337322882114015995519484311238242977290397618416428841469600704580604202195186750848270368537529771742651889691355254029694702179011390474500558614276410832234736232831800719916131335755614532422386791458505662354948609366708253208560593453041707985617064258425412087728876310726216733835192365483709793809674645516852818370057415588564547723302087783163752111328483253903693634924798669808878341795012598864998523488770778601573906368888420434793265143710178577465829260501328278479326170038725568334106947108525247063057229900118554057734925218215586329611490989400927142743528145468670508543637388025366822387627464637212302583319025049165536902327127825179758545288385040930106391098457074909791120580065126627704786701218369609985902574288688229637367056306764799493957381583219633081611655779307985651970085035599936274621086421503651701876479533959441353510913406209898412857440592494953239787584569438596539335087104267493019832029037790137771936266116446401931167766238118313848935834562732372721423002634065102917242479219837449682275122912698866844403161321043683802036814654521909939386455525349038079230581512025927631919289628551032309282840519919487791895037574572614240834775286319766485129555181543052897136355445357885751764276706616548000666196180063072077591546163141542204924027606049993613221370558138213287848649252719957708879423074489012352997963341770709235114656569407890638960910112932965661082330138400518426240803468880688605518800412067229544242553705816963488722154291107266792343990169121927152020988927808173786498124819106075092390716950282333054982252118580043183230245430010570083055601756196143471064065821652464107354207441606895342817031290406712299270622735960079169408991924313853718745966673391929622575924423910493187959031831884271294696463876271667658071834725528476090252591345511231684552831290147358678754057718673509388032047800002058975074412499985020586690735554470058110984134674177350162892414374858649998972423044810578690817260356282267291200678922711775790311435243031888818180635951065720183019292282878934148433567675800599292594188336895871802064880711573299757292309057351919935602574021722956576463443419917629746120574992154678736955768661010176411663036416513298864830163024137158519768501908675869564709533514644273353669655662902927547991265010564334910715024797129846834233825381157010342351273382692206372521470691155710823527616553087750048255853080764032695597678292790964461536934255323168038054161772874310336754591345868615882649974026888953251615187230245084326903504445366790749401604377772387497294244208243743794726834945596816341586966590833647772581879200925173125891068864456841009398847593943841151869681743076522483296596700686066210954554905138740813414811893801241062252100009931157987576057199129113425094229218281998833657993056026409083009172908949067978273009269383394703584615582655509628415838452103707388585122013469450444769680784151218041592705235028802834937138934444950379816439883836697972725480039045542728761891316705335009764805914256256874914462266960467328042308610105216786777047544650269345993206177683010851195587315246776046496938457088396099602590795314128214285192986001009380802813665631825247506047268491377646898196803420393505749317333932363414812098988431661685925469566544570048070794072119346901808710715607662968048697230257466462383825764755946869213459618896065889783537413346819179942779269613765885440346677893501131388966621606014682644200383896963254183632896532656322220857918700397435005314703322509566008421278303991995541299361597025316043386243904584124600586241600962656199024526638473396950154493421805771256520767122437891677617104822086354907453800183085771678864257688397553413146400856486193250376212232013723730849462496738104309620792779084198824455676776065699372706010834895193879074429151197367291531933557033965168160137084385152821145488845754735026282398154004527980106856505742004534851257987184762251417300970665651666434243312173686389393512010367796202068733010985734626498166421965791849954994951447344279816473326144016142541273602371318941939523090705334488649592012105323182730703010029654942706701112797394046045189581313589858675465830078785706747255551603524785001776800346480205538314227209470433721477431116868795120380829235379781913049502194324210814932272322575524770101297874770233206067784528752439488825148965436698504198200226415167137604630998755879173821604026560848541382499878609390123082184639153967254320167202665106477316288727727847831913200318851592098088413211049502509860139182091470600100210885342310230608721306515237602485258026237709896462199033469046413018712655223348312702855354669620254776350584102827122458392060134165634076118629053793370563599770342799470253666881719736152513823490271403882036888733538561996314146151032349294738834157252522738094721764958429968284853568953614271240129669590517231821582106330297050344240584345709988966760256876158159454425580771811783342508187016311960770391251782075015251945402940847601015700367306613724734915959260511247056177428766949592494881942857316974401308305185960203853240619557379632260429261392376590726489701544562763621820284152906638721086253782951588243990418182823501722659473871890815073612803337553814589945690599876777803965785960468868229545138313329540892609878641507217761531960952322821831682640014155513237287793553953942713892202494669628641100842976300460737895022916001543079702899209100823824852002017798795476853317203747621683350135593316631492467927173073934346833377545655123088616492532545082351817665874884351945896904548448765263143705733277323431207475216472506462973311123650735631854609272821129014767571914674869386088674709794776932643328607092665818862212241177674690280567496246761790272833616500786121870258163364107925466683828595516305442732141432674140547011720293728754157893362968243108684046873249157555436627916678512789157628471701762220470936219508247266065569522362705216570410272133167688343949292333512527946588713703832037191160791792890497281360589044417750361614037201945804137531050311479551397180613487829156520873816969666962826507845143782241386291231209582117463737026517101955480081700252590658158782213038315491331937450007821994375249077646842732328700189583892021022832348166587329064385276749349939468021424794304236264120635767752167489557562449102195452711905683105466476443591448577289806861991683679993647469037616098997938868727474551107724503208059805632610218264504660653633218438621986923537226346615129664476015949424717255605372508059816471982408484559096266339259657117584662590907196296523691768159593600882631350133873902471221749635684348478295624928044974350469022157813524209982163892429437212244915177774270738184691192913874976253285008042525580418551437604944162276987531605548278449869032177872395977159387919417652753303699460801685428432865674191286693657780831702318483181967985503454822519897743223338398072826775305904280937005306341296664987518441736094723842627385164145952377943545067488870688137273089437524029283251045188349313111366941203963126681479857985763094173991604881593338343045910038472591554483781668006451125192391414724463552152357091400542537926547049520569544803309793261967562283449378110374987440231060380277433009432319830699183970658159093178123581062094138386965246035872664667356344829909353450017926752607122575773245271768531388495928265199642079521591555097004714500324459485509994644355277370839639287823275654363919426866419156279277526875255075005852836018626114951231312467987497822632985488399600606679955164730658972180338906569252218743762265862312135544893907488225172428913858849801491341535044847852025993574371143496921785006018253300828752098834670740114891604526025391238845050405075905425527758704954240571635539232659384667260920669425758399631693951312067532210388204815656527029178343657550076500361189521070471551348104685167196994038807088849113368910199898234488904783901642916449262319979170613640757826077089620866426785778242147514361901416196690998331228817397048349493265212287761875636549807412949000629524801434012806260450462665037521536327818296757752125663018386909304684304810110196802933010135663845115295876036435565126323310635266984296860892279938369530138507465920773846792775660159327441625782405657592159002481506072074355926215570234682961033595653267258088434584425516157922815084679551828611089600540489975441723473412400282132702121925849009313801235319119486303637291464796802796958346178559344918832341964432442278736739907163244175460478281361484976591219443268827196504257413625418110234673748155606854205829244537574505415886050739045933094579706990475890932283957868732406140392176448715087276344493337938900041283272344145809266587139810228501509989438673255767109328644359400708883845681226638814138246485773685667072266582478886699713868446845964427925839099314765897635474863697180198935142159878713380242060258622530140836789792990308136126042789417050337761261861968170234677203716681027550006633839013019172626085869375338842305838347910686525423123437019312152674838829686140357072238081834871943090225899700025577186405781385930891716988677993639502211714266070015701583515464270329091131340587852317601112012265700023879395157917070156023264936961714048951822352905932179161205061226239451648869441239697341156612180042163958895731375445927060555563003793867334473512748568783871768695224523960542487155001610509343491237494752258244187284333432708663207940107557016073719145392912752607323206406567648175582942192676452986018530552361328410374113963845674178082577588266105529725980401122260868994223039218122627056194397807807893788673810633609804777717156318965882056679557081445417780442572991525059158786643427074755979522348615803553062353258005890412726602439165217870189444868923987547323519085762641775878024085474161604033345218502374681430370283773007229558282394686433112266268863049867620160425928493710874673377992536940595441974099264659982708169379407127038579978575405998344434908118803967750376615176852936868477038359511330868558764540463276659325791565126056901272517980662461074427340505423322873418621634096271780007982769846472410955507483898387084162619171263574844451010877565968119723723663813340426434710193310384537678052388544416218276107215354276085101611452426640829285872200516583503254312276485525688871884269722907240114524470441513345287213212265841603568407203475634723927573044509984553235777139868321338627301420921173450534681142413271058060577334942909642599457152347189475815358398372257772362186594283960215698548304490610362343911760774452604247520198948433711387447880972089350939717524372443597194498245280017269875703181794509717779171713413289779974905854374681245594759005978142969652624221752616633655506791179983608580233904478928387895253601897624326562894638651451116179535537297808152307487676487163535122093677117162269132663409174769284976657501302967884586084559488410911819887195386091155143620927734116705240984718715464044968318860226147130039095439057709629827562895573447655718765574140939558618387579473332754451842566717662158508653554207005463212323866132073314021405870519114552911805268593680780195215180504990811557743410525733318510632211865073504457025568615249074932226647883408064743044354449002282194870235304763622108050827246454813421841296427886254700955245631777301419707829551850706142204867291585162499121417905819700314570195365043796527169256866436910449453342899626359910203027946910525087219749993382921632880189300956050062650740906189375445868422469174940200438182195429900470780097329842351595896622132506882781813802643866200611022183815199391816678688450443236949053362217670850839678996431057271442994462219928609107111777433270708148906506153776254520701586164892174623761053455337097550159830254914206553948535264794070609202772866439297550155742913154210874940829066579510045723275851402092660975422324154292646604040530544398933527258262955461200863876626813687083395354640718854227534918881565988969687557152154677667395950906030136190098519881376022376031817560544883484626346416244918206880621657156898224126112929577869397416106020316812776042972236228701300620772911148236999881646398617928373326916708165560470023050284629936184197574848687926640090477386695781268817217833961106754978124152345252623017041978448249949140977332569192133984892458192243032526074148169766701128497166026298192041563158923936474920314892017356817751047607928231795498070410361880737220203637159309433025107077825620867522890407418770007012301890293981984147699582074569219029962865185628203343405689342124209686609318250488656935581700531337130539208173740648984902551545140086240448973278448648546065642314003616729284863358700906611413327267277936473543462923048705998836249910899835726410155628009297139532854912967033865270257064493634399159303299499182360119534484183694088213403340412015566909572873187335782662433761996960046619420195906886171640102391532415861305047515238472424653400512346853533269833915402461415868967297949935619700795461531704168578411044933135614194727187074105125170648136591140883808252389792872198053636042479577103743422888779828822961591671294808942923021338512847922477648646293019637943462056008982595214121179105331885739231354357465446933724571581889726212180513827849979204743911792683617894831198512699361610802748593025757030428895508059618377270034790400511787657903316459078433607871484745688376861230904869172186948407255606310234501687180187577986396268709482907786970429119036039408338660151722627496650988326697351331710779481757863952520404847561618838628119501172508097978298775555370171798042652566297407253169304981639845312097310438643145451269532456939545946609030759527531763620721175361463292069051385776960499625328140200624844679889188813361157119363737230616298565431166236579874134509640114203176523021684479756115079014080165810933258244895728735901024166351150131556805004821834238851697516227054606062998246362690418717602965121572633941441045379880511350504263206706920999233504089854179727214655291119660864987637232768879545383355170161969587362945490569496205412502350488546862711910651191505473827255662640358626647400364888390730354449602975944863627757244373641771438011890522265501314494523754968446035879984676383486290582298655713874268169363621192607585700752463082941632921765706424257125149184340623178454234957200895529296362182604031614064051079007804345486782802387771109250037695663167101629360901131777742289514846089433639046077362908004342520408161338186740958049668039955612077724918497798901107409197691333927390270792234927098192761170237901274584297100996252313778665092099691906463893710725331901734436686670448607465018558125272733966593664274733313226549969289588627369580666371247460177844773755362320698025738140758283245866548275614113454782604592836300885889567100157458729909937825279626631343061030312359043463215637056178950283937466518710350607322506136560792889922840515231847888929013912984628022266119972288054130898756074726638276361958963444658486569802645133464543256883375419475322763122586112333211759185508606058054232876612139630565156636125794571048933450266196124974455217195778199573863947822673929888136723303751817679362425745580883103399120631435704059431936865006721578110069583532194208508072217995155271961207093393932350145057211004561279059765268524349792278901171848198045501019486937617745708130334401899146386123067810440101950822505513188775963927680299446781474771383405450343800497544703007286590987858866835384836896564499748960559541313257805492392471980599853404082399614760550926923078494191382484907931223841961635386620334319985722849824554991217197446274910388898126280249321162700035983600304505161501586280881931849462571468493496062599702326227442528773023653779705784016557396650289608113678600494171993814012644666614435127605638537394109542201316286020862610047838444772219974763619494336624307969967471919364607452511935319855415123658797616309976365629844058183832294848780142930393175598301222483122829719936658386758421019769656973883561981564118057674717557021838756589601220322098252875965380138216602056095879534057726310450989649717619337157106860224744752387228692159672287149168213943673954770389268424973921373877738969217430786065708681930678168673650422818372424023185685021873988387698752086159653496977103199597722841817123797841772195914497433110009332093622611687357602472395549461729385732003004911018656564086006417885360089956879890216937301473217478762069610772565857611387587512472852329704951961541733549875722799142910644927369640402037960077768429066974262184912663947657359466268847546299366683553401790887941814606055020558428678719117905332621171250434081955997629504465641390191511139850631256728759568400245065319102398710573480136566271386764175398953679664155807309141578981866596543322310711013372439261131483977144773986361185824970336067142678316764887806744595170655529470668294428971191637531228428561771407695823288392363786673703613376452579951168470986166150297599183763174794978252706236484455539210666592728841156839594835660830386966078948963060024274299476910976973070649197403004134986106772876822808261020945540167753227277591264354356943102382560223752175902513825501852451997273621890982981261779619044550593875091773101954036813922011323560263205525027551740971124819648402493118990657702447750175258235662420509896643498514793337458016023190815627241371265588577533136997716080617829039431333874240097701765001859621255774005429964978458706363651582857895700540223406821360269418931323060985185826536963821573231865740071593186822595825001876449544420518558472760949473588721356258460472181179210568469249056726143355619668747864649905237164309228972114214012995039791831612492916997082509379831473072790110870506547040017514091641073979136463806539528446917612993214501673379714546430877995089095060628899851039521127120574121987910202539815152358864745327819045015490653517526286190085641550436369859558149232694998157651331653916740129880106414382373408676560555340761364643101649917856333720420541944953160450553238369112774261657724113980028947992955153297001453563116944175679557767460331186062106400219942826079808619069684279807439926866459624622005881010871907583112969663415446222612583338902175245906454323937031487802628986137689901485934143668742418805790122466682123954706256916605060134384092345300607737414821196305314959454301662810267055136816704051745804190184161191400777799522463878279059234675288160251748846128946135507558784402174055842097680752187467518956457010963137569036434179386714575529092928809102975560418893437361955691384623762087618562592091386567238367045085777009274525080267302239130189882194383764992591650731392684391131500242282775291654127999007684411124574747499880899769679054690385900820640574051381261559399242892470131164328724384560260723326515209151988338101735248014839080395082348184408334622382841971094489996308365640897597929394972625834431835345197924806418687113985816123977681555564127308910719587387698720355363357542745038152824809859726595563574873267440169138685770949737831648335907979052744979147277768576600807929402013423011560265555466727192299581226425163940757705136247226342697009110307587520775541856396377544364180382174668909608605127832418555444032674918526500936382993370863660958840145808886733361555389328673122622239056572872600896946457682947426992558896124820293851033729655506437462242108735124536255538085714407766844872514532994948102335082515968584510494152494626045133356766667480661775569839251313145506510816050609700410179201974537206568539797376009519140619869954611670832990701556946279238763750325698961534142014955269659834996716910745217781315749043666310494101233227329361030936491426057936237353818921139601097680221712910586743965372883674023762222370955064419881745908078659198959209875940553360772058210763778460166111476456705546905873529127435353044640790902693373135643827119441471568723434719765234379597698035454382276297195339290704357313258094967338744332750491072926104023358027817621612475321325959913627426018546277786941959589029367690351156811537849274764701552322270116371632616873018774366311066157341548874129512210561637689458371005843346076022065797803521825428843026730238435396928537867734721490324928840492274047140508476538648351529711181626420802881053256796780891160208120184803787896094889969878912059870561469217323499400489264237022176547367353359792257545301752890124892263552642415374326958599236362549822613667057598703667737682782365434041486784211277284851763816838185635610897964591102897911306455505480663244886291463662023936396793968713985048244453220041423054467654000875959487047455052590207680106945511457502171472098633972845410978866721240987120559182384654039304738312979402712602312598625591044922169184588404138288912374982298231883571926688575850121295111699767443632957448490876154563766815056649114202191796852112079298975762572213020261060867635785316003769280877333241983391966397571031489906557475409999559622195609015648957233204610396223406948279432191205585273993366961647888291103974783890957541407819679383764168855464504995641177943725143091622948992421938812415707951955737261878583258734020745607019445631809569737705648857108816536895734206495948149467080661341338609039692583329921920657209069881521151670664408411640351638831963987595068283812924646400758532615488490055036018224167287326225313963361452533550069878534728901883084546429168901340852563214897950644396754615760694516259933916508789061532123731221530727479508426641478783387869791242332405244504771666118093895890121745039746728988059642860661622175918999528597998538024572421368226288776259323062624398574520859934115684741755970978595142135624697561555615813214204630516906143274971482316983860957989340009629372370919611169501708441940646725355316737463910932615312014579340904014205167464307540413864787112646551860428899261292373958668612791591282310231417297599934045232965250329162025591321110243388739657441937358481643871571508612401185251576500170668340630311108484733364247621292990922111474773970881468862075460918672602214645264800740834734521731997074610758158260512524823290037839596332296633085337085450418191627221712199343286163735668359804776626929631393637556760975199753465247021672613670629821098439608595597913413520677205676002454995760566282068194496289845489028910809180842423306761814179569756667302147567862398328136116674003297163024160051302704723849202531466214964186963341179047371421953120692496887964483426930641593006434493821975642566434791931860121323848941900112531235924498406817851334383554349223540858519074629612145651901154937087097738701583643563001502508387633357354145613639456615963642788507546507977064132232245221578868558630202016306965436488654049029944970865157893116045823186953490893979535295104023435653184670286175454917247458042917839936663922947331557258625222992160067841513172141559433350941912192686620196441141108413859560738064199301145531372680186330874729672946623969984484756548791650974933830681516587252311230881506316120185642594852465654866893278904483612579055890039789331209484954636358731106431441994050906269214090462817856655326681274494352097271716317854580611866050481463485816309706647348756221357711491293189371662854504321174770327345576541537434294644571591718494395705079658989009470278581887993025090890835743743126924855400877343003118905504985254630888665115345642067679251955486815347831818232445596394427672175763145696849654504511839254860793733432772775633910740923006047139124788360191544474169595417589975009423478378808004030319706156893249710679832347830730325310121689883764363029533125282622607728715531373830015020611716230565422930583914991472581866451330988478243438189199855012247438893651428982772646922186171772281341490918131044343969433571027435801140307793153045298189126754337985412045417053411798024256473948723460312348423887401419840142388670845288355335270694492441369939613938037822212569599233984381343126322158633836439637511638915809055808576065331189443891226372141736148973827129984463220562566502078959461609909314055743862166191411266113989994395999465350931837518584774219453107960878318562377556650619425598899575415397890467352718234088819664154127570374110966503297319509013754711685046431142604902666544268190747679075581597705834669046663870818222047594572480211272757234005624069527241301405420726261177467867737541100741896993068460933565528299449934170981624749799588715009619154581962910275802651081746170048998908657502711022025089530964859242533004031641305513887683496745892331555050569239272430891741291778968304937672242941049247007695828406957029702567074319010252104352441326423322213457591645646443185477137272149487599824507480234863260521134165468463840683274322068538478797501629698492497842559315650572658301662778048720158266418352625338030001754861960037468142490040356089279295918605222269011137535431301501261555758246439940849414956720937712857684097348863289530754152988549621968331781347902926115475223147353584049786395569523641937946638001201841946164931179681268430290809442772600017778053188705222874297589492464480849559376637627799342314332870148428046887139479664794292691593651519036559816744890985757532968832185845840981254792932306824459601469339163958532549952826805209694236622341881309641484184312949736374341847848506490380366176805045416648276119521273967241358077539316974767541093959260456400799778148936973215415117973975069560932730017855545938884657631245674713461664941703868420939058411717714479430500385634121677525511132118499755698641443395948255700167608958303941942407137394707932874633577194349047731432566399945078923674172346016123434879160448375900837806320724495754161639447073719261914712162517701961729824657238756549051755471047945997359756907379613778337959252269517375002935620687236756880481864716834377817693727598704688333493243530080116024027313721661443531018853055973968073538634251222383315551638936573573268995625646079155989671350732315353580071856186795307342819741633158232598021113487453799462026177093813546922364535816707759245618345242618236934011229667819133928767892347954322717842076849529511737097329873819284435693677165707614322972022479622871781549522515174423734737857213223439473285542258650701311804465846337122692018620284246879491390505530258688084499762181645412140980379327622404251003446192750647307211162435938758351595831889103239584038127452843673150800676343115489349605218234978648078230695449628882581886028118929953585408922038348249912142705119220762974295852831279205222484702886515494919985098007423807533165903778791532572189806427909892782819841505058192378181779131571126248476481761247677322437944208954058977775474189437049282954827603455808292121165142396691495248403177858785621532043853391998367605327247992922115302709120004352135386113998238743615643885955521635564548245308094169259642625843158097239932880664700771780432751559795810462215908549866761768176459682501064331569015182314187213868365479954626278280064875599178867041475105891527316219922549767976589196674578907946529089152234553094454030929452562736937612435068675288610407115211000352262698154697930176932085394856287843655967090034938138621491749176628238666543057638760416692541473249119631527778373355992965550724439549215453424221917947968621803402570752052061057884380287927745175152436789529699794012012466321356013949449493346065423109980416170045522616122816992062822755744393447263442318109663243625141197235276286271578737369300431080174727668859021498080079536097632463235655812564168095727942754778398286109146368470794072939382339047836290009361167421135336904602168418745230460604371240474123688700784895152146174377847136889637978251376843726118168490062964558810353322016365343161713145635029478792637076634415203652150442799328272096994328778654222727732893990349914988180766905470563825782238362425154321488485694917003946120272665972417618460416878266102620305877871446537616764023884184039521308871487852244787608653865973649505448436234910675848611080728399862697685607908829748904752347200711025545180476045730849578239794111602172725733358739711946551409863850796177533620803214682916369745009843034588667424058896422456585295871043077834748709280423570852153486116205691530384944164064197093571226434332158923027247642978328639156273570793906308989915754643988450525060431629685544437135872453908896043407628158000628544080144740374571553746952999193997824532658318222159001118978466331762864285532046340078031105665425092164684026028618899646132045283399517958973111623737880596011925396340790401453877228708545477239189151858067235049991805055186061416823860118448414920842684758492500492910582258088476945328755144910846846833452628683008776029359871097954465956061936659941269039164503280467457439481970347437761202902064406656329161256776610266957093442341034348859195980649282219827064363460025975900520713681255211228223843233685362918106980474022140100363517448795902241173175163535464334542950133707795859457146834615665849189523527092497919257904493879916277370423702026668785122499716447209381833879551643315732537389014988338045305175812068417338284545564604003617347468307778137621352983835635420282578123497144474612335837712551454204665812633330393243433867337751849450385887886006336269270838767264603106351442955494623934571540192053542714985220633667048896560130714872641522564941706034976813463272876451379489107984317135646822507639819247508369906052386458491319537372404686267003342538491029489958703844632342566191355632052190249029822416018099369514160532889521699870088444789178404348251486366627333162174835576738728574102993289240445075685058573672355951646339128891662329678225257256276775653390094617181585349963117125590362292525910705960439300641616049258026287807406405884129252802718474110315372945928013955237061534886649748831813636608747977296279826149960831448938949464443047218005540114167631525802090383268684227164586308682507749280597148426069459146358767267152936875206443231834098594247229687408980314727035038983644992460201418568999859377926500303794533801509756665632679949925528700555700992769039477781803300063547284723080028739588525173126360768122673963113393910965907601838888512049395087498563011578150489636861468708573274979472450555190157443435285817248832647631610506071340513360828930530822482331123249877218724869750231652054763933874513543344453252473107662551455860574228754656919894228738568582823044799652965997478877216997149330855456231903366599799497233564952566535575106904557241750990235498735601529858917327428404659390949287243486085167318793090723904539285509159588478974060906320154285147866417335199557623259496655389586802372206333408668992911443294335144243606494847436144807660829141724639289629935364114206041870673911461663199343935032834322205373987909506266989728097175337431162424687684320599295337574212245074754309061647088719565713802114929196655652951500278671251934179054768507337995285049578381665285056818599231611096422519019126592066204881582489717855292528872475230564386606703191064389960768371232644586855375745799651919068971660832196039940524209858176808462039230684486140492933730885346249891070612216408977425051454317353212574683461782928819139395008330647245547267132082084031088119871210247460231564122431600192028585687098632518155504116599772091388416098001934595482658252392042682358276674459410794867273008458334791531604477979433565285224130954529690059126092595824662610982272572865731396697758886951642177807384995544587953503112642747773875270133318793151154207105249170980536918104027608527360372078545045734605743657254733763489446537500916626534433082305584923967920433493742585364721399378923178389597545228229324708144564687491252586083212588122575010753899563942085283109083087300988458026991385643686952460188668011781621267226048188190497386712906727844282244941682860435391629995739130296651022479999086383970955005050061568733998526575003562332356888755046390911567900259220101150009475476229873912141064065193514813177450954049022454907790213453645264948961564349707840570292029799975045053287596913923256474540954715421730256251066958909024375632583093770972807351121147551183082040023521955993499132072450881416624162731357818179342204014242457047474748774177584004793996578661290677954491984856369182125524423920491206754808575113879324848861383228601626440323070928092231561222883158890293784119658496555400917677284782874161806649273626857387386345492184628780066596217718272079561503584227653106637038787210494612668447957355107743787386931950756991215390478717817478580684335899704094224569545114986450699581151703106701756148939792263104741786447768917975069863190445486888260695773855613482794788800932785539652927316235916911588974715431413369401074844400633259732438234652908236593081381934753434559379714944861954665537226018279491491468657801557347488537339193003303394505874382565684225834257220932407763429018728024677839942394648916543306708054161352413154284339264616819179021718587963941954187790141889186967862583964146408021952461058164484715951767333365309645344235336997212217661530165124031535008609720935178744282987287959665502401277995834974378176280214686863050696704362675775275822452741558570496780159607197475799126543813759010711064896246969803101922852385248388372685511749683705132475722516451012054356262002011156102083915011511153262491769586920761692266283091912836600848953041206552724924172186433020047483270809719455150056309001483113243763066107782247367937796959228888632811808530179701777222141700199800770956167761608796031656333177215063597026521590461096927329827594620108221027873080948834803738233691181363076707782255515468239799165422504125957682130878032895569204686616010473959010245516198459121048609931932655383607103298916902181948220924763979515941871514895077413066417109904878395948952997485503522477938033309553966344981365795852816399730482912855568780356956775702107791994856763180374310267762979053794007372992897507385614985987465768924495658754448329088098729402618454247813104530399009285653994329911703101070966244121531692756231901141521120360180462723872174815262781702456392962793746141354967634886700413251244553060008171580561748638131063120695697030521926389773104864820128297332896480485627794373723556397077118633811432607846624273015340612248222848000815400340505209023497847886556086159216945692136398344188041486953676915712231585650026843397425837877824798555055262101368541254269141767278426825814959482238588772066552731257970835723703129386055547677303298286561832660126052969593273769022386635977358056007050659791448576502704628662563161899370771179100594067798636095539277238597768066917543296170050116805672579133775922014036470057493454686375240834668449404670972490336003918777092706958097962854678972424977383567111205447995365527974989328383619462286581549871034965954950649362808220080528813311061552819219237186302748824684256917523631174645841659846630798267014884268153269126019566313531305019554680738891532363877064124160562411624898423226086515956772044818215503825282420064869062635809777060959426457018268989524751741958345381543640441286305981730243800236686788310044685164150747826888657621832155399705563931355424441798471890268686783541617200455460925274144970594474968459698834979006149059682315263050915968319442300152898689286006777968656104880410190661840661599225003432011391265652479497792921335056279695895604684849400081937695257174137661838057413863144633323540781894337567004011597537699054524554709985581749991943465461148601582585514739134527721478209845850851411489478422940885654828085915205681942516335593822193367702243896146857459394502315448157878710072647667275298613546402864558685010317666895400534948203633666386115268611470686230651718787207368872558097275225335150942394005663795758430025613276166339748562482861868443601630381715495760113772039262501403906043771663051649493841919279051757682768748084683874181089883799566666634139745022357623280605478274229797075688045688552636022152761496658200576152386171726462617269014814312406921674993066787453627672124426029840717217898856363428617666636202202791277208417063172432348038284072489099194288302201600324528210218658794402262026642789437142390479381917350196418614434201857159927209433512798550321932951477692960325636826556900707371702052285452396737418656582813387936403319592551859090483911673490301894070120108905549756018996323584648400012485083101489313554594759712582231120782080669964733491558578608051048381464620808683422280174845454091424122104931333142524402508725873600545819291021404087493786113067254808303938071988262974044110932572427232391023486389730173639024026333618359633088882865478923332238425419341084079820396631975221929489481936746593982341475071171485531416007390796023588792869597300396851776936076176759267803604629289361093591249691021067242734848797632354825268600361520269882197740363760530227919497655946658853035625932491206604187595629189659407471498169448885678242364871997700852505751933998234792418325098838218743875170552141250438685586696418606995777619326534210612983451536374262404737466866362705238042710604372565011329626440433496343513540720801767193686518790354658974040605262286064224807466923593323382813253777430980661268338990898968333264049513389047943342973359617325376824688680505053771788577480779213297113275656000968899385997366126717590429180162249189138463578734191086303164314003567915459143726609343419859814498426806429463549531045136954630080880959799338443513188220181664503245560147443737252403404261065001937065141978138038891058206917118097338687854077376976873165685316882679835039499109589723584345651404632907632871488931074588958772649971574738745097856658741914798550496534686499278633953695231404264332226766231620458868431637666514251780834597712421762840736170001411288396466129369407366509003894193409774297508676219389233692303883617295881408777284761939893997118800010828262331437651453960883548892090254096037786730015180029578106164847884609605042611373352356173721960552682336597696449401068111814028067637926426611331883437642701383758810233436512622264904880132241416391775358187607563154529240805006044725270368905622519165288673169124365135984269569248745787458484008957351855299275581220775179649898063626994493037948544326143243094243038913856994621750855309119668753438028946590007759420305091498700715810604345320100483545431450892914006514884988202277825137128002388676668534741154592816058432482675177474828401421610611422633414703921013216612485343518889950805079538609307063081472097225913706259908808062100376703781705861632617293398756291651259732712072343074738741565241206624494452855944411090782587345912506572251753330321650996723869255833746177783189664186223470455446931559080201214682081795510157379591280659044826854112905075012314168027949568536655593570797469549824127914918123488748363042863992606049630385650033270013345128021394394749370302224049180581533726118752164398152106534005741489032409834649494394875063469888757925432892276989628351764353470432209283093355661684856403249744009888309174245689096356959077632529759235342878865645214182213057744127661612156477360016604448029720630305520913611910183494070355337770942882317988781452503953566822547679113914831269674506775900415264505033834237054891938917928133369818424776055908311607628479994497515651500469660570904264163899301754660988260858895149279246480020903980469925767777937319963014890072582620528958166290091611616313407568350009892242668093448957557845893884657338275487881176478246346358770932868763645235420655864332016624998652389471723235749814076882073767499145034030463562001613999997781644629923939995932643325181572692957814247705414512563383467227603662875986420219595799058865387934703313556283315255174285545863234091264041098693868519015082664352670936880034223804223496745157822354693844811982375788761760403556844184621896483680314347681387244126493578695098726903604705955156180368435187802415581814889638751060492599537472614606538600089149493077231854923074383455657891891930400926821006905526960820182026026976601085547913770326350568292549602136911435209063163368691030982088689242633346632445072646702292945489818377449226649309084527137622496069887173802385433438937712868863064864884068665966683417803542382545528402468273588989518134183216211846965960758675973271632028657749349871476950016477981601764085612513751018964885949984252166289333061230299910095130742461587838166105575750705002056952943377896248164493889645647571964783131683158147820744135468040683846494588165074520105762526874667961518766234458354282317677532770227097331979103013121752558562308103781232542395940866152205363812709696316350640015720060264065115241999056250248423688067471999067064805999679001208108413537532469146442037143408302080934003782636443584143327848722155260430572989921431565073502725663904816473284792475200554444790228740713737590342766225898262466456617535706747670831194035223229872768935826719472004454449191448306347159971860692946980724117887474842596703182086117319622433606332886635639086621968036821954936454404324687236165758571999001643140916798835761680264599207735139292137971979268439557779097103124121187706745057843181271430759155588358398936715720743036697215118437850979667552557865783446635061668023973328139147523657179914008088328955624464220707160979131588791624340693260177876246001614991292204128013939102113908496817355501163554611009953377482351878839639732564596249381347277504302648793559758034144340395127208145098309774145582788900684697819015405038464008791513266637385656564596466903803246467439507933469065576551424118732947178256961232411733440780875064660336197890908094603964419801403821937819027086895697128937122372072970877455701102865881387533999381936736663537181311570953673760042950009882797933156869858515390681663559992370497054282115143211765381713136125926117583181600250312990098466870949285773377669458154638487974033931211209147531458786800841634702775893433857217701371256324947599797502966443093260833489521255924502379946323953717793307070166083640108221401778416990389128442031714916063530495077256914729847209829741391494961819031749057443029336592618167753235804941878821865463056198970289205667282416085123849784051232649389444515810623514679733179488642433716210672455895782431788901016204807834490878102215663965469961927335833195831569318525815039451349413099813780176210158484443044735714109699824624296384169647973885344709194260234726675658474573147307433903884060089105230736574992096955704023034172705299674839731171211621460206076516956437895398352496221198717572253692746829888738802575893935906620282017187179584061413930913915424460157063065988298205367512200152639421473975430589564176424973377097199280261647336410900482244227044205812951475757327789922418442937146201127707692133801020518966621058913621486611313572272350870387160249044209531128976882448561543186865556196590991583841374459274912791466253039340329781413269444847921574806687827055544686051038856105778343831349697839198864657910425312080179479997529646939683505010866406160372360745774449068871312082438833120789604830340354293428317691119170705412155623486169321597623213028122668798431430763184423216935524819664631379219435423231211981787410534852115221023013072455287978067355185505154806950672808847175496261977571715362375887745700384998103007694987549097242343185851881795177163014839141109254753110061772536151914352423165481143484495875085306369513173176885982003738520195630831482319105147728698941634312353069245778569398660863113637387198786130125773998241224478753579879443973122572040325728148323158300111922991855273701513546002109950181748768595014523108765573656110652539013732018744315346372605497743134782982183602800021177785222007497994872856532079780428530738523627290713232396312778653091191297243062290486054403977857933398410230384793998217991920093985942658381113305445619959706333071416978666530281223138675119175005285215971699706264440520261722600093475656304499405222615574033578890013240266953752520914305371556007640434576477215664277489258639175369640080870073258426752269246694574090155517715642071420254028668116825887148544135411194077280304085685788512292624415252139447139931625601331354861993923529243953854356839182689335408870814383150973146540081590772604384204498699997635583096589397026338455860264318149827359538254502786735418762111779475873393668231314691508684998245850373305323114424026053061450412207603594806008406712670259958840114982130488373532656567745904570565771843810159082424778597349133926288188105228783612133981823897799430717477127923731907391719436664373082920859728895005701496934899598028575711980323389428228201036773470409202357401332719303997877208078805444250099464112805176713077552263531052810753703838216020687371435694059339014407310122707385811062438811625339373606606296672510078142154614146009919270878736080187713805473868939252993919840918813649741541587972388084069370113014733970657896456866260863650720911074964828590772803391827269476785410054793506215409998514689284213854283056971125956936898799444661614004665062430997336298747673110657827469345386470720545585783180551053074803726308232025361604696554949621933173157841789328318920788164659020704557559880701781730908692946082900009174089555949282948149226789276525496327108765363981136718515380308377582854670858236562747354097798888918277862740890424915717855323875609661592532716293720453351213027360066012073876568922221576713442925488536232450801610628048308288277302821542374857034681896567087699460034417819834792905310912817125944926748640803696310966071510220756004082802289365522187398041030548853218204417198574092126756728293996189942450156648135546129344768228742358408573881428012664394490299190974053686813514756904510908062655918377089270511510429057465339702670528589783425261947456943978715274908687516396736406925332276645827435297868935984086047653844578770506086277915626796343177272953427224593221317817740190412719532821663275870551477146007177421294733389912548532128967410377648631948761420475094835950192603977673821504592572583021720590592085202511393554377069730202709559099162317972166030678047036670864445317981364976800433078170907862438496262470362265559746811417419368001833358782375369989541752959635371385085103129854361978299755717435603996746730740322288919164969629904888895124342785826216750589037640267297492674370895562241397120817830087550537685088418344592817719673531724288871655012554405785063943514998375519815189697448255914884774329817900800997128260604582459988882987780992504676383459004998343823066077359796537725778667922280368581239590463040938878818109692569930150273028900699951772423341163427441207805320410554066828844234613298607300058910329942576919031952107836188806269785470502595555616169407252879808794431504452339259680311833958927004138272515321244668738919142921087307130646808668617598481912188369339907457010221723357090841538003888377276226105459143036059694441064808743250018923700358052372173423152819439379904844527788748210593349622962721660120908145345743333732559874838820450067284693039340395445429821028996132243244128008774132994685846937385613963161676255923559762234743053310448432713363007373619045448425923320684949692169313176759634637522484303465261178224617976759478715533562803801926996318153705704934867720225141192632478510169979403833032100835643630466076571696277675594504691971779042897595075727480466735938900956371276270041054537625165183917525885893999225300176687565806683084431751563696578021102611700031895273239432644334188477166907027856851946323595920465956487371462570971961640841840151521935326872358900017971136718650610106837592459607884873658758447185378024287954414893271402409876658649265907945007398918131127206176550251408774969790342555260483042255126421136473582943281346923218964351998468195010987386632534826730312552404708862617125360301810971225438890437290363789049853042676646126931007003707727973304631985239989335146806160561193808055994919771651235537944485164711900151611761062131752745955853883745774310532791272781677909248949436328572171240868451324998202787201085670634609381516275216338466127386801498590462867441386921384857639671877689805590024832809946680090217213182456442635659328116938931083026232884284388556219480163543175872230180631731039537685163987681338319085507671437073873728296820618607212151966222165760469755743403659706720802937753288975590412922831172402366668422675797675437946078643838111703386286744018982351207606589952079629257448016819002981916274770583181777141066888982450104333253143870042274890364831398070137190799200701078695970448177562080233583929267973440974985719270115190706467644593479294040925869220956072485378594026135304929030194942541926769039825772860805385502941079148089958236760937666515725698631495280998165123016140940711630182830423003302203216153736713322894364401221177485425002529449681435407428445932071930697309671579734219862976965389064273187825968772361457764901253969266769565906461213430590513352402142621957023510534550975658801808102483921369515669732916594828987656036956224030679787767718431003603745729130026972463443372218057316554194401205900159116743423383581708511491134589449295026857368919630049906159539856814594346850077535269204290536892833891050927951732160105722020425453396928617707707554679077661632906602098381185222344850754446063732741207747301089669442616007787572299695286559307450401667010784284435695119987944403594572071696182018252412942459816819777489887975076312625392467705380099698377458925917943613084740531115401463847332915370227083077469614077238650958502255087218999241948015056890684890749286108286362239314227948471110266798557146071695193534660397769884537616931659576650090809885934095033397298856242952066798340151232615878793922070256098392149336982584871702769642514524747360307366077962913549786051343241124690500647147630799215193737848308285918108503081775440471867495138682598361848648347141928906319436016179882184928143938808197501665640140558078463216856857153653660488331351190397269525157382574730612078637659103455975328791523898991988036958560369098023639396222898108932226015109186925899185846568406843721381341039293189052503289043092430297029431171304000398383371978344835211013909035344704059400440024278152732015578372876309350524460603951590132947952398244158564380204316424218753522758429513096622609720998978650615222751973162675065899794043380759385059049539412044989502056868122071365167594260391206479014124620127520048515588937683478986248617917763697191107315383023202117303298479566874845568849700086174224574456535555866153187291699472641270069915242833968098776622617146454646782811425556974759786667237526676744422849061853495373432020469295732397458094982478957478201489041630734596334728404524537522307140461359836615494591676426932484589590346704352304068877952767033576621276856952119443309441057433083226786938142285655360034419908028579986992831609416050327582525687187269659594145115324880066401026631953310433131085191125036814408288314347902567867895091352043490172392465806708319979869596948459955627636925983912885408306069907011641206319056084356862591316548934875855355539679055924882508864979877878999152781787944990067872803285312134692006841310673416739153571899381767692838748060183648500009235908394168502200726639295553682045575867506305255697023374908484136532389564278116112151637869634832092284869815803007436566008892519833162728562890817496395608105876921490833363977968897137377135050439124469674049872059402939648429537184443627746729559812416747731712368755419477623867846105342956614397323719334778881006180968461734682134253610239953108374728136225554212097109846526883292271572948558007017288596260969033065305602405013223074358460100483386430887452478880291800158162802126567948002988070805412769982085633900200332629455044176743569682130862165394448057501156986906330495979253430423719132404814644715252927016341210329649459229034347994737053655924255344044645104747765801165097727999931867359972798078812939956369791467817434544241701989231399517663931563054867719042368120164914886696041393129534378846962408321751421160007642379345552242795883354495448901070894024426768344463387447226062942175294939502550647218786391757345551202020386152066825039424979556347610604954338454404813987893534352178767596471923380245309941715303161522064832370859419280765416449123617859241908197570256801593974106152604619596499601162456093863194089822119513196720780722950348855188970613559683281991932777035211076826402787907863088207942169147774062540955203320884083022062286232767379296937288265423322390128114800641176949053909276961516407754919686282219280904393989695389166075753210994445130606610906167626840952039431761218757180929522594761344053470633733920661877521764938620838092026839880121028867423721893492645104448281292473947634039889838688182049228721434374057770034554778887560845746011411215391340657681074708177654377890225612255942772556373496493499580899871044948218369257745693488736589797402937418233484784515013538640850678139952087938738804601900330879194665855240185401539869964842157212445581123810996306924053807334943112658434889861669207104245225619033419537975311764150715699577050869059460992308033379501757129333737481224802685997972963847701957487779718910800633319414394453740456097697878398762948160869341471801250248242876336543887782781662494529571092903007698306255897342537646906266194313827992556004979891984009255881905522817948864192325095115042380325151043595980455114255775575343003379895007542107252137804379565218105989898550058544174039768066820557624879650282670321850242395873099126941815001218171022224301866618238234679738120842659720087100568382557253804588112744313525459242142616146207326447150715569906575509054964787396058891820786656206843657151045450167673589972317978620688087799782017407332938643584539056157131212249018229562513819389693122857655072757207055825010782251333992265045965336180299290071843111222476573261063672582407249419466849129604600560529925089392445283591721431498550915306601634284274188190360849653231388717778003735042034858733263228587070780494303756898380064374965154133961270815398418966713663907860219075127229371796367160244958947422837173004257411140136133333249927299018315035776496784783635382755335693128832414183852133122355233686084166303179209404943940614614917236489085785729966661181554090632706684816445288754669528833183403041972488895344335353579441904717529432572132879477682640875649162485466944164285454446640347220171819522567045855858717664556895579196738251945003866042536745488308847608359731199938317817749901352031139753024219405146654768875023290048737842234868544295261582433998548238684279847521811041595344600330329470136781031381942417381534547989187405603574580965690584935756597856129487634891262086803126988419343980514225006956773783506798091501015888273655211378813000206513260016082299829021086932777367829594885445954219819133648983165247890499910056789384353081238982735508218808099769519840647185591367116878787332181468678605982073709335088785420587937421066618585135152418684286908676791547851417467699957382144423099672785692460729324639930086350158281527470033372141848786247476312559111181547120729487581842902071045768477599879771389109300880423595785496942357807505602935025205925547523518099190118902616423416417841214109259757447284814831104535647697660602158745933071258994368886543176840896843216926086438489395744543699439393146762823341899278602013511754663692640245723720132500588796158665994351575273134754008214374829886384125216014427332927723037913748709843767490681484549763098786619857387977548752284046828036211943393453093004358140373816652442769237628874009339863122501474572904808007611649004116470950372739092046931105671748380820646467489697270993381794321029953957444561017906049875907168826332666941842763208748573639334895034541960054248490398382646162902315472025982851832104209420247090112472188634906382501324212748475435176742903959186048104017943466240713922107786890508464109282331846958179945973490865553565355470180024934649832172347591527042463311823564222812564908556257968920578403254382412760202049433255560500975502722726079048114240714071441196512672938232087886666629068078800543948962329198940391329658294298928618924046240499704637734044772261120919341753091640615358662520590118736219700799651400553009280708866748053961265407069198737560333452000560684381140948042067300631786363802061011535066374665779393886587129395201236993818959603458635877555697259226452565337424343978931186498883913900597445411731953520989786254114347008747554706906246518358710652766689288402418981848748717543963217343473585580376303177643575648327682973572081528038548531545915339869621140758162695513106138051991863997198598365878437684692351611500700426506699552183069631538296894449769062917557699809540511701344218605978987191826881546624075344480449751094163963991617501713679803038280229589266974974743175069829643802040352157939781895573141045462588894478692054762126163293849506846480623200798642566307530773463726594310909671736836766538284659932486150644688081349281704087455524244048154156564184513287862237263958178713252073084523135259049110264091728377979875739209569183179994435599949614311564715243496844060382777020803168496980686564732180094502666282440220919520157493136042013914012050799164084116317949885872392021103314970755615015575554563657982760713725904898649187562070045180743605115270359283120811875527362577783034071750110740318931679032526089905087595778519451031698109985734181186589565104834944369066477087355136204655933781844648464573484778578144013540734994364145192071944492930040174962120441449757266080356017022255147531542718527510054740487300152231818580941256427020005180684116615073988233516963379664394852125507107082525590223172242510909326078771767485228722921891890334743985117553656250099788002693714336801978789965971912832324509838883591733245614917584234054206976826838370033577314683107243711427579005619214251483179649280294504179596169594695627473473802072700673670925805588654901231222101023032769404224559824309418230278145574530488140271742555071186945012695857245482529387056601016351784512020219625172936631552044742128737538798568906416464230958284520634061278587620282487085412181182725262020365875534957175801180337402124404234301721582287838391874389001542956972942211909935051173682331465937950347300411904730237691288061290783070306084333632905926969948401251795599461949550452668331382394229937878514519870531128185886896741206328532880030279713325778770084005454888604272829726936345347536249600502129359854245601641542543831538237211247475522145021289530539213470792342617303024590399958903531377126008976017276043075120155142205191224539136990529851348141962206274765001040415674949196631927811573607753179487852076817046593365000169835903182733587442127878606039491216003069095777082975791538792904976808993600209669619465215545262597270927597433637057798638556732002901142226138002533690281588093560125168962461461853777695325565409089542361075583887690245507135781728334500583695649151205637951807324783955429007533729861659477834663390032139782421545686320221965516368481527343773825754851539726886547247450789059088638347271878465682121871061122619013794851811906641737412985318662365865184550165509743027027110866157218635903995438058258436015696018382117472053405033534247841434208928219873149733468355581378851132158087050540695305764456246265913174585005737111932547392622036790668656996690592167946807685647349123322651865918400555710350795307535937618541491008375729485619668142391593576236092926255110116663514430629306523849033506176408641895451803506404832545977621854506177500202576808641893722214146265308718120649954097570497179675652287438957755271291599890517094749852477514158331792126891559902072829939688712879715160558482331752675488172078805662988660802991045855865189754702052804670307274891393477114173944643717291495629662024981134410266947245221575557751973951207354010517994192885029645536906123093244326833245375894726122774578437910399054074630593329896208691056071991573206124152921038039202944293126123400517705863116663125883087220514359305430764407788826846869449947671134981964605369945150140087520895605564762752216850252897325775744027816640179979415061989186681453504112735075493061715727216492657923574095289012089129813609946600281884008108160947486143385986794726258015468215260585274410633031493560576171016220518445991870391599146375151599247893533167671815118710991045266953218749894576950994754127533182451509827493526430974242468048736115798183070426928180350813707081996255525354067784922661712415516745250355140076396722883126579241845156817751935340201679704079340332277756597692304255703070211791479638701333644752495299691331580397037632703966565574811719344519670027489260718828490776712321775592125055666655667168804531752699051964337447395874285539796158388384797532127863050865927403405622714179033568339395281561441674813007662952016743953674784522568185691795521745446728217184501018795593834880515477533138242501146288217627454101593994266963408399094873395305857563963451509898110089617883966872219555722780981417927297553821496029980482176401389459934075741478285153981449154034515040561640110231070135460325470107165960029376776505526630653359243100114760194925229498206935831011827557645801988641231084045498617104140794876327141806682047641219426584440546929978697522475820960166543157923180195875063366933611008212382568846493244533435646638588814174098550847670187048027480948725868895663213458462081067303913584809148882538656469385543937676125591813244390879414816459546003715787762338417587331635561271591548707034729785936782852275099216908829327368231601457100834894608596538616433873144912624456337565817778836322341346914040010537776686085063455353565609296673390398184833791783281191520176018048297926041347203220022656579571650713053837750711137022827475092665640028971330116984396801670959520641991091850835448320668310713659317163154095634289315882766474767075202185469053257605962133630728527681741701076472386593287280129273822662915340595172563616394435985467822490743318824212772594544225910562030866319887973214840949113349848682966752020713830482677411078553059387808015868217209327531070419702824520503412444668845425945689007822029303912111184163767196842062081957168445403275319731008633442874014291038624152901695312450367862055034704268281803249325126151483564460262671936586875388988845863670177238253649394996569543450302858811526962782494111378422048783458627692579762799645322429751572907069483331495687762800243849080979119904895762342970757045026543367266985638008990256853411468614124284799346709286482132425256740227320117910539074115301639533453716338372382044369240621792445060735057592768328504140245666162425578338527220831879497037493730061625753028859202353398663412108555087215256078580133178322794352079808196406915563310562587937414936187569027155406837901272092149701210061786110885072789927164650932548145653319326467584145127403912560042136290611391299480556415900706064992401423020758444920332685694666441987161817753719763528413659154801855997186462255130938326989680019067104074705040917386741979790975010612091374435505937054282779671742158356828658039630023267338925730195848448821563698975476026321415945392111550905261289908304503663511762953787512241244135145195283696799623730262105428511162834369788967392188705310084999643975442983988322757046481948135673890958230355388578081924880717427318246101235202806021213311278084515191339986163005830830155773682418722817661567647207708706753250226653456386624627290270959072540387952852942478614627829921115526095572864696892787350496044054718982610025060326106913832914838959519627337206703323231662278603594260094315637090846066939808921706758505562851602440864749236761190610395099799029951121839363618178553118765155011746639378726674047356000581398688554628702242589216657696349487352783664384376843425994899067757347508285845941628212618108083762099647633564584698201208690453132108041831867003696095418323742887729982123137984961397509390111323695752303903962617831983423540680003156706078567126857330962944433491458619978389458968740496706899955502368817090928743489331334587159751858198221549520171500976829838918400566610761506330678274085023961379945935631317293550531859483120859135012198990308660228570379951093291664700115949848050771444312466845392666561960345321574295826841998376480387927888354837489379349919518299647968932505972828862031861311431825712747549662327038134790477790429601963709000026427131109520453146386917523586670282356612877469477078331303754575304330881781097299359879541835793760195664402249286246953037986266977372655131654824015050397216832868558404927511949644177806869973750309716242018812838157596853434655455183526622172001180661581711662905811932016306066422795875078565857786058531708776447040180491653297812770863458431924794899436396591665091634068921250606611490124558123236239476735152654102903886895854762912367844318242786890751992794778147842294599927183592883308152873319265502907825402288230905462677558482612351825288991532238860881995444515697051641481285741372143338542840383524447644445304041583146748348998090151266973322086417193814579196553646520506129400468319343678381521531989948859123044779856902757652622318261113384213225479235174224816501464974426983287033978382891413470603398265998109973926211056554549371799543225225574273621585588690744079393072446231608370768883723529007205096834273042692163225296936955776723645934289709556784295879308458952806820584173888568087408343207835808526611531043132639189393610437717469203976015821864338228366722056075174363300110060750112486303458367538972758961856079105993042863552105543385853617418558436735252343361446837030400404153285207229157232399308633134863547371861603060086844819414578581464118040655269667822000245213315671543625310536978985036815218672025869718420613581159975911951645161258483291686636172909666525252054051338542945806339186318466759616180615228789833589149432042803624881870264700431546635648693437808318626127395221291068576770708351673102417909225147608510923941990234942526553103595900581604036922868723914694422259921025729135025253052733261844777786692044363328054751209866257671665641674876059490230605923858979436605933102339049889789465345486438423276815133688934270915398264735778902493899920326847498811140377059671088519373203195189498361529157277857140887007326746681424575054965214364515324275506572382560625945734953056788961693620373695923523058140910569421979383202953491423624794284891227905260274125643218663852171079211680184951775172390186723281889723859930864186542677742789643854381803822034929947874348747230604088951523093103682389980281786265481308590366302073197210458719066368638802399089436707882378925284444033458597400582700323786146819468590504729226615402227881341788137775831089556440900390249398646488454276279278378659780597444433516392446143191539148806069789146856873164088081118693209605182912285185015498645574113436890334054259868597030495295038849506867808886459987134412190783974020171047423279651377773152143366850251666610367763772167562860962219369119690760585056444111839698560200273656786236786086468117949368472290873205862549758663913744313097597836504012936753370220666484115626106210513282236569113055824098364006946547838365445254503242161518019264299898707266033565469979280915949914857734562748719804056073486559661768398044904655898982350786497463935840997509996475006509336635602864483179144602181946676403915113647122709437838117749078791718637259879273990420700299012210204581776650307806510852984713697247875832035333789810979123955466464055928575669263312220522052145989756569829134043682792984696647248929809230156968169307382948008047266568115382712765666989625699805391828963908381425845846976244131914003485086718995211045275717484989789690671041470654971674118039882225230246247320886177750874354287311595331694987367008858284216920890292105575190245709824664155995132838828361651933495674701082151521793446152084108799445552924418819377204559732254230405211868170580266286658845800649661505794729762947936549335101958750500072240121993450902637813537268093298320937662121298128475679880483593709590190603655464535016366752206119995323395966557657349272880649238269181340610911338847965581911202549526694239436892426226190311468325364427444001778410010036629957935171123771074790661195492051649971381920088595551126817680374505307009976861923069739342257929347083274421006285087447692589798054716801237410955281304733377130094327041974369335034262685708676863667802806058744475686220068754688783068070915863163306606665379104876133883644165465414099865946898410426001950933809310942090220375945603344840326347795341701372152723746748618330086940218591675479839803311148459398188064137081182968242650528127657783271135542299198894084985371630199034297511906141342588105725917769934285625679627561508724092305015878653166639123464958153571319454949071182024352174913209874387699515299601915028338870631567915927976866833308783087560377669383290769943573801794679932188494298260155383281848985805423578472106629895411101249107872000830463815920216658632420195523750456631865203758080263603196206186791603492607505082596186627309551383606301751351794858724513328987069992689071929372253966414572850844073124761926330147129590209309209147085512344258010469488103244400313429743583217822790233737629771514381117631833400893249488687949064485615921110729917891447979418888287405733700695964481083788308192725469233002746147783178880823276361602220965808845210045927386413564351575997935880130307248435061594494387331217321307750135963615519197798304207027406350707961475208738121338621203562064344000035479365119685247849158690967170563330080183825669379700644479651529162641870440363597588944282415050023999533786281376603930963142299569454199354437114243899835370454021604098275497952030200155116718690381809175303826426189264096935607881020483919821652463727228192553896367536368340891681990909363556761592979850250965573078737798819753460845225033832866837324265384932488536050320073563297555240893218073708155317379696209522313161655942029286746506517601471224153065610731657278004309104828982640913077667511396611524220238027937605842930887893573551159182924903871744926376249312330466716897936102512097735506862308213435868805103382132243737875210214446164001745159017191881709508910696932362985903247021109992372846575497813478458364711036906361849028510700471688561370234074327788832697816659217848910572046603700259649639169907997245342113678383233520430946419028339779105756599206732540709301300538732815276669479161895212423828988021265297207563933699333188139262031015294834717232365197553343684977133242827030080112691187087498313966237415967652819601308365053735996061514379692663845684469444121536535051761610000055112716233632040080731339140728938608769444655770327901166748562853822397491255272948688312772749503605200645298181297611330684448461574464799559815158052315408957837558896663684513260881511083322169571030844384622607018626565424159892258078192702683703058101268491810631561795294467478487675274497025355609495363962543577969868557071966162961346534314404610384167267899353608582601906233175709110362024548511836021316481536179068751909678861791686899279468992237602929203035681240563312599845816786508808515286036395515046764531688826715224269637626148369776309642762610178310522175709129715087336782648002843113129757873413229995684388738404975746712686738973403097057117444939458336383935331415770019451482291449709820921761926350169871055027182658553240338464720339224146963628760600822251252653622224853577914261319978985874720900401163825049903223850832367189678921465832225376162962070627471480584433698455087089853224707361212173855544973226903792947418995287765103082605334789908745584805041098725898954398093117689039322579472352655694399127081994177471260133340354508830329604013329467501645900288769180270370339780734193939391256834681289512405198038574900497898093272793732664000778991689581815313623512846769809167942410539208824686409805845797454225521030439441897006482829515109102443178257848076389188483615588880511074842252238296688387444993426245628851835568189243645595648009949634622190599987856944919823748112000148781183541473194038370267025264753140253449573811174786584468007670439232808019494262536343933555304128583427424633757109166900932549297455967060687785110104028983183838835791136598669437655818719982312572150121538690216262600666298594324392877548399394839028029418994818336607969694454932116265375125033704325678852038927686545824062992841524302365275781104559770754440618459612893168864798086639843758642064256308102909975940402647080715081919054301836464305346169081029555634013166399217450236019301737143765443427101641399068934247578721982176707181083983887659832275868525097876091384379684585512023585201317149899365058780286696055911585406699780298007392380758403423057308817088742827281320820319765744462030899181087553362731167807090849209900125183969890885024482665038790001259504097404433703738608355970159999896821450232867938667116482468448765905212309614274049732249084315728183646726390087264383340172714143417189533050276208498952457693869951137165687844594472413770939864001614226142796073755542498875333633048914965188708394098617070159991648957232348931888699125756646879152719221906547959490131615851282320476041697142015570592439827757696851278249026010950281041420632588072761716776341848604392579666055822387096983622310253836374252014954954737792593584459141301995202438700030441114694183020058623800065997469991473929483366658207867567510093176609052193954822774834778128966407235726388397232926789154468459457407340015677203866928955258719907420340420556653438005539007661625446005365984052615135907987787439853845631868721654428474216497235804453192974835663234360116941330649612451678299179516375605020301755465322128763150048896203935438654068582253165122022717825764614372431650310807103844831038220595535483561080637182713920298954305453823570009692835280196028619956976916360435341913665639562481064162933352005521156740299227786518790683527482425054199737552358795457161879967727081216479563172827096291057752992531898597805970297219354774370111787008387941618013314222908925115756692508906054237511184119673600776429601959900739448762148866685639525089675601453251865127993889418533789716237381444725170859857676198547168092002667255932307288356695250403151107315463884269344719646822868498756842154629319300600223219348191148458529122661903144964489365014887658504205655288122813624821727978221505757385390019723661545764920576165689948947405032583525142065660609042300837666624979523311953500414233461412246040882648659435161149808975907489926381274420973097516027011134660307137151658825549431943043381433421136393006838432010652061710299529419714628903886012362306180501760664464926262316647714590369691199138235714674883376760800317211584512207196533694781991354255578126763752960567443043694680063741526654388284592358978462037140909690027999859335232594441961948611809905868017287498942917808874122714333057550360286931683549825520723903027830502352590796863547719470464841389403401577393597383764572304619793765225967080142540928572258932477493696082856473346940570440001590499132788389675136471310619617520120036062867292389207723299838505049709603335345491760824513645001106489065671356203097925017570083502884741221755326885560260547928695974327217929065283856902419881477692551740870282475085675349556623023511629395713121882158672773325539045425044120208302231931559213948818511820900231913742741298498925829822822978344679369232805859885189767752080618847248910065348729530990647395047537709078127258517841222735219335486943576615980078738031015971749785492710778260440294035779651421315683981346798376242613944799744195227154588350153560918935535171800456744069840761875193501767915372191092500164831786526322566367446829915780613571788974740710705154239338881146795819529573196647060100791528773354960144301224101323707868514585414574889424356222589706377696101506731370909868530024276083771562270411515348449368227833457726727561298664953523930337866713943462575201022705351666378814653030726848626887986436852504190950858530721260640886247255339588994686086542753022707986241685413021689293877988125799902029935441618642068690351351248441098939311751597577878732696039692166984453148038090050245028033192564973990059573012148981840156920121557057429333506005089847838249182382178141594368979879885574188598522420679803663111108579483369750400293995768759289507532667728746165929259550421306129406472076569585195768084035484227964529885858096350810917107716460961222726538375466855466913731310149663533676254367227981746247216157113565436470304699371179995422721322641475569868611649540498145269090961117444668829982827757461735468757950451975075615065261418935845813630397588554158207122803285076746505512062464928740291923364784352282869552674070137076887963760011358249841065498305557198048830070022689166831359224929758846918730125893246424197128355256885597719970201484899703511329639868516713098791507232194471065648141382499046375000045274343048917158397830959849666137576210313382108123349296625046547978368482259892800144730053925702364345871401671060709598943505742785369066567386090910746866603528435864635555022361050291079686531928047440320442150363141313294913732691753299223613385753594088207414896185449455573637757822227437458496642776046277899541106787068196345297746188892675586446912684535484965145695965398605167895931794071934966069466008922285234964294479422052843341253086082835129123487635507776034259972018694533615008841499618233598653188189084027582457699638523828566590482890755306803945895728372173030090579030552771886764994254444614200100106960333901235870499708439200375224652197318955842843696935668745643602318125542160788838376208176583058743449875621475769634489936257694206758261228424101033154526958303891498872591857366074056851470761762758410548762552989504626700750250370909987582379392135115877077217754222380302329339577921275666280211907901818352403951164940972541965313100382974468227521619765049080972700571019869106748541997015770198148945842356835691325607934888388654377831168460305166838491881327730058277448279823663082331634026592136151861379520036045208615842593809200851350760208729437197420683812284357249134794531031402024265524836851834409707320448785010503182677760991181425746630670330745477723232184453230575096181697860469609223402062172818053578099738363738251670069616278321178659114831198868522587771545077058807466456862180672270116647799096087729719873570790671082170693281820909755725092922218540713015167510564229017589192231439212057401911045475360565862312822547609362823567001040563539261232393725104718802850533801266928987410030861996500369619403458751049938119202737802435304539044557670955704780256076045935158012195921385159488248135211853351336998366134998763165485090976544893364165054559453867299287849388180371982337503668643278475206939616614632445018784871772243738659362327962502521390625981560000679648392684086159449425181536005413874413310844449940296498888371707839007205902895479450651175574529036590729555994037957855785000285808675001446508266392844180752476300023847903479355610512129918918486229137101275596172844273667593427425220887086708914135948724778840210205684207981968560792785971120130536217602033572221512434413305266065604505213125649825924289217830805869618282907228393150653812329941402433237971356759530824268989514823402692776869506227134124219805936024381899886103954449014231026493556993365711017245405461870513462114239432340134164960013375545985116970208855977961682433570315199672621701266479474217591990616699131850750182985931587817827243743264984049278369907284058192917460672084811927862990710165229161374183472737359821945954794587075307724680769166261172946879193158833541099783466099414836528374148185406385965471255306506048825182163676291906134392808761547490260170852067386510579520038406367240555452659902964283444752894163717054665144292147187209171324728838977670522022991911372447819041812601577726416787218534571770420611106942392464736418416689873743357266291678687635270611818822724764087205152409094093889248846035760384144835479215215468584672672624185327379312716229417992453445007474501099324153064503366469749700038430637067420690595829280593716757631745878135235338976737089582559181330194577496739197247901463049627808057859197780791488982786557347618149862279234523143604773614662147049970912781709323864860834799050561590342291976698307367217844804124343691070412636123134100169475423240201196383930782061016780788509650415924068506500966935068253774847494911650808010285545250895700930412900348477235277133211703311677941520611267341582199456461487454841036932851256411610966720168066305389901241372290911323980619776936432320309288440689143502097180531772584326097196566465435919706259587265127795371385859100980138082382411122263377680411718788033669639051492507477712523836835010438184369087302286836874484832378026438510785435434155725754583386544328548021293958900193954339569991813184774133217850516763795445804063539180434326515635086885580045050049397343207955486813853185190581788580774186094910196982038622602119058493296887160845723420044627214070556527453579192096535622606817697584606823019219898857775544824964610331908951479105755466714604149466902387460859720212294499379127732251598820826858629952546202888453923074054095169905108268022082812341131781263639373609096936335343680706462678212402590389212806861419705437183903516807426601137326030741536391177934588338679433811131341237480203498850259403769930545133854161599494036219026770010290420359040300836538006004227029675696947981415680597552090258802820025244442237580848070733387408511181536938512237904305200927215546401774408648369254396181473907822528806540318347958439833530519207191310471393283528888713445713659378857563593425703358422184225407595124376498635615302983944310918583764566015417358473668713538393759633999777046729548552217964496581667615822174025876438649752971162172184687412075219920104672645814118101445527610553729984858974753045791725925916801119513843121027311741676844642933611430920582989351676510528321684340732653737445373086155745130595766640056920402140471893399198113168617294590992107712969798486063443312544705651084173504193095927474615311171755242064011725775065560994557837790261703001882910205128064902091329894779490830301803297068929751173921396394433686975639951297485441838123539771649713308436523708639479710427411659607936864647933603204663513351242759533186029343944408664501502573263241749680344165164548619988247596453546692480516730839457755047970311388141203389022548427125727314513406596056523143185966307898789839687734502860861350628703163245054440089814125621103624652081001449407377352118114686883706015145290587711292169176385335702483917171219706072563035523250283793517974610064080547090452961065823322686861622361335214611230021895878709908847252893827342412518694967148657196446989016907056336047964302714842077083810832094945367976425098310459725369489756762262690165550435688567384483911105985815118702400228793912752559916532418449120622916742266763951653129736152145962148823275237519322892804705377041650964606682143809679301126064668091394458192671541257979874208456832693573792622040020058493867290438338433312031997661563344326449678589999562094740337584318619531940006645708210013685765532448440008613111561799639459453055115965515898190214357386600807092097101960446281929661450571663489188585092262576999535942483572697495808301468401228048082095193543189423709194388321886032767059277205819987326580703393794762890340464046840611571492836226432870251445286793288320722088031081616663400848619285363290506015199936419806753607642456424068951604686816172056562663817167249022105967436586782298877015541293917718162504177570220618619583600223469871771468208928302354251920386349287997829335258236080471282815468142052222712065292449956626735393696932934325675969606823044585299865440127465389681780526436439382210244686303177992484456115625277655411669034176290542347235782176456045791883819646702082226620808321124633730730415385213436866860725331231465588360032998900749277015140965729231301540354355480836933774662940808010681494706135845358974219599954068061648170544046002965017062391058281080758740016709257245578719958320669343544534991330390187241083063864351559438823883536386983481622685359500424016448652321402337038235656617643484282658869203409308118183135845165645221321326534558851736357491236863875802729341044650716222642263719471484389513521185895571587887285724056268890211870085702799536589823446975632208388867889743918818664041277628184312339843453523300556514697635950568574970511828844633078378045066512615095094569887832227159589994871417981194930036476419560641803647473814115101355515642037536067663132998822650604806165323989229769907727428659532242456194917568649854323414570323553828117025888606131318730586450859557632283854112087748379595796157784699450255913956493166440854966405698061373213293624050306801796758710781823009851033686955411968497082052298166968099871491358934756907409698036186923181333796938517206000874344445545270421413449069700116366333226621909475140125525085096375431973351972455983633248092297435799363683337426866150151659399779222969019300662712827935125835941539024267083638636763404419118958875354898947942478262690153532644959198891783724798851976735242249956577709006811751716511589750572103179490674350254107684233652497541085983492034385941000529116196739571769258196343258454257259534169191984933295978969270553059042319288636613382014243489227155054230345476650344750576034528903591519550421578005114043525041363415465303170268416182638291538425937961255205960949926679731352355114087730123500863106549613381157453752583436983377636224504340677133675028017504612418064418152784713253834806176501420704184935681554699118127154215943014504443617148532434096275002408630882140162578177492038497098136655055000524624963069575286321281011298074230803504374482540547047254615185739520772891111694951749174602848962886734196504365545570599920041161824497389210348848607229115927112743217288235546581673559902428687215777381926780909987845990588089290848708814955125360344379334629078518329364933120218433573339933839704777946377434308045580199209371353356755824970337588601333980139853999797687880151339974410470927602259764806197592984490417191297113717537538685438270699011540492351243442804358811168529447337522170371751718874817655079357891332878286513699162306353015210425877799382199616087755996883581615380787987355969770303054199562957391748589595446333835962282424579333606822745385645508688600018947939657555194841577954249753488587897464510959081442174941672278173490510651766029789735327533242421909192997904008296181426877017769122539479401674764407703666730389155934378419667880459868176868823973204134474229650866660994230761676869000349867790813103109437954523174831903686349058574570704421811142818697039878078291136598872630874614294354773420688225422419511637305101476363961406767864040218844440084245123803103176159820015439644062932418202473793238973610362869177871822711692637700930955551628176308711451818608621051312936162812682588464560316873987527714132602611433509817600479336199523549018493101969677055482657858557092425406738770888522318971946340555060458649565888792588384792095654439772069176756053930342410647155770394084903900029264045484377243575953422209020013858837840996794707431736026652134885570017296077154503050857970705930524593589926226912884850525465299300288390074013583803201987933278524460299736113177035789380467614845007391311042761299475213974867072384599459032261950306917825928548839672392820878625560702278548341866605337928561657090127231997039650905970787884912528849302624084960998159469296964708241980740015927459529852426089765068260658306372295712237440151937505132853006674082343660608445888554530695654960114059802132745264632127397916794123978077631803540168954801023878603188041881913598795735558902545653199015179014964188016451611142545143654054551895279562454495472483498951979445641514128938701637063868420207463404933378618698295998963330590994677697189892663266515951674195115642470077195481597728037050629100429273863405922654969144784744166303784546529980482058952398914521148255445330666397916280500085006590302760070319613319373092691221019501948626601784800388310925369155031755248237330612647057197248140012580317762854199451960154442240809533089535269977543891976187810859805619053941267731845229126665632044637273446604041818665851386388243004169180584329719941505498447004039407474584523092347481841888758294940244642860408004920863217255191419166785167473628769198327992779329332990074774517521040020049157205827766820302008094875495338940767079947004297942370780631161442789989799062962913625972321019701283232094326815818991041686989397691372511093323696654227383890458014928403313322250376873513945230578994746676109111151057407591038153534398453104298250369837448520138772045681833859134100813400998704672389046679166606233430848923325387882862682864573724512517553826865151616113823421580507637429088729149304904327638762308519688246592774010678573851898982912089630728776567651939454449736287207893718852887174687718834104299944443226667506076236705787972190556577587012601598202256459436272209649929445963353031408553540641543707525416137417766329263290987096450120455980422451453764581958929325671461478078504952000903642877517387782588262337573983210299718210652323706998339477282463191483190275280945706506504530790840950395512230748256249783495523196423372619155828619424613683098510350543570507858502044267909306506575647153305676033653992388005591072740388764367605053911475091964004197267841298260226080095006747717670103360079160352631321749527061949608725747397730418468877773633236522221580619924070930511315719293078017619448638970552763441060111779036623340641834309285813303250092215902578191730809805063018204482109043663628458193792797720999593131067684778487711056516763943797629049157635299180752709659183544053524690407016070887896188334407219809727746661659377340779937027961205855366136790502385707400401089620084917519267821484270777385452053037273974735869941679705427111013389056315185983082922522547729685674226372761480436963247005501553903971990858626401233666139547895374387938265331609157116233038996998767442516134975627365087874102610242452941309476445300109829277011981302265288039020184192884598859562318946227353231200467742022688068788638262763178975690829204285421674544904579185562379677816199366116781964758781116023562386709187848775895872553107246279001472722276676025805929160987684603423714866452005426777874721024305136668511104619264146088854073981298191879217923882493109559812375943120690766279845965278865508924786177020261034255809344065624453160967366627222579696093217012035549118665270649215879950437048848086389564248202129460464644768753722613014608838150003531165437745749100042785807598442309583408416568943298444406373378519540536778695819580918550150630089054874360775327233275248330256920046724878809498848439201211796221425116028552421984359389656898084973409039611935815945991898658944615957535760280866847611108296940694950436898562636271454965177687671342082838478194680272649372232386520813494173371854072542668860601232591992185284076522757602532301011675877635466147185956459877446529581621828195009463217007809923765233496992295975496319128365331007852872302372136659655590999046641264561320783267731642709688450525544730036630251796688685540359273938684373062458589515929473146422756640543774765410959201301400089696271486388809102201995093210563638560031589177913100470163951875301033439697486752051891943109987271338660529697402633426277645371708246263262685559106931584675133985325120592119681429566120399546730482012676249380862427668979277533012587137963257505206303735467681256354827723998782946716453778820623250204815521628024041747114888357193979562271881076789392063507259258238909958429899475303598365305875240765439409150517687916936931718054063183166361838073633019395613099039142167339056782527803258296550496978181266683361522326226162545024013573025361474377606680452295187587829978254563515954322975937206358718112789156702221211526622968584659819456131039583960760929060851150197158850777128401835499983424452799221942788724725180043334269373532281311539369305603672936904498412788892428475208380946129579600353207693336038535354139667571038723399196644919708539137311843620651832696566234609992616012690970684166525352442019701325276728429292972702952563580001598972911440439316887383481119977009146852377843174701269400338316843045049762598677694365717808872022988505944786955852656894700858720801861001970035303979053903781980711612447768956700246490766772963846958157059497830736302174665911282702667032471833150525411029076016179869305490480161852282758100343906126869128982957378683971141926033893461542903944986211164494591042652083977121896849215562966077398872458438781181637355009082089744913735133572019854350667125581813477520625876895445928777640904389603271664016352921481573798827744889980056635119505503869097303293357729858924347901811211349501732690149960668293428330818033210501719525625829141649100354534502705135095679580473402728780437951114190271320001360287977534391660855695738259748474714163295338807782792419792045301143733419130289542354351543020269032080384787517274270902087433514286659714602026700688677913924361515923694153541782262384347439039601420388351530930182110301969131774263947733750331037673729985387321557910139307305496026052973222150325921477051141548412391236052909324111610215901556387322421701059166210561617328935525489640308671338718322733673653806494431528276811055916986588998456536099331729835322185426163789053230561516817479443655925945489217797605461122916190691517663306126535171754196836138282085411491676694899512474066460358858571055899177048915873487704162578352260746443261483074714340053217987734455643067459203112940898443770997395139769820776899027781673026974029668795964013222292640806684911655971960740468015659591994988757775179168652041408535247243401526003781700053578008125353428167515068098417263962604017386333690150027070678233597210544584386223147822321086646459673079011298552918982367210517192279205940124330663028638734651058992846367264580369376949578089068144464557381651872983196811653738525570188265555769544161482180728805044555781077331249375690558708949619267564492942183173244668569627152209697357796696175003228696706118538118899825342536620008007291212846501202186777122017745247339592147126290387219173812366295167144647937613851250294028246064120793881309808237948264171460066528063690444891000757958723258449630437731386502219560037913533819149163837408738542724320243693730669909207496779084173182266393835510247182417757900804929133285812744927554684647961001884595131611809226641563588232286904662946080630021610041520912843560295252261708328611016776636264969243226464243239881254978538051602247513056969218835532637824982055191153985043140221368509153419177988780897264818201723404540922546505210955980187073317543236469981910012313214814198361932527297411328497745018463120131648276699365469535361155388596999556654841746053839162805967744719141372590737448613762466832226537813377632808048119097893996646703425507160606930789158102505179123693014491376070998739439699843366861681440348155624056046545081110155381463459039894719394604481309916400862058369456607358957095776750041224894537113002726578636487394205982179056811219404158368933734127993577436643279356199393744425128716881808900154689911113710484522814404466684953465250965794520894580252788288401678159571675288201448093365304098470057731488074679975784938112275292588832406725585773968933739443718640600795069333041858444111569388773627633042210763692704832685211198019353185296657419590228167343569826569825575635810359045019243875365121141059421943103359988972717344956567277884267035174329013536299079389487856397674931290394629446566884082139698589531863250409785209769198342793510440912153431013591933985046514002102472350224746826175395665336549796885146936591624970250395053251571067830288702239773200777445240028736559296009183321271444235315130043117415545411185883264361617420555931739059869535070902824169983083558599521572240236472687713591205125562275750763912724246728479995300115693250847482346504758043941542453566678709610103501059871986457491020485526948637673175602023890102292776610508379690054160186504909701992963235129166949513754444074470249555516030359731350124117697326704797657905017366665156127840746980171966717551553523962063614710453349496267320672211492774546071738626546989972665821179687556335600999203039982685753044222631563434371412339902852466181341132470507199389084443890623912809502303549634410866226843252919645686988205077989683026803878357425699063368541326307548194284260851033272547504667007640659755982141934192251191230687882066763958964036346376615891145345915594032933304912251843660217462032101145151975025224362855955059937618366693025725253833514125173525760324739235086057893684730321251927897020974634059612482233356683442659895246526446851941096364145160696522930886657087018203080477543293702839999062862432005342615799637742059032266588027104851932511260505523571811276701159132916137546127575538092969773066851508502666673581444635197594104471375946296727379638981931730541193138346423148382448281939689690268858256441430494405505995689287224072209136754090397008218407813999729220185089308495890774598075901910269144099956869012121798160227321622035776085886627854623122978925581442851146003707240331366482237604723016666057598488151288610320735466915202507775415817659243574407358231014703549122155673110328973516028857511126308347580034183351270319185481417155986764874985538349237921207217625541497501207460750941644802777481185419921332775741621638551340428353229867030216575438942014726825499447236331404746482194355014964621975454587881524810439878492535214359947738257094648784150954738356825955213861553514901025312539910396717834629196099460690839795521083164539076411669680015848950940383432288714068736790353663235593811226107262256252451609224866894684696512643400133275810787756572133956067934042862122907230096086196656119884296530225886272513138027019543903351320811214567250340917026538086383601160534020850368974975697407457532672185620088299842130970661740159023136865315135452974762212361706214802288031436526201441334729133943602525738590576005852846712598104180326156846181790535865919366808292233898387781897709282530003834864710425194644942439667394267488182792276082524608150615363510019047697563756373777456552378513879069932572940922277679128184471721353456242644850941264335706048697416650509374861280136571788835475159445282772643458801122279174845336515463552560517602504343672878966929675297864104942141589295749175774554706415405457119262305605957343240545281238346442192045281352161401037402834826827121264919399697857935799838270566860523290114239363589559670378453641989804107437396846839042282070676460656170061691805558804739869758167791452660065602140396800214766073432874159757597989021248669393288437252052572554191856231503956115732295538152460758320316099219549913637496402303960294644032643253141726487999772636765064568654210984419415392790667009978106351632528259820083155518370986942527776552240200567425052346606107221969601258541124326389531316525885896834673884092512031755291989179130154575344220423633780076541956884069471421094259752350576423006273319056235714530446828639429551513290208589532767912501707304488307002522749629578474600221807372898505657763666068272738649265955496261169938125998465194612684467983091706826347772456761895370348151286169060720410097776501705239055737429526519062977935551613060618258149422604777069347944478683295977939915645488999820758293695663487990985415983556575318689808488036851380432358688590428116471898428102941813499249594874347179496882086229430815617101028863230637286997381805643779950380604954720084583451776865487978851007669517417105175847866324314279062292445721685636295842562007971029337594679281063752222215666682198923819859973644290609755696708182225150280071171772707168140902257207037384149908672862853689198178650703304314047701207944571167429044602527611230031967516927466784805939076746652480561747448398834405870762972915993739968892902330553336694906269514566267016716761186985849479559063532050825102136663522377709870344303211819318627778067004593668577392271714823811168005342282584067331072526495433784937216377629923250788790082517147456326856561055130102409680875142470993435638991580532598330601810946861466577866556667018304215281640105577638756185015258939308182487453358531013586479456052015205446548231870575209145706431039564033406269593631447004988887962141540492603020468591100477066526071349842869990105452924283500929709958267793051608516583666384515334682207661614452532481161461602212823876485362187625003242015118591367364060045474934918705654459735108346412782242509541690519375274944002300801977592211459499924126056409020235236675015475968586654279990452467683746914902943802403379620366891253041202132236697488565020152694269805845268821297311015714021031578880186264600988152789436399229667981282484891804773733820402480418239422584254307585533223690752331314570081293328381418171274260461198377662900253770131494992031869634289667138217385760312256430466824810751539963936746793494988835332619616612008148166157941270726533414819777387982577640861132939830780875689534602552309974669885783455149077981029701061864864550963945250474242271155698666184509812643853935185951004772503524071312555966169371669758610821387082467742871057433975523030129629119014032158696226302719429286969333481017040221392036892599279670205842806615732815303854877521037072817521857522689466654120290234879963021421771388682864338180574364171116113143576332370267731452135359865909348398327537060474760442189476857170876221053943153325364400350598101637623903847622683628028372708112297006854765471622155853783937803700483956070329311928167947463635254408374404686050108919813662280240733220687458546542191747049967676978190224188968305935061938373097449181533467185508023296769061511489042744642757757803068806419324292905323712020838716780054262932089351472711205343245595682679281403469091060065438143591427569979300986845873089551974688989979426036269724100215857160607740628180814465230720361745052062030576366949147667457749478209565525917483518212086823499298087998735164662262578796082266472665425908250438485216195043837016411501641047088243962994938644531152378304811108549507498824359370585182684891600205397755110838995592205468276001873817211601505149633729746753826960567284726202155218781192386879051195029900899599536305023987670309098518359139175391524103966619815534970953903685741311299841289172660197173446467572722869953647381121923401116364987149074013541582635938603643934108326400118351225396584756888238315468040548592419133087957184187651131322170122909525238417575772307349640999278435129109058106848301488952145846845121016341436053385091928562572225614406936000981736070170223355734174083331290650954784282506189676731302197395847656337562958960337475810599561565486799221692231038173756883322156802590218875543175054847204863936717125892652400370434250242713125182705789555640340495948587709080447027236989547222676231888347945025460564545174103273788659125367000112667490868476196636395543293436029012190997906503896502045413284202317169145782485559140581452112030945232269799791117854409260854876784127729310109806741668571629815421708097940533266848661022759041113993329739961353482415499354083638284260677880146985769219580966662682471179063672613654332915877717694205390152298447306183473722334024972890533332021869770812701366250206228628540916772888050388681771990520465721875541557204376624589834570121502822969126097902444127878811437432434303682413578351052833608556846424889262329695305651821989387776846874080502621101196359415448776407144071844833896515736732115270788263267328623886747860296555017651341384556937424395673513558068957700530245168173867326385962667436278430605656299356120250358845846295412011851284425081514564474996802805255924179044545847573287052675424070802637619013552372667164197757627848642157308393952903929822627508572396819406000825617703078363633146418329241621715940357699057022997218737825368198477014201769312029290037279377056931249118877815319998211573954871513525284403308093137760211800945340474381704236337064260155420867236591567342041417945360539988317020599663758979127892494590353352677360973227371114843865326969824647662910785010569927705473701721685255785440302330128534681576415639606022861581438162902427479575183997132817507932405691641858651942352769504310625606764321813102140565815484668052671805194868673759652762572707734700999642836760035652000905519617722530139841106514776009962692632216580642636401005153562464244629815661694636397526302179279114156963448029187571858953730239802443127733685579661421728642533180152870719585838598785142872786345225791097930871480432752414620507252221777681012785745518242225925102204078748778774259386914988850603340629789818685100187398655485345269834293561006469776888070094150311700411895972476239690064073575706676728524759586638996645388800230775768099370592624769399731623243246051663780649954041358878316082706729115838271236853786061442233805763139266519484206164734194713708248261458019674456924536058048752057960986000902795266614146045226072534859241842260370100259773837745431095052455821141212745982816701062419134316636628580712293483024610051521035546184318499900417743953810634066691482110941143759010440637293931307123046419293641742564146177567093402117893178717744619927449164017426703607464093978285222023606803565994091234182132366801613878144641288959074499637865983094563198163118271911403612011830831812592166435306177173337657634892820042549805869654990513686219461936957549449942510403733880750476532324363640009048431366257329231728090433824622914672345975648448275816920027254966222082606880365466054944033835214997197052476577603168045681103988514221106188103351455916049976210172113508205847527378501981633079596374137118396875056812448907385798994566704014927231342265220856208742123201597427896022089677824361214733010536218836143391836585737557684295118503339904629487376709923198001809523159762137028929916202030325619328460600824637134869211038160536181886524601134016166633507537751677559391263639702323712054497758874976671495782591786794620745264807204803298580088503591301487479990721137532424686060345520718940280626817742483733887589536122875867906467659112104455470038121248640912329049089893973698699131129763091558842221668675055601531473113343235174989772234140494896003668469414426299552403470134858486651874707620843725168532869761621975875894065638022641186571420673276165991544496650074442247966914756552560867429940040295634233721608291704751306061554388195696940297638123728619840074336437721097881760615863485504321587036692312589157253616154176823855511346969921489368934675410710667555965502578672121679831234282591458072724093568842030269170637553525187444331292006496979591052652089537246525870338867850444987691380705936491777765044921946492006298151747375606240387243785120430283183486226490627717150270466307713806264779109383763464030626815440920534952456572104419020635858961863780947436264513221473155038344521025775756541489986673047768223459560439942061173043150762973620514643364759654035336274668291611685118774112277559260925505550145088350318997575116014736833442378377038055687160206999986073641605832393906082759216066183168718304364115690987621167659795888579970990429113817125722443374621505500737360239424787387206991068798904387279861576558962984905215854110695041550381995442445851308183261252718141781135006924101899304925113135605124075874438928317216142902820453920187341894794212397706893850200360805110780574063436613020357047432883518086056342610253914587890141079072167345794628004831225651931077231687582771803577978459787843826074724506527599452934464177897772867925199073169749718797315324486085856403459202303304531614542701355599458954538436232015152237734652944153183926097124252522404478146334202530770515022172173722938623039042029726837655119139717308185965196922670850722338662793964710720053412351583144499683918032730291151885642338669694587075687920861664189978169429699818085001578728760296064028401019652719174170583249343162477914647298544620074790038773399572804442778562578151095766678999420707916314035616529376523864618883532282491752070845179182060573541960460353639071389855328707086640303304741343209451804697131975514028969030286465000583260424740953331093548889529326069352945954584547185492440813540065292397703503990035601483482287820244822593254667038313341152245050230422975433377194612611281032815705367788569842488585715563016820008216517743518539597437217749593070343302067879462684075844471429949361907921851527283638908704440412281601686367960599583878290930875980036044543367585865259284184589812736390333551053917524598268108642889417516528138684603046865986283043048528759644860121179674770721874173213519679568397131875391202137383520094197622070962296130998454734340525526915889358066447855569383983673053826752192128018474663499925856076353232925214136442179643678692375482787922809884112505987098796259630784011550586810133477670106012052600384611835949208376708404987605896610577478698155190862618321442643108456798313403727925731371145854949198141430803401449395533561391337330143952124426070860604953145426063193648844090314183578095497882151415351984933986110408395343051011928792639025817935247863199674924261169394351943247168301683712783795491323410646725450340084200273551009432338051843051352412620142631215093558827722738383911266134188613253036041018158476899694350593277046125781976423290820981799705069877389192745816471587039429127878456646271272264530593364533300388112092865929026841657199047842633920239968740876404809336722667897169176969307001827620893704142732752598467745686442032760744791601817576599715496950494002333859387583162197070697387524138204373350869252784950110307269294297354180672295222146989038760407226178236030409250089657440503648663612576879610498266929695935921237816149106538808589372131581828307514826734408336208458539585170792348926966613506309339838616560048866307849698541509566648951647224765334411305715496383080968210473121345965195736324361324999416220345790280449931103494620049236942032948982279272564362526353665791609764456444007105608512300541134802812630884098677046689604964181223454497523733843256921222253678170212651142592875248435618704637101159460966846038886508761348842907945695062023762560803535175274628864488290714219671049239750763906595826666310690313530859543419852645465181439675758078438257776789851658374103531676955233444885276276895657227380321939231091818363683136932366118170126267422840756096659436366604701586859455924836543232101787355244227770416782347889193418160063735543525094942656588988060760750019929273029661580113094816574586886773218201007633669453539134974479260914870230672112124412942753345749280867276203231455359210295678848193833174904943635019310054687506197132595773994336259174271942506163862817930442532284853577143334089994650263216052840404892509857239310477096691195902563778035324928598167488804550545989341504802385325385567708055050525902048581057993924283014485323517623056123923480642006075238822315601314123661156970301058755080396179694423655932443268963881534532295857118495190154307849778470651951790333043126452960938543806814142371232473587495606882901032989736575920079758519504731197206075897775377793093123016577111310051941664031767266190962380104358322874490025732196358631233396067710863694241888243738945588797437488798399948143299986976204842652479312960805511778785630363254278845148649514663548253486468174457270743145398866838655193963106942667788091043988597085157826059736903094541252237106326534698888841548757495051096079363844825577316824434197443081068630577452723710084630546433937534135364329118145453587637483496314176361690182111577333831483820872293947453084687360192962655473758582787906726209537083184924733114888871856137915387050998431326188343383577330481373848019373451981614042831668515406991600248050292465743013862202620957399054072173431011943094545374537195087145542343125155929009812878966464036390352713217880962330051100208234037141713139835346167243962371519218404168646664513899117397462225162480024126256724397919346286624912241758626757886401458758621508247010311729082870134078911711034402105727446174442660707271004181133748145721694465157392916889408015704860636102000777952483023610338131152299751981468805424968265133565487239143859642230858468774072826018811113527445961071147430679277692910418871678139286079579913801844056778975999348281857590376967561477549387602242467021910554582061385108416506825741609673254698716286518660999598024575060920979024708374066289874793216171945682647393578110885033882812148849704692603087881192632451197901195613146675331211238804812469183097442687636419879123280481766202898462148477623988667894823231216828419319038143771367156377348677982039657184925470231573427267816232855706969190062147834980323689987795402619502277896991759149755085816143481067769561481941418585694531831934416867664791940038750497316682545081553964012143730254933236115030452600918100647806579247570343742989119966308560121934478044713137987612077457563635356484846059825187856573997947772782216025243160505864240270323720898677248970169290114956814189152866883424865316669935188557760799148273346193841249271485432960573461271729344318967628947171435006238927488002178199681052261285458870842770408254476015949272679323236105914873272324066990509643677780487813070636626786049290711189968364665019674457317591577268608810300944129365397924857954973186576395534542313446945074765906913782335154227834435039260363149282284283020337554116918431501205842902326072185081881923032262565451125849765964686661198788078654325816889256602234139578883038636103061898060335319942344484293341571015627964068136866150882854946652870489282765023176790988558607721337266972440955317983739152278145344432100639093321288125154274035674036304545441015093506380708587249278564108547593996172222808261711169219467289205202767854789476241067846225203673531647214656029148792661760038680474066776598223007109157422397309255161945511830510011622284346111527726476220380761666491342984421373226950849596429253555293891337777472509140816464285943986103496726569945471763126685662707995479721771285731786956564971052938437291944403361382363104637521838666976893352032196319841251745055279009993169991964526283728161577071473907629367080470655765628222972803905296992556030239805431630182657844081553326142544454214486929876630035945348404122217195906150845975916266511106771884498502235426273010740661898126186789207647337010591229690032450027209700481751622543052990102004702484737637803588473590726228835318059306095744908225836333692147622370616275851760578216364682145479626340118264305612920763469851335312591910791744868787480339349094102906405480695418494330617152489713812791272235713689268550965802042264501156142957754330088172179410488246553171932925890047979766310074877645741924169046300372067029272742487574531098072297567401681707454306753396325455279970985900635007413658728608465636838026531647752228963246103663821591774874722157750449624512164742868509980048107429422778809070698133070603189564467240421266434095003871608685995304291481612436884557910121450255476164250965862715829664360557991621177636548631578466486858043311888996181062172653432982157597418722037507588641442471797840375739931312396056413460633315421923289474482118333765225138419580879540173096947803480978275871830154763050790247444913616077597803447591469909973781133393320735784233719522123046033525832776339722595088499341967940800935760571226808205805252007347088969799828109464437407455152932341165587601158001722926433678357802789624736777248068753331868336857929910045620577342106077172535520884739969767527122632804245138788154527719143737857762594721530055680376064550223167044752260309969212766225814819946770242319294779267504243193506187604913955718910100883433996016706996396234540245306020448320536287198975086757283363497942674982738466617004723513293976451896345032170211533405991477341955471222192575777339023191292547919279997989903059359301372034364340683470649919454349157473968726876876823172589610725858796021541723727540143784250294487800354937234860887612257144365554034593082817071300784865283611052425657167633298078413572445267109275303366410152075207544290198009146813649777642133054509018741249929901702604047025282724338421351886765249753000778769496539934437522683255325651009814104515658717710294602187041660340576602527443823630652293030075000148706255992478553137516889150310204242309370947503838328977591967560538879890955083125713335201361015157631755831998440152693460823296072915765695301378057994242063607453077724421210057570497041165416123125491734813288627822850867222500826825758444829267253400174837465449274434691350705361777683472876255524332773132068332580724715611589823372918631436721596075739098464250153494038406356003131761533857614166367024189431858447932633322260262841310172554236148659446500439386081737317695106956403499968164085722130937715152567078347558725690009607730662728220688938247425026617748171498388933590586204561597864250197288431838134817728551583672837429988204321134978976922783130896114774449991715319080392830870923999521223814160362077896075366693497820693944784305084579564003292234805516147724234977430273826591929301661943114881228735703559953907865609118598863966670398471936327222550392295349744959363920903324199258739543729886432277842354764233640477935537368359290750311551335883941888899536161811935228935996274820719585014209500081912211049758158778350991703898595358781705262345038241557703097832928216499170968462717879778779827208169250173206421000853701255795348396095843348657626039284937887212134511572237037685869206996996522571632501904448899626274795731838426178426422760525826993998349707502255809315089289072859497169987018716249228127221623594401026866981376886815785101030599758903274666298776610030570953620269381764583779883906509028353939268654712256413316429234050967049712066622121750181048857506530112677730502333967936995006704636728633341243938649619827792173260903064404076094705126703881182776944655727203635867872301938032373268637734955852040781548746297243955866837598843121810298278915273522242322002353722907513114308259065040958053443724985956213940073011346900732794220606567520555371594179812211586837007224682075871636829872694237321524760846610013371270489080970420333003778161552756448929165660427730459291702258343853426567612240919726722750951927194932387918676389035975479777130365381209473630465838163812049084120975156773737611898214942858918727381853246808606812338192201524426451028632627081500067359236251797853775475886953344400715854168518668387183100388110321064055091687922795424951327610215885300588739719118822827850897704551773997708199055180672319480050577371804537795808578834827901649865816421793458798033002580659034717633943790027089498500307228722050892424057688900202413093450929246652732037221924924867430119710678437420493229258806059839517653549995277628691367068183275899499296336355983439090872346322038348356410958848601137843099042648589225750107661682187820380204952689268170059673465776968439016542387341788018525384727562959784347290595934179836784147899978909582221474291042703791948376998736222958447592680176771859602303188672907946385572836748458003512426790021387826672398978758904577805973498536643164243709111975744843781280328547462409922998857074948291801477752474952897338250529301868667725113934997810954910078297457568855316901421641969888949109553798136261803984758694932642387289826445081914017758559571562498021158346665101489863006169205414855299331455382365483575684157144950649273612964075562131054229321438991853635834351205413360936352521763159266381684069508109256650860212424936037925822114227910515531686469282048303449559719235786963695155476694956544071848850463289597081299721705286648066130123774885970918140107939955885939145594051811227157814575093352012624750787319387144655284410670822280689459894024189760986638247860693493718833637158112817863949852355214991807097234267500200182029141716416136483676028144772160285606116391720471060000576958709350294164046317831433353393033247413746715964217127874853236809364593034033362670336716719220436356536430796596433396584163794172013494272844850409545091989501942660883859397837815139660056622424560597112996630989345058592306017643700362235606220506796147732801939416159647968849595384907899063569423035056745661688294438757433388400291186312991401882215524272275985542066101391073478259557879114783862898298491554623366094783076685130783118376073456065848282724549938088106257388947413623540072357916746495570415601303226283272347198290941928277793620214817914322894732051779868401920132503406311708527432317334984463903388808376373891988538213913982884446147581206800143613605334096363000372513710984409029185125204901299938928640317007519135751357113668998192124408216375152393939341613712658157304447487994142563626984599578562977449595036777848843793219454591678905753382067989251172094723331779392520867425984742851449561721581444328835828839748853777492536375926731126005258416198672237432442306790150400176173431847203590829841161932524860373752942084446795126359971857692552478518458015089668311865455946028877989036720401477070642097772619670002461979253926173668680266891905220178334900947968999130596968054286597330821985447811803214299882418682027232145894194212433377006726079549695638396550384332900811499196297457647930378703656899428618814096481340717716935544026528529244006693186253121124103499459275310781787280551585622392579540454594298215854407358208549653908994191073835052937177431423756699266672629097105067817078475068991013457242680393787723300867075502229275465275415274702524138392756478625202422821841505252428707788696760844872706545699585911662115188340986043964992597018033456429450122231144933055984225268894526798882564873888483459614877510685386651876769578098306578013952002886470433554030353822840059817223875586378406807200776499196715378914862490014276639272580496699113119897892070602159393712349563214216396001053689794505264501306859064546031685304648604207235265957560321542280331497426818587899912820367869041451403549471492711268683445824975019012511166496683235296499273983453903140773538252508901942804212568088625008271085983961180823669879926419807914078004424828743459318984989687507119807658468407639719934860013721169935760073605629852438879477233146751519340849044547976065170743398665325687814864277054924993345425785151707641064858398228189758930780091373555306550716270634774804221414393217818839308987096445247614792350798362553842927063702790403950201772610432058066716822029064648164402953805041547788619081221729323201155556626201276505500941380035504435372784502926407560505470531521069550768327646164115002251740497866579032572871872653248639831881078539049869575250168792133625387464139636915413692808807771869473917843507397961460790655846555935671493218368163401102879072921730980492719015695245543351950393753986389852056362883777272117673044211422608913685685113514522881976274897007262514032237803343982720150745833690713604487350122567274830501720073337817827727204857025663470949453286432329452230754867927805706349867514580453971545183647447171553999155626482816338848060514921348865604145007417603242760922712422058484221673720927183890167920413762879873435140577778545168901023468168535091095401383095429630373507957420562174720658002885478957966380848891955560092125748909411533039863650208506438593089448106109077734241054560811151611026722794774884507089107510634369058922035358967741871884830633899004657649113372131405651776752990373671139923744835322739132857927358931712339378346554204564981868163772188392270578096032713278293070314521893344821377435319514198865792575315575975098922875149088466124433576630407657113503035934509018041222601651158233644404470570585140013713913864684668428064865916621385575899331274934905860029580194807546060668437131607275245221289248996476245652185203642147216801444671523957173840354562343759893735068920762603973627761960714488380621017343755295225573950482244364219710706008555322637175577546880456101654576818014936561542729871279946730875320231013313136849783271306833067367560910290049914672206650391993804413637707590792183953029557735514516833124662099070555015388076472733099045914464493339360125563066335867677858863533476320086390126187382597965040682552632667875599359877068358678960534868634569961443295504409570829017149349945730647976867083540669190464395756614017642878855005366251345783654902142933793730240144078659695161157035606644535210664636359968660895624848598729242392718724679343319927207103136356862251454328369100130418905935458889797042637965429664505709785207279260170180373036200454247018417418908218454336212410923036550012277118298429832782792672842332523875259604277450521836619872680736176691362849861790537863423875726603393042972767314423116772232795102666583077687093008398205423249444459497481888312348410840020238556382398231820876020594875601894235468142010840935983975474171653348545626504239411982037593864796262215355511241128209359451797941312285644811774902609142142978149492813905891903258894129512395396075124583573974018716001160518477495570719380196624441812517902191268248975773704464023884571306662961284681586666207259748500467360751233856109640794842221059379065857661173668347740120977454305402725893848615769861589626188232947824178562822236252218877722516213465998958839958571903540746036904659023042602706890276881359699955937671513005618986798053105298606995372171716356208235553232679772719833374423651813042801131278847730445446142219328739528384494029002856534843990738220791442068603939876131413173862025566847584010457398356137694857081983701168737606413645948045575523706693567703582006160790455899176390885009988628772294033094267668235303824443980131853408115449258304881410955659438465134448758386931887782826199771124654694289555849026081188456383199384461342239255904017855085642387355014123773233712301928538828468353364936586764055194381230037461138334471631395582950136389048300014113064440551481620419214699104890305778870016525921972412301462445682276905810075687932477025628448193033629101005852118649913196042154327622398926693838690495594039708984723578650054484337765432575227047280606151125689168933622804268745325585043928514550844400820433627170061453860585546997742163519702911405302366222393451878881560093303494633487412558147965129120097645929985553264486438170401064281045209936894550892115077200243927120195755042323005806115904663597650230252441099477153357397868643236358371752735690160681504567349470805675722376648901463189035297503229926133449440372845656758464291033779261030625803306205743637110639036156650315187418572928648877138564879442762642695102455416202695201452456587442547608188443109498202884470912186108877594527334833256431776846472958596178817975867670205152491864848987404268128714916326302159169300345822698187973611587716306892313179097485769539786010661529028916644147573505118082280538239049962106718259481003717525217701064453341469971908876590661579049892422330562499287455458233432092535832501170155947776996727333481292430517917186651269955728399160629846044691487020240453223258300375607774659702858213362737749169493056590084596465385084742813512831145934587712749795030804618062067243936246512610784313216785463705096111295756165872499499287321645645389924961865629233221335169558753879248213811684267719584777387163413430666983283349813582046238749593336747589582063000670703385112969250307380684538525592825989244955651715565074299178343746017635567042784054265854202816720188395065253145956202120530302612483362207189194793036665836521874590899817502584036845239919395377925147694944930866199954819121752428857960991206224831252476959988846893281492349350526542586090465106051243089649061715809326124339579718588855258633245478926216115646060705091780004382066292358460100401495513784567013678535454511885364217710845384498096425556765607620858512438363500094980007919172803689082437425211456728000478785181580733698643720395739916675806602071585940955380325673111231171136555612741084498537978730329275083469859348250954705401104438554432891702227954709458645184707697296918597909212014716458197264316494180595403389662903410401172562823251174562619374565173210791646145368332078402235090902563902193552885878654915230310375500717134888348422347300604189170717657542520470611268197472135360984579522504427920593786423070979853928022305595901503399197020450167358324725365513267174955710321992174604353890439069675102090215181823249789608193496857087420400475878819621283539897030255674743641131000485551386945652993769027152886825524694170401202010146748464666286328937473509814442499062472772354822823043323850289932275290180852748663304146013440894146679533211599461050949685877955365785777168850971235842560662903136278217691118777248724702285665864321595101170909358118695464228416325848280747215927077492934162642005275841649931386651771311746816098773891953101091485787975513335920184278149966666017615947134060595402513133975252115553325664491373516644489714960381301607070872424493668174925684788027150170726641126927133419150760591193506177453788755880883556410802993201936201152227502334048712689012350450008586707159740931096883436090514610788910785632178421725270423454395952473891035850758624583010528970853082205610863169962191896305987276850127698598710400469524329311060967809571987746380841365080909749233920328859356789145419732666025302739214243447025509565042128656401436999249155797968341015022924868469333739752376549202536288842945314027597524320210103117122572545748308017099190879442672489379738379286321612467513467825078577795802077447410316370215228892392154157143609076808773390660096543448412721608400320916626642647309909915036749019969732168478573732109064572181136414888313636755640030627442189888285853483001315093242356334392542138280119082440056660984981576467975820984044163681834230238680278290799366678833896627982264476141765132757705814876397854189747202614080520008929376300964698634222856173457634738744210159517060306851975144776703319364203503523899341968820820888997602463086809946357622578179820905841801138258118046486017880125151452205028560538590639236983534871879994666304153719074631716341124389012062005880659693823391885626396444900637299005479411556137805676822137704309053063905743716542051936154606055309360745785264677308088496366054292211420992343290911632826634597604427855750554658427552530309782916133299271084690288428002844583062501801509710990990516049943481973123838322626212198254591708280995008234926835971330860454732360649430627663639625356885808959395682056376617006710548562915826722429172659981122922568041052768841332523132389354113700423530399276765251932789053160651262787181081461062039980538064737510907649963236493914468621851481271099669912737125953580884921341292796315828641116563948734594978479997531555148402664896997195949710428710325257595667717001529586587138147803716033708219296686024470920996348603621710289471711024490494453885533137457392794076915981896025021181406936550029925587503619911761762865625102242511222899327622777872378051308543467278044629313228933235221629602417872104302596870555478125161023719668269877440466720090462847481627827065900896127163564965499076982753226742799561020826036601321998316796306000101482803010384035560418972171008230930085259426096479904231004033317545192078625053936434379721426798388021577187302545485226678008840874588514291571426815886484913304017435243268714622543820891432514134946291377919438509448570633082377685445078347100917657630590130882564699235413775470353259474630191035299088698167253156286395873432092423814939886796929543982315800746151762750064862023372089377480015845333639110508757811504730286059903754517929257671941760978360135480521603083205037285093316392441535664219837255616868222652202123316200694520367719103422308394575699875292483338441495866438448130090486009017551222615049777916723179672416237691328601808998416171101015359775824009097562340387852925387277350620910252660190911855875845560230134987083971249951132711123795737178491565075741439050347346828487732415788208249463361099127002833560432153130386429770847872410191253002470788007585169156231062567154816671548443965077095306224477582106067040365964057248520739292940650647433899720640593981154405296066631331236780676573663821198399526587166496231141850380631282950572476010652915128370005571051141561342064168740825915329925302416831303759821868582862810901959297931391511282357949395011986400677920023820327009116785539132589400664695497977596930304902330356398403065645292210998653002881145862052905372720581745474082579657613714052455007894087028643090362008261474182405547927533753853189867713802639664733058563657240761080091669772564467097569419348843073096847179198055331569410893368975092025625253233381084294106400939584627017166226954149844267242307964566475298092778532651864198880267814386349200860124820947632044409729754629268403516954241865223296001635001941513600517661061925346919144157035141737871138049770646570738535056053366999046212983375430424746778675336044383702836438089805482993199128239918253308797871149041731863807265722246317618447314617388999672875427655336504237046030267771062711178667318148874363698436182230336053466304051565304006107407553502307293721209157937647945178812337370470713533957329910379930056767782209730981581664549072491763946222653081797492497184980498449448997414163263773692813735493749433472664629060622965226764722989939880163812034783694590429829875448995142495578854576533439425036496907115415230641760641203293995749852488747954623383995417072572120688603588347837132720676636404207716946403700822853980481543390528219243758289448334967649596630032339020206917047343279065594071280863039008602687538274907581756851429120564606035575699044408778391389387131536874994262509259630037714503092558697240737946827246170507768271038846240395957051620450354566591821768056065867225037182870948763375317576412874596419714199266377229507011013437715017192054425539268800223334736290241135925471694030816186411872480224073685362460912273752137429393622686396851330224721035757438643325727017689640463447542965219761850401103605583304242224948320862207772543588420476415592105695200738786724992941110884452243209349933640086830220205033223393549861216456745699727474409385852731742526744139248253927634176660382239519041305571621780629319967851464220676995707757601944219724643798650753663206510957254512707879424234755100845050566300483655718662404809200494313128926435547158587761030555038218811247826225457606886262458167816260988538150310184203503849959584713861586616719155350404713735152073236968767504422183967744261645222295206816052358203630417489122519313570338186401388833491088333548976378999851163360369657576795896455923759097222923695551139783190247025570430604419489940815201389056430403060437664457059184406363808251994737368067527302743113594029502060414633383486804011079253793860369173409301241563166429849234558177872664807604280671229120440500220199789514515791224481246277426850480607353615896589869802310589587797091993177941288935590826905822910591004684121943366928547986661701107112193312540603610453201504440516301325992975423446648610097100130486899235853461379175783466536765037247262862243519907028636766732463979053290167508903877882691246041761175627600958268469002250979952318491376162325624874181591600766207379884813214739712219620966055056122113299808811694169046862634110387418617133327544607252314601201233453696897126108931206351676922384522670785817937788114439398080938338303141099311980363260758183002402093953517204071486380404513833594397157295157308703323130050855454741698514338074650294300638789831800992497116433153472288948066245719213845420516960270584138482367527399116809158421658713232564321775193931274273127817873516137282797246317340905357053079107916305848590173490675116020050027831677792485134397880792098707865676272345560489396821175241748506982863938977171188396656156055710184503334897976556094819411797448274173282471590304125176680599080261350382978817670570273990196612723315485741343720126322534340350040471975681687970948861218939098610876682131770507312574189289015030073014702922665727550626607174383509518758815625025559083024033209548217298973041396613451752041839461783758995641713961220820086924535628162150215865601980296580927098646977616405049852123456223589358653182888345135060090286519179330790545036559070376463040795741500608419588503251148272038801784451687936824795555071542408788063486961976249276361707151722948733753714056123827832767280941698687986877770006321410667058730293559157270023084183210963756545344062634606093707333016977921340447129467022066986646871936993473508878757298033607517186215026615442445661376915464635580859639721265918191371698508720924715960248284167497061712730562655102965528877873895338508609766217018920140395485439300725715834918802134512960519202090258403787039584229217005653936999179064767857724993897785726406425388733729985652381254629837625461700189183264891163560542790119017401079421343277344554202600481956816980738075789450504362705711528260570331526121463113823071900723727833477397966271990745970250932274152484410854143783980277847339869175742654608045075870782212545751814722200653642558909585562472160817450057673736376926634278383198095832401991119272625951161354455635817507979940162378535596340660664145949976514004560416743363372151457079004305163888226082989601137128551280212131979742867576765045851574296209357521292100988824966260960983883973550161250915678091979797855288980870359876230360344409521231140062694942328592487538846780615805519809203840151717191273936195175622334652715136776043578992515878056705850609296476787167481067260601402594715870556980844585583408169795883081921720850393723644787996892314313732015474287096187841618585406118311993563275123000565900805391596438332775743015622782263179808074406462046456714361421319578831190646062773719472414452545553892920609580189063823351245422093471982130313199865951197672302218495799422415274596540774803698047173139173388818694059206849890799013578210068994905848675071761383888591585616134317107182118108452855094823397829865833369436828403006081902483398234247880567714962158145742879456873500101603864089650448568433159127556390357134064990760047449366111396857396861233435475142932397379660036376488018286460507331758369804545129913679574418044053697222270295140981073743300760241961065269467944947297249699176439409725174477889486381626691355765227187423071764752509608395049554221395657455063831280743916485269580580786532844971185591835594619543498694660723846008116227485029449474819403109625694566417908257827862502829481261338739831911837207716034033752138041493685623345394823483620080213942068596111781786908378247374011732363276878768717483439763856164962836114250800979258874929330420824381222601539701231131427677593532344441530082935246424989806035785160637358274404846321334643491210471685632666988228496501530303464866260014412328514600294161882184954500160783685439159449609475126016564343877532735579366196324575049379586913400917247618317882036458829082048514078611068043341755956454098045063482785772073493149779515070753320257826171449740102959543383836137308283212227169633302092347541344142120911273652407803753497971109008398351785291028835013350669974124122738333121824814672816720195892094623519271880781820085633439763144280140475580552986882097226836753416476913464464702618570722961952176734899441871647176958121998386043280565803078937636796745666330568822848817761593796465786669135081012153952752201512098261139563152829245681776489121802247552963720322106734679122271547422222427026896662874465474336688392262690720732774429023475563056906449618727502400268482998782598452837972204587376351218826551241669691637331912479978636540969493429927727873581569730119435634826702371256255285154947471118183327526677471910695854445352830698494433196725999287427665864940096460230481692518551584971101339975173338075123410315911298873395915075574653156367045046972493276947885976178027772601647305347426322332585034849694425587793576553537385846748113164763007550005672087743077763014088298807905946329556235018117081190865515868794334254583862127605781616566993760884638160758676233136259396597182240838501697723890659959010827807550041951277853378308858137819431252292421970317486730975199083957940280836476432197454679207993123495258698635604786430696732338152115974936933949519102176949483454906337075786748234351495419349343592589608324197961328786567256218557894209639103410155922719087824573007789980728347758211479613883415759704145706465715895677853705221844100648888337759931494645440355067839880802079567522655858747768528240548634767459006245240595469233502799900329576888076136049829365204011616873127861853740001020108580626769226404537757364893201577058706738495293698579060880728314082475268134502269151974764137998358319351530539218184151721830958814884265926286511640474385110263202680642394886731136165346143579900310638879707870015149386240143253557724314534661321158542542505866035511259321127702706606647225127435586637177370439960330350957119906920011519886437111178842606405009617589801422635988727071442568684472381694754425440738977932715999554483040455749787211976010947291742601216996205735970539358327436112007939004287996485192062304495667292663743382862022425511896220142708240672159186313982811683217499101817758823902743083580095808281263713002750712974605765986556239164184352393017119141806159735973363050773679685323412563797981621326763522939146044624490747325598864908229868160252031024483545077853879811849143891504327941948254869260673344910539898870501336395448618024139548218153271426077193475283997626123526939528858495230428048639601166888600631208258493278959129428204257030116997434670986865894478171631912377228486699604225115784548741927017118912091909685321239560508463055118725398478728532731161183411470723960098888301018709285077648216224952604211487480827290924697167514783121579561116056479475315351764816331223747089906040089964542460271051412729297312927916830176776672496275861974887686270805413535219734052432098529871553046265729878393444461083938567211682430856696718260334875926710826299739189953593137146904216326687893494905167908619839329533225516891262350332896731432153212844292255859127044508242853521317022046553154479812259587695787343906767373138877483720417505030748019879869114498816257988832294328253401021242962945846225427432520497458049549012490669635841056103570376907383197175963589270062064449327548329478713217366107674485263364068133041019368374047630491350686018824161990726171581803831563660811967815572592197897697630392907434765229815698320366523701382297550624879238274732721007275677221718533502106747588858090294283753282238768057273789558014496337098857428637932757138381627770251839889972283221036823483268868159509319252982659379909128249925503552615082949018900019030403620324633922678172951697169043455270957908716254675779126090231766004220043748036324423105963633189094118590093251164189556509254879911619281040600318950033744788681574930861617864739216357473162184345823918702938995594918962450110874840959190916873052782489522711368337647321220636398307036603416738364203988952682797906329871505562212864903442053109151627712880837536418525078562889740145857546562041479991861031789591448710311664128046853240392548817224487770563890986664572222802956561398633761735678992912448251731719748357040719780294608124040774317414252403393203362805328424789363786894580134906444062681467197024905235110742880787236974621028927828612534005568871401151580089464997810131873469632546882467478538352362677608124287515744423383689199815571819245898365632768039354675976939724273656386742755198249363762713362689052247972834307358853387961921015544428145329496273415294101830967576776438180180073915357344118909495762043578467507841203235598645014303956643279521302146608843539568868120555672102647643108389648971742080952418445894969895402723423762738351742127655553019151925582225405034032354863458562870645466569373080999019893405663271840435160866736956893750079674690055304154742655903446719527568897804621379115882310645923923166325573083995541219853053581778215416412222433641104791653410561383145680621649329150106895792828846301908887895155365339753591433219026258505175225384067916340771696976373716726765159426573623753608342150790563505605905650501260366389322053603014937628268719608198435209601360561172818574176289437009137929071522040779017619759736055494190992315677025241914673503121147021085418236359720987123794369422958763625257655042697218330172703626086422911614853686175011012133368937774729071618915732702002657745765384305016139796677668459115719675930922065456620979486977913932853590033373466997016015447815958507847193169611283397240997272006640961857217222005582523335768887386183781900551326240369580927314519564352738200114057855131857063139879416807881543200598362397877895932295085852304951851646556700944013884281037714142919067638835777605901237199924899837054155460022740088002933795142164672702854941216915747927076174611323301306964494324859931409333509548572182504085060123020997652516571711596609951172490533374849858799882223713671911521352437002355520611353993263574058709501136659948280656956150979110167482171156601076645451371243014368566790985703641030434312117657281824646947269467955796678257877164154301278000156226410973296120872251956459935293336498323997960194520147238329496284578923302857397285192353318858095585568510834003497380203850975251134609409301017308537156515461235203652074629000676840741011137472489884833016738062851400655795698812679557873681439452187617117846883507049456397415920369381771475703850619541966515039194301137971779056057932104563983539535838943310115700413597585107665478418821644655340956373644838304558289120232220821592382424256640332389539534415200026040966873307254472227266696966762139966544209687267784868501504778294354523428408362262706949706876554943863349097295231002947328881066315325486951278275728443010089574967295495227033551665880425029317099960614320888738639918985312770522720204758974931858025513063961570032537114969473371644826500816451976859109947863453736697446459139456714954608689152371882780734228243608641839455555720298094534132299616976060168155995197959957954932031684446046147560668552396715005052610964957245267940213247369757565848352978800327826059807791311963204295033774623454817989834234296226610832962740972261873011251624371276777455344637598253482051850761742354215357475091568408522079593444015146687778804450924861684202077270777179198082233442873635668708114546579533600444720428245702090929915986243660121012840486106606630174747561350310677742483081073226205006336523793345756522490486029641443957198542022279774411295128429901918462660204202157720721835106198938159462321861540052991836000948215161298003534515746220168892579404084997812923005721088611831622545975848506514494224124440926708042813482979138643789957248902942063789576648761987762424297317585541737046932450082592560180195537896548655157648465066040741854555831838448221473239872758678755887086738133796753745913337579143855967098202709746579477691322278085153373084958569693646909366160972464200670235289428123566782003635310811669873477391457148898516626541763102408633788282363802692714050204758104598287948548723807052311042508528942953737844745586193072946575761141673149423341821741881122738919473680920431437564468377106784674953546492772403953265641110626851200834474202451914572218184821105904664508914631707608395053839795713415458276356244970204534733183782872864360498228722090601238640636932512246455822108948991644491242895103572893955506582175334801321950365980588720659318722621627520650516487303954627845873164882536287387222895133546849330498208224282410037810113888228252104976404487201306934501508666773663831334469441680999012411322812929247077310566358346025691331994290791862451746699620410798287485367352299097371415458659662503243344257068694921525245232811694414405250582205319515848173802195230639032540455443164617478835147060794636253258974389418729117673458575250044608592408372073511742796731192004928870643927431693049211240809858872581492404198659259393049799913135013974722328363216050790961433506599865884180168904962834634870211658723125743645404158245755902334600259049229351184826268839788312347140606962109689158301507860407106675066083265021840220058386013319821811760638616932457946294952558296956476191043477539949197006436854044296861477204655439251317073811105684271933112887514445106788740101426399239224119002718523006749753372322307308467241596691216884415502116366287726686976779245162711328975234411410887981261429121253898596505098360262508934267652475106896188918693100325668097869838164053915581185900558223620996048199797118601562116103177783069720037539709419197258622198102036373817143098047127350618436853741987438364332189126246427372385869527573029475662871308477142691598476053820383991492275634390650927312969469972188377551987213658338612071562122216308044054111012740806368002425992832157956630696879288093785562941281270317005150974292667982477813277919680950589126719307727803906653769293468992074530694031156676694224999515018661705124912070188363275338800645524446505693700663444360828358706482563024265152763337481408409995723043636251261975555697523519374291608729534319348496389671847171740142467381024282774982666018450866605652481094704425028246842871996624528447116130125385931045987589258898840578246851070195913838990375110421642896917142742232068460485096669425044744353141369598327143143770841676334447183618296774745140387411192639143068842547668251529811203109067252507248215389916409877258666640847407164593269202874620351058115297836380422244343466123113195589579008074605941803021194649743590101788286428265091052642673470644596231662485507374445988240050550501809930434743960354944791129288155081537721874167022659949979463538260643246373067859954834294688170338469838597760865305306448250522777027513073892639725378775461896953616947369542508653353097249586223996151250142991312056806125732921216805538260232757157596590459533486536071015481815197535313935066023888759547727784225734889373410541443064773780425826888831581825631610228199604837463521602126501516323478835549585858565375104183321986108275770849472808945049996397554741579999116373679584178644362159958816745821778893394629078908173493337881398954339310513496816922009680408630164277348027516860518589149284315526657103769700915820889323851599116062632140147243575812604506587360643965756135386212762620258687926471458380545236946160752622307799119127868745593446952800466803467957065979990968568382392833204481109970330350347267286428542615930571490105238449608077219788051993577444999430205421721579634143515832982770621255952667502195553030857752214204757407585064026590071695100510220503873792711685869498612785802610488081722650051142745113976197109183051602330230306542892843279946910810424380158151015921512402748470079152913307852975516975788755256489974011909640092560249478501833236178815846014930118937216413559425515291252732529795399887985623526768072150654103276246966312553941736823728644144353593935505934310528759666359913169663060743662505059526019944377936095921234437815840856209767113123849385969648985795745796571031060744203378447416474550127828589473071172853430709864886221761487301653082219111766335788567692211811852063275890951781728872260574266576425891040138357983864615958761585975577296110306621764044652189262457891287025983963771441553431016312928216325443840619169810886358618827975405608300427115104523181387987393384106484200562701564286598820388702820282439654789364774391811866505556079389403127402214805875855564134909737825400517042784828843256377325106517642885744347398141698934841574278285754902798210998724829531960282816483086542036172588638962350449595885546966119620996640687080526165209859388939841209553741121109096724005466065128180047248619815683277131313633486595922667493478321732662934930299810133697422484056468893616410096064882795072190696230424270491737861668171035312332029599990364038504990821599651668087301545320420082242337807072930834280619016071452624775064941280642814269353278461872172765044327913233755090436827698245877768733332253317093821750630708142006185903388929667967360790074824204784582760298586032578532286347943467502527756323780265041079931461128530428438721250942023336700557058644484895364965480269324666829128042626139595509155004425345712466604842330753201703529965875039676770214475447528268263334406595763323171020340339267136767163530456413457335188445213441924756712203839797321548536125705581247086269510275173650068851591659212946803833088618737448761921370276704216569256016253147075562789108534593799242826489238290198240353498653111644125918747689446610549665645383211084259383710241832417383070103057074967696215718803329936642549970897874146853871891484769965636125899762768712876825287437824991749533725379685737736079930797952907126304951163480816900540748470076097547639913169546192817954494354804488260087155412307191873604010828123580505763420603657084553625892909739897271657178941269445415910405822037534174192709557551501627951735423610837636143058943413232143284175858267745231843599701849415776049846063053279454181935199968373542523462214674198333155297792649252573476512482501937603529166959653277726804335894864737358628608403841343666433254443860403674231305104056408630103341387283002382835092163571590050155713588783236577319757752865538763323280904989290465930479144995150897088597129377340468467716334874590815189164177792437353713392892660027054520378324859296423776742929646118681458217830884010039185279927356163320642965248086554815421328051449184840021989642428737570215065523951443764308126964851368716256177617555186831886160540521939243277039413865996456497572800344985909753460256125898143023377494960816771385167976362692409583040281332836995113105656498344558415668924926118731951195023376741268190055694381190105538347071580981717944418799360709384385496720815237689374440762674548369731130909200531066874476686457396196862129132813591664101683373225667706608426557185426819365787056214597758264134507948627592607323472657410485606961190784075688992559123552394785474836176326619008725742673851178799804750588754571712969607575725843903253713956609877434675450211793158573847944592360056932187185913796980797553981813384366319825422514407905843831834084017091051303902567294429163621206646522813739161296678864104351694659871478251529552429288750104408771092224217228962752730219345013901368874571375863052765853498330119822700736186721194310675119675130402282147505193000315726448668987859926950600350428311349745352978922543392326067775485953843442684290369079034754136096661787830393938351348567908528742198000522427984901529882068590074630657939350902871342853448838562035670949061346077804374951830206540378953751579176765076622782948976875606887219557521622353176112949644045175695461538528123233991138294400813992487396533701987245182379405908189892449656540718914674304492948269196661102842829488714403617392548374755122000151940050523990734493739770944932024666546540200448853827304078656815619358518029508847538166282757335203577061052928046964780598321716033287266156954923629248443713954747620982134879873996389846884282640374017674333195284403595097958469388678815587364603178394450015731330114808791930218857480660822159172534695963144287322843475702579459378186948809089568117481623415015473447907985732119056029250143005342178205883939750267709702011433799772126064505038543013982682062255526154288256060868105034386532437630058378484986720306959832226826883257937628382540602304018624845910363678673599131134852804525637966486089550660518184462369244192669259470312708494987418842857770883807887685787147282471588907314337584836146903909411026515199316158368008289958764852103278197043800431490295503740100759342943134528000727035983620955579545546609273366210527938227545711007510955900014830652485641568180686980539229532887854133443811635845842251356518638002997239071233734392992498679047068101209189217594168117961438570767323675917947994805075882655650775785366328030115849714041281623377877053884337892751855345120261177604466955059709049109264880041823960888215685192756290637955114361879018203276129327159900467833025109871030405345211211260215440011363192289056432257643143801480100181014666608731116819161602396674375429003571916598364550888998805077657114519193507382477554735234346840409090530219351229370523509795199883466083777678864414656106873690529818303531872546355414692369237657312880329709498739541040668857359773315699144725552911090213488485887565393442366941250388752452603339419560842352368586501322406949957913986700895600645319828603297460870214953344011431941953942409599736821438520062293078544380839392687980905847888345618986812797097714176184154874873258258556196236824733293838504506150634353217243269381263765615041490363830169197835362062053140047010731945718432558134534794012120552364457951942109594289801820314773016275407390545704692546516549095561306944826755778672919042409766026204333075672314071799563245326592497381195442919295725161837750499665808042715595615210138916177299399567043603786240646488468251552353170173603480582042417939446314179615012624953556980151582731431836428540497810659147926425343692977772197406610721856093821823292258306031474286181685753579533250561468204298732637742273784071421080725777519340481817513673295550167199813752597665303321461836935046279996543531506952965328203887941735194879719154558351711255009575410538669508762489919382704359981422971703828864098773703668343130058490770428293532306888242204359041855378995460456388400727148307280240136445606953656933712786931579749356777267765295758570983230492952547883786293313241293789439411683618197587529898173670829772771572281080393639299798383427194521249187799724743914474857585720615816488363082320526132916379643564826995244386358003274647802554756053696199620498147279372867786257355235344549670161492654520627028653032094537402504522927652959597563746212507957640710884901104551185994384415776428040388511175065161291735409243972095620599959876866044731270336335098002520448750812679741035299424510146891135515958523825205021083110460778904244664054693737233913871453209434847512442053324129163543749422638498641586478589009385966767159378599397944153802229876792583775573777809637788631494825509699898622463837477675245513724644254955794089600638995790960088265725330587730997618107245561836987569897333375184674139879250106469914176636912762533550658366567178878222883958419274841208274514135613947786196203941945382690261588511566450347105363008073892556689777714706054506888349258532094697340194997023897354536236901426106567152767360829521678377799221787879035274771440208837223931263655670896800781997378657352043784329836255373917011892031003104511675024216214466053539887261720447048128540320379873355131464188493223967548984592610846784872038160099805212684566147665258597733391361937691059346935854289485108169987383390748051327864971032391119899082628549052308700198205693923618997308871966489245333458002326290861495898547440339803639649422143111190318288485475776255190469094902309983348839841051834142997724018102213192551007485949689600321575378545570396178331654320161370728573474405548773085162252998882083573324092909815939190639443076826658945312861696900478801340801392123944549227037184604534018038496613544466299252992873202791956841680886203051848875972322067950690356606318284970944878691328066959688965482014589203433542058592768065846465993959475219297515807160800287013481122593947805903613883675167466074199315863380606427246483647738112190612730239216157084059936243180772200283812766717444549412447623579357181725418272825922724597003656275455949572086719713966129474311246889142176123365852646352300851167348697015715997733418189664179234134974832295039958273805534861564226600990885252489050156380931059863285904844368986711442206190911607287245563740711724901028966202100663062385163613612648100798471701488851989154830260270937106551095863921969743138651083389214842392360725406602096122541468600463848777487468467813075090438424660686958671628729257433694296505852788074323225516501446420930184877836018478569581341212852534232019719682965257377480257068214708692439357398014560808631195999956871911839777878018643554863622113788555396745615295617638858290307905701326636417336657702023205768165080500864978828843976736556613087255976888159119763913469224813539232474778311593163681737314715314851405931493436349295762160418560610188423399094619131220878445980148580331024473891657550244860577559153055695378006415955281611281126395735791027474249859969045391293990145873610590312064197656212621157759961803556390780905246344342013336315667641935684901974001124224411912810516391035343080871039143609749022857058494239893461362598325126556970267006858390920474432248479686455723532972093949141282379497759948203910309284316230487681634755510067476365168417186930115575102652136997919518291344918517770242407785468875856284524472752244907144156820947995077330270678883209640772070713849860544754929939827451832423582094839234577978399596208919313539368847931964851304075954699458832359577887110374168467995210227746675039913558301768065659746070666743571158182102954444680575455725585742721238859238404846023458083048002058110815255688846031804772684549587419697210602455513522980615930804737154685986224693112325952496707938593892814293211128037093808423196328610366380941048413188863572826583655924527905054917333165762000829147187328862789817060838630675754593526345162527455308581012510182012885411297301172357543980545110130527796734300649435313631551875872220036434052609338831509263921055323487062916488339904892312313577365134273899570868725873662301488512785391785620825085949613162647232804347750305029109070665937822465935486845133920142266329484427326997505024870378066124429612625847651829701560940502946091327366294463799141582635003849152852225544400240464215479794225211036882368118049093489324389678112660653301939557327774479864883692764420805242595772014684196075052522726594478667275583403756627100323520863232927810854830367321857892246917370203377177667965829715530075466696751210917118177662585704145025084139708525006924501399472722325260432627522371037156140007594234120599040480511725136154240596043025139478507679614383412963373226193377374701845767636850597136860042639534211157194996244630633997021340950734677737080396105040133134375091800375129013696535087218119663123982427974481337846261985168870943433741940218297424294236063426105028869329615043040371302480628065923943690386055933851118267859239030823307197182569456509740741776981470553612635926433580397242153528813961914480701715214820827424298407776769758615371104439338325206219699931680541570766324132179726967407255640410018270715682156024770096976671558237414945739281259904565061957404348518849266363595054389895023766058347099335571965951736716972764992592151400445089205398688060303390039301298944825232517898504931008202742464530007400675141718519759928485801785212957779385800731380316827532249477455228483114536525380789101531936705631544981522168355136631592130044054064720433530896953637091194286366932381541812086479619955218425630490078035133959378025272488117036417824856302212339514152289030607563419662912500757986932240793369951668390471594078950821513958681243095634518530813012775268403290188756128718941344257179160818264958868693949043357375294518775933177784232670168829251881479271166736820481732796930130216708200748091697309858626762334751907938474494043080487383146933786292346466573248375742845113965898463680315907229350791077311501381369263043970349097574528599924311782356355979798092949478773809837754733140475293454651763396283593565915392653106713923720654980188300731747492399907322402128672472164706089653243280877086057320383347636784248818114724720526880737985409333695955866410279702795575663988242489439985449255858879571028193792664794342054912561090058294321470746787668742223235365422135040397629766212114397712511149534465626530934853348747110164914539078945135351592784198275647898207486348704673816287231795477760666837759814466469866331964376183943180083721094386024068274942663474402614650571475632037717673264629210933891103125450090668481249109583807505501624003114642051952760245574062822592935446063784993214112306078615291508124545784849741770374642273985707464152718744431706665878173844931811395444801807855903192965900121862912783951677620984054073571991536157843988201443748664328326904225502755805228349217476505461881252531963421116350345003258454866782297839159626281912227000718983936086465672623856973333663327130802140296980698768900320652458667680618342550390552455664825323748431155192963496026063136880851150685106020374252370309137627801347110283692786667147858326929406735819220266635427051764813055972016274069096830018644786052244342993490264213247260232746939605023722320505006895951531323803250543068094017049284712073555798637634203963219129165168674643836962489471876684454834503959921444550383670231514474505717565972500915159789438661966580463248403368855751593331001475924409968790039976223597745469568129762189614930314990538946229984327882403397481866530627167766527333706422699495219721591628307836346442516678152207163716071069613690232338840809418495559313258630849043753721262806028941131903658765304920460954988285193236896251712175896434375974655220458913397076774658173142596044052436107995560057980113894786422160390629327072240843617873315625778221769110163663391074005058394609948998026725143874849684927187736932173434663627972235278280463297495343333597794751328969663912031391878346900438994930508519809905181946780218032893016428276954131208970505476394868639455368212052807800462763099455206570347488570261521664518704616330238333119897641501360762945982362759739149343908913534527616148258654749466931572761339124865321441546237638885600938866412332192773880867260909150015797104862642224364333832222482627559382329862777234067146012550129866216626431115430891737872190026759268498956276176658198556537110403418504811024167164192209800404898918713414619399348599910278864442719028250558614707442638666653254578513065500949640954800432075121298725158965228506708416963687254154295890753143523266150304055477424292625937463935988949325305448380501185572893635259861460887645832395313308826250070044536570443646239428714491445336766008285054815092135407645264143220043214184687178274492756043326908975613341345118005267969437996494155606278167905314199847805646929425238720432863866119220441036911858104472457580789753876053173093216643061567320943480105780677461683424863007604339401686255169376942402858853225868864429740628183261540330112898432573812292539130829646432102976591831540887387905348177134982105980569172113886200601172206397105580286458179925101412850785882186150642567558987305872622279455406707553744930966490417289778969247056474493515049915999891080830591784491892162191496135942262232571717509753659607569541506139210327733452732192665701013352346766991977801113004414826886640091053943300878820874954402202914636259675010851773041912397450902671614925641501846455199387733314100828143925197394983631394665801182253839556444977972999999582088224264516166717214495970142826274493873847699864686339685706654785450323681846335508339484631284827842503185396472510059604048800933295243003718807272392122180172621216812147573157012513468558781442963599146297625167992586060065240186460904531368255794084471757890014630242485490279405697525037830782705990781862214612988735078100870822587411503066548328417782428156763686698443440947630759125459705355379772789130627510798680086960114719326611586147606835188890586181532310656431150966707195682008743037105120631619770658544818701725792503243313030023072271683228053745343652479022462346686149771824712059037132880184708636409187615066217067098952286679918849460673740472420371250064253712990856583632772529665388096634878783424573254829835127011326304211085245131348145195743289432732907245331153897037649083083413198045647557073530782445328676131866269577866655992637203354085531419705024753988775555430068782802178120997933447305181825457638109521177841242881728818176059611608863359750554710220553779134578594017702909461689615702422355402725448789501177170966063993038700076973225315860289055789863488072549933533421784795154498719633280615369484120213159913969906133058496332879483441968826054012447691544217962972115132197293110697782113277196085432920289962592359604520162815840830105916500573813202128776899264928219135765793582316098188409767559994473984407619943276065660610819994042913315991690586404609935033411273066728864224135917430989437396060067111281318289518972798396783708156631756459484890622011381584281294521231256971519755200542113221768008137131664609352242147270322045201264464498999345182142239884774581759565904542627573210410573291520300828237173245426860866562173317745182432960129310255830456741028051968324828703385601063793401111639060191520161875758911037518372421284695249375686333606217492870099057037988144543064639519633123217505222003389378537628819841933258977243695254883289760946755910862378894268698041347288651466574867243036039936298988337704975561973844895932553305423680484417334805623492962446563576582897077532168489149736866379297069194211464049358265433153280351220843772263274568730930159276331750952781299249173594943751448135533821243157740002844821149119434811144835594825046017387647462750992437049907773030784832247656893585960280793675303495381161892666471255739417872609677515076374533858738047157191039373034782592781310915233487694084151785162327082257907949088988133433829587655539977859384266952081919936662688609486953793914327795848201068090331161857420540918400296448798042547444076074673230476936771546702375611306553044798327786479066015192830829257496679162721810373548132087929095529161779242028338180802672912894765232712920043021334420127624571888415044060936258663828870772677173979848763068365722890034052404741116394564101803564694163851868886541051911863107618460419540230069768777137542310964950110778451047933532503689893237230338834250205855318951129226534686347070095071260624153382649148792168189579744467979218095811244617754200570530912165863179851125703410456819953679378065914040527054782471201835907212799923078079122089480001372308386717669639478345649878916243168479890260219606912452013041650072822694383483822627658161752688918610385451254816408597092042772754458817140983057264975460698244083439592932238495177212531784997772126401610843775652853817409122766468861362907151440128992843146923677490945513865934875178161274683058728768372687459302881721064471864790646785078377664373761253392822625348369840679672455584083097040232667233726214478614615854620077997224976095649224698464453362304426855106248913755445276559830568918359029636722000506490161409225553454678119048811673521021027791994301101799509590455280760970630987416609140089976676539631761251428611634514673285785467133099911973955879254061285991161864138966916349586532652687643365366687991629033010069163169384601711950712491072596437524196648429101560356856900948500004280189682211856928856531845191883955305884381864174294945522261573147683677474877954072201881622507516775193993544119566229876191699227755016734970467552870095096854372565481438360698689076819263677145903563366978157278903798788492443904575677906954040457342490125366424753269915473939169025236922298098624255562688548091638306124262687619186068571101384356517666964484586365829756545854149152722864127804311970746109971410452308508214772974541599221081936610621932226872381945645928553435559370728438826589673257584050659309304685868227411273937921397618930429900363004981066163792954301214780802232755097041170365872629390929772969063662238470522927589993723015765924886571959906767129382099451217687226549301496204914875647212603900168802047869292180971849617219173747237367317494450188410744775687042681995616723587376270145964084306591656646491576246739860337882871825859350175260407879895384393052333748635495532285561677049971989904573149207059279605940582543049832398318706670514817894593002175706479101128008554630351311327187387974358341353607740418461551642417032734087946465964722592726748762431172009044953949595677472160113724858227464834685875290900105933012258164522496392683830814390171074945261097040195380095126065903619268152844464539661535126408713274166107723633698181594180685296299142353701350521332757360017640723974788239395981677313492966813069696423272653587360983314212224316811933928596532708395190218536971774561086663411201833232252609955778353578309017751326369087720612569211269417793605027021131619187902518452344803639472562044669842291776377293487727263673951543627025238204616469995917628379105191880258854348122359216801763284325508463153059860119726659385221352847326237601991278132601782325172947834584381341210668793416860623227038562680731352864244632223096815862442282176874165526061034296592205983007988426768352225325292748813541647167639687748469403937922882021089640767639402843203977757261108671737932870974423392575435391002235273708012491813039601624465764180693256970457475497857733461915950576530401809175068282185242527645846365668609432832462259194676595807150296221952830800419311134588313880762476848626303093791571709934011619746387244388592177967884129622193377049229965104285277148046982900670066963359120926133066972330747456266608350027376158317783225629536319839004933243621857716302071314327330013850781430357355085659651360203999891548536423620003059490110189850205083346077826656372868114932357279480907145523076473205770548878398179057381192702932199737453045602169802401126991844492818881683078353127344810257687516164753793987759793169220862462694870647829803051849369484469763241632103230808033409759818396930525592052691624299515654997768967212132288314161511782409066764483086952670195138154944597734817809307706135188644961724363415801692437445086105046763480018499708287277558225588069021916547931063814070674465550899893632810072542388072706880938072324388190543053907842331910514123368213395561174447691588338541993255823108929176113856117070236206817445345218399310296072688884400954094829310057275650164313807547356201045587711241580020982684339605251008693584167930496043633080184260606582779782179470381202333856010609922104593592583629168396161950331673485795478929440911340636104550384175980508925710670581048947697134855127152853269419268248164497011386504244308503865232983849106950976626780592109821786446868204470538421093861975854249767132693984819018483242810992083712295356005446474862215646845784010613376535049369806641018647176355874244422550080819693686671955696369122194830887658971835461686234289431346066010041616652383094944988801816176372795276863767826908204221937464061974570948624677955876828741939016736635599138724603311373988585168748721980475995146144923329548391612239720419840784843307254641941070582986689686706032993160058934318005482508630124923844550629828855693000701650853226290544986424902756227564191383524876028441709710796571916732097675962040248900369152217429000576256926739535945336311460530552012961151264046740730427543556610149834232943541604904003531371354613702319571980171671538971251957032008148400190547612379804358393811257678111195226160295568025225361222755448178833700995179868384838655201526053758710263378750311638609098969708633875397469023448383830593874488290041913173675385850613796663370381194150296543573528407023331492091127821143415336677672240570952758669531494665913141780445972831999168453007587130705391707364813200167393850759855070468083496582458918594608154068421218520534466501490687651268734944372967394888119801622444173946433737492290549565265540926158586654383512716053948926576478769899058301723554239637838564774213906256798325391872559789787698042779541473722560277100356587023855919999865585500571237381284285515901320735877325137244255195933005777273105481430877453364098266115477059150704269645426624278505037789368556669742193187501336135285959581275549692280315046115019410107178296603183744866579625792492808776607571826298709698854283423509735436883164715928299882853530148759369025126108003882823711758899487880110239553570472580017431705939965333921337367243209419210019528336037438001591812108155006951676115522497836773690726407195762030320465302353402600590410136190378466318234722425113536205622966027053711140698581573900701933216671557290994713219634924761795527249409611052244082411936013172386307361567091667752600842701051224335803990655382127349278863514410910450784824772812142894961193745814213048622180077003476212938450648870629993418854773532137844656697244206204349990200852945287674925164582125443178907358161019842268292338215536652384268043808926772214662985583347631217418996673379558717454103717580763601366117329010986732715819086902878814280020005023841560648807942965404690715082609594630954618142360030906913817835671229977355981649637982082232342939932379426780780856110952258444769728115143064300199006688624856334251535709931026508137048274211291577618964009344273047713038500456842236795180157050226058318157595557245711277906763489028940187370960791771251606837929099636039263523848305917871836445582192909788448761708700581865150059186414946661807460318894096803365986242102983297130154762265365701862528168647056675796077142238074741743362258716097092376656463797432696962288370421843334349101442559730115345725647766910765699225889663020403533065435661244771829819328957745085015610866289492142219313276538538463004236800520177381051330034225274440677616737638032489856893700942873987953258938694773562592498337300985881279282545229144767528738202784209651416295380636642947535509266407930832149753247257001120124264902461642503401221843496986372725207220458477259514004083819240197956729881817919257200069185598421639883540896982314316796423651687494082362032371524673111342897951403469736399937638139508537476460610291724841366758065845429956543601942587778984114888115471319137027601114253870523215717040476754970440435285382281386812453239179623396462433781945093890975165000851935860222873852416964237599829755799193616167203258349831040212547360507291775344099416768140566247548491581819907976958819870144044688634270032894462889844575754863281617425329874646141391320653015861674688274800023653190672845385509246020160561350068437391478875424067982302749788948762787206591229194565397747629604720367079472382274950359413538899529773072942819391518348986799103016603935122236297698593088128492598830548728016496898180732838561934893371066836978435894915298438981976236026945363611036665264149062827397200800879067874172978824826321706642046133675851909226979802323707696609735455016391518815697285802592023772137811300404942537231051989836691498919856861130693058559354089666143103053241466654157592235260760333236960946925986438981756258705705419249629075770710265289265013249525799564746737309238423325712146883185569667064195261706080774877603285466760413031245341881934161518112691847216417238578254251877354401720491184507879437721886951910535933202370104194476388742348731464149915419761924267653900998394020921015611302785632811172676700539767872770995457935223330981251315574288253105138523927671559951004145982721404714868218668434463488864472577875377582645905529837120690412525614995570980067868214696829644008619825191336205145249969845853802139631086245526053431275456707161013983066319647826412719697058764436912493182722868997090626538315531723434144884026869675273003741507129781444093169528098821149606732758745117128707174015674025131796097638905732454431142565524655723721801047673565875199023794933475557491280840446464320391037094967604736074619784937356756779028695928334704672791545899392454017424646410534974039295487864683496069191785755392930917887834428065622388631812676592701153569777091639287062060386713071428405953283716547639439076648018440051943006441571027337223396659140206376655051298771803633756460666169207598558165079806238787121960494228687412456654319381482833137978828729864063276800556164017173549530763274416345664545428141854467259834403821153814638223483242144245918816752897074473066998511862869278260318177795789639766423531606923977094540203623711338351494096614309655268061211466483370465562384223642952705863866548191812730597463467934430186090401204485987733919907160429387407534856758730194886472618666621547393683716407300773343662706268304815018678653752383062439868126557015453149508547621254347749424419640670535054075378055024898879173335209118213516356767789991033268634990761997700446946020426845861251002183992068596120265241070531887067257544198347658025501037152675521883206738106013472798292694098160737043475461817351142762865443273523530663868745040458700669290391005345454049707539468677955691500698804129329409572415925367361746478504745113053917361204105930296577830682257617756758245415139913745909211380639622068636298590106816552089515575539069026550730184976526044450623800422101967700252206762425135777480930959190161093349214588033305693060556477703059295732127715277438812730651482554260682669087744489683910368671286521526696713504995952030484462927243559156265018443258752285875232798800130798509370899793576937547533534579417678216525468408071295017895917204731039927345886928417960489394587638070136204978385798127150810937195173158840239334829323140445410132951573707027250881171991062120091218007526327624956177850092343790782787871340391424624207816285479907445859532084521188941192247677544287428991657514277740129442148122931793873754792126238791937422388642965434131249677970069593768814128717838474588441103890474961191999917395784600752441008609224731277249381003236102772703876912323347835737257506602638424589189211550811557954108419700112856139487460129783854480404803928435099864217006402314372554981964605292265894222224029239750860673442697611513635685496682895934928276752324902343484473452606756624729319800114537149036377149881726834625342226153583394690512993987433659950753247322804558721810212464692518275016464871598737925993559086816895381797222980245190723036310231513101393430231660722027169372917181955941457296182788537125990552397982585355567507809761905246952358607871772396937430040051755429133026652777394115297156224461949678954160777129866856766710694455439135474704401199515469574618859555477496938595061005678095955180592434926069406440013372886801935045210744711719630874341808971831820098698904771117344309673661476270473777633105314784074398523158642803784222623889184566894338126375231270689406368304240113407904202077383908422288574037373073204546731651004190315248956346433021264266970120442135845990006054057484868757470651349032967109016105586157907588575774162685864287399918275437347282717292373566858139538047352314543417440832871033518656122363425253695543709400063787996179387319668018027636456209587468600463116517178247858305178668328498503197335511665396359224186864224199886124880724673360119530548490549627448671710816225471455277803971380878512771447918287177904173080044666460232701943531305514322027713922642053196940325676305592738147127196187520890853854020415553024265357964151518299204919896037815409831293317331401293113888225142699006935606998443385500720824772506663450445011746050878634563943748796017023393079897669088446235960756139773090998944172773374956832385916392266498136408617499974095047613231478438273468484825013333768806654379626644637196028346956469221470575356056384706323835751551724711355301207630823374516903895375041308618853693180879659539357186382231994619627531850213094539418813369078673679114270163148250410807799508082227683783002620716129078717145575140812751120708921889584478504224202757289656721881096957793796264957684775164946489850582555798770801021952206649513403469443595628659026379793111595171974878330558840873398639066917988767295407305302930829970459796304062613491382911061936840065392933946987380603658322617233523672373645203838514964112656416963434995513195660998748155017980218510125130596363315689315894650770674009398343627506349962325674805544632915256689968720374837698938563622502170418866064272949872508110302556528136707643144198554274143803376981985705425438132633913778635710515908660537217423839663254667314295990553575081690401509743438349983227961680709929690691884210585407906199785572447604338563333915751876333308943969829702546801535099228505641418217092792775062837263850659429223049824738408233599713364092781290361231700785605394937558742254322915272855878959282082826355436967783563279392168669166089900885552170952853887368420674772383105416331985851810387392259801308231882469799756973669940209643121513909389107899291898767270678904971279066171132618335429652052745424950029276371179531992547316076437147171619710079692774563253810114720767598684603744615364484679037327791606160000720128933485224791318444033052305177984143794130361779610566348446872849259532894010056837264621474548136503415105377401910251914143202359736607337638193666061241756214649267426469560605147231352967887096882188245521834090697591431052418999596495246480406155459627170053904309136338165941970686142503898856562281831976643833976099679310970819284313742339543453524129894059670819564453472377528312670243356065966908856661746183391147234519241010666078534108642597042548495902743200721465189963501787989058094536836895727168665161605961762276985143922212467261380480502811726023289960256645684411016459891121379457899312404449175186221690804709375005418624333900339377144871297530762027644494024252727237507020771534595746558733241604254611403579954040121935439462534292559534905186308310036307414508223335399606266223182973450601557693328118542894487606662027687541007031803630576302559705416021618334754903308559578095735001329371530637685847400570365634413792540550092985828336684255447152935775114033569287368045731329423755327262309349115828790344779893928633533238014481149836033078537529206832029250354440057831016146787696093154595517231501381263391014541580987056820752632362976289553085378517513831462120765710282818503590718175209029709901864677522560029695921056540481152911208839335126428580065913188524493487891832173319436863870881495103091858856101993020016444166903642895878798889657554830205579416640495346720757951968889510747466396160950033034335546616868492847832116619713321671647841645535570597829604602375163132223489417717009087988321268184770456879388445763562265512545589151737402738355844967342483655173291580368342594940832240760930926646428771426012078950318134240954805816537405271459653598131832993318176188702195572658740938662392712491258788064032203528234910094365368828029503778971137379952744918665666122389722965154690149082249093766401252010275022322732325507282674168585792539300233903303719240429874127753908474163348176349608888175431025798667204119580370621184319736317783066931863464392738709632994498175373977546627877678187131646493198921011911861508529830697306865035818607873820243348990715954365625462208312033631629526830741726465817405221984775715599829345293139246859469427761135687118614164417378427975149238374108579025600030189130482780457901598721188036787485092386546404751950272192486495966750017086063156892584222323356893645447101859830005305872087466540933686663787704525469412079602324736571461445193585096710287140578991038753015804814116957263833620980363522617142075771014576817683797492661984400970605864451335377267021430987415061457287531289231028156070561889383819056797831379253570617786721949496320124856835182696745401593167347629831127114807495702972390626016057002223765018124441223528995844023800479893863568247849962526233729561264397668831489773977535844452736719700837793713723315753820955546671565350213354278762384585441058251289001401124704365441359568887794635823310483064679368338150489912085495384806320532407466354909323228640483858121583290081332078707537392332674366950778920543332562236276542757595465487132835414720425261785211040907343935153866601208064513916987105121436709761607425754642686133341054026653068166562824132871425175348363334107891583197018781059485178271703806176903501978143040907912230119044215845874406721628048632346876376711005536359392260201834282050552888519017568524811727167569994594410271540089724801657502877942375046127452890944747441799473300721454188337062734611964123962503420377883072339741141876812721704781696094517709645843135428202711114915104512517925433596343913743250887100519821942445299904846806265574907430144322359797210012889544366661250864389134531315808308503547277354089482267541719969792664460445872447209491517047640097698096924302744783878660017020349950060420649733662608797973769156156390961168471597749841927458060676006669839173164320100712967560856508038588888702205721017353048366586645569619748725254475057331988744265131726816407256654177088694220254477782504483135232181508069901834209053993528383241699129397491649399731102330424721126654583285296733022255508184533464645924315996892801391061685712320879429703462094319824489253642847367128854474260931108124417522398226276810285660803818085003215312756712277663105066134505513604312177591295909793795251113813738755121268912841551636677584584614052619426168357990573590588996005717517907940602425360730781105462012768306862499393388446355538909218476999607649595803905131807801519708154360618991690991680117498687654472601996289785784378579679007041253055745082977661657899110106029909273211372833710464696772326804602185143745709521333732719954140909001659308148046545289804206854650582015662283265215768011432539647545249910933130550164839817949018682531785878929530005316205436991110984414933514288257981928385115222398330540017594918449442024361675401229488119343267891093054282415663030577380175931064215529782413616510097346263612333821520136498315363068668733622598693612954173207945032987319453063986509325964287721794584224020534074706112288854033405117020275598224283326238836526071004478283509240854582093455816708668663557961936472522360536029521121974353309814729938370796872000301060985183663573114689509488186772930364577104004292645025196571264991749699722693634478520886098054080106189846267321285523407349077116415233635517599613053918694029938631859716845497954933187362773559244806244274853426741173502221465555462697259091294432362035025422502679079028342285610485236238333051574420684240220415020539444516882328543189053443361819076262890973788396208033814441288199464008334758962081773553317132493150063180617829082749086686162525556321556710691886468622137796271542785581377234885664231091130304909313997486333606703050841254039036513725625320249429932739610509194664297962938248925109068774782644750086703549123938117160232309101500692708133092572048498775280538082353348359973854611410267231225180821927577008032068691472089385444970600838986206661478852952219189852772976125723132725273097290928742114952750634970183120073770432320519125133473839321753184278904398917367925794502309084174742357511533817747629808577055804633744848817088209452450231462969782242760562038842252775411035090775440465142939588953551475238106027239328913286208255552622805957349362378097511253229961190758600765527340431553863150943353560462475172872726705936647779634031247383444123715765778795626084267019011931418171130968003379978958009524592666060848613250505751869737191749325956252361443505417928520853218667226436992283117369911233083812719459265902711345370258220307848371925048374167564658303354815428617525353307756513922180958500726429786106339156006236478481519691890572147071476552019370719880339270684302595193057581346287546144802010161447276345891613009655098589515331019548635896895053069734836037341397593644104697198106839774362319017727549974614893018108170095072103383356314895762110186591247422620125270754605224394756028488661319708841418028059608767956429510993909620756559996023498833011654468547792426298316135924609199848817761470646680532930761762375418067407272928372096285484640334732894293767817414421083383557228754191297932795826834096538014514711982790195612970810944385853864245493324859175990609444048002778402936336031685369917262246722008079346016321883163770643515978566758900041844961874719771216584163788256976191323748326394858078006632719432847088886285105745979696507165523583705018589468272473530339767627266047070548706589716805120985576044589876292943399631851870360776225033964911941574319187983525609145209087900387197843241954110619600811406216785283230973328839959810722456396727105655594563848085275642668250526138529430121572377227688513020298805208532493204840857151518090981876863101288718936925409266148452896921139277494604894065959360899967611295470485010944337794087652785900536065415424713574931108075425046176232863767334115099847103854838088171880121530023119735342224569869434434444184797329123256290633893051291003106814319236039499060106302369869255142546287584222114698319866461287638399154412569735859003470262487759099835037216233520584339059280575661521475805606355334030580625171543974640804303663705981752787333474348998217397040619981972525083364325555323360757939548331601483672845945046929566566855223291085133394591572311108557929554872762913217691117641369375168604667269852574521304911774020659514619459690674575127307779225217745730865412264737530729624548095245298551852204125646084170711619399154464020851392534587822345359532997402735526193917258540407884674708818947308538254544106344578811025260402392843051515211068082246047695462964384669268700952715680634445766652618616351951130552180236915065591300486083741536921834795245934238840146916132929023198280850309119603600539175237105003807674253683243599802844364989711403462970606105036434404056235545783215215065030728658431966269403573673161207416903518533691202639878774472031521233522379958556125832860789490814125668426707744257575393972524459088027691472549568174475652003411450441651633296524279337897891725401003757180040033858442248546791658910933959881536002336527055607112691560812939524877190638437793595127077132106081794816746614663134205574974877220900074905538708373315725174378661991583590377411243744128973338286375291181152210040661308536570310967042704811052320852537986453869542991311259622627190793429531862599024447902321433554257694092370919939658206887974854127710718779505320184267672361622089182981559980071509676815872988703720925197794003965180029550185136449645143196379589278738235800244721335833804625758189672863497559085089105932126171299416204728250651328749724366980000245548634570642025344158199320904829166979097557405036534965557140442209055746864516099302677280628357772547494610483433248876348761185247570456009310405967940098190706793289234972496946711490711658206797679129072019090885583726607237478504041005664557729796068175228880991323197508646391775042683740758710821534895638215636252844775397898981632472597897313494976689843921067447236692584830708814659667963123940626730220870376280910760345100768187910570784784032208153999989214386824192263177512126760874460511857324327188568275740389351207888544405076144858403737233936866039986040563616779623555201852672664633486897610921082752816935298818594499391693224190410184509468903866230572552593653902315278711736932818853915451714202020942797598140764416099554993676573875351548730281756101479084032955750240124868220286709417350415232478016842887425181082264293441547348039277625397095701057202551238369495519355800122469802498311790886343790860631784311288617676507754034179868534526979599220361655578636280061966756346032820698932503299398122558404473728487307749495433530025469483080037365858533826645255123513602830908442944643180762754236322086070185892716234071325096748430388400891370665820468171999637472412926462413338924375048460672707953041088873421492931975630316843861471324050258428650603568464685562515461033696511377956232992765082251915194426808605939408102862062962862759930815680742679199058095051300482150323143111723247520751158889534751234629311343425019556231289166280576597074959584916807058485444091202656528404572004183574614862775069262102303846882923100296833036814043295585081498164372564832629208175523463795687850013772884629668667796463877555776282825751262794617286672769695879211450989139727410015010087276770215821656377284377794449090484699650097225111074309461999086976602605978424030880894838397509924210766698993641164803096933245639827675433124770656051780595637639388200756799248414865840305029751859960711198143272802579735003453739195404276607747241239656760772109151108691258361181697453958095485825148345004749386790787152564846929782295638567247900615620835452115195963766473301127092906395745175718963680371513765506874540743204724768691388963215156283039951087300066398477257714960100060872066154779337856736397446904480847977257630631125909018226025047726943590962376244908627945838270125470242497754249115699244258254140555940607451161128678538606618019771299682289970916549933607758635376487932583747669255253752982136573447268508508569750260612515866254998464412951283002523557453491984895104937138894113333278379223520315763841764172704010872794105426424742638990040415407204400327714832996007732977392711762785894515821977491728161716150179734613209402655469568931288396822583217476651904949264068348864148145024523943662287058018213491262911393547701883698733511111221712032808723393439044042457434327342012190799605482290063726880162225459629671888073230791931385133157608762370621282596871947240942641660483818371216425537934870035966594199070667163731669779912449412555191786585013331707686463357070253608098699185257785544416363845481681731534623927944487344753620038514886557124919535151652573904227660197611405538759138394642175221010440733640071581134030335624627538438692581614759669520580994553899348811790841223718895995764461627676461424079412894944144603022938323723522447501996064719562850295487119366921374097805891036548469815931265169946091011009377919133072368832521624617472660557075566683399562357059564907850295427639011100591331404051121599205450275695794749283605895299749720715082949366932478512804487609376035764908857543009088794094192606846830820879880539679890890101663238439060634432587142683848832171663115622030910182798837312915380885069950382646272550059602655099528899949992896247782479743098197472219595237335574704656752444406589446681458236217475290507067538907457796179995588303792222756354600456384842631161584566989799800289981346141484520574246512803183013038675403183127504306862404643690845048429882028709584795261916320213621441716487475427415116048571794156150717818174744611593726800771840909235218423950374434763818349460922412635835210578129369370230140446939718599271146071588845997329755649917898223710033442816773463587923419352133848187922290007236301500899582659024294817246469156802625843531581535169651835240414114965736465798470462725125435562759203810948652493384019538853886761407010504720827552165810751011300106109578156736391521129461000070395889987550612250886019995687953789326781231677051924885982488530962710292588552146895068473206106841382866675225360016375342099502259873804487949798112192464344330908449399164647407320862091160204129338643918140394762748673077450281707353608094740948705135293382752163089795667131735016763315239897475610040161075001209240855860358487630000031902850052844469174307328381528370825478606206617601436253761699619523327340454909632087694620309009213573675611936877656336327526191473091254497063439941613528855427206683811652828710069421073048684861120215844325395124796869592069893680250765860639897628921980806242119511267519256381209478457795505397133719878602181272188745953727212435070711352915739672325918746710903510618221694202564260680062104113023509348567968331212698783425003789628600159435916317797666536759564252316599064849176089467801587978208095876650920394071455148092217140105675527385365219113525695920022093274010380799474415389408675180057300134014576831651082375273303651099757514700110691510833224891626449001822644129555189161929839172045731750037469381924662686969306880188720285227934618762561880544262297047141075524739392306071855535017766228180154213453274337061307448272878360453661918991940246374433695293112319822309245941565334595043587458652869286601741557261978456976357741286370636269389805021193364318605305592489614522046226392148701103616378000863783163302024661119662790966634080144699977797532073733733725585032668842156865121102940529721623078779492981760125554245371461863693900971063013382769662853504631701095325836960551797338120819103575860541455968197974636843196509737884532519916875446122826560347104695408702850544266716255257775222584446387495113015574825231265938552438253383615069417118324886630918411760286054626654418346284919493390225245858963941680388919555053834414034924896607399937531150641118133246123160080163750482217317227263381573475738270959103581005123423322715541692203467462783583733657926428090188779932152670226935123903454029718542446111238827260590984346700680646522975889987365791333067363418435375647160973650559326585563965921266688454666613409199612482422200633782034950559907837181380362188251514103012748249669887248249217742818032023688625520545060548267676576851991637707063822241878340366258900685621184667275330093619524317137212300599685382085770269055603222275408659058504469930674529707904943577509692256698853497802850917967982038660213504945350386897566141430095192032650094734588983445190673578851334865991215482697663209661120194465577461614358707437707930777311294585305076335627036035529170530577368011214789391529579914208049609596488649402712320064155596523931493097152160238065246635970036854031098212360917122311235016913852113787057907497420217727440601832694323474031532353828022805716156655247971755179519654742639840703906921597136002762944405449978610408343774276781635292772630189549469242031594683884221230911322081659174427717810928148477288159992816930591858887641168853321664671206816252550497140663837573096740262994208502784516132419949860215235192058461308504773284905757574340414993600400446193864948698013711204101304567529578686601643566981134098709146983414423807625327633664146462225643330858921658717509248035259565541724113530574580770793588573363471305998382753620237396314709728770019754630053455967600999956232664382183800610150941147328668509711526000080985634866591575434996475076489845617454902467431757351730225726298843092986460252456617640770140920014416784533582168427126992973001433505434550641645048680504993443932594271764422878781504540894681277380379467717931857514673054709931951455384700395462505283535442984967483739858039440463996333482445849943754546453793745889425346194566902528697609582287792868698696247638501991167930367377767433966171816960976059610517266232050153150393855029091860827328584887510538753250652260199944835778708245924631834494908715129272238074424101355191258501821912576467654113395553114987720993690386667155657232985144746197325604443946363306111817828014418794618882902310080930654887017958728270819185374294051405399119005125027355792856313250401406515084416767362411830065459099647146005334287773180315734670560386071876218962534255664217552328141460278057781471691519685386380711492792382875259854957668999951185002519088923677157589475799305438097020767325142138287906091984027039728351822600846947220100203950645048468550707233439841487469853804802832956239400358906657262249418335490432678381087401943998042257318541879534326506656852388775382458643267760303823569773262603555118971527796388934448059663506784576401780327881634421267292844442703336331110937908513613325472904313981512769900715048957789937275782859752347707576048202001057955466966838633411791168851599282034893980656513617979721789450762018941901284426427552854073691232406821903530682576803497502391377302186908298733506722740781864754177855290467828153204907465306753763952877935797135977529584563949858225981815041428008364200452171385053028128458330079544119822462798589485472249199719180341069230371389065423837037311483616609977082189254761941927450720324854981443729686872159907723265869064120177178111659451473241022491047235391556155244318005002606818198387217647778074587900212744078264313930443361082053125476464947571671115530132976372655100227210604089916302449285984569402633134914584482181720855534881541899824937616521914514005191866663476967532626088489920414947522375302916724916967955840579872537429036226353542557387277806037539772011540478833384158320767039778177254368198693961703448394583758367150690000062987151358560982626032392453147684390174570130734894903792206426642287642653902212707906168155350843742162812511252610540175404469340672249452130318410199225154719856510592423665689991330712428961134251318942133982504119567903497761785265560089083170603870974074739253883657352376136067809618777783177410049173884486461111198108267806109987384131713681666777632302211238099817050974948897292180799376071858679230174100260245616988741567101710089314240199543340737430704145863200670693836341751930684118793760742504156494536768766911813076802842227711872209936902187568971967129167677932435421423511605112716549581674296143896647196290971992004121857538995490761773174559987628011823519768339958424760081316451691874341071931281645664615874731905282479144472433755544388506118942869362365085341926191578289395614799081975196625295173403608753543521614409455203850601318373245358626414438393539579655114451286160716125279445652763703732439379855223644093592222190508083101131234057650596320158257751379949531996937684191778771695973644889191196026144617257850308255700156366233517972185068415879012702266472366918972328753968629542822797666574526879991448833664157160711872012093533804770221331035095402933062766902114161042278473957403963169069795785023400569439710089618395551007593207588448107997753096771305106075873704294447389958417706301933265908367928387322707908017278006529072266365083217246305073432036212216522454786735874239707975811497144298088537736950092700136781769348905299165673224974613364543277287268621753279190448179977757387902951395985622088101653271927493926868868510488575049002444759545729464163777086404820541861033971643763883042582073637380799000743471940616219014064926293426866916753014124878995548879928784748292012990275495994464137963892237983187782938074710594477806441574288736821945754172518506835434035639933016690461904943899831305752313815744896971789579938340062853975702769993850346202057439150160427690318664489433045178413082426167625088588261820857834671299337648948846984072004219121801142675877841985690223732598000268980942992658017725536503085877759125850559475970392826015439494783483146287146751663268473803675172611612510740797594564885351448991142449449508977863576028393366987843690445257392187406762624847824380145229613160511312939108263105809387311636963747346231037623157303920849208562577169820049880824677262737106457291700534870297093794554449712591557490457875772226612431393220090330281156935093898731337941904426708853373932847204357703044947741109447565896514283208751608970195573079061754145844688476003868150023001769980826461801718597258590329237927787862593361279872382480541143438395539733635459068856151907678007017696942899937551690096238597985445690447010360816424120858022856414678816206188523261772783261697053025623517467033311298284684510851655139358653593348155401197958277105342781211302137401776986847579359562459855027996320727714494199838839200612321395694369002652050027770920576675125306279817262856192051671814507429171637827374666629887189407156772709999189928513675696614944203590817732807205197932271998050432710190998304663965286490183294199665161833649526208815079007863616975067024704543094155156984351977152099009251212376086650012219200844429400063476656029343003256493410025429029438971344691096101088658908974518860811688453811020728579926100903423058446123073145273842302618466859040472270062070947226886258226229364127974097785880729055968091823236777847017661569664864954090946656250410680073845938248512368724642394163673673872457630467526583877647204240011314616675621112315671682474958739579277416676827299628434353508291842105320483801095912306406190598882931371919487784755207022970395904860350103451218843502695533697689206219578410432795329879791423320357189831781573371649137899516531581285867187845921565993430620771381455845134332037938852141555851663852393932010623444474361292255393121118046153010064429082573351348597293183147776424206016427362385207810012053621975450130263265462369069920319552942176397166498289892910742736697023162379935707331416988833514016107563029469274598429975716575812585324684559908304352005943001558786460387221592904489532270637490737554539445951908880611982446521447347692945601328207337075715884401405924151964703430456099232518885449989160228218649472205013428129264811313685092924959980507130338100816659407523398747113705413650807026391487660464307285589126760757977267859237329664560519627975441626307977545646138081258173775532666236272086490530676053232458798917209639622911339309438756959502645967395003656486100113730262186019426976392494669621891150736531388794833216355080918254649756199098813839782557175762524667547643980125264127367349836594204396986114831541896517084551780102372360111323012066752599288441394726177438915204504903726587775992209963742740384342681987623316480044804311969698276563206778946438102103928077715596975629286441022212097694488079078951085530657129089474622684072455595902927639343160706190900826408147277200847287510171729409337403066689562033814976751807834925382867001052348829335541159365526224220202863412272634053684478210569774191184070145832588323416593199616004296956123033523290973111755983283777846647494653745884204554937954301748566977819480840568156166082128031394683774662938754341293724474537848849219626849080689669827715253236613078571017043389160667942261920551233497034699924413946146129818547511181795867162346847052640506723284202428870619500265022015665056686026935006614238933129127646021825729237424319890220808900586357299579689136003308971550818566296375771691190105073523998365064116628299525497879222100664393028917781987829141642100337426090398825569255179170384470229685238002884680413127796314321577467527171097306289413793659410189529732340018857737646390285649248003258299053732386483160351561630165054553201772332782944128462860679845524340277506515567328912921275395620160418550429041588067331419553110964301328295127674264433651249593685142425171143836045901466267476557898891396528378810309021757564015017115699204461580592269532953841643689468365904339185451197743002204955830349361582808701819868625683255375792180559109133975061482517733575565213063889521213594450561580098247627143902130440850695248582960017032549045816732167914132422664513597941025219088956014912946790427588837135903385009547196419400524122203452972766230810961214127529257128662128358460216683256207363393093235160451958088412680687683216151307565322712897635930953056912350165582987754898794996557229482116558725683032515161640438798956741196954591200029613752074286665212714997896844097701241609913210171142599618533402054886865585747231477471411803814612110873699558268169701958909198799584624076920677131268149193995205640223699144411952325561775685534073912704858853027809740228195978922141667611560176583237337658256780301437197526936316222881064654067507953471366483601121390865760392350340831442587862213859640004610279165175747085458329596202361304711760674005961538146372931529850321602247805295538625316729930127365129932105762623475281331027453461627584278884684926883284049924838038687497730431340407386980523314299947863990898195436338800870855439726185806619163231087720610258733188986768822306335249175601378365515418325226879081965518399866722222840715581903978941470993229430662555476227341854980088723923843672764969051325992293416936227942115665933237169388693174505621881623701549904887482064648470556694470525306245291348789637550555036826526777856757128734469062103340026588567479888207743752909267294753227510169296811912350678556431008005724738014036686945625682710608090554107820927372935563472433996891283782968630098554960199948302543208759814117993184404153512711779610327642612941276179971844367389057436023049656996556374362058147414429829975473203736189042624803915029772006844525678173606080166960591522623750561103740702246115896572676192453231113089476887630481206144254791914520276280853274868770706367571685667966434993632459916827404055766599657186564738730065194520672353302663945938842093588566272267750837365359652036172814672829838901152589379439906369074383722289213310827895459297596389961585033806781131612997401094160004101056691269390202924450682631466420045829537444954795490118335372667038158293950474987494393488267304144203052597250879104877239811262996582007132219470889307009915202100781145209534164662049549973694934596930838729858710686278305039636563450313693004529040473719512408231841903843615261878456386632712851841760212180857946947142209602843780040422029802253950854116483852801633325491309303423481648002869083131465847810780332375945982248599680181015997158262088963719904864988079559461081976159465184235744800572268388899763479347068932644014573819974979137468997771771160597601558848873222215796247708330088341311938409494764519822262637907656617291586996200105496508009636256269825388215175418067703371256811020680500173652619863950255223401585384542504934744866119198712660416889593300336126939959436424575288178522727074957070778265747060366406314168274571702642821796992797701029711650049524514201976061293832686299593627992326678618959236760678625538341682900939488885361239682167651188347061348289010612409112889846196802001940904041247634674416106638542669591003882542418232223629638132170225320494195416396659736288281608609606829022023959676060373990920658579265699275703104016642026232146352352710910493873669658703947794915658455173833539245085166441199162511059321149014162823525892378505246448025781990576028182846579748917565205793618241284330942981635025761705719650041746465738158051520800564909378939838100419092829758083543695019927928295011947101512170559187926458574310124350241797830027645645663359791774232263055904181371074685894849556044147706549200384624115490090915095005430775281209090504584913472595956077849139404328914274737830662280789054378755489627130335838804978852585026023097470677917422971138197336978923060488984805729239266086184440688557100958959452688893109490318746343675541083281910389981673963781360199067726453629594081728000971419014967076720518803977621533483756346608823032241203640866325923998527367919153408866814452670417574467514645061895216437673458537916550906996464468637495191639056066472207623494591370920243009382579219208750280548753749358164075239988806562035444318398887894618977871331715653605056592418708818998537199018562977143315706578934685201975623569084757176041497080793981119069749481728633957500532976833601500304278806612938131852159079315466830212567090107751132508609371561293918893957776595850953861302156675815076082492503908392092229047312512152742938818834260604740883658085222298542348855649295736549814589387987702857737604646796936730327929978710883242701149358868764186484792526411880693586353567235241411453302824354724321767133698533520310005550073547455136449038366626222042133388820009600989082856750280166050311883161462584156766664654483936368318207658237126398923953349592258873530876854466720190113663839555267108512142662155583470087301553103707799310054054210643524900877889617436213458743941776433071436028787420295300631851998808335824924479856116280099564903703526239049214410430518796758019621463357455752835013889691286634524989441436187009962140367362961200359330959810455295958449597264563739885308791892788501043422035474956323331444586729555138436899511693047712989945799230695074669691846097724355277850042622376238331264544929734856885424302781312954074251761476345261519524081620521296237485065506874207426035694892505244213329567698340025111085856462256313578720971270672620652302822645365590902274646625866793013497484727527683113664911922431875446214968050024171794453698818977773818141706668172987022077682750584566844794843844378073210192373406174410395573313128927901533062349670062543282357220260018177955537393532775719614527419432397822362056980541017479304136007065964925827049943726989441133588686687334851963422862181685010224573006827142288356163598529358436755201400011211342135302513867153723673047901227299495954886593067004230133110908200049808087368215552194657568780703343187479145486506738078183922262055941478180196545223428323592168657734142374881097488956611778853726616460979348536113652835467782557103657462536917901054940159236596722131660002354844011401682098373830363660428291226375076699996245306718420933174148423618993140225958231227185642596377161844425553855525980421219867726796925112636773714739049536523612305954719316588986266880723047896298678366820811244176097459993763482709440956487099684593001590010378575981357996315223783459627313215018320240650324690238975697043014783617503123352699200943936143365338654868348079188852360536643656402832573191493660165426535101071976347913505028824629669614055982358705897522651851541334333924944011657946425946660695243747080865468706586539823548060594133091992767691748940349266811727802765514579642195197958259607388407820820939065241094928001522042612236564776938610837971452078521507616032618813870905578764844448894654921181947398287483118620662392363853329611561961962728668336666010915687431359313034643008976553477032973954600130052366379842488829711056406949842888384898505190606667008572871546134993820697636535702219668783592366087848765595108313248338746110506159367516521819951235121069023003799554860919300714629696988158938728592485894285940069200094309340103542117868958090548198182983964886983272458493015708088515035417462223280534867846311359708119477012414958888598772030187180737133099038477889866257570471792575964989277709542916424654585251350819364947423502734763204145516487800956620252826440344304785504759176030806946342478672883314928097368520995694280211566351529010453751734261921292340117175897105581872748964690305665119698404080522059718680039537517564115995230502172452484027777194207665247339276448103876478315780594100247685133865958553487713518328717760252686358513134626226914540182185184599150227173338450387433710958215956536543047636470432299562427888569155574454363984975849909021071007362442520251200477581904860039612130687658626025265210857441078912214936633040161633433111300506052694918526377169568685175656213363903181503607728738224383380524911853439102126913886350734535985135695944960669552039517140357852288601966643198184935535938707853160850300925668486965986066021657890610791055063482039903457270936820435581270594146969767151347390430420950657528687367556147035869111871617122511991079204158405169550966707344161901202531009876741415359529427922381609332815859383543283103990150522652712023449569690375555256492029665220903074446665047219404713095440141538736467479392613606684134224804466786822146940462938343799060291263267684216925460941549900409177063415359684693167450947326489771826009327032395840276167439804157092595059107619044827818463205205246207457637805581372659583569181813398753120215219277650511697065077762319524310050472867917179868095674936888984131958332394201026593226682906210398567478539737800853039229932815507305839458837924873900447818640140648400833191305226712026063253149922333870036585081088891441234382188501919184370325090401031187178823600468719241419090398532875927404778786855431467862330137756302655941750853646927823896802400634460828670539924726444539241656333232189570794259172715005324027534052205355860957311486013398322062223786558296133956956294522590063311991742531714652682688135778100458999459191700544839261371426854834370560830778753566611938326013137508154910003721729868678751805772041770080969447120646396144862934739781719792567316975691039321899151873604198533697071200999034031161193944120846066412332854641991447316862225738019046872031548935041182848057020054500334501740481037721501397079428111468798875083339825145651788056041102023876773922005374643062539512052399518595120217157629752334448424861457321872310476371799044526788872584642129977386124621721582248779690094413593496835656124004549904063525784714802042724571747647060667566268842791025248010428612501612972450164882126859236211594380629832703312704084372548985409635715518234252952816556308489701366040340392860365824084018286556094079437997210729348841079787978115614486683774994984153822435280282794400978603038662535699309802876103386573966097934583617201082626458825417750276787728310205123998289228104628831047897428379475893401789076551963977737766628309248044973264608808214293096495264852737950676445669986954724996829853629598412729862844668634467826525890552400230717525429227589512628959929314149766519051865318307405997314546406751773112238618597084325241807687819026729287785173911627469986848977079100454672044362539082992335208417964073779289730832107482570666895492168090173463808919773151009432487585122917860413515577030898136565917855108786709553864391910856386016638112509398145752806791660784774830149663221338145433806299452629714537399209777072857967006356928192883012175548648630569123209262498898159568325568974614299048377588502952715575024171017373786637748378004062829426360504410974675450068320108400020000752224413987887771549268915701433771091724948442952836507911390506673954919088303782198781122142792167144782697883839771158091176834974256694478335797656508473822395427170906785822421219324489317140056284715550459821654594118424750267947393583486313960586311652392004311448561328600132261777006404648447686901635582028468114962432323504649373914686974238784164271886465283764927333742279879900404151814351266186623854165582853867914596617051869640621905530312704447413993968743986622794091503833303135987631245701815728714913671048479990534518204406627575165673499178324141314914514604608909709126105036027829433928512729186107352622655953683016976492875069884782275465414583302000947091941785897918083132475412420934400330705735233117322298991712742707680359871619989639323268897880367815141302573824642439288122112148452843018863372550635808819319956637768688476983830377090121224971194828862681960134565681869168561386939198544968178489090361377612686756871349335969657931814648049824171503572152923172239945923279510310155966710100053131979323313371550110863108031427371644712168858155951158865972638362153084471266801716463106369962414481905262861034918020124193679158831338430295053519757575222573658501136466249393410480421476576679684376036962199711795657466244591329249927648047907047771874379756030651716770635203379603151216421973466655858012000711064636241459685468214792757325675108890794838555942762014040311365401213696171988513117342303200940358195691238701884986652425025292466504177922158549119915453956456128726876017524781757767956253699447118248591643412227423312855289286190608435560172687468384609312780840339611541200027555071502576245278642751175609707062472472380117916984427270181572168435512394249621295747812060255034809469153185808401511248860880875966148398973507285026705349224628880035424462593269895742336702316820934197065109909313630907848738078440049048333658235627709242041681352997301492704624043095325073333280348330905700551414448488624430463238472307778477669307378270129326540705613624314617575768824213645807785781520440275943265705380295845721106062591564085393383572745713051136617357332869937957412337673360294389835600851003791580978313935306429124340277062922426694930113200314677549609510401481674075896627614525857381055253941142785660224635294508088958250592919387978575939084690861500185538248954288474916253075750434987109305489471674343051388134372337384454954489194723552960097774283559361055084550182491936024101326782039536018617296851762114367856017858118977030258793762215069084895136432003027385614903301404407894983186773035079709570163972612834709752006738077176192045660455858224100281786714863755050569574759872025331598517889443572719794033470076232424577418950473126536342672983363769837545553306719721217433480529153621159556021522297768204350761061095896418039364316448595545238886767102798262150338772295846788609827210699833054881164768718109683996505511119693547977039701772982631417131560294635115175015045033860494127503679617448469290665071385829708332791480117227114598180886411953988744231257554843042333905033088867077513088461543193791490046321177745005548659302679434535446521912110366479094864310367393097240671674345502362757108927259381310108045735880771749451886920704937761720625744557583228405153569594473446026715513315632003548469478013903069057198461004284011424774103567111181491915248803495433501753257251782404975554670818267686408850853447341014485791428966488389368422273588106600765168673945890517206588013786907657181820824770719659909691213301784732023466501436301564988742401841720016418101221931097560782344020158974075220010846371278680106010262716105679808037764466128096664877726576763349600262557192627869949436103217840348424224285138357852506743262358612002002365621909648910640671907046731233781942655690062298073291712720188033265071305854227092317086449145837053896912634488195093347691627712943167877547006194320694922347075973759169374996696112072215104814223434840714597075930027664418338433312605817909122330526423898176002214004135513068068284716340404944699903947731878639191812370407047894615239189804260302915866033885776382018755053336260370188239822315160464411387339736300016450961564492183318624277067914189345995479358242608086080739971971480528209192103974148388985067562282532670671663554637641383106876115327531189755806652845437048574277485543239229266822632594497244235966540052330583086831694394901420496995037025823914874460756275022266128760344291376294866518960802766612726130720008937644019439202978412849215721099823118910165915107630418601867140389121724869453028486827889530507262345806041822351626845702798037881611615423524304251304337419415310940550903584481766022988523537070798411305091836833751604536723382599900748632316542200112908676420745701705256145525510777941468246370498816072494500545265117669427036657534228586179775545639569724333810404590916688861090927917673572706642880372538355356558184161247387434862320313429981263684887403520309281125937237947661002450340723242025589552329508385850080947877109622763906772068110939857814742380573829616601245622650546726027261783199209068863576194104716938915666479656156123506014796937603273982746484679136105297699042289400318881283451988660410623166153549143228815813793418977547235341160801037959452561407576176973947188941099529749599125115902249966078738588147358270726481460243354412697226131970512934379133307790766360350577714783211163061977560056450785071677976974708155843438554935870661083014162472277064554874265579760725088044080070962907955289342811354301405930875284193958356725866875472790665461320998287439339109125478138153663002000251326187984149861241740563382842535006109890896080314888695919188668055432219557831253846962162094263767822989630847762433229634205505724998172262148501109336885978260700998574385384612986834452981520786812068844664185024771051555263808244974891523881157596916484857195268583831993064889523258353870320749282132752028108908156084061688616016832563739918989931421287954101579959531256416679046067139784155213016678470225999086930472626726545942120632631461142652264588421453773448510769026377009179947287903561398034774916895718019763722498261334335310066982611999350588397633378965144681345484161836002180227135274460509771968129484698778199262954576830182158619754933269198084337633994092226247813229384274298767706497232469300339325167017439317537139740077596640550908884961086638351650493400762660125052222794345700681236442377748461084134969868799273809650322278812028990468091221258248753380227500180490191573827690511293836852702818192268579121917597322365074895511589289475627034104395165122607014130263908239152523730411057207978102436398081887885668258279973939323410634513876262581327088776941025838963045800079848654153052634712044398916921636787850934890799693625052134132165180471516320019237935906790555492636186812078686026743733187932866361071121498943452750317499467605988644172196415622464986205655728003387576461048851540886916463430371034964173291603089509857183112436507277693625696066267075149892526325013186370139477358591559564137031165019600502679338999344598240318803899540397781107178468893831741430652861097526982690599324553266952094816019661208734800895512395625172236519248142679162253027769343952934906370787242240616469399704336482432260647208564789291232366210870148729072962777919386333614517954746873279623136063720987161763004257577593787077234514003881663392605184022944166041203944626590250246912180158104775747159667985941304817511693115822497551108040796907592921396549450747836248858038863106121313409415925356714229033481897213774880176314282868251850493496017499603553165526900626445574034987417848863645326277993668744780418645216418857939552106844531955054960308085005040508353530827737088733378037393889141860179292293009397431922164439058322510020824648360579694554809941000229550019473186940021020052244269326155246576985624045745459716986497893703929216632371645540647371040683983536943159733314706787006818933834898616863208582995843310608497790427817853314466866348755198009012729382282047277294426112759587608611166210801704650067219710237916242812647958181052345180343024603390480013219601856767497983936377408714985594565434141198789107652265056329580809030553083970900942501552973666945670656086679358167373475268962214310861947743239357825798352120902749173167688084827090590210594726164334386613547803220060496642949543170876417959541987872924364052506795596216057113450955819805499202169483468682459082945369663553028365591801924187028519204816141289890042913155333409647671394515933678988570018510974565150137196075041541112330035492808815493352393490233402280063497317256409217408696430928446444719217370751239104569600840525242955166332627191132617397182207907365485304244957807371403746366015674336752192987800171136090483860364339011244770651700808506911966486583554064787193916398207940084423247538749832800219317031472773565275911776221348009218937598934507802701324936466433642459324033830592573181613260036998980992436533329245948919142262560940875375806267373898704640595022434249203184510160692826895961830901905455075161095251537209382259133234865991815741967578481158735264936017061870125536880150675753614303200801534996493416377976886738129634400638546246642615619626119516621815398410075023117715327065881621617717227231583362832053701513793940624998704631064400712428714833593335460029180561614914407167868664773276452656142316425027681486031962547129325007680723236525579424550446282928035155270588912701157747019650085234241510846975380308865861427212927427173466937788514926965107600522660960975010676781220066912557579562797770221592398095621232297475300600553276018267966920094279408688903982887550077600785421727865007558916174594952082664466776484305513935420664766276596568703687306705838043603898465909132374365703084574608744869853373150170942667528556054163914904070830234415345773534660491257441154160821658074648522559843310484321613859465017671177313566322927839475849178722257142904086914620313025221162735642477670620946709971490945943436933395443705535681154735954167530837104093589529022353226806163425588188706002739022554960804228436256764346146353146748888713640852615764453791170317034416193838458318103443173187688700905150130289299815785277995766506235915149957947685300724649183234438607010870381321639408332408961471190166375903205880441369378449840374265567354757381505940218897245995657069651355009936332147896540867912598399419427514879182802608677628528456271560574847844605014963244330529981762450288393337026914963466797315206800531582619209726099495906458358731187666876723670340283490595450734691104979458645833075242537937095139858172526088142121258550472057787168789382588981480313937400296097345926320930778947243339664117042805831629953263099127588014665003512241443368036658052829603047636945785806357877695763181171833093129014898831432933044598232317497103734046215817447538303036468760881018957588249302041333407642052290692826823815550699967448753906289908372585922234536000731391674326454224946151475631951614304114105407336343230095395405642321070676582193016717690099717958726336346192364131074176451456266881560036536178978026937344948085037966975203131449792818240940493979721724088200212485223484066725505941715435619764871196153290605639151899635090899490710748543023001711179309258958409215605443801796726705556145067195518996568027614686084020387813878275240965759395736275728219991702412564640760231233105290648102883949483680990916611805976827531789753855687365822287599686123235499245020563935112693480629293396595766435882350345413623141552167818513324752322716907438510609192995704658948309642052185672637511409652201158698305626196907290504739822557790102801605113641670043728649706805359789450686697723045793026307474888013906800383427754439602313506405663499538449130255610473762449253049305138138573012414760640832242493362947537781603064526379490347414494418611784331743015727691156114434141212482549539596604303830421891776392126372340744730323753723179931489860293408441135356283564333201234869533653148215889953101060175993375297172111662969034096461479312459514795770333016564468546413472880316663423252102355507267452105033419884295515744261762147024880557710981890677379802665216557778158257927948745776245285305186814011821089714262943184183820184290265718370776679298661522993955936376922238578466080130390479054013445768194492683245424453759965230957282597433008695492467773388855597241015450889241023653815615953151267356941645198872322056887049126366412411430032409150239257713744975427435081984589423398759309428787025175207646371839732723629204771236069547884658248674322141206767282922433792448057246503618838945677806845149047384999319075199611663405770333677308682270340752571727317386748041645813540062525386051452106439733373188451377425148848302819126770661203007558550684287834687610078160520165235981009839579535205737254956857428644065020403677174571186963064207339757947182480825512294921241668521864109024861581968125753024296181435020375378995068570088842555026826028060461611576426372815110161785782955195142135552361378292397234463311540091703244485251328980535869128059458833143293318084796992821085072830515658033103362572561556747746485823347793918380015129000037495723472860032564301272006773924424286784637228336971365018814746552100790769472558987017184885050561792160786584937414034047151964886789823166334744422214371626773595785177577721103786990015267234474793765140205977934196552490496994549209787312569417082277172784536443681727318129854653565534108709269160645873763316394451340381581246033215840691744679272508866967500195810235698340825028020617702271849976199668764301677708655768482999566690448263731338077742906980313324374820073618445354213707347438215994583813386760988562443901858532126752720087901896824321670792612545200579633170785961123839883445056273401167921953438154555187961788644548168690307648395888602959548951625399685766707714061012455607002885690790023453080582825397700412255325714597649707819706789120193803882404181843036262937995597764749620485038458580728184380820368405239971396732443355768617115390056243510743887376546295751256888525836742137994139899096084382482134787572733376861228594339845469821444363677173085275500484883437356149423286479636398238545829106751856718581391779330536041873042832929674396842133823564175456219765618959333962336491600674470047013397384341099180024411563361109499493487424401336013267233470314099272382769359414121430920342006468573513922525998135603840946487873293505164328939403687363485949030814760482701916027128119901355368285364408368144263259592133604516095375855227740420886730700631572377057133026911361107997758862973609372088273340660630759742140653679136222007423922445097690931358217932764352911882423808635360193959404254198851464337551485254344514254316384172701345991379715423028211156391378717989161241066128377828581909273881874073294673433453631561684489497096274373091873574473989650379950025035359748945416321544508921372349645139417428781125899374286120311068668927165589642405812567570465111335814749743076084946510104763918591064081806506231118254751507988550890237186958832124842627517478281777261686441565052317656428086296543236448290931103882831246672152555603328543432157197844997460107367412020039606289005139230373859675573346139612470586653812117474337747979283727841933475503367170567217869859306298238682359827377545788949666215448867862156142132305696853681492071630606965714533283404384125980965185154881170879291025641343318414062616249730971607239466615706931844632262063747047459085962846224448323045460380468352950079068473105337428544227871265798596158623292073450625776192791539704986908639962215916349165455916723829329944387720617165628245398622942885346865986448164915209249355114028054086318801651435253201835009190009803487191992461889548883658123156964847256624343218527582411725982555038900592319890850802303990660007294622198117160131599199244928043072272686349777670770745115229975206734377373364741147658914487444719828088972730750119785634298368117670321335848186992183795444675343190237349260618231320192400021597356325225150787699408240375790728497135885358026046897928671659878545359268942348159950332616426327616855168962439075213168009228444529013194161915620538887569680342573282351213183034982225731112273791841289685655007121246164153565567534540940094318391742151685997264079262962507899208579250232011517720877304028110086035820251522107904324092192867119145076892185738484511684265196113392727595265201668345945993262457350235565827656323648635556125088368368090434237183179609650803407126481955345831382186357217235772875344252944149939344642016874728828798560404063657296727844737208262380425490936514522550690995847230813425258725889926127683000071024732759629027841236741098308986337582783486199147046731454173609570546057507476002025128392505854510616353581712074114758412664286176776669220671534957196013858994715272903457275950559316667489634819717183655385996232166637232492663140628964422800714380235688545986496629560592893012208497595628370126105851413579485352420048283890279682066323784457058010011231610106573620220012612513157490969443610299097172827898897976394349979810091143421096710859204737981407556243450726084358555115712278809213874872847483600575283837880786242948174528626295645819693455568568231989341790719393595250659993991743480004209450492116731010276745859591774125015818082186362575536207297152248477940379942321538946586139120747845383507949229380732800923676817901825428338308659108574032726979723889065438104327114505720060867080627051501791226285307854312876139106048784550551269109440272831630335084208054182697592907568476504743137410315980072548640026324169644527848608080876738024667838755719866965553978264122271240235039664621344734175521593640301269658684977979063980747160795223611033310880518156589178777294719181396894727555398853536466824155200714422941950319144633583056383116858393082330940633514527667084788573854955013788554224184318438550413709786967722722712938924074299869133107404929619669710958144427440975456923538972394754884809470597026090398946210271483430243384033470590760546000868762654224045266969381786582491772715368360553252368659783369599268383649883713435369533253992340596293389398396890074735766138584484073068516230562727054701331459671907187287480066499853764185916802734731078279458071671209827237079564166524003795434719447049784872888311375652005186596600929130472602181600523880002933245580939835913042572505684287526541162399634522079044233446159917812747044194847368016190847014880723219009644830675835353166832527109601432531919394058579540476337345308779144962823071636793671320417139740586784563036646726866920436266666101374149760985609892228460449295129462482132364581803822685365368109960298305169396712536582317911474531989002138729612878564433050543192135299425013774935353118120327107709063841425675458599217507756652799097256714151754410215220906218839112425786682133671456513422465388510247122299650385342238569776760687134121815237523637567089601526115537938242084275564441398377201355788245468357864720875949790897110267051371129124234701597844529294129327445332339576983802269848194744411450996376307904948606293685662662655080533950258752636630287648553759091053779396072755057027604614428653372949423359246982946079853985024342126443266319375759958992290671763137352383087948866493079456478190024180818411634827381928901642707488643152605235459758075603974786857280420410806477365204878106870027210903101226195857717313601377894180796667652101776020728866111801939378587559985704444074467306462780137528901044914749502989702508238793174497099944840857081272142499196761637906163689130653913116937355122063476958478272639713723960156254429938040709550779025549095692687194492271541258186989331407296200041297569608106931730431018531890583110423752908489571929542174940634166027916328579419145327886061267835725555992926906416918706248604098072110271770555733171326214723911429042110174370970636006779450942646807267090021274413682476632581807309464103795938797598487477017941539717230466857807045124284282217939432147668571539104258175163112797476875181939390262779115726452064792179185990093499769452505896863354387410561359341934397507045785190811092891919791904324813110305332059199891135939174923346815715588395156994841666648506731462657012569242186268083122220996354527839781538471485657128485930983625191424642734194010206721736872820717062603100340807844607233554227904003315171184523927613403686681779809054845007629917165763776053812011150168963661633546180751389904342863465851997374167936888041722991065809220448890167695481413485329016728223714312563187642557935580215327829553646316015743222364965299248258426230180590707538199326390631547764821761369116179341849159876899181064365474094568526627487550809138158676346333369284401863611084436140097766153825476120111407497058981315227863602696285047746366340688680930730021707887096217564593353873109127321677159352576960203085927331851464807686204575892904136291564474640394562571876652473001350152599667875599294089866972368349764762748563989551256537499421850142261619732527193660490105428526862535589264899518578068334326348897669348064381962531086805420371477337004527921998757461357895008513428122551810456356189723936045523545767994835455551263903561286967745685823489543604181729522451272939347898864567076483153970325758036493315785491883102712097077550320511194051882740598928563867451535128193631092488344420085190289548892909603789381649569300533065804120361556105059112026420950841402341063445990205589084171739693969357595347973175888699175613680802933522630033262488631201659610900151969779686150830616292293877052272096472254186620560876784327737676777368581107283233394700434235390921282448447298123766502251039322368311991501562212277819721227382743000047198995098277474144274565511249646306801345131764566939046027768867794814414655994597663757882118533680576463683223873727302052528902737208096350993301125261045554081419124731463570211395462652005932069570263912297142128104814258980979170784003490485035347079337279545267278211083940348286692451357996628038369257857136917694619345784202524342023745344970797396865480219449716535321399617778829035202952604812984279514902528198458231365201813502417755314278580316260256335897014393578773208075588046000384441767563911096868427967178468787494897946646006851780838705906032442249435941406010187733301945076371340309233976459086306292369719153248647784520575179099040225605450400384627536612496522923156476386005060939358641422747722662551762112035571173027167143282041332340716047827200102516132162956920986945845101727244652568452501011694709052843080357446256983982727687189939283158526292925111680659509075596182100204779869829038169219605950565891781180572571491388258412845375236376156088555466526399194916263115711801228693557403925913780980336601880495802308304622437942534304593496557578227283857060115763439960023483236889728010526199672835064258060712740042266518916710099240261679928321348839447121295098837014475884844683494213643573352443615010409224861338403657194051825986693969598174169943686972178108640681226391691310587822107201703472471152554687881371226832130097681668291253725036080594579082484540213989636002915037463923591958844291290270622747407417989403346134990046955771827895687807358960554932673619157213894497172070936617104773545977629398813945894028492922571759605530521995883237481132982084615646845010264635014956964426041004915136317453461133145789104114778250472781582361447349126728527005446087044182669548991308302176660893114565221588879054960259106455087452920535319365000922750626036832335796699008369537921640228474752844659694956227550318214374071102618302078391663760077272007480764509396789495848000628734661954250549311384725302219235608688990171854326682521500510310791890244213426616234013765141985525076203669286835659793476320476579900949848208139003868038302632405823157747525303766425065721071880073879716827201147742919104213911880020848791808199066418885119087050814659015575787111339974549295356586498619426319538896849033339839810756862545272822762277029987146053962368736975817351638961535319587921177589952079713472443236043038797550475778926131568341902390582347824727314385995065157587079614214476173461265228103115834245126078483617234331282474269757527322931444560678810684035960087470143961201410679328159645660967574157599300264879854988018600047209359074914023117672288482070938034425197360708594812644205632040542718623064525310936456740186589773522293219126394979868914271825757453116765831077541927396501408272939735414957158167942828559205866105736553943313663135356827204742189310157981460558865742728043880020903318937181436018278411145515508270399139243946109115270497331570749057168634883216805249828436852164515440362585698433676787173233390213548807497653968269763749265018316145383727635572289888890669121491317854965234753510377382364753797856821410329283744372817206502598572921230599983885328303132713550983645454780695165322516301602829286039021016591210547566238685489295411207420425674818852136917884423593192081699311139756766186110564852504345261531242391867956440244595860145431629574615424255510580661544200933288653911712681433154670328856228696193645750095174807964736398652901158390905209323028300904464771442021082469219893371938175037007706377142497042316825062414456071744921960189085099874515306005226679483109217912945503322002116037869958051175226480536507072711385852805867129700519400862763393838050583121519234547248910073368992759952395137406110924425981053653462769390639707445958705250606146004021517367613745644864127767493158638003200498255150740705859740787243183282489170844231732811847316158262488218327507155607649441022849015949025350240601133932053266429003577638896658332021507565020190113069673606187637562529443053718417026407270081467094658758491797532585171637612825449606426119948478280097498852966167843794785973815840260265025378349926142044983846931065016236246326199548685597370476898987592911251339872136306270312484689492603395302634195833461725188399337878480243925249210441292772334779522776329558844656243762998357225202323417091955123381546743373430491281296189959182870912914385556103338875321154765917380980913176766454399503610848948025894999031801212584418848284062595728694594487356718729251916612511588124212068032067344284358037807345499266769103965967061126699231230407392716475809070603233363935539118417720266750979464109736519129205573012864976564142117794529374071445673606370180701991992173930376803120684233307030573320074411957223047928165109335610781748635822133065720590970119852106241959485825322962149841836669546241884690755023123804697782644269642259007001687633251035557375397439921344813793462725397838707213134987704122461037484972218606962479958445246488472473974254673614066181015225310046119859205491215881810765227168964026835688907442794393288598316489816234729790369080717623781428409369852688648688688077924550955701624895596880515542607205708796672131659590900225301960955712724175005925067961712104050623146821158965311867741792326186095995420552953727469881248780363169944394025500800927550168276220094806598800683235713770017167197734549188382256893650246615681790792043125172823869102504572957344598772007852951334359710441449567466810747743462402520225178456199195588083220228857374417264839525517761949765754244775328607867507368671296500254661928399537155916421685557187126856917697210812292007043319245426468666946043891438773314423331917094242372643144811473622773850986364578305167741280343079810846719222420479098787911716240868725113666111084559960208959619137996947949432852816929059102662234652117090154948294243826871025933673530252537590983035079345416125441198765874394552236742641423990584601383105403762497607491596942595091485931721576332715558669113867239442858769049844547687125088350235245419019014520599730979533983653001822351482890235013305047250798561772385529837952336553872401972851830124573280768784480452367451774831693361477683478280911937461368282828964900578165659506383563199888752476584983039683721256615906759501462780954156123238710264489009302058960415097296637893476149705467519622439409567676330341704752670033306750952314191844807050815870735047571038480686320805463497981010146677246950033963591516527844183408829059022469666325565025493025868646511307716380169825243282644525590879317332405590273907042474651887389245244191587893465593433177889945614511248630164698155001860854611288230277940209400320888119544198332827834499048168683142037599997296341653077418622606809316094964255840176182997121501862830407273928983995142460248472071316383783410673368222655271594709095986561869949584122822512020203081597358218595218469803647666885538273814023909191858050274432345521837247339244244822988470400670098554690974555600771900700657233497604983373670251014509932052670011982243895931226213623726519199418733270612904541870351820029034286011239469656528641193783148468063741305224891373048727196944397324056413091358213730920781772989821640859942156134812599128783073941802713904130229111345239522842668012008881380046350430128887988124819942865587630493137019004981663331237917404128703635687967897804221798841118142977101326479933359465055843691852451416086589997571536123981588996545228419973907247255078820944848856416865556904182074028585893862194345587598074186775259660079856583231568001335080367548794705952286872493645032079486809875349712604746174178257025842935982369279155247127406573242569465247878681217170845108697386071514370424826985975633715286368527380705689700525708674055060838708192108983031718429903107558376649962282745810805214788886777313842746489171614154650417179123678639438268183195351440410104658171429076555518993300400204272976759096500811807128964181217020353328342703636117475679995852335169248794547602064416029934815843907457672403902781485301360972631730516505335607579063617242908064726582272502018261374866824609277717340860799331155771716029801785970960478475303659231592759288697964329663592941861872913595410661638616855044491686217161236867065495792968413325941151528844854797613874586753319797914449218304774895983389231504472841459681551233622353475050023546344188651345137528712671878512407307528350576233635927931215260401647834512292844648834058617768667613901304053523878168428692407523041079542855149551964347699678958671556768879346289288680546400623449441265578271829261084953675937068973198877413860525417241972315243070315368783772289969882156269264071527216447404898607214892513764504150076731050373564712495276742455794453294568783292891920106604735931751128593282323494529302326072136877408222171732443803945232019015905700275581520631267398677240850543895115744589813424067007947216655261439230314394017118932180599796238856089041028937935988034406203154000555520556162261659611587424976666301953073029762987540383174931614962757800902776400447228657218935178610898598698959704400909607130246101661133779525856396162251261623070366167651365868378485733843162555035738732598178149493638311299653923726425588694876960657728200655148164433796159248853884792798245469810497402266885954986432899109955388334699149398068945793411459533784702811509104631633477821833196755608760775190339890141070641380002017290867752587196361137020995073634142394832961424618998303357433503988329488037452208548205180333604440506876772731916710126854085340430552969187362252023601431343478773771904097389416363219757270695732486020080197765311726125835855500295930179252347162415224416042932122676086091700657417671293591444218524686708497331688081410844389174631233911785638875620520861633490500190522074985252819562461306756955566554010412271296224655377867772292734323352761113530256871755081175040193317544162537795947717167557237236327922706010571978413423557644678959521245911566712355564154312739236387739690464856077133905541273634940205171552632810077657212271849784101606774102981963832587391117025656197450277672330780153232745197968885680385565740423541157945404154456313936580008623428868854473516865219816980558522482363736301911224005030310984355457330920722613728267022909384402019606224745872012899954553230325964438440404461419988211773346108043632100441144228024439887985657956397808457230618291286736299971983245150207060138410671205351787162816961058423898930976093668772331026686246681189030704030629826790189103589510154918984596433133194710484380192167983256155953160794023609778222727088619419437462774065522588527894083461248840050122708553249440123175677555483579907258411058799308149840996354119900523587288778252295816334786280178230033459973004376534036012864533465225081969036945749083536463302489045924488711116724448697258636458075735685379496195021332890381199716052231952468493588653121597136230717765354548788006949679713313159815256753138126758582874995178285764112102098640203129665275054650602294709666611585875315133518965600369261642979946153660462648622128572276264066417614085539396252023663422938300659451868029516636110717119585420229622282871891197954279104710038008066086056655157295951493945916121979781795590130040856252899213714080238020347154644733711697523291304503867647116916583487924321344301712044984701192237935746805611130526538919462410434424219881123771840240860050383040502648579970666686413257053443251041308816249081307476734698846322401215811964971384127940352094036254051210662350076337618213157212138585807998537548960702797442198958795175431901730560710107824561546710823794947439053682523379251721164049898299217042405771812866378277350418680968757124934519478690865812787629070931470414411229236503589510822596129220400074547917923930850722860522294706013499500446404727210824379183947114361934390798321373617714367550815764934203844467181394918904384648486851809047252303193524602994227851867211994740603020289965661597636247989740815237773823289805366493442314814113315682131516428286988019761954567140539700020132315045649900593657918793499193261189773601190711957618941805332716455685206514193965146514767475312127121779509876297572549509174706337617589730421561629674971556841222778863570024881261056151806869377112389726188715443358950341681780195042155374293957076046604929829427576130590891222832605476130721407595741356380217676975311053607805315466222328098013990111663367131712343587311229164504528709523797394724971960132429367601422953248106064485631127171007836772454570682168841641067997561957657055265738481650450975765916846958326719332984291853453599531372316527200550424962220418830919472866363889544319943687519188409334082006239268821717448340447114157520536678456035405601218719525515545409849651231887814684936869565202571245009401579012449038427155437017613826332437646358499354901251019481877820149636108390949292824091749728439284867708595093055255187910497587451601127760277214150112849167723873138301916423170045583532340033470267670854104263089186023530265296641172435273280886896940276312429789834075182561317206831635415100952070601422994382298780076830359909878832217667308139596809632909928061557109342551003900457596518560060860026256648578926202940207906806765169597038539865353021252377745237833254385004221970817217777290541480432387851954298504727628900649156150036507241965904845650756493720666344812000693010448504793129177859606077480974013730457745450511874672876951373905091589204777857827017684941148384176257361436753599853132501287263657952904945512754891241607532650023937356608829550590270025393215780773781888653165265298464058862669016620840896001750626755396923838624701910454045129603322628655572856280303337975498859943713093417318520203630221730061326360638992775058325865232550032475102181921249275149054387813934795400411809612367047974777048394876008349336854135153855938285575539082904215501018990945164355668786329512304448596810754863037321592959525266043142532580806567158971655873359861915714758589122353510477422743633823771024163495260548489520963761157478306222737496068323375170803680564834135065258517991861668485314377241686243395979578249749140173829926107639698681064475805022831330771107536372934920544371974444836742978250312609473392338249559607707023570365141934826316365992599902947660048078218359807206050869877452181851918039045403740368416214585141284852505435824979047219665945374636060738126369298435553243461705853528756492417995789671658486600198861696040503322311084232705959103612033259385826745483269529572944900895482661606858086610395504596741282920221121952866948211363609676358991290486913864553352666735023950432906731325192017169805616807929241647396412884650390176755730494662953089478045399494897783246860032438302396164513304767881754823932965542139997455356554589408364473579769903224162817745037627979227690520322100363263910185565190811107209945657870475396735632082666634489944409195049603486555035244243759532298100323094661370790010082672182355581725814489020229605984258885805083619126032332437496745243321851681176440479239832627540718646527285727326501635539331798315169825535138303039072457923471148119852340090180846022450756117834611604752092088214504786454031897786249088253467307277574604921075418741117246394008904356232832197215016284508720885795142522899213625509417674523091923519937514356618886132305462763813390543023308828827409284302257288717069688810544105346398024798513119449033549913025434536494656602040363054814591553370893305994088305809711116397628105595377517045132266806795281626954488622541131415331379421738778527832271951815855618727165407717202820890083915946208312075023785841991397670879918577046909620885517927788194819647511620111906228014578522219306737362235970791011474598677564045905631895640619482157102628857474707956243843578763014802501684732156856747754173726930831066035147865611980011880996497401692350054974233556134534757654853498338564516323065236197347891913328088859341606039443995169466766773539097176047654018777070912699969681023488541776254011312637255409355748865161312088535181236343970505757532292539215949421662985060519531006566333269896903743393308682253420903856408573251941794327978855805947913081263336873615209101751532696095329831572670450086846082043211629357242531024368435595493087300114899602983379486982680714423698949340288067446552189616921982509557497663322568169811020884577062264945073366526812950170522211972401461995539984532778327412076831000339631764581864631573072292355678413842795214984257699325500135432054034445356259114694106167788865198985248306073381446938036357346186109070932930687819341572435256867767467247559908436721684948382665995841736893703202288529296434811219373277799237283820759654100466451726902556192580748426507666160736995161350894252595017362579571103224949009029535573227662680322255512020705251874661754536229617841114862533144409332954536995485666046286378262805596873889737772096962230272898956045470956728645047314878778108836159475241450129296595089459830779548849875852935324063964154774626662684311058230028195480097602791999969798005023534460725775666969808158071276245781085712720328443406815353566817912712084448115416106386600677836561574462612720898949832370237710015027180755813138031586448093762895304432319837043569255162667246575745618853962911104797821885910269647730768542775880122528774447139244836352795234031723222746007996161534130297491433870954959222652050640456209293231682057369909814008386729954008596232451878114016201259405514595300959548426981298772161364734624688526144698292979186369945706670280161034470113220071775707622385410965899593049318897505182594197560421846389033341179701454385821257175515186331147927098277783935190459191058001221951059147538646859957308648314227815322904136967784456673024323596713515362365473802126142235451116845729147400610270392313055057530606699714143794386118680846573776150328863013165119746513574197820363797088464654939696132406589331572497868653012862850081030852860843515017980202637532297822848931021819880284266302754556781281348155975434857883836815037475925955596547182065771425477581135999806576844387899575278304591737802351844612071543929579188987247400169054595375678777431306325270527937990449507014235097156218963253941055254643268862196820150808697326616487320382451038320336645662380914526784468821668838249409237216530852964803169176688002327485486759215461101841145439173679805886051014904594257625797603319911361341354831721729954723041393310900998257168472882316514845677806952320817740482957674370306030537871822555376039001085304410317229374661607289841343282979700702390506701923477317549747623161402955303382109357457941456058587950288168121013366709178287469221408954730149378652361120493733040971869239013118709345131407824773017733926790118662090634963981595154107275915860148356441037794765564433775996282036839658258460661319539561262066875228515706936241071989614260030677032906877059457753436620529194990212224011067304409234493168653173651063588388472387753897651906805262264383487863360174396952081605606372126449042181932013054840273478626457695502532363272275584747051347546324361999574522068855813028477159757424051063785613139720150632841807873738380286457539331210531682239218120486337280060487282513599201754192633023673155863524565586024851044515488162214969540906861066539980584872655180928592796526801966293218598196301584556545306793576094332277590888144899546902941608578653441204831372262490493799081793073958327736575673311463056853990930260058529121059956484160041579966866298207685709136163839865636686527555930601168831361803635630028817570571374219805577348224224114316373980139406626510350647769607551127038874274708035370395940414305019162237951588329841560783392308615394374370423416913477717192748000823003030213866370370595927402394760901538437085060908361564872962637974161670473541753322826693377453763041425386829574343757417505237263994361758949917089021166471203560122748512149001942957917611206995222502584450195231600619546442071578718941211362548834203961127793634255141758148427562129810182671180472112311660507937456492453711540432045511065859522262812278853855743268598869563606891855797283159852988983935594216234355074847008906404054121580181874655033234876702363610016705808756155164942769857065898107057110425573761023466263473208197474695888534911563216809615842156267735740638786126481950415087262715018572592647322866664669805893151399575350967033652649077921123771996772458641287821724853868034709231239393912313376976056784458397009295835706178132008670806411053040947958707377450004078496421867232322157707984441293726925244403683383620679059968838742624752754943080872916525702070882999934945397885260328667593670177739303534341436319232230164219874839734807844859024554024483450104107872378908594771019277028523877418318307447373892323695253583737740666224580566359389196239147663819853491587310605219437994017447207477968844548927114999444566587184340600785376187927725062045960369750430846361769188822954475328310549316079124446496403774887826105593293345286241607982006869745032810665492049305657986107622233209402343113416655607499677810466812381222079313373552270568364658885120407045536811551756147730197771703790084634034939578697895129995609602136668584047803938533394418073113180334201821263773638654573988560864919623257853954317824401191402326415685737914838778050265038985963497227660950487655857960381160235261943112812921168177515978070839936324228095637801249686156403812489761990825946973198329816456067529531605171479385532087704854095143008460736903740142434729919742076936815486708439413617035006056478322772369507118059014018843305133466830781897263340203911481946965357201321271912218894402805492508369842164825710795018815437682956551016592519279428851297647865683762508220684846979967400313048838431976838865254273242085327866605183378716800020080468075023600124240673193707625686430317262475948243112423845224300375375022651433486381509572416900889215880016594574266420172268304253569252710358072630823346619800978768065640004725551357467746178043729594052287671923163856890768664000851251593889416272765232692512848696119481694845386375032898333867070074477152455682884951941156833876204881625293156585354008689034988807530191472772037604898948527050384967881157483529907349152311332471117775877308600042445421868352767897132565720105988468924038249941576561668376400649683080172540400855300442175276260406921478207785809787457441591829136377492904407047232659702396861398635068086856857870078293555299219865091341604868399234835561227458885981716243611036013487664011902987046678076205828359278444048195901244513824159233585109869985908325015165971714366202439467508142561512594101126082249312003717626761752471444567154475964453368619956293017992451480123879285262258198040160652450192845457901332532859528387900641516213447667624626176550985616660822664431692329786345897673787606416546812269285294495486181203801373667833878076773960767147290977877653633564119170266510792304893548466357238532779979132790646892296022401958087474584159805893271431359383592140393264768701888686441063728085769584289437162737825209024067745947408985626667143815485724895241486395498858933783115511320581851771411868123936010742420900467708032698135344475857489543454876808726292478230858476816744569873656335293972243683571463233395861654245459995697988092974449345447899626312734846328782666146615258226183358405720864171482814512955794715014448484676349971357250956161461844258221452888276583541432946081588037671872858896061028567804790749841104531226322313382293772961786508460819820643680946026220052987525195377194669560472650808578057796264881869398667319057104879184175128677024729798485410774902800433403240637696091259027897575730828539597819994452173122497001790958831173555961521261192492799468840922727572510274074720575601659023709075703211370520827449471974971041548811254982333776669225660098703502677984475869993946568659234810632557932843565465975410882658737693158409287285522179902319171480829880507436390666247174397465128407184491264934450372606485781890506205144624660604912573842829583114555711256661122721287271246610357418837951762127411859236598647380095047986432924868773631035000235245215699493592318262292786725968324014486204080357756798327688292454629271446055522965518791343162981875509367572168637710605919568550280109307165562999706809586800608263351238533221564566898660343424942184536257213564336881252111343463005980280930285107867455535700259217727387841053825705389165625385733323483938257581860750662094208127045261532127325067160382059131683726820589282473579299297335383262075598677860858007061563609437758204750629932557259025959079907500606103530737105959700707574910807060547887036273301582931130729955600117542979844203733644387499358494007262461988602438090115865614272077232189668740591050425153452462661900325670594427458161943753297346703648463985954346599132360512449881905327948679689799188492194321501614841569668552707292987264985722716486525853290106757622507072476904988685463051639962544453080815222276379756112457712328493867973163777742904094056040485422157477341709171281297589324180600873427038048047512839489650186080786019983753122526980161567944726627389737459944751766587790990557512619143621588395438972732577215833992560580645341503061652596914511314295862226402871610687855572536731120227529091528348072709968651745731671000870357410477641978744558786118362561788570720514976009727310303529232252652937091492200748901406056532666842992372989341839971107559894662055073214343942795134788339177395944091114882118643909017157474569189631216358553298871199290354050115154616850823833085837109779425033461091689078865284631614281735857912996551244456818685268108924629392956720642680392188584330337640690822940103344090904692469707428562021948281618811108085434495618417328918411221959709250818191264187119265361881219912372188159989352339235727904092843784101841050654858319694074682647586431079721306857495184059207078942369325866625411689700643291848607193041544698393572308342733125205681669064335139496839318798685691525393520703143965646471716200955326910886477207575313927133085970185063746440777243761765596465800729036911816661466786434507456553724702912462756360736936533382625998377444336601097731235487715419717285335251262813984506864638544016497471986312221557609276013738810279543753590561051792582201340111779544917373827177703118797721804430301947074112252495312586855917301912927050754721443083771768190509280775490406786595034247533280625127866205587701178170057809793684350360895451898663262146574307718943629728773865913649466156259449613301753322247824579289539497086669451193226058678256895019645604178576970569632630312739460112165074642161689899525140265734036208209537030524683949091778272624342012941637709227699374068720705047392324855782772217362560588773509030365095931310140194686284851755995721449387999208243826294733376916749904887995660237072656739907271774010110987194408938321072048293578286949074888780082591406022144142057113826403561054553511550732174548982518537639187747945400052114628083999518076788424484788387779707869052101160649436755360023358548552319653760426545303869705009246226579482158754004365654503823899567191896005673190216724757016511803610418607985822491822651102822111222065627241287208963910128358737219404350654336751276141193550578667535986820984640864826032328406333473009306778491592550024744929814220295993614467193099293776214898463044963913564525437927507885118097145714427700052852480133431479473517419576030652319400191583114312820140842571734991582734241211773252314017504408896745458711655982354242624222940440333424131273495820590691659107736085788782546266219766390145573786336411355789178515754579885948029822027032623746873784192122796844912472104084245188682629609697834273354449700802544038441476422928197758675896616162454360035528452577194439180375356509558262764455661884635332692464434747033203612826025143432508608277913986361715271831468078547919647335450870225744884782373621985666885013696508219524023754215400576474153341271171715747522823289177785390259083719816266128603703731172885548129573700867676297982609811325434928149490819000665917326042948100036669501039647219361503402002291654872223130638837963390632134296896405419785793301698409677696921978480982642362491337789777451484594798430954106131013553816180198502284281152106589819657652688670701983916884712355908469764952127308914277791151628272520236139673789845087446165898021265104162804914016908354124788178586255535285708051150252533785565275439242775855349178439923052581603996576773428185954573329894009335659270927869857255331425039141340515844733454289154565693026039501391566050744575348274661750799802033310453864165014916012112000292335248116020336916408739881910215192990036622596752657555554093059677711056005468165575945388218457256470129102519924279607216363541898078302724477464092624992665815058465190629975364505764387034017648110342465480635736884078108770627428297334831434391823589209968356749806707272885551271585812607352909400459277240870196030526613389537405050914316150372652206594142142426562599258404705535452598545409053566789062297048653124048270289350699877172270546225622380553820563348532863281303680776283186811794479267371726275769073391867750412895197349000493917696564911887628024095764478672911155859609025907374650874229693129169081157505951672170970618722185979465187350681224129638435020564364160488616104617546134896029184716337182806368016863699974110176767802903213951567663528693262023907209149136640248196995631416755202447602657388640506378711745738258593570578125264049331231559299672813049184115499378502967021968333541224775454192355554755704364387157671767992639266494453214789468786669347385823241783317548574167712169390750350679628191273762612741234583007099628265442863936191614841611877694061711327644484841276068604177546436436055583837331559302267708645131268428216934576787210397197723527860297143078759595676960280466134091733462910279811647485247880430161731063806304491024620729681820515541952576412633129113101494127311421025313051273156918973451175224066630899932302113754283329587932695118219494865914955418098298814389991586060923641895241578136973271532535054021450375632521255606185771859044936345065879812322434602477824491411171392619382148576216945352927098400659773474338752049699410345741076885770440113576821106281941404329248386492424296178997964923896437835917287242904161086118970718179924130395926345645315683779405568666329755339642595731172625553163471011587962780091601637540260002166084640652018879162067144712580868246727953869444013181848728334992384665891234154352350227759985818353269505361028780922495045804902842923282487619781809391511300325047041197438317697895005556956123079913954297556333621177090069993439054013974836896167979306629002979662953717068422336192877405346873564834010906918427376375675709879269818735153595604779570772128868949477195370494473720434991742278933146926608048864078966693372411278007909428378733208123938664771713229029018883765175577392122057975417181512102838155281016096839743715637849723217921620843575400926820856235806640839584782395198866648128185903694903582588881676890287724605824446715298627192696312194349882843462560965674913125217125374105171720677531049728411101006323283389301423844396108580818654612767363212882951743581907235779437026889159971180534036910097311450686348784608025129744372944950964668269869988348172504879990605689127503029872283104920628619781601043059592906522796985680828633276332764336484330315804939897927276361587812551835365276146765772860292127111955592544815863725876549739821827168393897068130139262462878504834920729745366502410993258174198110845463049515520883644337104198968893505451524297167163597060497704352769650197093988212553738833881274856090753382265329339470194451342205283892783526676142580029894762372790456849355448770309919778999428863348065683226959479339247344369331922290965701281500962807912318678705082147789931264796362845203639445291383996656972283366233098708237022473903340045300830560041312737211145889287195010031988076097926861607636795377419035299509951805992453958569205933861530746378517075763816921800464665856523662590803429964709819311864775623857354707057037645927313288073546567585701282515351888815015575107888507742099824872598012650243398790581677213097520434372971123350951086482786840131568421013089652939358773077292993376848180556122002698951270664777999726503335130433335741966788048614911760825107353941340958069063126814734087777237247214922529213911707101771798622615470727945827501053275541617314612127225273857203785257323385845571313681094811120196513474821630528264640564620666846092390553116996577021772293239298582647817279406115041256441635336226530070283712451173817042565136662123559429953697899523626069611568522666480157971174811744628103443407038765588787806033752678908465505894265386766554158250325495343852417379828786390092084705969348119130371180411979403037217465840860683150225619811299562193619805258188611312201882652866049062217650618224510168127501390997021499719259879668076991720269719907943311050751650633158692070640192197245375710059439729862298583942479345914345132195539852423215890244736453605105760100053920865859499566444415444916647257497176908430416322030682476943851415937861075037801640270417029997202200897123732283352346227619345370304119507697659589144350335009903227465836840807852404315055356722298212404244825321653807216707197783822798349127923910814594216635255743197630301793532656794786997141727291455144163062839953395292248742388169557206617780280713806815270187680807466227852693623540900451941356119000958058092958377637084832671918861945932128190458180791614137654562474211485933157547569959877269910264877075336165123288905217504818569616155702666020686784131376946854688070155927703289497499836956969256478380677553429260439127632644727746417443734552757341215402844978746266027321084128211821704332129912802228103548303540073277221569470840207761690771661677160950279332651334912029683743220751831712759824461468862099202717423843532482682905525615613443664178010821301451482213444201418729865638496729738262632629570827250148985223950012513750000715387032556872905957411827909110483704598195087610473500405347267779775068550498306273035200648955310891314635589594486853830081761871643709388515599231826218892536845149967158899146520458626869216061223695324636219858560359381640958804507520224225618146541390898853088979507011743555169051087785562085777731477343891832488252494729569322330824689497879960570804496812579467482891359618094791617076614643451097379379132215070122226611044142551666918999536837248487735441799148900575300665817029622090623265720358070805666304727851415464024425528550753707505472632658743004655390806996936853368652623928525816068752870452131564193381512863040637991988138687875389408894087069677531687595874898727329646392514877441637459141121318282799229232498087805293236371797545776215249099607376816775702758111889040359015480482616039088719291083745616683683619689192511693304967454872095708674777869131414572541355511150115292633157908459786718619140339774492378616394388393037093491292393381469598978871050793943516777175646613248244055888760656263725317526645994571060319648300801570409423729134744603352663160711754959510654086091586542616542548240967015813300608902391428316770487859542107643394769492527690551121086250125203119563810830340744727802623521026449107132758305029792536639365783138243188074191643379088091486766811332578513738969677411437935737007324060303653661969421334336685931405368397047932979820534962687924718467780389575699987447354485704723595440206757206997770480766060414275778281472619490205780049802383844072984232335327767886168447765606829945855974944901912821606783389302415883560030857187735939792280161457150819302407276098572659150405208479711088744898357082650095821800866691022076262574507378241519350988094323432472702400489367866883427710802877094834078926336878894144235783686518602097767382593997203659236574290320462799190079021306316215656923146404863418506480023699093512565461083533438324527607632002128661350738290332759291323833775528697601643754726082625350175300405736448623251974456444824083706952964462467720626113946372750978983213817322394363140743266336790293313387405884734536350949114152267220401181047961146993966677958936478376805973532735866713876820254674880390764288901468253360776085777935616506689879145458867418069033254754924219873677010620089571729810391990890165158339025914059262868195908486113571317397668764711781948639043553856080777075614108914843499502157878294216038997186394980260135708562373484363216235762308669550390089689502379207451965232455278702183305344963607503206458388637961041955978589950387588426080651732522290817205457431922156230313938871747165596258875578751816870969312213043488393649875202180794173137580898514340325243624406721684249038146997074252254307370089779897795212673962017608693762321071955274237694027010967613696136910805000759023906280365346141621256195199049553773549792520504485278350715016096602366001673909109316565247044176062077394636626693086189286425041676099717081369050938252353740375644902555410504661361998393898772490957828001873880092808011476684645608348319213014337623096571408510119383993667807858701343284743241399682223556803397182278954852555888191188090547055897514807739277453631401406770994237875164484034150161621836841285420828651150710404731766137580026670568103745536281894633114442924784807086918691659086047158687885493083660355337862362751014440025484241549473800314893577865572941633280351913016827241205703787868712167031744283890861906441951556785739022749937078874875165743368657631040494064110995760252694554366101453124448667828409398131012333348027758671679987020564370280947843264840069649296176040985169290646435388408503518777846410232285218157749889568257119281068147739954714406030957845547404050560029041370103121203311363479699373824457698094778902257340504845676937080378736297294385820501921436322773761790875053021858678999502275541941516318762230955388129264039687931151205782431805804059950305663060786885780585282918055019873031187785813011639707589961758721261524931094021726024276959661798603685190379564584384408820518248305798665482415204381957970791279762632144643721409029469978888789674045655809819979031710091128735904508420834114580176926494839535856336377375641309208896310520716182466946412762236363206423377295388298527878451905802171320182479892357767229436831060359158959373032831529175325981758514959085190632077551842372041696974437918370940062701955245249123054265064989511736993585469296074201074302371572838980086388062624159483968494716254789024330952353040399709624371473861310552250900984020310636684733418343545313324033045119878576379648417629093360727445990867863286806688144246187745863469357312036627814451451176445896496938547685006931643884429368000340590542273255965892217422135145086537132593507553777968865698243309394336865795758905558399762811113911496320050109155463416970256540679114444402023562573111514819415298732773358373241759476920676457944082101844271650841744493629639396147515898632502056661518921156231776486495515870496792718650186282906209902204476241555064550553571000965872335921933013872898993286002642225964457587142431496098602585617495906595225561634852959399920277245081626988746448579153869558801349936172717633433753345916913784147577112714109331957076170756299254269423635915489715599144279617927114388796907769151568301414944456972858405107166992159016111185794495304157996510698649969220715209427430836244464146460139797929712391194675821542845571614614821642220555835865968813062162625723389905840033227862371156465152868681871064663133173462165416653811096084628817271730899046589263643329579440916357072291993076076244176797710058016972548793260232097795414302913419204482807179501660192741176770850505001352461435978485356928538316384809466372643672439981114908907684329361311102266292985071691312278112180841695130954305053953171187411741633630713430377437611307123079909170499954296271231801303551634375614227536319651197602020134521935549832918462847212874062778539828867845003514498471345409027430639082963121550244190809902591229283039699848699798416300948580856371358448320203204644972426149025019145707058334321067563150485914902103257857936996946648588108355427083605407224585198852328178424608419457385053518463784836352118914086620201835500508177594005003099171588374418115060936930792165017667677294779846546874541654340520460252606750358103011044788793685385972917485116102206478830065201056298464169102672070798886179618818266091664740549852837411810044113408333169153371524139997977115184861845189886894348589074595849821300630568285179802745653847242771867220502366907633706227655158239507704617446583965523896038805832595085672656286468474452572530991331232107105260518473834707732669241025149558722659821749145887084160594372473299123890080363305340012052791940871085835503900175356628998935687897824136972479772684062700451515743480235081150610277496492906531757088049407871624055562146983385796971739063845918937612506316567353199874659380524810082284906747305479122930832840925382804945425265589890528910897429909014168605097104514256509834866979385274789140574034008340921323608136146169188627302670791118849308148680233487824492960056095302979468031331158986953469311166017193020381129478011825141673391499130155775490687748632404204567982471518057408154165480853732672368863179652223502029779555435841670028204927873379264811880471706225784542602363407680117956191156136376631586203334495389887336888962729754763265987891997514049341820604339294720803515410100819908096916934600445000164009041480449395390075859767730813815874077401449347625874504888511681605236403483061158712164853209252400300456791398241996107929506493205981418056896318305467920974687215971575107274731105592071388784954348698060067412510189931896525627264460075164639503402556301410050959567944202737372667499780347133101874838565721210154732659433297866356029753392919713212198964960423490942005213637006459073366637395214841742673129146556193311101831220584849470279386598795036251461921105583264829453190688011539142694998685742264754256584484193432197226145890982585944804767255128800676587257665889954456224720155358317300309212487441906538419647195378108508551048506097409878187993760541332698223389015939946899974730221131885567339425433532218694449241225322668577031042277424745272590889112761851993556955776350605928018982928499092142839073881693029971730832677948296351708238090397861337559742939518097591266147247532682397489612328518252522275715131925762297859032720645152626049416547960843761055075039632393027554057924418463913043656278713304574038258676569028021435539823483913407457052874819492275443165933621671390593941887748009712014163952759542779319918846124390512357205434491737081461992767581794384513174801969251918257631323238146238655111626383644777514278345704856147739466943966190871371009778895684119748061012396825885819378122012014102327650052423232378508793141498464353523412191908123847038952834730305282977198344296570604344970859013985990561875403664554005059201906835267163844524056204803728825830067771487993322560429654938930887691577733989931396444677325451962454129306930468108714822378704943812482431499108750418176975451535761640735780509270530401275347728057126234477988216152941754136601165844905885297448774908081679572330786162196929763940926049612733893531081129638992255424166649051020138879958731171792309688046209596514054043683201230580439804989589488506389319911452521176458533486571358574915013764585980406966457730954589329119219931429089217412748200301989968953119719758711069279434903916801529552187915177557453864859781887509885877790523525255429302190575642706536875435056526414748919998657376658427062420510449636266827982429286692113590028635442942501882755109922708254252420363409529840983088989999768596489020199236723666657162869554095389730327330611371711143683753774450470788962670740784311811351569837702506028056243449356067703751749117552676238856057555789671818702346981215475411471640872249309681597975348969343275227602563291884933552959870173638279302721448805591435629734390320227467394880196605293161787111481042137565774261637265618766634143011727345009267789495217283984820102789285220470242145335380165467401365894565589166267948355548594024708411664057073778377626259712152879687183538070828776848417700877616220009275983500658226033633442156405722053173398193027825299411921212401504113670069749155386123344158322953296412495554461178160127536817918975946504581313129258190796227661944486797816179872226145226398681510709863049769516086500791637971384668931503792723355378517322234802654866697687818212887370801134438937691809714661420278138857618199621892724040040223249530862213561026420511017943339920204192708891257461946289551346325663494312188350913103309515262123504736939427161911848050026874816366259988568256081070696587460728426510936437265074694999312035815548860665234205139626023896288473448182524073251792637360719729479990264334762749813734996553091123732377195288013484790436100971853394142211715576414804170899999013749539546639318435730842133069590307412492697167472979091992602174079402727558760328058583723306584848046008528966259618109944773600627583944917520716324314632977699097276818827266394987252101192170654011496349387630794838995227733259257368237315191128256153165441124317419572862314775875053445723193615218740926711811938717051211714018252065486182531658032393541393023378010876422672074690061764660539528099623941472965311688836549913798940125975825966768442349049633967788205595709604661649457241961707876589443050068953153587152897292015851739474680798390186993315802888411568066758061597416236312352600588767464735994129078978714747600412854983706206609945249713720183034970337384864020500376538866011434594961655729093974339340062786465797466808351262105039617764195812390046493228569825912704328974968393498354546203994880420684259974593083879163103918025160569966395253663392317565692776681472406673182282257676450900905012821804047004908760921070144730157310243280620417419105038832586028776044001699995052401218385265256710264449058186016137141290249074252107804805872214160782186510228793319764514305593880114470063806423184826581522325117727931188686327241002003279075090334511178511935172389249711257276697169596892840616531642297808873033326777445683443898486351514152998236746754604762342746903237278906472654816524563802454705041064530929587872961463848852162457460361912300116650741026138724984189653232234857707463964175337674114625731599423260897400334974468189245024009985082976411639017435959743870986531009604480377708913850374463100036694460247071273233913687963820591391116883477755278305572678044750732117299411899712027950503598584136211554935217407560145944851647924029925408362758563751371015386512558983747581415944536856094803677192554289526260382680100830297766264193272244906256540508457536022881624278095443733281535412064674195883246466657916827506709365459858886048698094259307704712353043887378902246093355347456004229743228988164812446346986380432257567469793407279978097102527843286043226118025567618835949641792909855186789120426501247801926160586730391926972335412610075769383922084842333426558627009016294456281302808993973723393495290677250014851125538080454179082140128286457007601804396653566464877639634431761808072440884208111087343682779519331198232103197929455639673565596899927989768812281651893754220953007695166073852446345951833322852694508069511882298484538350239049407095880300301908392130026001187486892096355696092829172133902290150385767372566872760031774196360787907342300735037349552966455775093875703478116607138117875897865566897451465056586411646900391747777005274565690795424575826679012700975556340371287914901156596279377941653555596308415383079099968977292314964109634019603015796051373767426148410399261354834165966987087670693700762401950431654649631650114733627731739936590764384678058877434646605890617183074829454379412597013138178712055656413195463411150294664212168902815429482177973070482098703742186100594587465302481052154089029174342510513300589587035407163184826121592291898580311192131313665156684557662864530079006441103090389219507529071685262051701291576776849481653313326272743236933520900611428183030903424200181839223311479081931210578124201624626474211979758365384127772920456020370068667466559547033757972742279496901997347251040477279878662394116552075034267539239128280333138527906071834906893763011212946658187636573008105454195763834797624926601622136904365662502804972480865953694963263047421482830791703459144280212017717047139764741472368093836818060163633121322358597187982508269743355696898562568693106281833576664854911877242772191866250627084949681318458260989525211566412133939641268895983904677747860613886308480988058445384544794764963656459197515929367482926264453149751648652996569622453592293193818459148137499581887257736461111464303497022965892365390233970055613539131767308620639142351598337156741526469535737220620037936660559894844165265614606147634536027381470407468535780105469395251319415571459591070450180154289949123677483491486256441859978493362747992887871520341498767941135213351464151383523222645165638282929980930036800777429438915780700284719411674487231858213971603233836236090853825004870159520925783961950932058903322733962934938312642710841295010445385111311483823951570042519203182263893026469018478353095229768843309991682429416073565035078570913598488949365550026426597238771465112858053133068274804329651714472736191262155587389012174553401970594241353020841842447535223590819077169238525002407439154634672773377434363475547465582489957859442396471720077405656640929810433773043549149103506302240523796458446914637282813860852350091529554593248022805761407347114015481013798721764627505914435135287835817775984346385261759934044111768304492556620121745276943900295446348506326751332663303232781346064520623451709746129035156090281742117831572690206800334100403861271841682157718341598976930934503391964421716115953314902918004993385747539485204666587047526508621268248543770042589029028924237800720810149270083925844817473334886704664671653130722142095309316606636675271527084491214219188524061423160917284514316715890221598204766784666159028515278297984015725996702018617991974307453460423751188015871368837762990744464466481571932335012164567125950927399361702516051393341887080569978542206289592217244736140231843553477087022734594864561477237338101047242453499298245792059678463483075393499971043203189299131177691767171681184128483191993425641136228168903433563858400916648162431082995356218924072940038793530532535586719352409221370898338618444538217858850012490766166602909708610004620726362305467400471963828433265996967037948226581915229396383053785843936411136275935124306903610602313161677261552040555407549784999627163325213423866598880950702966155426266826663930681479800556073320781518447339450791847153992683495492194413101273247400141185872215216226354593371042936852224370950646165297694520232257229313322081057530763418906406550784496778469995488374485335020240600452318363103347708186736063214857651510045584247504798286491679518549183074753513223102543163350095006742655023547414303922070428119420446124019962908203018959242980155973956097550095217731291391923098139775799211623674861950828153361047036004921156810474079515781435499557254601547884436828574450303624635022266124281864483838938078918565367696959063726274657636342481826809426750087041101089763199910908444362734948681007129873755394556326900473334090180086864980799664097989565021083325137914049942500541183002644672008835563964220867679770025255861074845979567121410779508736523558949167357595003626886266354576497495746672313058400869081754325582049625810743537614032249076497290961789718502227183791418090924180867694989163254203666738876810310666485308810305652403370855189490467696433934596281763093365916619630612105944967526615668251520391356123590031784026359900744306904290157924437513771645076383981931443658441650470495631915711340385040861431475432574436197664184836121844984870569923986576765954855584595112443393146474088098485017483525782825844432818515243934903088475205455559517629826398137201465591803654727639321421935196055481265213695248563090205694522900935061657300992156987173659890159831373698287257586727140131665810286306357313963249179813491308181405696171655421416700461518794766360725401087078805131954594797234851351946003680006153459942131952017060592519810001078126027156344257156539266024183148429851228349076326308016224486997550192706857243766017498456257532242082232497279354018376134419162496739007879794402133803240345498899878768642144661225643473844063170289853612893305631232462195296666903608228688308595814359976694006604042609225225367123035276849277297042964724883521605701552159188602764955789604716445237798212003594879629000693311937543112640030981324373761513549017910597112458649056874800126289359697428047756428616950630654388395492962240851438383247909821528760421235026114385156708681851568212949429896059317627876015246192975089675345591939416480472852766909710189944613715968743311012368624675918520439733867720243768512704110888933654053375848209034552526966542926636638281900255144327542074872965356437889610926351638364929068972574951885921555742772083743361890906574941437402761937571172026514672057321167782226401630144438314390392768820259737435652054304336627811734094364435695416195737117284674758027671679695399957679524181638731582384322542221981878447033691232310846477371924742880984397562512614426716128544021137344197440581992505475964214079843809867369889778205980840958159334375638775118133122370381417310147728406865317845168686226497316522423284752021056705807783774000712197366505369415307375929997787903749782296447415925122861366812632234978343776726930755699159273138460818106280994830161639540388776256876510392139134689572616256441095894224754107680360723430319769491716063612355100492542687962531296633826700075073502076896049183691095482619292083106562107831204403320449612244305014227518435045196354045015281596306171143189119755493008621870815108100738237229961047890395668980748709183083784408761557409605929932267445107057051785910529311702777389297537481493410198087893461004176538641268363994873047152611822318157642060932155551878766069668633668966755391280901182281890099391906281838050574466926723855896979138267433206349442382649310932111606554698906496246170350872594576770359128201572753363019461286683021838521601229587119358830991069661204047335088370172896263935349286976761492988393971759091061254022721376943120958255947304237998154617236615433267407826281149951996684702718881082740334705820700568594433511665391714112696823435923927720958291825810128625673479652869907112500069689390620386648066410970460069426114965314035512541651969655286533559665489492111242424916551511667699802676886467849678444239729914404473541493994766880420925152736307192445645749917912668931958408434871605760442296349325868361743803874534995020440119039869300128400580695224187448511648257738084195490561036723526841158223877122510177581628383674775974947396867491130618231161322505755426999316320405261360356080326031638194385541930829645311468217557936191621139716754243461239108086748821365438112270270183542809345891666526363597534300375451760439966238949959274757953014068998522604330858991793100921822589616384973271597372723784040049718675754513399926838405657294527894403793577735186309032691214751789192410254114644397129022501443162796354505112280432282752997231649956789479150070767437251415510230932821150413228764301015014683037459001263647346142390137620851892727435069528975882940747803808202875234162556407478280149412270879781869313698936143529135988563575971891523205623539824214707859428304969159638897274597795352057972930740369802982306934747479948902562929420216991548612571110816815130410886276789059128464143622445333003691698085016288994246137751761037773375046840096839714775340337196549754585371918288503742500077279643030492099593005758524759261996536614447954523877732431433226509157875693233636221589299374243700903774747832749644169768148786490925985907735791984793995317855474608592951401629703894076896880496771602124566349269035491927567314981039661885735749058623969432549634872790588237350811458596659258239842986611879757899703416777126382550999495223869866385445863690951595220290606866932062016355854272419137568008873210170069335820645584842796211969994057971446968875228448730608084730972974395956578080951918981899731909742720974440713435516584274936246496726964660568066890388206516794038297158216646416679051949873353231511925476240530828131874732954555154182391595176546514501102687985634522553278005422752685083133930929490678569654385612387287448906017805465665193995843327711287380144895099059400844270013622145949049252332745042824545085402167346981113724419566572703189754304007305280352344570971212194864939276463147786791437352064447075964441666308016726739849257079968935725637289070330110681793121297446942073355276162413745932983791399709010707996164525475408179970090873069650841519086122027375633686635703756428895763924099684596138457762460549350314162177234486962290726877262069323320043269111310007754745709901324920155595685580314416866960484632920956784138295590465743041719306938184309014453211026621196921344008093198313509625316398937676581738053800191303382992283407419387538553831094199482074634818871005778158732313356970155524371899988107811473708449896171829296351888608442867476101959204338548316825260442109348212984044571003470699462983192457811059512765058997353990712795847252060671446275180071857642410111229861204623898798605762899061665356914770289867849068398219147741678516877760708746096027382478586918476168197137518042590266409049208892785784901389642437084881733175826971401369485459969994950301303899067873446440511689228284933380365189900563970083320801940782295772327438007259781574260760866645129246500281798927770464790158375885201017163343071244428642965106763875873140784705028348588616080529488006272018597623059183000837715589836704870085354834050161408434066306420272499234242065252467531971301359510836414590881440857723355590319300447032398571107955181953749750310250257291501734283988495217180440559081181267055250481301940897511232658967407428359538568092744566358535719775085773018467686673606252488418854977493412648333677910822573259283001878967363707953358574946060137502333510657922433413361914790855470201159442872908485753446857561304459511355890983433487759231240215567529531447864581980552029916639379199685807379072512057956256219816981759073858516164770448701302915618777125951552264379270974632875576130461150429492269945203073472891132403684486007340984553643160156343395679315689380841954356890180415070245863596783595510099610077158084231647610953622603732060251300597613999578031938239033867706696453413045254619001869076107214621644734536273953129032937278724643307635617993150206272743451957582387111689615722158635586915032973249625869742178505174289609814718351834193343492834636065066195886191461877623038920825434154981287058404591437345996452719341694987837593201148642211691152415382575649364962018508825788051857669154219380860401812635903986793849944404750768341566942035360845886692934596510483531150067981721830414354328522941776471179483492053093491935591671825318354048607050509063664749904840476097520040862139643503130469302642977544568020211385513518973319023057184150043752610867490638412982205184640187130946604516144184584888955649758032245663835650824397786384242812858247994846633132759591322324033558606219385081298219773964497104673462676379625341269223084567035773286546281962694678542133267144343248988020871352322059223424981400382243046971778211623313141081173869660813985742309962831547205115030987413166545046609944549874842155277396562548943826556922509406648000750708794438897201796700069115426768444168863367119721018652515290105789190345092344367656807590759967522284915111583859499220850204247363686459553959009855522663380827914759125750657113507615590913980043517743612219864833019352946411608774066040079865978352423814357788194163982091752011174460239213583228947450566707100195999827440998987131754263333763375742747446131845421522053756726221370741017556578058905224772037088079501918926718977381864230504865755951023903559904087125885484308227185836719401955824748415514790038438288277814290392702781347037253119925368611366201451362609101465064674289954639608955909278647968253046767881418311669615008425766534746437030650660297603956456068087419974829558564492351856975581378609239629336026901199474645060444197114806305530160965112918184796607179991667881435645350874276014175122642473541103921290136574286271002105117319359670525436406277843975802678721193574405134789452912946812706349826034272536690752804047165379826594957183465299588151785351168863722631491284736312703316166465718655828648867476564485227775603362183886143935173633117393774056263923928748285261156882467336041381075268343659536780562944798232786243322245051791818040434770113658704598266204905300554391021719185381365398971485376039734438304186395965844847520904716817654440478263164349405057960697468996832168292521253008145252060985821890605562220910334510903088014243817680194098051607985977403475687200580464488363717012878611226658584749359924773413573986932959394252753281121997103620027836975212658802645044341262480111227954275395283040252774109664535606843051374921154571329840717104435656633237278200993838748417384939000265140919703177431452412829155287375677391501695186277843547923309735463631004425909418733404119996771081193599639673068322957805963058690900001606527923311622160862842132077218453597761570715235873209630938847507281837195972351383638053168424819080720618588489346196177918348848535202246888267779504918339479411870251663587824418565592800231955945643428501962642297561420822749955926845562094062092359039970030160933827947477310378187317894021955174045919011424853728797837349368611537991880834536544870580770817050550256208528787982250600442882860548097065165546896834374751761508137780765974491733054584355245898409037836463075848957653815195816011588495837254367108823092591124870510715303528809999697564099688512105524494925423435042143846261034458988285746749507903571918887503228489937899892173559601162600669504281983429990076844275001959762932729640056304912407750126708800737609248236716616818283467519214656528597650992537900199809224921130511206067857989831180673873863972116341359007875027150412266591300833604893165797253436098056626265482258588823037276374169926193774183635464221011812439543956324993043302699915129148514060221534825387701254318567535053395888093733264049041852553527983496734954279423403511422168547886007208897602193558015720057568322324041889685983952040610181279467489495150405849132347866730820770681595713058999569987697025788563796911673792741753315491247138235777873986235873337817366196858541516409518707361129452105446373594861371196154726632861854155792146308756038806978626744480531144861445988489894170935831143439064105432027690142242803612441041933940672582115799950864269531373385241899168176944157943143114628229409551049325905895040126856033239821974897180583504856238181190024175398323650047759428131306026438499615462222325473349016496106016232960163361389495353195869047491409498584119830535801122922784533836367341776591580995725994624182707661887060694708439919275757811971829561968633605496868744883366487295053373203171827251223812877200368877165373817224483919552693539033934847857760850382727055628933894673518343649158776490926250505938808286391328045767176804043026578903305652516611568144730710705273757664749187160993305854714101301213330622826838301871277254723792700365652637955692427283630743777302166514426711385046387822471125376885624028369075914388153045505232850589774705835265058275016551710522937387883125919785205876025936847125117343599280027494088330767839576631394353958994170378643355454389446036501820000159043283139892580680597337092400717095322510865717618184356336580854022006361779270919085504921643951068164779015435692544522975055208435861046911886372989550423166545161151677461377042417210449372238360655326663788550636022171989083075807202496449391965060378304804840502271412318351191506636132356339853124792858379049775748911431457128228121603083755435773861703625139207325770004846634732413195365995746716838603495833201843397012200702394664412987659518008918667834237688152805087220372530907945383406329161297157848497422243824295781960261217367963687552136156904591573027003888178418577848405355761612881669225526459610824891364348228357775537826990652157576049028747350082727725605411811806349734772023550978318810851302664359236343037336916162017359148173661664475348946690834230129153057956498625869859581292169766921453353145924441364728811083143135816748170773257503344037395142483912579258354440230618338155654589000256793683251238286885577464296904288969976537819748959570005259027431975108868538926587159764503357558225688856629293282033597359523862704608647389702297905974608508754304867663240434426948323649182219242749998885217529382262385793208909499979975773263865012405677822062771842026127466753592912537339760994667149383433881082660443967114760867375863858270202974635858597780077485886954661369981820255425418195430671714746352255909524928734577138537798717611380161553960679158991752787580999109206796246884747654211893269054077092015596065329742823393604706635612484331330495103624183334420876385378931237077814542019037722569739160366919062532425750482632985047796523616872432741620779809228681895728161082634098573687405029693184685653881794904797451515953213882487528704387824422549196184309651723241434847686066199667767132198150116226817983749858801275462098993736866956273205937733676438776231584770673427582789596697645563628208744844151345574541278736648764391701207125697622470679070000244607012348371627613127045119270588869873365177761030744653890674339604638498995858651196422512195194934329282433010791429802076100287012113320711782020344263679257506666918651143910255775709876308653357904407029287523178546176459765274021333159451400056308254239329427496582145151339206119185907066729342195527653784619841719353811357157465739113752477325451149177912891930058921788122354930132217755070874837369209568116143745411568944522509887629957459288837486945667666298968523356223682276963429834964691890296157746786806777524067608145031352317389408533803188811479480555867089272282099704577796278732643653041057004444099107889863613466678070319518080267631927921837570598333917962499269493458880838415775536855709649585940857496334758402842439805039563411261711304028407100984690740088685095298841895755935848739001295258738425409061464215102219278615520908281378931115504943108175941536166719119785075130268109657812532845835227643397611085700210099138664895705384330547827626626760771955212401239044813199138992635702926892881140089355153491034227026252612024672918341129320739601488746621472519718869279879202654765027797701061429634318494480471050116074100185756058663723182171790916725358209573984435705330101412452884297130726227890476176090463361520104846487572522807313153786174450471625930258931223426320997396225080993610987632096666571191533773019477369471017060220678599509050469994150353536812463743979933547840561654198525965085522208579670997329078159964582903670135103327024890656426130957394293596272272591707127677196129049085175775780701396608547764463721094759894817624636123647429729811560605790873960372931235185818974219638778083156840844812518495483937336624428574266502585422786523110245398219704100341407972719637253293750069437870243670269770896564679130819164206192897021612191781623480093673417230228863016279681701921154670276313586242811746828034745346733531914986697487102503882214918711286778685868525150279563373084039303117377237997052865286106486119011436889156148574479688859833203939133206970842340320158671477185544182953325150834158387324267162238430222198815623843982143009342133510024305926051769846249272125131737599809129462714033960464139183766339793899629442617927854989010384053553042856400246114224473638864968369749696909730275933487066022167081017581960506357848680504529616862964672605598105617454185605636403574728058932387588106182902884472260198440157977651610584777654336312270136989746554112188651484361319885916304756502946902965090108608854192740351908721270115529610326396966112611081097175263548098814226687146080962967078789560258184848890621078398707898655397237609179074938189482650761476454491379628544142810056183203035962342606107053006064784176947549997243739952448449256335186027925416617472576206175032200509715946672301225310915301135342863185374576048160449227149007457499791224419364351031400675645638783087900348420873925364551312432407193422378111390445962768464545651645326043011296625614659177401856472755321480567836858256810488442520321502423512377944115463434660038993066614707940930728348251634524891276691582306175173583293166263351908453288431119107031887128863382163087462526809904004228684760589715223911575352948363612001195816124071987744833627168452882564164722405211840546150716767967919579580060846691444601088071475326731411677852430926538860780856408092134373737295945002442473320500087313303343905830698755512551787917418263285125256592156593802509084344201064289912557683420044425713445584346313059117852220255794719047764246809920489913982878126803275648073290419108702828511201532016134754176772219530383856319108424299594576908695964969386814944297000612140065393974701049696778781390374019853606664195116866789286074536330801811742199632685333426593351904019148720956192444760688852619349376020177530661344188545737316535031577435824806394736890474860525944206484699029676327395362733993548334247424961032499741722022419567272034577658570368209157302397250065118808617472086111157293984592477451772880476403098750183673209593819902666660923598668465687814744464722892152301040454530064348587603881447356000477169694233220055608059457323723555670061126648687615327974019391724767164685047697898098302441989677987699829446934593737370421961805705095540863026756270084005488963869406153907108150357725852074940184259893621674743117150999608780090270141240374897202060216479106041571932301366458437014767610892125037719669166519807646444501141999226987963302391677422830592204008028900012920827547863578945504698103171331649753710616436913770485522091208840947457352561405209521372792209951494021880001438118250811376377612166957201041114363843979421018710539809351378630315773830840382814342944986456455267856543819576159616638130970177004271553168298440617345569438025935357857970226196534818113193765627015579048322490311419848805489001503824242020561445138305499106406279170695438133811870270591996007090910515875529250647329193557388865878466190500696691908643057421250677659136935709518761888416167469634418434714563325309162255849444498055783167037547477003027166471956182712270882105875249109435432724244926052700072159329442290937091801044419598986759187513759836980407949833976350699547381979456021212740905799087794288379892590987397629241532048122084095782521112088905155627771512949129970683251797255267374995860777133780895183229658622716643823736111831684484001215540310635935093995756732959221910630101312308323746957666722418092984656088444063703807956317977287219558224513841815844841442593419284894026089018660124948201160667165023312673817043576110072588369158132618008036719498150815103779209395220619126656902915746170718021500745187700872464325549445007882343743169318691489114526409162713001119563398800079934971065940662591772378337682536248008707575057261840583306806337551387462752522965889612940967046104321303833252985898112358996568941009782377334394321790492899518816386303566812998761917098697790832887402034018933236471429318906052351739795048408441024219867634599968869951123584766905116502665406491762707776671403196397649731620553857015705071618794950828448539035641067000214596841203629802278028475080128438129970692504531265409794595525985193635668041869968519367269621236905311798801080145930849206968515690536836308541824225936458496978709715564243374434462334913833899473220137739447797598679439233711075990345301426502772002814985618736594583718200038397530462321704845660707197953862350462728381033514029874272045119236665559397938037069960918843699464333045180456123676325016257298923378484905906111694165754750043780611127289522052700551396162394217748389383320594453714790756586150508442796342737699758011516155340515936943269546696871091405954221120308664635200489049094185275846453003837593369457417706587306888286584313420584609554324921146611446122441680707454507086702458037927359496941205195318605767404498912713433543523265176587260190635220360701821244445451318888785855899355043591348910873599133251033849976051893271324852827784326090068984326728787520564586814764942807087293196298611062578667484673766690588206360650060925429682768273324142218223137707893864642266997981427445631319322856245465683311128716990468256737534608968059771101848711944400072693512196420544875739593464064664041926434125692272862873957043946311096341783010392888807384663573586774763985689808050922302570312635398813424533492501444502439945877888864363170907556336205145862692444520998545110316556199786286953122267993721617754636616512888124482959672037895545629704657410563327862333329104555868066831567488693670309655846698860780037822580774195314184533558334193785247467659205902438845160570607621252683907846121216016588183125313428979647049389834087922660631864711703164736868867504997564656304466939024647439191296306947326769316440945331902742035355550325075474437110957927168532720800189274891725187750483782983566515846833352103677764163790843139750489335566915310300312804787140194874308778820438336471343039911245591525131899935753917265447191128161663196887429108086360958353716115553039291441683275403785192138501214963496688799471028536904479590957099277778164263308413979671794881953448211417573245003155049248684949588962446105419008269304827773359323295263892122601292426176635032640644401429604850797465224898815853143023947063103380416893070195982663228869703724648505505143704938644815729274399051868373156566798699169531460549521598595546832358006505999819910147141945306745943287996633019521700048991723421764931940325378596219783375532457213810525711317707752833159982922166293911695465008177868848535938839748176107550867108863586741028573616540013745601238173838395386050253415120994765760367020133636114044669350804659037683712923961074316993639423515825607992586005007901173685240865632781191720288604918042834514332634824035711068127509617222901700006077910309526554055240668818484854769312473231395800251703616633512949891481561095977111869741900454504842161031605341409353356497691190721554251409423973984983149161999223521540792752608923586708429164487434137032307930917885635368076396538684135354796883081660266402196332267968719365182353350669618383604961721220931453230844612290622152035647316376496550503352754570055402146721340706272966095311139499455124794984569302804419383373961843443036809611320033482220736152438885476437710074759168233707396949064921790084978395796681083783547037265850640799411408590137632838652117754073800679239507092716988246016007881228863796357226250778826668647017700121921749830151616505935822973076940235016829623139745329553675676657099018056663278744460403993927350891366876859119226033226817546257855500893822992825000437317978505765802642699837328438163706079012894744608291461482248217685917256408693330309994887380405190994677290211703168095770676193394388492620577459176928191990361544029225085987274205056851678442672926893095244070776916165869368240207926842815285369372402129350580806710863865943824352738586274103370668791245383444762672826570761558902323623424456823585490752740713821790397981520784795034613605372210970757950580243394996023572578080581726435636130833252284880485097597156211992418441240843280142819274784083397016073001360248975203072794443478165520071333748771544577126949978339530325923348869291439116228300348171622351796968647384598514507013896507589101725160209549049020879482092576385512855261911359609012934675915923072084769744673857309030664003144024521265024672770611482822087600228172077521084900812826162832739776536272975681699298267025075057087911053510285947373289385201715369893280808358606275116469536020717508631240850315160130615351953612977697931294413980548700419241751467052008327013509083465514829025830112238973482179781255831480523468163314933075497629190551051852832569158069947391404990372510964270561978066404446276188175366284247206863050048238842987680000843761949535621767099933091886726342322436275059414958734538715490418830714723193092575234553839328096071286771759421255053310631195219697545027261233968751068567008524636331628473140284965374470965630157305148332054317826446197342708061038936152599314460252028439566452605495091280598724874333182830258880748651301046116352145696157277125126700460780262722196039317912314837620561980535316429557700429940360059028088371068989785656739033221340539216945646383684426821332029697277603373992990901784191158900498880807733301084658909734011392754783565703676396997495483052761418566902000908982606063267881961678017017237319595569885223920054566952064787488613431575783137040726988536377244574016110382967072698995301838080311917889194844984835410474514043915928585241010882048269622015880804445552747376956679400351657770871467354941076554294060375410795849683822085996260554248578383899726560069625304179015937766750478171085242562890097487232126593957899442982172787358726806602635679335199967682979069601990219149716338462031932130235766867252992539066649158925223281687483134997474240499429207848849385379192939904150508668558549162272572317140219445752168785384934935141682195763066189598132641541226413000629231813864094019863077314882785605405948262039339368984491032771061306187892542718786100310284733478168620088302044636560832738588276232639327000550621301118765404605862258396505260055354383679331597584344767709696779115956794941874572813217205464998394768027491020515630025304532382320685875393535465040853183768023139212014262160118471796093060468387106850929264139607609215343409651146508321782759527523059172579151786332290388519661803060673966068365455845779567708844481448753606148788818869262766270964211574365149043528100051983273268945312313012704642846125264126525670896144282741087065319339647689311827080399981621069187999914829109351163143507634203877056159455278415178925279999049647711223122565596466728181987854442413160027389120317506837803798989355286864946214098962286785613344859648281786613119857375676567122134546018353167976154842214616320767238871619011267186716859434627212329298371824904952391172810592750037882965208189512772405197323816084293646119827003209424690441371806551285649782981756229332093158012634431072575841118688398463982187673405854484664226844995901460318992727405604899944608190075816735797152331369586853634465062989320929406799064540342516447103812782140678183767668608739294478467950432095228918592824627137751696386771691190897583125597091869423451474541698553144411697573310537489560734603506065848143874020981562484266374639546380494889781981722806977913730074196109723187316785431450879724574892123658353353442802193297268999122467374414211031668522806198855484598244097312995598904724580898756617366003322733970455200069113436010108757487652425662299615187262092750003899270012720817935649438475505186288138582199827571517935124097916355616262504920523895697515619051137158076693396058187400411513352564193353907355622985552162061669997240652844491645991608925147106104478453067254382167364020211121363422719574561550447350609852398972713617383113149010252266244451770526654568672492041729692868679405570219166438783053080155733946201988224607475548206837786242739136324362393282237191391912835482479739466996684750636702892245021110955874107833522597054504850040411079047963330353630192577859426317637790458484856489411204619375167583906373389362647397148021899848816662480236455745666114850582018638711423257760719411525817526623729164732609917083949672805898919954745632438381046664535960821598363339637264163502497291380131395516579701478683723035809884583543262289452135742916111317917283084570589288596214869913941708141659272115443436372567499141811545493255937429468762130959204949081068681677767435300797553899029137113766932619881902266790109507704719898539308613255309478255277670791230680241640312586116116227710959814028590485399792501882365824264133086194312715453355285150544618966313226136665956354222629784870258661866514139265970034236884073304650333301562079591189348182993312574880082824257051749832594575361907785093361118844964349064835218962826542397368469823692835756081686735581580327822942812183314810017789311743992374515705353868826654822121907171247908587987775993976140101838198208111604153685399773577100153502464702246820835483383479100499711389090909450076531274545776061138625680025468597111256649273418411101959434961221622342766702001709978291025826534907784327261029400486077918034751457596085402430135915607878523713016810924697557191458588519246472297338736991134692975456699237163383502602134857864588144579979226510863376186587980840222955390702361838569441027374973331175697545059629476588301153716127002499702242054786536942431170156223963121144226905363268389119281433328568668065152103841468240055191800512326538717253028323529527819675890291354016960868931561665072000971275314506089557632755588833223012110687303432221610845717087838730076577565470196977679648160254389137364351014351765153896975155767148909362177251334133041201799877738100698644505937219987113553214845159427801986015315295333568465874687170417765150790287929213786506740403538207813865401672905830939874289007278102600895571155522222083717631612986344554932100013794560271162485823525147412392961083839636102082189908328188767150120314011590406879384197752813556532292519496126475420077696815213815676085104766581548585102430467008311477379643648540967928755070094092687945688549585860795501304725707106852228274125581512131175663736447120117110786203548009652975742473485456498010119385746381805089795875205859029426139190685947263985747922797495434607910908907773056986991920574657555410978517732601295615130323138409603011660974491308078165600889463781511803686561299598840504084047808788783523178957843157592324487626770405340918236816738992506706452983009933450944402790706375211343157477528608856341866244707214581056934395817810134995817941158928857923796374225606118474365404023681788635756293790932460601128799560736193817292167987574441816025412873785502547093386030658445947431280899076588607785300190774516047374877711083442861958939754526955249475070241850549933199968748622462280855569394325414506745138740213614928454125324264529176827308679040184136148399725796098633621032326104378021429308560864150759018729806867803004454962405874209745263411254024648354923452573108280503598262008335194581342548099297431005440130979559634183817693933992732167446263203302435923315829413991863079438267373577600851165791538537232633450097245932150036302771190765170309474404776980860262290632639717368941294718662498680253777706396540386804996122030134766471533436547941677133782159165932512657693369577845100320918666671249277549118839385083644528556693207265645059428486677049354541641065444631030065243399112095242835782185116710218225562522556233056385308695637182519776009572416315316562176827416441644720895928455828863764997284232659689156690535894978961187666836833969136578927707061734227584637750880068085552904662867241202131296040746760149794723905381992863312984367273449349499567316075795554865886058527609611852880643529148675272162040375042077671266484293869372333200980985890195073201010653544521156683882739497250917178529226543769215655630779090221434981843763649652666718642878711257183131454745840855892993966525965461629403645721691743634703314146751620241715283847581066749226587811788237899703687225271444836543527895835204193534556185713851058024212577423929995807513498106880021550780575578160047054267137105574305484645007330537730737238214917848825349833683789141324828295336708778687811272212064665159968282361352627818526298812730886250888231834912090848124154082156040747734927956047432342459836611398812367712317614247913084259260197662446388778799733432308919162320946251830722761533261017731370389029240000330342674608653810271080220477204454807673184292638611612069592990090552210934140179975863216953272230964837577959710157735620967458894966474607188151492495289324347083430876766997725469585417570263216336628396954349419032237574351656080922384088519120648586688020929144251336576264240070312310517489382810403805973191523911643771455699807508076325815347708098551310423924083790654192661246053589033703251142866731061138121426177806420096755104525315955342402528225690953877953130593475886357262268588892269642568627978726802046938199179891094194279381536998790001260274789162340588915825017037484541514162681330446838733210458923672821367557934557350979072079727353843799848771870164377007948965082042807729889157667040839445390419200344747724155478307766153091723121040664651665015448898347481501933473609629902209079842803563535194768201119421914448434086033926183052917945252404897201670144573224041723045934510617270800962722887555153508339741906498660711466756779938499449368505907530605917179585112842337393809605822227203854526635871847875331642385682269837670929659089616218590345944164880456498264114895778548905999301586404625009635919586782181482846909427553117819321025849474480054260969753224452732144031804361847118656467253627162180938751137595862333924241316315901008357369733820414165815173773789570545729641997010940890702355551277268363986763026302251731130516277403944667893742980867664604469243032872768461960636133400854788655072026508024733018538176683082476280569452622346781937393158679474092263411829394447291092560736188686964728672122463457718634653955219603881303144315658842198869618796555526409208394238365747598406530781674769867534930769646517630738375079050602532963320969125747468283294814739892847866961848730239398039647779059812162268772813250468828451766103762521668564579092656078307844549856841682008068608070891231059743906402545146814185257983842116539419150790992176619017178695109887864768326737936623310276564223248030494599064425885290289708722309961640402339750328978715390393112931195123861909323490336847763106145250269192386334833773986683109169050816332574136324481918695780906321557254795512455957538593286633195024816833430756736611875228606527389982831087653967358700069737116923986692620221458214402434263330001378351692282494551764309983663363489622284979429103855843246332444686466358770269072303299025157931824286234031119460645969964917924713507770911342067105443908996742295842039642624254846971640452779107508418046112629619289853467396730329841262433433997825302878776854607705454918723704391235874822682863776236266756028507553019700714863315932712518841353280169788947429327990245232895157150052371009678069138716663402936667138760706831687247360730992189723359722175648768916217661548642966853421583722072848099899662993649473220404645520646512242319073135689977557370193173069692851868080252670042440286673494960420785355074958327404474199142435448567679008354952857212755368363099589470880385056134131149693905212006871085281957250211774926748086542955448369441431519399017178781495590434664670794174327123325868908217913015554589403257358295909043827753235124167598151839312091242162512856660946277903947838938294324193405826033962645931578182545167037925681288260850351340019474740013993116899180086322319570378779110951155985784647531831388821282506493252098573785188171449919192581244667139840364374505787402625069178454129369163698354047312905957721950464618736660538447502758561813669856305110080759450561994558765628128737178581694091361655175387452309877960205939384692326076859807754536516514758985849568975051354014224969491073663304915805405087938969448544000614235619275932927485846962738283772898044999946449420882517457255018881841754882038829518374709296871700636766297146093416523980539720621284380032111380050586433981133780016768990336956115874034486308115612741697140000163406550034288828484826427471789404194432470835850774282687582084654456201663655100237052357238983109428846351742256890709281695233163830154277289368683186760767383917596807488284006824851366710132862935365207310765452901603983713367654050216358433460386139634386917749631015127954174043551196615487793361070841512698227554888354320792603649480629609389532685074311637181392395999218557690401309999444174293875116732746896316060567354353110235938698582108706405183735948001552116675824547288477571214798688039759070797719370154036678923804540008271330198071712904643802524516638224122667681448660142907912174427096387267436944613653183788810202259527172445500458888107375019178194903670439573175460596071207721399272833582612602289973166032657299176595761955293119922442143884395885960105790984333624286730784584098616525472524803563131149915235656920639733167890064275505356377678032302723885022112978366915054116083103513216557540848010950999297458168417521228188092958622851324546083511832541106295430047776781671660964996867117550080784566604839818945331286972187470259943156184865320379411577516950943224226065793504549717216095463948673976667653272029147938512229337426167745067502172055120012523928206831553496973344567702943748384259346775696339941173701390271988542171328394925677975865424180784852412671053764126653140509334527823144058525282246335644946138917217964435786181467231594013072571946427686571346297170648290398004883237047290240120755378746768837018674630319852517662946100256041625179145049332278165678302244057791308012441011294938868069463037332656844387125177057614967439204992501104377045963851781574133690770829128155901835488473166796443127114214100071711922217268651293137211314017181131873804378667348780135223379907402328618681022257478000371540764532602365863044782974969283304035073818950839309452017827067114434614498808676264867185756641297726267127030118806881036304164312524773330490815678921145906908782202506813766018181832626875663232241463249774750127082715804326149440000886851221122723407702926421414293647933162189239692256029457732404954854259474863944301631736771037850356806800136959611688171573803858282323771770687481054411171417443568751616436052024784995504988220682636655147309448047750092923695298448242329859078678442586318961990523825049545292966313580125365588226410457302078621442609031038547351015971553856162330448356812290539036920850546243036364409124498722668706060535091680621299401683453846906811412874681171233549004510904001681595200066957362364694947786780304268978212301518411821732033907962057596536943550184930315098795052635347632310318301900453072112723778737904463972148160552082509432351177851277045535089250836888732441079490108840713020831393207526474666128383650955365820117940583525739352523608335085236507883631874023793990845215263305387496166080344690486597380152698003854592405467066731679129177992651444613097950943067750369538008281882222432777938414677951437875437508464414061189990061727518564457922277996758912869279157045845869837433032090353702694479411953527293301881478360844781105640860086655387534567472486304647162732820137380541758132082201151337741282750748699447365347767561932315640629817872374638935053688563549331870487554662966309504821266126709354219766498764617932761936616810999690997355513220819169334990276085523651243673588259973146667592011876716145820068416986621732273534060491958611037186652071724352597858176551181536594906628516869368185837947775287818708981595634590875685181616353801239835535236029445125575595445618683268410086753155805585432589485709709373526440411883402667915857695768156164616880827383084866744459524215759002888241213516055193923852347959410377875436777722980113929795445204877416291385817716259999309381221848790576140441271275024106665781986637397472524115032846013195897328543174948018336140268915556536973593067534948361743834461234326443699682614781786778374105291790605535391229789883671247796992573512675477696302921849568908206135392448328890859558206951172271599526185727289476250979677521862655352496507849884859101341505849998989029821662238520777415115781771731984506931839096885019493284894183814776681969768973376996990345593604054062454275731674719485542669837719870103369151883866145035799867861292248272821730369502152775125630562765891403766300914545771439287590257842312217174413757236783950596359770607955302314176134929524989739645528186879380145088210845422369163675198141659024194266443722896458632734337056374572471014769508749712016749433423752942173550110551702936209209152985872690926118610672272390207822984875689068378124507081914636211950768583020275411178421812120341922684073613889643043206161097747949409787982057457729312795458339721087547846525176462280048619904472836078348510866538600102625571737651656006875904261691793678178888113557327635290884722901474676425576807208727762685736060304704576022759015649976832095213803666903748073200630300170925734845654539344442055825659927992193212478340326060303938743645187372857942008870594707362767430277965459541965241448160890663635719787299861372984506184092749213889156324324063094271977915226861760857240177680298624691222123605356739307334687229631191563185049689598152908913932719062306758149695659166674499172766685697459255440630017768859091571805531847498990239604116359576235284895260602260331578645831501359098766031758649009783447497780955247421696479800830253466749401516952975834719366068336900324960273401666179628025807847995616055129908063494166578169722576187583438614228889193885597622195734712741349067933348786376536037704825833148470356539128435744763392024161793822559794901549862716250903146473498616725527786819263574946917490621188778916449360456090037151059907651482288444057407595070018375914280460424087423060715512783409232801821935697847665084679566310132649811847415200059504584905344085478277214340983736538061615243119910789176063662740940601773735397366903475366845088141612147209533985170634846878203697540708477996045335946089047746212500499509081792964041341785659134817054619190416386817526004996591635822652571336245903290166163330490887371694760745614763127797796528572446314741073589055668993499398023403581827014062219515145457498972292514677189480463605749719938642198748916536747464039702064253425368315998828067914687209473514709758606135311033462049850089356782063834346125128965015144250086617287283221834310634207142624069022253608080943812117152658193780718065562541669101876429580745082262306020843437484134479990824780287941216194467013061872288347723774280435871532453418473130967548492556244589874767289013050180851903004805249444401683855793530282211562125618384168406900300184347831430697934626656516066265470778726389233611781608285203044939317598703122244910060434108345605812249767353543683483511168898942358106607990835010438056900320613993268034020331443334550546955968526969037686773729239303238814411501742860452714563614521596940518241952047129712279643147453219770911430226719175006164230230368476145981207639410169007055478222268308240107165248650167635944194685178415646992350258155438115335996088701919369466553555034987035910269940112932085164870760391662566424331178769182231259441798563683343653544975360445247088826706180615980954489778488023043868026500047874475061782229164663592408025368346081480109167798179344235891761155565447751078548562828933366568370293422428401844748372163010690773158571198869763145001892946138546551299913304067344552121861281069987699309819322885380365400108660061841739828083318398537756758998694141322622410733189592188563322320348579680360539010874705149011708825528731480603202254828079415186899401457054988080520469894239617954492217429992809260869365759275469970320163056687492080749419398844779829945292485038878159647555105089546650515143196279784945157444590102338302085843518227962941565005876554527298924969049021907429931821067203498434632141323651304206226347481558436676111804765586398938994423985553669671139059344313680664130266802254746659435373604713050563193167682743138098392123926308356174691484102358840053331914828188789926969042883311018299632305242620171153621849828988217628032872281607608285937092064994857778648468031906644271966246618007941174900680631528771408254772218382869524633313411417482621589668572373806837676481704503637336937088786528537000246661828187470261320233982352511662286695980944871572465822229676054519133739125788484486655460120773565589065957777502852354069288197443714982701419470906896128553714637660029420042700387597156495260364161715501567266911798064184114058260582533186836748963746585090422533337178033171140040003514988491777477012638665922986996021095054620655835932740021064566921628204738323192052670241452024768607274974830978392524965551084227886329395668833173717588618801288243965630237889041020115605304637049355771107824707172155651545306646045029004092860542599232038209948588129972358140794303028154200206373238927495015666125079735662451976753177785089923210948095187468371554514790850651665125847124517814497030897251214427036087026929771941287677461644975049233610550871177702792143811434314077732116523360206269183711119309511523417842944177476182641076925999920885966701104062711743340522939237142967066182938770857615170329695912148409285873945939212097915343197164393549885162207874744623614247806278194475359947844673961097977422772058426565521788952179982509871662653704006685829206511518757030808415103745960014610211904781535942106645461545188145268978183544038209134131148260545694987667488542907161360111712328138226254048577530241996061436979148084697164142312740222213415339405009183041857622194448320131607855926077756062730334474779413163673516250180650760197978485165497986934069649982934637312017010083313145521372878792682500088333706141223972102250222745543448242600456814611982455275717575643018034377890594234434000316201027686835805115509522929450065089402713717133515435623815649499170892125836485707368109456876258777789718597384731303553916572578479218356297235507173179362309820784334301827281889661285307043721326841622152069547161263508332858475894821763311606514390509667134448180248742365236368374082017129125422277479530011276620721161571279999416866520015991691575279194000707781849500709236783358954805384137011191514000668864011362064614334051518631512613084381291370621882470458482921926602205799841727937156211631180026173587521771018964586297404674865419907986414677773277250689412817174052737671080972425251551461115697346542822476409562958473709830394581505457825582291928868374524960387464735313763634071793372054824132873057540995016884710040016989660787471354873463648770048423060733404061013135109802947075088627746858243667981993172554142129398992061322267735887182681772745802768817942449908751550012785919304231785941096077102831583207787680639549325298907148476585901529728367476468534974556610254116675691794646206162695194533814322968781966560641778540512200585495401568877225810113006205820894621360743695523751882144667149174986819254172263665502580360461169631251541740069721054201931047398797249874961500668053915324410162562194277976493958673209585566265164658263606645161782436829502469864775485374481519725570848293057809600911702516461631851270755665082549331580533457868550536204752985355273465017366683945462788817141787068497625173618123199765131444743848040817863807056319524346391817852245739390105833706633102994205673631999011439162651442725785454801414786971574717926653605888118065421342944163354694096171170648380573429545370189577394803466683505776673423162361655292545639025885893949709012744389837839666347144746571552654852035578703070892659821132441292693155106499298523278253453668538165169658665215672357528724368476633545313941293616888536082119814873732641771890073623627171723761726316009094959688384859053051285839312544794415451030418323131423973303491969135815533110001463432004136434156556644558115868521528159060107678327996463545532638981499587241471865803762155714916094762719259584747355399442733074585552200284371110992394051542800682218855904347829986968796935539791559730819657604023679132860764730884399686455965773268959069844372561738690815133212413696350800530190265988084951802965684555979845698490973397315056551213118615093059982610085016173018773746159416859943724334887703512299709414950953651296838812615338498478041355693494014092431332337980502446822503105429439866863136303298454500316416865801163749357432422488244001561449792362184380722958337765997511851445244148157488062910368139784246632141943029440812069934320786512270188898596102079415387271849122525336732661671758509785338404543583518695104895845735978348318566976101177606915022942724524184574745279424669465391740319174941231835244281944272662630586259447435340414828290351462553727262711286054334867969385798056735459427471465581516644922496989154841584147762725993245869540126627848137426343485204832861760353980483305001900568615669916274085948344415792050243732992577010079761596143721050103724979851366400064982699980430322356743312574109600332409347741561635967949315764418185170744913899522911434386950782559543462263703576666409361396073343445672399123611820469825834494103551460296040279021853869574976673412167257942395404871133872228830432600480986514879572385941420073862206871729916027643261947855181327550758148336375092730555036948299797239172012418613014149352972369135075315210278199509826552637004134911887682147591104186210983976146514617475891762480090290995257807691169445431794190980443728690776383161735240780452583189473352536460459871380112002210466634525030249596597419010021237516055385242213569034755750953867920742656927009676483280205694025468955574824697894177524010397491558028652640015970576359596484952028682275568963447198630531351453416923948454045384859984224578442947505803570248328462927009568172378507582279440311198726372394409702482524530536942314808404532619106005207223412047352651094908093081472975955392585812926944970873254511459462627819736158593353421632095877577917001362425124481090032492423480221248725990781104095358643024433803847965217063766676183382532623712891250911808268017732194096775420767823980869773320614876233074669021821914840555619042868183079103710566956974092978354559051391789236354124209753633553488321880482733827931147369399028074247187337724033927996375411573820749201803152478911067045275277183637256027726662094782421530831724385136172350911680934626146556070601589563129742047456270449686149045801953369989759027099992830547883385718233217231484717314547845835147040892568524011113755035265124164194411407610044320852563446420734012749869814651245387224264690101498266460015147569480747868734838491720380145462210183339859225082676405855743826481296024139195025552725600197388343072445325713549743010285208176203859695452593366132340887771245067381460548597820011349115394400867063698110399892372765882055197015793127498929829180733471896398209802417915331519963708290726003313900736625332960378156474140532413868837808897603739829386648453700636192497055952338458996717172921206896141846238510884063709297845021504860745724875860388274012282682224928428957078287135818632289168244782469963443912013187573093249370563092999337057844370685018066635886148696898628424820775817969909086083795633790899951018874224667474398910283224795976013628330234206804194974682467660370341810576860109186998238177356503001330787352041605445494222579260248392490125113185354867884304873581372858250949827414867875399754990676733172417932442361835230516462128908386160372526567772927715582938348586672643375747851966644324503085444240225339636038178834954401876487279144493464248075095390503693939924474369484105954035749977924401386207451410641333933500160298659087057376651276390670536173238454592110192374043834380670846109505911054138759450387070378147039498914416021604199072356854828014916356605131573558278761442930381518551150597824205761713907365241425159957678432836737645174656464222559105062918347366742433223269699788188302964400175630821916007318026474641563030634057294582940798531109026959850193553159837927141875090803278801162984555105844296097111159802826350324083394687610822463029788836884429840603998977893129144224273372817553720202603103647005535580808208123049823605726597844256903115007207710363873846920247528031183222281038403423452843639254074710084700646731959915091754896252504583476415716853592032462386348266474676218546802775615728817902790783211567221532129846923511085552833296142171585133442005169817023558353499433614940412741286798307591019774292703469190587042444478859747478465418744434839150234323230883327673735084150868796142592918877310827538112816899352504729530211514001557960569435487761143906943540180322859246216529470286348118797270485923988681874954001308877854014474030756485600042223783157842226655281403004637957940119163007034786229274986269372418951523615577380759866235785784020457556764995605895223159008752422315467045447132267608292599205996856693756917865378230359559681211239359131529473024186485784388481804131293361083756160383572242194315973210151327594411593500831641050022104550985637051214598225687828416829916802004691466571217634218899036358935103611444608347044384137034541897268820134683422433382441132553468277435410063678785613648592901546910355309308156207452613866929169545379374408803446291957517846488469264669761043109506396790252342020399374355230562342638029275945279462181210914688288951961686408262887111802562720240919382245260263231217056760576723211826892101256222004963214220538436412355110583994143482072513869678249255599275091970363901997717032081317781451606626266985890779316513933729016491467361851341420679833412454946885175697442202938673060376316000771144001448665281580484337491517034608791924980741588685277955531367987589945727315372840715733861927866534881971885869756328092133787003574162233382238701982349619409750721129633591012224196751640638928424294769639621884987352451250756011253421696644602583103609033923162266429999420002125227326339482794839495892121669007965237443512863431175445864132923246583715682642216075830141939868301834704019506766488456809145416199257097282888934232862706258650125172673713492715124996522084799044356948751964230306866967216417291516687680747083339237258204575799982915764220720816973776134406955031104735085346417635817121665509755873835911910376394835158917856954810916963375873362882953163492513749534713665026545122457229260356563748333957992015910299417974427190268793693026601181292252447049805760384863178755979714350379111607495835514897182313698224409447411782891319963420029152317797856122678868573957385866140155910575621183327554033819622042465685150838923942590979059836230773718728405260085566653657881496645067833617151722352789914757625228611524359156847339112004503712791813404492519552900206875177981453214048048456706858664237044737969653539331691745699982617119836877667828556038483698000765542376387676754490828328284975741612007096267678238478137696569967243076178316280747010448271076852075415007959735041222474994772879678016676918074931164873542381607676989621548003960467206257260664035813649257759452196094804838205043013873547079850116582174796798774420776413398021199744026913219645778853755428190169630268722201378298956016294269945277722497868676479500693654108059689679125809334944080311642169408006445240706642711236095425878994792374190904198851417811301265433279172762997016519672275194055336266632159175208868877945548552002584895514009520292757551677665660106921604769789702857928512180794842655244042322348637494427697812496396774957584004257408045405782166934141680113835098830845418221351845606653148500989373843695577871366287082348700421797812173636042963766659196700938996076992325040557660913729702592960538077306261044362439440313133461188276153372325613492015495893019325153984109218915336168249181434338810672471430324122108619922084190088439518382140365791288107035902614207107015459223615267080231416169795482084890857209390615782560758944753082236998582729279304564437126394576730940564946139540627671109125817203437753831993121638934850774004986136427176905255780840206327062176377381116341979150143378410570826719901587944055613334678965436098057786062693171404864863627519048753709194360972176292264271199852964310945066906535892859308077795914484103684151383663556706119646119065062186882265187863003943614114116030282599032048889045123245746754852866203467946301480689967931655604083648741791352677923491236135684911374555085981310062549279377388042125869129226689887737397362075388393524053813962393238545209397890576890620435718593412599636412582327276010429542183245402969431422533707236385238613412328353178227468166704989280028449027562780040786416550297115788854366309953970596394279180152418540944748103996807314268570392395489946353617010732933352103312284696385221703178479526927794902785778086303965838702708684059800909417263146291024539326073046021886289563584452614420039462568376489194813936410358692150112377868629475974737441811915472192055441995786524215483697679441057724878606262575340039859928196346253786869637139278787094674965481614866412942066750376638488540965426605336704872223687476843851364439536623619595275186860843156990152482254165336091581949680204332534676576301649632200367929724725127271083079948756274210557885620553053347586839689142672489246264142964456314879517264095202130479513309911877091882766568328905618367934739578061513417159671836879694646086640518060943859654146502686215992630931892826918982561730793492385004379015963708086530611375299679322216476039334788230107803707649844564046753393508077797085292119210154293256931856267441486672595457937579913614780214786353624252425966346626298747570727393858683221410764246902472764512542871031804300480446646752844263072404809093981728275161319026971870692879114236329348917958783231380243649537167425929157444746419422144995734087796846450518390437339966129890971755601446823175793856257302229947245461848236851239097226594384405435790239263483487152984321981666039700232610838514259949693419447149518173548898630816850851784855396213957210955490598147258784115178305327639636221615900303181544261042899764695765628585641716775490068452690216028841564981639324998106116850198419741010905477642114395362741472891399819825729980086811563782572902936836195950935978274603488082328309725411706590109889703260259217434876086851575276046698871751706648925122790149622757433590429191056932125096994284749586447875093345921575840235688216268114465958391473373329820604371191337285243999304083097814646919194424704818053527708195342258131565098128859005557838365376785671063251736250955031792584243139391402875563171938809419877135402425326731309368650804919917040496096758652916186285106562638115906644950574351876877587694731521178894466083586152924858999418448486420273584115845725667896832334639855739279107642242968154018863179630290712760969177325657333259905339295869431027311190202082580114052680244937559341079192643669612838672581071563881207688635072860203937339378684764463614253074933801596350994643896578578093725582528066534436398430325014854096933965108899515271631295085916347895416364251297045247601408581898318775042585921824506061586448898506644269912470845111864981222705846558510488026489888951350478729261227408319994187945408116460895800374707691576064639752121167052609594604823932064669023275978127944889510492120405613999479602910256951364384803548964054631552049895099962790918152925733457861466455241173517064484268819717602217377508381397165699677220680382361647178391468887982344953249921505631832889654241170241546979962089382483806300000011779558805246731462934984881119387967845559378472581672288750412633608790166340690714031975046645853209249815533219482786094050646814335985168380783673588402400462917345402945766594738908606803162172631297355520043705797992591040155363328712597103674838447764050907290026081640316624281157315859616472360073570426014691061197179219418209395083400021310103306998308847372925708504473578172720096412486420037020206230249658338457533440460256695757420840296979971545528498421296595146073029668256169029173418470492867244712617721083976071760974699164136396075904116894127594224155343089765910676441388658575661390759888490392568131303192120544011512744421895823340435216298536183952434997861339971754109447485497163780885786520680211571870420778357356157113297660766950115604499674460220198509552040226815445698668243860309223772861660279839426622466892305143130632332922174251126934348222041564951916159354763931977435194546696627151484810837490276089888208005754107640813493194646010213088184726679500462653673297059927521025724256904147840603001134889661630135670462039488506026643819034533520979273421662659346410985428928888000032526484953171792010834382011291236977505642856818055232512567824182621906492997295240735517349126220703970611018373407360414466399662052208138743120563832530913644881217255467485652774426764840453916988433138206439613426101402070219626132391202231573021596750757833181044726331206804507322401366039627015069871197566063842985042089857181381562656132736774955099509748288177156609738711618659091238843760973857487863372491429724704899481323660214601699933503239174847714521951375447090975004481606221045141069440827126709624822931236797298674441403218339616939878567402576750491136566252408758055103219602361911890003898055615291643992538450703279332911965336932583971839087768013933071335492035589680792491760282942572616236648319967749393917746200452660829734170306585573077476482605715484863110662454103876649285710909782885321399809003992818046960430277041130781914337568567095789308594233073138087457417636958246891400629597168232681534261759052715008888053430360778995702967915931829798661293107281443631375474125135622930458934181827546598847542011308441606419709355101088426088115352203410001987075571061673359589700150809445175721558216207479638479309173101822838359417882794817322926963640302580761022746974935203773047875022540647630613567903208841500901633144772203950447971462700074023211766963569895608875914080144826709986037167011055749857931296184124915428580695436564959568733082004849222768637242253409455783286648056860937806602586509597694108393988331593222578535336850980507270597470123257689915992067147021406329961396742808603323010552714394397263529033807544651574428744113545679405075434243578394829526343024431997710446374365058109504400633534401841480982032748530242907620471314939965378555277801868475092718284534433428078327877339820001892952005394834507517127605233340044116295499126020808294984819536099781657889718476965087943007342232948917057260654262810828473432278484614766105626670493202041950972661516519155519557615428271967790546064074368516245026099109010848753745860736299998931452433614112588010739433108940685871965259914054455309138016244074869036588554919788554037006325514716552543467621581521307528646329271378319758688829579057372014354425284919576966109955375176532686354003486244085089691017403323486537843116204862454290136989177303904255770623342702586016338383282235793967856416340233071308579530829755374176500618984737365675237579670049196779128735154715698809614181052663953621359499877018592206493735681627309306835782881060314852192212666501319820695480547634343820880172466708057346669504824352783805848698839504212393047023266300841778662767115396367397453308518944982787928155732555529435815827035186028693639630734511973941673272155481332737619470360988276069963289548482449674420081553089885336063416734378400782986807849975669036406439335075052746211325927148467799034456398972000129357612994081199449863365738566619462860466226885845314483989010296071741065837510351906461600346675512499509045283784564563137165023923824219326051710578136466463094919528058182808067399625953710332438459502614283985114288110921918445903330436837423605828642324273759643955519717394511318233818010256616405443691831484870471109704519921243156799467902745715209989094682893917394379368071477410601845550380622394834003279226062608885270777487635551094999927763302363675136160448576622675538289200868985993766861112917603854740642445289357596181173642510126591225393667262361386553663628343366328764670241992492497980653648252672320169216598411301830852431730494332527682126921271888925362867143733848312167283844761060643298126411455254703159951716431758535981030519006962597040649138491281646207615628454517512100637679920115186669843589957364388533018171324795686521502507008047704271093438330042599267203633515965851285073252752706696757132483262932742450775647754076367432927360692903554714527520869952889001338563729201020189813059177857343929415886228003230774671253060620473240578060760895140989412422075011183789740704442862407525274031372848930699619179914389701992401296358566437466848523790737893440041825960010014145103172893371666970854857230969506101717113713551114076970459891884660249311762064513845914779885757569946196198851507276897338329576400723601741199060959682861772159231821525208819959611579458602392331045207524170001033903196692041889788166014960249331810682388601819002172703658389039694500867446736086699127401746814391505272965392150521361618695613719223555827849374911944006999112469953488726095299377802601594110498920739702769348704434268819002588986699272604493480081780398029286619418267288330833088364513157519005159344764695848051773456051486767756726400335575467594571861722173332390835220791045630975708518565462610454417402215351627075577989680358210002385904000549587345902753551182422185256169392871697489005362410142379462101920652595983218448947816485352074627997265144101478444297888649454384079058165074665928305183889086647301113273185054467233041770717413734350736362775952500128164179766655633973268502829620795229680809623261597445051053191040159543814714054658652172595961455564286134160214316036851786662427150493174157899796697004289550663576564885021399585619965447329249535849336640843506288109432396725360220185293862462463997414989351385123725934332454080217636013955130952280401927127986475732372456119365998490336730761213774984404444759944459551279061005675260685352604049054414717200837990248327648957847693688096891971473859748067371544970993278795494427862109834251043137178615703248958924567638279334272269848402553261423979126421035942409339193306500896198295465469343853560486429401756189545652132995834987867559467751194247018867253495677931147189845585316004491754208818199166722700692760095458303535405443212824287675075911879127056798936644252416380323047857426973016898119600076820985703729188576901662025693806873972736166742159222199980729614254854907328909109021023826021923080094012673124097254060357023383291428979151507414115351246166873130207787714531281924147023290279864414867710442886999697207310728945017626773597969325327468080975508323521973842075491515446422313043175302093262552532725509040829167238115833042773966201894375356531875647528327647330148157340393462308687223936080022382618937425364066188657345870692982966788937171502680405732880537417213934470433597407253128845268789891229479108646985413057191044065514198689816736169040065876868865370455937243252458753997614346852912161567666039457650506322559272509849488953619822233355867756084093511002921462438430579079263375642185053545946333496901888481607684121736499629050326391350156100983468138737489431348822941617431101286934891580002573452520086034789925548915905124365302910678303192612760915708258612998498016424511268887359606332707107484163632867155435523489625607570409570781618249113217932286260851152320009586980302299309947609159908262739245892263027808875794559357756734050218672671241376134913784051645727621815085192650741522477499436296480784915114354872955965933621815380339741613030257358596779118389088381398123973052597983368627618698392579695755925183811097731598222313669341353940655618046102654205883970012454269439343328494531621635767987874755959013393329003701500994579030961361265571477475562901592080931203160694716745892008986846121501758626575354330053212540892572534888804799060340444266812703643869192463157127598029902781658956908876791417325022092371871474301186325969395244617991334679477496514169148085968701747580151661054085468882634726397632329350265631336231448354232051259622804439295515934923371804019566911877786375389438388273769354273333800918356450537263531568896502159472721668102486821638327199767119327103818412422469131895045944248093687756963124153074880629799835264810906511920292779165127528821457055750546800230543145687983268107409092572086952396827655293417222094552839572477592224508881228881257590899472109963943706071249625134722532194161737821487227019536256158181886358319339827650169030375858828777747490614635804894946793353225188241339760682407823812794206264587936074444480967725043071556423530043792654519998315808789834972284816279351671135077348559273456261307924453495666052137710935003697929116352803209456525341723172996273448140676009255396849273912706349070863505200610252685490104176375495453539377568504427427823970617363457552550149606095008960061628233339787042998454814640166194505667083556574969929746866624402137006709716778479127753320190578179070424842432875526747093901474299651957633388753890287758772847786790866207194727223523437022179095196251723140858510114625558811676302401324446522226608327103291281366929035613330155196997514963439829071861704180911901542483633902802468614851995698362933219251582766851102505796909415128446506460059946617695385842784211819411816561853755980668054349079994666862610764011144982676212912841065060375615459050715818575111553108397198328170493110171935907291256677579400674569775082792759828367891062133331435519444928598055906833217049434004070608258742466643147390802681855549755772817771522634346767231213219747759682892237590731847319610467481422038258752370090546270233810361328224326311314784530091488198741377972040403996226341996531589335807740799824923789070590142695397887488596280799552885988419868295340344133995357973463518356211751017530149568046087531258966178658770964933843022365699236108651365287623178098378968515136365263463422009409668987208498879459412465168656670562693189358369630212375078224802153815699146106783508862009475023179867028837428763226426922312715940796891377482175693642843466350566036400197345437501365608419387908218345567725041138350763835618037460304199679610140320233864863330529912239080588213358746027994775308901664627020093974221574411710035745240655366474117456949622108472554090561615763702319407434350949628519669294611081961417731464813856761311114637146185981036694399575764838356138107547540251445964549534960826531230111653527444574178733106671656311635015910411796163623636165720960472566353728148033312762810825479188489405842347122215731346156363338087231826052663236522134586093979294498826584164314883942743119767244374388762159166284556484456907494311556110721017322828806794963491231957647248696882853432152333997305283679848246858213326195936729864147296990662107193429767124397026158488199794175786045446391255595515617258526362487581249706387713732247555394388725184557976265880390251902088069947686114015836083168229160205620422604624902735083343574218290413284377657041206862584394617028952192824359196545593258880638366988968810386944881049457785146937212356254512713499023230807094251850654644815251509126154637532305111470922932073054232571777659750669833371988407211594629292721853469248276826519051773579118197232509373524642684170602181469952898196926780342113581796605708559807874788660334457533993408680426261805018215461240477740726012648881993155064877609066975583781154511299356157713300170281213585532884006148899634959913053335254147738462188191101477115932876505939574480903297428009660316336083192442629435790872384296678898159965202739792228097353788403069108378655363150961612657251014444081740580857826880788822025905899658775312181954406675121656646214915166397347367102058740526625935002661702333347133789053504567974137927948724594109592059282197577264968691813094557018744229530823402598665113312561481083767444868955931316459862166871609545234020217309770885337798366650803539006973693322340121179287172379289490114713131660452835543511231372240714993411914304655848058759930036651554982355974368243588548863958759938461955906914534243992356230273850440692061599505226989686503582006710906245388657290230659369105947374324996039188648903813386442404430977230828326582955766536469208037769665069001204320227706538807061123061478991856012288702692590992702800551251209820519034124708635735004225749514811416639247044637505579205631521655987443844678480037243673067289905005396165260408367490715168092198968825051309406045846969279265899506047470064957161097319600486497829582780212647374491497224121521097242919136591110724102754036442562390383018303179777928886650710372277273619509072194644182711714582636294172795104930027991046750422729252379592509303505569875117429992997466475949880198074358879357843666010597441446741284498537337549189358517223835026622847428332815003268655830700075874448152893447652492190763672278667342151684422754533591458643347872114643050964974636042134439522472185444211572661739857985851386389190901851471726877240855845024519189514816046138480164336872176976279372296076994007268563470146710868040814845931739789793861485824528264824978224337642032039721911586107508393796175024739796684990757951996043089071074616089307604426564306578350397943381350784998424138238172896637656333739560859507413575638640457566900785787049617913053851464810636711819824336682232237616462971865039828097629493447562672970386664478364680848829321564674136362886623692173376606333310987965060669987836108730340468263231335108619690682391701253419056438860085153138717074992737145085641918999052334181968290335821769315417764916425436110660621558691171051917112012263586230055547169600044948800277527297488488002232506023704898579696841390780847788680791718342099058754315362191520594854638309540262879680255724905406310612222792891860551199102851216086619011999695136530705593748705126802731169845510506331892411864014069071976365811156683971901020157981123909013226458586527262356091088916608646240263957890729410297311518541974861239541840358119504195330303792848381994530663010678723415244229218816827723472351067103969229483633899261815900516354241673053012065372474077480563379294871542096738900788152900808221287342935782333511483494862535669228475369737217587681543850971600498699888718350494838129854066524178692880650861314706043828137641323363740446380264734490076864791669458819863469235475804420205476377425703226659002963148216991448061222698317274585429016799294895030595921458838626490998949344536154117677417590008234786728782477459306698901004880546764341912710318434083361709531856480158786412235748443261299617925957865064614456862331655456958030322580584415900623106115998356339437645955004352156444884397206340152428317176817889111406320098785008392682625554977147654987628098490341196710073483115424094885451110455568960716865118974361407676671485572718176870505190734588362186178516117537445192800900672202083471452434913150977437787303372378628031491289528259241596230330210268063632732018883389100904867210586962759983969142255178016343868782905275158717228245138952453180185516526177203816936859192625241567399270885047018956701104969558732471798397560909368041278552298040301819034919634220481648282224370578719262431704778470753878432078746157058929028527758798733056435229087480131751358546489883445794468918604432214892330268893779662340819153877469874483185113969507826323914477173969709451810370147483002436415898211113464504886612136807462923973365877984558452886958956043806879397369136295384553590408223188943744912972815566650174936027913339787487860925320445678779429734003990367684778472713889305416546383351080793356526851959027834935027992675579996960772768012190256937699601359392915799765549344659471406212311263609334211675637128750786581403006897326204794377591246404726339243162242624684353223963700255857466452692451156018400243230641465766120217732786919951998903175713059124548216213797227344853561640941175825665860842790757398478841547663035225160324892404685893518060607239088149467809418103238630810121607300850834424954971757200789556735935229867218804587097533080614653710103684844713052112649611433631325486318658872822465018877645965040093856828889138102431837565632908258463379147314044438714701208664521136233164957099492663078911227067161065254029275323709518834714820592707252730889408813452566538907026749873540813815637983320387656216706605570582242117208027140098491724310319829025129390522567530737446957202977236916015430554537786532517008488766507734207764837069946981972326614759594888372244849434309442532140752282712099562770580146427267664014894841289530363408840030804853071737404617974192162900353899774007394849528206645533910597517573385424713195582020082210545357174779317429159032417590879240790588301559052155053570264888486364130141785761006848920984857009837177849819306121700757806215087914599921782099863803543614116222950599722252295768041193949309230925745741994398334007067838375728952641179216135097587935112677199112215580430555531402195754728751038466412349088746707653079987705195233616145447140153243505152597266031578698333839391563868456352711116166806046835942994564402881556372079562135095745908938851832046258437616605810119353422253409576780752061719390322337732545944597061543474863002635952804344520574631795136872826720867205765259388227873824390276466591143286106312200639213327714447538721886558849330266498428218942645382336738267995564105913665445354582843445964911901866685507492521104952487146022031334697494562900913283806905146069451429050082102273279889365831717926174902364375083810884956922577864858514846433286527282653358312795088935250816591978205944094019605953033324441885726547673931106041347346129690454580065059843098885876899326846679454213436371277967298800060963417479303087419468066467195484284158713694544566381190888428130271038594525290971523931493178521641056397349581265397965759578115047834975930974800136587634456964189903793781164594023878655122989722595333705288054332823034058854944206903731085674198105120224601043457503381135731792252069500647458219290684807908004830427099098482507649643915181581816315161806191033610909192528845756261527262059595865410358048020871986221460061506769949849051648540008936760393330928003192633782892370851248090544021736751901457812118665808815794226355095267610857863938481331926083334541588142694448433794929976310527841684631173931360584406539441879240521884039362840188719718562219101809550652797330307435580600102384303912206824491454635096417266640901370412678187532780278390605892034084013510818064643363432870956745275197896416131785136918232931590008560419925751917527765551976667883971941479325008924538888668951343673795672369862300312511690731001858145435107201867704248557476151158282409269296628651638708209937629066916419752563517877417523979399805218279150079020011954847971242034438355725665948824716730072766821375130549685295418873158857359349469720722895014873953430348201665419857188050552570064548681275898638679909200625254607589946371444444982232555247611439701020108083241609995544115686205179560646554308701710974658590995934005182052086385083402677465533897073834787161020092081253679966864439183231998856465678046365635162694011166585198043479730224710922899139423792139010181652393327851210460016695847334588613973329544266776069779763332252484776370910624257550628015331445684516263555332891843417691527617542379323651190561297400686338593158287308311388458618850197056911897006646117513213952373482078000550265548473624421335330855450055609394226750253635480545948936188385455457582134951568590086842326005041586523277780629185913944913784937601418571523222275911642277143856089284053163832056471687275279612068649533398804278415280012714575542453982320958476771992673850358843016383656757487878062220930398526105713289999485982261507068302283912990343912589593142986146185064419328372012747409198513480879768690931219929476890790788456071141726952732896857786889226167206617238610513819870173885557078185272978610670468992175764586706208440628155497517392368392931016006420322903341782635845019792084801967907836862081754595637072364949487711619237547395276462535973572257506363449407856058278660245646861364992154327643364871735154874921426172832691511738506847548151731943540165151972288612606136316884040640811609063948795237780452664585670340538783281602268084982119555120047630863541145468393577422125420467099498283854556393664962233836094339909878411836511162678357195893486838354932823060156837226002670549798777255724705640520907567237716154999118606356479667124520953763684747397610121135595776566438028944015502086027989137896446789899739663964267692671686535455232709004308374394692709929842014781095776154342770352947565730506652016987326394565393467605250690150188041603145002022265536378433315458049312555880986377652722394575287415198753630722515583214270795627443435158343296159818708300973476719459881361149269720680136258328403592378091904922464892156141776125034765017037659280210662208423562472608725270714895887908655273192329109677722276739661938054543691401072794192158511619043172040629553490713638328212605318798062501133078612188413735407499361730366092494212157066240370975317419337097072772455085777697631159974322386064635414318487178697517938401810020424431755723386414677721504905647969284167305758445615006233847940741473711616962143469148815881381150923617251785630478050638702660316441233531458505167596836013629861343134610605363733654812045635833175435780742555045255250661481063169528101945299011078368636762452325355996787606503893763776911711338203846910775035313600900728224097924653740778633535468966616575535103984355263761743625338839011161780256706687754781986844444202669223853291958887346820529954278377865579631523377519488500682443904553211024931501516014294891741888341024828356187508357561270307969735430048028881642171391224540945023088607248168207567810743917945414691061059166770394612883679426831170191451983093100142761666215666977083091987053732505331759225374686247570270956964721416317971799679349370409522336365111417892881697985094688860070439638112832278392635002994490725897262889691233131962262918527846419628761418945942819177241431432165147506641238058326869072036726233849990465054213208952037335582822297901471056373583368192036532907280377405007130471260077537593638093896044956765808096527386885025618033122762613138476482967517865437609199186750506364275159624379009066943705096530406284891305767054638293860867698419518593628015266788780449682361447733002492358414714949379320023221820729519065323025971743811175615660646008525310381227734851564859082125592315962849393393248719184633405606516781200230437719552759904625588019291697512985875855110815287777313584500601764607704141279091916548491939929302432975808332938853355711705861046968924597958182170249936441111127333506461359896538604944691480781011074331322184052711199814464748908282613136598443544487392328307453395222321402164569756095745486655971905890291572041852260316804054246241103589373093237390079279117231205391462008038574543685992081693986637148180369475417766418521280908086608701864726281992895419470073619526500836279849554116827748074697175581840844665503826786132813800575662948849121399728432360308311532577727707867230744924105557502710995489389239419010814325322375739970357607234392024918640428239350309380367460228304612455618623991546262883091223306339951818370265863947773061825490746831818106546034145215005324579854047479075972939740718501023960853415874416375055144912833271004992288144215286792204380569039673727393401383837777081223441103521205178080691626245206783186172740647978858579101926237764631050880494036454449443209820280737339221448834424028867569984505696514399472034291352096237636574862642413763188757547790780936536092377110051987737255914891094414157819959827278083134017026702733204815304193333546002757327302392054812632166284053128219733198533929439551520990989245935499284206466079567222597022187909405669603695730573381040274183085984396237769434121058429317181774330353982503005942372592900072760083687727472246156046080431831851661813989466938702608184205968452743299199502028413142228042460776122555527393009653907682617151114452073474340665716365772795037055962206282088819117849499759241232808612742226452857987233335230247351487943967696496247120733923977879611068677295955320615962182352332345184251473115651824000763226093488019830344128831947466015072457604577747457856272649857282432422624163885693586097710188753771497986997164951830845552002306707282061747747174933397158375018212153890340031487038818378849367951232308695053877679941149241433427429087239662511135507664934309804174453470373685797898858590045874601188234607354643050144876110609703491781547826391679491448126768431603395719977298606281479786787811249793142090184314219433783570005987628195495800521293983175646498317117963897495419524581021006586682686332976412898331490992168520115649050033961861976937521617568479110889612454564254071738154096868784219316484790755829174026550948437965131467824424672850039508993231648194393837786639166809708821140985289057641448907276365662770193108014832686684964939409497050986167571733834273019199955675292341963985666973394122510033332225038191224818356575543121664659771260114180644195050950666702638836830420367758886777015860639698418119413559834168715549726468195370130228221766982316398656959967615549332198089762932862790025426446535067587124792247082953086475624031308971341712610869737098473294063933898257478314317928135432780154002398565745753876690097204539528227308987497317168659118860712695648823634830785683483061738748065735494305290498254248724577235912095751612244034038425319412470616205442774750977295127926074983957397830574779042442369895188447179056205669747978916298025960261732700333159114160965792853359069445135412214260570174340260244232033345731640453656130636658854750014720945617512320637609293838423173840275965876636518013132837489753953382292289718514923804040551744077096379570462148472244169093461411335197835460002817141391754524562572859072084583231736786554372737070074710062733748002342217806336286839412310192950876344779209683837323837942899392304332505963295244149006969057084875869332492962784472495477174203175870548355186390778495595168870366432468519039496401112421923014742720524856412178217925444138493615197291652077067934930065008837522121345091241753686377152179560483561948048794674238915219319723062105088501484089590201168330922064767992168279632526875387207534905865998675011256735486120737036184054249003518787632789669445840385557325197115008976364001482598349809743131093221090860843650699217615897517318120303092671936454357602826706704073341183692012407210874215195612752338854317925291855901550268065868897304961040363655383364392923242636194085718356702754676948633098149625565645320281786791024629541138799002693702572362636457972419972988663914618812655084707696790370488204205565264865769489362046663771306476879818079292610026519313622442707590358175978603372661669499616819653031715038780115587752136301129618738289489497123576756963689776228196402447238276709364984074548985481424780530368481528087406907819393561699639408733182967963465038958145538661140996807965408783753443897254656056456958934900560559719778995752229756841672042385802353400306804319033473839998547795061981574735729559023339580258991835404112975919640924776812475113779559833306482225659767760939293933309566509751485288878326990499989503697146055683470916854349079137220342999956241071496261853078767932954178937721043720507145421925313399524222730691630278570067771342916283905495013120593750304278425036951888446563056525536242251496413305189412396738218901541912312958674482432805176480890230652025037972319758681383113506472328569860034026303310323349346841811102980131223762501124265067499509827499613132345150441047400321533692856809542104876018211899066491735219390550198189342101784429904753040155850965113134905669273275221936856970708931102509344325591609623380101479266199824103097026979228345589239265828488896742312170766658396578133280267835778885677869955361678728863989178628424257839652879401822221764186468228653959751095982356748969375610811432620431922235919535417285587094530151675165369736226946552296453466596210382674762873776756480238003799557443839711392847598385996041355281127973665047782960038688561701844914706589624405585468317971955492902073509530657619160303368467358946923157528438083337510538080895463566984031147818218128224709803686592779531627543325972417640198129895458693638004031811784306047784794455493627243236700982307210631383612097546430371095744842862447632647518029667834615199467106413886840946499550175579609761787274785100261683414012263012266367133357402766023923000990892762158118149152467300959762336180712275944508507172913175852911192391673473593361217838089665876851526833726321645907148732794991544382036125497856703348501391805755277968242269649735493923388285408859751595948000988703013899334291810642433933679952732479492928708775980390289837155139484669216124616079797074012356702216463395846116980422464303968138338006107670532477547097918542349308436567106886382277878241321992307931798107668345697477846660975213555687546440675039968801114827769896313904024103693641621100472294901601969394881858420395219885737807506638327436222542856316991973545340333183531658980838501383831712141690177202623475119401591677729582444257012943339605057259322119583656185724773297227052093921250702671718706582882835208293420635150051960698859461599329993377483217070439996386488100568896378080441291167569893711929034636855276788869115044246401093523104143550104184630988479411478727134593429894297771175337806342552440101780281795574300469206122150848540252315047359960677613173582112178137873424002174966737066641713895360353949947525790017965368215744138362877460984777300860373813904081020521352780880629740457119203400154380507687804218712876638370943778985969077357811049503472190654954834208452521591692580753356855906856228610804228724628995788335267717084470969168174161370035156417284988796914378839281886741851027856161841534131754583846287754425734239787832230084800656690826259505049792584942831489275573026418991659605249454299755747590855012126243216307713694389914723111977673908572745014087633671162971878785688718260039114093421606229736041868426659604053839746014036146616043113193102204643293092517382887602813187732193375799222459140547561898877928724134253521237830796582062742045011865705605137378247180724549540586437738860315782315473570021712633733147089178338026239311736797130532822866937122219143655116057445753722956205776504104582608666477205693969992258851200184366676830909504344708766363359138803004329311876275250863735078077915709224361262344011373070446339878857648045895831482130974068732773622168645281405636533119981632515931270229716306339118910250866319768113530512698631463557437258174490317203745094978251691604320698812652384831356460511089765880403113031437404525821018604453888188285979512323060380548113820602856722045442512887779891892895458814811966736747231210669736465677617302974902962577517279425776479286904352501519422675902576404884559798647437953180201652657818250200828941114609755552634321955175439097760906600598669089490654003774857863531838034268537291424022793199935049842769098698771731877334747036711719214387802301951241735259089282633124899245554055137862989421306671670200033629731943589550551494738239765608410285719571545675656419940030116292422315082639141491409962596719936760737783915950405825858575968806884863840082755201443521272590364328878422442272009747932832125083619786720776686507324362248540225097671214311349913202235086894997443808300778508335716538103390869008791090278693419492573357872685331691955578474136485745668387930801878553263628521114466648685997042162918287211525740480826804883380187946156240502721887595352924933851857708036199354015237943876016893752674530718066237235119449050565814846760115118394922008438281186841305281477445173201038193584622384785720779127117758568414504224878953019672510538806705515160313406267719534453217050404298875119473415728478652279835948932884672469124778922601102580867157772066115081154121887773568933088874041245652401413857529742071944703094381082647522818781812086079865796659049053663606140895866062589630401499164887091713580758913884776892028437889935563709380743713869532911731512895493148082419168896061731788064169296431722460373147041710352945107935424091017946824677954062773910105444310822140525412265940563204853043035001285043206475216264123033421434177953149949365913990670623894365509124217747612802234870569930251013613393163724339365081141133798070488171610812113056630777948498742783253348921512966704927296035534786708189751634025213517558712919074906490124989130692878538931425541890878554347924072358889443948876960905538210391064366662132252932680915570980052148925867761545628357009669749405572942290302017412998085833778683298852473264195497444874308664134614344780799394248284953469586433113871073279255714405759350810742575708777542194577215244857008122226763995607515295408219552508939264542676367291830659162771186433251601507343684906074175953485745227581869059843433680369493301541632682665927220323744573585591671557823704671547768594825499413898600970662540574222257269618599130314752753896373879690068031961167871780692620975505673890701628988210220916539245641989657456224181966761755908018862386752657275047029889067177074942364848226964901516046512770258893816237959734208887905951311182292392979035932823396144749610221321483164388174263684798878706948999142248388657582679783294282707282177189083036028856409712874341012141275900711915170066990341385781051089601327668391273455622442813349281509919929408207130525706673917186062173747593580450866446267167935462492453177554856402501243131522535679653389613888935775745043641713444611021636707201885211155987727982677082559617664830632000533308847456616202851166799244233607485526633821252113323499742170378613412292216007505568920270850210432503736303452759614999327891901518170326644242700182029259387587568620418095508612975837069808055123773473991013148616589027058773860321364012784271028493135824975795280780090911571022589041055502987160337681282485156574120627460677988939830726649291284773083143453426936663978069163815442976102714853245186308267831426954632267507055391220438174645329007514894746733092794717844945240449520673285847599512064236728707575371992085256952391248043320701840808151489017058199036364419098786657730725766244720149611688710364612186190225703051777289593215603445659350854045053131541178496130145050646762155587102840493491937599000816064367737773736179164741697220857760181335695493239284455695169285357688131505845738437228155618370379731833917914951881752804859634959060578344595695960825878232235784136274383187594875435071528872622577598548417952220122775449214444784350772715526602582147263145533568785974178740529721098177770353732590811396778426225812191646685720221891755588629581299972113009626588613612394854468869605114750583833580526280993414567321909012595543972142111550396078314249205333903264680077427444439387438129302154017840612969574522184746248436790336802806262832934903244031375421694452877844637175516262409669288053720279379981153315837215702988658768907511532733676573195576072935048752603216293824576541981671225897398670617040546310662283493737954340469497957131988725438746893457566885403615528921660790158302272296938122626381145204383459161360092269167475726256572174896382910518391249740041979878599091679137064690729173730144265793097648407036558635949573612291568379704741438542277442467206592031172856991920999609492348769309965258471208058815365637158903368092313463301938386625292834454915947614151510188275094966162626215422215159958181957117097367007090873305529210244509696337049817883163951564464551968235703805455962866018960854706419194975895288140465051273981845692215024666150156007662320797388461712639217863943389900045237451742519027786420593436801929290767622237227824549295020398094307160122676401076654051879968251537535726530075437520135905903963332553774321300642074035807599642039599485903496171320401073825846682526043504032010577588024413603177976414876079187730193349875188599745109719743012486906841232693348469921230936422253459067930182491747770281703310450958240947622932598802668204997241671455281302682138006832760531625442951874070991893731053358423345049680762553267150910218055923842610941762494377598013401120964887601226594007695827791358583068022952715782942033871342957096690916967970837134294586467047546685199870889192737370820193801813817031108907192951590642279884098647159713375014451937744172192981084401478009533135813655031729676854350232749643343191590854659031975923356573041450674047099008330208501611548080929449316386057937859469395536491853037126562095468476330678831506540623010520311973968304101394616863677186018777922303302633466312176235053604430150077366049440821300120685152073533200253975951015975088885606913981763672374522615739111231541818430319798836900650483879348350763415960301908848193556739723005208895948524233791963497026973768334705203296191016000919176675553993944143182979556962723722471854315549778103696391102916803328654554948426843166622277123244710515435703157668290760112433294308734909508703869223205916971383776449077659161449782463654163825178392874576538479534938607458015100509475345450002888726897437290098801362698430009246499288415160301198143117181254597928865345513361892051896940803764373970926135551670765647025793882621213108129458783985332292899974842532313679019712045717336920367333547693956625992727215783244840184416326770344050511909266864018446427895677327098362180254634129261377363376117538738004702993407895322572009493060631854984367681841913166749479540343717981090432278987251793251453481300448290758154521738290351642717582702190434706133677865104945325608742650771244121192863597401833986954863679432200975786469703267759605265263495496352339137122609321203706977363769184526525327453933822229187967360923918386755037122891706658587638548775549736531182243638432013552751813146380247619885127919698168200898656737269448045088099345870169913788666694808687037910781441588388435256689422031092523815814715833380375098336979915036646175510213429965563352892353289452515341197452725809989990829389051578644804903904323064578287557276756512887830914796703246829732100819892800081652993934312132910293685446208632067575467492873434491334826631495728025528162951538702521014044190916199655199233635624909787545586077217455929415591375577824550792872205806040437168585418927920239156194397960799689328088110692412186180019642490867037362733321264883249697241067810291078790051714384825636387158678269226211856887522431333395028336111540728876447686757663507201304595921628830467452362470921777194183611105827406390812593953768332100104174746087601985131872832852988969988213368889583449469240944133764330601358501126965988421209102586749843252507407681849859720529550279832111081247751942363980793224837764612129459226410125104602939313257722329299654222159198549132036335155505991267379405569028466642008217018129701946525988667950759309946165486856896318071854736442607734589746513439167158771168465456360528769749024724747300138334753799671673504840334191383493976722544849178008316702504213085734112790036387834200767639663680876846627117856764821666829400919764316642967806259895638992667477028870258765748451764441083402657918674513335868748816743024951087050338051938313665822356294363548427994653474935723613112058044158838348427227260131444957849744382197165859108685745237282834002330958333282095637768164763316497701985205887692742198103941002107324088132763160944977967222048119404659450923597111841717793307117730157750996912130646157967847759361289663313550161763896389294350105461460489201679623455916731512159759524581114448528805522168262829041461060735117820561555290968190026750951348727526915436145952775189264661228000276110594798029573302028860726306796362209973371449169490661410732083715957009827920818084304061027456366924343677989055927972641963103308505409189255629579301556259710560827210606577965658898614142729601463860477568345862470385217430185591541073825176354122767268475306364703367715575431118634849465885577398809217223041439048404644218446909921074196663644019624522510412752722367799505928157603244671706997996965479892218962466336310855010005372764205420250037437023450119597060147945426680703322247121847421000060059457942494022247381745211216833152424032392479245261526426548393203751912849325178430815667914422224557483801819943977743560859340955084347906523336734524104458402463694472631296224071853966408202779342352316907182029101983070495086964132623721024352658421938983793641172202122471412564396913116466269136901763379893081748782638236043633069028078106164178415209128496518668401011780783582379233334313300156301107883312298451990090158110832983650583924679405870129962034844416270996392054470838191767889904681266201718328345721531024109551699167507222764332980377812854903832571255678077786990820202963974986128563697564553952947715653785242307146137606248594415069552362269584080538104941990882297874617431888163819838260014975214874267201938632466024835012594892749890840391687675042277663050498702272820954066885931144147477998240394495994880167880107584921627179481245368450976089892022877881850016379673716744043584910326392255382438200716290755873088845347204944232501276265311607094095292328437683057423583334587834493755989954886158798879072699743574369836917856471255926285593317890048289365609256796224512115611872122729080344900924758546959190850562166867075683348928081444663239413601613924225393519218056293784002365439338467412162735266568382781464747715134568368896105951367852156053993899359106439985019697342084624199070584683904654039799493175020990695632179665717165141554354355974737809902794696477132262706555497148468993540668076033878880340108899848693952091014655408932173618643410972507120350321591369122322562498548943570131090884580014253264756167416751300415393636589891715961684972313876754741308247383727033731578874325464284251866091689307579978992935153713856707757102223241233511551964819765839416209444082518445264604119023032497150687982787099344340178538017145303276783469930364140418455494803990098706397017244429139139797751773632699302257440218989538044653856744598231424743853006806632401601029264126323602024769397955266741615021442671404309177849651172647412821543840660016334450731127243250016795890032729567306527902350128412139393122912283181533231993143862420326855226227822208970006854141721049931354285900561142421343930523840539112284091982464910333527686227027828530668131497947076342267763266591207508677777040571550466734905003128387373498039937148539418893502615764130061641698106093717878467218110650171169299450671971234482921903292873304996246730684327895661646906539633704853026116762082078228192240658486887394985592337965767076501673609700536083038793060967726636353533307299618333242892487410642738524923998209720616545167486990379635856320515097113767855724994984345122183668248854427280612699778097468271508300907001492974978070605086115285406069159845856933225435314032145535003071845215626280557201396105521647627404196583936890212439270066599841724744854428830842746302006645080686375399857127935676611363676295756287195311047724956155345151028828344237186679096938309657600227510200306307639242861572086894864123324995345684301604156871797157945303825792099658947426043118634385955044367631201479295593846443077922942478685021754803968814764462392097851381168334785370162422648247460576799672399387064711808292104378372901723922881726090855279875410424365129489890221599848895456113471094323560939804987556733686791734754571946693660045625062676154684637621878266144021153730603574966785376483422099336323744938224968154260656244818916886254508888975689201910810878205777095292606191280623726609676560948334215175235529079343662046571808503085868972522184432951603053273195149149264525773844683720694809925798178154361658483386158121435827529476314984453396297896465362786475063061622955655639586829370436946139464717475139247577534831971868384915373030108957092645280918076704294035817447482189748458770594099384117309197411980718278454287246415865042662110861123183608854902882165041543605120946441381626030944071086580160251225710624386929738758542621651591004587755313412633973859531057930416086167231416480745334911609989346352952474991759421724570425275753145412847886110867657792495237291567553836491658535884385588661307724983298193144761556596178839629982216209097963106652544663461031001574525878446041042796072390742691822027655149467709603253018623538822785070193399992318038754990519065590517000474058647863873942153074393767795739224525772804878472658250798182855445707652108955827074050558685686958602631085030996406727771537034630031022129125187825383169114516032749878256689939491731971944492801157799867298174284785693118788300681844854512140808175542121037712670105417147987270755828334123716116368439926405617549688993277325098429767395256796731545348223441017963872910312738159127827459359791406369589394064464199563560472598117903269978901702435440558257415960897796047971188343034166948992207148539569974732244452610736513515385548484669215789757379326253971863518145921886808520732386226459815237705296866528027219642367600680439738457449067193838838428248726655848038814434120924883635207613827183823888164816880168125178698583376348180475725212017361906975927054769400237537495705341817085709771887326524462408109245233979956896969605884658940019834270900000112966109818560095183196670439688202835119417797029863336596735636445791433226549944819053030192698971715782623491093931262069013308976992776329672774152163191401216548471817027819582724242606832213700803033996916528136341817517121690568469826042783621953409419855697522918620992576836215689800700725283211392996559181542300901128024273683276199860857807416444186072476513699857660146316828946765179077372445254579731129997187425544931913826138986314288759303564924324201270621777322765573043378155512067777266294664967863694570981691943241368076208836780417373924386173278739547716494893128550615089814344871637100859499225237202368732619979768760595667420831458759582112645491428002103411158253499384392123053616199914290611601980762110025585736836289434463371492564813822231143120047916289456283764913399199588259144470881283739438638904377456675171575875320509510826794921384238242441245930094990201660110974280357010781569388084604200975104379920605361475946917938007569466904486264563944723515257912916896038834331838025939213149418334457378030764550059489174563415140210910938616382685368241156741889977355119820123265040436025730736548864410173591271443291953555412696068888508813510539036316813335438913073840953841932132936524573371131177968662220837581518473602686692869724197135857819657911542904974288712759649800096055436656093815433038862737311705118418529015594416223648794194276085923744523726540569156301483571210391924600297320809593744174042654785982512997869117565441611725647360489855517592512223490550224906546680050114309453373886844471810596058868006853043191099680568333478631692152378950567608412187953544322722780547685446640157193911939872981809562624300743675671020256738797727292745665246937287820128570817855287909603837754276524340657234279506486161554057581241701006542383251481096683698911030372102465720205343220125641940958092438181633472622651344054833639502737831249971562577937526285145654334038021837075536269807446550062655430498350231160797258905819181436126080818471251613994867575928841340322213975715450077535373628507039893069790583626009696765603593441122385758682158833604191714173278034053974898712157062798925525209532271426693074379089494583450466872348256706874989513297322929882894213713358220854938493672802205931485784990911412301990877336146430742614168878677474794141329592527947782475876208419958145230247827067236951020322244342128340853181255009300051955213390430926495944840330657796945172122868450902317829515161012523635450196089965784166443388380076522024684636661035343525074179889902740618886666742550683463011316658975946804458399434329027669171661744116227290533001039892355619156202273167649977302404852853776937137209356246347759455586633628820428107425521039041280637058909531072768808243311961986556144268374092121868785421176658571737250612079675158845832813819091654523623339355835786155901538037942832612491494415469233386473038564572488107253048398273586564985699689194230697655674082051685003308661171971841628723844987959871583074922831687778986265038664574757776433182049445992418159561778872328141341618902821042262358883398540089786057715959279018004629909896935090081065166059495326162203287602204965760506469813668737026468590475714005085222327681788533175111669966199735813095757425176082589961804289922301183754220291780648987550694741509303864815417529495316233487687483845181732249635771937962615027398906641435501065493981304076730979013782945285650788453729530929405491816775150823429935579180465150526758345223115841405813365630998539634551441058751596906566276045861800977836905893695474748135507706186520308716478596566568761047848149786338998153430175989430163113075878486510548919966257632094153969499232105672800079648048954251833426047619686549307728256217818774074753901901321596901440024595782789502494743736119989221942152071680682834364234443902496780672868321993518551607754047582964702643313103176594175028229446271604837122717331227486412458304209037143367315765128205076820730835077774601399312248402075644940225244091683233566139811666563308140453131308146428409275120652521351705669727600035208205269443593123896612242898298772176060383565569831255051362161316440579173937519869085100225580653826218402016835576948108629927021369767547580205880070482563870173469706100988508496462678996527628672926834860617581324965213808552722004755177116403572282075314528511770789421501981501347280758475351806849753060860744526091708577785112524933174115859863554769996622531241126366350878541682667827813445828785762478540595415863281331329145055707197476993711036626377349638491185832583840441139578533782303150720033381419488921468545926706475139538653162070792181605486112442066935378120979013952620581662765875562471404349466517846375096620999771562005757059366395507288725258942141707539198955760719080536209931038238575915878506799146864697189989941930787355322827463297580643673597629173736121973212794486782831099400992901110662416351264007377493468124223997010296229256422375581205277342287442754356518610108735276706447099478804858020050231384456355968533264204855550473805704216480054019283055792182111038285645971179701253185858303535560595404738873038047973343802072264689220220061844474374471731254771291561655793439174343705320096468291950532152604764995408408648906228277979930937953461477559375242116724526068066518100800088539922312812555436960475107301007739780038092978989393610175941727231551792603931691952432746456941708227615446410145942118584865853276900777539915618848662490728122869813501825545601145883914729974862935809141550329718355380292802915622304125754770937112186299241569825152877436597083382045192918766343198730836010844776758271868677814581867513799981861631288306533579761439278516310628720601832506983630123010793613085304633525493580229557879911607129466537648383190124770799733899121510359685856481740824615335317760214585727962752961603531479808192243672057562399812129032037876304942319196199190991951287824794773282939424276981303444680082400167596526222601586095632425850082266312356813062663483961976077187489091813434977916320343606311734209300478030883917649682952737436461264369821857251934935071627443510416092903071879794354939764181440471441348642965670280994950914736243375375569322185798859975655917190619103664104591279339211580792708537273541812859390510956956068940779897424097848652500007597663704534780859414379697301652966563001942105945875293496526777215846777285172971658465442498959050859548904737859488913383544267288433916572959206212809334295494019121034058143239604698779505154153455846545704839749946838531484508312967930647165813463113186759553233839500402880371246068848774441041124610325361091194031168439036039015565181667176505133823319052282131361186103994390090628070970152247935625950503016099532046870354531082802144284220306738546043905016160929296658523551869983391550980244588737747378547166291523682803936579727885984871727045053530934536234149941709086889178861643279458594285959606853242203680953855007646076486250641891426183338154462660813125357308433800276463549275622091522438699136427071730541033638224201029365212602208220679123500750691326505964929454131000728583990021360632764188631199414724648384386486142103682040917333558872422940935562437159462272202343392953648567839555289540254455841835625440424232539962581901973394941940486298471958468706052520194826889094301335040193989770236619011177702841502284894025303817099988361451321514017423636944135276264172131720004953561777724187616042985623194662534529350368359721158792687253366580101523614595350417212707327180684263374237395898111352284425148912821513948083342072006187788424837163644381973507389768792365149850987288224397907841875118254423015768434586727041130767410163644545683805203179080769890809111890604581353779670161877629637542389961543863681251602320915047984973295185725817984108820416778251566607560912493710517337843823914979014828241983067334036228042652058968032951877494273032295303684319442338036983472355191870244695899077073468959273540397082448168428435227637911079293309217963274303046075649661688448450895597955464158094276846087771839091739786229411010018111259810011454348148147671459129994503331057650084077161877538002456596869697175505552530060247563973194649528109359197806845990497148441524497687347337552009462011388014712068521115322672270316498793418000326187574975735212238513911607775312971998181922484726247306920123790968231378088902902062547448486822707744263545921870202485047635311533298633585346322781445742550749428127630300447124021893729284686438869800124625855964011824317857969653760012896537969576013795996184922104966227618648369539537254228937507277351300735152023549531996773075032684003751532092413480316634720428414170365870305460518074167318178281337406004548534378964142642050976626345091127774998385072224286854790146708476080139837756825724720932413644204232652883883885939259816136804494267886130121889753802574050176559896110555633476488563893859596836685228538089304416831024762082608170825287111135076679648245569150420014295298735285438750810621653381266388892227549841204805942986361657288331249741540252290860306219726881020868617080636649257274312268600942640989052207934873152837194681227591044079656787108559823606129083020453644931518236247562431067032224158202887971986263210104933656985828456313757267677212023649274108165783797569847607338116786942814298386510453251881532732725899916925160776283500096091308454205795081513997871060583925029779021202839216167842374874494226099581642066783361966860455084126475757049473389406052664709788598379807573461738815107178620840808504454815637197381598843152869547188431369684479342347378810738788103336358528364161358721295286400960291425916498169278646354120193273300933605679683980111755714263445153931474006575007938044347277607116277340716749242780009070964172880431122695064295607761828775867931505651855296357148046997304419305456675232404778813456783066014595866636221375332375986536016640356434474039630096190428459301208609294830200828680956581016423104141103273227863585390919400721347986524568853942765959387742960209498272173230200726953084041093820227972924328017674132131654310690046971258441705113381849121105991625415433968518956668141745096473622240345852775493846903180758778561024669937592941159366934278460900757725320029831239693414737475437249925608441523349575368409993956733878997138600025593152625042707425850892608828669845582153506943735686800580692060858335397000840756652700040432371722942161066066978863438520993952296107511351389018511952707314341137624595034653721061400051915178106145031692538594477033309152903027560512899927796965874474801215258992321040512163831984852003228288349817588290799339808320257177578699891501655693261326745467441757460492642228720114762842434779633584402998342497436940838207076647510999594837804242135150442178460071361117404169894943255807103676818150645809377675769569658025418465563007759269781638693452592004647038171834551869841072237873008259973966165489351421399519635368815322726115430428322635351795778230357287171726459965271349858602358060128469864100125040274264011282330289744218063354567396276498302742133678928969825808665185670625339060929554624875497015412176724816692609675712748124387262310752028266285538817175086958450307073219157438556622279797174598393934808502072450379739975315239582655809870328565186918345503949568020439040785265026175202901609491690782573405169742528297857977892023130875581633657258030072530338373100252649613195605359828273976608967016709342989577328423883716799450912720349766355369782531309571462168116433831279580897568284045411989939346569452680926202370189347868531438758141094447437699220227325069287964766049290522695910167120195662999993758880679986961757406741865971056357914015701405641980400688687257031215663353358677019344420607066133326807510313030923525578811567576080786671082197338040033533760745076675514346821358384631312313671984423848942513212806335110436727967078470602023300222810527345818062204075219157393026057539419979968477505491865194428821154158881097329590813078810131413709610775462231571653281879476958746589405756582741614939931695330419093979353054726191169512564898137003502485023209069308822519235882027319663129022007919407898960186674993582797360412747755164753230502264506022672743134323444836718126243064984673491766706499453317773683937769141666106128225860004432966749564960899853629605518111441532017346389116645412906276976062111902516861585590406551957665620478456288294996618532313828968761178838589924416511056773553526683490670446241343011776759914088898769361755471891918095861274699036357271297606107646870796099905170108052013079979895982464180270594277186443838814957272270171264132388307897094631468270983611878735127666486488123847203141813600359515329891209033200981366919510491840653219016724566170299730993782302570719969657452941589294265424626541684735619958087244259309447534369813280667539356852448995463076723210355771421637893143871574515218492032823743658999746188928323324916182849839748250672414258062189224783990842503634542318533645207698561532372900566697148933580568474124069173796135495062314632823012772520543636510079529798572700779541184482417017937922637955670584735244783621089821694666901857414240248149117607494766996083160012972820095839403056275551850860202635623295607843250230034663243150306955347485734952283894590119328376099293470584131801914883589933597954604578069064177300113393063790578057745455114201288468090428860082440119789895850005252256606646639535969227867285402389460061319238870875799931910192774683611510138770216581873672480068360834971595650235710187052330962594282641169056586593444557878644066023787798495225374345449529909963045317059179912362878720832567307903943070661190341346376170185181548505551699117320405838454917250613230876872847850385543815601918974419614337450844742461646722773276201237729489982189544067301205190444942473912013900422289292680429446283359503482164981540754158764949480369663151314087854976579933062860262717718483996864383483325911440807744887699930340652988450314842172840262317276985649878979705531447472243681441930049575263045397094842532645100548238493905486681668051539376648588194296240990641226506317243054553305533268221505603401359970645502523316393856236791865478514609440546712060392371290295180495236458648600006633818989911070088410112838885631746869929552352944879757812947096095688446160626264367041643623780695474478689386322079825133422586319674852554846091287021905412599806721712461155159144480811862991200486961160937562382987407510966956540137003444430631069164604961885798525050912134230299550707874499740371818496901426609909356198139537776602780537248828107010408211639786500222430183107462310501457243720403187727714980450540218245893512998649143217588855812727726272057737751364364961483472235553659720593034601484340867433784821890066875000143856214925311268235660290011715158002543316866154548662261393500814864094591589075403560458495994141642451556638232263359409312135315552718866106148661964784425667109542386357912183185310342324952484611831375057135513192832940373574361215084560790671547659253746283152992228978665164321312226864823971834448245211655900026339005752197076671219149487181544908020300347758903875615706173038549914636954030813593036457104657314629728701345690027592880078617253218078432237457273256399817470756257167704507801352639463226392418614614215668371282971154289370973569123299078331064801657696696285719147973586355620034398328287219458881171189141638226949306640145612310975338892313554823433456103117017599413960212153468743321955593916045115445722770438767607614014649353798432283925209134168066926716673826871928011159566638059038604810862398714464541945568708603266995171607887220169122290437242195918763825927846637948460791594856244227092355539753043393767687136797702912862350278206009215180937534632529759558212002353230659715538928759542645732587230044467711602966565506877122557649752696506407473720400191601961335872540139166652680956689501070770892125139761397429238940850788338804743596512364965038457981797394774443728373844361444546514245662731568963574573349622372798855883306069493432877320586603274785092733795953800980142372311532069836955239956185397476758718712223639522042637069732558873813914096213029746869765167473672432343068818894223609124536874448719279709463259677788024893988898840447500475275153762799580324269411674488325590251912463978280912538009013007980971280112365341173641518481238189138254214882594535323535408105657341910236395379268806675398056450726736854204007187249284109473882283024100720817515542031320676257254334750356961114476762223793478752897611001867201186488699265817880249866421012859148480662773003583969065510754372364584360142324489850747060423994785433512465103259387099024895437363039671827684372041680137107982207691916137488904844110828918371369232988880085998947827697855244272828330024769700678033403486200982877081869427140001762399161814937650659047625384347773381273806767446340100970736381467560446534874975100148824678022674105492019119960687680504273182025731210228965896811923637125841458457187769674996439953407359788744754372076648170623232193301417981683996460870343516804142977075610063662571724849188973820934550094171801621006848106572511151554432621288661919586920316723682065074406734198526497381581083791065075359943874272070889103303957995372753999971926043729415930146427351765979728992145697587475992060530212098067230008184164959126338219079520023001326608293420121114559765099057122682315616533986594407517114014644610580632599758853116638591636450953085661605926385551996729317033594967471837490113612285387157104808612277740815014545826619595558055897000988119338036556677502833872928315520663963968726656695561527590940954684741907132812996254522443817932455251950682918890342996118035416287608948151595128054992211389225027477101809663205513303523790055015908393662698866646714175168458334523862390803143816835564387772298978459216017741061482375089423825054544266020552649788865454411021825694593510620479082802684111338226997116964619229979024478502804861483924590722656463619015196682503718484592023190220058725483474611162574745831883399653601153257269461818288054700634395136050539503732687343306585748464406705653530337414581155281566581669391660451413940730210905827972310631537072708103708802753189052895047099316391719373002462084869325936903890531916906645660901573588837565071229015747517751786012600347136677098376912632352183842099966200778756828002088101033617274004088736554873026051890447901727683179132162676069521279792479116306671887038471556152092877430758292941736460566142377418269217215564566786802833892323875113977344154397718059523545186338160429270240075297688683098805613163903698476834270049123945408034630649269566952674830558328752443630736329671399463293693427448599184313509652241980336592612861296688705410916859300619207767952681613493288822600868867777674994036123933462353828606900223038257575921906094247696334716167184654465605132661432188102905541469529877250400516392831438156300857817775840117167502483512492207889798144015889116448322364037836189380177068961954132605007307024303208324484773898449345063753279436432165918993811783894089867741431500460877450252422803940055818000611205803698859746793872220119872810613111586754372061985406817849639537531505669969384315616649372051760536227219774000336324838854129457253638663718650091397188767275076536387254436690071149510685940856219007359992098694040464370506269699107100298948436963648973597945327293451266543419363124578086991025902017991635717479166587881688080858788874529766549988350869380664511367818554376654414530047501722636933160533905483044347607126441542951267675552732277973811692990225760917871952313889130016131091037193357993986922552763004866019064928995558758642690795500442911338946895430498430528042796703049076497849816777162073665674876667378456943985346620016232567846944355869578687122323188511209594857148444701687072291056675682856306350011184611883770323392527468474076163555613136619883105250341646185340882013534010223176035099078763809340070429652745601146261005949466440993957476737700911660624515552148970612260527854083321808661936631247724697226032808986523177582487006811657982364750222138153234395604500124890335268546791579533145341824371016436211287396106798544667821011215052806330712729899509374225726877155429878477908629336648459056529684088102946891898186597285833571466259348576845093144083661851271772658549942595357107508024868531143685106215800986874224493995951211744257611830070878103758668403907767100048517704607841911714808691571597086946104792742911730545655361892581637000207015886928932004366167879333539956291682463538772577337310954484242796346268273758020819779005579644908240979517864380946857354993567241651527979674452086329792944324779527353458320513011917171809492880145857017174139163787253699533653447576917759321373594947219119334920596108369955402633868488203177201607224089944730768508761025521182101646831572655572948437269127911648420607993835645772801224312516316475751475091838798075859794862062783799179594296559900618963214390151588956338196025294401507835415655354307209747697382915637527133975745067631603342510069686870667352197385975979816090411756194741215130717200299890356158299234092372352567751254744620098905493903793765623037119247690102297804816715112750718966562645957001040782243749935501105959624184472512934913490296201335354609692803126363730331709369603530631986406276635345969290609116843114625912068010614236248394904305572085470633453600810964796655531108604129757717174853286273068008019565692738616862494626110996892743009075291424044383019282234432849378170418640761944305638574896523898290462409851234767502711356710342156082750709949094592778962692909967676625341404378671030258388274949102819664381796157324772885158920451969154771783788878457370834975006991731034408430588824809225893042824156330697754790957017482480263424853499383277199342360713095476082380678999742465725661524677212552351222766723047312010534363534778331986104134846656043278884499695938120252335477718624932850106740319763667514020059665368145108939639034410541288427390516988993218611921211341597870391883619567398755299749848586939216938666505039020045574992659634842825136816102794968924201479141900513673177961099166053790097000250500734185424411393102081737916968222422982731997343300396257790164584016349137243398734228963195494810284248313433227220111724526156438281812342193167212794733117277799310766566416543979063914322312012674804209482943538012941212115257324818538357917593434620473252163408409635311365287259104324270080591089300821591487592792008018830115335015500651991748841225405698159050228106770336172249524031287859421167681755153171844174077692150024536304444275002282129782527726186680491239558097902879336796470812570233048357289194072091799765014712105819068834717038616103791507704154692856566549309133264391980463176794450154155624520475485315546790585168322149862862545026062012261462844129091539670363902580219050439906979040650593576450176717582701636549208014360390432498913437021224023359961085489144496803019450859177343985432519340808485105075281471217670662307881010254911901839808781018774158776336614821885462551771429768035514133740636651645912135254633387015775415384697279335360384270658498074896682566858591089094750586085460532051531786068504051870416820408996776899725666784446961536218015900639808987975058201649714796541308525370612429179412380865320526062726192399980799333007767053176879873906334349368265875943444820152650434229692011221906352891419533365804075693475269630760484155590658570413471200214085463040473608565909745671895568872282311110554833040146154667801708974186314259666549630846280560374515293640947264170985573312579761358292014315373877853187878042486436022249306138289342300025799895767188833620462579340073421725753314273015396347320947240687822345973410440285101281717234587622597222762304122558895431621917819562846755255186066760178737316361053948938141901049962706336633302152220867938182482127438988371284340224666211093333657950021349819977508305940254215107614411806050447099401097208336642694793053861805596303804050854125447282798748607687613545215972106876378978197517917774007669203147240592225258515874009366096764340320609806417557322837843676896843481488899300175174681349933100013460560676829104364502987658736261597799757312840692212412906185110385616480352418079773109671885424012490159595316531236768165765151012182606329306254895743051562925174032848042032368155899172481471787324949545416487434943502699925952434627834199909831955142514984773609719321035961658420091735593134960198401462963150821814602340501823529819857170151675017241075437362008721745806134715750409522010994707863706957528371977792042380032851675015208346122448077839207529219394430233478156185401629551028695090109018692180886052348869619663131139612827342614233401975538029208536917726988796027692157558623810530162056298015355974117518562472414761614541051499177224719207662945967219310369952522185912937722291477982646438759298621881401997459546659802344522432694811061235704984786709794366941745544785669122605482172942223640110039275590661814317168361114496828005644524971162034734880198338969597302680959518549525072712838806100284666157817517400506113153578975903118183629996105215213749165559990127221398267645384362833442386477954854272602145006253125578302538344585802795334512649903569644263052397424145918549336165301425477224956898916628134669997434542518796933907991863921705150772565090781026237892984320799484567118793339054180504538581837614627236839362890798030027031565944821005946742351404123882008110234475806260412076627481905712770566052669032194880335256097002312320845656423444308282342159056699593681050310004969983502122134470458749565840608086101204601962826687322622473160292146621000591822072062470363945905921651282691927350062614468655851203105890099968105999921079449186997047127706732618978781195514570205321940815823879443551523840362283656286025740626722256526966250755674299870757935398542507350061925186785998242940174721677544321966023976378839286380418488409257582381800641475457338209608717235006887013182590029044954044246143023799361843393539814883319382777448233301612774843278322190336212065534851142550939811630534879784062568967520142941363391393834741915254706014931345770260988138867909624895864653495062431426092107146608285130195619341734676708423343748664983299398989962760421774526850576142242336319272996611325770043065164639889956317201292591949850073915847728793322528178244584569537829075384195451624578637410505953260292572585431186559539987341360935161780720025485647714975214059613410912266744062806540669320607576984364776507989355402887697868284674862934987223393807844860964473102051547306754785226997784818561706245600181357404463410326206740291554180389633848892695400887885680434558989843436971968493518685040438855901716198247962347038593154330133192275774882964023375494179624316185642414150506411253179694018146729166113721946054245704517249246274518631971752942813036496955209359935464000551330454579562569870660728525160470472160892982559216599678680045745370260206099454043751811989303929624720462220316912708959388250205260693903451866815181663461497269935796379339498416915006472684914299542155746280601917010760873378884868897826972000187934709473196613527596449078271718979925462191967318677761130396715330099670938040016072792043685428865275134961858244134666919917653471644661024863059707212340071488722047064081468577513451885135012212592594709033953580879721464649166736715985983728155144229725273784240131284159713602411610122694879182467020624674351145783176592155078198138463770134611567105272193447085910153384444808027277770834094351655609400089081808873034305036917884026930613251440750489369380627588668241779868126420269616818379499219321621699726898400120765814455319106977129766838731391542591409991135947546187344073482671545549312456851922600484355767292495422466080426736533144473577862856889693885070446792185347018891181521840157648905436254072569985963555490842543970324859903265568321471256902184052548083531651465651265599693835451158408758726710609150274982916680456761280342638931854861997871511926215236097458067174466992859992039832774003258293135387805211635857759034709778271340370425281098050884854699774913722101668366669327111258896327947072761820250060031090595915260365941891510841328369175849181081419918104463097647352336960135193358291558798635421000778916526023195054749275507280878612409000542588720740036040089217736198020122574591704767021622463256445333591864028333358030530058024130406376266197494240451005259742234943321320942943710526855536020733489694088558881662968842095766009740131086293485135293320601931224725617874244258305952359881325688069358356792842300887478216225312555662207202721183502014189298410243383236469786346522904332870669090845299561045861639640946400774679645250002536561910307557058476084820716489014131146493947046124952935824041334602290144689109186913222473169597611590296417754753806432098566212652785872392142023932714676709152422407239573252922160068798537024103277490887856723588685355884065257318549775361080300554566812505333854888806944607651128993509662147859762622804875852955783681932815580438431262836293594753432113259562013926592223831038634410495804032569671730524285575004321797497620975378233472465895135588967267472044381744701812668579765093981562438120166416500103751064159739610685489836615920195825731280454065691803804907877911623558905166758971679279200619872918589323983089800494939726603555588256144934752350184561356476710690485907194288343419505962717180978219035392612129771337740865584284394226922710160504474010657026097403113915694951551568006173907447005283925884182907711966630379022095290298303504412590602152489206747407505351264955361801357118918429657898616885589905501955543042728946315944485368029399702990025310938613882242615851043812511868851946654542772678703385486234122958269187456066663595698151606882147386963024803061090508314358827983563420073766597277426423226362980197374137781355633903542037144601018151493918411734973507512783560218103969532682071716768903754251572534568305135879426551162175414011371894186165758191145287863177863881127936088277332880774406106712415703239314476056672336431688059848177020356301569837286435096813733269770357915229549917363668058169121117820934113162783310809829558839544379137266330853651281527174609586380357306402817180129203990012563488897044691043917193183965448623549766499630448392387763496781915709485629698240682161427558120982417497048722035818139989832280364203250143034902843431659959736609902169419484072410224715021671254199447591849243124571239023700802152913427264269846647160809708659478784878511775388839187727842917152783036674067166669150606512888560863887605536254570192909418059456866467401957929154293569696152922635386640165668920955289175359666593506009951514043553844837695979516933289833118626124252407116743509840108556724226616922288378825785045029120325472156746819538695952722192626270192143732478598127278481522787071784310738183726477115403862140312128671260871690695818871269085869466319984962214440884601213707655767341215261924602405224465471907325517169963691462658355203993602468457517285262290736262590506211027528736350991569319069093788915246977173013624599628209343247237006785517503017300558508487860774849319776439027522953019618170332377013357254787854915600032658374474826025062334221862760294854577554759388513844320485916334241716935481378721011626041355119294033246084848435511618679193558687027136799979611204984785835509091010624324298291307296820418203739138112516852920955437465576006999034299808126407075298073345943832037992378351702262784740457462787733089039673295803502438663220275876865346241576080067014735533027369225879669205645589788526365300672568549971001233344705137940872039961857494696155706299167817329336036029330862715776556350728442237955683664018487182008000730078161482767169890144007081487293576357036537252411792527777377745778073155312832513474236290550402956431782775438834808166270948752056258201102948341405126516586989575448670889578599099417256618887744174283916859139096929894814159426742201809832113099959459311973023132785320261661064008691114036411280805771102313127834871079752003438717140192402756766522978041090922564311746320585663282904958531679533460787848377568161133334611067875475372685372855904419657840922078760613525675973789593524557839247806459978178380422374607146340043382643975388521130453564964277895595565829196945167686617843460538409228354129318123780001829962902553468829171403545867587443312552945382680675289774809370724669156907591321276046840049988013360297401442210190826941024904296176914303159559339679051202638149114981798884399382209382683815592975509729261969270405954892039368474257918787599059730625832624955581236712206558585759393676418577439979815538532542129485179881372144158355650793000297467743771079197374967381087703983145247549526558523709765475310729182731285475339765583877817918471518164305631374118972265822208652951573362489995788912689201197532405250714562632826946851711278526672576652261902356479957847907948385209375248177686634681339704041644260438525720616362993062846144625903209954844864040323218237128329232518095337807331525964796662667925357429753193893356781818538341064746925322078127593044413541927472514199628675939258489166874062724853993740258237125334798916185817105334083858277259203833389065220526676319863276616281883044841450155176332276577422280174274537761444713073160122811907786291974790719318814788157397101920783375037155830904027310201069896163889982934344296933008846264793347699213717598150624541838972674049499484505742699828090084594469275919519187957972933557706481424945128394165762031383244112533985968378566707911737790459871089412274880679164683409368523178320608518658197339607926575560729419680984107932110474602049872556067702878587026258625781522253526711741155815471798518540026520141621703018141088790562240032884812190601883728831634465199152581193086940540738711580993870068482924649288830252679325169225807622036824777260759513120105456439177554974773434826488381078605342200935302230632700246077902068068771478416072695507833325392171469996362999680279840999937908604702684240234588644711254375851658969758245419686797630450155167998155201081749210143156543967215425331293466811107646495780239754697896021435287635771528931235410355301670192267443219400739396126274083879676602705958292355694827273645890028766266436611095760949519098677364465099595134377929090972308293117735630836341193833021101920853234676938005393105847474766943470865323186027300129639221628039018666434443654067834677740102071997348290470891088365583673149604337897209338473669670062094336712895740861827870156441537586787483665815694540271876476893135559198438893189321649924193626305661602842655160513694774859045091416234694269627060021256325905681577104558217521706811875998303140971908467540669467204196116366027754494618973737931115367719690227935420114071261889571732735846898114193054431133448448611890913732910310529754885818439105894189869159328836686847188894440394020881201693440588023899321700897219360365881042849042743002669739219461267782392378682653551267613356627440608019571602770179991488189698394924026768917195286264282662452156089216884684810175466833872079137366326182674235620991731151965265377291809687766219527106887447653463550227022204298083447679464490390348543363367822953575799905816745086484230220478402645507811153060584276784881715879772907988458836999539228249094023927264257709635276020058327823320166952259395445339593163571073280111212326705270276869452125522761396322729679548761926664341056740696014659946362531880731843198572813631367322520144684632123652896817832066271129685990991243413863874330556937975657927126603163339298283149898533564375752586724967112565905544088481374285765402040850227326928404157200423047927553881213153303341960337048142146704889829418317374434715989524062083355241625092739884974165140962531137095245103260127880390643307419793870009533532778366289524571530020316837586130973261303341185149038325435818540175789555385782314646851169611913280774016277460261619181172262401683989458457014787618888870446149916366009958243530925927558914518411318281497664976932085198460293430328751672945889010493859594130983449529471477023558956251148814424269209613368252538417716008819769446523642514371088342716415158619099913725907254841206171174979003142876375752718850060864218545598097963968490321665790151831910055446794740956384279990344287620648320483383166103161346559860699957393079289378400542639584997681424127052670131156780334986245153416512421429376426349506221644188844199302635567871216485009200835000714606730825622181784290637171884671787177200467753697384665825606721027661426817127510756770114623182916325313498287420225721444816515715971091368333547259312110017927313361275082851485147971672078326477947588163773004611920592000782592116011143832595290190814867551158326768683811005968426997899467162666767411194946894442152924204534089228533689160196039364348940527696409691073218066308620900576865854487125553709853834657924898277686974330072094709569437718830165183321292133036863481449821267796331721572311344262905602586818765424948323071512886222967105729811960459415997933705400188932117092324788940834904492450226016667972100800262326308464562165478027122935015571223420184584527267296105092084907313267412530596652538374707375437276498250772140140948647602004183157174116657487530756758798887769796945442675263213727834748298719480071404016189213051645940786248903624169063310821726672926434327025264756840251779581241466931228003420721824046637891381157606933193723733066027224578075185772434081987780611661604825875060514392511524943679586200210281216816721807831628145061555697101635788634142069924596839072331163837316954800240198893466832548315036490680728293996563200484605979038964494895082662747262042773842785056204727206103716872299862374574663495665794082716046264926755092452798036542218113624066126338046193651525728776015777071627365538290892943440526751456565487446405965620969783231932071586909345270629079995239317509523413709834680060519656385375710200719636597275663306497946103364817498614257176163133459942925411039171047517956704556721330250234690161085780855886742191094764236120174216613744143707702502272778458909923315541266297882605971263749840416973045792670339164398092930804191214670416548478253550709899595367006774284444048515521313828693081935973323232904338113812951999259550593172327049140836979707418464644129689648771932206831044112206106734951063356159818058550946899170576142297018607427384516451540521181802279071877739182826415282935795988263950194850540164958656675411556563614404844742253509486407117117636434825880555096832689195998336630372492646048983440603242820458200937773281835765779770452643652373639998270349074085382227882123064011485645093837422735610447262618833266652252374342087221384012549227942128799582142662959247123970616147562230689179326706219747350035246889241528800975967297722419360024445218111240891815185498673943507444744990331026522911465291803111665144318802337389989042859222689592925895703169964058890786484753906404485843036468547618108126831451461424596850770733266618376963740958656302910296797719471675326929420335095853512848222431026626930314051708633559203206798243970073120521919949147830495385843270046930844370414310237899251368276868560020540200362794126634194574603368121271909700115997557440746129812836614915069452426020812325847299421469945101940705693485215432680614198982264409517965525866444031296181669846722777937147927595002848073416172084787470305914850290463755270686491878739367132822847139925242646165963548712934329915406981449487859377050333271976977738100845871168132924984680218123337447458916387558973671690313860613962017494356195344406167029382740123963380488449980371456502537235197600262115111299511240971089464812723426575306492672615057320641158221778659858329608948638275872374327919880121693366672791135787492088322781095143581137026811786733118306431151346206885786539474771942993655847794405686378020606088533507651604003680772807724439590916994432316995560097262221319187928101578288537210909104210575174238151637746871085886917148633560611178339605695747078407246652620357652654263598597777273757995256473654778200851588387305208244562108270783989884132430951944871737744869466287402947566793752810956839908958054466092824218080518083973129202131174906771375392911019782881075563219400410423048014008607889599147751223025581045499886966770200166973234563914919571598599341468117018771784953536331179398716942597510025042341661618485968701428463603982405280564759403414255419967248625219821463330709518517606913737975578295486111313329349656087691122380103501680441768027461326508142051516412515679192189236041036162580567930354929254244254696650857977081681849883817820274219462538606620426267812677194449056031278113579138690000602847784005469382218138494445390415295970870061841839836426072664634329004910158354043080836327316802410839760849979637168152470855018275495380068682032422688142620536027541165708362264226486996409160875940846456755167998530339588220514358885473491449097330564291623424133373069737986600129276418565117889990290211888547672451246156796761277403351633659757367955126841909962908179248072347033602392507434808551067081804064983637639639762160402815176324252171934545255617369264902855856181381772025334456976973746827957203537312153991676063773293230464869935685926355377414968431217331916167298856486945828943132993367867273539910417256307829830623521974333256360330876138216652295588896964134233832000370675631962606289858845262198820143609992831768566346918062643428877142124299120142455948625584372204713544245862604384066597055153482288168474489725572095767350875390733033495424688971042037551889405889408607053016008272256097002030077660247403218015907552419451667898553919221512777696328361202295343742457757213048371185592443491619352059651457546096529147182802686383779621839054539078389510180808599850039832996883215482184760945645244223891263532960222262314215081789245332312531102927609800812252469161823042721491063744553988608050038934190228535968331778615280774153224285800256986024624341654001089220381012743073038783086470847471997519337146166898871000407843989143686196389708536576491636234220597766157805440585436038331776079862182458747258150476404441369276954842201497229728902104624913656914267596294585833199869137573811073669384037963025928008704177789938231907254391153661239776063468618329300924693452755300797451516008336974164470761643719856897638740650234282520062657402958266913350055332449915359889809352736347534982310492204729591374990031900199833371905210291472837523561074248584072288767081679743888962958718704492118213219240814018194364973858291976100509074248190082449344245253180338771171628563377414733922088325722931725885756761399638309708824316844344454681370791155889738770357608354666589398699012252088263137892840707733002818336805543849025953503553932818835836317228782011688462971956523220466273192151090157357572432280445220567814636209764735318127105241934142751610553789399910614996970131780992135185523023794673450274582000886452210293215227902332101008230845045889381746691999774255463738549479416784612773074445944361467030600437119901886581270911390806168090815961192050758544473244760461218845243607382418191089189309650463151590394209727701924309977436544180555904483662054562407513885584020208859467690129560835293005673561214271408554228235401525872117863111155553207131333669960238847365576669975992430133584943542144553643392960212964365370491823674599188014223308801883313474331651766577870959126419555474054166916164400585291488804896983839876158160488234162682485902385465899739509752139548514096339557997380623001694070481268162745962609435702595495231844738660973696105184411059568826994890359402399548020780785822597828433613085928372818506019525494835150357752097642293006999760508413493327959173629481953307399833815046712160785197413601933630258955264950876503886093977343926586092800980164970171880724246149640657859152182506232261077360131255125365727816848206879698593009109661014988357198925392915210601057072338818302543172503324190652379169521089317926426454519485760246467485603913040102895824117018604301159530840022706722329765014176274830431273897364962684088566459514883687279737534687181500411809073098317597156251418326287408825834289786962764514718268259096736905329476134940435675586149913467390818191841212854731558806773736223885209035105963924424497529719848352050648685924771494304286629363046099046331528335918573243908441297187098342941623332077633925256583493608271573297830747702594084452838291947219828239168743624055306340765291113802120995905296291657072116677113577968298434610718706723083665383860554572040168607991303021041172297547366922907438083712535751469975326303542671856849331525007187020393076851384838650423424196970715934278138826924544827896359529044118941482440310055729531423469960040165026201424533442022136565263245227725703291837913978970319318680530382003222310980886732719958052471654653471167704980983031052413292054674621955660259961540015998513131246590239986264539742847766423546191810837807953372302307824853559127423363659644946314655428565298142247917868961400771803871373349398481300342910440942858430221893181066773898121699372515559764138227643096912419567045514699807977572426981450255832924542810463053647350839275788520921803427535833459026558758783965829099137395403613585084024258505367354254570312950713104874766879164817866454572147332352180723295626293520179598695067525637961913628478026458855025402014645007414152902538462377416153366680396322079427174074253429417713708790819380186105419686029998982363867769825127976185373930370939271592625100479068807859848494214319659527785773840621115197430383513855171203866340695380165623750593611867237835122772741855422581500330227337254428520528036876436054688863876443459931733592612981668804848382676729323645131807208876740506349039578399851499044164508869405896707288026824543871189681111670928816766564314294959247937449984242006096572466717692811132129231535445112835171472146711608814760792605657067587128210440016053603932543411141573093541453725403384609390174361602285371369110028303087192390202443635689281451929255080152162684961584032250653429394331005516969420676560568943567884682044415767171321472220892247888323807580270375551350389974881182177152724772814571637729352344633548543250185964874053521908029971255362130833115116001682969849317525165300832903408710232593320249354550782955298393610740938769712732298590474026899791329420580279677196059113262722086619604013502532139212769336937826335984379199150272809955587341859967778663056791855819780806016749134588407687319870881215480255382275285411116596437966167939603486688777044498331204304843028564285007003112855357751580423800721099972784362102346702477458674630825844389420851484964968150084540409185938638757899295276782188823919888281213606978338020112285858298449250638733344282948105586038159029176494048095985196847398636852116960577698993825106370723378741522514024303654148715310324067882138423271508508783422527939631512944695385465236742410034918537268643508270995346997961728334230303767339801533045318305932102576020456997398227743965366938205894342396278846131506948388476387121011182215803545875790701141424757693959371435405218202315066976059936208738519394023455202568576106715429824976368930770385579546022034313539696742731326261630591515986867338636327612801050246527621780320267809200458007088246259853409890051103664541884639960392991025698199674811344242217858806893052235366945434655301828662868811881506642041587138333821625436800786271144633792771313105542924432902599834275227282559044043070128920772632311479342992513298614836278475065592349411284522319581398890179295847705575876018017328061758359726795581039320557682084009440465954993053551146637323991739263906635370503866130326333507821863228953580595194245295382378596432772620411289295158222892937086533301500848711091731885802279945766671371062827526178395734570278223458916679425165192127526888083441191402053313523613889029635397173243169931124187995846868991299176410537086713530578042957543371389825733063871827570641341611260608756572898082833742223045585345362558402733530977032334735350235437142862178724456921372436016589339670459658391548417743765855107558994353324315663526004390036857399216807813134944720578712053018224953048819769960947400721750251591481462928887451770765791427738518921013996543688909151719693375867047142038822402967166607528944179331699924048739743972706591776490807316086305378844664967042323189498603775539025394298913950949432306797446993244215380033183039815715547496010623560267500963949579359482969076195863010034786922111829869871046065768192468694830999872633827612058899698521503859729717925387832865658682197246093567840892985426389129384232379920307696554708347900544656189608400772507483284587732762462222579133771769706594089129857815345697300403411452187504977169359647738340856343689333521499752931957701549765447837642397697348489951949408264442396384471096101076246651009152633612325105980810279223655305733222309230222326638937712578979942699840369156528926930957726537869836512695077795981584584635847939759563307318369134165801423737719409993371584149027260136063984201975294807341710277396295347423337733432914236656224579185531857754501189289810067771991842618079524496901557734487604965530058552682572769228872518407423300093840449298652238655322876368811073926642750348565468976132090748689186313245307133478865021453164135294103390632610061637220560710800066616855682371799830895175627709587448023382079151678039293833775003257229918885942190782363411307152757591919481522302137456949360526621870752761408755354318213261329755567865644413735161484717034581781344231468746732283969268122394345499677553699604543191611757793992636187726989959438560163658436321312600843299268471404981706911873535022949072876790261647716244906723793850971551885631886925647046632837126266744496206365138245238209182472922167285205287191485796795823144376814651929575011778622206988571390138851101693249479527239194292452027921978743669476893147866992457929098550331776109607002859452630379397107823785454316924808817980732580381876441625730753881628401687464342440884535184866304712414700721149428073244197718015395019796248771580211441547533424238937391215730458747953238026686132369253171328994498305578895328571988644694233309217802488139664187465108914425819843256594519394524647135163611179300684924132870703460237022770718507708166192354445900736352205862322774119991868851648336178712296675130827194786823554487556529885306098352917400980908042572313492668630448517457553201227881946932840984347200162044536892502648776865325857071176955953969292129694705360946834146331319226288658705808531792847132591009237148101386137728520762563802761893543333931336132870818181278300418966919443879390523958811206437325075403119882366932975080104296222599649793459324390038228155184823460202922054925563838910230972508808900645053003806240320205071025699590695504043240911743314126343325005661785098571344123961928853687298613982028647509100220014405699914832634350906987497362453437572121607750269248397236863553455778979556267865936980345923238066567226186773330275526601275109442234160894370385086806934661149430134498022632269234879576237317638793051424601589956006614815282084124979863095033390661932064922546464378043786644387273818594045710708398217571666711503167376004327709817088021617225077612742007565064151328281931989462004995390718532837324436740219907469449565832795430103302435525066842914645435826036829871996548214246461817301069477403077710283421646998721000473480311665689504496784550098805632200343696133752836466407523572756705917015418985616655655630466939117263759190005543548572155462108385148973201388442572200086664620044120871785089175244111517572443303697196766673475806445765358005767492847066418567744617263001796888402192059188189675595111246127618546771636892556741169291287256357121839485143011080486001806894054242018174262927879494081992443586212962493452410594491205909702400206352051501265934322744286529964918707708726601033463000743983544375270616578481629231948213618874508334870397774557261930088989037607144950951046343154843377947890089034809000269024919673215603532316552907678399228566339942406565951161551152046220799010287213815769342951664247858252191372168149703523971546046865414132319415714244313659497239545701843781194818967441908406737597788791576728183847179046255092237584782405148320164897256196340980936307492415598344929134264193465320812927664228439885382155981038120887988593705736022796024014591772589134613973259499948110784159596566638912045155831496928693909593741297528723298821677609348499664766627822157873666120589304463428293363303195536113610238590834704682509089364575551108649389268369612433396856025036777236276973690840444236569108479695916327679340341722275722064239506759325831884261408608864234153963274416984358445186854938974606658601789766490238647289628594167567007390909715866024289479526999315184227066868225084797587037083453067146598851465403165420055381358609983576459475342125367443288969100238462316403656003460630934028851818484850876628234566277981862528613597811866578547317819937046633137053242742575460912440231117687583632545653130409134440309738066356814409795629108804946094557953872219128398975172489227818690002057828215958630718716562125030371238550692120703874741488054800696782949647336768381701939785892036113441833671412444732143520462340303324854055183097578423455795787953699997547898818562017115661330738651851457508621532841157746647427935042874273144620419435070671984799405534096209436558396495878526279711018838952003502354447430494739322993435308447234960088357491511356112549683872784394831323037837573322264446033335881353036780612840363065718050389174584783295211973645397809432337732321390780865340419566810435335004083782647109116661604603321097261769913076598364608827153526576520883187324394278109042782789270228830699592738325415781238798187528966620974859166656990342668594907587836422065871974975359285308888434791866231832022229885768803541434202304017084926831661831972137644529879029146196076789272422394156738685968100509511301015015692388097712987812895844369551343302932036415150850492203175435610750386151896640467074589230861499658247858734163682106655056519820240900948763764542314807567454165484081666934391262448916893196966150505937810956049594831992791498062846066808095007598319333473759081788252243406990943032512416956668457161627472913122470757867213495112671558901345810141416060054064295573572504681580692358782962336190059606424493716364801649536722552535486977246233141121894925418918251881461223367992028465088626913276653381496047058538717848394997764957771513930626474306051643138034008114969327079111336599962472139814253648772222825582909437779879615748134409715902001021669311045200710643408074684961427491957122484888071034767738570851329861954023770215641625811193271228364996616486101394696656783292456076448584417422377463774112480602651663528640033997882509466444619727369324861545633158183138142396419080347584278006635342823922189449212015298848548708913458756917193070281165540414636564260287202797727568310183390847727725516804488754318323750319021585746789034359397069975788241077672326061386189311222544108496193119472140305637025353000025879392314514113039250272550755050458061240058064012606117544896525227057067729892060395959616441038065234989396818525531979770565979381821132331344242700592110136147261889656876498904049418614873436265941539005735077198167084057681164575149315838281913543603589764250707828942936145782796820302240975160412690649421308626998826855938740145295340462863880983348782233848193630442014978877325079440094349986301697653152498139133512849878099284047853487446766164191007947390242175189311222412311944324033471706119324318031800238224611061424759705331254338083636280322335925125326796670442178504279433377471376412680133202073759011319173257731236885991311804807682246245625465692490544610055002116844420539983690449934039347079556216786659511892356968783812745575006071470450535591511267973915204768289259345687414400933261292408779795147064248098114022417358612771339589320951029064460603516926166042867913157246635475021420068185295468461168583073750407427676124735124661823333894527171739639159188394616588316470836105424291291087332967435690039062989455816422909697471382524586005615162700027207706996645738195404485671712673392609118414787062505228243524770604650353670786819860871043769885483792822840632131415482990612285976126918165285521341406444133364722422139305807817203830651782754867602878552402188358916223478277470463258312996429251592277229407452234256609888960749678861471727814320711730435907240323072327934112845595181680941860544505727618449529395775698113248851123830091137336173979550979896424427439925074665264182664193209707217964296451315135419000237844010855410125938717706166835037592697002149741722608168145945069924353173603029096979319130320263258608664598800892265816596104636755760537395212755587489628577907682852438408329429987017838785195803372974665299698149467130109761938509959338309287310442820496500895959610826493017613582597177340286910546420370331208448349020077789533977665285189755547241221771904008682891727696374569296676289320389557955682406909321940143836060486401550096812827565304229849962286371301288283445437294444749650337670485406149567900723450827989913482325475048201073314969875577664980600436802649788668416976647784944003884327074671762589515083126043586606760202169303091558816145064337395619075035669614515031446643992245590034479309788126656254633440839066834574519919101102509051274538600997960107197547180610715074843447091122284271203910864800188699960079033809323539564682024102969831148467456061385017830873578524748708186483592872714647761955800834928409249773876410637186123905497342943461284792634280875844126843577512280715143078436093152730226699972065370857118910254342199518159777059555002611461323784279956596480652611031335992516487030615893736729778910846579168495776673605820434481322031039022538184245337261903090105378405976179931084461737937664743338632378535979908584391382227216826782878692864294808145646285044551533858187512583496682679153512926396745500338715882082377278473702519511612014060026069323943063014199576481501802006391712285700871561850194479032628743072869561995340666716274711200281058942317707533855332816292812129794627368495961012503830282138803689639820526590571213193279678570111354038568555205501732945159078502756310767333939248940968046060985626064666189223158700940753341690255693194788180895459928421427432137312614264420807497592815043054812561453247013266533121420811026365159718908471319087141627327715165179165774073781968174928105368645388779410162154993033832420423559599366470086632396720513464886516670904876133833622309064175570058508067244704741581524054174114204715425584859332718312154056620005875622617254831002254947424936523811108843089622968264505448908674108915980182217167795807479344341015336061089960739273544104228571563300384447215969990841773946970112195943352659154534202072173577702689217561033889123520432231173296953757613209987860769610632320862705812472669049071967289118483462289744955808145679103354114575064744467519967391027142591997647592069621133044222444110455479312986589439704037533003066819709552223359660390083105558718884191165868040053789424840241795329185362168392232500573350251894222294759923101391353861467012427576226367259004520952192628364471627237562979286537046288920920704327769801131528563276666849281573963966621919844530881641036747375552763068560636412282813692636136999001672466688431378806864248400838031469354719765765322954258716657332555855434274555859501884254087924090823146722163602683988279585901950086704683364971038001367980091895516822980155660835521340001593965648464441825152396481251200889405923897506899484957756268723161637409944114692317277337291082786214091419527040782199730116475854461873372316293100633922654900325266437255611514175575498299346996238535111768321068377629571495225787343595010720524888006047405241954774171439442481936239964987642053701671863156912051339449575484854945426630499629044954727714609392928310176275053325225368131860080184121826148075714667971350514232246453028085977998481561528782504690729850179109285718392587691921530258470745112784932878313983812480384286420866865802765088286315836516542672824321123485979032389408102784507118217031631393979090086028104718853718140687096385101678295397064087128183914341826882097567108694559547466257337515441995824885214604526954305949100850430821123945380814529917360943165190595867024684764637332719695372436948693014752032705380765637638326611251183944299078498086527554988720527753034997081924676805051038495305223650546156372231146682868425856815711035481392979511355526489024224140783366191163469393431036378196830801797454735093917432144276879642520156814793685416942042137468062318533877289609510939645281911689089193856995647976330888908379672493469062955425323236701246082412946221982834978809754138970190782100064801343686781785836698176909576815159784415008075022379078464439169188784373466459174683380508741882233192002228073767999482620805974469516088424705258673197850787855127588046728007892438374837585621072900579350574639767561392676665038901754305487736970035027960657003587556962107094287366165517720569960355073956775389532606843475013911527022042791621986578575655920941670247664872703568616012083772573732063492610799802997789112422882941313620920103599824290859233314030376856317771982110305855100308800273991560299511436096358784499166335737412735349699001847788107194379414640712166764352957132059976696967863090682755399035814168430631598888215412191614121721573186799714409223809198310598201185964051962554850013700167482966001848371580526474517779747720414124504720735844902180619484724000816572001867529808876089312987360465786687968082705339529781989224608522809157674426698760728988787120817841075111740282227220295167623688817632176144188357265383583384599340931557316671438995911698138967349305807873966676035112779807021677638203304955339292882401294151603536163876761079028291426816103406342793760585100558720386717402467403620322285243550459300724087514073549828877130917963211739345742874781837719924016414337655247583871844270161241457718639293121757518076237923049457216351848666791440821180358768989347074188875013786682607206707048645952792437110795868029583204764401333317756457048085198014898824981658408497834474667561787371674549405635228751974725964932846190900251454866774020328765998958041828004101469168949713409885322182940971261438936673248947559759091598541456068025933663201892838606676211931077177585350468692249816012826861559951659715657633173071828903198734741763049607765570043322409318624065529565540279768785481084623140754079639063716965762817266885618967742882846480935650780634181185017080202338471774932376245986398845873941511477547242101804325069254776911162765376315382245677761013022743218014302388864565549011462993442543331242024610929066620962628133483488837754546269616634725345962817691708301555372363894796498077020910590891308340172154513843333836104357472181552724204487503444458391090139137425218433848835964397510026766158961785704711864182779268169354879895867286690910332474508105366476397193915948612989241491749291728023547084185602489531785378995835606255426566929644437477285590138201279197700229865676320782482505513579584333256085669873910410723678355711744423234756526781806321590866661968002986094209106615214201336164196482217604779447610635302857346877437197594757743311000713922931125719844870272652309525554054026220445304339437802010925938221629277601450459480684587080754574201633418554311142234430072432497673651893453148810457481178341461255726547860721875575556959967452664446307454403003370723207919301570507761355723398227057485037910773725006520198900867310416920905634054622288782731278721488791441977897257683151729810600708512515516461082111467423598798452208660218548827763396549481482641416465598912391194461303711699214427329124276693806169876694227840593694372289967725456367378474730300808413492547148999019388095787226033211569779540444409164069542054017038612382473258741167486998019747345037463117848972803808750101478967986829633634110466300482949600453128814449065789697324295909480888275787515007643431412737244302440087796696707488507005318155101077326155902287654275643477698987676396780299545992690403898337794606650549877631862261722536859637547405763421930098427049670911666125649540992503818240583805326516753628468264228280833831905841006994067804477715738061245475615446412001560693860624498546180451377952913769557753658697554264260910316259863868277263508795982531907758583779651241689531984444652134129943101311416225491237153918462585688283917322395973761088319572125660525282365109943896074748280754739364536857459476099997344976007528394851375890346721518860077124873962989193864092553944962379004809556459080306616626137536982606334132958755792425264498707769225818250527901762552547897876729559406439073670283887082217271485674882470427226432821302973207720471716134051524488484586937886780641326023390239574690177116417409058481947181939940765008913043757403570963932989148373830449089550896960146830006985630029518043409647054672267037643900261094184410082957931205449872582926197660454341863726868642002070237271723897013663617037880570051100255262868612366486098276050046434377492902048856091942155759583343449728289521111933573282074484845488465340728307717119011563091406776223236148186374805173315292990210734696337606328871232800438663085007876872115282099063660425106655741676132197621986202075791209507882418407253501449709584303104264372595341194054935717765140937475900354343847972903583507340585571636718670720745104813766637021338180455081668360849616266435748044561084070984980420292382290669965109585130658017185011539401638911693572839130793507993642133404954369178548580324968228129633243005171021590738082441247794254454636190720829562476216008571158410029952971837923008632682262327921848107363764849684852786359106010063994433510778763494762911691617525169111301354847113074669559207399031906968351080094226236200837486127137760038655745036733443120534220909286388360072577414799107203275179117130498898252507264697790872656582126097448755756598252734148298925420657466604195476656967079990166198346003990780457322133283510910585843217184976426264345201522395199460036820262565820307824726393092584621373896763333380111122318837313507581501273226845343220477018436528575941862869074429006197289032983349350561644508593791852680734792351326681658020357819154861495864580360742085765617061285751640871583250071144484166155767535280382595928939893693940576133258492956694343160780072944526442183583878407456452305786892811176067232959897772861548753621988117165328656118564903735973822416637839065879290187341952886193513399773815874958218498044508335839811972915854699369508145675474901891481178359941396639782370324117892560147994220075288522239751138173018795285053832475875313604793163077416740373072176808219230107211992977346545504825286724200779686002686767027436904355276232916584673269733458308041519886475449370054607765433735656355845071614533790765035086167293174701361329446391352247895468898633410461924118866770980585481996292127122633668400682189360439147769510684863829185968441722947859297922561197629742220041180155866483091841002439480535776108733166865461179174091273334929552937192148969489080948730642549656125622963700602446262559546704185890656498509670666773079890049390197756293389205911629363229718999505369904340497794619873850171431380535496679487059154136820703506834321314896364049156678170595196373344148685964616202231841106831867341044937453258580254384991349551794513866394613828824375159761835516413714345545361060187585219426962107365228326795836848812316325699494761619003650466750333598943257614454907103883948058891277653960812869967417830423807632595227334003035739958457550470239517888146489965620772026691223170637735321793645042460933614005338468115009028346142902265527825319032719006569030850334612959818760375488030243194993448032941761491714199577395376952215610065778162591598696681291483691753394241341010389593959367041598350483604893194773537059962129217272786489790288321543549294872229068548833307605796082305781021929349446721710686026372267047193495243666267268513460877972752498331461934063977521653677241305050769305455907444010038928377222740571683625755823220809286425370716869525009591254437488904554247887411374074390379923101339551969142191353637477933415964339575231438823449900920447763044960932723407331919393988207179034561291533214080514943761256055994183248995804331900202848498249167232378325320321425708910852619480479743038277683051979963325046389616146618270884922838624229194246280914884236885904060309871601060887794390840958608004483728889647255677058938937944034956743005130520647979722867231409735340215300753480593136003847107289544702778755521575621121860892479325727054301461316645408822723900337070571214087903703651194283198870036159204117304866001657440315839809681291637311724532704854073958829106884375955033504273558104880213516484352583382414823261895923821363024870275341210082297171061799345649613477721606599478438639971610167411012951298853499174664502535368516149272808701244776469019727069285896515016728594440424449174238164562799645624779011481396151205150287203581262688467125779701060070066659281643086767802245392857543087754205765779273389888525982561840960740030246459186295463817794077837145024860811305038417663159022578887441875219801324830935857237855329560597062481268474499930646891422087352615812062849680192707783074774800935861189089248200879426165558668643662042026484182694309724224688436665883314529491400008060890735974488268299631391592246948804569181043364857654448235720879291300106182555797933486751462160268858716544946849834660817734928848977649570480781618722896061878065989628732689810506360749840012134891078256522485987442021343401223324391130615864262519171710132082256252383520567722732662645514928750402318620686760936405725660983654333270038497477578352612050730801628155435306090160417828499532612111480566291248510680078083968540730131554644807069796408758316751175730908909292337561162490568319651332647251073256335326831683101420926091514178604978757102573218637490933422703378293580723556180692788076727198370535200540202311879261493794448332983125521615661866898376555583528092941777956476070681945346371362086128574576095043939571336719076795827387037851185625431558571471009099580715956928318935371405607428018127482695450546372050016167576970616556196184116066210438536047716258729931105300567203049564448713134899023376511669188876897412403699269676751159679932964449034933823023001274004837347706587308525716973748718677670983842524379987812708131658457427855657416089693536032185034297656274208164660525637388361440818829153544140800959367271544673840338522864612852928048884511850345827718785530876174660151026693120520519978935872451129694633871197923590740760191282848146985792407798751964997312556348079650969222250073056306646088288719243159785082933691800999959818261812925644689190714242250908549818831569690595711104420075047880145526618606142440283823232780555583046580889647221634475927670774284794370687661394873727259552289623264316645840640439417607601288257386058965889468312580414021133038610593436338909255454609277921957728962293426437467833570938839117674507590568845753018023774291882276902183395503628758989518422867787954477134744031774371388526095713281996196953985718567572682285996741241305823070712544573513486263651698452836540111622094502004895077994136835936178858292080847118693877064402464532883646952087390429138159758039239033904976791533372748573240452960843800945642588756195066326198008326158629292146886776138358079807207469174429674198188369502029078414415185503861170998495791069543883510857174790107816960574075818247146044494118323783496513361779796822950656176341090742447381615791028199029486402229560429127483402945060931014326356316284428382216410688894581710676693502007602405965127579855722497104055077849848788844295368291021392192227734170575384948905226953395746677433410743345289558631026559398280286259198308198376864534456215649460415725247431744947538185425343250805049647944091433691753848623894426046429056902555201594302101704747198683353611788681536530958123779232802457271507342674487073064650910692917698167080873716964015809713439149624902097932119786679230801890651066706762630876519369672275972381557818266195631455026446267530295681431260066563887159137893555322524520667086710284715047014290802136199921104743343208565199613730619929976761061967690803916769793768189296907827831439523830198853912083461051832625101408952853770954046674479429344953654766818073040469127601705451588439167171774599482130219206399118605416977854085138283291332347041310813808705848957742128322013490068377973426212294923302855189341496602225423210866661518238624529165688650205936616630772380244552214351189666500129395299881914264204157010836248393846790564220545125016978747125243576911830136051189853403691819809018247005242345607599464688767146926690174247641434712924040253309909542399507463428506225577357433164279989199145559676128940886748023089559129200992242885695795512976355544530121581697645790163216225426588577407039240250932460361388097153930042231885370927966139635182449132102278619491554449317195717516762383198686320898522352699130655125131075828089295671632277709240123702386935962198194126139138063856359290040810402106455482635718249291980686747812576951403423970423543489778838018477849285566352212880686687803087379763160375911476519246480040722804105680624098237155012413694599652458307134641992277578556650017002899834924559232869966314202552209794275285685309830505404768855300061047856337154834780504686982059570383005539478586658265832847745984467653203719083118929396732349572156784248454022288520140867747373873894236293708900005492004673821646489053682632236634560938242718325586378805971216748082391477521482245407267205066050339495905466600441861543904634735089783724223576610512258562428837120881271483325557381699092266556500328066366406199061793788816783827562733896664430869448054580765030508446747536661747003849135026243787658654132749892784644835594084435943650326234216484511773870639641777936441828589508206370545043752953829383505414783087421192415233209158831351267937327513556908397992909749513395984217157938280681791558146381003224537001661172295871546756146169185971846815417745949226931685780934948822969965591192633529471575350441630592412787709832607569624355256845274664517696612588897713732651824089585112663398611817964721768651561984547866038580977177001880257156188465082255092778773235760412641304497881021896530989019797766607172788895320391300704673805433526364351577929426508271122829926224596588393173972069331710750333195964989717374733590590692842345734557268469166571421717115781463260262031866816724386580725701271128105590693045432188485951853147304025825576144182771402903522281804372711880178010210252612513099733117436482634046775014994989779168326284416233642191377792013048718694275728797692436001121292425109366550010104622035859894712163982793923436202135819996279390421881487401873195882803379065587079635570135786271167310261857385512150730593020516482664276718383671007037910403156194899385892284347329675309556030038555729795392787970327451350007895047979715365819459958771130016237947418052684001456210869863538552405057694549642280796359365796169817923516560867385044191107118146831531608872141660347297913624423034789240720035264029591144234890093759895161264468666517165981948857652949691113793606883208156416612779021336168587874343052996067471706518126336626512417277419021110161122428939181449300286307962232964644827845917892924032924327217590965218768539975595984477468251081388546483931328928883815750875157014783264249269356878758783787718482024728828232049758430816968151859592824423149676747664508575266074054810827668357722732964645189563082548979089377530847322792473854764595264664523497158292011216959946723949938836141616616787089737935058171457227781352780231380380213638494051012637134763476008751251725284267737788338637568002875062253005168789315732190355832847968086925857888523807087250130092783624683456551859239729268259276666590979477451805950654178023303036716718556527652764853362692507470601103016889151232063603629104746944909878045867623762918879730478011509816074337737165242556342333495483667676667353210663041185000887195219311419324303025421057561441386542046326831707764804343645803840576802434265320180178551698163613591567290771414182118722573377729013315830177964941547588304255504422091669422533718603834821707225234959715338730070456090382527215018394697680917039662337756127669786845908650213168730493926856478555553281333013094493854958417015009388792220814917907479264243685653050914980212405079333264744044611722955322468063806714732668593153406901685404996941457875734571034661957232774454821039245272780314950950021898401780595643087796376643296926468818067060556655953284575520246459237434472474944403136416880580549119108995600599958852048907843308403748336737056872856427113004746624415977602429274483890782568018149473933815095398233159923321495548078708439850946993355106599287319530404061156815921056382086007147407897875207346973478456764005579085908055024285636316097930445470406201220725770486917629514686577067777197753338018180791931255297925697698204059254750779778759084861428082332691524431180367791990063784275509539042280107932071963510261581567914001071854561820891709975049061477648204287157094755436538592651411361436377703280785844903909329142897551614708177279023755393172388445936087187474696533478485906510912636449090711954218433698791583584766357237724448868292915784982718850088071691823134505323490909379727686844527191105356801466505609389947592506460775994886349400234481996876544092936694543792005201486710844497937872631702089413809433959128804465535460945962551154860123115952425503115636397868864976059119598621568674646477362427507376716075065965950315244836989742113224717855086401355857878089990213571846708829849214100566519322377353902138240451108938947768531826124943090196062285758352195741688556196215382218441337135709214551592662630500347584056494944579652578281571454892054424320305483859887317619129969789608489440201556850857621043518182190390495157070175228650203486396175758177663803426946413446067425091965468627839137823839888716156979429207244939341000816164510566644994706035703987657122373702861660083687519454544020703192360454553579925094852651461469712176014717538550951630157707336748739430757732848372384174117166883321851068933283153647979647597597307131074620139682406452332149787528010507263500275669020723923209528236421504709865819594375756938896824511662560835831538723927811983960571951873716099240524006819026881675752958760420825561766474916500545542635615126206800234050790215512584478514284442305955277721751245090438234556557751936948940401179141428364325247475744841064871981596781413249513821793053691848188535991865970029992038805009339927293992646722627792715879433870007662898678336132226157893703407222776761521008069107750786510605016943536682694554082243811565055369239149819002478376967039519306546608868824486178353437427488042447216643756710662403752121289147148221787718649813832984437743537363326043986041950577680252126650592633518306899910307921043507110851069951798130570893158768919684221390547195771775354237319813149846472363865046507811703372387795388238264811187858203883834375023806992320144705408180780904767945880838234278946424733062565298199951217070175023473904495337098703048172151519889428094479968518138549625419539115959230950231150075669744252852576562404970358049844255549037136670126227661689814021034847038453580215846017759804478920171395336898982620617224772212921480401464779044332528848522500439907196031704430622498877148686644092277721608640425020350650934392806248236324041251268503784526028597869862035930924530267476715474699922591336705056801693187090630651320891426567861088263885512515204976801706474316490081866037034887896825322946253623983243877349651025380065275873834272367343763603662927883975251606010798487419616045326473666637572991405234647608380042622600868572458851220355808723639081409816341250296456314078315854924235654112785142300851806273752627179207163670457958179531513824314655195097050993211963514568808060486128195245523802195886906418219914066732695248695516768125657820682750861912364513427005540069690353934724499000369320453355339377317624970124904287768335494367794253975683184444484405516694834225031126009566056249159368026804586432699649402007566500491471510826070189169331701577241442578340359040795770347649524785864326429514100302485467901079169673731396765507978963239719360590420132524889891060906429926141377200398663225699112742128654085826544046975643026680199712293363780019074662074259590309078828923149004828617829535984790875153566223650355120492739612476968199683532518637459482156409871086071778475505083001061264160194334698355842326189538446761559418551969222006997396195102203337497112654708584369264113425817844169073287933484720706794912474708891887256936431599408166114337024398522799596869370576305985754560810042925531871422034082661459803236862046035600427723237935630601682677210829175409722755143324498557056246684719142778307281405139257243554972697287693522529033022868770958640254208297062214654608660514540445442014752629902789770192065760249995335156447912397065519243617822342851529743602175689016714614444919493048271016591762256662369738289531702514151287629656751069366660752771248842636689245484546198360506982875120243402497466858796493380938495013697007040144051216453262564868870989119295774916017644919958924837849053983961246032543804323802045580200599868612396568652962660712792890717580527573957889978203052595095967873661223456529388542317783917369099043443340617467597226995154250402486608634901043335148564665360156824473303169919460167532173974420586545282452690340798918601869716524846875037426616779236512723135619755865281337648498232338478858046882566985456698832974766429728255067620856262779977140184287164985942401637876589997947847802888024412148663932853864991275991849281097230664649032925719573827584862577975766866467375690856802991111573563764388578269376664925685296505088186690310503238223240707507640576259270720326118210508531090705790909584758608059844929077032804262858403743133536607339060439852297332588428806490003115490565879936362768021436926657912631891766195092478674967178429922290068964832182114027129913309798202448561925912267992320778320913771331190578482131055411694641814045140767409997397556527998655148287342328689084526864262530550769673043922000977446221883032032554809269079941557652514174929681339541159284500876945856621068268751946635214372502996919670909347531586545174994725380379435691135340823720269679747380200643010010108827082072043554142236155037222878181792364846267980977600093468997455585763926171550598169536719532926133006972741883177324541356312784025751238060054965784422563449615798207326103321347041623149466326148291648515859943920302470181669106732383524885134542449848097767915528681075660132778836830504369555353927998469553766461992320867079881433703960761498132036394224790176055003220830117029230528617217134603160251575817067741987516966951118476050352429776123550103552913728194056122798048544534549711799970368132500427466461756421283661533191241674364394441632099005322214577223527103510286332219667776645799858211023204519111278973840162976832458735080693015251813014563988051823870651077485783812217347244105146857460849736395542572908674825069228453286416175734036853304909768454494935370187473412685669798864013953816338676324777457489363929948482099883182245199085567311075751728713686566645033788683596040703017774696735507512561977398570130760783979461506090657475264816660215605003132719250237855657741949267328427505552186841120122709614471232802611011658189445090911669056361386000480724389575776360787611276068944959153326379852819202668070080092418672633422308732434827761561410418919372271286935711059148435904540573662944801095427281329389533621231707481061151566507925206368573256475612896626340476596258490749415869096139936197005828827501291441196886710460202076587629343805162252527762597700546020799858139586581257849212161150011445633338321452588821314282028956231741361147233445942045088856413865790203467974395587463537808907704742424865411135430709536708954771397178010757028315589576855031610066174612579976125182843701024242030322084102768219198422776055392338034518651477045668471966600983427745829516051532022349221672209910361976920211033188931278509966379064777774584666683764011899964702047641235149479747975156782855967473452314153393396627232484652960218924976157017507123934084778403558629895709762496292742425821053768021812034597779871920033858472684770854209198028660726954420910343257735241926133986778301581427113827731050724229788661552527318701272608421097231566228069917474696390104889431850030357354326921751760130100820708498107596889911155129165915125030749733917952213995307743288648049558165617029896533237156846156679974833671602052388862998290301696712076873415641350619096187870461129063347576284047733421072442449773909559073123604208747191743944214806575913560757650872347239989524420465955603972886511740644543579835640090780706084566647722249356569495845990988494348125304385651225734298475047335255696055531766427234663779684760406046224831329364301956650073241881803143541609473693026265002599513248631267523235998062132779854835523426409541928396417101569818470276783924424613602113519151563502851308963737655931033818263236363987776934804577538329980298568075614337322671493028948263084551773256859990066911998840635057837625836744230209354541436382269551570288274578129679042460752081303734053702998984830194286433664445741289715564653073541042451490890935360089053143731342808349135009062193005657734265670269659866437579952415003517046917435805369513192358080814177792975253806618986570435697275769568763499259188811879922147549734528300905015467345693657772366604854550065057345395941817081078049511357824783195026999064810032421014581841100313466038282258777651447661331221619246372013815547715501997192291167089875173350477081323824866143156275971664424151934613637052303227374992969011018821785827648879084276769937022953738088364257600520307439030266513973530930549795827001638930952627433705041763189195521346450644450150879078375196996122562756000175824813413679248628275932883545791878450395790251550972639718547543343745032359867562017186648298947360723340757181241900989282172951918819544642629206808326072688459257905051364607611023215302214665951222171140002094967795617964292271765836704026823811156951463976355719642273828345061482710045619687422937900395417030272209155340220813580465442394904102702881592849459693022853624731293205590517960482905121724161383977449335776372443841683797500544131556760806471801176448179280628774521747629701470275670285494084969146445447447158798790949042195598105234753768129500851077750671513182348818645523098006371606218652370073983691303893576676358315554555979741664144921112591672363539065867846206003280718352831052287346342516572462148374435224684753006084628009221831481777980032438738417624152482349761353721082027443213837363546664505430438640855041924636994316248514031816249813836735967652209468974000010187947709636437474365679686556279024836628629150080372167641484933287590249351665155521940666668542927211842536709710213474010707233068558582390851413469075907455504900603931602628567389668448737301604463638293012937796886580358964244755996814661322488027224395536248908821311927452931107598261001498980806151758150425279283495805896631455546398280192622511249609900484741342796761217409263555552436129868987658702161955890536228806647214127721235854223823019270223934054620721720360732522395507366746413119828234379551637351097517081587431234770667246677410987897360746506757101682569144508042620911438607132396701618238226482537288320642078018402161763319420009133996214125166952484483786976231418332591839689096692552371815774890388478221705741119800932721184849327275179178077582197357266353759972852725489388223816225856469916670603987789623071809829391451541266939136738995418678908041785762831858931818598933749932336654852514256673340787486779768126109252985444491770585558136386611957234046347557359249496703292797808431973561949014549891152683703109862015001802348577338369016157781499365689944616913249004415657810147895713704355658968545037354827062776544275820928214574680600184144328723707212273999342331146381589554775328309537072209018665602452630279018383135439429589861354767912738983929089948405103967916331646961877797607936186198160784421700095264525562215778528568141391543573791205392176308871884638650837205923925130044997100297562714816583531881214724740202771754612283840925309345803612522400751879497470649117988817341097870072547347093508428941889190388163868718859230462519855622609537866153365923849794280303812553130513378729576739747112430282313383039456329797283279966175518635638141488739481514190536392759573861322618291283313976779564095977245502007454696402706201384503431188413435565744085474002079947962117850598046848123612860478942908537467438013219190931028602028861374139560575221400051282172009894890713564325882525173632474195757515384303092789836979140733607702547620204174225574006912634742930903027454765434468500944631291891909688043788459306565813576707251639689332601883914198417012850183869097635311766068725181503558615696617909390724034667840665583746963907902721868739988938272369258933770687690059760955152835780668245820823537672357332207862815461688059034516865552215143327655369346642327846839268173822073535293138748388257698467147988099063241389042000872269292459987452208205205438274790688526090468831521953256133613026922618315051544846353374445685878492070994887767236145839423919738739281304263992640411343927078944646157319942250882823086721795387610569720656957090258075456614860626964220778473189169109001812674515632503013049180292120655240162005977765877287945880070966713876619904956497154840110675368910372449649992472176503218712316795257546828385308763850024885308325975438165172479713782689093426719375266170586319139214881093572153968455966924613285017343602189264848944896123787035919706916271772892731685160082512978391947343394125892942648785465633998681042495000348205787213615968555853539157388291397579181932664551338582477104553013030025776433399338077269725522210504763072173726186559582164423880829777689025831471826977192849834215031985667516542731508185308102861235599102740708758122125725978955058897905865385798114143528330497552440550074332225486828570414565078499607873987634603761508578944914746919570158418676772371971608633053241680689790991303065562449772720114489747392902833574030037148096643375281357744845619436395731701499175573245379044250016784794714502194273628832453633221866792087190299100713510880363915164691967130757565606948710314232141145324128655445017783095895455615344012966623306282123045843068324297323247900307487580843108833415092592000939781380842670743008023742012378140099155440317207406815907101034362362683998969929881057278441642833544480827698114656035745528392593992955166730931854265790311322325756250959725011405332490654324260117481343194547094397560668120426137491066430714008142875446436562196162945514647828316912933842696275780835439266023503002868627307712082444171331930929187171700077568627339325159689507989095755562263208417219962899835971950260703409257883169139621785449557671353131262582984177562545461862899411298391376765251772774428083514946531638914154400848341123102646040365820220897154555898429001658903549013615983918041191446340912190721358373569246535532757570748303415905035370787348833808821638238823039538752006549260809501378211372118418461348459615274528404761951588363272849670027566681922862281865922071806306862171104166586644669555941573843378082579545986521076203255831502177081198551923459618895988179652659986840372722936121750217913619308910080323107420324940787109433664292008526652874826813055208981529035902693442463003316546379599298003709523432873527220279908878487625000077955610214186600636668932695324368162385986567726219989686085766128759643389985049223040335361501573772834336653193967071449615469785242696243614631206803599410787380175591966333220644745312140706098667744582323599649111182191297694456189659040637626604975433739059883733317130486704578449827301644625106215603307431341745364329183504871535215290541995637436245881811300020931084226665509054006323285813359911948351654149638379061897481154487865935862984171206042360114182292957329054252007694633392348572452648549827824782908715424361652910484057641485229411072222375738418768762619978306154254011638179714453902364916203033989339533416734484990703078891241276134149690572877736909804985798961914302350192421325956249204691186438137460499093717468186481867027753006735117683537293864034152466079045621826564862863937365165069280264828428163730995209017500204411109583403426885468408904126613268495272361931476389841742275252753702706999954086867640263067987510578277707393473186931779674536832187312604882873835460909270691656726695738256133594307435377149641375355034675603540780620666612370104043098740444106581643328490076908017405432701889818087157940968143817011978440355579831947517173955207160652315845089160948300772097578394596584996200880026107911208676174064930675827795651664207417845328901269836695935821784507582752720318474769205488558364162705538532896658858159283540820393130994045016209456364798217289967324886626148935010620372605568212301899466902123900500356916807704037420800850296968506568472608186430236122990874268387238299305219161355830853517558784352588545549253188652406526746498902910540711963551678163361692482749834985393791686144474922180496479920760507490443621582260445592667044362343418781827262220867242927324197224282787802131379728777715102151986845270962998115416074272197516735551694345431087788323105664624837947066130462652246796918931325328339627529911630932625775494159875297818339056837083665545802392858247634816210069218119626003949580986482016673252348311028413816636437029895219220882850351355375135449300373386486021251386564850750783040134063812091202326049432076657301886802539232481381166561055601530161418694443508695155510010607961552630379177962986245871117543281950075752558974481499546343177293068094262887533885024442794856651536193910419491333069985895481349701938095079133723748681866316952872568186711464305528082028082606538207862966652310315832838877854016260884564178559436048443502712486131729308579467976427118629047211991828869704531835599536744248577534721593411634690980071938182124909779538557384820446378238605147671243781566825056035474462048132570431232181071342715630024068819363776514412794832919745201626783561594010762520581304845602443075999074716992348884492876539378920070560380720246398432380017522134580957411945645552559344368782632851841190504928272110330276834021270329587820599628961038534149737378510546487664929755889006159343906640093536956172489205095916351121289048437587660975729617787351177672488548390792596984615106506448652009013916194165108354996431652540969115949484501479193580800487589006427298744719375438339431549975967012770259653838625798124350774518056160889677352082284410048599008538299671281014263782305720795688929392842702912301497436046358588777354626426372769477836254361470792715471976921260960945444157640744872660000687415410527544979738230544189230944709169988568607056251736930147439820931240531303603102168045218341898922499783822789584386542676111706934433875077712030907366346649240593931979477719088881621503963171502592711334734099046759301079807474570513399924345154708328890261517535385246931129360955636953019386012886867253921298536972829697942230226821836624626201854806623723200013719877464440529272582018951241581749383000705427670602303363348338797089796715064082151568575878007783612754455359887794443494506097861106269072355570858763301005165558359868647301877762271941331515949930291527912208038194791828347055129392539484237297994443392033142763936386676839492682594008650674062815499323935339401761809087520919133459620201711037695467755931209930694277612896696219095873839911673068326972416912257524156719434327756640492542429613147264879494068455034164019605743840163957444765227976217489664328986800902233305049553230352858402009830363023458888498660178965896229674335604704308445615869528117446797975818383676296822770624728880761021723833813589874886633797929906941424869530643720200198738266252387366546212372471013927935085060065970118532547298762001932032403043066727335200245804649772913697166140312494820705012744632593791099674483601516086174904335582261160063947402485968124501914293705982102293830176671824117127696958709224331232301355293049007804874594968639112623545486617410672434315516846795942941553902746889890871463626515088988120876142052339101976230008136279328082990250058513918303131668513923944631095954714918877474856859680230202272989072263279198888342043177594442100598711821625401581492497621010205065753989990417114206072383711873369995371316868040286260137308338468890213543842704469928176515456804027580995883254612084522491285700058613805506218739186256170766161213721633327503421607871696239554486670062946835464265871397768310320469990661454709136993780617918492297457263324601440447153111751789227578505801704941330534762081864244169630707051116672360668310144588839530536704512049306427361850783969135869752883217868766320137885463860198645801887762647091980951654354641173621453493001776645461393847387592659077247228844684256513633073213655014512586060472975522774654996256699483257561635497150172511334524147559671275204308525740898837766652972489541961034710339776855601194167718747645029829655305572057562416732477493145221413291563951707748544977661508153002342783399321670545720086706235392544488947735282124721277955943180464918995644689180106365011180238883532355396594483935248860916517411588055826033421616866216114871036163334961485042060353141961216685281197059307874962209067180657206005477725872029075142408999079614025496117585984692977189066419347020162710156744305835860009914504250093218006614478091738085061490500922879754294168971212343534897620433432581927167701383726982997757387007135160725616960776201136199513006886173627308418913497751793767528236330951952010802404639870836704761630579996788180198242484207336778623177016021147975618386050058930845670674274006801344081833921230479293980883888440867499279598072357138092486060516263233951715817082895507168899456362725922958639112145207770604368126306010450004476175980003650085412238372128089447626766285369872485815581236466414381114665589357094717586174368903989366839845090369877080172676318542779967555180980043430841909938709436692095808094171692456168700195842709629925586446903310535246728729580792750936601545953259774216721724581315965240184686077151458210679259460425692341914814835219166097631518451281539507915467497146231248770563701429738864929499661800080623166442847747022006888311140316619308612087412066825386597297037210330110220044670621113485228179359145604624617551357423907059025854153914847733243266022672128971121760686207514810096924688449878101424690174317485767599829110460057584664780712965282127580304143081468091281858752066158698175463667751238792340024805148999524376757473335475904677497835779332215505355454069970386538923885134359335441520383035022423586138611145754001759407175715648423925725709100238438644721507098635117499556012769324997286935501808651416523164944795183908381211585806356456751169083589833855186635388275015889036440438728658076653754239976361978082255802134670773191479340013695598100187847144725658290733756761246975145660889709286724133119138300215566965904468955908434937043048888059159969169210898103597694841792360778546947728301425089015286798890547377703806695297331377067423477454592000574640530034452544564444019207881253590632511649502720831315671888495973871379393399972536075490568025244752271347251874465198390951426965481999970935896655150507308986831831404561189874091178391941588888846398911033525215726334531193679368978753105995456578311964210108937287897660929129826788508067151467331874775614631676290368479671017182326906738157645464428204407063648366763147039613975482911363394969757358513949991337076901468624507507471625018106599333698191800993886027936387433647827419568718484530249726035256868928537451205572211828705693135996651520918413455263349022636620328720996017456105941567698351271380892801889464817900188942292543638810947398399262208813329233825934461467153001294980854877647030390318670170108530029289955990920144347502985509685725141033387750553970296353085423521278316630038674626107485456088173531672773141730072073363915686238580257190195721649523289579711290465091375097395915479507946503560457768930043167020543219846267021496309030197602854712077904244223580823202811750103091533763159352770429282037138843481506386881603613836937620030059877425587326752041723685365953227351381228346461288841749696268367915884115807566160783477881010798211220551770985390959715054713798869996281983147722574291432966519757928561659760787492932344835885405351781815373733095671271812430548538592481685463937771931783742565085909819241935022030579953099885995720062878101095889610374614470336641579556260303169861980672839934335488726217223865205151104196903826983920960538479412018305876664935420626911033450323488074194045329146037875525276236178517232197569274987183556565895618068671841656681236307562974339234311804420400268300290671353568141310307841744909347841813414710080168143893664611033918322311852617699733698636838783612037043358573116790942936901939881113954414429242067952933373628102702303456065413254675850396783141510712854741187227586590797049565212994950950891069615555386277113103442729637671029976861585112292770384845435274715806464538731928960109062988337648859976733819003394562184418767960967924727350265379754691174194543707624477275346329961917846537986004902416438580672511339543842876292625236389731153140564487966577058360416449045852770210712194260119475016422456251100922756135022371446708723750879921235413330212544694141460993604683101449348649058477931586066506513975770987546299945846088189557816106596000442486727776895201883960456203149517576911429004891704066291337991165795023954661692988173014846711086779280547668134609910973234120408697509104393483994930099405321082629865277746650506633003965975363298249083296329512010694561337575852844774552220605911581971714520815764997445080081266543821473435965312288549593581932038183528054937020859154158375306130833685525715321218524856413650198655925492088214609667860881773209003277635281495255648770131496900994771077625838226217206876502243776776772054752418655771887821299635254079705955061867215235995660914309480604711791861946675567307315812971289165432256204124950760342236263771125223374438124216704269007768784098476173495767660384895359106919005254668652408027275712672384364458661240572282923528784441195568846364548270416205297785017853189085898418172057905859439038192942841442233703331002131828176767656289194639941679745120796178172712849547624914982216437417683647006187440771667062267346001252645947416576794469273433664862575191694422642457982762939598596771674132580404757272053685405428982156134309233035795951424254709689132798102115898399849132384456559597486188387495354902474163179048956585356189174065369550723628650664645036827999268281744623597934973538090597792851633592801378732427229083462371581869542840196886936450277145427032158494271917759933962058268792392850386019901557836137312915864526818759311178366967996738404674542945987802385133322379512081793833300677401559224987699976659776133469235554246148415890635418425282776928510655929263905265159135053373138724779369062936706700866050395883880417633857173635893983823947069634416500021922391302526664291898295409239091361925905126585623886262439259766332787202360552711106029377201622244765070518658224958594240698469902671939728772440930266171141536947996844434413291515691044957064602925352639560597917573540693369816919543179469760956154139780741129766210527297540722952790476437983503372704555644805795190184352380100352624633561319334250134303576491399376815195569973951730512154325035871289537602725735030810405718421880610050151502798047774484958401829674083956886600181495490528591327403499751662206496506240939702995388526620764508306648646112556474509902942904586889934326594204131004026544143693123519396185670196230492108805273786456057233499927815275814450989010481700588895965959347568057336817499251912125136175037515947396314570556793606372606670995867957892517108578815876066985282190062450355850473180721628152723685898042497236545997717807201242180378490150124077603916444843983438719042809859268800470755479554508570368028740914279293348966684620477449384607042374536093782735559494056291172979663186856963428458615700644244000381291439342297009974402733917819342093618136695778862357324424545984185568597335790929605375112738666211233999232080241809557982325925801633778047010881759836692437100040858673304933247977547639872597961450489151203514917293699741489160028854800283873795879136407262848834959577754271190285247984810163667336894628433160996407285373949818508215439518250592078575571280246039200349297655539284111605953930302906737944665612520000423615912259660605640136868441051805207332730533315626872191478874304401851889420000412484626338973694294291083603129870089923594135060713720450944473382709233142772372877336437220968896246856196891928038521844567334671202726648459765747505770976971893548119440911583236466650755496463469158036542815499289104029366268187116837094180781554772348345687038284844597340513426155807511325202078652359731992081695606606373391690879499257377814494488467612275296651860030007772283455698229657276391664279735264317722188846151323420019209168850613158092828959241904883442516908563311637107974742492160235649349771434453708868189045677456764561141508014045665716806525857408496450976945708607303659516858992185726687673285984581032783117277049603840962100022772779898454001416705123323389501811995810944393197824213880081452657930314060731264913569474640988161960018697873390344374076209661575260882496222240557746271673301558446188843672235353324834373331284575529192828645477438973048187447348969515934141534761603037781531344380176947245171884924586295368593013753250371535691396730742789837486923483976313178059121086399428947547624254039241681472435433006326730220803501082478355149275473058018489085679744805863165466080335321029812589373356702356523124451460708530606989108803510681638856973753255919650611993490483366861560654514566219473633107703804036161034175869612205138501415133669756759604463691917513776771954992902337469776669535979389411055550562165753182509580142233124208195421185508791362381321529442475623787497646288864276961520675544404723089720152615442269883227963082618708863599521624270090854394034971857442845145177441698752220203118949596869106833225782385487728874947483302784091273111428507567308764906627534617857322771756837749814569277443206078779110631354528292890580487490387037107789769593016527668627498404346997272817797758020510059588024787637303233708799676320773011471121413861514000537592389921597625278796179224138378635514594162985447604432261809718914374889585150562925331253840790886193806679072291322604021352439147561949721586543155788916652648833618805267524883437928332665366546267835536304793932346930091994617125922070374601692404873917786745849849748739507964646468394197220468232645978279614172819277220483202114929275245535547842145916552846503172705391700404757024894307292280246221847921524094934411208206139988459395134767058994235093586416931650954295938983302227557042334488448882826551778548331966725197384437091844626784147100909418889847859094795445823774119115720526685495500466836678908370838843364404924424322801245167051324485974023230818441486830465799835012725928731817825411249452618881958413468090046426275037793187623825824288698643525457466199248804770846913936272831350589950151110993911163157090031668701625777806784440921019297715738825954065644533662539165176430249010734289974190056377304890782684198934806069053226030365098978169256054069003986780285709425147755871918655429919380608089227102648988368258892631632529439251900612021445225071950223253291155237098151022440074489106602426694327743724853551531136008916142598422424211414793814562261953487266545483799514089776237775740684548300321306870086371687238895475952990356898030458604531046040583977813983065548637531367737240733295370593244527911096251514515447666548697803239962282544897659325876971836735117262086886125363565693571667394567684162705230286201058555851608575752300082842685827251124499000898641216770580754501410252066928147433964519402550488903156052121388880687554256456981738901145500338996023809874505567936104007849530518433868738825690228525264721068652053357648461808107187210963743799675987260141306625950665142786990709624674291179427329678099701418411275090192850131016234840486438885771453214810640599768924130068534275463510595663514526459114768123844605677590264232882966134527999685601913117545046800960093159314454708220640327507124342399210730887882044862915358975233138012512119019211454173492276091421035146385497258002572734504117147362283430543811383668902163462714516816109359931871489817266195726925558303264043181740245237070854508305916216581296358997981372088972659883522803740382415436830284965845772825698101867360810675819795545998392544372142881962983954610238478098360372000259486615769185552277195230614436622316615001784760395248001415579903369052342870905831222430001751029533974696697490358532654041669363417301009121097410119051891212216830663113024075654695778698846406540520866234130549630216316469816916005643243191571870924423205280032491278403559256469850927963564917093648676618711917448563694004109613123155208430254811632288578132787077178174222636955671883454478466414913365723709724755951903979883934424107947729053245461971515732151694056741346080018425560148869822926800863133837722240479959346124757780994871615227704712137407098059811928881140613168376455614858834404026378962478760944080243915624970981103915052521370881061722741502662055391345427642976606223476599251937401196258777936859827420479453023737199530863099095981702997413405882653297347409939150903270521438957681844522523266640619457522766366308764648111968532554568539541814976905293416019690967013457155626871325437827249083975351262449106789236271670173510562730382317934819505476080639134069780084900411439840959315196620429288798152725946904539714989665140072206295124509193727876374437843218554144428015293901967019905385842233736543758168597009493260880139144215112454252305788438953867648856369618052377587061907718152199325091605980617590980771488121924873479977967014904509271467288638169710696410159436526220867072965317729519186240845932246159074203507227382145654326662941354768028896933964274745139130622604972130026498657002249088957851122301471011119627876263414150761398712635652344212425887468120882760653858555025418106444598349302367084409846890258856988879687161438839498740421532323589094386343173956333813188960309606014254397884774543301293733293013795822705474523343829482901991732284331626608338038866043527947146723433875878603806682142407336988159168293040873068734308634695768529859821523019785205777903713885785808042311689366796740783087594639154554565731188529586549937083001873905493676890882879183995578107927449096793242511422004456143619832951557981625996102861188479018008079900257315554845304744579069153827440827487997723417946080522627824718665905625587337773270427005552977633034737175113448641307935066251710418565581374855873288764560129405757892460031932505242139983503702045598392567442244494402013813360751993296911782855280013728996453144301263730537791243358243723292796814350416031796554407468015561983672597087099950411689988000617194618031739855341645409306988856514803716481443180026249226954474013911383332547721396046046479764644268230078890887006328530010871748609733429304364447143267825948435250086260451064353918187894362658554142530152229096315814836189016147372421971365105531208861352275803978811175534394531177868305080160444462468380331467028371968389456035305901446293530972592159376111977383366414324201289834873309075368056781629061219769006847094067722937031158970094099875633899048052253537441839643565020167095230029309871527112504067412787281224204100809966194640047500401611881454223579019023969581876929417611323071089831262541978275855231943103907275727136778778452098367663600499616368668196027833776435870956116225714544151735171828037507435022178530292608760556812173562615073904509957339551365400600517719026721154232904557759779236494396356727742116031484281612500365785053384274876175356817751585766096578495155149809266510613423876448582701977687075137330995139490120258929487241575969872170457841394633159550001036805321723403365701899492015614759725719461146185830092152311064293003564166303367034100283528127132697339618369177117099856990657187774529100460801789316051979861166573502716425353876696421521906169345346535559534851691485345366790994722035664458327923262433708948399781077777024648316587460076805480777085897439616023536075239406567912825696314596490780621745598366704982249217283984474398968509514417763232966683557702078247057331859202247641616809059169384890680863478528254946837653401461126590096462416522716595635587533409654831132166661873074251075060317753763224882228535040883356490675706828086408849082856888274936308822363642182541519622629776541695337223971829072213507765267635047641681027162315994319274486175280716053641832405177634564831864116782474910552337405159620862832493064595394672095382837717114988171585883416991783740201628539873379037883245331271820797613907683124014159083740670465201022038345427670050469832354725943530412996615191968548827194445174779743360841647365766531474275595243081302954837238377606603522925123142542560002079277669099901827526780022571544206960812516289090311883435552143084673541969267174382398764483301245939120867011665010509582305414573263500793263222015007254755369230672831164118383174033342444222328740382925631777643499706457956411762124130456687937044165132125269929962055507384743814348898404111784195842267153196631551996955881976611672150581632957585280074077453247768885639941145038372741682127385197055185901490823187585199812989327231777492254433691308894828273344530275593040026365567581194348619446611556527506814032352792640662247092917200616049339167394255354278558560657737595423346688445543425010646741855767796001323402892047396128492794423890095284303298630081049185927179299871629417005697903010337487422700243258535316938217262714938176147702795453948011384871247754907985097598625071120961927690527086594094284547201846937880333872119985927011879117798037046849015042463042892100841070156963254562585139112490411618031333075193254798460759317532961153089018797321631307613767274513501623581082258564969327748634662616244501813529423520875007964159231902290256938876572398796003764299671130083516654384579642613685265642724103262114149248865165857659650701467840036764709246352364373799672712427616927376640234401829541603943116264120645367795800218242024960118776363315884867759413056339519659178072532301326028763653100498466025383544517282911609273507721472826542103266466848138247202031763737288624135974518066966247059835338634055496319638843532800044929782424276405253027729665709023137512225468242664722237913955381028766853924284660236590012056807331412560957992683427741625979647884613963823342027967371360604690806730304184822910805775026364312279286818479721504629669254510470521467125348413077672657626831613796944549685873592090194156610600394912253225607697924586564151354204266610086076468535200623975077661713882201711379666291736241457136660559389365789432332918206421097355438507034565651173294806360705513690032026643859795316561120388687500956408620407402871792338561308726279217288755851871814558021561523529317972390338142610733952822488752519887636638083993853890455926864128868720991061927348779909333552761795149399587174826232627804825930006187976983678341132796049018563097572354477161079309012756235974174433335171822654189066266371941024813109232255282494280319547423860471434035845160529549892451617323582527003357805834705927392989565036954452672233968975034777246010521934725220908997526071102412367181914979226104519549038622412267169131299790397659966772511431148076578007336965052438240782170184129928419514100950364767108734483615040344581035482555618645875957695842929275481549505135862643293317997695361613261012790370454478705894613003081402607470966469657810213614378593543549284013347106457171727873014015544785875635226015082155252740548850352610426586244964946045475401704232646348908973428345853118009502516762916151827757926956446391849095220855746436843740513194345779696978064277823466281055273448310968985526637382658823263709953878324605028765160914846844197101597580544236957533290762003262209736854346826293996589231682891196901858831566729028756723343447862137982053811122378701045567667791325531825273388594393325982711456469327321891097172323587751395948148169218449077541334646877392491498627264032509515682680402200620067056404962047716212298654989828543669637287913329036045123310701658769653388946108136509391458636449194644398163584606091598257375566818602054901041300951394307513374907364810765066788522303111088422680409566914387670459833614526891118183781362303790370080737936108034633224408477904289824709951394139198730343361924349633973326784940771189545951636171523506517604033493726302098142984828631859252111681188084232795775900652185273993293541569082926673978559151219548466877373869872250693818477302377384174178594570135188189590908290717762934343818972774211583841673317064856823663660101668610522780482469231176313051950993483902749750489513112143543592802358544049828352152347416211266500926960818767038460882284544645211112020132897662605658307736734619737659727155452276716064996104297598659315437930301784903930156930711985906916002944629208318826047088434459065388747824435734571287780183860838865760518577966100450004515457225524449440096883242522843502477144098830362601347859609563078030721001373063496217768558708945952264717849743582476022452532297145791127447809713001404210519551591986330640014850196061734011371143826795653027410183550067582668113367831850407890815004525760865299421796447182518960455757014889360125259221152638577021881489774646115618797448144925962546686403579502501781151092398359789044683760807390085629866714437459826687778690840421324027290916900550297022851180207941797888506249029850077130425720499516521768759251343225806951169608900236547008530916771690933538539486703201559515651195443788275808546964627928605496934566264444759472627438237248458691070511067558597038836975227825734042811723054898444654016831511698158699309542970854073314141528608079639253118680245952404855187049938707301445560251207045399171550087186787511537166689359957210548020496286016123624444290691656026308168965809908545467685322772565662137960402509091808326864941491130351619602929010315828021160709681798928361184095980794704477123227623077458777675576955384189543773929569888250454246517922519581796075917355948363393993200949340545988833004664096506668739088349113369558846460525206007892818605888700043115324956844462735167847422500120478625362475677904569479096882756242695857469183004800359265970396486778923694143382273367368144060800703709532934982517294414934129600108960195079815215660624859041319107944332595434658438649079997962155974862718911783560564768710211061455020146209306205023428116006172345108849468944613378445702822554791537095951844192497667376920901740254701043157692992042327880936965011795123848239477276003519373294908692636632455262802377024885653991288709484421345689514075758383745318791683796733711269330985329663873767538238989624753399721297149498733293468667329724209820428432596012449919960960946130246584064223908797481454758613447134243142312109118323592869966882201032213381782330016813497732824732304878897310726794377284855796117183312400714004106102674052684159464898540025580968965273910914414291805804614788493187745030173811447458414082616941452046537750866783537260444349560296502499460636196492442271342636685806986834406253616067691415202000784479150918736107627981424687882246784511754663936515729306234497673438383742999020108333155195572124689996386423773962449802528880939819367724394491381474489727922921351640020033185647611249834657125874110538695219357688395244270873506557437343910287745104376141783349793502079826823320219364217391479759511967886950155742681839137506179317115041725695674134425821673116173133659745989338906519720683625304652365717866303646557459017251488513530546319745892973019836790236081060147826464536618894773618084654460073191593745040667551916259409111904304201648091046784810977179270833627654484692817117941777157999120009593821272793545641019650269128628469601078887078036272334650512195920729498352503148979366465888489313881049845272020979415943751424882208593122830780463545893033540491189185025708694690949082731409461989393072017372747709194679137805733534252865770924440816239975929687498195561939009920712253317617221900177050511723751707191740284415846960217750383987592949701645348881632859448665241803979310506342735446317106801651577186242394796796023491585576187449823682207176861883211795511875609705842798731221672969340692941613300312630789291269837943892215480600711947364593115873383055606916196113614059778567879397337857607662867854122604568961764281896705125353307585133426589491397086996283018386938191110033053324050353212072820602960331375866111989917248138105157342729463090520463743392085086066784247303977377000633283714470358620312958756804620154883111780664039557842752400911835926548374040747981880396920447405138171792771367091297300122308636861184625240739856414095425461447549420100332394245952556625820473690965778544921400939817669737426117116033275879180138223141455827143761411679295403088245790689181993813653231232620119901419889434899462539549277037456032383164265716218942173765715850432125319750019718981041293785710271361885178817578962329526074706226940193257832482366235606151324158814222773933397153576301628561418289229816001080806987955240237893490253505106310014580953194664837527085278801767730203137179521757557749190606675843335551511510068333891172995822572942799238372622177695113927793604130807515802925607360507157794195051133916746274038316040508898709574437652660881343668848054246803334807112757751142699405843550731345703210136602878713353710814096523914426289391024975765197345769012505951389114970894184811568790918303978254646371576945279327557172974759657669873333364054345526650547474664710762183023518931492958637981668232338824202222876964782508999554053399381009765767032452310191319232261289996521163096857337531013488368582450464478842186729097125707907382508658326165343288169720523123826854784267288338652682175461373158731568695630661143375844560356096588272208958393221988858031538314076712241390923992000684087500945172232843794984411958980600328754942476153077990093501944521120670108795369448941466380366188586032088251266985276374759007181329528933846938178441283020354028713451597763186374181675437893859728746967324084072316911136454067127142980694275959512174353939364145009767375702457565279423595370323176010577213637134716623465033931488185340912517050727672132858398354880908196242378087435545196154125800570679709079155267783534341749327477929966941054974481888111993936957244235197034974081760353875915465084763469290932030140206160439510475071376579418249723443081192824490689555771125665326085270048524617552014309316887130600187746523748453740093884847756083673494302669981943756499286534551542444569960439088368086998194087049022142149328825482262179725128200577205666902548973815078560046768012236215485703133858773188440706854622619448017486898341319411251758068976950888924878047177368151037737298491109706047949196280474515444168907810878858891574581354859950497790929842621110952481909012582239795485895195396934268305659612346531633776729723201389130866793899734866400564895625745159346528843124980373212435121789554088995178073670719550269667205135930169117026017572341819827432404161372544344236677401280324885346641682174707963896240370548476897641660899001141256424033278920379276149415645638863482889194718976988389726983080117954593691961618492212727885989042587574319719669766704019247169561130372461532007776420028783745319531199137984026143715675141086469399797841547503448114225346509587251185014005064176975455563064536414509714757062467396615242420128110259783444222480737376662247372295637577919396178937070614745565610132432757028041460910824506488278738930051976326293123430993636288885003717952298421851783562599926490261849494046262701733111232083420100635908578535376081125835116433676901399251093534814401441730512024408487285687669295328986012595178017669460199478358452789810487613661462121337371017760119045495645403005189598274413473618259456408001545209203809327727508812355054659631215684195788017069391741177743480047237205696076135359493979644383005468633418952225711138607033196799353526843915948380873102628684440324089712113954608264835783721882151277952581408408119789442216724888840371440383015100344508862776843800454692250238029882330198215110508593115791538102361043271932633332500314138728100380918974652349117256795846062767703805295225466981921758962374703258457423722872107789033376256585373847470819050111413493488017915374820002960946208462075630764778481666692907898120370071191888054796193482690475158541502067836792602373642210766237445024424623080784659216705154245478482807011690549714095240905172872041298068907067766763340795921857114182230305450103299592726395511243826421328573851964482460698142594331854186402599405788423084725122985820232621669828726063136357587329774315240879138037128906627038428451161763022810959529701572407930279991718040406218127828677308468788834591275485110211466116520812707595323724414671920717236573847864114703156636043812241761071963106863660898903102832603442652680681758148516610349836526191426109315039179381765295400538829189517132450928234095475846129723445590751891581361372622789187617699060758759502150546043312184793694019133757217982423684436861959290877956021471563945755273605866723762264860022232960128035833590374237760753502010772806723562792908107341100658929687177053562637249480260383650828002116597217663421414977958404661886230523210375826052926165608742112802740387462415095984000193395413077491782000261925296861060094622967526663448308188012618140827651455470473459509040135353534729836817270792871157498019237410191413475740827385421586195461478620459840389312907953321602597198587879346434690697367542989418917477723825430257237374640586791634504076986468977282147325684788021699036211060622892856287646913993290483627152776862603609372775039934735106737552719856097810846248162057318138170868771458865578226477683858527565629529624613730570812741892039851615039566326059887871567639665386022170759939151439217562316452502520124174575162586112418147725439407910351246837583029815543602753541043964553626258142901940367478376305740898964788756427104212476468203612581336015968370331100642229443985137498433373030640825412678219861213554969132057688723563957626828059823186996849804503344351959745636617956025476926256250982592188621947974260452466546435307818432576088871151267867574230597872576916911475496917819256612498094176849705281068720677694520502992390748857239655485745113496750804216236114551746302426000158654082079150580302148496267502659216015731924667350350856320456352397538859503963566108487800784717278269246494303197414431267249083359715166038848498625606733290972564293550586353674494193356418373447171059466885177343229950140105646171587211550916367976228468342854922093089250650557873411940319722660867565120081088250502968347168999683327636420128951461252527212554657600627866619243403684628718770323364435404045976460087426278933597269752993134170300747625172451942722832773683580999488678961828233306648289391785606034424662187144510328262084577452042024449796309443746412077132338898829393727786108288968518356501783187953115571395739838467355191744969540474774585014371385377071166858585889911599888177366132462576815878934302911028924023497430914043557425569714362846816103801658889325205154999204894435332351782066485199205509785108883640772766047228620588265085203197729154738802197356615657165497395156789369276530158203255088024033211666718476796287163567493206619443645078927160436149892146440652451370902682455391479383586806669023569715111014949100716466755863156693925103229875995679787153599891348722302620497242846612118012859833117115098812981973841938107242262852110476572005458864428803829550996245691917389599088765137523970152458680242779539612188570282712354130116138076677994882384438720062123230491451397737212215382510280966288913333485332835670505564169445720297494589793936533857459715693312152142024916160631728023216918769003470083503135887225925434670900155930479875890135139347567872452407121752264203935784719755034349032997160939862614232418664145859127384377887393652175480231885624828497666026163429129918335891877466793612769874609875078875548856038954477646520667596877828988969389673728343004652832063694359613405987006046838943614438002753038075450546250533237611474474835068910420297104566083533503440499646911430465960570851528727071277795941158870106381423592237196283180066621366925516772816587839150149854377855911459357144635639969814810146064025661948681623339824459821253547300759391115780829132887868493547030509594518396870993546446772142651313200253812188818865692722262959895746657309435997591758470585875940366806843283282607293171495248011083630329149938512013908252564208279279741858563783213121395381706116958801996313360168309111143824562123622770484696918075107745716650282396112767109751227942057690995009977729048365146527693933382042914184854927702038292397512751348524315209166836811919203757678095710329584852907724962024642949444559119028539028571557452967831544836927599419876826409939842244178618266528125383217112686920547882566715600115207404196846109121617237419310718562442252907420004032891451463292688262581742070702970650851522354344693525128839093740339084402334837589352315159548145962453875855125887392122093956578915091387634006671240456846524890081591184787322571827212404001396961832919732741491303331216323893791667349431853741280860506662425446034822952775974420407221639237766399287346745033586173235851667555827421994350473494882962088507097853354576079428913129885447435264510125672310225695638888156784081553008214470278361497327170706531010222639190926759042834530957131434963281979385724873073653857273758299475814790515832667041969159110345280759419896367618392228082840329456017303733989887845207128889937546788148461778893502923385127517873295527541088541294839634251010491345970447282339624910788430027485833792599940123682375206050613603227749578600433114948043833660580995044678318623062080393914384151555893830284681133635237143424284517486547815697107028640859355688490901443836573150412170790493462108440431728820703939921060428926078629820588036360345712773439326418937666943947415952645488609900631705122626353380418846580662362612502727678041719413092431603830558597168528512923072780323799158332565001291991959043095825595286637002023105955524780627835375377438972898968517699378224695697858065693062173827977386069910858521595297057042066672421184311089571316882243195059291696338607358600360335820504523284442069247270465521210499349198934233189609783102978173922499735259520973824255102281595466663626929468107224485401905556705591725823938022385148754932088552502613654877445828719323493622846840389550530933280515247404831027480092420779379392369799997401360285608274558123607846337126597812175466672342584255826867581284573430027522283213796698128969165138290708397307125882301036820551047618013772655032834324108308975227868946826791874026195969372558825246038881920748778202253735851892237210282951091093253008648785211387170772525705002762857689033491978361357806493807416067781343619274727279514105157117276725043972885014570899671432983515042867138310909746470234874037635524275707946694098877008697740568948281002331249371967809925868730813839600289858742166595493900292048759499720940061910023908801215934491927276413916644972699666813229205792211369280261581362892934081898942919641226274448700988505600020840485559559045842244121136984079082202940727358473008370212998779678883730001209044826220983956896502509925425228838388409231534066998117072328743329234603060898159645923528375030496663438997716903015264389767807970632570299342761294506124747192447268661468927329123751632625310406376608014952174211791077247226239746495140140344277589488589802416262110884564342641182619698915272643907033025527835602430749107334500405896066466560532573231223724667756073808643267863064952710906197716989689726483975185138869744052308386140856731817330679641654674932630089157497451964549426385668149244548860029238201494364168292354219941999639538143399899069847631008842907238994159268704784256963145071137963787061344594713112270353415653763122109059487634912058212756097550333701841215065709269464066066354573325167439832090469915798568488756836421170467892647846977155264189541715510999865542539658076352642643098146849193525641529075715688097061674554677908929881645006963358695286604391584082540836409264621104263241741610905495467352128886555427511088043902519790380968394152132186873378527999607481784568349340539573665463287993339862522935781339712337356811048445768908679251453730756846133514802452812650723433790766059907892418205885166779126227527542798213767336313705242148074626506451672029642616935036634015212301539658873409581317119222794868259769202742461968508817746680589327982570339783696240398032839289740091210167358770756558688886996363080879874908399764098134159897407448015871692790847424596365384342290767034250480356590362349813900624205349072084053587355063776880507355759608119573905678395962773791822706787201995222451389891978672482884083775212797129774991153964209578646277794995408181220986232505977821017260423836183629766687904218558860919297996124168574371708288544520016911689947491542627605418176590464862964725156727074258329748314161162210370890592199050325507548727083438360437149291340488380751560182778792620847604902321502815325572651502841839979085543637573645794978309319538585858904447197877322250132499864019097249129484938428944568042688991345930171404904451604074816778239381205742850119508428457608425745663504867923784591069159738741137484357044880573122039643669505250467201263979677015784430024469633739173931205911770403576797214528231084806798771322742945065241660417921859657630683368381624279888881447825572736134479880512756291975167190089491010328987952468836029492678782894047826474592594316057332859086466606151113624760799368652730746862183548299915941925472000524887188880609417494874195495678186827719747726447193968654938320398270194063254171602533983326608085232139484780964784145448155081956417569524218294569697023278844384181648639752105184579025991584734544851995501292364904415494454040022214195537215021069699347603790003615500231670733261502342177264702287399323422876533025496402975204157230591426956981113968637431243373955389907206613443521109930562484233475645452663492791598515660266656705156721528935732488306860340968430454980818988877130029217038565226321281150201264629441602544716278927751365027721444329929468280591477142738222264301505134823526233388250102657376123650759390204729096547182728930566455321012279638987659946570046475810009666580493226113632803345678834199437626439123569999564603814113094870862811796647937578088887282836022183418713342291905343751711936275976785268830822539805671078203516269001655893025465174823346540662736353076581037550921281958056872896401468919303099913567609016606356338475074203569299844214603036427977657343584128696589200941191816499978906264638006826529675575386625946273495384989183424760015638217059641483624929524292492032167443258502762467242894085862954876896538986179901706154650846049943663973995811422154827844450686824053689238663879796199477631335154006157781513589425065554985825207800774329733679684089315370532998489953946407550845741058697827810868387299983867031978522871715385071281703500235036664612931717254409394818047436786631509622043525980664104699849200398802562062272601411041981547941408038780870999730317560526530807226098119385289036875451526607347373592440942749612067921711387447479449205188608649861479179090371089341357571989693581733825038673421305911469033283964786902568824767477664300400987049965201818245432169832754480323179069889162570551828577548723701793417384199327415503310872963398734518080471798345892113399675912850578055331427757274966196326683007772011810034539879241528400141748766768377960715424833827312286801116923887068377534132227676891264210812621516208538785468474781285737695965985841708071113728147955878238416526946852625075725772504079972700202459911878329546183235859077217816783956834825422127167591603188299197038606292796324514674812629438142805565744833037195243290348931643987667507864831885463244799677602562629598423100603957249575428800469586716801351969330782070109958064911603167423041724609386223081076105283691083293988226789197956776468204065994550689475770630869974538110211829714595064316384629210167532549046594121321824596214770019968342785917769765422064648402213024452595299793781968513816919912040260454913700282175187466693048204224936738274178796584717310172568128312266539127072781284590906430928639064039717602318936576265104504706863843881690105615682837381239725917326690113889409423231075526416412135875081949298285407914761185528267590736740285654981921649158379585923529014852204131199364440203039038913261063886866770022826617548407668357996305081389394504517041799333551350093560316126938030201605904403970364538364486795443942715403360669514023760782327368029351690710006797003950038327488328188030968569193721423975911768721850604572384411926313007462495576264951201042655426481197906121300314270095000844637502312852517018662017526104672138481223939298389730929131350661938208643803385480219393059595542468493597413715295424900576071602543825894382572731802676464897223592712967904412257206732126805168121726282009070895679835865776041878145913549179418076729673554793048566644282459576524401088752024193242453945530751510216947659542354517835921885378200743630688405890386734100625546743319044996546305595959206560751538083166610182395684981519820131226927236673652328966211992110119108248925746355356450549727459511024857775693218985773309676448370614487390646171223182540574924991122807139357113060876795659873262587568010201586360167346218205296315100629782903856898017312489793024607117414519794350107902468290562219814752973004070088793659950403151894537711553838318787786535407654100587076107121860617829546855109883665017354181104771736353881942853732036251762412321642632234243017583021671964107071141306446547730851373935602262089257762832118751714919122489343905211843790106813429276278848227455162084610490708958796653607792704649530798875638152385606898578877165826230913685467215068105770523686795387226701669282324597877923809968549279933200762095088418075155212085687438757614230311408758243736500864092297749436986626906689932093371435831454761792961334305118189092334337792898029183623039876983935707026845241775829524830941919296910316433922408525325497795402958227116892499372753731794090869755966273891637167403546767897837971899799727426532838810740013586095042900670068076933027707251746874872401958445232720923048612387383160446023576447995262101182927288084901153991362794104417955184820825182853577099839421488519651343079849683609572937133896765742467383774456850970728527719201193249403982659708039799832419924336253140275687969401928035032434801192155546771604895206994207095272669611989076694696254087400442341395081139407824170094719223720226109786741065843540579858580757524977253607274121414926304445792188005202447184908659983367608308184486686359379279087427627296340228442977906402807141087252121061968659397987840927627292607478997616160992690908422362630231334389358540759535003457337221243940894298271128934444940445614691237854225530388070255982697522397608794076270970881207614285711677682964292082699277286811289687701050570931612809712630980897786097891123701960267512254372337962365441926203020929870517642830853162656345238409062445731032156663322554841862677541677189688381967593845327800222895565766653329997337110097997075307383673874630781379099955080205429864033255943283282628330755078289454763406103627621489221339585335110808661420695039440271005841636836749786698656975859544036455816032367360200378960956827025835754625741215675209041958653369888459987007691474610672651453758966372201963389881589258650798545160673160507026663617333858154042220153968399312708870689774543068386529552001442334816005911456548676874351918644537048548917827680213632220799762268393547901831909788627351787446920977761160070045428530398004142166709071257281106251860221044930110561471754244514137891393261725403847787977273189123015908343333059408359066843303850798060506995470985578752923247705420934878076448995339946903528030778883444235482355464516123884638755355920882554252031200179020434592628642154810216054135438987833632805580661006669896207616413514327220423460673033520959200595921878264162552382461155120406747623539146852316129483602590680233894513232055480511693481586619949499617568577281947056352797214424323992495189013248954235662209108989716635182741427740174005419872479130280198622319931068948617382916295896065746899057538494293302212090676827872307514473109170997889191409558765641594375983683626435154715605537620389428780614263644763506622571755110610947149820954046266569553370204025505061917513723424110356296695691600276075234536137896543820636959029210651760258461114214779803015383130694046240274862917857770491975459394401633343637211434133346016400472152060259912189492434076989350245871496782930141701742610763933605398369644358811231678191604315923090147605271655986924370639243566260753762038197395083289293088817214092579742431033853221373939971614397305893567152681401260651452896276440100008476804493280163980640388501820274990461305414129532570717311667151168485764468372012595307140501633640750087237023168290925863015015505203260038192679040289693894083051604844881597677756406016581494939399171045204598529595053364662424331042728192155789005043553520946556005346680774895444688718832340025706775201171809140154533323647514254027927558004711956837806161594053047764668826421020422421635471753352158545774583860626225932711012837161471434971409902936602631335028141809579244812439021907847456588633694125063460219456066757264624669966702635557177479415712672923004452158390394864991136095149740062168776917585927534351024096720208603769329786191977389740090068191590765060819519933321645337365093693381909754597786308920891249962086367762754306784830993930752494547911569678778702532667515848889084577429537842629569435993186745393900057379176793064316489437374330551738649608244819690156777068673226527588768897654890166396001615546352164080207629968284173054644821077688222745971408886325746024062716094794607998480915484760228764465186422459813224216190034866425494349677989522024868799362051472189255882327804888317671150010580007712816337166229291671813100744979560002858543745382834323236127942101619138134196852119736564826950280830404634349072380721814451187350603889288066905036099207347750217768168067214557264206411646344103139622554974055687717309930910762984146671558156042940629146417494774254040329320240674249754108954450590250680161615175947168430745372018742102362668351840182057099602370977777170562867992703442574715467415189324023343655720947412651508388574334838689492508979501707004742851398859268332397420068848020698764334393645288901078153386455554627611176220038508913725828644641088357332412691328591401190467545985340409468873838575314672102996375637567157372110308917950318441871408804960940432720332560876129154933547635785962005556055663188723062609605673785012797676946971165653379399205402079234922924761522975059416779149189590936101676626919649561410819330834386502126647772279984851749851043538909714966388243486287417469090933647809079704522632992979918669575008982358044418286487779073649821330435870654558493722326350843733972074578559248019718664003327105746937062752371361901280751195023160931358147781010933036390707488744209480093192007226225165135781768461179598050302058140178052102380203749165859443882067242583144349462925920140433351192568199060068080047888930662676506787703579780500314350621915281493272478940766171184759922925692711718471306557959970876053226943217929683313709014736211490277040622151206805969625607885378154212235032919710582983547976391788205251786006939961284375449280055198598020417464140836703811550824538177664464549288123891151553699733303212029173773922378787611406742849525207972108618174470142614682683858594938474323620637555179457354786804594356646861351998798873740364585529104039147316978736418305640707946503076721900131700420765037659644018974785882303748568854061399327698896947751668078724452813006701860832849256750227966728564437747405549433352945718777385947702871794481590497588379815023539034300721050293633041658167929578982839769011247732462370692863916551654007728620550806995706065477904628262109591380310037127528820060551898676524884527608909221832493625716327458299882919609756446750828032833289828444214258861353217177394366921478953879598672870173265247467519851123814428151623872093784295485330803009830627446687534080289881662010905377814223311916129566928909103015672243415775482097194717624311397555404138328528557105555448964446063362928805232882870754304565900532917452587214314945142431405353942519580941180202570608631821573063757231551139613270816123056807035221781507242829673506432350829206574696199919514757574874225047362145671930919239274365787026438645165953735546950464099877510973641623719333903354192641589624516296698910321613350909953160722760077577858018196762883556611613762805492478855258600916580604209047296239760213865497195059228368428752663658223874892396488424345273078493759232712889972221384416756146782406862128823915452276106076300952602469150832270058262710162481092455112016274110353606500075030311269309139041910277931523475224484312748525472957169286029125675726352455000711520731588617314955116524135715037866931953258388682337940273468777501587318097410223864266009702849690234700380049923137440564540041066793789270465926906289815381340158448991433564580175728496441093995127950635265185204602631472766802361982180611803587552883748157412520963349683529989144958232408930506863605698322802792066734234570268526405404407181263341761516378208520325947971873529768749669459990436928247020472915947941974459540353058294285887392440254071419844608565376915982846233377969779899147868639955491684455614236449600419214775628901076392902365452684576392666293379044775980405136269258086649449474722510657689029715242270688012435376060137154549775919030849257502660893860921812702782977336512178297172722775085346597093988156549905530140414512860522465219365741088823286496018193428969762526344536469661798956429850987210189336180239707417176788729603029382202530602879486792088466032079132551481075343055446594361970567736603570632733701280744897080768408620338237573895379534146822505447951523671280895304607705425209950728722900962732467520587701924400533058185428705592502297829945816180944775847050062801600238381929393715676855478030065451684568766455459019261033288723586705716105927289493769648076401899708301874145204473681165873568234608105152300937297891114174513070855984303348842868209338455696280887378328542964610195491441535773712400278491119498224918871795295964975649812957588915696968570955227775582084960828696405527137383574360509102716026095065363476580558208493588948291937305958814915688904390356135989844071847757888708772984601118452492374515220902055576267331218889959256613315956069318575413545798967302026831650777986069846570732864970573837324349871996800254827304293651802547084588918144337562336785474301545783847793392426367411605829149871919959641436782936310438198872782567514364801627307995289935940741839310134528347901559011928971004533764862064963894711158193263100077177813766869445678651512863324475930570222011126783077782162949507107827928033620129403149283187792621571199013650981709090598546812128152394829471655343531482024116745504301569889766526542417819885877223672849394945556364742778648196846945649678434322687179995465575983186372022062052682207024541763002585523878071399964953406028971745149129925134017575643882545088986936286217653816056025425711785050643416054745128674069270602988004828405925869436729206054660950308010544257759924787278872733976105626541173408577941037190248874606760136652172106189586539668664934157348097048192152451498700675990560184514644410802690002128048199907550130570482839256007359536615844975140092447047129956144162015823575991489957555909351009430935114001083922551125096706631423272661621241574265829278231013870685000487316836001473159279077145847084347359090472217037512509172910247688167374845689728921292835439007763166486161819234859558762377785101763872723728585178714410636719764336649413074408386847073652304091024595408831148795986663268300138967701913504254226851730779151854465432795389013346137516979971817476219057676929105942895519251625368400980071663828525380781231988107263392507592028752719080540493885237792947595748077331168564340775864000222356147018987948189555104599348366810921176744124840172898064558024104961617142140603872625987714547075621272821307770638340648267133218852933264155083183758045429054762224438357369209936402621537024246670602047969712733811880144891582343300591215236318355835102485262588761402977316771846545714634728018226157072421744570235921021111459598181397476592472776864709886151833113198688545843846724592418189079190056983186222942456403344607163186473442659498089562167194065740380791589396305793310910538745400185441847625816027653224383560164252072545342026876312012222823481350952026691087088436964040337115594259979427612897681236672819858401512183170039637029704373639455152743701812860065944295586884335363785222823460745919123347466554107747305228770899351820562278958696442532510038529910627511618642108762993900674574813711876218715057223900654806689256749878271027297965754669567199716533936231115459748103456859882490191697063577984519839706384697714975126271815791455012201362603338232678838768052175279455421042691395237346682793441613682609942053819880954942028535459217469276289322771853279121215990563792546488875707408325072033547728332819403802605252710926179620971081788109388301797290911271788518328984615801962612512291513611566795092173756792715948507355058412863903712552558396098976705113021487851984234772879835941303693782902618845512932493386422952413350275143512105878787976351772063156072978847930291306844366832097238154888794643465223723417601690485339551427568718885194074218119888853966115901385977997610819961000376476344775631905546643149229809127413501503668358136059799271065868608598593329319654277883088486436344217500230867186009892962396830161931628882465522424691853886360246637413069763534531318798166198847442498537943280217821850066022249763210181488885136898499012538322182217457560960634733877784799336040173449437569046051715211079037142344178995821232185032582466323779978864843449877890790747022853735531471223384023909100027297612800180883903622830037019450801426841668908847897731398499749342597753994531002151284565103517797585570854930233926438100790528183653215864911202071709622003258671899470529030844142133704597303982258794554849667288898140377611839284307927331040210615669746441518265060871336167283258651686144591778489187227460794521731079317517099768817860570223525814585742447077621438643223631818261447213020888703614579961580049938649169157355151668785987846883349320608866459083658523756258850233101695313474735512997748483709481334354646405656043990756448337264946503741429411965092493241175755472363552141196323605109288094153946080878544424223087656387090405770043765473452496408936792451458645907713058864164336277098154422384502094571284981939230440249894800021022998104652064511375889627375989370419809034530788101793617394478482184887376133383576786387026371069700722753966311230738338864178510278102265675194295559346126291805010500651635631914164621145691233172739144410079383801086509209826637480147656275536753650884586547188430406649323103752981853897650727839575793383856824031178139495610827021381929730064247285758704474924664836864564132202564050579925602104415998933473920784455978940311760343873809137292544107086212996251166771932505507307357698942524693378347298739124628945039918011483080953338690555208740954959618674970380564170053565221427591727437943246835980166827126835470051659259024211126714862715688249327393035091762086443692646228657823509011572967113503401087311492822591944602682476513926636120742330553439501108704677238002136784168637449481479475244542985329284001036747125304921077808419142606203180408292639916505352161138990747516068763066158472211828665938601824071983942908269191429513447436340874765198257780456523289902798914504182101663687219838992787637025686963148273432328863159577056623015009168212591311586579496824946167085558000139966485145718075560073044360727650909298689553269250730081980109661492100890769232998227515287252163541302396677721221822299249546885482938139556756963983231069573018762742821134962431724391955629188126535810410647424076777194930489000116000456284466998120237842736471779664195476324942809593021141130557358012298879355200717926360124074985902676340204107002928915946653202324513596217703062967085044140940529744492439462844597393056436511709866014199492482022959647872386358701225327791357641642059500857459857814629098960885273141305416309505885799171602993224688923894813221244103543875664735421991701449485902922691220460140111301170682982785069968839735600922349050249286679117029470347157477697104505941885592127861305765835875437483057427213030848650710020320699641320437645768239465663670378093304139240878538386061210578863672078868427822252948511331571428979021003407959132389837247081672601968477245239139590460869721566814331947182587503792582539710966212903243325718836821796371698461201605229600563412298555245117671174427692631416437996367528378609509238759936930365977365866107520827289078690424335579377437022981207609915362876516611565807179620436311292923193777214187321602800416600869499927051207670609794029504413592948636439551367866476412160002059776619993334500761844957802452956313412056431783654181116052457923083380052981147301157288257188752307168230697406429279900735682566058715397467793639747791389169457667452302980429720312281204853741030606306339199376873095716804429758084065764579630654872342432383666928678637309441109768838243952735844129008989263171611733410257449243937717873424488129621044613748576345155652069302625220691141125476969132498004165118036366171691275368660354060164594671466863782905595683748649197775835695116244039340357607481314220929216672046544593451863111503280112643465547177284095402581384921981055952378960469623424990636425131109841050407599797821974648898817430975279959801119133217917047298781264968107073332097581438538255093397933380458063275483187462577604748278731414013387784046552284262668709899002802781640331728966429338824625750747943419031422412863547526928293641511534384313433607622340631388715598038067445971143623903163612686379624337686946284755047227680330191095414239179116977429138007820568095092245994896250017255062333979461479453450919267799410068492089772285237579889782134467801460805160473995100639257313980881949570595058277250067303780410686011247136849501807079590725956618252666861916831541320358613531853837408358735002066492405799327906808181223522703265516111914844385957658918654656564106903205649751737574751761852122299896841684003777347967329593587023299180975515125495649105951763291040654174462571545505081972022381635018937153727495808905204636780651254635786555546742994983598543449779696147963937882970428897931039551496041149476437984441852454919364158626012687535635449674656174469007949359031377026212349709468463359194825170836208063225473339635635897930335510231405918583105230210441246205699737163783153812373383910265125483534307806567246353996205224043554258220798168869944281811271709593667642790400280723565103401942109601917110491175233434024182175594028370138313527114741029073833360094318504462060505992625780668388143432770978497297633331471153489330213177921228946871043473295208253585494724856255351923101047005734888705026353728440920153123887212363659743569085496679608242361360199139984018208218465178836499622627219643252653284855410696851772706260672790583097794764884429516281223653968374394471419227285474554568005858274826832389086918428860634613857368333810132200596912362679703018968872170851187097971368609481577425823456933876105799444764214915677744356059304634340897146258045259937539936222500070842775206105817655033347720689323685366400985672596299898319057423457977997106597013048941661225124057099434432114863679190594653331279129546614912560808843962097927947400111612181280154410528936066814270764675628368858649715834539247198403347043321386636819847180919394951096038343462667321130360065334545861600360105400023168278867724388090576839403645097086387802606475760483793508567427603201415630610754478112969326780763211722241440644960257406934770465487485340185110837652384883133934557742975581996612667204071192157418431745454701063736793867594484994001332060004827857377149424947917706322026918001577728292840248729289285090336692032392728649588373922321535878246927964310913351288219574102367333218077528706097822746364854643482881552035997114128613264544086226475813775524963183377612501644501278483677964235601714915551815085653238649010240451803364617130095595528359805058597884830156107707323839296205595046375138750380155608834035002343284104091472182835622313627012660308295208982504679892585928735073225052326915454676177308281176609110525489063896067933336427655819886280097971429084857996550051433861107531401979279249244303904416568888767824267581732596627060489998607966299444775698132322658737097048455422012259193398173768124055644141333130321514545149080504321547460855982708374456355636323793886173870502011925901599461588962317352194321140213430873064051082940805485292709829145772148846846634124485786123183993730442906798263739911153889021543949066783789308744894787767574638672921316485894794056551599519183546121258656041528853306220831860032203990410529426863562798793678413157628885238736940231101977026987386571334974955520468081021181374792823810287153129798657422047108687289087800570479254822526903006112434105196861823114505430848960408023173757478479399655250791626748190924787724505651323474282137546373565563488181357188728684287368156080895547517252341984174141985804248429005174891811401668321238743709667289470624542394123995274625765228869793558854376501166581411766246162485647957785076323213924223916720805075419055935832277619913802622568613727184695464588464562950671336828299245942050191580863025452249363640922161693547059529949044240838592153962557993997973207092080406270099876993882216221289462229890739587387649258674943049429961942082370458171699868977089245464639766150653372105644266487069114421032099222109969146807655749413967354239068807517166657701590777777218588169027446229916011679638029169192496794226733043813941804529156750226779730010225967185073870511233225178893011662133313865067341191967731796996642526097591966468273719054486024940425934055558685319192396239032480588694412749794703309051441712770698865892918501828425172151474246619068833165529415139205589124967870788077576646616519372477558920959114176769568322414455994638507818747760487086678940500625969164101127708867812196228675503833021675067584183986039294640607688379717088070353739495896674949545705731496310345453711924501482373847144862482914722231002225161379425950725028740082849608241529323307943848961295995350594631653223595817215109085925736079870003905077590019279209989779924250811202511656061408234645127715196227781666672796320862773998935435460813241575952857267766635921449663979060231736843355836963343635567482391323710030224971133445435144626689535867011523256525853859526335988070102796854028902960586778661842022246873732395832523015499009269689802295971520014981096524934498807345380305086907870833950879098728029977301184629449778026440310711165058060609188547323712531855157021435837691166494454111242445889094195668950120066743857253492020237128845805179282654186486535393440067826232351455115708461804774317654472763440287251002074057780831336992600905942411616710642928003636177857197581849977494965049305145037734318468601584119889897069744409129924324806867869277424093207369220361181260100148343741490990641626363457524715694289572499957760424396165711959969665855173703805356915383012053312775562636515877351330832592681488452204972556770489780476600408998507717626837998963563737150552881248982779920348383956635319967947152834030625396409502046288133209853880687349690755775156937656964541137429838768406084301274356653380165653193930267395771967059613208390446196108221953809100525417396577197373072009326985068708356913436214924357931966223286433455456449768135346264884614877880618266679642774822307445245063574740409975946371321663695747263334288842890282261446452617768497951749284015856373689736987674791501704457665029896427159092577783333203302956537375088474714985711661406930184308412934631299132254715417421128750450160527637633371839359686644319836899850485189359171702980662646432051806303556204374004405128127795910482277823056332092312065195241511699765450248739832131088548396379097653912913641601494651428373651970220527355901645720840815352373976539131946044302001753156882594080337406820605439207527320878989435773380397216191298311478743404024283364246575045251311552583980160973430134092208040978175484029337640004126218465686305034164920366758011596686126572381226039658193974463280877950388665522849988392669017377178333892377100151235987596111219516794092017469291928736188003284517821097625908533121916719835616073819582609869025009099324491854292019182378675634646262793095291703938565812977526148407463693007265278926674641517170456460398448246169319519335283351884838735770534404145610185923636133845367992945735707869114752133566838296060026706725499572185433636014241467400430366333164660228367367489647836274369120337481250920475965237556407715311412844075750281264191485574001657262427971900847755734382971820680163421117043860091192420772126504658353753783120149127246199449453776220551402281319019184873083679126917940417828333558041283153206886130542850004839648778233907291303718605410147672573826507151460076186713020994195573972076098822828110405813631689570705076807229030781147276481443547464445366749166284816335220008810032152377151248801412768568544224776101255743120806911677898417946343914149725504781040630697584720055804437230062775677512403957649533032252312198318474575602226255169818886117390768666977240051519881280860850510716300714675940472152029018560944829746272830467345905409363170754502089503345200899092754764201767382499260564541882175836514289714963950872164574771216662797214734435680096426025483075385940704585544092572245063104418374784141703889173162241442540034255150309090391205870056629622540086554603209725266873479544007127329352412839609817990784436678675557734663829764762462718398200901788752378137039689044797325754276442934866084626453842249328210208065414310871978423907457992573561455248189550357870670978731819543789950129179630727037474608836140540180071157517089506908362434653952842553946758563838950658332191543352794031760079653733857686860748786642716473500828680862820861536318549261902730927191030662817972165918863851348068929266365399891865618653972231732483966058897424500514686042385986329259710472612516982928933969248942273061221760449516802317291080103810062387902247340486911629037000403861713194274864792730811102397951629797154921612000850165125435448927579026574860193423726208563182385098750250105471997739365974403159917502126782385642607127390473006797703643617774676091581991104158336051451331406792265604361519048585545618020885635137749379798787517540194046717810307977455854417608260625678967414961816891264968998581815941084966423129710112696296521870184123745885734927619353192778635776385392954035380916526246505633814810568886985400659856091807358358999169046963793381466041357654165323612724422772098879077230643615341070553269438473483543120178556979780229705719923898528157544584884635993344603307052542154586544266694555231582568610879300899358778644996772719442204851246288144593290615790753809355557848484917653565810972213823746871671405661539209684503458890477939438587694848482428337939848110199357560508839227589718185036751753983945543166490709804085487977698235927569021880737090201846957008584659885802823575800987929622291085119838485134330163061113791145154055685874844790533032316316539308786778403588119909817681622691370132375308119144019369038209301991435694983537545355004961652650174879367451304733138536299392497529044027851963536057300844647414630524049241314086756420192614170912789039002692959731901458669408559209629789876172676270417075879177855075213436291631517620727396552847095282274163308248160399996275777022160746721178765263523661489717928140023120754247394832865338466265280936065292232263183246402701783427428744230354633929590247117614801131375101558211429254608063024036056241007120823313278430406043706090084589321917680884273291554112674288738145453206730270563119632053137294081731859457659314178330231069368055130413743987569005557255328685334729389278812100592278396993342455578452320034547252427548343427440629013124761736251676367924942991537847300619345688683796614491954395240100401210241404658914134829666394163336638697840661345971921939412626990834735818288278311870069327100880666762062515707875472686246657850582432407731011847192332574694072048391531175647869362791259692227214043987215076655000744922703492860094839626758295066313296754094072956775620357790263751698554007515482568524676007486391457404289960417021452028126379049313428363518803342864775771370752145940604112381080524439416873364192598463762208171639668029544952440912394470343556448638299273869765403642060598813592268273040558825399223054681191872344610372702074387122544312303927256862576020951252713399822022388424138546024192102212625857048705837443151391915312626321196727069741029110906014002546095487406833366899921418244857784797559971675757114917855741461794828173600203397336034969539746176109887756367818631422801663500559677112021958638781449880833718178518219466352034517456105002482940104817159602304041123211727388344902249448248916541428448840572023105511068814921621629955291078388387022666275220996484803731963185783915374016895256630458868462906929224609417821053451907974397550385359569607855296963302288385785613929198807930956682407808467079229012384256121313497482411992257256138167224330874290068316839040178591871930974291971964458297518898147338039018164835222841907022528172658328691866905777058936577735039135447189594341872591247052686563786122626726616059294004005333079052532313768500495238576093169415495295966230299313276032141904629880462960294739628528789900835151726372858642688813588698879995103042309081191884681006983831828275925052916076000090691313065395322517777560192598099581415075544945382165275475773421549411689794694782161090461101446676812307435692977940556033663631371729007294001561701904335919946796656737277784223723504389550777686866853637863886402564667814181061266210532395817043543077619928712932861852229157260077645436037370079967626972209767630057768908195401974492522981972969975338591915695615557875680935895541058584484000079992196376273870301404997497209327225235198287939256642958273965158901701262505092007669530658010178374118874742050770234981857475042928363503474397713802124050892576481603336910935419744177169716981491515055193300119762633210246799270593680577819921567139074046997591891173281220381859944417874124933320184156898806943283093824795551428516440582668004875367275979066292186546367066051417193843141921999385822755629130338847896723474712041353920053384885513672199200290612975966110312597031202535765857280800886498698293595799519697462837683287618462239644951408511153254383553595302715943030604114173834216009602367439061924537621581015252261481482321909270359653489611804223609743994088821908942986680710661373484918350359116047319926988315464831993453082549116125340936884185059504571433830652701960364931622666346741856514429301842958262678644047853991441692035494038582930702049925093744440476035668853559266069916656105145676585668304495243257210583914754912101821573749505605429089951348557487952407051606226705732897730922198679448800405018186060562690335777310571200216766230649537311647191435925443884360791574254020609865360491872709733177174526853499992047291633372232541609015881223695201505196133214824082904733796984104105595990140695217989335526742463698468467507441732347787233046378487111474824693444624830311040598069872784267675954784011090457676221056058967130167534105900121990321395925991984245440526465845939009529860333685635474302224048495902926288542230880238040276311761873641769395079923715357452771442525478967856590842479690144865102748865847563026736067124001159197260808424855270530560735769892336565995482362579518915925480186006236891365705118671472815457479875077783987759332975270530164630939688640416090548798842606277152566589878110541000616177481491707784642920713260463514511348503918782587839465974201665157051709922335322835196386960130864919374726619127268174551195658423907156429205077697107874428963534585918443347250009887348284618062689789959507833439081044069288482982881966597937895782387183507333706683296370166809851869083384294238776690398018248567730363445032299633874761207943567448245416815758770484615618165612738213196541804019840941319207812996001437528484341398181099522904568804621278528973960506172409109238016354819926025093336214559726059952098929255936664787399274597535304978554507239225287185505112118746579096927474894532631967110573390455761982403569124098461975566905288348025752644429671388726937271451905088854648492473165205974693821439260099043589585161364446824077258064068796203497552934568161375232582604555710626766812323043769178472822983615356150204192741987074518433799793569682466819260624156803806134815154351871093601947244967129123514225277199425907806351853634397259111998309808242525899720190989233408169508258951751387404205014689754843176845252986129251928220614795653366218373088030597208791939945541296392607558869545279748629680898748610331045200032280041192099930952954063898410557484181811918038405778355426992896242719405973430809232549504150262031512254347923724446789140710205609776322793151652249937844879408610335863380941554793929792536824195396637797527269373299664542552104371492728145292870358937538461850721895568747623126664892878581976827735499251947264695276162657623753054415915252094969568637069092418502553077229441345447367259197329003635099538826040149959728278532235226445155968692744971070835384443991407518588809167518114491770603623489387839855241933261953368119653826958143907680893080597324523479199380642160900762255718482915783251888246440500671798658833142591967521178639549216134800475975438082306155350422818330476820740970994793848708338717947436044248598745729452286788439652282925726198366722054534116891894443763339537504223982202099671166784464666278473331648720675402620960550662707869340121570487152838974097543589253270928816281318652971912258070754808366910092941781511725546568125228831717326574492764321530142152960807263340934685733725637631726223180126994615973560572204482362539085999614703153034849421453914996697417913498619313364614162556509267906726484928082205252597112475190344281746256653352801331165288296881232931987572047168054803380545037114678147268692224289881877075055716743742586977151476389600792781081933314181957316539279294244969039922950793308230685431044197276829510583151865620655914235258552687699563955507666662681776602306653062029648138844438731045839413409584505322371779664147501827737923226043708292116405857491546834751171427976873216385024663925372625027983711646723141599652066044087176074938047992487963201311865393540006472979020079753089548482331581399540041430449467424088455166157360745657578866329651182030088095843280711258809445271649654686978674312056538825932990694000289207161179636015984917889791256317740606777404009245751099609135040431239341940918845427412314918602414152177084438574906968804838653183866263473310863039427807302863112403831743175986616574101909655437017663629943130769688823258023405780994593843708412230228331606085698875705855995164352461867672299407266200530501340777765961976809257460029816600865688545740832498737134259539380319269619164163170425229609099630433074332946590123480429506407676169093901345822073545705779862114249139888199649079873658839867789068666037296004535581722133928482211527156641633003970201566428390493298663876549207065399273567802297245939455638246116026991733838980593348141140585161251105073048816382968880111499929479156995498476448130397646001034917651431319345242189697014650161697323689434678875208428113014840220911042208678222361098782781341175446584345672916230949388461136569650884645258044339256159545687290231183581086483068698147861698034227919667329306490903604743259320735308131583212068454356884140239817009344088490210179387145209003582657878815307184944259729994914926281067440659720372563634705135149553903596963740156537726157424055325497767837369677469428851449104204665873482994000141340309297610695539004442817629076557931641125345810967392080698762543896720962366148564285229252216300795159751677289021489054351052288642677096927913459998612140510736484673557936425081751339588594894571183517362430343954621311917499695349197735616657728061889724070967324471386185728431795750807335531632520645014254934323961824525944832640188949490770645881637680738919472434115499528252683113926028115724527673808388618038365215718564521950647861020488184571320370211476681509263618442119739867384668926643299877164897548213434353279505730694881062037853325916837016281842091760559380569473093737267870955238582427291573412299244304578168772801986846640056470517784310502806528202748782527606580034253752231737343868476299052307663131652722852260621069878137872935797002401911343305791318808521677192661512762843874537051156602385598674295422538690479358097879593228665991202450270457687241567226249145283279751980047432946606244824207716071489014915658834051349772787575725353314639884254427780631963595585440317391585837898182238920750944668940543500888667396935310122602929138038713088636221099260092704098232681948090224035203760161462620439137999752913367801383362894725644470827249719480157236197793078515965960010431750241385675457598578786481283059741019402502258951584960293616697635151130052364117157760623110467336148523219299350966489575188409046247106775957685797318184914413478528132158493755834177169437795226506886920672016849774141685309469166304431811320588856659715099465451661537534939846334020428425646919364676336807421720949433435215498197102052472973346256866704609227734395655093739837667565283631199336240535472049559386626498724490838861864080302659995064858176291285357425070731829764885906061338520420773281796896387985261552613174244795687366127526972726236856018807084370212097848219133320520076045198116298143197891127593095929267336915992809014807720391903541768014415531826545146670210600641766442528924262177693090585424148167244186873718865085574736339888430084918481674720153538937827637893309371535570448954499540830095279115904359547220244983617165941706401958457964499567098402845857891957020973864018662985631565075026001860883148039653502344491623810663328818256381124827592614243874534451371024882529767255079325640090102365270905793924875830589917836666212225243433721866760324825570109006468801709537421360181292341816351351562446830371440971802238221205553718964918223071603438616575514690658654114667011067980980581946836994179083663627026322533596280272019366756670357912845215219350212511899774315264573228165646445051672008295779133312450311430074996317076462299451357269797206111058372963574769752769160642682588831948227460364874386448470327899019731427472410610787532848670551188062108387194943556020916336156217659006374231565464030098961708911307740827275280531529883624330472341452606769176277211208570407035328352389996568814548571503325453179826962755296947944184629986141963020370429193367227270243102534736140987799143870006364749567022364421244974659168407071511996891415182123308842441463996010466322923967262367993387080800860104988581824896597514678336534070435991306417569672775408977809274444608815680789107095594142229921205920822516266538390725752745648863126757273639406003822763284419661555845969744044168337741862585906502022762143924758475410563993950345816401377880299422081930791397225518629683145372360792157287136128389798861386583449782068508622380493595129403571627448173411937102243794668579061322210927257768235897159933866614039492710051562791749817950412257950404570529131363748699237608507318219287299989947506823897972131527589380279066183668359422680191516866757271137087797917631915457011855692476476379175775768203447482080830786104379392716123842402642527375502809217450963307943763223542772536858698701175155722584821544506927662466988557001124676574727716806610601982667341397834839494020445776065886994091343851459270208005043976308599550368350095079323611971838351729729108095123627419460873833207025382417599546216729161244307734279994987744360763436293707490496555506314513371462613425562077375849085129209014539396305105834217884298155102190341192479016074789054999039352828426206134490986749631757203414644736451288529415949499643281750392055817070013975989641722273976098289315252514757842738885263496696187414777311366232436783825929617992924254006766569610874855625455207819439126285660532938543090046876529807341034717234572975343759334307339319109887057669516656468275308900306152573421626942657058428073422686044381145439158227924277120396816370563807910431992489837512902119576182916890271712212590495838034089834418693126401573056503558595370690815595240711973064812092259498286567482052446791941536644077800157260143763293875904938934278972811312325126432952425255362167404027614131224978593050390720658396677005339954294644079268689712377965803293182216530361232827657987505947798530598026678152617181635526355890357664858757847739616746881687168960695806009227346442689547849106631632281358858389206112362269196933083685608617248715631039042215474684493999906253785798577346943527018183454597222526054460468672994748832536286017878071487562368107367348137482783566835188631629635113948721969935366085763561419372556704095864531261345014889020555582240067773938073100541530851838155861553669807516087698139268588097085039612815287318976964233903777946276527332788743534047235004400260588794609052952554163871136240059642380633441362321790888722545106945948031277769693367148254857406757689001022209452806570847186394785661279720136476132702999250634035712913407849893398373312860890277668374559402391469790152492565741107403782880112685220847142797351720514000398250178485371036533985133915161068741782603496464064150888606995806357681004230559453679437331226217644394844948937031405027744026066857791286715586357940547949728433681132720334529026813877851556408230677239490878758593579819481779201193781986425565037414677958166491505332418372953621791613018881476210988507896661426597880159388183416176800259783410388611303726715574215803214749165435265993612882442882903121041486446881668964014999997305357199162073592939870204509756324272368975654188082499952682449399823963983974096397596372121848545550884715014337625474421671857434298392476007685049619602979872927214255517743565914316555372376790144552974246949795573462810754284178019476787480990664048560449319406850271794581701807935428915828951785915395196147307774448347416997202325960016990220960064851603705149528183919498600714841017789170426969391853526095594233541345426964022569208450322111616171599676351982392452023860116921486006889661038245817354180511812643960903412162656096328763021660599089549573537566765818468089840666929058738177137435529355026759004354927429827040999788758873309689208116103124435028856008479812347432102749951717224114970730039846313429140996085039875786010229579155128153919883498225682094539918153409416360400629619300952931879055452521068939222075296712149356705210477983832482194029191991369124002449400689557512384518709044282315910716356949172812633524907937808497910002055142505584556876997671086640555104931632659097282784546232130582717054587616749529258782089528259914976740425786697910988780547598656044184471484497923614683707750311667015759216397071622194516411831014116270611121750962574264960671632115470565917532143674568684703155142104678793830509487900635878323103006495345067572643144258420862140575304525751680808958445974317760703584742674027088077638302361094130292987271083824016044686969549173525958480413380114626777065892296933494505000962007021722971130260500769336317252191813556163336592921468816371232310683078599872947255395404144523188404296293044726251012035301646252139832098411853739294358565874132751661022965351197038100737427674787472355841430683114631506456901039492347203063762669984567674157431718204083045531507080727447297926959462607454754416869585892825495455036458665790900453578088276729845282248535289354105562524231062331709687620853269156221660713237307533163325431179083037768374710674637798287888727349474772488097778433597211288451172086970803206032934886973872784706407191305963469469139485113330209301396387089314304000950909259304861904177340880049304019132679584073653245042467772969459041551303159282617227912443037482273892585614859242228118416774436360388644120061579348896755927155499791777495798292760157427779194865667632817897599732872279963987301336168617963830635640559476032975327556463507304328920182348566382193167421750267069881865975051745351447991631422624282883602512145725085457989883793457313765530039230344774785272727912379888224223804768904556833566701334854076669663767614050527378116666168729235700768457442783506892171550386220903441705160849128722713084688249430421401493032608818085025769061511761766074244790409178928510287728550198770052557554269081120104464826379467032031919146421986167569392788129071280380092752936915733179856612940780852048857829461145490852593471983456684861478812272660990320015297159105749757963980965537822240839864678255191111935238519002325006208513631719596273457827258640422810100410605455352022141019882345564484267287692055801037810197689588251748436123664554889508855841359419501346457776879743685067882892954375910647432633017937100882488950257435151001452517727934768437713929074232916075878171023762555907442409340367739959376940120983894021690614847482903503173219090199249662249513010191574569534703471918685695696103727469086656700844946500200607976837684171789127620041295228402474555441563389222683506230716830575461644984752912745538844003898846768145478675467452794586432028524175007676375764892184164343984179380002661968457659531176130508795145298222523548971931719449903846736241391146196144759761532848735004551069280201410362376859898805193940797499733745908159073806328045809721737048819063262837545041048450056047335558804428622855553458733331259385938546242647691668159631817052058568899358390010760794083423266805249666471941101760135890749972600075891723185920181012696168986836811810254025768551211661903632093668851454702306820842681826573165890615701748932708334526459004834141797122411293354889326022803905910705757496058915323468565032609557652531222326992610336284209154809792730029446994663472450827254181935290915643061967715102840620679749340640169169515244793251505440575113091390076918556150561634836289070959919679073109229415189949080767393906570759204173871367561989335774375158384590737234922434816255730544581147679843624745483675204644232723185501923005851962868352469226532849979941710740522560390059767722429764826017914051507155404823065940192495137390387637594249757497977401211528418732422284842991056812936098931190971512163509057267613567705448522063740307971752665771285094485316441021824784623719756048686175196762012924300931452872525509198513733787434458468264144446965812908312639620200178704330959861702450165132634151396885040166331477428841975909962489745304727900779645179090380991336873730542587841728467125587214320054064533265095280153365857989101761429978421524233610896182933168449635165640607520564884954133803420727775868914286291829771429041108942629462553468190945879392432316938586095795347221520064230926274651152359297564373546872035013033104191325288937377788962752207338752160897459613154986313309054045249557018982979277618825136142655413156665865486406100128402802224548893209269660166115112066842975732651019879060524950892409423990974686734066640805056615575395703112602801680716022654408355830647301903009537525384006050057191055154433654868192232489677145427662828169972757628278911907201200636506851446117577369107781809919760694952418061146428520741153874642496798661717462662376883662605062992674821867571348505655205199594920302688143197084302866681370951402967941685180002474404789098285382638157869851399159872896720933605595454945245371907626418660782871590923530332152520952793130944726120616309109463355377605136007226959195405693086926828153385826935596458413172867522697863318200878563425525377071354932346651512763960745956838635566587841649118920942447004441492119923880698442190195912508605473362110378155263165133090205308317342653556296358419633655168352418259683796432479144160845531428756366835160504777557505666110910251420492540051342153099730009723802771675867474895021253269755163690548496774366229593338851965288328975323138626349494002040483944409266228472277443447153446540311168354447460166376659925502295557962219268109984150191222508892775576602512264819777127105996030538786264897782198823946436339060075075391247540306744342980581039910250292933535526258908157507698978781160789565515420088199469952340209333216626057717523169264451879867880659588003248563739379981071880821845330213485358439872837850992351154666753251113711240530724083207519367214946797939120545223195534276748548229560687369699657619166545557403718751365822754693565604944001387475822813903135036935851951610994840794420794850452541764525361932996300923212795447528483904328376197856968062579410601267052572720896312893322887475988825577455409846514674858366998823733815295271724119686267218058214189863296845789170518941858814551975414697910988543011353507908302150930255162561864669578117288883787643615896424665706381143048747326547348168538280939858422863741156693102210567260077553006413259532418994336210432812663556563331152430175990278185343011221780327931181526848944911039157728234693167252954777114337378965944913691531713264286467038670941609036466873579902384934064179313177647592362795369916528469867189598723098464500365751662277495387395137636235578287365984879202099022090739039073318995112768413333835591255362230624101765252401064864951326220333046449702098154179937604971584977680477878150269387509703512190636804896164608856807841167810237837284159064522712607639301385504917226561651840562807111797386444623029265687320169285907371948123705861111339203953605170272385105520507214118804764459286952212077039332768901412636044863313670209135724105628325077274267833906079137565084512686564759738512278648036693421462355020354903439600784933075023777862440295749217352387645937968711248697362712867998485306377840188648934172335724052237109292478636931845590758582557574829662446647866097198807008533025765436788270185781335429624803774041995593012016507256680115389367680947560383180340584221762731279188269912040953526405644487190158351717746784399780753044950961943595423958774006167143674546014409552540791687353286675769517330650240932741990831863296244189647565994118519989670743628095737138415455416567153752291294991458975829920988045527091811076743650012656185763114364685609293720031478218311219849923878146937407976132901876190820662308414400014729419605401200561760981315720892968305807961078015680791259047207706863264826387499292005295101223079175747995347458799407819434233423900951620153093835669547107307460777889191265143760552087799640722063976727088315089168472412080160687527470834025156519052390162944649196275426080150357198326973712925633976180765527705938783958956842566500058661820712730919382471323491642460022014983503365674046251747295643645802270157821360309051049826974853542005084769841020172880152370856355423361647995261493853069209961565650055739091490268632782405304006865965128329348651139528960069077976942154605783927614837859970983639088300889729377166521446513807364371173450186449289222536532235459108736443114183852425382876970560173300289893623325227792020152714454072642676237930485951503042849949903882920066314833351946931303136273235391006799019221203894966013997583526130004027669238287563063934840172705798543705671659611360646316233191712026300935970250362659618005598281142700038940815967485603587639436055802687279668863976848591521362227852944699373251249526740308803488295599056055863276367827701277715422946491083629197883692563911119970609872321218030261061488621387914120738788217539811556272224840701610651996684615469202786359097251390442967972241574812643735002885229148852359966142215900494828258983879575874104555068514976858924570866858154799533033478710031846095991251834513766599465279802063838616447478175022330789835279391103002055623890891770090914228409640781055009764834862841385434646159851913542364171277448602991802940485736497769444829881606586919313548630497621075882788114072973929314735253173426574535905093360281825431528971494797683205080974094649695844558657010864702764237448730194342052538701445260274543199717117226958223016927565598572551805441993653986029318460616252040069635291448155810381065733981654248074921825495579584859208399731416750790109240646714956663428681495178223120193431798726383794609786254604114701393606989999206382706680669531132023692062229125456474976048562640512726182451701076049088054361748228751954334234143046536398446106783681640527651614229692905569030490078650200412983242257148478798982132274153706702026081908589492901818419362867301534247310196524411287264673461264797732443477527226823522136439807740937048202251164057005936067783819559998127301146293464092184305147114122334775550298687155744605515338305430360128241379822471166889818162160733923857218174163402454930499189264934062794643889518012306683064361761809779158102028431261659624472245675389513859392161756867137082743965319847793931078075840333809832359877203037702430602123419740705229325957959192191032304576877481435586834792089787620228749206875130801254378701643869405486497687747732896065061153411746391161883705127081619876077571063431594221736039529530079942484000325699153808485238755589996612098804043250976582512499442633602305359506591621774246761613093644903849196834495543909498856914511557604500828031826617978975953281116120654674508598853929770538480914389291716956134006056967559996549393041948141430697353648034014368185653611284639188748652933109222150402165447922522391366822570673341081483007786700184937754044394663008400124506803727834752417088493864200797543003144732382170070706427314836095472385491663521952193314802974002986667727177178618251222028047895914539320266387803393189448519043448919190859542312041824741739314484179725362552413508216655054551745526532179645962713864534421806212808278103800835078374583642081035763784060378980795321361366789273084147569485709927759401893538996875779631185294195910146448157402634083892113595468770052104391598768174160064568211050391098310205696460904259089665164699132410899926973157617607202342981589164965219343905364028656406083669520731480911697851972147463313770397611418974816323455877771402247279106870630080128588756181044475918955413303694194882274570350630960654360756262298836521901118593790954566357545823627070976483431582033578459746933284418166116548564611356456425561561624830892888452808004038394616433584640148876311402305941066928389404614438891965162099742214042874666797483963218799943443287865418887335340441793802585929943682821173307098096385946432937380556066152092554208075449673405724122811646413042121013062466247362839879467233188590969251114676480349266156980368330004557107220497244601277334190349062455005798279403279123799260485944750242921753209477829081821607487032973399963295829327161171338518339528868415023348452322803756492665171062637932584839729811377206032200381319252158129390417516765202201860330910804455441609059068369075534636533941393897630291237459030914678351640264548457641954854088120658750011034846176856370300752405827608316344146957577631610181696517959811343719082231816772607095109418763079069895063648161074938058908486462631324716717662688662688365667928038841991050424205336834470462110778282435659223164544090416365526094191266892804738802937625305345433899901512940715416477131684384957601155234893937439048550252223656222387221630916045548631781968811297105935473600654762332073151890674482307958001196195555439599486227779850518609855579274294656040294928088931345081901180050668990830680751214081056136563105237080124019492496989909171622914623993056492334950813643999454696111977394422313073609180536472940486267534695126709902374399436412667203321481110816243105968978581542588317943367745043652003767268439694358363257691512353278278044216235038282057436681882979885157445147314294056635730928015659804063302378822378554051631706285040057631758400757287672735286718422174929605121193297217483712061244715130438600504873276488852349017912157636569980481436980862774704829819727888584738359642315715019145775282523348532415340989167847447741948904782514234717682536492189000015248474923967101836379363341318272900936716685272204223717647114001090111436745339384066965577953728411199005911501341565950535493432602840559036568110395442859012959560958542325886575419868030658146867219600318495410629714325771982822437397434208178988767543642747822380633342658183289508734039587302078518029586281468479220252465870169929602195628052228511203209660104725908108552695742077349102119166550501432021894628087050644519087234657600788793771278318675316839150158836667150864705960260262367606594856780637290624869874729566574449442142670494449207187333605590084151193785921366332784864672076419426218035596021608249542386512622765823188074437999784370977421116157459195022544479463103647166082851225318515737648597878518747595772451799532263696083696090827069058619534132790442473172260908381830418723405426351410882963113639924207624953817828512317827581203198179119462566385701435404386324067565076095416931728344731139949496909523413222771613953261932652119498905428013106080198327255142385163682057424242265898753663616377090088613747389019633001885424830877824453970646873188304753726435367655268797176981169583830038888173045278679254648204289830625525580383160126337803519618864956796098512169724782585236793784211373328120807445102789627510605972909896726832316671565335676418291389315189182077642143809649556297023854134386795549860518884535789128016841673704856170650422775677011525154729540952490255571964710447425754335106422238455095875792629387546016676884366457929173710626017344730430525889810195815755496214499857260127800148253491491793052942177527289930101773651523411744759252748266771070652484153526831620649615177865215070331166516373025895560625197065213542155825391414424755561390073053930011453971524993481725054385449910147326310983024287685971902776938002730693924404906054117358418229292778791811347364681515505358206257603802029517781968059989987663065231244521088660648848428745386754558247573301578458443870421555581030948780100035466247711029048259275259298840553617495408893597387567657395004762389045128765873816702848588225160494831100110023020486287560164530746732797547494716106883361165838257605772415160243103715243199473118515766915715360861582908811857699351028137399531525427068615371746891769490901247899556257942616270610917650259014153508761335785646472422812728131404088901939149986986519327282648334646787070259445623759751622377660751424298185483522183955905773525649205199637978966063660817262154946103882873395805441690210875371436364812695953910488756004266978346771204303997071149873721285913702156625403108872193010193299645132400124981773256842399204991858218793141155482087000968388224884999063172013917957862959908624674951857131615786348678879027437712179375901094580072717923889903144325660877182265818887601739077769832788224456348983192663075903948103262708091913554485289312112086290609248829179436017475996977225862414812324321449708415017652293899587424248920207901780998775328884831862929738922094588834373094613543837011317074470576501651463596278656968920561735827587573448510224552378694637047336449752809176091082420237813191767168922893951015171827756677148590327952403216094158060599315930176604801880033580212059603020487696269613808762316871908024974815631855134008680045484590135826872863175022261123010379098436884432433480591005807284480215391818779614519159065107224980568671033557364135837217453627502852582449136550151871351093983982979770522331206461202645633399138920174750288952087891856546542216516602039930698354959367473443806836949274428768808670170613499359523311644866055686103149334280886698735944630945813985322865755922943293698173622593089306380919214885615582007539194133123273289245868800805596161906739946752720498806772223412474987254095379534413716633160064037669941160850207285315423349373924582175864695791531535936810676782426211419135176110275263923626530828284788581558430322455811789316921374259552024652697555159060814770068541367138591707537701827624132359034529908573170652531449875603934007089813605108020489263348994316959464134588163270034805852151790033020892125498118079972446755388664396534207251381112689805227800881701418508379583316379106100260328251474171476929508556458172783086108208618102099542154217208426383624261366652301112795415990141232573752243182784089015359836671028866031629134597950913067506789728591608241624925193293504649650164357796938054532271809568005332738494063210664844841629309843142525920141427062301383313636497766884741375057787415677451611210112731962466914466338867405038996576348273153273926205893710763477201528808232984422250597064642930358244655353659965790190829842687328733651448910438304561624566614868155456635684260679509320505113034495725914513175401494652110291144372473239304870551747376728802071268864439859784257522308821031093681778006865784384537846304033346485449121329248610335288807574807391626232145999693130134994743696572095604692504024050676270356323239944512662327159507044992064069851889144644565651022471247640439005884609465178020879770336293794212204493770851319858777294513686079325296984722317452877093565948376809908729291852860254651515949931970127679975824622341847418047958218283677130571606615473913610134210776990978621580872347404928785004209220953513163490733103250371604870227599007533664980851324195894477647602124723616876064144041696175815876117571775868960953823293248356476541797553445771925087428046289584511652727896171829842466813075453918103772485386097734919285461563538296506747306159207325278578266663061748171842936719885871932271242395905636128266140198967722306833975616950316059392510878791148876775843657064100739450297565744598937286631831851716673218247709203442285130536317953540985548414783050501115296189323657322156905644126884702421688599681792227369682982616219010573399527577495210372036451395949103255728132371457516304441266270269216867209407930384366372483969690028790096939158293482966527318275101114336220318181380878139333897158790161667269575287117030711653164374743351832364755350802991226602161855414578485744012230381502542833327594628138054159994572853259675322635840229786499011265175244725569020212845424513299954951429650312238087117004780993347569590319044732911947661122244530001031849549728100095998165827138808107925827071551482052980054747723692435479558702128179756415624658313295594460787273073547773722677484733093259681634112254158162170422054698856586490888307971699357728559545604201086040924090204019612025796058300544950521790034994395659403454891151534359715905811724296569137934514176870159476047941898199039435330504290346986277825510648654145101402261559167118744438110986531335756053034156535391257005060268084137796601796410932129594219633133037671617108618058256582200587482601799553453261473712063811712815483880523458588409204653764093499357735286675664067904075304723431048159276386435495214649194629252868327574431912219473046281166550825354855092413475833864860502866531032459184406392506499497224643101468946248162939719205004631923918577400190422551675496836933422184472707477283242087013322291962555916392354607848507231835529350092313779520810786704018317315319183819037683831419637902615145238979735531333025646603446121125059093216512166953667593483601168384426256763705618987130956586641744059939347047932633381798166772539945020381970532340012794893987923704019324764857550606827900231432301488767840790074489535178342669054201869641155757502502728241653206321237805024810425341717039673595588349877715434995115152913084800369952732559994139679582902426481826562007435587617741199004189843645779738506531804348464510513139396562514905598968511597773741548824274453104052046311566661141975943383081472762783838792792862001612037586705270236986614436961914105123836315020129281190693362981809573535572459360924246768369207315387462283127189734239482600654123961177650814578681664646573437661195846647793852170452873080258921276775115436373227376470905780693791495358377938236891201263207791564991803244548029657522434820292266817953930280993612140173197607832550914033737972878492107969671200890323973923667348864367794372673232598995752149480019917114104641908754244419028998604926754177400085748414366254787712266246698250783579586850227896279200895157618606005536383981084987003390156836383934700532546256922884383020099381293171992560710832955356991975554018201348361290401930258674949018286268477583445381730863104383138763233392946747161163170450463752534684851710730797353293540560337330801442104905069384825183907786335213828374110849500528647884379156621790162958630453250813020550405534287221580377188775675274968202830635354087199550679985904593656901306173820033942674872579052687170264613495011395832903856166668943291153974282158151374228477379771077546731663486425892248190663761743871152510983797162860012551789253527286874935871420214679572599708407203586825636256855214737454320210503630602502685081722071673280058182043031604561410357980341284146277064037757358934257000056854091198135318392255211147563033929138130125637302722613864243442275226321670154268947239738304245053712040967219293657292797459068099868717793616510761940632512061721625201258532010619881071578567974217222277438923784333976827447444749212506946548431828452662110035572461380385171325507894740408510294973827306156793771281713426369324426508271602835224766802006304155483037177224821824915114811668166958406613575233394142462629140866266129407690415327160235796137117909434698538218087818777421000505018187079135922799763947900954153108474160804897696095571699704145632783468287153614657078927121263438672421762394126953534428170203320610632132820167186454973606789594946897170343711085427809741309720790504050546172069732867165454920861559877582669485284449054046501259996695115644647676436415180138530016554387176427495117855125351203775101635336169286798444253159048416756222881595684166093885081113453917726501601620922767909877648024586085944593688058830082598754742609992226089245244359252199013947581208911320134888613740576673200619010330846226856638917508768174829362879596225914447744290462449252973539137513935010160984123967184315211001742901024253670915999277595638545755176027993275932221657718612828692649435518623040180196810415374213539914217038283561380763374329557818454056989350551304455485871557085726504185441083059062695887243575928265841921792336935910789246218776633219159615886393518590053673043044846737993105971414621800788636112960488944462790811642899434278158824595282782582634670306140628661170270460529928426551124242061739300485776501843229975709192257273760612469992938911394596718471652741528480357092113606159888519650828201745841897770393534484388639018243866434611746313691402023959572968491262204944859803498244873905927070295792384961574599593944068400287616319811116758961374883689671405052653482313023297034785281925977194825110835097142756760264239610352224178402618735912101725934157380035266872451461392102230951488114495206797306313065798220860294537802588245304488513449317815635330740129232403975206671698766929586002278970589970091634237462525314074184968187204675143370066643749982111673306652731724245041665265344359070206591230398830927324018856251593867152072708091480399283834166263285861568258931698661939798104887213005238463494915109412589824138849747254636633045697785710768709376610879240040970831204338795394604758444313731640063839027431471901978390432242105419963075763021042658886455965827012036302874487091026886114107227029310255060443838740682051482586995165557479733381750403913795699333922615130331752809798805823461336376486972062587379438167492240391102150560307443438012890900578830937717224052065048353791785937985802955566157240021325208355417002205502641224720782376314873175352568940267381320766933215267105867693031196017684530522938221465131721216622673261630896861126412522682980391745293077214703436582253808613699236722296916726657265426330803648616652063583568122911821597283091328130357369477932145767355515727679444508070680870193155651787172372671852646635870954235337955420312376561832485781182491271892555159710828552577008828551693372309069177574109719917481938612355046760622511192937781183804511137390976556825240056485876652999913310736783441213997006220476907195777262157906489961075534598171078447762291429721704032733947598660226769800341371150923156660383707895214865872772727566446829767171891455606713317882263649057212945823349377259882334480154123081508525460004821892611893904737325966639142795841263880364752266166869439601899494616413492851041436923106227475542671091206977077191181710204224432537966042790228125485821048869424259641903941988242340679737215340195177045866838547900277607243417363673114199668151501351305971835927840705713440819677473672249275472662770620030060111147011241660290468362856368262623233847539626777061780779838268587389282220974218880877903314906332289042803277100305832958554625590819011786077929532404508396920053812054659923625078423328516152753645399283429276802315158227609113825718230771119234805963611123057341188495608441700188969764912317671634120733535863506505910879527911820028746014193497109082899203381007046006930237520076719839201554498370661776291197391143450958156011252953360168790436288607542595875055529207240306687395482854245879787825849321584496241337036294023953660773046789120287546886338596702599331626661681304596736581874872719765942971623064353961115333001899858313046339631799915940784603638349085661984310026572518702627017258926625208881700791819958559197209627986847172524270331771565451287518952607531545900569933932625864036364120092150615803320865253910893490430520089989349877456955651604866461828399308128319482877258651446865725402985445074098498851984742158366834456547702860681272525613710883712781018448121842123802200267132036835316307640063902532012068037859439029089388132231773060447067496902949900059961248774267719145782411259159166143517342564128800365226026441205083511311256314194684726307178646066438295023913126571988138665051678425605377736269949552903413544642660186576376950299264864585688204193357306607394049017881052300248076993526477700453776683634540475011026924956509339032622573947423131139517471970868283444661976580653267809248807696833573823831192170230362051193535773264394871342233777246773684558646077390573160121266964857217163952711214115221685437148244748426202539061303490070320248320331848875055058421520627990113990706669728212446263874252927130778064119815264360084128175647078288395683159373101929887291508880699058828042194785280204559680679535852234258628743499037251785479097741119393263947552327107630866695860817866477482774919949299036824154681024057634825875436677400670468071038226988768843844702389051315803179059237954959580019988349017859758270285119124897942903891778333731122839310808465963945499432923958863062528167611357343669805147341636850664163344605120788034517105299730962210930499200233699154462365681245449266922432947237949871045575667121284126994789690595782847591182186708424640440828721517730706515765496487649820086339897036403475557072330812971591489194278690710667258345632708764677534842601556446540650033868601911698748792222102974624307214343101570695163930774435823356266438020295055148149651336762192695780845692848381526449115919562978439314047233747973043832646449978473916949016555041452493194262157592315196634547836345586419178749025896392463034741023066815377088873533124619379769347585463859611327376983547284631950185106524390631721187084227921065318944272761918626626844398071750623220300236660691327616527172570812831049250665346795688593142919701959044151026752335351014048516782725550594588012171655221765798567269901251519624808269794136809236484391339013884940498416107338499916807264714672448663704795985724667659757048930108239772301971820375005182392043345239617490303990128337315588465732461964124535063042747439572018093448594080367572334816228943489790318888850245911655307433533311849129319917163740975196461589268745133499022531684099560959472161804229537413875699468559716240098933101330725036156643588776211124844250131050464711451774255677947613197334847027217093199362767874488281645171333744227986098859408695485176271712827507619467452025865451914305712234231732425372448536134607144745635322648803759570680941539401977968689143280365050811370311879785229420002596710575488182767658764524852544237392481703392155106812418179248166256272416865376796674738639460435513516751801582161944300916584668826303784657769832600372439952594725912815373977286280162097333581923540960628637238350709007033857122027335568093208251495011312706155250585776153543174259786150376039023659048658484548593731463719289988579768894818555206242519543594596977662446937390527818942059672561889497386829067952218728991849787675848620010349208694692972390274459218844878836394842000265042051071463559099682567039156903914852530944076478124602444557975424958697889091995971259511390644981144711081967453459194629346813354281630308159866736674565772039976720429809767130186457348888217162457823269255547285419905357029126607496394753279317081127922447819919294979317358739055690821446999525371505181750978117815780645064458716563301642956144620592705236590550427849987314353279378094699586740172269825384364266679416346121056708993892822164665160958974052973452824376507263714064144513508513339795755309086703993805616802137995344680251020490600890805466041622222093320452813667656843890490612915452732672444380975961327805631295495690496425574247537599168969470028553807460348199994580910462399485852327773369333665986515862105240173244021773258103463240839612805400090241153553806313512406250967264327188350780485042731139389298058651696606375671383553247210974747941575101320287706836386078228507257905219674126722838860656685518678359135425828669182564034038202113354455636265024355403784157815144027381484135866784593235651550586062675665988268735694963672685951777967767110302576537448786492375314314775620734977957760698083437400962458025874787686867912400259215764756350454603112427998676289755576112041243784547617656112807730850576493482023132208364388795086064919165256181895285405875444651415664072275180922197362874792718803957489110143678809592026686755583780827247116025257679505776442449318523401568743847005295991544759290396136025874726714222876027922752553932467628488013713509162913577662404651810036763990635112586170056060261471824208052591730014687336839702013508963791310688429580835889665503047326255585964913129577165774893469437784396378443196428225825231862991292864345761252395893996327756616348242992740369139355727139738808078569091647218537214262710642706020443188244284243408445379470707093661747557356299792272032643825462776445583441173817856213567181334175298621005368311428289782606306361645467527741586580060019874532610030471402918618082852881732212954990880995240600825948012157494674345216697256006822546941486331221211451036493880306439451280728285203854548855662095421430320577641475003755050784402583160227708730684560081219001335698544897018649855344656188952956572354144889649864893768275323865211185985826526363213699813832309085706771634893496776562720569653761953802639854682596723507716493127361698138766279486593075085394981962176969075613875323563684279273357905231322578255363515890199066042967117901868067216681609732037443590403492007650248267344385926088853749245116537906293849321981387249263265267264846241022862199847025254542680731624447739450166390767109515589564498712439964298734587193977618616140198032078060261592143273012040019197920397180555613146222342735502626639719293409078935044580779850201035581916582678614323373081246709863845934107577377076446579234340958252307248292025215772699710822034941354914495891160657046058181132929864344606668117440295637594209673545195421245511933187249013393880418692515199788994964458062418177479423904912770323383435635335914373299824789962385320698384587753508348108736451806277743150903113598396614728979357009250045301934979982022932836083647169379138453474205367233266586795493903082604527767865768678309826682024270883217255044210203543453607740024153999519370527309807223503558999364041989536488932028421510300397139994403078182827295646643249932828161281798136910260716193797197597840695194372023863946080960129185458236398084027402198475742938330466981728493988662962802654396426655288915360425296828622042836908122580004416160042300022438686749689808959145291635809403519323701320675732868224585879158447603758279710545466702800319565232871859314913213759851646762020631622233302988368584432192216495666964319172757567402714457625965755921876244356154111163741192217457799479968009755110206712603357282995071703832757271324965807323831227277887971556000669868586720580981351940078240714121937391986113246934724299163050947593145198658426071383661061190120414470611713434472385064574525734938960878675883219610982985753199894299138958602208576335008820079455471731168371017197496388295247722573041245354417808104110540544704114724381341934591697852285990440759747055708689415212448154707700595588002463873239323778276248615600163634697860909266010843638556861881876800070213585191538096514439414242138942107859439516115808499119823297108118068552064304384336038257625392573931496367475798740639378542506622851980001033586921230577095758953421914335511468640321733621897105151763722028144733306298849599316739397998473563464741135216679234437853337139744751306856541968198789776371647921653005634515810272852264598728645172247302639338966983726345598435198740964656778900059980436030971189480521528030350919209090900981871913357807996350550487973741829745305178292540795516573590986635082734246667707381856973811700864856385411963147064112976702137426165573476413279088475738493735043165851298217193296460235088718676650163125980786583988181916459311057794184774326416887714947797090944086163545401002883469462944887475173529637587490874902865629134937211047314395059060033240725667816049049222030850399468427082382789106281626268204945822063175032336383691035597867808662460281425017919369655491676588383996493636072271313559851414345487045745897736576150002320286993173544581380637513322109424707255661488677226175807350440243159743956819627767272080205669138618435790917877290945379360877853166009159845867743559155037043723994085146259227179794640358063243495932588242470248967953044774653844142365562685675029411619177466733230133599050060912844939000122647590267956029253032560321503604010478525310025281118375375787288739039496442514598226910704979035358843493444128301360695700567063180872181706722876124097458580202121713400353229047101328391700563425023453587257878211034417132485983465512044507334324052561451164729487437387642731487363918740687182011521307024116420306165193197748041464219156775609498312615867593846229456787116510821394002320776409151276856609268492028955394268130953645252263230510336712822805815620650297031207903699271639287185109691372366647028338848303457952148188537139695352785402973499970786487491993006393957332797941632383439864674911706005164763937258533772766821017419387098772491418365247664926906125631839103574552855162483646115479140039403749608898552276214178809128571926827918649495423434960121010522722228685384569593916176245978830470698561536084948977921906498518164103874200165571866135161015645632225751620687946622562361948241978980915071925646797312486686745709105508549968020344510952967549109654224507399411034749068307599764730721962607266893406035648050943155860081675234517796643213078614686068386572999380692249895034415786369453080695931073539504196915417243482960010611218842297576730056188700369363567912232384445452961543023628495042086941683675741169038721638187449186603403146104080960084944079646358834768688180793938076442750963767711190113508305093808728921823089561648890873047864539213518772736488228761249350224121843352563975094252530763838405315974074594063207657096123994403261068672113458868963816303987542054885088278953090659837196221557338037162435321180701660353270902245965699036561297379691222514020724119994067368274045614640071512071945828173794828356136105061930953922872383027743681791141230923267251899685659763871301820540904595190709213855677235023665832189512614252678140356399140432163270319588669633333904702625849429787588807202916649329995638657974992567255293338445080608702204356264292778871579950418127680062366063357448467943023971761064857735865056723029290180392845188299398000598062809899618146984375701878610997448191929230081932565213582977075603163925054557184479816372048458740376392749079053566721986564716068147960550542287668197636898802857017986520078873467035804511014339882863456551628843305374216846024022500294348597275214224288569519290402509376895566862150850273845956146225500479625016536176836505289757071028038334436304046545520341437573557373193235227280791402524570537755197443841640065555717623660086365027275352857862389436507231442367112339180440297141442545664470318274453909634548474063725002219231936560254412277715050254472526857361559049618958058471231834487585222336594837659052355328412851216444723778181827909220983808308787262623581108982580917797152595329203734288382460369060554949472675577270119997133027448137932313560477627241776678149493704367860269220754315039393183848573692856573547454400102763850127358571768425636028438998827452323332567200102673938970017347479033938549334758371761653956002484618244272536592020270804923799427149883643062309871377384069428492044142046655368280676444413868163528229695828704163947636824269334607820864532893922700793436595892168104294421049043917149357933921222416289451035323455439034375152869472992628577296226359856530288171996399012372478303154228098866713761436083486556029258378301649512572901284086472622187046694700358933764439536243291795754195487104933056261202698339303801203320227639950637233369200047103245777983681622329010349771658087083244900959857912778617184906454366868800877864890339341499194413778476517121367996351962984827322106384205186063996872934386880802957291998779488501239415599754195499858094501781137637486845624798129812907977903380562125241612898565986750223747063084823018660093305568876027433843574457272380302359364673944527677064641802272862418227976820579269913068693677003739149966423357546422441188591618799005926973707353415321167330652259144517490454718126641471231741654388527581119111600581090247208042890009225335412819795251423986507656183689280231600867421047236907012496394124443119769446824798058914700021240562209536916807879294522241165431648921653179310247572561095854105642954624129627006516241058604520419123143373765622378815503568186776271636747803686448722592481243170475666776109100382898417350875417769094546944301357558069416601555242538996719325415026448003932198652658282818033787902872069792504129610391520242767322971853332545652852451128896456811784666822478984097348769167638696976461717684228757953950434891211960381090532939891940370529817720723314829261501539177090977638942647215819214519076103344576407219800037697765188787673922768561465373300405226554675849041026680815999243941464283957509124086969660335028805079915179930350178187448533473160945625272091354341850194383951152077295806476745690465857767737575888950722630449903416344153142986098399864575432777089663646552866906109815404561341959895727545561555569654094297215219389001407963956780368338349419835703080154511039420414916142698215430040258611731718222323261427629687997696328830942629934218930568602943584793978882910632553492977574814554193074088168777299344809276927393035200842234209009210487056918583755473404055682612835679117239671508857458120718587526581211924069514321909702852671373711918402125346335799891823210163816314350638160045100910640182440025004506947536302875773800587393547052002046177099785219946210450615080583737096066455340461533322319721939459124667620501303380649297511691883958251761995834219722124798162744408673023528148918742262973917679715833686160425443347601177688132727915783857937955760693558531061861655649565813796553848601387093524460575200614587274047890736994879941050716144944988084149878078938991082031264211781962622482012919894082835679768015431372160639002950482309102591285467619797620573998290284304724057290143319864485055836988065273992936012719606572262682208768222105669176376603560973559681462431609713123213547521483640537674937372367019672779658121111447576868983544428600485097573675831289357716619321309409721943200918378505899860118776834737360145494331836403695217350273416987026325317772131754125292190403546252022951407030055983994536335182515980580668437951545947940973804308403225557889798005202568224542884029080101856804156346845566864619535898132699304168452505390928088351972257115021709063439776352666004591694078742256500838441286106809719575786648384043765841952638684554634447857776282778868305901902791942198472947474337268505373879031765617280683897155802204964776218754829200457951331744206505738072102603837614462653523522972982005099298358999632151202197663723995161005057687119868347022180500508375177996523006746989232635579683311797077475521439063368982910321801272006738688311695497046325364819582361683678662191913301108332446773850183076263477976636952828637582284784741289028567546942826729318745233851865224712532022539602271535017873812653753549666656394085456150165070256248555821564020436962820458177276768771474737208183671841567651622939271762430405109043731186273729052624705007834690928074440301300182130870407816384380441457822504549208450308947615000887068736628819090602805305299309448448846746779654571279407132903601516023398022222546606825091650725616693486526696366996265979538983557260116990380237497316823108340162178867085480579783310835673161167187173041131214920145313252411357378967071965657780951072905603191657752337723229947177322156889397371422299073053988767975839910596350459987298754878312323945234328004320763464197236834841542054945136768980790672367433215724090449448450954409624437751803055944223932798411951354379976631920125525788194467725429229569246568107251961170475900924405289189812864126945994049310278559382052146620079766528556649632403925665278289393950074775036163863033732328326648678939318742299274360309775879490239564240454615198265247237615073148266535222653140445694321208878993864033289752682854017146597585593280248160912720303722036761352359148277816112410335205181488160805775330474697363820988432166945018079877659488551537401853031593279687025748062273742273311950503405327031371324093420037541730285798826114374484729627532554012920873510349904589207753366894254033115668498021376791190684329677595304231517894052964509227077716765294841960319810528428537174510092934990918123148802746661604160666551598512882771628433231292591853130733841877563849278599780519473965100409083794774797305131428983639637990504076312638105012045120890918418634530195726938004432347405779234463332101321730298929089660686862167094942037502076588562212814611786265217794361439956651538474649655131468118143724781173736666307526984627439184079669129322673197800503803976855097483336169379725173296959782371131838293652900046831191456058969609369166074656681255116427543854271125645882513400318892225241649957885524059674100194656130123984127197964766201231436283558979414213839978777813801710922808933270067091196797981336544843078242916265367736234534109565256705463157256585016635852429292332051366028226082805794554345455916545771808522965236387100601328613515303355073775628304143352592056381807895652593042172849531457663824542992199135424834486315931990597477412453099695800881148932295306550201945269307468991991599994097391282528451714576432620469457311715250684593846919050709436812041984964666135671895754687624389820404527750569864421926193235542306232588324934695280567784994220144040563458209751782023336761895818033660026883011053795236761052823684182200278707648831358376328611802856283701603776684695079679238978160117749100770421164487001361341008276683071262186361387708539609929296377018458705828663319817450960713677527013454621796919708163697152812920441048732090147077167884924820710180555673071805133258054421290657556243646734243885829441297473305343609413790058426768943322259418292781069995983201561369483085203554557736207351767477777866656007084467047821088807706871905842987490308073479201794273672927161824408142019028196679660501575035408066119095496919125245717462614456158880131170190892457688149634437939146742395055138159701528657340803912885137718023111653231364419979348488763756030939811651671449784428044540460110792563238952814855418801276567297979917044900852787066798356302618416721421659619512873978484770064892192960791716325956930787982484219858596099143377299558191458237482385089968212838779386176487796376964112500923340467089659638650472977652051760484605906188712719116122850068378671220224250492264597749597234933995416858012769402901006244563279574388758705914058145227122353919460986799165263948340224980167903382347671768993523620480525274275700092107353078889332119314725071635547369553537128252409536275080397358633226243267611395529845314985009729473287374087262544945850552179039358869951868675234160542157260043095865869451653755627915246160886900858535745208100834253798969666798407066263266476269759424099459187841510129982034156300463316725892919054655375540819683881669615948082888864265433258378768479092021809373554007103863237059328293966222832638904281935196134194282180120718603043906461157525315988596584064519492205654709628696213570774349724798844844523931517733511366403173862453143671103850241228287987334996096199933111984114873926630068742666064877283393970024211305752366883916445325488063929736933180059648108754046730382693710691031795074664223823685029230483821960170414967717950896091516465275682083668417937217605261510806455970368604465388590669667250138797436882583704589871645489475127648014977675313524658456443964372193098021803723892557157402464178159911716785738058211976985180970112313216301686271076893351964702352114796892980122352059930168885941436637069841754722641530506915461216558201413090913260366371173386238751594786078480162670953071522307059605981801513934257581376593885788741664474955693213564862104401129498676703318993510261905722362518250375142909342009541033571981017263159555058654536108053700018702488092664861477270506369303092127010510052966144415269447172588487088811350663009295479762200467853020806012901265257261262114137029924930202084591761895717687899418708255667977380307167925171680249228977976374218508968646459412858103454408626804395928208076329090763226303230388243139944928516809149280643670266173101126112589551389485018788804828116497963311707865796933555374354827367675892519227501301388153710424660179932534049303042480103261769616227346046437197901087471557012740185203505870857394808819449325677357569998930339353822414744442424633203409405457113436262102362284089625860848635794614515405855742667945220680841624043617897183112960601359808896930441991581888740149452440254227975270931618992685389404927772157309317036099718561799300986817366081788112205545304037171853647065885798948825203905938881097819754156962579046905260576995260783260202949285621379582079689222828752928923242605277475221417963131222356852580830834672112045711031271295737436415267927930135994078974694892079363722556051378197948491353750293933456978735090481490523406026938150132160781840100966219383546497082068128522656570117779088617838484795667926182487264874462977446109549158530171668397287171238216305092237713493299119663079540309529227067032574278484805919000357212650456989294159863842022852320118063907803663700972884505177702997044524735153470339997706429920138953977681519891077231539526309444928303334419588144693750195715690410383604761899433243337021037270725966963188396694556646771617529218046854042093485048977594539219588017465403878924025173071192567557361301395802239706143601870489695499162892420465483316719691236682839365716912285288977100015293503677478738145481552097033019317001218010145414025931510600967920912760010881793754186255145806337531930749588906597191758708333322530009407616403250559689598602399998409037242409908199365597834878452316112442559429912801777500189751817500214219737539900131418234247162467583288742497264354157167248910818337983758518532475536719618322411146998584766326737535130193705124563941088798914338358304497359404912391897934780038068983108378581460066265005123738122267951693396132638384447091014311701957196559615222586478493156392028009285900899747170396490657774468337225075672615112507835873012436004410219753996604534450795481979603127725634526693261788532117698821415234565343871830735058952157726436101532699793479570576460918924165536530442009034350152069905682788006707004824414703341850777381143428736221515765837939314832186930235183733140613388290653601292221813015604098461073640284559365101206348490904371863708570408465984249368202593775102778065621165526417439016629795652405740837060798794867680627308638819875910415279263202458216046890382935139500054927500072399554152934941341226138520500724252730586486343918916520803179337987391186367821835061763544845862545019318708342008533360450853632529341335575038283136068982443048738912071278104471703885490106963375111097781301227945871023302659875740733364153036794660498836703178874295188619723315407031920976693144718115702802691363905632614728667342724425734922200952579065558577449542053675433134319277982207718262068009893705799673823199001059118081529186702025593612573188993335569490964359392149259280850841042603980514609849899094186145732640892441742648053244133237622539451629728185740717924595231482503208833094930414058493768325692676873349795543902043087097715792217402285570923194761137898675836242684663416880688208003121343715229236384079619787867326496790222715304955782906255766943568717922889507293568648641706618832110639020819065612965641742647225155687834732223943474972906261690593116930332207795550102474633006388472853934665123662142293551979551922866413841793786073090917289198435617348494109188611229585764377126874660821907100903393473179917909380100568754482260029090673314448803065547924799747629208299524101256330332089271828878298290663734891423932736522602896411454551048748956721664552970110617739798340721516731237918286221822134206004831770637043932978873312991741846736104112994151684050506717939354870562750211247876771453071391134214814698766850000711596659417131857763060064221849827561697029221851818177669263545093258162984218597795083655291236597609024287967326753286571298328855500457414137247123278982547626697039813415298340208676436079600216909647891985283110893023780010610293443977571484037122957019104071193398794398889651273522994938531631652724257113393557761316270840273653747058024039768305959535755093651240291594628907902438615583200977791453956295602718299442637098573785652240221379752367117637323018168838195306737363009792836476812490257546405388103654151220285792454891863785539179059963960352268636631521261260367078164278563674964243716391624147926852335620585505664769244622357767932189873625886623255026263379894201675164624840547360553285409526690332395740404348850113719390716869076695268959772301323603567315382758417523170652955881900730613080004134511299012693754139607142320925004673172586609556647013585366740496497670714235991950502149426832492300285050930997478219339689221304396208744666804066664738194486449978084174915902193785351346907440150126160109823867989976025253198118852868230143959357347176247499252617252164866962476389146532278798929405591753879400106846896870882050344732344421545205857392173744115588077375319079083710298560557355253447828374228973197572924286788965969510612217714443655362751819101624697722726390160903679947861412912718588540550529554349260252001584618384317320999178443706181085356526909918964700700881584657915938442238879947436536462647300125158896423049317448478835420187624984243832194072923340319785494565626993280423763944614410118101226612538781746891956468973893124054678503557820503102243504572152400471359825978975250609986073861232980275329138093761759936970994109247481153643408660065231177378136408245008718972006711027301254194976659991268601521182555470844739634462358601442620222402334076814500707211658847624720323952538082011485265657066905081122051741961780604114170383745252672791745012973152445771365814540505017461508636073145923075870603450092226408607609961122286255644846417748106961651315883256611475761005837034928953730053985739070211728241565574867199526500996613857979643597849550154073034777806793315161442535799990261070490873548268231694942310479252291816014141667069388337248737311726788946438431292899353482908924564044012288587703088750864323030059680523762733352535011773501056057914026128630249746949109356307144137807360289205467031307199514520721046739348613266551727988462128180548592968060002098342593552756550754155927706713171824810315813226104234043535793037121244949790419426866481549173851616556126860923292967271914663522772722252150038463622549468314605614164845891554003978930595963157139058528849090684277685335925199399731855799736769118535818982701751790652422084796486265039649075142543140235084249397575681281883877322178665904623444194612462356714070773502422861295994811665627834058636029526513903720519773258020826630910901479329361035936632633358730503215947164688779387486461890278649850791818109162265190188494388985424646334520280270344292974176069539259428618996585709576257529814989847476903062224101733057116404900303751001838635832249574602377742929671155844664612697318116562932034252694358181622096837487980763575873524250683551661927800416348770283783241476095049745028680558331865450259878454448365160753671201506952766859412959333826586718892165715496798318146564623529358225090782685327651455512570643878283682049991983085840335024026743986542499951037660755108449000605879708727074690388307738063554183367567642830908961439406339440571556652586020669906720823673410304179800866086648596824412842857019378661533815531570335474215883353828538752417002555966763139898632893802310491567295221749339019495300810804538274158593460978206469086861810776155634809454619422378559495453057656837220552813026784999207397478062534602053744205808460934186312992111953528161651486769145380514917233684782591709605630952803778785537674466538107230548965992563166741658746995876902753915385689032206295822617807727383432310714717781592807279800800318168918110094409028706655531126837529282912744999032106679599861120238998209165402601776662450810454644687420811867445807886279238891027794437583580208128388316117907409405953161450170158330808617019489869388813140013331460247410119264798029004738366788328703313313448414504061067921985437468677120523904624408353035205470955179446576368979810762351319414042739698847231219314039652217511982078915078977126539135417255310629108010552431809811421532520307975867961834573823996456479642037818536857715883472969387054957616509709421319407321771294599452043572458046069718684393885441588125397817780913383892573693162020771109654240073032216714953203590783990870121642555268488872461469202114367807514967960497609655184126508978845525959900277245153724760032066010936953951479206345770037103287150950267443519352024690425583889285851394654316826936866836743333788602960477959886667859171547635146727629255271115238866919428136545729392477171987564103275863613009660206602647609029099396620923764136797302996922645544070262092150313188517149716023434153568961679609745054350713873958031807273209143406583050714531170968166778033171133061243103832153587560415629282586765791099605958268527473003691725612781601577186767613924568775062640343448626136344737632371735440367901091266882770929671958068556528320279651626945470960402024299597464550791609959814101808508224587097509114795093237008589522325779373240138233253410183818473435036579054121330257197615994825260536057932357554452740145345471699764385135211156635270506722404305119094542893867819663095334201428863779965586204026178535352616331169247927227588277570804108464494713672011604230122705989141870775547328278161243291590072337857310821933629952181931393481664508876451746203636469136366905597356094166503028058570959434111942155748018491636023413466595278284493109079726538143614631329899334572758791310209136272440451638157753955649298042787495193847145328941490992490698358038029998270679635912241621787417601486878038469361844665735595806546890152440379400341135227856526738901071984273087345971469191613647852877402386474675527783080356309681897810996980610999402181155147946613337787870845954515332170269991230784035645602047442699635321848803652330874450387511297684453869234153565137427071161898805974796084331236710545681047125673738715996136297621007753606447028448841764747232951613722502966239183682730075058732588916124592919648291332293925123212600007563351086443419902966034180476953739401573189277589003322087078731979606612227348447280479995689756369105594815533615123569767883026915611259523627736903723197212023171360855458352128591595106183591855407608110098868951101085827746441847314246411009251811517976930338570561393638194668769241989589151340372265181669080221376210012427156474054087290225119910308630173904428041634870075172728743596151523326597841961669660363731906209015437906767810309027491736118344320649307878586385527736041002223840189675540518000832670851473117510839599968548846229878555141346067194035309193425889746733469568382836787469791548903703186126314292007631258685451789046514374888608554233979482962018650971979233728661833965937411497714723910563203614758269012135534458835660979298893317230885180344979986246024115887497274167964806919370150799233723501161794418141103306160510456613983617765206859414664119035937647993620812280174431329561674293426321668929279346134109438806712546893564792538665455092694506273303100010659101724440592903277406993169285936264092385382386393270019403355834202874386064230823456850997391876763355030923866509499467185637772313751208584601963498205224810450284919178072293718850300625128436289764197312499947836200925916209101562616884892969935131900049080593129558448191991643550730974894653839968750642283204923199863895899839236037328938595748970005987115039445935168262366337578661643183367506179914667235342142934445394995242446979978154716798216123922796796036249748175436056100181003322643742300174376136323600617547826710273806594386992960959897695698329643142734906458324364821533742846731413657063324424951314689325263446139394967127182602023605883537788938620009742933793792296589983049789774829318072237941651179203337159848960571963464231407215215367296284643091093818220620368385482213361522274345345339077188387296863400649191880819582079535172868355312361362556126784412809563081330692162480426490394075944190985895175239590391601364656212741763849755337357978238873851059745135992762246871234354705673900141793677413354948762058070391412642455574429574800046208708562883679604225540720396015119390552271095764651663392081292244860715532341485046304255281318744741303086442275440827100822113182627897074456418894955838534052782164072359716713868153077437159619994232575267749425618578110131836690755877045259543794242440601801584149722281446067526984105980198798574928697808604110166969547151220238532993509141113839683839726353799257381948480388699580304160902530191827918907597958793980722918440793115074124732784087431038540833498179535941495399759314783870872527315538740375055599589702607656598654406485403142430964419411690482275701832006732142488203299927277130284181550315234430179580057652398131465720621850441867406335958488588267468095390468949948033807875351850387073012814855427480171480244863305185585022870859156147965623926239873782236646891635808716470322886808885163835640981849311153227399524510940566966104137106306514546636724604299281968840801017436972028475544964112707611826433542792482129967422931564618628779540176194513784011179355575700538145314714891267063239597143119834620365145306219827220675981710404224393403368716999836730942813618616551122247651802098143172481073618600392536537834189871996181252709797898480533925447388551281719532811879229232982205393437015875528459497790912703989152992918534505903264479960745385147770708720680081339433416571973951294614766782294544708748696716131026411687385028382818708924062473198922210753588020435669877566510031404756527714498953206424145455895585909293387670889663306657659198899022271390603470398063002584953169577995115382222163765377464670730238351706821912591472356668505600433539759789526472688590127267547802378435711378360263401401648598430066835215289087268419384276242766115904481481039362665717976511088806856535575859790746067422129174047333039891936063788907333444662755012249974477334514199899808608143322609070695011898553196067498574136812586060840891386507645190336244257762166948995222895155873902655767470114378129204728329892992725365142770562031047290452862863674320046558943373567204197936747149285538934364682226903438804836614013796000969275198381241016423141229581398996445439615489525597429967512047795789160280131151505439128489405180986855044052987951587705798640357800903503976862996564722307012689206668423460609119241031265419799001808474565235921250494211906176211512952034885025244192548977014713748341352592502196690359693455744761465303978013848270388030564578186820483805249962080568511878967310286780420090958415796273388521348719475244771898036381169644997688773803301701837740353141591867070904647152980094222000125690999144775327136632562627336179713455877074034644124530326810606857037816992460616589499682286243176512460748629548986857300035584258160177204907718761467877493801795496564097808316859461623658832780147509588748639471853807380821236148357424582570346489532443077708061136754142733972978757518660837830143958931500915787508603311252914823012285109374866693547023209837893804928967776059073724125791776049336706887342409851250586768128222613714755605172358611352152147375914294793570366480894514353391805554475421634397184415810881627597095846185153645376642232052995637777680786307221355754859204581546028491502955701954650977704223550014409467839877688243117884992613530095963806784503763461217890946938696214505166735223667110713782175689633654462280232976235614850659274405497750217429020156115570064054159978459730229408846545621595375415075745850917075156185490240814765887052896558634948562211082647654464401048407414711749344894574640936240529395384399481604629213492640235102746305662195669015091056778326585125165553854992999689962411622589903750105317011354520148579376644041182031405227419054813225447555900842136139856946330013004823041792825685140298416284713452499095814945737503566439470977936284450642345286618374444750908800976013822456403946918693101427090447392826833238082991176312940668147809674566710334179432358022509641198279126067467526461546006770200253323109393446826268427296706040726750425640616227242634993529097848233351662176959587528525030649832468172372678104817499135114552201599982662812184868384921173353707297798975825272315354086125116128579105273805729636432886318492645866423671491381724103110061394141056057544098602026790400410485963783384976132586360712019132219700280643587079324758132916648480338554428794368733740346712057402132638178585180234238364555661425453194901524768462957849157446944058155255443035048765882883809138939621732028322205589867744317459803345600741071828988077505165936306932470448952641553940519615702035410897149676473971672662081082195751933761418684811244849050506901273702048573791713192731543054342486404250237816899598731092021464829266451121877937506696449241108111997633226419877347267274714853523300552261003417202335431339146000703641741164892686113646468215661178199472625695872219596928129888639118094662722632657131426875255922002764494620116516921767264461453940315344830236166538532132004224891175105883691710715291572585992804853526385728028398625003594894066405069173807720385339561199078221514019636676979147211062404832298533154721802084057460516349481597167113970140303109016263763196833263023267309170149753255977575344953082451872003128256396471951501929964408659274127954368178804036238393277654892793817661222867745314793192550076358021584623492626862422700913191911235076145675316883365139054387156634164799850186434462245876932978545717275020462983588135000293278842277764163272649338249368936396787316969129043753851625264692985995220090636732678619958340616932231998908176345381936224939227112237636442090913811501725896602359157893663937393928092530681699697593990438261367631530348743945553580358681772004193401179911796230023198112557909878258377263455294582277843084929466180692969538927710796784788572718816084711079623224541144704165979275406127631797567433977596180574132724141715347212007908777797665563196899179955124875032471996276328890548028888232460045522933032167909168751757872344545924901288401486586862289457613060653644627193372207760679144955748782328762131201518590896248740907924826182599345061998140316964887759567608705800545700309812305107206979330042725923907948123187502739388292398024520614329853288342124204076998001619042249050901912815848175946099898339165685691643642317679618522270942522545681643781418477720982069871495572017056572309120776279379079329459357138070142130001508701661374536583963082835145075755683097143994821385719632984584789835268197120320179410911832273130253995348802940510565150655851385133074829534709346952775994824902122939481211810692824565718732673050439352007069903560527198344179468752110158102187380005851500785600854656884226499955278916936512335961089629927177272903105108725428455623202451418287439148432430475199450020314039091038547370612585521432877058701493842265978865032358129187958656688315770715884834838786102924972017566486063288017544199022670178649882370273998975785954404050483226100708966681151183519715909481341020357776687458397463523625878296436067962212855688702519062426693323687530307901914187122602557347716241163934756745245676059758329605622219416056653727439948954004244484590710781450385650870866642333001271216246873255941391415403621679660826511772787628911757659352462759641410218883397314126324079254877352542169546734956769702092850546368702315676482483026417397138650222409545455790814534072486926570939705575802741118970363111620701165298704564227174525370579208677686970665900772831886465236132144590167768696229032836767765699398076066443467165375952206477350970342095134703765905591035517268972741955168853421160090956473371126570929145487009337242037643166334102434385645504625579792851155579701864096157277059516809419855573996900987168310062993641449422930011090717704628084134106502483995574681253622635846867032821993254709475205348149596358242939619954511066189307002898225274457943332286802149213286959208552411861570655476640399928578785857585368808571252988511883378953738793145988032819846096845472372627794181391636153585046560206731851409058994278423354610974484848280232801773228799796804905610200711346310828836235167770426617721292107310925046589177874025246300653361373851061585267878206667998765414665890266540450295056600674928811537653295456167577238808531418697434430288865972223802468117548190749454782230523681874078406855866726871289429791657105792821222452110144206862787175175179142014776201011240488172911935054215341833299955386904093172592530917061085239683229475124156725436151266276507578409062318515662431727173877290886866468305247178637760971075770313767369230306725089435222372907580860894065592129817612671962281338159133307295825091067304790482862613693238766832999028932735003800618611908241489088942386841048674226905373764582459425004897210382830550499231485389960714216004960185265020573801942218983798083746301550097903123432239644628037164479879777628213547993462042024242431004707712167008616294715094309225064953815516339971443151159883259542311003838689343676664152993528713345422118453587558927046144588403193555879016646334333995101163649686397538145973410314826125003215615693184497794814968362925453441647562056457200448124022837742656446718765748311854286485179129021626351109574332020657568939381545378288689544084426971613803588359716960132704163929578847096525974417093977775197782183081382421727809678028165147943046664235441634538810294512403466868098821279144341802737112879522521966734444137087569738165438959820441940842377640607214301141029489156094403445206999463459226791800241187561409653106364357994011958667286603087285495013271594101073079597106693431527106449359233595432716560516858586267146685685763495216620042845918375747448313254222695327231426515177618902594297860498599726008348582075846606739081810305587240061608325517190960160521908216984121460943145908345284894658486366414595751282050980103432143299104550437398011734235854502927987411361279314858705086410788708502791790260480607979735430699331125063385202873760872859859883440342795569278817974716616356326207484616171489760532605479137869568074285222570992727103578349752434148704359579765710218101021122566653204522597782662307582657248696714924490319808891661000303473592379716712067612246115812252311050816816507447026300297942046353025650382301928329007940592669977225163334942568791833524538978427468234643684098703477289100357352048821702625317107992312508120275169473734685585137956403376988808794326385203353739910831705511216148546717439728631989175603538059809462439054985628324739760441646716597966974612521222019349267891644815762112199352779338987739229203764336027344867054263345423640417792415277315988726733293181222947942005382666001972940335635698688318440198351729450700591635727002607074033477568094879622470466720554867125195827778475502635584135993679594521384581505675278977623980352152831803433502907415214972634995343360399159625458858525309403215505737157540782337701120451013685105487773945147514893826864150398265008441050728154201399569354485874619762390671542032664971009138714905128055189408700559574708647961703276857157520186631376492231280723153963596451834726768765719832255218344980067042632375496971123774946818679094520290373289070356819972187493687350740612443489432267785029545407427343579765205918633358412321800023739715864797006821878589615491757307245719134150730004807612917762064147956505226203116106828357842458906970069660492311904212425546253016110267103875956391290260939759627385325277718496932744832475178378997132881010467426347661480286734327023550987625520652422756383222975492122966939737579174697308329764863148877247590277397291636170454345427466893313802648567098127956329270024030574723825157105741448870167045440530872164797656232002526146555799113551834992474865489976284636099597905426990623376129918717451789884458356185197502882578739245883719731866977684943427190868500748389652969129419195976851206376648586106186113902728146701593641391381301624528587899623350523984604142031740018557088184991168947497962653967047455582868462574068693341580275835535176448990449465866849534074661310680067497446355057551918659283740957098511835797683245954666206710378777206118237802551623479046197707832146159576344112476729800194091236720908532339429617122445253109260168254923297135324717553604009649194094171224995307179542711399082421100312502748696513718690142014107137743780108826423579549784495558916006802669199988871792723156427682519713660523303617746903235592110949046094040158768750897387818732013703815339700738111752900099994693002830723788020913094424300195861882131746622615061183574899455140788018938988858840867574890430113284085530187959175392248319682926839704759102069196857166562548226257108869538836097550647197335977604537231290889624140117048611657302453606090224218326013491133820151713358440138116082364818747699068368088143316243175439606011563919926554285084155641012454265119009020302060679645479752325251756130064709841035879563555368049150527168921337911503792734088491550164082652277351253320976745559819642680581580798094615094859581306113320493177534201351362995718611261764458558278287296672272406203709871176999540990916521789343566526325247151082433450199925254103036984718210609722057373685393252442120800722183694456819869351331702543627403478079038506196163937028605757730476152413980943641835931935078816696489631335620286381388726285682692973271761519546984262531117112485811187901791511659160098043513282410439036054849841630598593434087638854765408814904563704878911026599809118356856078930510312999122618750207243668300021150807497760524895618890117044501551526726888118929102419719345378681636961808959122398844914864262931472529407173299898039482390864686063214586346485232893511063707776344353426560544765847892521230419479017306106946307045906675842627622042926439544288613276146892505572071697202488885825398390857938925414585798508195701802522102476464598041107070677695201496148381088012706402264954887490288636185685392389944291653294492696655478716247045751909476800896679901625207639583435653138813423602350624430527566486081096263429018885689624817083739849621700906934612795635204481053043729431897446754171045101196197541697149235167881759136441527378723030664916180667023867519903128318914428151280864424749814660890129447339146269839437356877896592797334125597688379938924983809627647343897662379614194923981819241656346268032908445739361050656234681602663598885120999869099524223481868700090945934695008534075163008160125390152102695733215854618590687655136260978073719052674180313337651700529436533517043789720204667058049529283125443535342511323380214544003957225701724666743796826579999702510377808749692623522671501033280596387897144700017769259267588833819133612572693978768918837563679569139450706054164297444893518595093385013008581158201616211638305177350462113700947249185755762195652620833365184749511732834651017227396509705897687771397923212715405497031465736666757456155880851690875003528900793519291016018760379364841446356463568731934742018167703334591101054229735941095844262744367817486635808418129455785162089514716554615208071920845836871533026695687132261340006522918615636233604131296320296891993389389649138885993476374592059660224412362685954488348440316136281451077620786526555833226950473975423431730958381772738595792992634043715362054144409658942046436325837905501362876904600850605969898708022375737471055058522178160254683946921566158670903320615682191444471649167042248733734782460961652432621022297805471837560265125228837521104363225112438945969580662112223323493322505926860748651253546304840668125671264522593302493560832473990347300484037791603661370709733800148450800414727828072452428596007941438585622132154181493040497368051792603108506073200831005271281356578281582608004423657724411276198962099035669597445866014424224369079321609408048513490567031576249192021196662474046728682425237585898766298381175491701001203205292333404513630755749331804311987313861704801219182372805253996903239036670563452836084276744223243576511007422214267993869550309802535685999911117427789555766461496274038013393085743623211434851529752323339056759857060677975418075060568748476267663782408111128867902799661958484839161631144805446403422875755960156315909045584992807482528793808212986767359772704911480010256845965643705121370376701017799279329024793661387722764738760845516736665008107228030928433641686176732347009371459560572713976598437412054652382505583440289631629296169932462609029006367161774476731574840081835952545945638638988465903882461996457414793826799927684249719905687897304616261547796451815912731240788127436374976792443596900559140452204654822328535857631954451548947439971038712576084303652005965927026008824274180488905777274757401226791045307445544007913473741773214613871052728167901458467384553625776970282610396202525892997921225060413851229976257908830208891060622742784113182898741892268753077592810978272050713029233471283385870604224967876607697868399462512465709834974646163566119684238285910468431286138788774941241903076486450051502444459315425647546391704744883012802927282908010990668018551497863913601459231016823277753041402702376146290723341062703685832922175508999876308127978886296788914554387396675857974376836431459783320565627275077203158383422201657160785722225684927839189753011725968961064768494669953700518648944751149702690551327175032411029635357434836891923914894575025885978271193754881119266346900652604045621730009440913957937617584366045600784423348301308682650402590997244324130317855524278685883088582571599937857908888021108900753119236300424257093517659195469343158831772912361952166230405922585175507814740827450345410646502171179363211381453218496800497592027385884973094188197413157646605544792897478988850013526798326209315388936065974524699804174639587107770073993926936575223779289069425158751492020105154603898635254259399679940162189431983343796723015601668087041708289480626983129211246968332496221197959763824790838064761234362704772502086959712855391565699185157998251243340906205610275099845577919257484253907710529928024407074894033311112192931883290982073061070050476943632660701634494106052599628189421746053436054884985201518013812977548228853341196614884245043637141534805353764298799654948202580721059825258601759806989910400292179230654896506271070069258906109041331736105145778171406309551346611084372840597013396183560354821955959394119058659046890765127861362055247978751139095139483270233124790563187771759918783822136379589636004427568265041873376141511660722693219057231928429911856963569716149873275591321164904871392162287861179893080461109928323078616075142007119823114940024693596618007531299249057756825673324920756357169448591465880825580448136430570541249796783145973266702198491162593309595700813838687047127853389883169771417555560378494810450824657110697623549136526499002406879716554981651525146234760228864159795479603173708374240765753632350711578432690654119100959513727197296056259544827661214761243765563585574850050118952012297705271623817152819155392153354999449202430012614688614985784471825009398276632895979438080506192930771108566431714061181150963588758758697049872924843035975543932882377999974164541501628210841527557477139129112071931203809085310949550223323019353514570190820014463594876245537924704636716827572802906946842421887377957203832091966506087133080910842130327036952309423721830805121287170739390373379040516852478615529038826876182857510610116750012292023248721802652065461814973756079566407332151739257099787359452343806076303165440104289950621577415901751484558786288119699459528808326712088408717318824709719009559602066849537800952614619565201159881165601935487653178690635975371651809754580724398733211528984092255937967366222306540884272735532479470566675130567603631691009047620151483026872031916270540560060741304436964163252767911305632922719457484773233489466214350364239561171479042341962680218806622366913998150379707607646144573630440944695164828893360869601678934811959662825167289564399852571475036148541445244116312105854356551148711371060840076048199571444546015188619470464372390748231932211541372051374661997224989192467691187627342018525802097050927686667608859289104210153584369698079982184951947489329104933387899767790508082091481975533559026837165721694155312084273186913450631948059008056291619853581822086899981805029302649251216552945443121655777091062695329002596644851801549681604574796547719066672213656004997104338587791472499531784436517458750788404395454108835628835587066255049845785075098391501583168697308093119961190180962022770300522911886320274141555456759908732453570442389323995273903402942239179740694210036272790481416630729019690974698433009438837701288855472429961147296503113057661851091522728248192057749599000298347938448057916264874627351968423823587778901341442845697771719603132650873388283861771519063975136452132966314655643443096322515302349080023747819302467910829233374069983564189453253321574158878794204760495602474553933056585351810485122109881042559928817170753821483946360094018315922106775103546379003664175097841808974153626107069805522641979023828657065107786107737178737002299208980188238040299079115148643732445190167275056512991480695986207676497745333349400102741660770536222075386282176041916476672255544524033281191496811312290970779280926067635644074379971018766756032254072447736254786036909491574165999801399994403677306318849285897429503132079331896825725736946328566809307124987454300675109042591560325149941381757355969655121303398475544093364810975613368904090557726615355432965186233499507005775977232223970284030159406325185730340320883561949572192336364531022680519359771439029632477946393383224284863524435682179197814974660430879426426675242175468428036360571532289705891234467761185348278613033470225376604500373534330705676475378172558100252958677427274227204918581790297811398209365346676874126347364811594075273177954315007893688620543179446187003371578633742601478246004890986896016090811531486992621889340526872728011992169023424113095097389834705438453874080518429620078038065671998560959329453170557767054238191806205828621906983453987697457520509709611470242711236762916971980031198734654483987353230611222752666780253561849986546367045370122558646611389253466486940511852080829265318286116728343356643179568350288885673296311565573876930670790938335085657128202291343065154967513532093028264096202473902391515696620573671166000443093476675808773763063370794359533455388570832921927367727769841041000555367963670673159629271299079730960405636232043564463106018439484617119785033265405690574393510507190205314891595297733762795045542410813200730549889288098266707965188061067165915029731637053621604767540891051782206931491276112241510395678872909427015437210962352662719471304825197044370360803505088747551040096766284347331487012062763574795058624283580756440878688960504156872220507243546580798609242916539796492698227841924313451455813041694853716013659677886064399072369699207877533727506300024407577045363735390465130222257468564319986685544686275550884900225685458871788845238577638020213780183513219660606711650054501717680640195600362211469691085873304346951592105072517789190876530504440684145468943211741780480561447075171518276067679965808984990678945742888512767913175050192193515687376258319404689171731765295704333978677430691686229116947038907874006687836870798181532503889462684108780944647090117442412216722532852234049698306282989301731508937631593034181533654043484708388252597125266453319330051213964659746252057174387634248270021717624320762476251941785641514248193574275925179357357319406139267945771390386553345925276955351381989150044644379519179077575649860955194832171557983106426641574905851211034562415124416300319754265138732081242003218203327656447565349613461683927127348391489483786959717742227044047457140065025173817496073643520842646657486384428461568207916610724515825154437628662955993969484120075937389129886842699138640970738195003284849954502803623540107975541343970467738621574270086528069101632740863759496776245105486356498882067418258483264285351793770509597248873045602298535022964639066838137418695551799091028079436415432268522588869515438220191857916876152746215211846663503539284779491312065176189635780949993996768979935110769801050755185565984747878061246424764679980920377493544944907602194130183833547834608183042014629834042116748346946075735365971137338666445568632963696284379670941748723685200174999076328601070021060485695686418134501293057738518624625745399807721253151276426685710545534569275098493151929075439371872680253268816846619656293173758898940196847152952192607401516787315550043594193792434043604673334277100976649656214189327137876582658997451316932327290143010179914868868163357997258362936473342339375630421548280060069496687641928256785263348162391330472916234857950044815245762082326478724434473780727143040442173467779699904547494333307505927819651896772065833439727407557776548097467620717429948583473572251955241603966789905323250278829571649221083038772832309411129582244699366482722113148866703176766313314552419359257532650033226166040051261474973887710408960480872006316615645433797503721375862819174886397477569680683874879246846254212979704432084574291704294671883582030185323129093284027738162975748613621568393639093517703144553488613648584468089779872782299866082944869216016519588623434843344289067521615992028833794541779289436137697951613974027695055588255931881259137651368748221441311182588205971125275811130104493561896628889819354316150727372921229396345811266544250562156809505135676004743629006011405656696465018198312118747607925978910339952673185512151140955206029512304496254124874271738122747280848178782766124868808942263463482585975965598927034385565388863002415822271314940146545487617681863544291439096293188523836516519352778064248233820377103834886480329945558025704856457244418091433042065235994921086472689688856923904932564296400763363525669490121612864966702210366398257786981151472915164835728744980961309991741822411308363661691047319704919149888325227487453106796790496263432900549908969009932718198277227718050008189837108962060099428678981668686235914040803867546682567287238610067793619603506379707735799546673923064187581853255521229444183105833620587959201967147504052348281354714425256947842371101875516415609723634062139073307841218795123683582646753717039227870904619004122988190799462069188942884700048432700451456767142526783937805335127456416696516340820521660426085817084291715643374554820645902276850906513989148553803136346319888489447991991001970265336219073308845263349216078537156405599865028043952329332602680607836989548682207824109895732751894400382129758156759759819307061855810202756955386041848970420024059056159830352597953929992221971118462508142227992372245376036731118044311368491269708154944307291325745954185961807585271855769946150430965683889234817551172156721285865781051173597766324588022140979844843338664384354635253901532341765031675933133998732597021312582757585299264229585697806521801821732758284142917852108965800964752526361422385975055240802072246704573180968661162420869643115995619040318511109334998401620105054225691492019120683190411059435020226095973479308723828824646268331925228541230390359077202024653120249384302113906461159728617093311728728781871296969351755002619883538286687614189574497695032403152523097169433138487051238723899661774648496719693800945187775837583530703612760532866896714880354058551713130701115797746361938284119153579531437517724928468574014007644372084715220858154276300099248835653375612968950611651533171013591585360475563381270732615226636880465462241966617313013055839462135500945106860919807119544330979377517212361022082614952851241035855061174377515660389937022167367139606732913524231346633155125778489024941662854897912541011419581695794754589751756118141663128748216629096835969513120055242390220378080015636254626074928558105802765814630563906534663163216272834548251536311845843881189143320957221115958784237968992149745442453431984647860307171932226599907898374153821225395794178524365034567811791127626744552878056435658454112813850181916188984190146565688574416168039181323824472209980855185977067010428552303782081091497453900820214006944576623355497091353150495857741369186038103754389884239202097259655116393138846362618873863506184156692724618882536266837263352569056716599295811222362806042781559421288570123765495766934137010456686416843814281002309678983165647942803313879924306673535804856261471256590041769356517642233760502248968241853048515840477606932716364733402759609273876816238319145152771151127168171512880607683897543328451519232108143183795972349108337423476946306256954504596232625368818328416580909203531651903442013113740037028048216226387825042111619977116725575956578178453258160360864666989049127742181884159536917097853090731967263373141971713454540156216734998858228640138245808056510328538660267334449209685299563427778491269735971889143563298125772248427187591025500780162541654821508086819132895750001929933494633928527670414364950159539858675921095465279335370567090331302039448553163968146541537439474818544833405981577317224542872989461109252354906164944886065705434157647533103936886034841945681918467672057650503216432363301057344063192087016680004209980153987041782613988117359093295222684534800005439255304157299899714662653493659093469295300241814813824018538135633293295056983702035961689685737965640441541835638194223454920524435066329092684861449574515159139460949944762736457103715911896852840372413312062557358126059124121470913199921318063735343048001434563366057983521375912622758935046532486887951692331093114640976872618224538992124729681385000738670457018385267076793393060340094037951576503944136376893551536417075619361248946965531239591051772048318933959324414688386300183733966702937377589249358076007802825481130642839631159616539440820470052732355653645398161544649622881744352353863529976887562772262694973773567950960720425870069930061185464869898279572168780695511510401487374627360860337715391809447702629412612998011319925628177342634737181101159579980579026968761720804591200585977608190296968827249467311093667058403487981687346693170411998588943047487400141502248951762441868646009842026220677391304910650642672185475947072567252595243049861251906676983741895854748226332720334162107020173874489999582118715993609539922672118807200557772110632366847769638698887397131790080124959559803849089978666199731959645544082088137288778939799596036622929614820064467198140972746712889594841348878239114010803545636022508391979752763194378500824730741836765262255098618909137364782948894838673410412713464280171084758225404880604693353534345576928356829161513334211480532792044110165238190940523851751240577057320242705044653164124739124910516355039564570676554136778148040239647930796883720038411354479417538021607108867696984906599871348273631684582322979532031605710690489686389876038736382103904840818682056111225056381724096877173332785743749271773141691373565893069964810657361137566892967009004503297017943639787784014431973165845133062880780151004146843735753620569871435496794565202506221630672904717834060711656379282173280579692318390278274898435596121705579837242045033208432921308906106412266676356127834651778820970645977432603228347917599811297014012137424621196921612885331458860551406033954767352562859514651258517039590299160189478750674929682557653004516798537822434380662489851815881538040656277144714797780587190691706793738241612135057978441832695169106119870589421659975562025663223463837243414008743159856329731767204845486438922882603877360973488171130283420853590851595207158293234633702888884507796310631429418327448946725023810140794699407726816734980199122324412895529529464378959362863444597036730501178398093778336692092264395986973640904928964620339305521073024867160682322826186184533119479780978942738625251496410694688703798767780953827909332330787671140560753768925391056172938419986527348311686182809047373658269051131254559633274016701616840181391987222519165049862770691694781559667516213528138012285647587146157869097198010382578628997863395952876216313920832165218330936503634714995739043538750129669606083903775742874836838132834373600086266850686493450316739732373422328772164536816828174481471843576899722290239871018100955639643246308676931093724503548662742988140676393639524053402757134764431544722956160724285787551704893969606143359497163053706630908700306578104741955527924101851193979988188371599089726884351335468310968672625905000735329807094395075779162236311891522582193452572685685940005116736749136810050696715011733361137030378508122758478913986249314039836043971111430291343400744827605189851239282201818899945880127493820611602703499178174259101398381116431751086426755047785244997796449858172561037134699058200567930810599794890220207067482455596435191277408047338901840383434072594778156410626940873146904552088549075768673841051442166756721867903673263561376340445272008094686334876422229210075063455057966125803986937510307020925395451994614094705145749914922917532674954720279094082135503148276329180101736271506338436755938658957629492132229996662365646501000139734194901329373682038431453964819256168119504488658529743456393765539025819557478603778109648052514530543821203174603916082442824650725081982785229533883589378648514295007668242985397313112544041936195725186104271276088953100924634155763099477123834438666887035498591170442208243347791370677399868257601274996181051256161368100338867863690026837296830529451889710545501380394712016813161356974846808854791744270261568503153060579645096563865209828416256995226953579257957485304890485717153908439895942154647860201857281460736378857681193428739954426280895686325339655647450622510913007197762019992459001277044364878601126808943706609168279713625096671873202592046313985301473425091883000876459012781088597223927425200288631878763738995523756663287295114052184000206282309035668518126477238929555460009795355042681478017958269957067826737398701120161640960096081004155136352663186072906794062992179114405563738200880925649448152697991343837322316057095697593359403736322868989091342439570048808218160101369426013666627658207661570076648884910926076685607364902828031791665907354173342454920790178361721525910001018578632564876255019218465801262988708706021918910860361121759859923609521530916583509854449446234205321470987155452130819424112973932710335254752421582301913311283445933353131849802011746351634509475457461067095209001618055725047756651468756530297427524947733900755015643283288090900590080277607402607364180734689354207057993970668657321680450078581044717819460212514868539470550606757011363172906145971558481073891541866847777154295099424067164286840501658285769406702611681084206027718045432718997879603819656838623850702038042916202805207406034211940653858450668399984109202286489176654901676511658338917490801554638887045480192819515076420887662815482001835258056663773990328346529528917680148044445466262148925580488976390902679471961345191550214649282842168008042091253190648798290137185810645520861332332190118293579543123274630439747792137464883645764421566976853036911687778049171521517428694787149528174382642803393708329553581270852174955305255168828289462361427131143514454498182426847475404236181959897428480890815218233005264477166744320118195599135390596184684569904232299008634520286472425559318996153897873712545066169456690439509930243467933286719758058907819053581842862046682221010492292981778102774982909248618185670598073189438172053261193024508549680073975777430316193687507051592775430679852609888173081776024798213382865218839135738609069464549829354576854874922555028866813255949218894536558040639805242555392320797964554336091327889168510219701893879250371961021758180510465070637067225627090116363848818937581351502385019228819241429450041894060689555365194796915856609706006799152092181766088360681596394194807124643626926303125050177915848691342871735280958158533291878972065832452284846982394266204189588573693877306667520827447202218943071209757994138455387959308542311385468794918866346820125189745920399400443088094992843925714648700983911395844074246789044895100276210120916828851571381755361115628904156261042504468718624820192026231577528121453483935112992825204757048738107435729896778624479177661347876768146385317992831700135829004095873516845519323056199393416043189271446834816423585275005224216576245225267339278972332247345057725459252757385924648735784311593795076634109475276556039210253810119468974484636852251705737216910391145206229329159571367509224755225415139278626510099562974077005072062219915964465661444548816366331967842430057793779133877033187854460993090276528969159684518200766106260581712993987620058253394845803182748999060910374046564717235303385913457912276249750661977505000434087312177711846596692310269341678155668759566915869820730864242061081141117211095761074852284975790291973129494642948478120836184642189222406882894788298476249336215604180924547857075385103481602812401183868483713889537270028857117442781110096296836388092703198606595077602849536414796464714251028592336183969460493400687409633959028839828095763477185858723897602581865133259107755812358783795273152765059812837480615417537571793510175408522391877484030908584849278215295149705899864815668561243672450149324739915952933774936541698416225902389306220677761821131110972784257005286495976957472449377735374442459202630866720138665956022000867482114441944436379558426509252159018101366187429811228984669114922464144154470416701658182726841451961558236725539757162050798084684008903198840734545600093858152769393808348327909361526225845853135700728939811052279666295647083028617933381161324177922809168275721815199391211204590450353913605373590688245652777364208982117140298025192859855822940318860327319237211060984164227730451771556291388927394898304913851031616657017700549236641322086612192772425128314513128232725620687617886284474719836284459599325271380539779433576490221639270981718015443748840423740795972969769748827046055869689633137497957987255514681527875643115509121057361596953132654623755337896628275622859066443653008376460031309346552868479776492190033352131408814092185160736151235339832044376341394034399603128066760212361893812875335129425227448268259256833663519300747643766614332251395241988786752111164152712790503116923528543858898687973830927927351481712084545554321033724887231600514779005622358716652762455709373092326983861588425874487795340522490981174791120504999617993451259241742316799932940777657196778611927064005938716325570887792601764469045687860953685146828043227867670842575338260257537151536933469784049689287459116956234852634670387014454799544377530117674460476635871456718267575969218864017733002504448844815655922694399077145792589452051340046715105632949135728183514028080604088234923974411738869511819917028102885701898571841348483513863565062852918775894514884454770934948857379325127135511091897574924337906787167184817977821460788331324977232587357354382082972797066501808295046218975558073785543553100421950003334706072492334775201205909706580516382402389455260303897829832630511852760862872588447752222172111678379283896314160488726945228404681780557219814519701060470454445264877785403058505376619209562135752536855662639258061838205560667278138311617361193201605032537662520112768195323992985576088031731300781735215470153945018068923282581656488615447338478412645111230462562532665316106489707933181603335722791841101966670666198036581226602229859796322337103584585072253763336650676456221211179199140996570393819005471316424792857092890676806733501474233134904113764517925317765090795379425732376696814160852471038147348368788246660332313879451226789062706651170936918515670196732782038855486049364861397066797979507403665890536983640871510378373580589140317757092670099343496456691615885919329403840064325980920363760077909339161106587830784804643706694490637693752192936166661149525603665356598242323906587377606946891982662810918554448622524485679238370674299137129206329002367042536736719625249058310372421323874145490202787308763993856456444525941526593721619228560348174410630977404323347408579995840560243028694023160965147229861860460967141334529156902230805712623348248672067065358292533186928506441000413066816451833473884478306776022686897145605409913862979430197394513724725440346911118103290868676548748450879984662774043831066543877039359339521253011059946359628869820687575096827940210034636795231617159663048018278566981439787823070144720908589634405320360202001725463607303915048227236656817807783977117974989667880401271934463409336946890222540407512471813381116349277743956031897360862985387094707208666879170776647221184991061464226362449453665018111394762177426381014372709058633726154158031004015148871658943826433535268996652586593240526631330013984469906155095316289204876423426291557459082347088842621368779916514445983459299283576355244092938704295838101075153000088683584899934787256175524078179961419861136788797920402990255807558538008055136719479719785529797887152393581660619099354436469760931716802185170029304777126347856434168562222237613519865095403596349886137400700296461052776904176271653926246463723572532758512326059626509961022881027775022693185588295249596186098214141599866809729006231073056785193481784528864280054517190162874150025403002559033485994881890744131641876751548978437020548147001308376582248437904685179051487249725647631084618790398959747411249652227744347993160340692322690696688279140504340487646794724536838659944809128323785113988194005574331439657524872539934380626163018529070164880476860714987011957013025015465199722125374772971785107968900816950766296434343665829933699166717010132235882452540604528694557516403681596886234402020745964085699100319994606771286539382608373706201199967591006399916042252162182672327099178783849565151135908994325838641464137057631360163976135919567268403237970980673149056225337039106391856487642040094907863405970100689351405702150636996580144671095255923412406522581810208312930649574867254224445221611597302215072032504252101243297667257629710153480633755689411027154497643406411865080809914828652003340630620737674325128483898582627896701536615544106945741006358537270218374970040923747317554969301802111900062813813000259942991117836245739164365207126213566291932136001357123939330629890178658062922857384315551543140496473078314406139560642014148214716814623398613216186055060154138008455415574021745643649284499479948720830331439898262482397956665372466011685904874906425990463906044450943443375820190196489680529983565686321560712934788579519256324971106296080687316512264389719873217197534036482764418070624504431664609908389257050905384873601408376873481340469340992594064035660138621556962870585268798039938432989542589485720370538143187531020519717394007803786154854629757631895276214062151869480166204875922941655304199273422668734403672902008144298612404345325618802806395391280601893536922236433234574922421478934843208962949842083742910903245064411912136245772932739235159365128196178217011000602452405278674848358221730929709937360034057504125735686399122780485967268898072426566888892106971458493924441537084369451594136464587174661285388355050991788531753458794330017089365188346447039265849286797663653556021096054547293954154592400849536012140399366662453729733993378412268930222989862961683993271996071814681139835181519796742154230420380235769391644811784515058297127746901643578069722376068489990775245075261415134517734199097052115286150565286594969472482564508886864461493198811911865653571756591275186891231356753056602465809227903752079157001616922965554256926506930259843610978470973920405690732723499670068754425186326897074531304246971654923390210929204856733849505769859158093172924477846549332209462230587973595331497698643067466715794516754771113698290746654183752289242445751939305423510024697747059875186330568860571071963427196765353365524928525300350317295067974922104323011220854457056620044820599058835551468705171330409052759016210403892064117103548240256745158365822249959866505524161098794811110175543543615442568532955098915402074334333344955037524891305212521749326504758604165716660735064439052557595364026784574278443720768547164717673410466186357610651220213968244465708992695862915085845002769519724848866085652677243399745441545193174129313799581288486697582180293237784820224471913956306687228202300681457955588893555128280632120053131160116504981678163500881107104083217110587417410214517986971633562414165130355381786109332660196758016868810672804881217108401575852003920524178108271080869758224677841683489248668228165247790147181954200553163200695083004946509238861476518679793294506797776121402476582784001402855842054060152223815897715673244549813957783826784156439216259176975151011595466636163711898394324905777889423261922579448412863379196516031324264563325733739476429152338475831408237869371779410877139702093109012369294956125952539500843181281597706962401233952288837538981802594414632450186399220693484056414487555560451822111489104483551980528947055439379763712982010774532156330821287183502444636445851852900871976559467536211494826807227792844948475088627063311704965962234594076699476338528936266281275452764578143084533593699781358075123003271113872807656708636840438689566112610657264883798596851493890445459241104138362513074505849218835987224649215310563267443523216566700325133832438767052512725775707698916344054261582401456438227555072643622212984535332416499600817699928838791723270341776863999495271527480404951989199668383064432645230809455421132241260848340133511753074891555411611129271002151661100700719702656445022958863957706251728963864662954745316179790336934995142628139118785812483512477159432243552593732676892586377824293273007113375208709362841382446651648137129442393344971756989120087039369070197705541356165972217409887283726285673497511545874910843207177484242900671131647134680619989848682474464576692529776536486311793084889037236517540606960796354329374062605316799178706927720114601605882182160822807355959797632593916252837450933978064615814976972140020106530704064785118187905219677008582641415438803356077513132509600487742517154947078509925047297683562972038906125108455087746614848676413375291555814443446890518460405192728044142119737815796964214958397697768403982761095242422746374177302750208783555236909285043630746560448377509476340938839955714630212668838470997137432437037004634800723896698748580036206424402463087764112811510055273100640639563896754796023581439809746355960804907090941954519688822185221686422328905389540582684727374190282543080774313575194587961350068483828757087984660746954291476312771789499226791540679438382923343483697437730705910508429779143836517116739977020544228299465954679807604631794192356820457509088906463436815861558767932005400366569840846785302624794772189033370861947131455670507436218697983785170568133839238938539870480302552840089757764448558862120689659451149672386284111323160816261143466157028630285947953833858991413620460379432068381211183496568865814437791224117400656406812531242382329173913371717010514778357064453454537615350571296158139829474888529620836872877203235541832020853163105516938153997697216083179660179155717581834303985629141525424251343355853336167638680803367828676104967855772841251888830969141747808770576844635729273712026299322570470997808964886565230032633838087653237581777126500277599631473047700206611457164003943515673270555922044761326215903635648230813283368088970066156761544313852679124977982279465382844419484927773533174717514884024892997088372450061565259305454735700237509477041854680340504649099645671162393837983336243296341734020854428101418763621978980377479121258758976891925612854818654997430207821711334353015029631189972394622095775604299427238308360670443569435626927544901857908249049255448381582894157018306421163631790950210087766059010584019637259570892689426041216441664221346122130424469458404115656525612542785144393246739947048251847102322486994111573949579123634048620602492089424550009225451221541791157531367708127007416804382436090369920407024839014419766360641023155499515177782840001284088076686187442001045832601985260476397628086729063370261207020338563940633273426966462075229485415031346817636706375346541747277126088266947982526906453224529485129050095270616252387074264384998120972461138657275282183720506356487966050921102982524597504615499428521887955300817391147930875525137567589558044656408846895852915015092103791451367828410053923342261050109711126130626939655218924351601466259410260168335075950789152025923793591116235187802007921466667353834984444401249051155856125194497717736646960911402640857236451892653637655837495208754413345700332537641037126170692673300898413146747068313825247279350948651082870651371683522755443068171013697460487175724271642125698823240118506261494179956913687904589814923183389859961193838759751658760492863810456204013144598179296710855940146556191222792198986293414274653192482846268004280393961126274916579600437145381578290019826057460021603055231972436283402663240848314419870785907084219662462748884956203314535268752700150128937540604025079019284852696279096514954469460834927091506176116908525282789810177850455336159671182524157186073555201518272837126993053891859507015358019730071840258725846504604064995148807434659545943040313608049313116051581351227743582840933176675694297026959829125891124274748236916265607748738878196283932243976025214067988538213279708575483401967254910893213908156490921241984738277182786590321766468788623381471475401486312373467665301375864046468800170661110266833730511376486803974341006056527109675099788733171018132186806407077545325174564485220165260802164712099204237658070736873606004206343269409666030380032311810760444278957166635680604707029734045234786794462488766016091140843754365784380375197120579263419848724024004609091009796374901054008084904332100323615912483707759576217629898807729640923519011310512919704558393083326711862332536340165713680529607989298665500399683413265511922197493776932619850472040964227356805523669344475647979904105106259565372470944456734967420727489804559628429996569898857159921753493429469430394113452403889559315767725530899624933607450354672262287863146588230660527424874060510227061374834393047897119250438661092621640428702474257764913410923015632848209261372802415917672367599467404644804147573873385184542161830398410190188231038722407857074328389304883660857538179900894399161120791705785298434338830202481873221740109747304542999143963653891906937566457919969092789841803117561988505243168556376096221807671429877621603106638412421365418814874094885759298082638022919265891558699061399805647815399664747452556786886212441845704694363251618678845520727707933586533602965853082987262072093488037627081012535783327597025337568623996703207410371696798798795908031021452214270770406680904948266012738457838035193718103985957199527439385786268868152659681089282658762608845207087916378506884011306017773390468176430899087440097460118195535040679780443317911389161488082347546894932691414146815308129049714835387515482841520579630225903574783057869072156220166989840306504044793589479821536890457328602511660449432825136809317241567058534102743771393643472012041175363439656521732625718495079214925433144051346641909847685498642807461438959895150165981672710700750270471127057645726726169044164064257140497445655909135627929578350311479140682654095101753251286532945331167768485528359687679130812048185915831501852321300837951363355565470119310561874227600124731788198920277536761546631797962189418406512273617113406746767355077246610818559660572003533854213162173679271694117622587146873347435284439660173861055426056057272688968106846693558429794428535253149312792545359299457790473686001896133254048293925268402142796257971705385643853513021246522982641569631512063886794985783425818630037546395771748392974143327416023975051658674730253288025358623346565197057519662831881777293726946434477568164433055110226462498360872245325461998799525662476203974634241440174640179448022290260611148732424492618275088605138996405557153743475788781012132711937150495529971731830385982715428129157971578356673449780191546919291773233756106457046158524432908782509020988060490901963936819710008694329076516998491907447344214316443385281897154026345712294204459285965017251958708656533615386561861259433513626329279190730507770525093511416429978808575241309926685732250814945830480663263482335235008073944900968800664553044255476704324155717357161636222658093808721928653357948575455341226751494424458180112324612120741867309415454814520650530694117681329176646893018120868732527381174175266616826087285031022022338470961334390361507384055707462566346487100567349288926755474272178369049626906412834226283285074292977156084605662898021498437892539432186081461350365151370256080481910070007891140069648085555336195282648052073286813005860430332420585736091440366210713672414222364336609632723161771557572049856066315708760056275030749659291755966164044536926219272320995347482841005148878246108743613234763640967959386006320825484466762513064252206055933867378772532169244897362650156027024075248495154862112523269593754013246278973823587935067674265784870073414546704051054684484303823977398721115459894974434795426729695060832872825381525465357703173490393109299540005539764595209163866639448733082363001265879535963243795851533501989130147332970167779778235531576494515477752563416966417652967747138010929559254507813687855701791937916115585186563751656370486562891043839487273947866623603616697896246263958709013361657820788073673485873626821793679374164879549381860795402359747650158803882419847777148212908695694125068226631745077557510747430488105940624633823987190303293821354044394341195343526520881503044395792543734994472339276498297803361591251556940387473311441791098003474674392344041473511130092740054874943368057830743244277692926999947442655860366743339938705257018763401786783120167103987471233593357931522212883835028494549571225970314620749173615189921576401416666440725348824577509495823471982395479479409849691020921972179630462169624726434002936129015471888010527963066864034600765739773507988854846781617734999288229312849274995099334905602950529886744936529088582194256181468345600793017622685390239737404904649122462476107479739410548269982866905449790938901498219445529660636422656981730352155868324935411832347321168523229768148400525916991710376872403099057040657460260102584598899391479932014250141115042643652115810352562961775790059145740802708773527518620826746876158507856704633504265907755210254559305967572559367547891110430800654377592197045683288648972241253695187774602962498344795903179214386268773918616276014498006025738456118235520759835803236621947096027589941800387479840626495039347744436249626592749119862070244503246241348864985714162366375779184901256017922185143502138271412756617339768141529912990951349772570420289731918011712690170628583169713262192977891810602137059818556173588583519572533786491515674036223108841634808441868877681410479646898198357259194720701822384029785810325577774992848381260855119930993130808007452732512814324347447385883877405091505221560174915739574376893708010761137357085516419027071005173368175722638002189949836911551482658441867540982581535144275118520447165027577168713520917666087557790661524262565141658874438310682836446969614603646641515030720372058689055678536871163065511554811154925556647484444836131683372659088211140930520493146382235393919740008889948491336988023859074307148133637935277217237737357353364837777469165715590809443654320971138269283183814660713963065666903628897926985214343892671607131110187731514005916488892273082492283665303599713248605580695454855820527071774389672734014804644424790018771721231879310309138812388908109355338456797869756421443204247341903583616080632355442077131450656262164362155918392593190336008667345283781909383413589561473850269977641129767306801615742379813841501436071174617830950115332969757345757301273224664550699308091975784444411459940784631000433604111625814365192743543458912590323384394199591873637318563414674798082543714090733958015624555577472196894291229813856481728626892405953329229938866885063316990990550524211999561089326823951520644234580027724489140336654643636876201808163351780706659866754028513131411021185302365593947563326307011400239778208143568315210723288051657022534297120734304772830509914025964132282915213100580977942669527603161163989796113917847868883738305243958679831437175427975845114271055015946237618140926836259869553824999930977528297605349082019611689740808979904569266350756141481950401451539329707531019726167716897353486547950109677772812456051841448037130736434153088367942645098094188230186467547154944332912537450344349709088975284138301385766028717960508639932429568861656622984072182907788620733700186497091495910646162568637374238932021358063938322109374835767939426421602071081030628742091983601146499724177844832043536958926256443402449903193326607430930263918988606418942485703481221708678082146866076049695309766472873743503010719768003848073044130765697947693287274766039251185227853229939342901227821881614049552541082997035729240411608996375683867396268915109225561702766808853863256272216735844587883240569976920044560634218216889345384017877919874276915873061014273832372737504540356565239991832469269447290116216609251169188498046886728728876380369904168097607672891638891368536943587579420373190350655025044903338536906553070523129702639793689074128106722392512245336295685725122186408574762898764321416714707967941130907177398656929413458352154313312843683609069646025594161172411389870900544320819229076100284042899382788758576607981164508218439276770768888353416259922706166577990290301137531777350730027053004587713006384807148914948872321275060806335741040689754557541018940765859491468918345544834901137149330199060197370541755149037317882531008328367731914223959948797555443486041125758462990090218773875279311728535122615145050796003198930240166329028546655044843894152087135246240535427393032078027711674994810434049010653744555828438701747943670339251920461945045618382387585255445186461333199751235354572814796906540361340966334556339182131389507736929840278053241614463980512364082156279051851536755770998206502324848436534248259738449429201135036250024445529443769923526575922461844104591144217142276678797267718326502515689784813833645978052503742007040241346650478925297367025610439160720422133156490281129836493598224402027948726043244645525973835927566612901377130145444387815650755029471442816327738418686003250732924385001831026568285007676571130645058998283848476603726545935831133413920766704363332225894556671306785386045010160873317463512733207887477177747554322989782488415895987460482151621105813902756975093101684487725164667052265022210951621157248770138115690779366515290504194958012950046286884373562465913226783716836772574941130041398965568762082819180616538923483139697874600336457090599597995533361376580293552600150547474504946820703355725858163240577644703686923320317650510496390162347521699806439241861065786607897256328929992456747810528753020094929389073324817216604023383752566869621888503396110668335568152590603537857278564761412236417980566814548171685336041121128032790585782514608185515290335718611646297758903472310186255672637394574407732867559217182366667049958018580608566988169295292784034048545839486294658042927876215186912624845663388280347630725189243197373338231540150129471849848330767769813424572258054750423386434926849769662579853590448245791560584699163436326895244301912273067180297100124308824628281401919604416157886432938276700607262631424738485248400840091959039053487477353343794325428295662538529005638492335624394885398079369306357083187717594130652198159761245606448552571593458283451998472317517747481475628373176745250774928988931210527775516684445539977646848086983594314121383536564152159303835004758880570870845444296622018644525584838603655376732518313714198896045668949030612512454121572247656046681061910531026586518877672120072665858112304081720662776535398652902137822090777435600698139498883888426770035832189291307098688383265812466032790882095001293879877229230143660536171692612898875055663530768543221399986080115075512389902782650944736395610797648768913597898183947918049429855530506025939982460344672317553702183146847166204776913054993534942650090081612041724354874551668230576747366339594287750834006828808486249494345268455512878414755696334774896146809682705987958705702760192372461542140407187496570803060493841069560299893552525753656063163255279746496303804451895305663739981469942635697043058519057719500124970578063001227177429997883603886581495057285878504695959739231272870186198585456083521316441640667686778524788975503924500921077679341287138556381654856394356348866006413338616883114962693815569535940884562436642266723500268386922827420010108397140130212994877727252028219026210117004240721453144074568582515481241194018164631744924710667477278575437936003378422259667768573472311039714243610851633999260876561483312757572620021571100269611249768136912510339415270329382493943108390638014684213022769488243409995553744665398442829034256804783762389387690181169980884855406200498805582469997042701278791601772905766829030404726667442855129110617516797355404080640912582307192312011599537745736390483533309033073918425317803654536381476733973282479212883215162888126330093540428327615840976997505378538117737316455431442863800050244623729931041192729093905998571055504771841374250764823496340851255823612677831869697035152998172554359979807024759764568382661384890723958347647132165182230527891233777809175416421837454097145103102135044954166655895988117583600414674180555507497232895110543105693427430858451763864942848673143346448862989044284413727541227400238399127895533836725908268891529713243917526549734413751760744643288821741358265002618475322442526722942347255648439825912700937445703583312239684970965713243150916465284940372118910229995540065452933889618763180181039016825023492027142571712152296278954282233391473447028077545266759045903436196104033300859324266807092307507626393943164161046208922474457151094104457454276038012181436741617524484100566863546814217056543859300856781385658248035101673583574752995619206849922163137616550983024660130285565585572104987048436823269599676134817344242910539330133397633090238996323952971598675814186632841382839912891544098345026303814171220637409048984479084023044166306892718533867534986875690794410120969954433165269627987860108230761980004574205068214337289815049179611019748175102486106490428299565801868439347428080350473931478495714201065219707168849204896304363304744275164117406381126068473104452855334923481419926741682872661525966787894054812635874931495239299205432065991793751044971555804871266859513328457139373387546945335566111785773050344651964204514533018625745773597569257983465638665000542940695911081080483203581865677968106993207547762673549760196685735029528919815593677020395870804361705301649959349669357378299350303418943438233979746935633043861088014080837383524002790863703507522305281134053684541326189512066181549045253083866832370684479519847011242194324064663610931224538671043625696908439777533437452574573987047131102986732817782219738860512528277691018842121004468111738739574392520451202234185299120325545737085868538915201151514138674516676763509228212849360128734570243267076948734804766505639413104796511205842844837791698090654285078181001721947564004381274150214005591461600540917513717522251750829523790348652716400767292544944409738716992819375596778222042729510983504244568812576097158168367298570559765470980703006841971486613802859860649367625142352027272993877833325916987392433914369699329524538181529145674041086260247265456702593716930168473679777515440559642534112028825464153888434449958566743106151750842639648008207261784155310808788596645291036221988914414818117505402390445344483452202066352196514328424734672721673742034060935795545727566869410848464494581243481600711484581829439618473736917125784619857938214723374005541340247213510798771978546196936247257501521892143019739437794014110130390752540370163265230962446937418622055445065036527537675978847834342526558195736610704057611158744243692418552054974639077958690350607688495450815131796391030277381001698772899810974609293880919599421259689753010631648715414711718594085292087082127917089425129134815762167545240729056315882214932789563291930971577345462407719846130383392199908637967133235558713271527856847650461350522480182540473983638556270338965091479891644253183351050143772092170428039386467502331487251993432004876951754043454292403226039063390802263805214422347705457955214237514199916718855796787667635545718224512864416231918782816269904793282057042519510197977623725653323721960720292738952168214230674081808326408862389214310922015523562564280957977424201472823531993438049405536466680904877284318417580846835810999659320048785849549941264222118777803500379391429553773405882578912289632657040132612123365321466612841061479577374573797770655510373368447227089181347501094103716402199400399084232806095631658001892526716538393138760189995246160082882118467036410191054666795006026903368631488237292794655182019883438585625401200597146005360688198210152216535081297726843268716788105590743482300940220790856127453364561878057248317308767395472501339553502588596041575770462068386580797944430465277760740429127762186607333884586502726174482522750433696749925642219363506182663693542378317961056612790553996915790549443163630920759754540401344832694419075178856828132602299759738575405391885768918620231658045408854870059111647928608838822462206820634343815510384957618017082895263321482441117172489399839351546917428268576860352809618126193824659931765537382384301564660853249568129058103711991935895482228633417755559054781472966128457023474376588385395622930408674293015632001654308002304756383941624002746976557558735586053021499770585142153264146990297517219813192026956061890803147230096384200533483988388786741059080764040566637419172705437881894355816546377958712892378671344644271329725386577532858846632704034908020887030917087779197670577290288243940290171956472332385639699408538776289816327887170492261059152288256790359149044545174965310243339951250317439915778832459910461560238262805781807771879463587822515987561450338162595392546957425978177560118234758499472641709156091919296773740663564628186471458783270918171333778099096514354443024989058834304460993597064748630636733642909593969296517784047893298263632203939826297934170887486680499237581362079398175605851751841176914152754780799775438281492749717858821630976990819729602101872499923525562184458708673344062917596138331491946260096900303661750707361405538266395397572514256051806537637215537528505741777676700990577021546447000535271292700798478853199946954645165691604945337704737947681394427897449463049397966971755108169160484626506744132661235398409917043626237552169642410819416893183241417757754631530008647981808038633225559164338045099821074876636958522898734846020838272797664112788511759914014359143014699837960159855189416319240242205916700965064278942744088052057446113694285866883061905029333664055573653100506804728811758539289906064517938370977080761754434647385051780535075693953136159845089280320662092389991512811106081768359069111339681220731008561586777736354958156964026209244620823162560622404035122877381316486493596264037218022407989209579386059736284667748339947350218769184419195385543060308583409380107302138563600137327034112782318896451577617325542639061489483807819251018703684649099109254960771662337540868597861275947237530494908170831672666193602654241315463527656084871221053304134614381715408074666930696629869448693649055661951283886112424749143342858803648166237930680448932462142732825026056029194608261705980923128028209541457109271461448993900583407066470384289700967441512057884970531857817938419289479317847989280533895232348784616749886529031414418903847243538653074917538535884153008617325222884775821844471836774845916011666021388637692378752422756094530729691846446640775036979729300987964336565902834649609409467389485169985345165456466177127846124277193839958852734007611148366507420788662893912907525861360325983110658015840201048642515420352502510237487701234628763023877944073474140649406748810188903730221917690620588330919649619855019206505413365031516583177497030333829114563504794643770302406744760791165436188667964753038176390433603895685724409450997714020490649325046592278352766841813116270519207543187270886913868757367697402810592128198128591823247386511448700860495164744007888728146994278764611325377156907453331976771034626953151847079036914195646533358925451056533147626507683608275280879144715314302147588253201011889701596802718573457192509126073710178069552680909077912466632037856325643437232783880812798413465975938526096676702440029786607763351359339873819966922390700489549636619479467564335661366580967525240709071838622206365127192690242902118206139854752165006514210954782599465554643240802361913826264093273675832158821629384216874164849382027758195106195221318079630278571378302844904354963135226937945564260700821074133133190672850503598061744867173502793528770862584285590066628372010935651613316186338794188733736251831803054309597396095674148755977343539114672121440704869736937223493631468933620470201588600615360730482131399954397742803453444735926770373515037611961447597113447040954648148487854347031206958977367345720315628973806728941750776345342528682612175030221139222926209441364416104892846841721081863689878930323404673126536365377536363963890071420424017549977609082790405780619723504602733595079837065440551738165600979426813332772197555799269881164017157242522212848040889600673795697544109011196575068743185244536361577579846799059485179473922183294446933903584317712971699453715918058198468777104253377580568598518432986457108500362077851313165163468362408601571165760904979279057659085210300523496076025426168437317477804733497139284895067362319744925197243633999096960576499292808181829093017532328278119594646212560621784852155646004551163995184334023415528100240384449314534661586633525555933947921388828086038229027585766434905062997742612705964077812196003226091517089041229828145065081792807976366893437250200820813926451377127469393574013904859992977421551538931528612344561162538105893587028426063287844137206426530160362851843812511440320253708868005007206282844536949544706483810011101378051929807910562659011898072670553120688311616761587289713379800620942133377512677371814812198230653218056644315070927721772116061775437388134425329944815190147468544251707799753860124209001708895346913005643093303017741434771190138903974608063782262617911772920237604027651552736501806092579575258733644525361251468310423237606171815071171014133787824867455744210523105051028978836395664497476329821813428444041396783931949099071306215241427395331268771688226624590152020079147945665996065470984008126216328493747800508220734188500095492029464364403400773104445317688440175107227921145274550328150210377279804798902780034583692407615203241325285464518307896100138163350620569813220986241080000703934263548809461610995821898533474000117554423840537086720039065388463579190387021677519489168583968026635489081540585663901816571080248927944639314371947378019624367015049659466974932250557244142127440327990056926493221000961769293210112591387345319194885374410548085838079540615388564715927505145672749251562158309635427692695299585731385185893032273118856194082291311840597441332217440790336743522138196550700222281127976695330401265756983891921648996847923442865878213901621614520635110802193840026680189115887046953710839482103206404819950823496300393005050410708036697316270657059308147579012309667472295508832928361575251863509361613215871800411106628748622393860325559481179526990821031071694760898850585746636749355974264099036266507673116164278373182652117508337984732919171887656228665904989209893779870557613102755228325159400451092867915802984925922100337735684931116627974240439045308815518845619107137307287887342604538424599253861072769609404147262526396331987427313937956176505526591846128731725937248884237458178863387609933543223462000223558749562975075599907488276953284355432212089864374015150805782352200902820192476323612155385172933999938097215103926626127197430809813539855631524205986749028026624021906977732260015675306213474184250933230483051443513984728621547492826529546586192910982452528141393987805162009895151679988905990818390520800901765877529124762096964736374086443458811582096081810424581214022686022508598594599996305079533364777170866389280465733578694074601699307131177490248161311160772690592073023517912689333738714143213943152865849064665166008437855887603896289690776559837685098722890502804492158231008598849651540361577326361285039038994756913334903328206832009776515069859320211623684009946389580345468998941998780913687645715141623834582318312812657962409265473725808829099761683291826816220127143749675101485589875730060727978079541444367408069693791474159068714327827907409124328944108439399025448395556988396368532979613456917352530867514649470612716909901772125911031761797804690835861790347686277637158412741726536353827331583262095919878374626122267624925218074416886162599365916568906139605106844290311746605660008628408229000242489135525851104123508829737749868773477015408960904211933571128400717801701049714903224542450564891732504134011169884317783044690976146232098401863152721599141198192255714828576992176745301886468173178149553284464036297898460247980321610172032721980259216193544766840341117344940546346054259804030248589202966292033518118352688649802460338705531430421441327308170123300371267496580072677165915938869010612014306379882556730688169481198074598383324193965844594218477599715508560117052227004455208642034453331595907199091145155878132586960617249470143228743746876843412327573462638512369343101785118516598203371308402763324107462709945363058351644834365413602140286790195335433809422696366485659763911232588595638133097323088925264216350396644674486185839036419863145821269184841429138582762370888991357040666577199610396778407834320366726907658232554506033854867983374807008944246025189612221219458844600126774325129863284784172035254178872516304815588971359120990856106379139680569824513391921632175773730729504424238096453713946080447265959557729751599933518618677537019888265701183213493958713614561640696800471186313158734889413694071241461721151002977738958599661809231789485822108348171445867255536545035750188799601831975928378353812136699748105875149288582240255364221455970729271274571691363186043072311802404578248941425334841164509573606445555166647097208243650192219049449618493028489198035718492262907428644142112450305643073504562566647272110785193312871634615230902762011044221477631434272145737828344425857065524857350662289150664264295343638828545481540371293114475175326823629066984824734187494166103553050518238901042376997299978534398604825375290289749589851756484745293291014471518779282153346731135072603010259761519873673591675555876239304245172975893692647981092567328817023473525552283422214893716960803214461764516585393806442700323207983912159054463280802806862452790205106380016889998052880776561120676591988180769570723463899433819070629891794034266128192482995512888842338964679424066676559083667196628489600601380113110909732646810043701061280973310235481528809931512686838463455994109914520837003342893398576309875946670723048516140660292538493634145279412553314286237513546978721615714286100304563643322916492460786195553377943473870207874358875514350336618840038458941385713469746619583621649489922500984060202054587541714583014009001848574911795211925145103887163122472164859392605101330940211591981627373773461859516374487967060471665422954161235683758269740191338818423161729459468450874042639224530866178792410194403476908651683292035142476616193694992932854841625514725634690146485861837382165434300332456680783107508805049885216698316542592061296117294363908466648785841379614378830057899213688758776953862482910318836358164375318236018142733167916840878139656032648249542279024154872631659306255989023363226367736876064239581769910324103879902385165349416517484138816818845994369474928640231572326996204154492038362766281807045986563277946924926004132157900524695603498707752137756713363003116877091853173631471005574817999565932817786779417234919255544621396299868047560994141710944610690732717554987679753594358689157318747615513644428805889311287863101985629204906812213198107908873545543487145883125906909353752251593760368549819528401668209217945256873821909688657414230713105018441651064645205047015773609327161918879614546739118907997086018266586798446510527637552285210757849445125976698766717096672481827617760979081503922303828886588595393661466778071767763349677566669484852237109987747022735458972834986160776137437415064617875551140515990111936259863972714228346691005724413411053288533057046261989258479587965493051079361282192889330748253524599525782488298228546761712331429802790620305224858690764263411223036949420708324781472793930522785621033639588080085884575068793389427639543702109873143070753705189522254045789624982382432518624938680667788975941014412103138652963275688605176373670101701970680253552216099953789554042164256576219246544269337586611912418715613911045501504300792871933544628256077546518871961115338810808684504945619203417623609222644864444760304368140048951105553023547904434280587752355041075942215782540871920424704686324413035853686496594905654908019044117818190614443196693449511002732145242114950601468772681040493024897587047007361420879466466215885138024022226854883472327686990988648647593490590373390407755409828039178822848628131863470912708996283497226057990511253965487007336358998189169184238920903189354999188109851447621094222348719046181247379549482973116358383964012524987624743636501981919198017472944398659931826007733777527040118058343738954963222569522112456102887924338613218457947187464323360183320973960607619999371138217198022885572813929221040135014794981817021973779638508631413325633500498582730477052686810163933585161852292143137181362760857578287635084918727000184971420074071762431879650343731279158251884420238981430150101048170608170976493043485756847493208868593630535085112705140319625090050311312713151193665056341185767796382017827106226856836861403370672739898093038120779467759021131581882940185994548535793494793481287273800472509963441436850783515370458579093175169186039797880275998852012578746228099323013324477969185900636774272453473277017245716667850207849220533048891772451176022109346743323824543804747553134649604533511034855352285795643913336481724416579928708380088734816010815176300639853921998529796230840209407997249276192292053311365876590139565143794634168820819411173288004414383666129723259407187414269845829946974101153589149049540401504117761952957405493047308034646657844541044018295387663851130856241108693559705178281963925719322321875786142880670340689494951812665788825415384525318075247815883646960506308437897686022803767022320749042846107431162326904187898270002674178798805990817489998949503457462066438062106035694625141687950903272091974230064603188734236250575004509494499878096865414162264741434564963216699491391348278956888898536490100919451919166563259644595357564059834461162381612904146843389296209363668126939519572429050209693277373835232881726262800522721438598170740016769321983058553902353765174010484876539272892512319522806444022720599981196988942811379899373466736972866999894813267342878163756103776236662785705963322219873754581526180001655883161632572793834610162726762566949157682073288121209291566760299573745794652958543774458830135725621098855875287056907957731239591100270880686055522292092550881463968980796424886341859105979732389601716538308990324575533431966557138833917059612615701835215206355932711433998807424555328602090713014574277319707778465814369036825798707176639338247828917740290048107779210581007488403907604985769691079304973876009177080663028058281956688563535299101100311042540204219652068747449657072591314242762992075734622658564521611618947160092778227253286512436291928474742999627524661839946781247203053708868299178662052504159040086154808798049622887460260755572095763831316167359621114749668753183126709479506170519097868098688410602370116124625024828750859483054971357804706059266210323411611185730715279216232271072854498891301164608306860812567846166438451798294980088688197675140516906819320443350079177170813604855113911381276841570638363663265208819568806293331602230545419052815376381281117295181640491685754291122952971880313641490054585858267566063223560036189447699211864056594398768657390909187733322142695864996599845593564526666610050085305327079405433952377221643531905069880191178011485375767750048878914841817548071790032991285071942665099122928553784903667288941313680364756572383794473683081018121029604275559909266442765560937997519532785299313391868982344964999857536703635332818099918267037289869419021128687730516156119211569703283855300547966855927313966686101411359488557733465892650923370214816054519485019612278399248455421801043186724127994435290168128056636476956662490135564245846084603822700021245231796788990935864908415734016145761495960767880856129275051174754400115695389939542142929451232497430718757053608688399856097643134492081092790987209160774978277125972646407155618994671184503395682092437452106712197435377450668053674133309764518489205479387173215777938870789165212460922929797329867209639000275603244808220602634207752540940017543502662180266326706717859842088155412951037210346233725506448890577799630641916410967082209025931317033606974026670451622661392568339195240719479657582823475814246442356080404122465180582906095196151157525395442678100386428556762871324768618772156767796547244932754721420324375504407704262054831379044199599094649590077617128419827401908315453055572337224346226155363257241414916092771057692519299636794300295171893110975147132048238095490856977313570755696391459403302318821603171921721713123189187329223217373451223133541286598653115562266897483595714523019794260866785466125187781319027494688033601199116481423644685446379472475979843431987132187963676315167808326910963297289207659567604784557007282592750654345624974144627602647255922704183292071871674885670106009839170000710131498636530385483776973620445580354635482357341048618381126873067188830397412809273674583838589867628670839361788693661297911555718801794353542972623222998747175956199672188709371959293345244312902838370350711324923117029900570398146179955888932811841177565080673631168171863881010794085592193749089135850452611597914111264695042127099798950881445944714094077819953669440289762685699983217435585472330929939631011464029123240680306086979469520861385916849230638149888541985862806677394517765756958777991585896924726661536512729040651164176890568259598888240176812559911242637330688623331606320419058876436547579827950832214173491876952725834408905507758890784779816387839512435729376473822682031442317326853551502103274434674654091459374898783414706378494732796716472252135159165467785347884412150084360628933296888570252335315061761054319563224862007991283971131209508246089859823672307023143698111607353170209205205479663249138162662954955494433259380642879653399431470926205809163421266715902755225463063141843608100436671913624654059095169634499266986774601203191051986504073954224648614978686508046067678765009306101550030882253879160857719233084471134400714742503949234736942514298734370701392463153478179929824851676413152495684060826596532611246186717758181575204521148197992881277184501086923195938246246552698687060609585171699914334059773234062018713770726997754876799569808792914463420760540238916779320476496340421912196873502950750635971246495323810950310971523148199428338305991118386927386934169532390601192390557966120524641662385865314286119265214756950177590026301142018559629804626802244025849268451608077266204788680616444505121183062855497531783446145040174905082317916639585062553285789530964662921870881659619768584511158149945520966719079947840144818302512824678741574773703011765670551679760953495881358893447118776367999056613367719129079209465928300066726953186895094219723870711701602299735708353101707698009067542103797552629742408260373320695045132379580691154849339985826091186857851544704860073278763807706100563768535238620955834191794461480829031345186001040809292578241088033277514580285943308941388227738194558986328641420193338657274509687240470868892822022086651153945727043776175460636751172769191724168913905215133930248963087837794797689733825268185538163691203008811910283773267620808166425440746746964904706566418005277994208776344845732422082191286087729582791746168502790370395792577511676901646640388027622702499286352429049856035691909704984329289290512319921800521179951452304467881857985539641009635003826093135023082180054192647948455053620179311628357895097748245714065272661455678851648503349664864479521164388471142584392998379748173886597913797102516651243487798290960983171350996070904371271365059311913934075356739689550720466048448053065034029571887780836682712639223175346925037193394993479392431557257075143771419378130535969808348275462686625408396394780388314590054507158209445252800173157135174120065621818627556807708518062003750119110808987402011250583585549408707693690836225433124383912664571308759574340942574185431746012718707305124871193453540737038972119122073684477219049428023090687564524746620114397103182740052112743543444026800532092733271847683439325381312048175025999008416589517711119305561702564271516083854588971286023903973876371538473300386981932315144651206263731718678435634179118798103642256342412504313102373412521677314306162670834457914200576976889429742122388498267204671132147400006177435375711278909325986633252123217333195031322363905188238197416747753709439706320008582015643049883711785437285697556768416308770504318653178197673313782074366580542169030256298349726175780870919509879231478909154008327846456409927405329762501739211644261717328017288883513094845769492103348240462209059036441271307790668443974003855655052962087731165755388101910263301067013699569689598435962453169006347476835625002991110336768189382026202991140183179265449915372784182693361950991495787164734975086551456011039923823538261305485832165003060489653026557595915891832484936805724563664963461671676494217831692852385924658172210333577837746496031799599557632297031813033712057733562859169606774879170479265761612784274602026437537612044506240607353313348212910486002632287538265198847674709681836700850282271728678595297372995013593774378046197083633894376892492306826490086748779672410016086004090958810898213104978902499328817251622891893511960348666695954800600493019036393524883880903267134081600206201068379860773454732906000799787231875004292261865923278827819306766242491948570327014111892970573035373468581902111317967957072985424544839764793085312951337045293367750308321225504166201077078227064619397687924939229267819066038312254407590279764711067219853436508207650839709598216040226086656553976614031500725337663786007078575790625295279098167103829206318015403488918029035574769856091319057519236556182164695982249107672018123694603031964551927669669731435693579402151487597896012911559609215175827305706778098423948222074385894711639990696047864854761788447479117004358782000422356972004467201234537103376823850332686749422796589710422979678752874655109884520542392420241989782596483737030495620999382294135914034744252465853696781047255854349007726286541979373949181718586392992875753950134155240402573724000304265349973489794780630140297683860510287227380180422491340416568645087380652949675849864931522514235187834988988602378948527042048642833629394038068642175252744709339401912168554611321385643631109256334388911203116114500745304029548255100432588161039396486147588569325822007350625742351224366745676181936970709891920139698278817900539655705966357929565128097756463940183075533202079123657571763375245087417355113910291807009881201308392169397523838237989912827282855053948400177287486493232296802554981534799449073487466179726007741190258485866170373441237262786991058515752538951986068694440670860296066526718372085392131235396990504479973487840026729345932592027069356851018456352886681053997639917489451097243075386497480091704636621873566702593693002486194139281753408436027727965118363510657124750315881057639689789948756927617033122494590965525317139292468078391640683467146086756318848579976470420023819337905707204333552536120432092412169359692113205457820588538356312557796081211647818448410061226524663638178379824189558772793534038473644679704828324487645764745622690987809450473612164433902068300831448828929639699303913403471109218652749004226014819565451148191337551973992528523563580553191110419123320942122677189422880420066462549480742529757293724890832180027337969017903049207889024206049708636054554468666157246069484270925921886199337845945957987793589819060388546020900453623184973612901694933811103624442412331001834072857542331866427415462921237094348387834839487066151296891160975026099907641047692451925430539337794713017868909776836488794782855640556963330494294240496084383501910140513109488060240350137586693048040202550734750928520627197152149126119995544336744169857554089996831711888010933909469062825175274625254418443281552534190678861553809003681837122548136913923456462530737453510316963349438892160112635930820434676146996122151057222800824915262444316987975206997955181926711871474360587031020623214185836591724268473720885603961210670722915489810104758825538007734223588266235510460904986362172940528997776691420076673117569734140432266073309023411257179318607917784481940695355217746857560848850390897402393413965189972845413598011915283368441634052979491684382738282810103935099059662567856437090140538831476680376402801954436017210480867928769590642107150207448148258277358709309756257337919669470455641664113465573072639308107703308687502313917648073521912613307621985991056990944950869669440093468219849697555407602659710707441611398631659317154915282176195083824910831048758344682295481755700776799237576601470164669856794561888279831841484751041287174080433616660900130714390733253815255525267457668383451308849508590358258079373764331991859255829143764612185710836526171833424125191230388651149335345326998003535940160554504599806343735375390295600720726890583586296230246821919374480248619718073533069240478862900598422381599135454160340661138835009503465947244272633988922204059803859884109353279009498365929184185884653639743202431127624864628428656468912975969936705145547581368104708166768483616208945812745742312594035267749602504747547903169864546000543093554165651004756559773782165598300582268558327788044751393101205346532685145407629979432620330116372639227862293777858001709303598439952599463736697533433958838324879801364310334870522735025207173550833960121693479902153373864374941830308530876637212507345172333984373319276466998468526083685743509927981268779042019265210819490045929036674113232059198014488084346594785959954498145980391490880330162146739636499405948882902611918421950004808139883722959534372392043824084985064031208378851493233869215996411113931740113393697547144720749164576878465046995437664325169764536228829484164852048048163282607051385374838332426589480798252911591003121239620442649968378456672421702888795471727925725707521449826949235645966703944777534812803847147844914312023706208859728856591381281965693135505385923644142951457945412403306563234888140847039287845152864489888008126506927604538900256125939330633413865753261545185896070040073737666251542506975595436921308235317329779521398733383161523053076957855776710782106223339768650031703284358642543189457070765720587500412295600263048380233129909002425217301338201675328451635178958831480973085834176594099753414091750538052270304314933803753021199369275255595455112294721312765341208543367441938460897410194718094655567737632688801821081607363986906698007617465566280067677870005771721681786070855998369406058238776476718624857278998312503787167615141299390493096438535747290149671826753696075443130347808303889836708583224820340215184962548325035946155148907983668151617735180742926444136677736167076895437124680935340330330791305522832145479570381587787819375297104876622006802159887898276535913528173205245298475009033507245481567393618394204250303297431947796477473383711972008439252321858718136004471458724504344670702818182105518953066293591680537225721926375116512117765888320299347449249236724682478765999558560335601194386379752424377363691784023691614365189813054243523077820433608588374606112181877908623646205473554874934863380499365368606036045838755631069465311150489244534625701452703452395274035411275164541079057724600654234174931302640076591120289483278270415399280660723258419918490487642604660528578930863407786602517068679139518126030300816507697415654244835432414488115048112117229653896393259666608141286996104947954124559325789904514672236032882738833455603636895239779798834191062603020954068982630657052361832326279923880441713069915959060819026193033817866608081816291376383780504086158220556988063420248869733920549243787534465731921711614220049570081517020820111162415944372924870711458756260261533729580370716118614684535936634425844476858488619015031229390886068551294011670438360253442147635793261293385556176444870325084074212421374886182002444391452241213086688617359808015750074653911548354360265222937537477247093847935275653560289085179358520555468425694662182870938508983643293529192116197445749063747065764477339402185118896106145607839836582230176776702475562363060665811862456750233913889744556240620475199937608609172172383190758534830580987565881858920896270420016236927582832537561915148753166205450597888287952467280395029317134804469877003033928256909392767063513669832141218318899218324003370211840564364678042719757353574542364003059436083391800090287022962923604708878521731263543063835505864830689331898180464111019161355014848579579247053377680083376103458950699800336762431406310554943623302385495198207123454664309663136917228886881842910690164036582133496616681932464831043773121359155620265626506581593906996939193685305035113798048593713631516109685704209929643772795170545471132922518639016839722387882959190762490493208094036772126529684035433291482338564214951721758395689439101046087192438696497444288564650607525507009202549683692676092095797037679356480782902099743565654030296512910231209804571424233810736162642890844378699643741493990241551546952829469116114334278379135536320084888901876450188348422279575608269246587959598012541417396674521222055470123729685201003886140574559324154973267294100960442214035232231716888089117845967582469129814361321183828307775074854892822758465561159466004603019510500149044076417959695087985198813553165168418275131301434985178265332239886380518101011440620762728847850736627704388841058047436716348355883869983916344300212710949014354721558539731104770484877651619774572839228878447420067334461164800440634346170794501386739926760087799327991152688054466600220809019310093211693070972041748863437339322716487798564820175622984742139362106429399229249135906640135141889083559557828396298886372384911168863887895650140571442744663041881378446107624155526671215841699458903563533352814188147276648548720641302542859062453134791416137776066636981779699310165667520730435851083256499019260191659848492839963697375916029471198511865006581202576854202970720596582158551416252654810692205102288616550793017572297999712586106030333508886951828302321991779228233090544790908571718944816086520117395860568023037459630406118560329861371838795224079357536681689280247815716357813967906156366873972841337376485011374232586136806077358494911212797254985591264422004427908520882424398311209362398619074803852142582291099803137857710418682667772474905902031493123194564794054130872312870494046647599630787186136261840299471447163497318967855941706513905432246546632472220036651740374796931684909925946119101869535302140152357989899634028012349707990095499305654630238246579017619326495912479782521475910148346514610538248670662583397624710911505017614855896600628055958508180821361802956542211236836238172846602062055899749450100311592678658851193986374913219815416674583846784876781938799778712535433440231144256734484345781190038932819720608675803889061507115184091502411916609381064850245882185848809419620193584140711360655705775808175543365035415142562709704836524207803447856381449429430175966395127763429128181071863253042844260155761368302473859530555872961279321582166043553820533557654021963261607308088630909107384067629460772476613637419273349586122356640971901981926544968180603240211882847222418494297512692835130121375377633092839696909813058996106908542636984471701691886615072422798762484640988615701649557615923344464345863910731974879480035027548124807826344380543381336046179906606965927882244392329659682829622630016299311860665960029511233189104417246280607060369252243867823851629655683044555168003869091102613590052564955583190292789489345522590911900551031322722148197628393485478118557466291022699484064892599440363818023558773856984072031929786490119819736232916121874135818742390049162552261426028701736414729021485374281032764490363048478379221926911314704572926779576972117827056389844547894694108461439292995393357179441336927365087323606683235257882746306842338114618968838869531157027242563685419559244567339289962477337597307643476938834134906677264417744590909685951489451182863280651230077016480720978319077792901747333766732772297779980058116453919079406493938862522681991678101510636602980545118029020793999799685811774773242620955169524090027817560828372140209609891911563306016008397710999911669326332908271278724333241052866433420189724317572295144732128605185035652571662299421464407430821491635236465223501906958076016033883008452216281877138842168544112726385585972711102552346747199656387095088172091451323338506186232611704026506055551166245319102347774053883888949917582035605795632266676671011094306867841141490125419421411571273887606052406375773493615773265558270482906792127417843084643468388417094952249216699469291239274209034286039390019732786602451981204150923573765101995389586782433531798730352186534343591940834795178970817226845020243351642118379174414986193701046096100714778621359661526977244033083734371464630044656828452800353294004653798854459261969576117340761059805109024202076304059000186045300980114280571974873371294615673641187752558362891864406236736561746253975129238017407989553143677464471808121016118540820558568289024540871161081018541005233609339237729213322980590307223100696349156733633908152706048026821026514316027613548682027146195954896787468126107352585085700813027263593138731977254136217513787352426678032478675333329889196248843398323583060200906184758606193129064884276618654596912159333724106586268482552681553181341864318434543256494602016394527870604473841327314970557677659242053894812724664165613973306702097307570207893672247428043178444519610198835321275414605598915986239184770844743923921873233293139065965904383420794936805226491566718816670370456873385666055246466732932105388386988091207122397072258806124544054393748444336957245428240652842079905008404753675779780021713323506952460492510210337700392298510942364409683485360551392260408372988813533997386673150085245382378814379435041616383950392459446247738563210624749405770824201617245148323781494013947060401170037212769183297767123715087150778173419197910258067989880443862135105079158868694666499446007573365944288816186334915571683612189878433558224832519391176372976356854831380965091230993261245984782397624147174683312864529025079393635710132792188890901344871502811498089554489039259582113600879790435514107921870262319032561175849016977325113884090880038454780970793259884542734449644852028928428203380639013902884425417755129340512160808207319902426467678956339619670059266112083813181183331563084869633860855824233979700586818081676182720992308324322372958515234713459010500940602943053023146922040252786155779460713023843332430234866221049790742069215046943576107556896778712494799237098581977194944180500256513703839545380726345823150223222414073782183351267759403988806985016406038161099687348076842643414384528720450348090446585173919761474372067685633528891726580075109438844281735999071648762165212908675194164084689146570369893912571821328615408604076937296242744426129146210406210757042514460591957248037537329530938014275114463673413285734527757242909029907446580328016270949792447420959365378012402635747868687851109877772453240387346176063955115047296412329627160476955758069475440517776421051865010848862092029510375280320709975042588093513074132620481651447561145834337002070219890086536942986726321523482458613504909713178543931322372316524878368260047934234041558717014311415100956759450378580394271839104196193424939121123517122817735647847405341512392022785677892079211790461195303217889026532569953240997876023150497917697571491503124853414057605634249774231473110041636329111074945219645164293935555906207341870713900356307584363820960329429080495060539103081306514752796870279956677578329872451388326432204748770806652879483921610175379416576129616284568089952828618447797344772212399043487422684679564906230889414045213330845415501940099253813707209510786791927674517951571328213428846917282208472355753710449653971094164082090570718999871970500029727060153133467477726103347446191002074666460591451999296203310614314658212054436541015577129394537518735097238522289029570834327444399588583427383883408709010540150537995685981493372704676971510854022250595735328615895887817670034176609987882914455105902893746734580696468338349905882913851088112354956323283607819407582817489261581686939544406551735440280590708380798582594093279874113413407677387659788270325659711959921095220962336029858820426135040846946216343185787574151192426026663706953701425204912853814868612247746934019706066234711232552584352358853912299008200491886541347164548103490621130033353547867534495673201579432656965100193512754660121899571019960861892473978880771353028915432029243546562023251619203471822859270348574131131252596382496900440330716976026352172169862684469480462201451884647168826380861577820355243895966276350282796174349182077660699962357552593619590995628887393493147234514206691395871804811564559548258743681352244718283093546058861496246987761567459056138244991385715075723414783078391790746740451449131729458877583032659623289030354774631131538080303068421585205683010013448721314041423935153953072867468325930075809884694478821328865529380691031019240579946266461524330141568119902940708608994130875788097534236761038247643921792976242274836559419408665995341070877623691754465871057114880069738892533420184327911038756005982884421656053504178904727288711668350890492568908906739632529975358826038156911528669678424576695386536038601761087680174424621875117769657349842829505381122854746256819933336291260128073895478532450542300244744242072913905716406714898748378859689267939938737169140380882873571892441963918037278310532383296613433399657560949944486635600783300449922422579226369680951854162884228238203880014093702349612697348653370475449374305203360152427367212148150668582315755519027160256409692724978424527118705237315898185699273905274858362728735766816819800658581333456709391721117946607315854573580337408418846189856543123682156362680008997472017566381852710951019142717019473260673840960519730600381407548649062098504358308411623795143964383401365922510483665319656204990042288467347418654807330353370257040737722233317152484260548535363173153247045341735374684049399297860789536859163183166487216027148600403800495216394182207475760714106420476394995987408286982140030578824107011991344103638450963577409634164951082597514746841451690791431078341112342097220591140493271195373538783799300602372903329687932677080362212381956192080207638493916269706937114629841165728752730737970321565754710624240453431942568512394331013886377142499967217136249884223068505300107441994965199754654546668618023203288523936697105910164828102812999669949517406918152965028320491332878598652618107137857099602984690233550782896057214993099504754467285168644178170717008283045176541773208498097600906708195009746143636125409355855970637367536738521274324895507788176398412462636129229468623966722334893135712624390925307291811213122484663485366370537191299711874020356465328379761642811290059934798348834446174062913980975535432613300522766750490855355322154765113622404481584859993199135741195973842185974772874080991675374823709498386078236099978299244882655419237386218022227806404118215750237110196305867873247779863165528601093592169402160398644491204127287667075742297345526081441984591288387331925157207845074072685678941804967705636799640372575235486463187510452317371501854403214620721010904440502054416127166534522953293928409049779542355865469971951585319818417998692939625133927088021683664139859238211326144358155430301004655080080339017525850666222803373428078333575908243181817486704388309349261139188112136605803063435025423166910135723764377323426749021340019258113139228017457318528434754892191975819328899631430949575490776093771842982960045046683958511067046730619611202907607322381520519585631176512194179959688211311977202136683387355482065779575700366814758301093846829514989880551388302879855850080207759182168771595062416857447507914954564673149546928832058058779232134020755015344276577088435000401572961807659684721780542888826677961904305976739964798447403001373352676971656158067258218831409986166487068382935156947265536368822546425339478414040202683498622015132488103547213238335919050533795203555510547188033174000286281619528384259536604465114481367519101326431083363121634452116305252054388830333596359589451106771782489183445532964506491466595563864458064050539688131601954385578350755311888163727902560357893766469808509363862021902194734827910656712403227991752487374810547137499307428662809662284735528594696638551761589888380877911949155982938760197619876970482368805160180323377642530387068708948918661578037550240691798423043173963570128840254332158677274588965982275862958992913631960926600202245104226198765580786156637772670421282178465271200545064226556998162942000944229559792884918907997116149089992947595634431620372619371928109060411857433162369484485094459667050984880098966659436109831119210619739835072271195464577116609400960903561406287160101823842684826443886131971344841348911500836030801478080361679569515990205978753679695533184939900006241981024749849031608153832173201187318158387808076671345531497290965212199027755608570082345804205320362632274804735895377651073522514413906655866882356843504525820300860375595875375248637677457112965647879743723164901212748381018390521755224167572440323840521811044549088536010934086331089694468217772436515055134372514869746200176505110445602760959883277266406143224888166023937868670343996513087799671063379151858863714658149953220099364622887711242698304866689706689761201716789402837199366456498520447768997283611454220813734006955341417581969369393136732542352027570577128583177316864471985185708551571311348107205217347081442020573824765779551332610693534000940309559473683260290980202089564777000554591038964861883983709508852687500395692645517000977767370102584231664150893199559363074958010363167350091163698523204137266406194899744956357700885916897341290342551808964245077722488316262298788026043374969485537557167248974865793332025816585001936619489317894011387732395287470847262794039124061762214384151649529143457409267136137340691567229244790152675227139524285144247537966655946512997334753935944267488783857830967512531731171753814115003749297485705522739116856633556426542898291248751464565109536915622782773726688327401085696009869600897374048006876639151887942365153353994194114700972050731260594087909234128893106960537275989783790025711698782246376597005177247293315054083244088723890271125702684682182972258424913297375100566633365186589232163962808968575432349610700518648107134365259252957409129698015636266642213331317163854610888413958198542968708341905795771664457996146933951701515332530932382563747379329370447617107606567590690920308724321849548016046845418698707418641327216250520737137359301185526691997763475370626098634916398284396281780073988012993357526008903564668776701327433091141358618342209900914916120434497500564441493806726599847035994142567363344239769902338991569077735207187863070350007294332507077874199828391158956462982587625075287013621379061985100480613579848512831266565299001831496681396960916794786070315480100470819269754295178406375511965410424602530782104170556670357092648954736084201360201705450256078935468443651548066356060152533205366906958945864750539454319052600878304400827738792878875616245124080417896405811969815379506218562202572323051642041047439097274985934313216342621218070977131295485066815433261147948494119767028310112891701895847260518610585186781364001972541057861429121042953244144679331040755067758693239551712099771042270238020350628462504437619774376199441555688259388778261190852412286066370849143854269905362766301364395249426585116967587188641931180275576955967652262506515469688554754191016031188331484689745547242190550950996350653923389881738912149630162947380940119532328469358159963191485161605703419538883010738256386924210477250389162552231726068232977603113124096514895182594328138208333473217149913686046260888575215328769192993094440053076855443806997698286067374411524321352453113825539999405753376097827526456782297806785882836735294239639790764422025151403933263514544609552633654654447998126437034517573461045714008042710169000416037195885798376504792535810182153198444447705457476353496860901148243060880066466883448354465196059562243627575881337506106011961331305032700276258726244441864244582517842687832828716497093619670336693658104893689088107905644239616417128684343652099123093048747198459775838725816813749325553851175491548305452957542686932069656680774085956698794656157479763426081643681130401073164009048072861533702827106556280622534635697996218987178993935133508865370046028008350613068279439404349915371101038732541342614816959566498487487228534978432839916558983051604399902914452633138333376813348604159964632806015000166766911456548426477515537359711645982448679130114078567014416979532569406731059156012637044731290697300007430305136357259803014737694505410776199391251957723701211511780106105542759693305375299531542360083792169387229422772212212692031758337407033549639853258934949269657701674892944702964715550785783328995789869583308258038738433027421066901320003703554814124798662287423312924254217754978941399357542219054433096420726838312485895844177240046212041235344461255318645083334311419248600538858443915958501087938682924552109653562116947801971091527143535457446248463546318259515256233322654258361422444149826495467770226405786858805143447163425034778209950883334347948547934704148731943055143457305610641192006852094279578825782056553856354290673965149348931760184275185244253847711952366117081099439130595118940337335030259432668906995845479605396932140165794745011301315479502307572596289959747677995588647487465711832278677489039578931365424035482616105743494364398241314591004149237986392818260986864796383707769823554554731866590493577536922398258740632990894957078887809615691922518926372911098146530322913888938559693969085182828557890620095370048488092569608463884680238706030224169765863398090716773015794285679188494104783559885841942187466414598247937089384724699564074238108006894260815149283744493231799086487949273495606410977148900486928779560718737907993693787982508943724339605312708287242498267154634269642272033668670758338691240687556623970367156809574558536070053304278733110523133076877235543815800868287145001989620061378466459274445125836355596992014763825000131094265055634025785426863614944835010208339394827474322710888294453236513647027277458866206698500159801458774184269185463363147930422207393681493098123324957853420656971986418781824297435961024826813123787691943046318156745128292337097397532183505000831678321167669265275355222896783362190755639332572966767028889088792831891204677211652109760488385939002987557347404175517434347487584822667806763965633510713102433132074387428629461412597458642205401642972716523646330005789278364060955031600809567847630298516709249906322755835515190861281670624157859832766741500697371745465447771219853005507694171063085833527530343967839095933130339401312132408699762042411900822113673339673046944864522093894076271704937571751428731462777594635070927302874829884473614184729653004172220878439178617380419227859946799951104974120836479631968784203374440644108927393765627639831954684758238645981721150990430864673308891097540364908851487138657637911444515750834905226799067112455401362614109664255638685105953957814083835851205206352447486709324692936382264386345054378646580481941598651904708324359642202233774385816583178883631712868940616721233882137925316717551639236097155740558139548789605448463729427564262513966946231948876360714810833519047203154248673228424851534287052466902715721888922996196367467134493512875718989415555916182129872192568142607633751445098552548398529186958434841129805575093962224462957143479693183757553867605684081677069803637050369260322831698101077651376842711512729185344535379957178412808456469199526157671349132338378053058407596937747274486591628950861209720866325680782943396045202141540560532150061278644161445541502092290196081451958434855930877659646135586460953970522680817366336063155035079021462242170231585636254728903492087632564215871862456907157608128793698202110834092139699892205447956171293697929548498641258422500706235704739417566481097306616318602465320299438265696716371827845418898926901221288544081528416295241598241249622074926116355044145944513984750813434300743732645877494977588940154901367035976138092473730547238546728433777460470931185830714783660366876177437862316721116136958794805817971855086022406508954213194834485624272154083566733463042182085289720444442371660391605785032932513316251084919163390928533671912922731454951667825253116237396259512495724118297782098805362001375447884473586326620986693485832702592286707965738064685340302518550523006587603362827558070073308674088578460254204985697182561016453158634929383655759475105802231947636224915378476505607143136263573226010624140133030098258189153709555188289408792155651981471132498697532865795357502222595160189713125587175971819335470071444127308073575459993745255336608159144882260003693354930009143908952555509563042098211065430975742519041618118742015193276997607153669924697049716624118933399695042118587821956284599936515760212247666994854207247543297741972760003228351268596968751185892854046795951010924298894161070881115465546507050267084469062034495937684651418782504382679530807652036999570099352943741629091535525332374631272719553782200777275532681401819624249334295282371374403101866714732247900389924816947394423958138608400757024703798959712972738621535541138567068589389200918267193235960183889025286883731886185184190331450916179600727698035422333365590027416724438203516210507768397274719595420022191158262375795882575297601317279275347623842807145992618881725654474197645013571977361147578439521026850804749992977812689960895249687586579725169199303559919383025279532362042594047749171865164131011660492382155237516400103068093925104381830166730246379288691329120082857879687152158191164280016513700045094816770659511192029194486495692729860636975203995919339982165133656412400227638366513369571608136851529613088066970450481972843327878677126767313452628702503219208869102753801173901026474663956124906407805506715629322789257462374812552714313591637374298720444991905409914680580500798561538205974066455650884483742944446515811348756907373254759701320123706320920046171717022821626442642278835155040711630371768582507463601176705784349104480432016584570874350636290495307712063220174138237884144319459548323387901478560855047973717976349033779805036867744800592795870153736820899222234996448746346408879823351270210487092606411591915796875346632004817281723612032305706584961514357064743065881433145340542281372471056334270923472842776499111177774776751919361037206889221957976286444809079499754171795402552457533099347587292311576275020129402730590503938858755538361827899748377640758356324119285145517760317096654935136043044564464701614307708066455934319656648106608425218780048626459042413092829291519668978101265164042932920372959266248551054058723269603946414759066453354419137865146472819575225923651446066585573256106107941451795431176273159055417176533064290578106192137834726335251653400434268301750377888946697100634111163241273662160203485122566860966266022998653516343304532582789213866539144909235715663254384256638811517244223326438662948685696983869044043219171940685034853200802847396067925055529703799894131900034804857295499157253121737540709617085634632175000406820868518881274452763682390615088441050998585162586298056305257943847880971155281864086419874885834083637972902316884785571395830944035228204571250894043441254391804865459323926626109461617029855906822855305733596944997318564056886027270763290815764834404418085431883528725607770858217524106007022541797176044317139649972459271018813708558510470460850844423146401744397486677575807068229880343932247169725582651860594319560095999765712464423874285187996027296765234979021057452542902023126536387168247074858201567072326977330573064417482833914116481547335886389484598866169323546919714667705902653915906430061221768095300046632897018780547246521196286130754108079034001643468848061423584382406460894317707637169462927275715953529479171377155424213879460991539622171640240201571454728216599428035215984224285948810169198579335767987397195074348405281420594920195064099838053417859634125059433222335945894232275307843778243476818908484759896768662986477673586132540706221775673051127411481707848637453375124207965197723564896955852441120918111597399512336930710236049485279563021169407109868619213677502494275862401412116822970929740036586882645423004481725473751551960345994590067529362666807537455499982355097592670477939069064634921333944745381934997461444634195514106588456320467075833225328553260124904481494729492154486690223703587261389445750320867558382780286072503695462543008471560098688248814720526658479951322752149633037568218148901694499152123173076036924965804796518474297410726792632485114266955737261588792624116935918283565338124169430455437702073443018045033161966405689741606384502280656258211845336627205967584129214487707769676973661392877926643920769675250253718709302359836260488609887941291593517385482477352192936602417979013844154857211205669193144313050381660890717728470187313035104544390451668157891102795285902895225814178250735091581410045894639815201508614289339540580345953025196333079196828028830564430759660125739400307056259919667457941905796512694883214369774553202988810025370249495225682039877081750054574915087539715101130560261071453440406646384928190084196271487799596760853483460442645988865800957353098906290521329800693880109125512333755742284087494557950986105786939102003896861401539619024044253147497130603598668305207525488621703541724068745372424328059070861336421031110113047932706734360368409784000410889206540496998396497804670478022185331590566551751503416902705221188292293797767381652008357294725029500901389859594593594359848245351930229334751175754080044919238282499150286516908741354971374578013263756544022426252779572702659813083458897663710960844277655542849230501696688685681101249376120823022918454770936545577875216952483206001126765925229371449206281437403046039811703899126513383860830767119341573888594700458174637828983477643003322900665009693953347651513026948888070564367621852226412200798339386971809096610223340351262417213039112475044275107443860486362247781079574511978430236533856056118554127038831566808575938953579404451834045245520551344661812303501825174632189381291763090275953060122551822497266815043744912349163101630571693537687918910545584586925913484309712850532710894577326712107141752325176891176337072424428132132977299573168810774044603585953439624367171855819124956477608387178299098594310093831102599418729370148054268273970780883837311159932078703630220438762932465179007067093020258890195717146112376602329892437672485499646483815189287744106639546379797547207526384565751781845825364753320805202798043941641631894865780612757456287370717218647477439884457587818074068949706092206466737798916634864059069517767877060364978498852471317223798263391733833651511255839592883787897864407132650191191108171524086857054027375215846983339649332400692896782149407075612186129111204325430364429186656973530296272122515427771482698940613339633064009944891043665745395349781065333981214711670586889708340526874568687917321256134228792718573717487890852852152810169674906571478550009290607831097616092622641149047071400681539093047935052366079346238964775662570213992504474972152195268377336339543402070417781924759260446441004465676557807898487876040009118184567987671484867765976935014759886651824827751216547989703571854725895886590894685240604980213714936008862644307583515959020070788493392201633582065237289876587421320455371722898036652628830655273103961216225183999784058057211752688341012489636289051270267503584729257835348958489035737025281234734116783178886470052448885285826416687792499333594018086949736032897545878038481026611110911600888435826094677515096759779698493128169906737149689481261478394332206106138880767197656271570340526593679861361198524231012826545456676653278636394579430158967156156598539259387351008934019189812242495850373734230265219508523152073632666570451465988639777113906473970406758089437519765324006743527338793117074563800867600492711439428291638455502855166825863588602998492578558159233955827915817817875089693314518812750809542276310669071572071162932810963878334524219030030998633891791627027783029911150014775730070372719975049652954888521540343540077206780675050944565775838012202284859012244536725977803730093591888545002743256101214393125881454312236216423870946519602454181373719037593540509671828453387712720396802437087836825663967777136398856295348576324775075538765358453440089821809686353771698766736384574856744173237178393938332807466682746582078214163559666054770520564007918355767519842000008543473093407791393441431267966479321085320190368139075986930863894162538094247484261410519172917351287816171468051784028089205951919268008963339004282539892456808575139369592377696769693414633284542485497685621204487355111360015763127195193760771347542284335420299166274160829346512122208946863313674115117385124749904867803681108053065052988976739104441914519112184019479138389234122026128386356793549929970241104289889146807134898046235510537750389683208703807237680131539649049461861734973596606459124627826343603503344072816952619478115654685940701546050351750896592833022376341772052629951390672392662668671324260603842840301367491620594864515269144696766781123791115077166229741384405616560024874809826762990730984635352704846335619605588100200662940628171988683215625839082098023254385774563157054885222705829863727818867106570690119082778141140228982415546153307583370692937494646591659529094112860293702808744465306510710335318305423690193418782395481883346775921372446067211502788853411350162975138258121490951521338313467794488328561410503731447543146695235945831621600768476011988439979062473457461928212171378102352948460741143883067899791567092344975764974640172552990547267763124848056898666397992901882711886490726709060861403109146946317984364925196767988903884066935221725454328961724501062909652285043324417117626355171554787473469147186226190512640292530623519887529933801648959383795476828682258608494419853469289660957487249426219125933348584749386873337311268283225022716000574434613945773623524648375693956748372636157689336026471713381332012915505746968485836883623501854170732576139812809642546386330840796173597154441128740917535495446397164678837048049944570749643887612190442564808078677865614241359827290228466812757192182411760728960570441689882457720938601424632539339313000791254478387695778111108726769848013000879587811520459575306081142756815154818905804554595872658598546159827523100364830719348328922831840570824993354111614783348197650021540738457277669034810258618639322696125878998325636630375091664402787789435771281941185325659374240595434126766312120818807312339598249168602497399707089694896555910237930406771485503680105399867361343950263886147800940158223112962968614316737116601833400938832414238562435069884621152021467958388458204051409777363853069123679900004744451110290690995705693028433420695895949293843801700821852651155112552412550120784296598670716647241803987277662008306700457569213828843702976423521474570884140564763187232758507769928600118509773758346151587831959845909811553797785994749249871854621538403231830088702833459912047677212280158571139309990982242643674066713617065378617690008562680837318765966375216280509176316596468453281443079454475978794605244245175158558039304397972168951771225256732626875685576450391106329807891831701543779768842991879831186391302568567971173926241095633642799891694091573037838971470918412041057417603761815855544031458838967353483740759368589015326870562560710618440382551349250439094429379280749646878699993549147564991604103893588644709698363528722807805883227226627929198250596639676158243006248545306870119455493459950846350682234866023228755478900204237032479819714195755247866247671178229657562064255565081327979849291219987077139214039193098937581393357473756613836363148133017347676869018580637991124438912807697929772670136482931925108647081295851231547757722128804614816215257477994337569156502217620441397537170533811609201569307071580504162630136501042275567594489910588377154369789762466982792341758378994582328667825837638887646014569258100156152056383354207276716338497809144503485676033380041117731699134355611216246996225066637607248294426486188164613110656834504643992095133250691148719778959008204318124042206602413119012625918171295995928902820626879671114216421728662295850840493379399949135223899287512535575063832523361734044313862041639059465998151058695097802404822697635189811013818183757878810273388445778874274825896012080067721584229898557203409574011576880032478448260719072831362906908208482491904581001800641721560099377373146793951157842796055071325925574846849650020560088257990050906218088538661552233053142981514131742349137835353905511337598405887920424165574694955806301484335957102538653890634319253399067326158786529968051998449259470028036737268618268760617521374775801838804724493074587053135932387066587693174245299393739240815018572828855874183060555046422035262363713963780177450322722999000241194712030107846062829739095192438908658860279582477857857404173704798048245007197763954675684671563188374529651065649153743379041115310483179596640495946078547856651328927481849819889708902062250610348852916207425229568241608037955485359305275878073629599603088173192833335938674191866454447439801007600200371053558797065239896460459473990431579906052580728077011004469279999277603254409176062914719138797782914769371671047185536421707443291338807936709123816640684467179005121861747160675120853476800840583790239382848933630328685811624471945841214248232443314329109816949652152681356230927094578909424622890416268762429601466943509797796247171369534334133392732383808732652551879092218438980740544001826867315277407486572410775011254714056368783924424878929635987774596163586244736484827676284914781363254569226754952797120118513745291607806893845852748656456440663665836838019926566169359349230516894595078768493851369314711181975955308393983113808102498759449994512498101449560141805786679480042332007732806999217049512941691668000061843179191201585596346623958474536247542922861106281481595876980710671916306810637444644334911409240989658458876861934211712176104003474357988682914304106022789800456478066453321640076083238276627520795444375131448439232715626042819256023609973376197130180289702764651802582256676943119929778624093387699050560006762433823711602794167369996489091422957038869660065076698287703088118990123813478871903877392463399266711587613946863647964964078656976739501904369482700331239991046010850213391109738244960332172071916954302329893517540583152047847610500995767872796270776169028632941930713493725719297510574866069824288064181011881502493111008021212572552601057151012946643582590021130201851973039439349329805942238244471997213222111488103889244210440125676998715392335030589618147283519926894372800418142830588075660905689733991955868590729589949942076226721293981264726912273836295649834623375560078211415201443974928656255368954586580845140940136622300565180251596992475067202924444887924957908926939392311790202826001590328483197925767585036545422252756087807805056623970517880874989008015869822710275212905711841331539752489540924435966978118263151697686669670425979623926562944330196881955020584186785837088628363033794451386603479170058295821703788705671676559176487256725605046660507717892260304086963165859312386878908257111999025630159263070478616081958385987507436473705242457733239840385914092126377734618855516827813097829298522636940683237750683734091429952038775072616803815385341592383395845056030133298283189579926983023063040431537112493365815969527771173360153769488226800329872088327324785957718316153482391954599153276417124238911166450611208679370049524642707123472892513666963690169261306680284020753806150240787502860906799178115461822670534612171047727946223709819088683653526263651688934560788626045849198022994369907759527526782175978580209209927928339750345793906143945642086450388877209244435660033587668912891572974323835229172217156935049412606436007654604368078269513573332230516941379831858612607070428970825874501167864561781707708581429081538775939579610705005778391921378786569359786246052956871993476134782824939234656102773059168805410946466620027983309549806796891512674152315016227020377131238960548553758029305694552054758760866029729299270705881456676857428067041260289695503521621682124304200043154871122973116545676026224273095232998038161388438074998017230155848410936613352380992772688031242442836709345492207914599647659872807319112242637495204133597206913441041943728004964749476428843969019754236805828327947390032509929784273245659074378934150998745808134032394357043227583230364699823585896823167476659921707034631763227095907105068407438317580065794426793998569617659280465381534024157640531699886522542784220023307583439633147642775633672550085200459519786406994883102395786320633258892382009878485607094373435423589893073953769709657646531287758321411735371014840084241894693137629683781673145825417501143019377023799263039534667251599705572517340638816742858300228531773151567340089060269297393151487072059238175283410119999860385055168667384854400687702617754713107798373441965440541967065384451598553003455996079667668102480714541793761655858272507415300125050212212327132750260025951566057179489001798562477306020725605982362265616550978570844792619184440376783806637165431916412946806427832762412714556474616871903529322445549200345403432919817243112402515960033629451120219031420373798120714519363580050386897655255801403882185454808714510735578532200521656782002944510010521480972102038941777273137146272441377583157968928878919970035350555329334934669077751240415094160256459520737578502503737431931002086064123627703322244608557100776803729786787742138637435518475173126376259310963522944567264064294294988299609941925800725962223359284286384222849135532403153794947755751751038669899695178558313539593974194387157615912400950919768582613787542293404399511927643894697476899410231113984051766738165643883612810372344762693411826046401433622090514891636986496421236247223499126221741830105255331059023662235583329227515151257231020695321304819548037953135726811635325158119908323052951148533085878805485650536241094812545894603090008318155911017447179888010593282860674514078140805325076836861574893943919058903266092437787399009774853824556593831617298899510303194014672953612428928967307086319490889304603187826726097764412152456806831059770554283637788351809555086253060635095948449591024436193588950051286637908960046974372743333966173950848678310251185941038135115938933076231451122828886603488954846819104176472277231144287935342103050157600169534703534437639215425630136510642814608238553562664886529860399425112235501566737702016512066840515007279999857578173933867553507899902115314314478843218040441405677126016783061706224152517466850089079012671710195182499064609663942194240327614649617585174265201347189392890433339847388193227131283323996972239906520033574283295777915463305543684862520378052972859201200842043182721159930460640322611457987279879105095749258392322223843745220904234269018594714003603035744459199916789645998412303749260712912831803004214349535196458272656367566136955487415014456327189617755706561554679674315322206268358551211796573708330087015441406248865239432456353496723879274944237675291330886354706027155750596151658275731821570800669985073899329859355206598157862154213942103603453309695330209302095912381563946375968709572396549932277178130237382833532658600025892828936039419420033374580556207729771847536530147063478116531921950496057994735479581928286112503899964328989664360167504120625610076474388627061099849586561329321466804760762067473425082058073017113526536416881200236134884533015870392455236840071815317407085850942847912046820889697994850861812101161806640785850412469983064282717357729486184757861537375061812278491249530361362752260924414337109097617795386232517853191029326851859632315034495252077719676606019988528382456908437238300861075206813773867810506635667041261719672672454380802928644377376034633344579165789522848785160456096925060453347530769986943773561681234337462630349076455573572913022010225420344479550616404008961009893504010887895343787641975373037630169744034668359681066101486548630091195894079332267537548591921808044889227263568708049379329506692574718425892351844831145548802439915219063793203544099542355130951874254400540645363281301787261412494891884701575547286629470434395815571795080881122791051471524995201465037848988115028946483706404179015509107427985125870780614801219319120225384779778005172199986963036419354148114018961174907129521833786389809120486063837376173654924438102817478048356988576978691307795170943888132864715427671868668422573359701343083382952517688434900389080280348968984637557759220333769489056771509035676106090342658041494159263525014990159937001825635992049128568266120789053340474800300283998883868026385589124720209183370487460935454029388416060111208303076089247810025655203833356667553591489719294042774819764404618390137687443354278922077420386554014844353813714973174421209370847576904448220930743225144929036359385386161788706080232091914164603947127192797103735749633199172517428649126575696640979773184659332104833348784221839709211917317542331938478943608290137161697200811001573023995696863796652456787417803277441194128186135427491150310111700026313247037164886679299529030380693301326948508747149430122946381217233518414017167186422898425053704456060569935868457741639033462131088487165400013766096528312892646867994199444283358337941376625250465651142300858062797903007202474091932195415918441494330601170744842575712471506959275438317772326133550450375509101794188824881457482561478692416504860311693036267382291970056980473485687695025958889490233880367732627479597641383375911417634655344234513821899680137817115104148374108025757392192659693949547747259327949327274763951173948360987056141106588077808331792285206555605660985132901093637069238448122263564291916777443789740387575572930319207311491966805484001990891197695263458406588611090838613139361874098910573462248637394591479281815826270059247984195982014111493489828955684702626141855965103549241897518246901059256331284315797688929221868167256124858031906561053387155642857882531283831531548134921672403142714134603679726659706052323630458186502712190591761722574414814627626324410695283294850761687695234028731734245951555645518727004069114239772782587886874608443576779902877666911159121223474778780128335158318686088866683465365045067305566555083816690762207561789636628937577975768224609914040349487815407252752941177899400753768058535152570706573897843705250030431502854454204977454777664651544177279890725413742659576309165841769774037973529976188776967767682435433676639651010155997702898512793064274218109033888235077538331704047599084863032025692525189526216349095305346520698936087203375626755621500617406096471214917497988474393379951462877042138117209108557680967885775663387916408374945948397330090281141658486287869100869752427419435315007327050849969957164236670660120851498684828179039929238955053363067456959375902219656680186245559245669171054862662592239501257442093197008476201618499922407978453615155175798997926097632156066563925308810808146177954610341561819597832176670148385772538210118391172113025514205437851230483753072948708937621239864610600100837221400137058724124991193194858463204541638782685030008482462915182530672868312723330394757552846085789827722235351632411848481390499606476796913272407190000421325129896214210300996660603810911257312373846489649152434169941094082420587408191265860007992836456235598224906801959353855345320578761370631571780194233091404140693436350906161798200659594336555505652670846050558989982701865105832940675185380442092355717191409851649437679168577504206879694991963484471222618611056345917426716031481662390215662358143803879511823890146721327302451015175550600831321224869215153123897006967876555978173966522600329963470896261500291798304999635982188741990603510681858430093363641090942911564190161864359931581553509799952680574046056565870220916705890015407030809494312950679100483530595704600402256749331452134618509156558841358591321849423692372082431071670303523581956276766668500644917702586662705957576862521564957535158456765758479117229269041302907246148863356765998009302039019896235798299945483243314936260909736270423510601700965454593343364026602595140994670968425024704862273063109806902178579120324417620151763929966857909173757189306420682783032878116230838246211819258142031723379890154185145873862488482518630633550888853111304328030795260423811775351977510315885708929814366729698380354091039806074253060597951611801636034498197148834732299952294428919120340418660482875463434469053343943086865671433394118668350878693879725607642663157437583356035817320340994307029505998129095426465111850392984930177208882642130060033436638873596562619100265576245413048944875683668246802873475547852334598994161458152409833930912516101645156039987423381188677788019464280491758304308118314388371209211720630530469851639666745969063592881631813340486842771523616087422146767629663156390531716614895670300686972832179848459115578393644890041510795898773393741978791001178123385635799897100220202760132591105832922257086622255100977715110328827934134322316027764072125158365292884708203998407269678407078393675303743105703417067293362855808971278359439787591154447816912138774225500014777750236091768885213167778150079021275228468176309056566633357894365242290412444196959400004615008964391772469810802704060745546458287988081761370158373380755884706962123439865649968735918490819421568691107686588338734523871670240887434414338356246059308197426510965406851184600246157851054994832675327735016986301036474502206312285416507610264344438699891569940517892130480110268282005774760387905444824050885835730712880509399837223403258988102986426581419559636004151997430776660032838798790323940492037795729686264747117887266634900629302185906162172152418315253223581118596061830835447666770321394644489234996731585097100960060684832344049978759829530896126130820798905399649453800491367005431073603875931845429267750085910901137553988540936541846560467792944409619965714928209737221130321554922410501677937909405901368467199384109204106856792100655728063165742976534086136256900016116241569798219330415048275924554360783135138640712146277807641951013837443783411400797999038265103989629919155491755540178418307932301600088893262343781685724005715190291073844754442404340188302519024030625181259013393798379471736480712322156000976144528525113428843148513269115511606824919353756680493880829127995887108337756359015562752612108427660409259529697124190964267941818795163122748298541963815720057854782515552628419044486469793438516515611300138781485183396750159255914791824057373017428392576094720261287153334839615629115857862103133123285079267218098451739643484767897043178112598036190100857708659768075510869605625070047910381841291105660246999661722860943503814316537421379704807010631686249236967025903692747617372814483041573457503712782170417114815247358761037732116036182874599616615753582397200291541798981768247552673479735398558657749265236558473119579906393643638299017640837969317869469518699271663377732893164658560438527730149608274937731643240613687074737785824239896591042332085670963971369836651224461771699567677462302502790929597582954710607755811436479909482766437531892411815192970755313768115319209287031142332950583041245162637717599673890296565704586804241296326198449272696135020800106495986860860372457484612214353914717552498796759833836131180813836712132999109587976982923596227295603234655558674478470091104249467712070835483448863684545490030559114021772168628258007451008862663852533490972916940250524726091382917093089463353289364337614908025943940427913121810673753448777989558225359378442584930656234394346720450835775676861507599177876302458055397378862999869438848700492974928130412458261512974022360681755301486685428503319292849070293306431726632103967570127940071629246270281692053494272968825210205048247940541627450875612999042184197811460165051900756246402153763471717644099081147690684953617841482624505041135334276055304158370983173728658646564449666935331067942141175996935927523639311228436537030782101972558303677836430066654991482343776021096132861505728717328121181573615978436272810891262364499900615992013446471122194760372875175034658982177022047632186325431830536682183685217849185559991849179149034166938463189540591669646005201528724655526158216554414025820510340599305538794585191333760523364069690175532000789841171769049899496492195824588155090141770953282120252592200697060848991057078008875150785992771528403637134913659845725524201685248177358086670396354433507166708694221953852725116071383973432749498404527560855248288386312569088134310140949551046402170672446031679089075407693439247146307258132619049860013389343686930349428639777096236851250829109521848927354014236931051693803180375619730812272535290675504540400647660945257578618562881117579032883138833450086798042375477649052709705895893032689027678645587899100999025251491704516456474352440843101007521940725594438395516913225368376267504244408604464208340237094125834114969267641505292682407656842401685885719419525009684922591442281366653892270471944164450346453217911325553466715784240705737553094254863056260140415840638642797894159398525469175029599430260926790753081324172421230813199990851520330728341287881180667459006755923806883771024382088496286888562038257036355108074041944212216457470888340412357344387375533731638323016898099552768357709702608278284512463412746188213358374812119634596454256537729390930870510896609029563467660665360374329288332118738605402118821650593625440974816876792682215552541534866476693062379882723044608789013112031490442128739174355554974324058565014582770057568548889669969874372785973798437446665106054684209888833599848095500815833620407436458538577417658770676949248580214068661906450934911474915111120547664099771544526417087959252102711560672592993595629557294109306513899847344135220525372989108922589891227544168149284436407110141491983865125632071818778375171722469588756847698142359944759002858960440460347593717110167527308308943688663037282072555424762201529735366599250279925599695250417687291884014234150157188110982530374627594865092368100224231071020648369574659229085720323822040734561464850021766861610940613313682100784424094837545893874489221484343416329286462543814091210576486754161840152241529602638096615286492540270300761789259736360456474302661318886242406514835271748806755486880005509531712823853286471656677515365643445853883922100524093798596522193887674800502959653448224715951302930659063374954748302597859141063531785338969305147042661454608718579256422024539894141309314219460422865800647870908479249798036082505959096058683352387053467804584203866173315192537132269100821070166532402187832420834396793803029849405858705562282951412787077912952924762287106094276834732011957061140727491510149668019773616815867970613196396167049970075591749591109172366216640604436479870409776439126783690079769259893732649867649646661814691905686329083078188097685618587438340500339908226310226941607164027886231485252689750091906645891194280214054761041872165670028629794115123811032222624909448752661966393343929340171689500802987931895712466759711519037394394530959598097148828034878115565239065013714077375705158270646536333579059481091515406919413924926318071112385240643313309284547642188810393673320091881053087436412211308078265689067637100728409758155812174248369354067349160172958637671404826971684094358170081876075057648626728038998506254651261178705493095934579635018916887938220767237409971325390571702240805197173019864757616272947943073079731755822299442870689865625406672600117777494398442053945375564889255803777737020802179007860037063398607682739520907691728792923611868502350084981839857340942883475292578398545890865678005702261323635917045076870770458941078070449657657202093855438137392489384862190091555577059486876148197811881034507046103796556348137002732253154335054252734495764091916782450125596987056591198457389623836857338858208142488377750616534152669326451506896670815080185340350978032692212916259576235356901215044629169060840867944801350167220985027575617018669935557729955433208515114341693301407618111946422789975127133571529237566127324408675063680055767444334674350321618485336001043946006523785567357342671588406237945669888976203406272732452627146911408217147425330403796661844656210824507481393115361584834603108141937144566991470379057561171630113228476739718618186653307439315069366598300306367343591783572032262418320106466616469846310515747550342937491417296209934504831893557674829824051740918729014499222646246105111524284021885488462776043133454440215310955113881865436113634306927071198014862501482936541976414841714550842807517256804397847922329673653265040752655608716292475627817956624786819273171358995539432777760900937562253689499745486511000248470834669102529075051496905409688089787531756439085874765758162465836736352491736893765847055440788905432772765976730514213263254889192447204970649078375232598781708588286992188886815851047247432222221825131462928914717219536959579717605147368966483248274813515621908742727780805736193577113003378535228008952982113203455772090603877868930462351646533150163574475221869804223993969038929144015920898419620856949189518754217714965965649794635362090429323155570564828143104222953158098004365273866949299159063353852526246932678679155310229427033211352685227736229986377592746792422749850915258867751711656789524979569248034565874286263524714023441268715454141133595970097139176742253195574418292390064109866538002248696321531109072633990429400204338013562334804010070375532245928234349936469133170116456846765891852609435818852129503923022866400848014946028038452104144799555984984896028241883203569754045537849442944115615074522869861894676155010561287697071150570665131487272307249290269293013706136164413495048756023298271093116318339250125336122261323348213026021989769610918897674473292705575806053977138150550316053782487487911822302568625331370233244394620026195936833332141352997464685429090979734154358042030967256798535906141249760985692649473276466183313582389029561082104635886928882875254673819276529515206374344561023377844857407133212510405308793562860597932064891950760309105347463338142689216126412748272032867409297815282510205819206073369353914384724163702901101230061450664796442138642737159839228413167570888050650028266269983488127549662820498186993384865349749611465329901656653243787483831668869629516376511358700270523111174292200357557968065277570392046025254660280794304886433006305417612015800352677110241470940545579020400355088085106807514517275314047439379051095000212460463444442081403471690593207663716484644868291566891429662922864721952734467158372578248027032540726766118058930410860271050145010359917275300517547750667694467839419974675727757448743720100354010116481420264598049545067783105169026778942197667867897269137165752798163753266223815084136946094942127670247086599513457424941583376574978132032950112695256109640268729320334037220074398151021744666460353703561270014610204964337686088585188611616795904080883216793013541495370595578689941968222661570770529485099149722507288256120126992078717455147679396895977689185452277412853486566165643882293898700739979255440366403408671540083204542562124235584067318962383387637025003866821078292903752269931718429309823147213853299215946813617409866762390638376352703586575045209865059791649166107731581406155362629100693074165016323837095559820137298803476545322408977925730695470631984336224566292653071797511020117221306428713886265925997882564146000813495455275341537749439948846356886708206117906073647918546281352705000700789649022776848169612139947045612608763063461975733387212685972008337788205797187928135958467612351439613150631890717481501998674433313703091384277075014062873263895613820791971532699143830049202297141643265835476340386301052111530856227616345257862804757034421793970288328941024822727092670594066047596254000983992938161104451955427309119689422111681388507701680639795051389053909211240305129039058522886063148642435974546809600781264994152375486295255789715874338554098982482110264487898754962198758359464044138898823611106861403893731090296302359376170960216718859367919440350873688340856088143220882755594305389175936656603018296507064655399814893286045152065282578224417172680633349570748697228590148985581866911412335242995166785407737252490971746301133616615553243311021955860078697345656804518462098577504973297428383772179989921477595674992817923662655262504214083943150463207602979350995549505312723160748703830493271350922680869289284139694435864220853061379492576458491102545494519830242647601597408331407778268373626321744921422461413863870571436887690479433049419217793878764074089918775122807782839908401196349000005689781719703671261011947596576234825015325685643469128472758984578765413192941038026203971373082476446801362179555655142442973126285171239000462284041106386318917195374557547461376357564346997923320694495685008397255977586477943923942322987748256755095560659123109358419388370323213376803604776390708877823548933303067573578607970769562460049876288300413941176129547167886991198631327613759149090275381588645660611379117731921783223503170959036247821658103812227815921761722691831218994458890971637613719428108617671499447741947650161695564584127410527596642456869959075611037200406654956431043027893104736358778743550837769248648279188882609524581276167016735210113899113770244980127177730784588287721648287452209324869400506118943413125016192074155942330587504366289427706924129105345694100525658909230064692417969796469850140569429124125297246749009068889988053479780336440801146289303747766933784709282094459245739073155940829367958972844159166140294290463517844757910841860453131627360993217870925739387815548245888635548307296983769260979978906197541387383063987980236277593334911904713430399654359495245796383252193120672254265585186850438452790909289991459140598577361220205137831169882330549667967484495310776204463514803452908945960884001600387661001743596715890452445496954726097514084466536326645757603269200176600187421226645235195479167224306006283297004264161707545282628649772272112351928082389451460498125144745665078315003857605168557548578014714412847980859259618244410094421807223395735443312820956237565405937640183184680631829172089967118115340765137843792947073403294303637707758739341873383211475655274339878319033083335126681266389577415290669930495182993782562913409853876185125094287834487368211840496040472773656920337396315127088573268858483442130400744410317531244389871757824633978058734094972688045593774050741325833075938317901813285560613694609216023255003057600454520581954582453534211335939535888370731088432867459208260648249205258075617130864278264784869147060457163341098844637045375788820885633585268967603701810974823497773546998686500795546329487917293724966893146095235715935119500259811699575062049587728778087228630986021719645668022583884630668901377511883665100606699045627699456586866378018328162122675129170312059371441986946284187554432476620697140469788004385616733202780733214372466591236383451737889183235159827507296862184454325181355915596896235593298336997920948157912593218971028454308421929107371154837425069417262765711197738750601131591445831502169769777751733245278396464292851171851986489922144316868103967861143476643993649220749189377248586982646249387511265037541546532291399123416059510018245986369518649884127499169190226557855174984903335104317327424551710241533772162369203358816307283331905296767786558143902049469099107236304380124416969630197692386952343650504114043763085361087186470518403307799684028980872773540509464652599564508463033094391488023785332183841244658829646314727213179368565038381667779040780891593634892222142029263079547525913451791515679203936664644528958263958960838777762625973266772475786417260616534800822261487558741556388495121925951345936811000703629241019790431290478510031484546782491237312367309695540867294323003720805247605642086345414353172501895423263239225950396872236945633115329588362950095933237796745465754256315518504625834327449864835568579651488177725734939157161683349904316470028614579116826638859576118315748124635404531515360478561053712271751461057074568525786730284052290627932762743408137969405924851549841306364385758933186760617250411365498888687040046549415077036770925581001780153064479292976494969519740374275410400048199021391858620657760218124132209496660162284714084151443687866762399148673231296881429651747081094989112521046681569550361516902545434068051259573594650767551985305026379411906426136456489512493941326209267750452236366674435813457762889237742979650563613947809531774897490406371299725183683543485682778616446251456015368632029497608040628825414135314778326000008292013615163394503578035292147158419662330102232508071757035589072740866022391614858052765666459704475594483522638695593942682021773549131040294518503343369392442134661163628346718643527403259770009550055798838768146303085606564468359112393836088198642787684472861180871835501257731804134777985324105215267269893785947562419277185431229402065437356106644020635888932768765124434841349122629426646792744918676707099923101256849351170994293595150935361996943888402347478934861681713557550892956884068421737772118398813284567519894557317690756666631854304638172839471093004995332436028580800644469337786019633290287489118514125076260830605659792303313556805208714964354370114379855216171731816445212679118084737609760675854597196126698296388248473932712867752326282834827200322254800130007946461883190209630781444275742076173050220352056319201486470864403777270190026099479609344543334471339180179241748601474569731190613286144653031381886188613403680121521841225454241423751945660462664088860519693323014038403873260882021670599741604884851610869448703447197269992017549648238380038819359788304493757250359538558585935218142553830642589113413652876512178140631920252956160907356881388628657792376820562876430851530998842471292353568388812939396911966016422999925289538202750102420173035451082571724904132844938832235972344490908163896101172127412793211346658677767901483616829783350672033826783476150688969526251023341797039583922764545718804709049141566120579704304588778506442901577190904410425185074925552229500865861649449801970866572040047128145284425522402232884714942544513057899144046698769243139564878474116962261791780316417673053153839781828161640504716359005105562994061782400595067928235142891376481267543136344559978202846341488760154954003479006117174788925749980961247969777328392426994859736210807216148790943045885392788193014416533792697618313818852689751332686821091487947309140406623854324302782433616365109335288914785530301857945089416709620884849780462765150524634402496214992457059093531634770536529847880170244558547108570942386511680108590466240701824521257535542819477980247371805191043065658699987309692089223340658486381850372139476558936136652795484067346554383525975274028436686333192566808788355403887792461030749775979205976186589151089620691798782533050502165906456831660188651422580138617975582882576792458899710691923078214414420901566689099683316732588010281993779782933346147390677030468369945753134316528866216844540594583696823384963908053711672805379952011053002592952850255650326719752890413249045002562380189234316497194817540748541303796198029681005460861653670624651227505761128086452745290024473914665292671046109751930775391408383464790580195350266291759180477586819475578910923009671706255394486650054968830944441333705261386840322915221590752405208707428498021562623771337738857191651598552044334188128660989737376861930428840993561415865682697447588449423531510788415161135845194780104857958720313696545541627283093192053770756107110106534723156153071948780208219913368526618891662179233923847433490978479356935573156539093754731353267610595519195510260097732931595808044555985693339616751300795536599935986588734552172661059806072026838791018990925299375751868159764225728061691149232419984210896672454439808293961509821958715442326005906954053847026134656221889490260635952680176366868058642556431731355276406917111440877344061154405144772551596467109082783873870664950509919407990503548779486314434195542653299709036487935849864638363013493540269681264633422116174461765125527034508986156026581766230119421316829361552900603915853571872198777437539304795669706041586894320011772248896744102085456723420597186448910709105161047199734600244921747767238056166868192281818010662753300202542338842459022020421036188760324519418473243604195367511429041387841419725981365343287059821171066365164507197992335751310987928448556901914210634946194467755399117718240834705105564139270972871095184250978947104337027886165579767951006360867209108350002436338401977323679882389854145503760613912109209021578457786912661495276986503849425456285403816573877170908350349742088407131330772666856920359071636992196325585696860173751629833272253693500189921036037215909241956098497165752255342733755134768232888806641878350374801170280086035626687421903473363701965261202172065310696268943785274221423250098449699484655310831982505224257517302851244501220856908665902771971397192595740963156974485644561163268642795746765063398383199943407567775451346192528852627259535136404648682585288558783442458501334623104244410885690352321331492714418538166902032648078823199706797775520149870153251054152803660107235824619274599264838369898947381823499508877189695738711110059942110497537571145327255423840406098276097096704794254852896678511032095991565778099775219516305623470705869696725334782726836663082026557397945183155329247728564525762948367734491095930727036694380065556627471112475610612538493271734612808127164978938068883415283494514264437581017559756217530131764912265083502545092230502406961680681662314780050625296947144597162103484221145987236192174820751952632845176738359223545914426121089490938405786025335473015057538108445038571375138520326422842261137119997968366603403624548686913565528710102734121818384654764619406953406321389534110438641972555745189238782384542805575700381945808378743824190665105647249294066721981483986894802282515022978277816740585473056521963303941015373900168302414133301645129993960157186172542514496438449303423219607556759607307450793232666115085674222853156296094096597267984432827919145292148172936134158699262592962831100080707972205738679012789433577323000652035218454422498972812468156337281845026552521122674272922594062164298120991708655640992708042795193361847109648533275714283864730902088377051916729895334564927847624127070539412292509316382381004974369184617673895088490818157518253538747513534979692868546393561986688013098750663687106197611822152734093601144278587363780161378658994248407375350060712022748638563863491217481184390384895797604073514846016176151980917639520176415288013646976199634346076756453683014192522273607336100071056207519167328165884214302859982710179350464996698063273743203407431784561367266669891425623732794253457601091300616608909518834439083821177343466277016099849213621440363601113539944590227091092114467375904287555542742726173954624300232159099067332008384348965509369152831693403078376580401121623739378335973763347213234137731974094633443520796860245944838809273552271291923087151191974408538519091616180619529689447460148473785605790341160942952812154633488086808894726921235446450107317188855956176568633761372228324414679182464019601690072669177464885319916642499666280495348090614652139914006025566363155317606294276046319358205105332840720190993424781782025885983966389887443636901051092609857967065038099103032660119276810906793458965170916072688984479067767859145075870704790418073378022634122630614155408743551953384279898125457708950544713875913060941876194066162049858089940314332174087794213997030917754701469507051937556803702451888197092240923564420003835094223698636046696437215699835271344101307715630871936148405454529761989388830088950291864176144030611864470260305396466761617451458021139526686608761438621561165278339642663285412376269919773143879051668062997804631486350733975991869784195524525765978331183402589745585687896385527005321728160811102315541164940693818563040440914226023051129931554570938719430806312536626791660968998299854910516571276415048355508816853180988175101622668234627879207675221953830519817365413156542760164931986535322156505063034414765009607081471860992695797153016566876722110781664782452252021813393670671124475981248982302858685365310589924369954108742441020781463233438642362746388258351340914870529298283024113804754228105785668776004288837921438088619592174471008269563451587544845612734012577858881860589656569647135899617401278658559725568513898021363896159253621237331953773289169344577201182018812329979033950394141999835541323683382449932485794024217828121292665497206335546409266373822671334900206018558034548232503353531415880576776332523741341116475641571535973483383278737713392831565500509360764827284359068736421975615595701182195339395911273360096360096371177279607569171658233032147590331720163992512959085944046796168132784999110781345614387802551680183450992996622330846517870989360731576998465873586175793904451633387470297346805117749209498757055066919084597716686839898613997415217298959394345421036337877321656661516399555242466757492330428772842953204752182650626628466511056562943646632875915628431969465798236240373931243771051502460882636366899584344758891446409791369168516762027325824213844253800696541886243928050530458718532751158092541305501004339693262020407499868950421915447441447391561049374583432353525763657493539837016690612357540198828228066889777874567425527495603570607759114559453609391498906419006928856442359593627562950906653001465555377002693866500945400892027587123791862963493491054349095096761024973413642446409039908587351228106695938475674298313498404297387871123013266058162180726742397793584724231677604564428174010392200907703301019988049789283515448236828833610529598805892794841372034806705154143489256966373302095370970857886911904553448765446356028163445858925919711849119299697329680117116110374678114440630167783152675716217690666553956425797096694489004731425012148191691406481790634466953864452161139194136541649291338473528046190603412339775604662357851092832372109211422929618675937533361670015085838962678997221492600479492030200992002066730344993935942318428624086267906844453469391390460386499203066210226365104157658744166011384582203002979810864245203844649173621686350716176804918042485496106139931295349278259133003747814349877081000636437029141840309631091432416450007955941086667837060383761236964614991962778640309037926306581304396030223294060956830024034583925007606294325593082621132595677092030748557852638728048110317875079484040177744169764888447652579628109009798423662209496393501155475355309101414031096948583615348754694032853978210053025728633476695283614341653266877488470239298526876146939884209449080644941686709359804050325541645217301258411014129081127777519520934446641545449473031820842586505938106417411417055797067279376038803313233712346653684283892541883930394455081905755470745179430409850352384772019761108814155613432631390714984709640125290770063838476366317917060118077644601169671565791215161841171903960101183129871412652594223196385335638900617046507102389029125792469152741380904182781290838660914403875029060070676195605185566600432128942053007712897319258574190538091972608423273718421988525506660296533138146187248628232140350880629425771951977479712370875247989618056560807446229403018890106541036047478029228305785042808246171788170433102417368423365943888521831126424010359454912484455354176925912436555059622249455614671887568346142246022640738481166445084588086484292634511472093186315342234655513279453673737269613312328766856681888888020569553832692466932321241151355597273507350381996872732605404858224354356675222712548155816800075710552849434029308618900084691718234964747172295885720117967513627504563009536036973217170578832243943883313984509851750768942634825221509046298165356881221458443008245684855691183016873524374054093848300994789732663977889152650989136619499612747015450550339639811261777170539079403004412971550319160455617173067609948305427939148940870212149831792029043465666397095525671407950952623507062003297886770759933785670354840971795752713438782703128882039155954330258134045245926766374503650694840217571278692834579943441490791715448554055619973973773232798025905125523939101345363541029539436207041071003715486256807842113522513836779336316503637962380236085810858636251402809496883333058960952039632637383159500294908346417025579212329524276222488367295695733277441558770844289415657028806138103686171341497870827287669779265273708150572078888383847386377810475965388437602847974928635389427172498724227721502428418797546908375310462202543432029314767685784351227770940100132955632831287622591362416777901333718503915466160052713962499553391923444467672449641407513484377253546007651120785521222604191718966247791501580183327421793878021452343962081751958055399950208330073182797262514870273098399862607052917774438278093058944383521874592959502452857267402376146565333263200217643919910762785524664650545020972024065217431519655845178145796625688941411187497511394035526837499507413753518573174050518263141596892706516124273566656992520004720481583201883173530921089696782423002113670729978372045010189057196784683895272053078677446577744001176326237323619038016228172134611281921701023135762774316388676660001980606970998290605196349732647248804053162046356580881350250150647684786529680567712256029522108002971157397025975123431237464444716732556240976708292681405904893260324637478984896186902630124493799846371406378636682840955268628315586014370641354509515105916219637578520714420395016621312705194991568765530682514798502447267644909992064602728913808604056045959125629661045383218496055922040314552178008996007616389734216225914661019956562309500712986640242098828723585778595099695464079692536899896102522955308816161019450121126615681728541417249541275006069191446852430159222408347068728716086417795705303447812316119936039738409780243274925032586336794801099274389611428008865912799490534029953081255820980756250309884962014167421567266464235983841772153588384471181551886709607477574690795720969156119142958318118920244444662104691413996717220948898022799246844258965451147177107280379413887763155729535007405525668330197327678987554810089053991062820017670269292311205928796559499136604455984619003615403548266340139639286460599497040874958760546725375155225671809272480893751571540951001547916077335588627372772450787726827114153112967902565913323573447876833768458113049697690946730988807529846385146405356321491811115141486558586922854721011008999265204086122138770253087048495042682150325602246464562276356973467108973901164288708334308043559768538630228529068329393412205864525957847724939761451602762230336570829223551968251532969044711108619880947601875378005565827832127952538703644839196106882632339136354236161043766281469433090865451491264651731204850606842226173902243627024293857441079494865452494802881524261942510310996902617688823736596061051658615048364384178303864886209392627424622659339227422218301455478272063538701780464998626884446133224300065681152757366819081882797048878107670770725236268805714023236461894348000378971031401060015759524607345716071476968606350731447732139522746885745239603394096922325972509031592743714168338439042154361421597130193949869297542528126259801504492363503928087359004054589502049835842925415563280158556127987267500056911926676254519829295119157950382766773035639272244708105710967304826191504571307078789798418458797003874671939110481427816750499435192150937157216587265295007023214455192731533309538041146998281923786539150218183541774098798981225259690610039137877651129476477020889831733140797184163258132537557885746728557045298585693442834172539178431934237322556174124820004110397715036495524530202746052442589273469292881206734935473790343937890744716578719715672532217053134610565763259736692149701870820594739506810577947497695764593099108737473493643960841900955108412290519724763053464963282763505858870789299377081804086518341928600693023674010988178879596706653512972740592326319503986336589758950284713360101330865369580827456372394529936098489107244121639602356010150088158970004826062142297517887141357786882661534039406925041284800932344272058773923938846312698031528695605081368274708592113461176551546807125547450414819059474341877589591157604627878021402376645701949963582037479937582206446652619905510114592537123651213474179574109579855168684973800351674831060222395714725815852652905334908456911442199969701623180542582251804037709207214004410205806349862007956827630508650413275067740528075644993469868098181746289605307047412082605827230852062928683912060762633142765609048227322749498269049152775605988128014547244708075720789816970430744760487010874476148923495670915573974663759545681469696978183714424437364742659856975303235545630799401140762017421332918042329742008894280549476127437742040596336643720132968742993689489390703127653077279129811989438650754631569866732145100669333472411859992775727665909341573734641537388432697758024611411597053981353385176289320875115718400941454611934620749879184207367763654880117149881782767184000501657062217518734168356074225199887843543113263708485805539187025585742655183086448097961726363776908858380221194266609058944860606786962790516705343516793348414113615133860895351577905860604578791205542635169959811414088430429679242035339090329706464355568124171740159507248865832117510275706497427738683599940822592913829434392350632408160103835370683072404512601218240249544846621410258732584938607103281142076500997281989665111991313346826778099133605126813084953023415132076688253900986344484512291361285451586456756443226034927145393795091818127611326554304295949680030111892062806297452944723861603730152418013326595002207891625050608785576030627754840796400461646062138352383351185531208770839947031865086597667367651224629097096537388396580760361451049530181113693919795648216535725504254509800086470012171517193843302369962819027539657718354632108437020752889908489496779029103783415000153355599882480252360971548734674040968186882036843876998139496447842674697932132024043153383525870126631025564419398099191085566447434537445632194615164505049195374792557400780876743528154911491318986354149812821002409005059965584184978067239473654025374550079681006175027263970634002111316219387693492126607682809291963025511155450904956591092751220319329374968093699050364162528548024129058084127757959522287046465001491434374539583360432704881499234972673739499755011822210722759237688276524340729779896908648443257497710129294775971449319592976405617354500786295725307165165154125671758602981705822302740766517001825548051605793178892272770062855966312020493954716948847033032057610559426261079460882406710099163072747402866621774009414023156985281348319096827581032556243157522419930259720064056035980584651710019852460328503296335194811336253691683249520276565160443961515574715999444405781211327362397836168410344422451597429806415226160645716925107830747730603309457499155102363080637266949377781787793473505583339706176435390595351380309540008720438386565267710375037500280235618677851690195634160595618558170830512125979760629111974325472568184829744501264790759362351583218697910705445728411414454472654415317119361261456946692905850270386218642459892656098561718160821129365134589714296785017172385746698000968985166932145960150879968923360340093806030305725913833361544191312721866756826920548284953450830895034837459684115273685488621186398330749173428347587830838861600957464709561446927498150069582585195291066759916493123354049266136435628092320557458109576777557505550799521239469695353963138253263734741950606354785041864480739446157274016019419805648401534185939896237609025044057584266942697693226488258785311975630343796879256622810778857804622379025298381284321468514731535415694276009466109786746151701816744856033206697327753315229430936891348244114405955235973099501439611438149198246867708567940756656990840804384683453127602872845803094101622386628534922815229848158364674998871244008521620178885685610562765640699335774525703046262128993417551270936174775137127752563344324003007268630248853544299120201192516467830744643908721068441120647027250973895830332414452305519766009233905917894447487522109887230379413590843104485845053587803867475271974200544144370452608267181777376581305486355226819361219719911982799381847460799004114186471780624050901427655848891422042740667384737761184103216327855538484135414958361642226434145886425122220796169322708382521851960054357298462590656365883016327664644405873632002478421580163205728805086896979135869130115722863239769284672197370605320794134543772557640799255609662618450037589477736792224399501637062199334603738732366861312453517321772059634980282926560878048680550021719837581885244227321799317263284987741956912924471302584841528410913689296853641718889401583553658039183398890047788283178264659659583806718174604637757960236060105387968031706903495477112768313824187702099905820874726168092880014372197395781525387354086720660734420883573687730169216372199080024241988813969486796364677222783012905698298522257629989920607522880347367066824540514851666207517323074349479635738662740825294905362148885170225806021493828707808930392800181271087322307254551908325245197828567329739346603017232945015034497517360846240300745122259230819109136872974292992653036311418622145660851636799434588459417880435367330279199739659093141115822115163051714870501606443006485686388865696265727794515801430508077320417945232456260168535529307536111387688364215155225310432133408020920040955705923438984758515140385423179712591770757014832305877532797378395140317338471763603860123660911829381227097666328915056506672463743818091861851091829308275966551689856614214374462879938769468720046484269843908781007069296889442169368351073351417823675394899429001217274670075464590836387602896316434426252954784092201846801823735905243015530024710119679450669356889380365046169187584822748997694598915613359855297338736139612613583156552266703812470198307294437629999568655767634802792442361833246585233259871543519275882943400562557903788197622739421036750659397882906112394551074719123801709708115451320312184264223958027307370487385519442757322177930304551366949501549768731522845676944108343199048013670601664358660044261238606749437080532055220008671398290871265779807630139632210180872215391449441651834127417108232799225412659346503528671354422230550288729663037185780552688337860391802296711796516556485530830883537965276642942585426454555715511541935430784898100260773015541064342756242548833751366091974387973193442303380424936797075270422898281137116465186107841995998615237101543003901683827589395211288757200797989560721561899976068865832830243912361254953218222368924661329921583017984504175284737619986434770879085473044983803180552110936172469307031367889875763888710540269483862913701181043935782839584391329961053294064094114961499326183294543205914223508773371352972342478846077148407137909024635695634561949961215243497751468665116691899322051593591800975734159388006711703562581813394209746569485347678804737803680852681272695539582199428385043269402452132879609484580193089382421381609423888014617408979868863780979022813324207054743496759213981606755323723097747769482345405684251571189383014505615656743171771436227169851435272714132890903350438531858996868134749314836247319812023604863674874462648204672207114358777003165900100882576415560806525742397344094172521999465880955610558312933115977207807972452477821378761787379061720855334425335743112776588228830740116865098402750470288880734332147655177394681306367267920876487684436615578082506385648787627048989912207499238108710187753560040146130593633905016131046341953701765413589625684844601382926690305057020813401663653683242168388638133588522062483166648716671935956661306290610614590517319880713810469601192647604371026529321776888635775027255162006692509600661858900104400045748230048189865413359442407345970680742062700198422480038422724786850855480670495616168214552259796684721246568475524354126043393505443152753010144359555396126676749358896519205999278662673988085076667305086810657273604298953339371261071206849355737306682757002907919747814228948569710876731975367269546511978196541091874770274721881609380425914920339959451302529635314296939363783290551409065204923902832894549916701637958310478657169907510256767469405753458859938091043961700569980290987660721755770448811086030369048115520612078375796978091530307394388946091188463664575621926091493929215985608100969460288767883936729060819793993327735094001713932345256849693120563456131451493629157262579189301006483292252651380075595339349024257162061655274338268622518287853736519479548695326885277314482257226999041448739632487018905493613913644738529688671283259565942458811225152781032332269509519735234294471261016240814045975197253553579798581884611787635749080204723498019274243711272127320420714209618138676411261412912163304333110083603414937552809382701054040926704951283495451515056046952848132787043064092157915261154652388839067179327004384546912748342266114672935905435789476334208362993308010608018372591802776035607176693478520184539510380887671592104876559084390149513007296274116869239377155206875840723971851501201430329867610675988147184298360155114949962062313078703046932493204583180644786298844915678277723966531256888068886153029168654605965745510096026806458202711928986133153035622135562772435818293312306040106269791497936770502268943903483741448539792530393705088282416651470497864421254951037625187830782593843745766077892942686966809144340537052354602328521311500297935754401055113285339129768645764252198825595180428844643719540530943310363768890819330181225647191677327972855780579901452351610358743734505725886164389604724333826709863968435444903806968762152546580041139116415252471656965352238058804031396453331775677344981974453366109266518552329163445587084189968638923995506633463293639894945917861889047812962308701885936485645497886885965584073543669529006118026523025411341062179815453166165173712303189596613716569686814924554394392796799446281626534974828773260005821718167624781202454290004083582920647302198398059120125493096311332233543510400528612870973750066908408696247662465767364105652413326595944790606547341178702504745755849936397945641477128979678598540857050791534003512867693049759888649144507679734425235134565778708798521973101021427601372400061007110787885036870592906477588956773064300724071985904885082135164702657967428485588037126774459018436719747769911388813510412426042413510445014154182092047028510195251195457961182631746109050971950091172677211334065088883650394141588538715272222205305787670975483100630089636593543577775839035288535315488379658189038468370092817826997229192388801724912673630633416955519313848531901965358467382043516452627097130731199525636352260421651659668862022261323173728169783448135260292111235212950441410484624704291639093820802626448027992192408000688912842757820650412411902982633312654378517729589588874839663681971657920292772771428802292768346691236670300884083150303120200527623710999498042525731278358219417021346021806901107145302782748285434358341638662539063320164025779573599064276434411338620998085313733861692142578974803455911914100656088991537926619983952545439434713101755197237098278772639578465408901966173182818639746524350833699835864242170024015688817149209023696613377465302192397812956452511808724090255984821338877741271550631285088467655159122542902521580539705532449938887217252961101050519032254697521732130817816184766364369641021751985797773557373513638789364069997951157753989881614551140021256504528536017673199835337028688825366864264939648269811089125336329424412267203807540326505530882072132057167377687098272058048862174015860475078882942458733204625182878124914521558888879728859058911203271839695223896046348961894249962894140564461858095144283261365438201172349688625296481578622728533179060773452591591350393161768789946999691409421893663653245861756412266463742718510990113030904807101412699338140358822771408021245598137394115480439540201776402406879866371121649795968046376633367387630508303925894283086373934051668257969331203286213279445391606336420527906797442689703837579252116165930342994615623997043012657596731150007882479906574151214345935113899233872732526224069319505963250198027433743177764450975618902183100078305367693420700068554187653354353200172232738714032537815333784187867397852160476163847230708039893336334973998181826220569976321610062390226617109329172729803513629813699275739751333728740152089059927459739411077068192767061612916486652749979797014484111209943920435744228511968570831459968522988486487251230570763213541027358468887097095312768707350298956137591406443711841434309545238987435304820674703300291223462487457509361593068543996290353743900650388742378698180136070427729416995138282680540627695081511343403817931211468810307474615481000955621516333973836680505460636439308787897656206946805435395040677839301310591829450529156289455592985967080892801145419453625647426120608411088226043664755807984210872045869048410200323709905265871129568948362844238028428849535812045483315719418992685887013918642198579123064234361630961531089722984547826671645821266848906038515348719847074858642503824562234898398643491215932462973561657947851387212696102951607597112008188342272071950167712737017252378169544864674239631689303717781612387445977998581870468935343673571354412948456216714321537042927580842502889212736195180947647309561507237777353698273460323992147861573408564373607844603477414280065058786911844306162676758628465245116951640547319433814485417070693882119241603607861912144555974508070206896344635013563385947510101293586324885042278244753463231462121362319063163931505241254205774266619132120744534522444061168797265342298417771439776505298286212119704250187896794829259668807575392383389524248853526135578098993898413240955715233217125326707513272502472142893987072029546606409945209222652763574611413552552224344838850626448149982832918903862782726721034233290963789323452813119979260547163231076156505005627174090892014449033757311453368497954266804738896657902589995429148347167436479445641881256257244871951163131341671735675884558397945731033216464236687390668413809970942689869830539414762973521331251496929052652277286233283179744172545552532501288371089501161893821575293003119962936320844087275397134147181930633948860272866745826473854147279872378129357774933220647751467422245205585814080046675127124576347048937332211195515447852252559618588167672419302161434492295988526007670971925696956644943989775831941120013505657114109907498416500466527020557230919239551435105543500432932198669394319042977904327093373836576070160164048078543835835305622430416529911519628125731173507105123816955959528718318770411623706067490066881063138226323172581056067445520823773660728379462171164440694414341874011583033355114385653888303717748596797834185998673516920539775918945817360952533237044676985558446032929908270192886822042930686327312688884950796383397400568743098894154871264534280706119674767441692940790352523566772146952386853649603776726063522332780624250207560981331481212599752744217267036248775946815484266574223323877784043309686573286233887461594763283482294307892244766880879720574684677795131385411200404086825373168434885253670864214597918360343244362914958222530028167676536698438726288405200659880793632680814956827073552811407148314803099159351980484701427751900929344639683836009627443325601979399354097754430146263675462502187166345603725572691973228227540021338444053924331491996985125326248551144303919502527806375277695684808015861239801384228104723448682220736236663130082109700058914072537670131228012848399315757318590208093104150867857122292212286065489813208086086732806737073179811531872998163705351463513315162822536536142298499928845661039118169769753917188400781636583675949600230335727164398964128556800466659105182212975569261989531438266112828005609039865137793719742607543389134522553356550291660733723446807301938985559273001254721632429854786409757734997547628880848496270153462971659057372206822160359130575143331858896754823997494530891364362310294819599694268950112643657440380224142633112583739763107891164739115702851763440073310266915217940092825769367045138114875249152347044325529681612454202761155446172674888964607957873019225202880407702244920619553596729923614958322688997274701079938920642372071305500292496359863573999115794775861382957800375096410850056253852428606474359061637824769994953153993945426209044782744981223469500373808561165741043088436291849078021090526357356896611477001414701202776921367630279685343649453425521673667531115178421567826157000085986037863903569162755525716025736156957561425908547326362779782512989967209834848127637680554819093059972594562853136022176978953969872510000621933952018270253539158171330357247943304631391275734188764249108598376662777127561818096097701523078000178224331434446032262981632380514213662436322488912273718139216512672291904010149653838250811158238006718331200045438776114234445037072575699948996336545524246529795020681308869519012396250440583665471657883543292465856989970352244436873193035765363031160618489071059964111582454471710198040315382527552245945100289388932299769007631456041719720178351405254454469508311392424743443098653322970298812263733913316057298764969060197483659140448596298461602642360390858519684777283821111565826489755570929308421233655440649823614722647008376525549445189448759409454558411766024732823131223455893701289585932606301352824274386961284783775448440544909732389462124732322495292906152427439750473929495341525220561532969940542791442635053695039418546430555134253084826680980665957164899044982449811417563924706225376861043570016564360166076861311469048109274015808143910687717053276713684071198104406367748462513573759245657532254159130496720311913619652431763040738138942958391172099927942392574544079307200411729488107619118305578916845691725757025926048080924091968846557404806491597804779649730290951530223216472294336987877931657362589098861201964557260473770833783568216799441337992137587958907838490038877191599177490815078937405557748504532721408795996925329667844668912028570297191869882992432855793108852384737555254474058776424851122274592046730851383992257687759330498710693464982914908513968624382819946406589828715517382571429753992922485546076352641383015409259665334833033786362906373754741848191856231914706362355984693609899507691206644972395341815105970351565910704356980671496874446950698643788061342307081493313818375497645069513054744531729864474269834616139222842423053386333310919307999393432621230740921838238518870535598679812144136474248075406982988282836390664098347365354758071505142950327226938822671272758957192062707382788353289077687912570432171511687414447898959140104934669610543537886366241376566911093774431598872284824133491006309721566460703785206534430208270452692169807259723824411113140727276525563849442879104281551484144394931869366795070607845573840199524254874471458763326335923262156708882103661294828574945571554077342482601696025411444557805508375432971978917994368059206281110952136824203545961841025220445287834064602513364466706232033023955869290699075223687396382799900305675252878200092951670528692510746323884720519117772570707667515233244035406013784568320009254578048748350985131573601079332247783994945531610625712556599966031646768679623113791138320758900519031518420773510556709093817636091717400566680075692733056373548423667075331544706113053492738760209354310998394185095798261313051256206598490044894775525185496694531000556035675844434560721804277112034876938719264714005009689254232080394831662920259842468420198955110628418055530705608484491665335366302394728555110861159108429202566796023317968379214643857867015603652704434687047631336620364895424710927397226179939623142666894072670145920356815636540919007228431815855141891371198357749398504092637107563256720005059958170147787005602477094539245554515995814463583923173293545229322281986355342001969747204056078105451728272674058223618723685018608858575378772245812710570491788665538608560111188854194776252094429638120738770618142399344884249795051739778417057454461925099160033711847448824139721913286150580856120567996369056643852338205737083083769626074848286492243196898570158160410116963193664520423383151002163064612785996213572180221096369837189601031368874091440132050700325622541832737263289211140712802047220382909917720628216917822234711774289729664355168794557484276142833461001825899036122233726955225364288052004280931270987429583351393381118046982712232753364957408987462167158282730034768786467789279328031750385063942027661667753658806636869863581646923663715890149522135413149758429123846059535517585426846734815896553158108209248204157521413301449925847420117005812874881719381978764096014532556575454224955740763161601039741955307912197271658768530897435682454355445639027102720829177528610514349404374976539407549470420184970676038741653896850446445917563427297361042485329978740940190892934208040868348133641685439571832293073583786540268016229027324395817570378690419758269274090360153482676984838056581743852000775110058313244283295007090774407676129131224232286829663426972341926057130713961014671012713929858430780506189974261160924170688351635182297196735759208012861714694550419393609578684488392463715616602796890125288829986039919630998160456700937612192896610091683200669653854062911911248173634512768862079234623688948392227063513124655734295064074996526468656698401340135774621466493899935700666796913566057994810198191703837441270508466368238059803547811706917934490814074359133033911442744296584799016363188499001915167262208460034807306676377253076216743763653224543777862808886676179411959684331113028730153109882620883643490515669170865031318851318822434696962479094536153515558859200447749479035264605513432506386046085768560980831504175961435286655315774515882170368275576622606255889708822170917266845653503522845748944172121649643450364504806027279099651669508782036367904843125518190670093410899739736051952401807122831546212610550678437191101872652854934253117703625192404035197881762806795571501213547833208531015231356216214057855922033393955721485354840235337028962662718933369675143597862769584328493484314020893059435492942305192750376168305889034224228711559733052445296076556862102770590478005154188944299424570557613201256498449753266006210701182565614605344448421933104531923207217267683313185955502536474081563764491772783285659336557504410113957468637719094705896693097956296417228793121044700424183860810017221298678015570611099318013409711625065631666729083332096087922236262592465090037245094701406527236009857578280382452565294247098758019478076088073441236456116047406101545796807403580598470563524868846023310280038189315564609849217220859732587355111248270465591673879822799959662469465051424721876906104168620672615174446721279977480562797353734468696901464736927652496040141938960354968083751528028495578974238828691787985896261607007562518845742403462636131019157953568349774877554451947440295500333487171666450243000859027413148909438772255633948145105653755472824522957048346392193836326199649048450924683095834250730404101626046791945366234972475209036882581754449231082689811354133715621657003298090347643017571522146922553814593156172093432925691792871425051979110875610149184018679602822670398720061447444738259908731482437222076914301641547371558619052120883872529564702734542893515535946459394252444282837906813032038053659870170985446116340721137337546213445116218513597119112091471424853207885631524439805130741588819850808502845376305137510841699980885051126507907094200798619651581625603087702600123612686380086582958754010002765977475474910774563508361439790884319821917790747128206163904527478554132788481220056588735197887624438804517412575943702499631280241278206826819342458930542850617367786484390702710510555340085718990082830638219113188805845313545842316480648061026373741659025242487082769273596340440602964951686429606466763560976057020504497373531796336696895689429324339190579246974074669255724828596239560460061413456455632694608185540453432480246895193677075270549133036626625334648175602320173106444449587335995783520985703370480526715511055620533583618195359580580169406812569227569281877343270370483865463034399475480249778294928835673849385195971941487328278342802294703940425859258556736273372480099100162123442721719117481517712944999383308264543866128230766200514206712257898090869846708713269418501850328518069325184198730737658081545830944251073385881343070615542720276794714121496174049438722790089819205626815545321420747521199993249928519945359186094959514356001568993900312448808994265350814937891897253125025509063355229741186569216132267939927360860240152763341757834964303160381907040576301318843721387359759987775884607982331239077542467608428382360654521345067566854829838651021715168082044119084567968739982660193900353029656034871112791950755484245561842206220385038518627743133905873238393683120740976308406208790603813373193442006128694155561772803971328265716509449289627645913531899675543282813716861266483251816546877708581797437470495052220010593012619249599621746519469844174281822499909913603812544994944746958414857331887917631427685084495037055081559898729180224845706741751011030276549814684478578354466243186343786468233592935938602414774578062480754167227373055115564942295324598587349353643043180588759483356546424902681354763646188418070473160440347855862544970446997528407323135863857444519193145755273150416474526361865120651802191986679110262229084507225385162278541941910069885783942383142841341558618555452850948075710348491276986370680564900415661415652108496942933125997305447913932918765720140333720744037910812558303945561506902217563939319152159685640564883987417132681315542882021244683771053487097393150581560098635004041168205040773922153629018052617131630668323471335249136041648998612202911068922337229940658619450383427631456630538231867590964691343517163164496327791285888520556540865936763751654668330565974192871587321533489383770739215956935619441184414690001915195408262508902469100468866651105803488568893716230250057319572696927066003899093038750326796099435032903509899575152095190654889015471604769706197673846968282795485882316439629327838591835857731817441135861119774338895076903542393198464086068909474820545350439896482511270283412507369180199786348595735337961410397216369637725702965999778264180348535489089534123955867679045212264856140036708778386565475350926438392344871336439382322407727695938620944546859458012967168076525610593657034394244905048918286634001731215182324533648595750977889319298325525728746749118858074509377237457261750141682335827327152492683763905784375174298647596393211481211635055054888806692617288759761357481443372541931863421391999351307894759361252759034345627194341533946949883271916870590095425767720822151051757447326592669480712369675976822175773359652741050923608911466683739546842866394719878277832050222332094488353572011067193210070358430211907363514376078126726812891983509007173566343152588079396069884633072168808870602067818771460355433046157709866100172285135742342362517091980658319051745256614594356862319784441779995711809528847890069883080388829675715026858146737930678612468072864511023990418154967015067227540555637673883040570480348013447529293688691870529104981036914559804489718452628271643083255984072471660582776796595103586942292740591702574206061299592941125507890860193258769149156546528004722111836530150953159072043544209400144483244320988530640074071743612885009438119846224682673865599241253737451298804895495509535393419481354161577935385075753571154753091336928962677526353382236989912468981265997575762004258820356868421060757144593888232053785185555550755178381558850684942140253194352203901662533433543946919960770503748006105032705635218930926395066334407708980097711000081512453872561508967770190312442542058867129701979896977392420662065891200357717818916389667947194075513160355982933268654775791375977904472109412043278167452622905176342472335705920879247927195745867527398258469578278537060056404137961407833412917756050053684122856650884924290450679026936976975200388975599777008742311088996033184610121555591295456659532662441168613474515002275682837569092733764364862441684314299972521954306999993724339416125229473670131780922918860430090268356827077631669202208996543161606295745787952861052081621121079407701071472540944844508993415040086693658859180440666230311077676886039583706838775678874266032258085958875507826805404223802389852575028360752088258928787680120981858209228478375494740921940103972886215143559584742752057729155527988265637424628052143624400847540599643049614852994926706083976895074476158203806054601741604531379520672562996884066337170893313186212624859558354666010069466673728563342606867203735871786422435584945159121808257141427963549135781551489220026410450584166930291007863277592424580920048033070231244178637631607769140907344896567992826331963231042929000435159513463674066929403104288999717692246722511910843265015294015034277094977390715693657955293195802064840543462829975166608083598582049803751656107292860924997845874872938806182776693271228712050810995405634689766334821145535319795201444212910022689558848304373220069519424526481806731418352620984057642171491191559613069473620203156579522012477883120105463372293442601126243470275398749898387255137455722533741293669741075776296053192938528975209348868295931829864768558334706782397527008148405633473851753128590817044332153133469937330582329673172467745959918972693866182916175937143491484415969178392497177926534581327782946307102744614879221317697817246740919164853793111995458816264657396865760914043272978655106103628262045988763756711054144308710661994560863629247079684246238174808112336997137817951991461559150347565333992949565499131248587518996271935727842527802429122214994206301882866827098789600610080999946346295860277803406426704442569378079089751565940175824261607714869127286117383476223129292311848898423634888280650820138124339946842908692468235310435768780893223901623497943132259663205215401589880122683930452266188032265756577879887175435865660361279943479679839413073768336250973308383523015944775787489968598967365272016240271345706052459581326716688481205782481358875873855101211649957109935554754520923757525412301741504259562466376135962057765576192690017638894975702445638113432362066124651280807310446066563204246109294075286611126395766689258872834053860941966155324896751225293900924369272100947934265589887227437514496051021710450858954755695732316113547140584161848035742570836090659729410547695070638320601965499167280065159100089242833203092881004730180365219766740951419814560071022209543499353863294657105236137065517850082129036120622067704072587880536792701706037233363261746228337867837292320045672297122151094705870098475700903407397991722692876642292530098751887939480425411990934219164018194835282832186590549357995853973300326992302087811764160509351503132942240469758167074684988968575460626035910771296233060920971650009218445430053707623745825975109340696964439085942660623328359616095432587992622047495098111425624373771955394899482661326947532893830122383467515200176951235289249348169896698716058423772763274292148967743691452001250279833605995891159971439328159060899684343758887272150154250323231268077578311848552834718824561698488559125969509210651983427012450575770665516210999299527400646829544677394047952863994469216446517387523726719209194154177407930610688440663300175699060600588354895086220483262563056020146103526160977980102504132862363107461407157542955642839590174222676326014598166709023668767888340955447189388897162141915265288619494895634033839050353716852721307260883350753627265235183604106648883519863169072735526071685352643428810950097256580244244004564173354040795567534371989025505090779209318088558232568543057038770240893951275182052194266791401907559712828720412600698911748080976193989700304027627182471574828922559358085155812074484031895028883612327957447533472423293822176702922609249560169178165010025359808016057700769387924794712447472858711265102286672828039059444970262012727002592130375591033636949887279316123792133059142832289737300727182027268740354915938823897868962390642477333503460598359728199717008923929295973957243152184936999248361757988634037109505045595332439404697038320918689967860402681730003239899237624127871018500153669756602891140559388758311049547039851394657685606850193578827966063407496074818770741817946391498085233118127878907449887512775891411230922538427981363465887301546294464236602786685844523148585243095941695045677509572615713762285455230811801020285235246956679570421079689729219187339880027376842877774193215450399985278054591120993565259442417837197551206354884289517067247222042448695802628249252374818884091126660077607883415651083980982431590151076137532797094550369971378707273150775467748457777899408302245801131547827505240594000578385557297181117634828621828823379483220174363008308963335447297929619283204760896567243578760469028489129154219052549078641865026349251300900312836241828546749177338217585746976079636926305252161158832740507662217527498864635237419020133258175784733937073124656105600517137708054484243607962115002048186530674784331376327840706519677128737229650448457392020026375594764046225560465041049835387531332553847932054934659060437749265773824430182553272642280319656094467228246976466515415722421468281028513664645910155922610164688299980596500618606298735662466767104876140641953271628867761880348875173879050416136677647024109688286529422241618165640724556560811433922486013374262547794506996223976445102056591002331567745250734346887626243158278647789693920399734233052159262004458774859179138288824731647598043048815853307708085400450874189525230253697912513589347753986453378935560119781515621655534196590054707094910121617768391409684514452690393118105271640756185498666679038269678921815937993894799045480315750988072122781738538708244768555682397621003789802461547600696120871858333504435665831028130925397306337038570574124154818763001673708534184621172496996638213192902053634502693222994006545546812131783751800685471103012270789274439639303090063285422018467561094281174821084161585889349402830516165632288825313444538213223220600840008179552469891719626420500947150325820094465479435088476037748041117669238216489197782200426774919647726596308651484863885836590793948384495588266721645007742714883247620153817832160725907881816386139849485932819919992275763842887352079885231687193971505597888368256426532082932084440407256884171312800359070952745125655229300868705245301373637075598131445375211000404343499017390941423973823190041267907407732351853071050869816413190344168306035809405172476578160837985581630360995454426110918049745488622160266612345319741962116798707581610941714640960607959748703979127518773599089104258353090401994915985705698763662274830017449523110415168006311285057609286278902287310442910951361921213695080234563676599409197803676868168057525717077384243548397930250035051700430971459995359154146224993771400997507813146269434476978433175991982762307244071317324290356644198039136748128603581957870716746277569899542362012090107624226110316747880958830532974153074211461787056951125930551678564349795168776019448364815918924233249286727980997354207134274463125697462193628486092534966283881283379541287078127332039645884773923511741323895730060499807597960364059018413318222906866877975057548061175724066006681961385623187443428666041604075844077681976433991829222944023769615378535557260417567206311208610134169608603989486653009934161014182035664118379932272288094752831361280662428292446824753417595792399317439281783282196318722344062172954503097016045009297567506777516331768857497884228931759718409337517760552871070704215103572718532390565502365530074724470228902203398507006145550879955542361784077511229103942677794323261498046977810387973878738285788782097680875644881588979532343257842216608763580590335355090116307169740146792535194088018711690169322060917151910063024253798324572980898446249781753978380878310877322251261209366622714859283431401842998820140666933510978769627967626004593242550033323028279133358337329004578169444094801890037040982001078357551640074581726086851047011095993698394401152458046969698938152692572356733322557902299349715777876716732572125881247043113412479150642166997821740775460810192843643927443367487019170881708937739574834650138600735568272685039162987093677734639236038241618887378174281589088482021057090898904601339104185091118547972087439196091968983361953112893298941040397804992397781212949094928808944732996046556659042233664497893713091803962471928086057192860958236776579242653386394246710408279521604770510678311177166986059125390159733605058851853677855098530665329729674680037620992908842951423939387695359190561520372351722397858359181682782761708011990386411128257287878927750592547803900730910185836017825042495564082954758729409835377595067135347309032143001222478022911974477061332243212583739618946355596177267180816181449728185577817131575769127563325994002561752590225560657109178691731736324089162232963294560618575919988229185420624990990403928294272744609987810275470835920340013508250390481291056361100063157954529292654664539341965773125160933155313865483962258889475840248811538338549625369817645773517350807097775545628877252953995115685829101256525767698831402187024417332797542105227935381478324694415270772338770005442418230746394613207297036792209326333294572919462716255797743456631791850157741084938537890408917917607782711357853314443273500256268605361836562705156978311499554741861545388831303674742198990206680887105963717462765719879783971630572975291545217290036522361670790068941886472405608570981406914750237975735530144789332906541295828221990813746201335626581733365336281430200149080570470565727891963261747494167048047807865867159485870662626896266413872438661879649350063854918584293375965285732990508696952296181762672899340140240426938378426200358460716721165516807935318720402855220321955087870340318587086377935412465680252251449289250565780450473623197961123993104671981643062294261899141420034688245977581675292343163247856706901383399571766090703577124254353921367419013153620451552591161138044593897810266899655242685801425517772704978588577180163576441521759499881492041194905468994881980046914384134338867372779689057717008540369997357719133689691301354392776691096640218066667241877573956747534037633832586217070572578008471755119743455094736403335212915622474983209888001596786593731730893297762124350464164867422319860057273806653126806101024211829362724452407512139971860936491387138381811208570457485658213871290526452715666882312593014204163511324688189418391603056365571176001949201536673759636010448072067653976975703028600268127861256224754834651305250913938588707040250658710603367196825595280478450241077990668813964739612304291626011352125926855080123251248960437447569433502255486814709789290642805839823077433926772801393235325350976928920121720730593560591308223364647694072103722968187142079562992371524496831480345800444565151267169175126303171265320752775887196669875674774577309823163451025023526429993746575815482142843906772854587302197295506352785967522408356517514896710170196522856366249847457972502983061646822541678338955425537010217682697373321724239595464132103452596135774806121865019305712584955493812624300273577783659801604449073203796894998934310164123273540217568763322438362611904334084083695531751793054248183858860153087432428894060976540102664242201995000629833325358162865885603284291375817246372971536735517545868411991894846111758293704994167086792347329701471278574724721215345200723845413438303829401601349872044810270524319380833974707636205289638184845045376950169666406447202659523419260804524941113679874388755179087290211532358038151859329491098579957107083684473464121550964457242301674748080443535206728966628604614651327918526607791422391759850755619564564631303634479997501982726897019469907509249086281358349571700640579701678437753080662500178202977960535820091258280073841863898031375222304146043288884798188000926973991708980266132500561657785652536924199700830446511433588927839684334569573770122651628548382444332729873787492469840820308944263504597191518592877729917160860929296599892895897458429636928632918403490116399939664513156369866830933895430911488417751366738978948964426089195326367394680437097844360862869389470627516615160126751477144145854661986821512892243687475557902687427127657778712182883694556266384752931205310619971748806776974637328070867417117616777933454366813607759607232212883115040553222614824406076898189256895882851684251702612733126069687687624184228162148044780322722610113295567907028154961466864244113998576282252427234005271493489132048079627335068072103665999363396651000869005622419763676958483266717780046390608584617594286270267550767234651486430019598162921013182641348679775171602435387188027930700883739508951215904206052853416130673546961541261946707029774910065303824749790570574023066066245269448150943986734260044538684289328647969214751202607425077952344423086580083917052274202932375355843751313507736091735850517527273714268166056857482035909375899983121009085742591369806095069314757860297591725197707654595300913678711161188350182515594294641450273660686842718394358693553201006432136568539218632158956659469166447073290275484531733643057740583173035776032616852603086000164472528487739478798781103132676973048998849952706570525765293344167495942996786079101491559288406322351975874047031576007965233533704021500243693387064308611502265531443596960103063000155332514875878493868237971972251653291680301842176152345605798982614622008573618639367157842445286660463556793105085420932031830482076863314268072390214370040221459296158614509234452494622845815399400591101061603391280254309106668895154943416781891330504955857573317748854379772696888980345257318933104580697640792593294921205182772732583327614052071543515403954305821473647186559489878302263222126965541965277437365069572994543710191085070351508602657953942976972150079823748291855017587034062299208079207109651348229806776950246489027534708733157822095455599712636399724706761228287531291223104843193821770666972010701730604029333285859022659318082234206905738933883001241872028807772192426861857021774522059959340424145294723481241592664669983966563383544711595825371153499119177174050183484590600493937133489540373652377287375978471206878928611899801686225897590143483694096874617258908810676270412091324503809841876950503821589095600420190840567773627616366298476178640711316427799121859357968393873762072899805954551586806937703767396428768342926619567524804723338820939957969278743579886589538906552057077929924797449621774863279448318616762387571494386856923483613208076790668134683292933741690158920415180065795106005772141678370832730309604243093351739756840482922791627351555437300947075906232784358862703746616111739006641492060615653081398970849114535340005900098729280704146122608242730509112408441871895036625413477033551762109440955290253209202902189432415810383958553186814740176667983931222083041314379091974121564740086975533510288551353595418939041717241454755728077363556283024867921336896617839294802277299079373192352039120853891212460726284562277852713464913871439515381307088114665441581716132640195920756619131096121260297204133389214767098509075340023907112804109545177760945820265216068143012533173784033649211345869487922419137386201621494162860241686222697686438598880209094377336050395765736680939714918214899034720791152899913962836741318547837278751118195560645885002214233304515985614528083200013944780359127771345428810292204439196145670333076192248911797860380546970291838893421570185425089665224827445943050290769031902080008473203444650634026381763036221369028879420226604944788897505409085489544182538711060422906748335782853266259166270510593552436348366228488449714901658955297566637849254145279240999784120572881665683169108204545292118188561803327580216440069322456981569155253038478835397931126084290723502861756101761506416855963734909522543956376555872632125111776883768523179051978978474946555353780426624097535501759671611476185945659335417289852661803100962978122163829922003984240488208345504694334678104386821656551152728147162101873917270749419629145555720766516667750043083124274486756220546920724273271395241141632656221578890918465104595112055903536435437080643950080418628663937632782793875163809845655275298914552808291187148233532215342155683094322215618641307447113085576702565825655146000919325598765872377979148533593511474463808504986612652708839901952307771846113405715114149622659612583934132935241041562497234100469419367576469466822221372362233304542066526620649606691444576275763614321921046849533495039778020026313776602679846698471375033881252719367505081083506958108361801524740492354774045018622679616554938595173342032834302863915123070587829598956259079951861155353831385894801098854617540120034275498225076493008510181782215987886085221863791795037515429796862246724168031941230840110700433716467007005942777502306690610049892973283190494044153103071397399716731941055821279672696190428017043610553624056338749111529796846472727946220553108040913635702463700008421099620028286600073455657984103524636653853052564781842806791116173486434319803100839613472731339877467159764767744911406934947337628865385210798783099838601969153346369473575335415215292986566250085157393278426425350679717590497463511888241145822956661521081805573967403581181378578520976585582856894139210685178221276928010932124178775765371420973660965770654683563116810207883077833027488280466125809915655048325501481917059557830437366987137156189449940886477150982255405479188603159050840955829863266268654563362245082050184693684694726543816564859977751528999655706961002132445815061151281517334056875839388205619278050225681720051656876854002949984239140023500081524779457105615367979777484870297040018802016162442882751977483100826985198346556670251367103302888819084025403507637273056179162429731323746616612989273965292877766880020339577246081553066381374920110697878674178356157477380121679590841440535122383546084289775739115924695306893075167769430858978984312634519577028834238385064635661547136898103134687924778313900938062032969051273649518908236056955248765901757046593413529591835466201001983559637145075188677018874529418040745902455088874440834333457066091789998844170704465291115444120425390508025931490149225641069565727245654488807663394177342490506826108459696537502140793345193785484171293742916309155144931049793060821885536248003715470822830332408469274359691636457767368232316317977311729810848871512452543385893955108746835570367957630669603332997503830193930098273199097695110172667468101608871603929607363081181362495109652027297705628435080689185663770479019570661861150752457734995116541339584306076035639142501805624508464669448067641742967776952628644497545547060119646285326030933075512535542944413979430290479793698379581278149876630145666157397248493564465595126195240226472146668066087237572330024594568331207786664575089029493222167231375704566135733411860146520145666891921086342821279482955995983750270964478138874117268205678453539709565871405865985160884450125212879395560126232463417931371754514764016552548445445526342460723067287782656035963418464900405278249533427857352071510009991033517993130789598025689984572783318260339831581753573031752452272795908973848875167125053785333279489502513238940360541918070733125653538739372670584261392062415258530970607946211809949157362859662285437824712871274116188418209931724114261913777359284371644459094908466565405019760402980156058272763205951006326682213013070059732824434594473993396195499952819675442370996549354553838284101535035443488414437645875210473518075227630301631459446681901763520837403103673977152108809169428879437698199125864285255356419860661436353198647081447819278143429348366217368112076613759473797747016538262955508434163495212727905553210208997455930804973217165391355686943630490441791393327615239603223926611232759198950827746687430197528878132991467264161419449527822169089736213799025328940368424660685443853304774231017647552413332513853354692430693524398358449163535443099693430083955785686997591099692549934634793678742407035987503539093705460638230308540002321120162880028013770567917305615672525304840034419257328640661305031494667611245864898327358927755418098599426321712083817896153736172297085483893336562931205804710920257516347880692033285059648033902829377116489331790507267637595765709174773757584586106484284154991065623580856652640050427352613324849695203211983333916511962000170176827004021993056887240708441193206682183020326077636320275911441449250279527247747714662288011811555596542143177221108236287354703889308284072027515291264157992296307099285005383361585354038975772802187957591674393662744908972543235567249891324326727617520944448752154269414108067944104953917493772287229576191711516359503828800828211212104979585320794306937786068980993336457574488140267421818609073923426066287217844209086670216700002690072635174014351359994150856653512912858500733102776386449854400149743514249494662360981494033296590525774304825835321144218553156072294182920383774663110544392644563449573106546051758553811871485918290035174063496884898800920514474936187650456211412622710613255755587959747185346367301212701830726311239404915309276199426886343230685035586977501975712989931354764523235549389155612664405510831060342367263902006938791811021054569068658448632749106937567247624333078139601298035132549703761183807010901156044483010400506251551943977690659513304293633839512658792228220868746368459212817660222800146614450125895204806690918208450154482910240349484229504409009710483235203067857011223030248215011682993290420098889743345790172965626972708249044420138622639141364579930787822684107656069224567804425706434982260960671008023269295602627469335516397295042804238964723617515640582380891229863974744729644666135551021234876018687399455302167656716634476172747087503056392060385316687024162100059633072710531524097892664699024446497240362115654040713444588414367137869526578511226106200301034580080952018896821517864071543338442393805685224809211041251312789389883424192024412203088616349017262034105727580940939149420134595634988534735569905362275041388057178401598439416447764023914496628787988529944167611089740394683726857143180827809913477256357972173885767494841546383676558419516623471171504072813865267144843054548709946258922570548506235786124921511425815671235313771806405718659971171493408761487385570510076129936658266512661241197863899473047626617027108466400664388155880069905635144240389939633455250347825771214857157753634856715219268517290557917410369492266950983217543517958296607023987171900929831277360236433346922601690778203898154589016023071625966414283680660739695807078513921338427670996429215805140261633589705047971348776441069849515932093100849264934534985096112382911553961603296223385078718683120991685084121621832787091758290785953431572161759469005234550372718119774384435702280953875877157234099644369265806733803457443219085407156754398607755191807861078378038077234372555056958137579190649641977878099192314936883721487197875716610925460228250828510639924616621140697588643075722407358541683446418860725115203704113128311496739138944694876176559623277646252849677381589853800027185081177924500028599817420597902598488827719157143191685674957539162279954591376422973097223633934482591991007571774246623137501288250379588040695939457332518514583005739588122665708954484749012737602282726207186210144884091757829896262567637253345590438171498612625682170867975800608308708817216456796697838572238278090336943539537101263044230408554006381336270091288808873617466973241879431983049532359091210605577266293694766976445991805831418290563022218501751973512700115481749403279823193641922857217675363314368767530612266836599320429292171072362269569411889733492738241452938626872424994064020591213385906302156309674875944502589855323330352154826595461782048606049869138189033862234108070817050064256099433636742820009689359781364163770400679941904701225727448161726177188254616696873470321470308926508148525213765560015655254995106979215679481120085322950523990175976760398993038203208046091438192527603169529405429649489202358213891402927694838395376046765681947824944156523937347583059314915302599067846487043968226837064194565136139208471445666516373057070433538108651703615731836556643928848802823555786250603850253672994458109458128860144799054592548246381932019197955766075666241096481854829820884178810759948440264561218586300854265637140822883728583589679800433125658538389506691448880625044622946622723285246458005170437773012504899563957432931419558220322272866835192046702803822661799153380433147395505618461020927955228432806482558298182999807262052263163739445825148387225710699527090840550534306562726864952869777226750459170876066711722721308262231924951920893534753883679590918423870246551697748328177919846163067571176856911361278377132798460472506118176826328189212754879351293607153048566540273502731039108334264525723903645527700348880972301126862309103961118935582014272157819349100539027835164392357122913878189218909017475507154372893895093981359587664305813212180710279120357026218936696258647535164633276516896823684664034823046144180260459478223930706887480397647898450946859758832379095043291748351338669770862512758304099475036716305095689604366747331196097541117302296738694402592349402009947477489240513402739690457771327444890300239939439859385741276448886520255277160510876428039153149326720013947056699703138798669915476492996601877249018194265312055664498141275540748367627454511704208528599621406327260142820019411292484566562832442422887129241397238261065339961723809325146894987331435806705471004362535642941543202098629780135587574533347284363089083183063242844288701374490854117652801696347351274816720126798639040040228515490206735544577437328616395730243866967394688794720065381732876219979960221775675185728924549457202469246102220290385556891351900628340957189419943661257774325779340530874293967411773507088814774096772444931573062252688426782882004997673849642960114435335986352214166054846995588642297718242230613132900483157751664881682721567317230783381272351346490408888372155253139676232597553550094178057230188843447907511948297410056614437099678292388465352845562555962774153950763518223152563240306009370177594598007954260881105624606519937128688057105736798221260069902621177982163155917990606249051558584383890604770527842065928174177229450607247462398750981077788288793404814417866234664240618460317270257356857216152517610862460151771849611171128565218650063471091909639272956195373880418344508406713312681916597750894280334574083552432240166622260316762824212538028536425499145215063052140839147508437505771494272846508251176945246732794774455318812072880920246113029458721890359741375867704061792716852273296315809594858869752379135200025089344070208008451532237969148222090650922310305987230045171894327428946657483528841922915588038414342820437042728450719860085133857256783473696152384263383631199116472053505286287337084866648732519877819184127570767829587278017236759430869466384690129751755580642773423803456330127447348701765968132421423394474609947427759175715369001094388291955407410610557142819438973086300102724177502255026784857450011056860562905456473665154985132598695879129770237773535277524368872959415254313757259679703037838422847305592917392927909614549726223729819942353605795112257513846799297457923573725473401079421577034175905250492134154066878852056575026505706589341003106042021504716961828679938333204969090504706716110942696405841460901894054132853481922224503254410640714296276847335040643874216366558209056437806768711680806787006023215007938422696281523035892636636188874703024144695185526141715360717557962043935857019093539434287007686076196042167307039014034821669992305306485780377617765114890883563898218183354048428657973044579928766308910798907472992329342991429136248247520569499593264859726741254866304322978413997718934214342003514841778388683475128653323993586712641285316911573794265567163693994034282898071489139077314013944381524641176523059763552320255166912291534466917337286263759557622779128698823824707671500861371507800421657432284878848468645827956790517648989175666939034210535754871315277491169997110343580243928787615851443440370370956288816943836517501904972266120550352709448966778831682390560816526654119302904686252709806829350124351288848161922120550740806797094136510197972023389912369785857782365297108945226737443429025845090562946713793944918392944012985004427058713172887335572795515428945196266791069539161001479307099394357782027687392713199877661426171311850339992763667685671037005304158899434438988568979628014689567446321483366833339960220559733335439565926674523797927151118318831121194677263670170446068658646642925885507281037304163044645446792835415136566266243042120033420499314756827383816212998823059802087695270455587498881549421925667171946268351820674674776475784241054297804625175546645245209782055133021526639214077305396980536588517978770828682558957610379637226264319193367043547273214427321323199125737039284490548975025509610217244831869253663390445003673548112587559373628477036536023096553765244433265572701798996033747955817624167687207769522093928550829229429238964214865361897437138491850215867633589467516115426816963226408546184616218266343354079185724950085932447720648073230336061307276099077796264734426439386152141527067796145012695577866610567387870264074261859600430257763437768592142054327752122190784047452608928721440442474974907921554570114163476562478353255285193269163175917126631407040286066993154528457473325330871688759947587208377067618555712870028796621593577173350105590960934582058150318921447053555550292681716411010453441585270922661349440322532059625087240181423631301088224516016610497156106140206830280600154051582627246552194963025976115473206790180849820651058312329481434830763317297007833999218826785189807341331659512875654457377590291530004817139027838780056765872907362017359340862707510840684200388590236019740251416366023455705539828695325758796336276510069754587761705857729718688727633534379922641185787140409296816795858160110495600209376092660788865205629304464919004421312197543710771315771095510865847095922483635674185722719390254993099512506351128962089281686633853696680816599368805841199040788546489640351322212559280466963637709903095299741612987291980889000264987481398329024774402020842719685711665989651674041808050218777903516017063483467947327074746298661298934668020183846671334542780431780532731055670327158069527013511771173053053971569678742956645972494269066802312954340004807658267967037799232310053790081942712386424136810251455335718777438478437376169992387338470744865698980575089666316989501505430474164021418039205284095231187818795155558171109766374270145465082857992421094955558229614772561754571923975370549574269688350906549494380500226508975518325664399038069265772844156392606461560197642210740938721016630522726961296181846400571743715730641312411599397832685470778085823119800623226710800829136379946753638733638058683017263577960040935787065440750817060618640637540489076765700911450994713536397144374971081575499071711239035287061233647675443470027661115647854052814346293795396155166669806056545511605392436426773349160371547330123848513431222087403444055936605335561034199201029567844075784874746630732911049334271674106716927733989579245444518826695723715498513534337926954655436220420374262795891410962920748473306285177197631911525847922385848594246676333105871675112690732797403195133070272528403397082450272988558991533711122534586439303491239233470988741385302769574837852001745827124885893821544790247609433454568254780257675223020383885345532144341066414517614033751360249540304935781466352881089642464602376088616148630738667783000406304616282450510031875907545968615557864408506611504804670734283166218378794648047504651972190554565346044372644041098078224579085683969095989969539184081150225090542032936339426323214354948246555944169695449315474039579557120614668609226324169752290875768453626799799198227670431488857010257909588361692370401048495427032673278183949373249802388874520163489001653669391050962340645630690806116417376230800607537143289662455366034904083090058480004533154970919400377929486390679037691546235543364690346506093498434032845143290131011322502292702449725850901290241165738475287171789073657043771647643736572518168328146781094565150139611969052115566752983535855151919029692139891034512490544343537905840505507291063972482164654186627874784873251653457226057376219066755982009603787268289035378977649692936903746061849105547587825287885444540029741047576186747720268202549578429361977826307150058435697443949043271703129377604190934954561370841556068722411759946011590766205331872372046549949834703938951260266299917370395938214719016628970253913206627837535119737535912631450810922386335086350483702972746733547572556784444349034706059416004004530125276429600147346083530518808759588957616555447475349006519420304012962762812938489657594953051908702219819708225493874040107471365509884061915383693177048719864891343673693674994688191475125640786634244435597336225218489205968380508565562273693871049277430716828063668742405369045235252134992068587610495120730795761302662368241364929096789085600618305457454606884847808165470842335650628333548206961646294381857331115212268221804463960548869719506177539310081831556264305595516278039314638674898147256082751284996778870202147082612756102754576316964924952681787863335581074481363395887783314380379948808502855669968575167093947277815161054569837206596919934287360040820365017927964172381636138934746000943254413111380030617285823473577604493793646681424123132861009807526231111963047311638026758424356772832589423892334641837636437774875414443498222934413399056189964531229702489200908912615455417806753146491090138883760475947340284417377072618349982976759164289714827720681514591374487738838960192818031830749812137322374571790172826650117879235168224073500180783114310543584923913843664659053722063503737681768775378804263722525701997283358366813377245051899278530749003768729938758386254038350166317997795151496822857569716250457827150402622666549561583459706768563793181425210448736142333420136457058804285340275405175123600350191102162643642152732082670948423943595253552392481575142206970246798373205489317011090221741980115807698081913301573657797036109767797210514113364658875735360106723391926182030056979012424281960446502813084597972802967065877536004688069962128268291697538637392307988483012847058209229416556956153464681867036577119576463527618954379956806466432574791543506951801398819332145771333702834889563140071626909928721260372076636448698669328569674874534199654662325659595870476159048779200662217403477211256034971224702594881083666497912359943897353801159797314125288918453057102059058658844522032922920724703472406207688830163093531311271801703944791651422196460592671235245482585307677836275424817374828017526069339376566862856128405811076155037686375427114757966590536452322617629131443360697441388904419100098921625385367904305497737855964043100907730430553056264142652365645382675093412592732634247052866486205237097773402988121933275655496580835286562154877568908835211213783620862536659312793633459893593432429872098735591482542407023774616722760438059175675412157010568451461302769568011419942657945045094299646559106770654219903716670967137434341713477274677797664810000733589928843286709660414232510681467483642504561425963532677233896808210190238032147690026916502055687105296869621834727489289757087106098948331649853876973680122315470017376795013583519301433728274920889219431131714041803063353208084903953112665798340156884153269271409342857826995703193727329802167664616313670539371900582129055660113771491985533861251004106772936521411780047935301015297243819963746547340264977668360977844723249397974381523554846693676046568542981364086299589957095191554457954976863646763643758731292241297339869515093584160781685583603655185539006037813421823446145752793461696555151619638578742212877411288723670837668210401443264486438545489550706325698851966156016414226881171075893497693406503891205927121726835047298163964600502071067818978703616911011261388792657907232450808353884520559129449753988317016025232570079381065846649629440770225269776562656498934727201582777275965528137958551137601860092374558582457150166594884899022443558974474550612420268671602380556398953073129945335898740816903127272210343133187681576416911736506912929640153474754313310013211778562301564654892536335736132791424707547675798432989713877306700543445273422941662437663550401096283548430574665801656075434512985375040688159639665373937372848486711781281397803879197081665793274058857158418829462925288841754397869654467391032918940974469984570749985084451429335838734372905054860321015455047552783740357214490921745342132001294131845588534975248564559999756883606382771786369555481583120056884773889907820157178923629796878981100184952089936825842956517423438617051880532002846955290613623693729954764462300437378869260523644727332946299389438983832788023345052982688328140352104293600328982869637685808120696621958256520866482292364081836599696938931578809285680574532219105816330330331176041873427956209232339090875366186245613296531068260285269784639123062645993863581567785754487903798311827235021265598797816788793981540896880701350512496805347589171872712993350501429581802830149750363048643750286523696814217783492363922376550063542015920160783860741876135847370030866524158006426760697813228013465245846353115992323112970418948934789144386429115877257256957465858890995405088874108431362601354641848689566642939785257709219637991713974194281345877523975406337669497372301592290658512810304650183136204806244157736124532754164085299927256631589506069279026365949292141419535671323340515602785215730683583369499540875504689508685898143202928775838856360976486114982421706524319561208038877674818691145064861211586209943199064944971414388043296083129214144925696378408362093199411098479132744439281381268883859465196846083509740332031322313080692640026298049395363114758341158156560189812361475653975887734087216914018587781757203654247288470506693312235388994910549010782415351804376413305078128278104772178677683457646532190801361376149173583454591167531806494720806078109283392456610580487250825499380551142456935866462468727232013677522866028641477772335808100851263704302390566717298776754413291856325774355494619054965800154720108892809783700895153139667295994942137004830946553977278335564885874265790072469612148889941968638588920534803495614314137933431726375307294051308518874845409836197386422103980033927724293471796430842586684915388835734189489021364241112764806019286657346430490218725247834822614295893065405598065383304338015110116129886451857281119367190774084158473490053802362352857918634099150454861855041298533754629097678946827357854441144404278793826618983109086246655489714790979625052799921999507999932673258369565366894814257000582285023440402154359272790179820252166276149756784740952021812778537587670847226513927787588890762539099132874022437183204514011952172611540162142873986511603136232201426324450539737766138696626125869199947080572653730889058118783644934327923872042308258670105328084144121135623877784451072406629879262249355210905638394321580834128140344278668741526120085496631841153794456121412743189619395734884444099258613347529865131128359436470376799707834821654839239793180733844929259457910318733511475989891539406798355789315634388620037066780676058794120908552098703811088186216665160106061251346683779455443621979426981474416599272149814416557111942673133712692827795924552035603613288805331928230835300900541622119874683893543967387877866127010186353327245497236014958986657931270021996508378146600382843967889624336380214831389393009662665595354450055358918576464220555983120344138101245943933922774574163488671860077703576896591126004877824528804249645233259766175433474807789024236549718600263256057577757464495374285701891846799273101218851030731989747956454856146625859809917317010951523172641490013676222103190149362677342186888150316591359611355472698304462268628011609347450708900005933927670098615056465059137436999144597643964855519623979179557989932257036160171946861512911600603230583601024356945920003442727549103572090842424040775331553437825551776035161072698204625431401660802151902091324696222039376532571486817046130354974657465850408358157432966946124863201677393706832467502419119691648339987818982240660170960611173065865298564371175110893114192060598916026451087794448154105365216454390360254880937291021751326614115968854029844354926214630161703350040122545849810551650185683330571548027357334429081512219780381912793549156910690927371030117750086558755040931327403951784420505277776784896717309538584414675726725511297637213770137310444684312281456491350187185248684339042519825226627413371264517185189078342842620363068824332358254110482471760097272460041390573511912230248308601034696803939132376531832377467688752733231991570827609419032407678243615139032882164524663781862525092048684036363607810899532952116186803829129104697695725256900605984274331231184743233542408552238015549531369109003971400013230252093666803337489270833600840646128974343924380745548904626785285351697843574382156241946077927106178267990561719855283816230386435091974802295441251665199046577342516180934357872765672708822754498747702425887998715052521250202522437484876152965437603885057828158424435427280461532028880165861003966004569733833722021553494312430226542047109586332768660176916219871091555247292994271639304170911171383262027660896048895027738818625678486668489005210495006462272352153278390594653565530149401430460145512046933365037805891474393800478941716290851140739218577213666041650177959249390507983866504822390100028956321486751655411939522165774352165834502163640430547058262170019262428381324726697150228981529787183545009914594050150302698043063807653566474286225022252068644906961294904838042045452331392247133001167917540992881913301864525836803288461983441786555736539124223221493269280929995226350342568662387172042585558972959711396624383925968787040410811145279179694968903846244722241865497846667170074379350062904575077170187188366765459279659886945369235468455605340798940609433319208139258910920441922004222374734818084527726347417153889918061928782802305566808579405626850110832176732976686611168862064769307875907704811137249773520228031697152176551444036654927090401450093708877662290065230787230295823557302191496816825254986532028390315903330778992109396128233684960376025005524425971218230974963134230229329058279521854018699804305026134768565638738207866267647867709732120314271148386679054215250730413389576412498940544997484920409284286824349680587878691921053032136372762220568539058286350363623045434448988141525179070240730933069672383388600326753814656250360858006280067914754458573441286582401400688666534076264559782528566882580454747432061852896946304115597702465471713333553436929195387150998769602343917158156042004574509722268308856400658299127973407717976053101606897028611186043299959319286003404436443033304449732130988654621136179762263183914580626768796633933918399366370902477957607335129540196463794244765208817629482042197093482098642123542015162632569318837662728503417050665705917384341435848104039218007566733026715657437305929990313634890322283505104175872956331488754197972651471231350961749236734796858073393576274406130700886953367639018870283039551360107343128116007211785776281281032813029745209728115470523762609269239039369613848645551717294437239207501858794202682750016509072611861201823261471008692232336943179944316119062521735368084586366377223192138861056683430827750942000788255101995810918939143539667602685450567259595021644927635884119422555147138053028684092893602445060345343047625622245298645943680128986675037086725513124069512179266569716192080519280381252457830368885647360376938283554826620827277468241811311462982942532038454507605742268720046940642919299293833294290332165572197414612431109007036536952364769593114227365995558439916327680945208331204064931479617291092721326784590223071242551019133551902570364726642764003780110541189330663529977748592202816569284736645610627611104141662283468122270016201218453101103336732825790711657441836234241215083261467547739089779112413228629191210187413714239457217433410819759329856150629589178471488598403574213563597776209647443471781276320708549524017408775069692071778509601106027291510684417355420899872074019918508820778778366866080508808158966994732081377696798225473371790568516748331193191549389928519928885480064046592000616267786512039681949474936721277041238450538462635852453637125331013407236094809957574548688635898000314912144538468185005742614145485813949679753518741189036277044904863157891165359150321755768793637719993860784883874955785972899971318791950004220813835988669910554347065523792183471038395223321616053762089762276239709679501211930894640444845772667779711328046437336477115830755959783043674132592763975363843447860169248462079378783844650702923726603161644612111160345009741472962582075554092378040842064658060537505837369131156092298155159339540206803724441411838612488944040092380433478227018263421306262748946731618455244677216170238688155670818202237910072290425262082897727596162282321363968074016369624423486571322862535170539663396055368926505585964109054251680343840012278743318128456208569880174539094278487074684827563553269034309903667550244470996650775325805574371318061197149886365437808811591705273141478983257087487071491153908424043967618242256570806623638314806975417827312741869925144139041567001587128481091801864924649680397186273858830878913584037194447213665699492552508452988849297809578167472308695109946609986968479892999239752549563399486105971160232301243521070116022783333751201045261194478842140419929246360044899407449083709532052140376822425533053105805387778929465491736760956125342509453293507214490895828686014364205042517680028830121400789857790524864237681818664967149015464041949721799885077022246562383988996125865331092892840285989886167964646928235513572231130550777294925301358846648705945049171954098368873890691886856993043417842734551120369247641236781860425313170973851408315396488456348669629199956955563790152323361455926696050890945041326911843543545768532589011726231457192877921634109648319032304011818788071267018147028033549242204830017921597535950056185711961308407053087535315071806304481918921957331066585923539519625067427512821606797522654956539991132075539177811969476056807307948098965992331615062099246205579744027340390918263416146770292353146888025668367063852603021110820512119918989684248872070971146246394134493557666741353431788616358338514480329965075228092989778445565375427546615109675775583438025591247398786111466013272911160651627460670279238812967228519147123534163364360774159121232383917378481383562278902890597964883444356280433492798037683608423125549368104424218253095079324176597528166862386889281489358441914058956390964235276406778002156933162090539122131223259574929951988564245170027605190626220212055013390321454990480834358238793380965544487587794499162389323042708360982753599162551587157872540596560317077883373201996768206100377097948962286601397846753371361565485910797476215543368670732580447568863192152970285417998903046770441158001152865827144937668293120303784343264750245010011461302529076405095974598501140410340855391877651684951388543304325463304971974915059322331786715836184026358481033819237364271894568335563697774578537675393691938383849079118356921716343927956075128872769466846168831419831993573783886455035005155600769868067581123649652699275993613058364774276922230692762491268588859756783138560122149525490012054142224452732679410768499637436223783288666203479044243222328293349252801562865688648493964475091460784999313011970455064422602016620869884173738880673501010290413012501220959017352807316722216169617361014385479972923509679374400655594903515720671335281732153337855203074034370403384151677063732829759847721279667872338273733555164891821435612830748463158377850484618802855001088071527803806575954745535704686002508140513720251089367813203159785832333857389339275943047387486543496665771889057847949079823239506196349810248822091636177597303905188680253553018796505245178798551761484387919269038788207427490285076928741572289452717960911437993295342676192781655953902199519512171659271821375513664972015967077612821558543902526627631016765244110931892125257536291741205887769898949265723751193660574014013302965824385245331542757127391769373706127777326631578784692754652049032691931351486883091275791245886542388017469572972645247657637747529987745167680286339037495170315152160816536223755973508927556118161470145970069461454982171744949420880091713461723403751522835438964085439305832021467357458377088723877194648977930724716213864272918560202786716465437463323397191205752115889622531262424219415515918861492875496269869684910946931427760578847946739016617003735531406902319658495805991617222657318167430187238833285021073010690000658372604690786792348352965301917676172793961550738353039237614900377533675433929278654570685849986972006941755325013370457170642684960829383409579156042847848434785372674908041842243939582730666780810400829657011663724160327690679722535165265493783327465321626984142166270362588795611221290370058911851538153259691420135486343226580547998996203056226521908878832893922487041355330690944031691781743945225530787805400777769271456380992079034285291610613217053798057008080054660644145534870142826556553492018007867327342780483013393486947529329222702778413531323861166386687681005083312105248140550202180119578721348053753620650412458521452606889695669295019070792389150959504358288513241322925654915041613725043985240683557903098788725236251086294756392292485193943293065333854026966659549430120186743681716210482814844525616634208437163970318560299750129249626807803922388952860672418146610099588978671866084416027752520073396281208909285463794463044228858975915902908403706117860540717488103755887858540904141147463723912588918902631526869314295819896712331475539924107655939865841084025116800250281544034830801450872915486521761088140367595706821601682831234014953075890937495627691400636504244677970865056396226675795684879651860762620189387691054221926921954198911834259580678723056485702370409438961152375375575122586357261407826010307159197096182405275655846217544799527323679547475009688426537925057753201316638027529748077976625961390874192773008793811849969972463384409344610103561568137945386102662603909278124635373175613659927526241886769600909406329645714206885436202226560422195356524999544909888370819637810973386049150842331012881380846165010463757755316251344383548421497237321407705969636173721716223426773421690601714073557776715250008292279182544833578270306787733126778428925345657909110665074315884044596269904903860891567758263097188095732778974385351069686261145177909588566928293088180287602485013998065072388975531933170583245010723144019155877183617990327123872646957335701717866721365541705648359894159822136369154141602150699122556308243825233189433714140045874244247675603466743194159982860524091972919040427214846618040918919019735231879998885149187487983162714075189686541737490774956891627973980477067104772585246087476117422255019835788925576257483693392089575272953819112461414955636476082126361226448378271308266462118710574579439817416995020493449489484516354273047939972763968516894932365253009500190469318134333242143521937442170881218685754105298364536678550845279545864004162061908974979022063078054959539627618166981959254537187744545762473594708850834180299423713121195829163265260815132118181231980438042368417313520856870430218026555302078310967530853812017936686454578075488668142769939898143825410587608842784139402387564157431482117478234742414804932357886233312897286437999663228568015626748580561854439021765116746128808540147698723783598457709927966594149256861879649597183340852312269640929217785413793941827086423429136670710684893056365912425907080639783851096431142817980118957221237739895628229087538793161997893772439318774463294987343598086001445045184681198518815423222355227428191318972379774911410994256729059045501037182279892363202295917507326676262692650901953865597702188407084050394864232631664050200400860919236419913403084474293149777701782219442016091786844281589771910472335714052954784193365550652711100952645385981719492607805655017401386527757926461513211110798986066521850537204146187352584347283009519556611910616334349923262003067293240496294511371588284409630706322471401687088775883732219856873710346586427783577482310808702961383963275818639490883277922502137999908708458837108943120138157545382895080347849410608002802722967458127451182385133397037263278694268076834957121394315283279063973669978322511955877693366014961160687170973671599152093581964092862452589551086998782171809320319725288382908174507938535731535230494721547914919948659096340321166433685122264617344561341361329674522404404824269158125993736122137635149583102083670159393698916506123807548709256321111336528208827902138400657652008511360114334823524293894426539472269194386294268042698965423938091721321855575107030512259998443090695112945692606872364215851938336725725133516326080972509572908818409301825997279566605555123066520605650385026372007691092987602395776215783996977860643478267748137042238439816540972390181832311356017580246808409624601386026841553524845949120800549643982016321563054734237916280667813148379137269695690109872482298952388356706786366262671456245457814986797805045110704993729858860474508859543292200165828296256350771783036040473981337385512937032648735943913809122137974691212275987831638182916618945719216873752459034735027156295190772381140647442056885328890387074132493038722971940622850667364890070819862607792004793769568445326690416772254974964816334663342140949347617623469047254207753846117259745741012903067000590949396790858515753540298498217276877006315093326285694557210451260427172999639771988798607511528260992259388411938948294575603923540472337529938203798991207503030596155411096007617017795459514504353350587707425996597067387504671660558592909560626003392627570018920496797514130189046618701498851205102349924609767004687862878332417868466293399344835207400812935624077107014285396903482114177539364662744009742629275512435070358205659896784755976533513952337799241997043618587014532402363950615708277591930509433595386111635377954004038736869318385398923918712526504311252052493334880035874393353757704065890392367040227449465566388613934431477737903892384436506565684460255321026623742573372817941300254704499538965090077543466168691673276209745952277753007871742309783654210838781836890928297153904914373558545823792547225147944494759791283937277978304077280439874303184869017154043717085306400371869734873790998478150780152456150794308819080076474720589271011560799793695127971259075592290163276737298296758823881092844915799946579936660939509545346404207586353389605861161817336352959231795104657245877906485755524191634978632986671340742716059106363569832276070553120903201917537260565993330528024124939968326080468779449304453705293487788235205899030326250505156913638155206344656235452054419188188947310059367323096927342189205728572200412606995032325395762139515556186750923065918854878978525776811504050969997065482983989757842829944616412097265950211254124125655882873207748694741071155645912087376195824058522105028178982655095881802682637080663774116546261446417909750017359387523854715041686200633394350607292828481195128582917815453296679354392519149384292460936665866349469598246341402680448688646731179722964199823381872746085084728620756935670881403789285232900912057675573031926822669115631511302244635100217373686682008000816969126062485726223489640102471660916629359627410633548608960066847416659886010790834579338411357606104970535480432863075655968140551494308014793648120364626894104282859311431389938623193345947262885980438217467931780667108635990373162361083558339745479169094457545547339842367651926952326403145675384610903588654168276166187921482543037280626423796102567356153965861015723477265256860313927647160845896144692789130350556437724979261526444106290582532024058166023365152884864560765542552448512933992002579197923045614900089329713226169722435829836987372897331617534930381122179764014032514071538082781780064830801625674533182109622452180823429152135586190120419540225253873750941367203491598858026671729999599620927468669186407354440346482949166964824694398823738856942318223649877128748321675244948077848888763238778559612372838799219059917162250123883780990797766276170717981091362979114990239959206390944886646955610312945039699645198507141451944273403334688629410520160192585983693804520129822213242815562847222942225420378559218251510276292496765056758274875387822259929359730375054852598693035899241751173115087875882753473507151631279071514101906639568168285043839444776198441204358271112709579411363023835837835873774015040149403327561408920711739977207839976457216705380341893860281890570524201907752378352376353358761354502926688165445566540257044735509933125506996361020500528796118886057595690334228162461079597644431256765720192922858498991647995809518078104538241361237816431842531929351845362498787613947402107572104564658163190354798298323765048151236197422195512518164116348879717981530921908725259649593557132013778054847867858576619221016033757517053467393174192313632730851478264521104585163619123667437055031334531875851482632613277695768263779027697834506993095447911293021737075459843903623149793400629590485649228686223362675308872535862181727638424496822113210730616460089281271297275772434830715725616113900635447662891111420161992483338245444618267519325113572691007369406298916585300361498863263378632682577980433675486855734553381729815037484865198266553061401619844975876221639214486417801814642666284511202900478659943342579905587589859393045578009809841044676070991726660390618505067621667524633512957202076908455735562203088007886087844487984092221973765492134273754894670978451126688425225450599115498374351267734722523451398070948143292871967517651756969900092203348147647102840606924953566847886206447212328904810861221063191567356977991097367369013024576378058875392343192119930063524202796700275790434373840104618519378394196298207051143792077682209745428303001350549109249823269073991918611441898342169368313564059161286087872911670220097653955595645325020445151547442743146212087979973202384081998467457873347497184192714713660270827655714730998692084813440032103255272991504727946838823246734014566156519126202180005885278732761875806859658330969143045442839440500883913644374149518742970402552144755441533857031838947595360589428043643797206823759159563643983399223318030617130067222788792270154685759449094979579785026219115105190715508585783334922114295611976586669562509931224468922019440457662182692005708840775573142258569279410804934279579726871197937379434759703898701175455365899626473349745248934191096558540807331068538943094669007815495506246958023274932527656507544617046238461656665209437017327892806912596534942447978152647591743400099468015152665567090971719649498485826957189163232548067912780916181602749552359035539146148073815281551923971670624729281261910484780807806521988477611957829100843306831039349685937434221868682453081028073547387817370462351029767135719945375343969418713857279994919803169537961554141984561401119965526722401693066801855714289633681139895066937503879030987313915755866008215477817193209832994121770040254968373880808103733025862566610623079069597333546593847145906867621069197666530088908538464800161961641311368055413840838794406268665185620570395803737201352638598896885214553524390579746485672583864335220519142426934017459319703185334066261795917669601462110441711186346707132326787880199096648975396651408910897372303773338217585483651544971755777817555018425815421960732309029966078816276958520083906271532181995488511446868882760799700542873025881086206416688229650744402409295116252834286835356735670871173050213030029338614015054881367595418500785668663715473907830919046822552873077194351115166019722897960290657320411991935890314354942329303123458426278739945053193570677614833981094293195883693957195415951027797748789552303697753458427287421023652376947855254197247791606211776299344579077969179443622297105246096383645489403188530674894428125402079761652026046838568872225032550369410103920930892465043344062782934339034502785097804540330749167344933802898220206336122342046232128483913977031043155380971151656824896123034261619495616395561812065467801711167926854755650082909201175458023794395384561689973273066627220249005416427218390567254977074524452738444501778504246230664599752201005201163753504349234425047974704922522464554599715031408836829699593205471814864829314898582217938594171801243767862993701733628742610977498494219069083300069643857291951906517183346512393232827518580510491829461666541472921611365879225772736467107691402852758976023556079146782428665903667623030767281181015183369316363740982850092860013541967433536909651639396378438901202959973906675982030454713131911877182125091091542770612318741794919295289467323708373641882665349261747653272354685400468040041633209227943536421850959585346025486811170510954098953443115107086765173345346792359795702539179450792978571192975571999501388971777420397493490502531512949816019398100506845589412134416845457584733697204359280906746481133178518135516218767927733945029174246202494307207147870800775196047943930358386884276614645693813455778779362895218567023663583852143403942520906146799392335981292709062722851588616958869067024935845929683711470043273980091183169671543310772162322349327699821740403314065552222141832537855119948701259056673645830071697119626763330497939188454828014463370767315123850171959954929794043511124593940465216658275752145608974305862760467200807955074221814144492899251586780016568172356591732479061844734951008167752378719720654955982360228338451269285877085190083391567030591244604100323665127129090759527171052535644917532898265285178512996755317749865806743722402140484842929397998188933197984850370572219954492810795800310624220984801119816903777393720690176579738502859474156090601132812451807004069865769125409914823628619025847971712292168518445977033458192614516680224870422085710855519491899371216683473585877519143473682816245022747646519272085581627195499479651918401702986161493303698738173677365253566200622928923385341015096221223588272339980005978569088819291803713696527504145384488569048508508664908542290941066292681382285585186204674751128580983147972725090120727422953478507223235827040019665727031308828547274757513477442007738782537015384380859685556858216722202725361963017526636018365228668444645524088649143275929123259615659310760057842873244663646794880906175448280554702835533592529377552449844250008346543085642119343113235856639774171018360626889335126723625371652049467658396309033625958707981594235424084163307616209675143360763342049635795927759907862287527469615365260081051672728605932933668621619193262043107321180287487322215629559053873359636466129570222441157801834493110929858560219310976847752092018050429353905545012511541239658098655515663268831541497177634798782588126864327131553881624668781538689818964572001823724719889523697038252918002437621753655405179023707082070919167017570451242343029493853435824167720707445218014505481085755817378668747835764038838997826315704312640697067679090387089282573125365486855605797927315985733926247551226732205440305248198639506904859254617322651811937795886536057543839793416978909847279995812574275427902833247538345515565429124978053322211271491706567940181310253302890619841682715858985921180576773523041694857037220571627063637589191442248753190740021728525251989298663563780920359326812509230656651574112120671273088595611038766224815540573970217201389669741811811081379824639945120043707584480481199816846356197443186595576184176508355716183877728049362918075258976716678369979068398177906475005028502303507152681212663005746357471474048147993681109008448162647184422707702797804335289441319960576464004052344333671612640550832392062963211228466489841854023073610522578162515927353286451267035940260849527022080861551951272525114733705836831333073795537449402934665270912507894555216955380769369204052834124470452449755123885667306543621853978692736781905353742526217353515927845026577369356730610168291315690721425009428700731621294169040587327686270848915730716469409891665730858327208090590373804634463806523717705106279833486506148679383823930379810829220318890347591129126668243035861058811479204377929295528901597929867901744872901648123558573727804521828632190524636259829523036276105559140912792431899882413903249697537784429989249517391355570293083499246950918197047982304810085341282119961423484244410589224089997688485001128023519461828731040212534935462347781338841782404234390145439206359154808761571821059413945816527143558815933874669073369243429740862129289050716332862643909532508194127116102588390241954955165312956222532596978581092076440272684853229154114603476606075324535378410043640619864737918214806419896905406062370162514533171820479851396501073493596525363740256857432117423466177596056742182557021810528576354405003022582588989668420699983138067704529872181914636522454716592763032199210228592043423690726780039123680986797186848430991337056274746311420909084079109183980027239763455275434238013286961451947425648752825376339705354402581176998122186096087103989031126925428470212681123516496887671160569746248676942343439567347358708323417868603016934541392200971627269788776933490247159784092636695430005710553551353705123545062924909005839873364924180313687096159290034379436998847280597258574889551273679174773604792983822407188768000563977136907587654100365040428560109691515733636829365081472989915169761283619540225316427395433226138075980956692320391017700747663187662541229430762550026935137130669468909086209012532396124749235170296661042300989325328323970952380172213459969755505740192943501486951263379075435893928569028870092959651344889065289559794356707405562829740213661404307895848798182599090232700740784990855241456310286418166137363830435494954067254566032561177424500438468539703236542427946828172208868611188899921675988851280018916575969225157730755861735997569926657024730101145224945314944444558200877958040044881641125635842187078100842424938848653911239716329291927578876184323349030617854689549134018893594123306297437359547188952705167478236017916558381210716129206462132716337001216515185874495825472199938130743344116061979707341917864142296546581880823688243682815897886337056276787835312223833800447981336393616413462871083316620925413607762238977908212363629463118766793349466705993189047074977729674647688027291561290105398786560543362542150221292460307470887071833441033897208556575110844313097242372994499849953771217473799248259810786034523801028701510654857586434203436063046020951307275045853293950412115545461297867905049913998299698575781066633736696871942650994894428575456732972628716777724497563390997612191522728609851318821309500533012599054760072343300579255595397513075648313050592972857621523328582911031577319392940305381137807541220087697600610098713011116188043186581783587651627627837048524707735786383558350309240220763628283915649417087668791691978418834987512876172208891580694244113349862409383568108430104784619272270199587987779167994649162471856606438756501638335921718381512053344181066214739954144246275881905751621834934097302986409045435821369845367070145306890713016425567183415170394964091661984999224241885159980348089512165739163243942425564999080864750690599909601811017031473902367966296170000106311124498520222748412050013547572188672612770088059490289403862145771553615581422761133043714537070786537347548846202746384280264795303857042384124504323663827193072367003879463630288217590271785186093462846832974289793016769980482476933834327269651527583242190181431248901942880466441351551327584820544458960320425466012098081018707278105348953156043182406948751420711569582938620459378497619575322791438161819839681303560515983489189887861893244970153071117242751492052196019641968356760454804957622349970230588426830151490025496855298315881864017381545683598724987837183875444456701949108140729346941178143503812344907690806460180527430644178182184371839061010235576714974161582215688530864184738813223730879973108745766526026898753392596175033112699613411053113044914751458053281334090658728141002807919643557933167891332095564375623120379378424635907345181383273577109582618601297187175760177011458831514381874829875695619061776604060286807364645608424181408367406001896094053930050745587434316648431145838118580498208995439091359610299085654707706097240643779831592594313385602088646546411604309971334288450893581630960763324954239962705865863214901186980024158295988319850055895631297251138337512000971297101815213367052815790825973679127378504856949936145776631940631620932723260687327520866759074170647268885596037134828532009759368692421263162113620379461683025008729113237831437875713834070250471811663707976046222990592106163415946901068539818148476116170699464363828694802856073974174067298720888925744201377029341616114859557341101882217716362268857134409628957786068640811135782256387014324384855755817631308819350301913614678688297308954364220797722484936829702536803213637069053524743588445658724640020060238192228051258063954252887537640819530056600384277693095806748040634928817668331626621390146744441351044623437101882426012059722078807703083010570105263510204583967237801057777291546097969588550141632055625251384590143031326176431622865357954031656247695322612411171558863223296074225938666248874228038962454566425406026991525683284283388616880140802532741404442961819936142794044015916761983898711140508857857929152631895742404742924754354909772470830942794917483798561605829927693889926462596439297355363540928173204827659530304112119360840004249608005802354834482194256723793575191877840815760627972295093721250845863609447602061342742918361213365365947735045566704106350455338307418069923995482236080955257549854661708847170040839266439252533216369812417518362250881192128873591350093150951695504673396716694372629859545292677106738931830345862360316278769546735188129370109065556809125473201494302005035207627872265790824357056920618813875369534170313292673076287621541662283159507735760602838985757947108939910835727928080304446355182600045210085208539204637340664121210749914125889286403075349950719747331507507631529122292281238293192607275230401694161217868922626584684604740289721809529147476482482987297744450931838406344276577661385307766990325949863789715869078671903189439509280679777678026842675712845363211116555060768906082332160958008128409884782705052262559222806558680324398031468399660260109539388975284659615271411158561838795453812622189688289405909938766577728853615750416905761315467269864401250759716336906531585639548361385370692247812002641500953509184213025784442564991993034108019230744790933151268439210207842644481435532664539225715700979774536840247743259384234663964964019488235554864565252741778577957361004972318543546422586860857305167634874351611781029158898878549926895525268549696763695856250153165509789032371910535415218468006215315238688049564026728534974741361964283150639410017400011592858539105356884487466365227153640771228898023229013090486667087725281997520086539091799246357611156029681578039952631336105904092911729396781118783075424957476880301902141027383090936915787779385927912454840158660188640284038360975345234991591154602290465622615188701192035732022901086587540796425104474801735465487508418887397042071111549916019612107711773441160925333774571022182255820898082233114056385524618996524154394267151586089513380635665738658199999322203270612567495283466415599070542675982809924127605695477751116687601830723392710126814255025030416838163075835432132535259267827613752176944352969596877743350500789749309990027680425183492314600368910528632793641697763849868908282606512621196071298884625984796368207457272359811805645964299324543554347118474665138367617129950675264417916766150613543974441707188063765733469673780371414882036125153157979084202832806515967204226759674782856481201989475403362549524283967029286577504924197011823779052257486085034217451480319769866300847578844355909420096068733723555275483384577237811853395595548905973073808601978700111358338831793221454482417168187819201022668012838370844811962141557091995879811493805913170174171373368649146393878060063103323999734568254881105624384551419162721741945044702204260241681012453774536373997880221678115170255719699660498206121108167816477262841486742628211496176736483086905371298782005773502805502820226161305295642649182096516728041607275390670078031886368683117434211049324392374412687489965211889743008602104910046306690188870124212440691564335635598038559532011719126461219073643920605476231854385122085443172974516569496961229117864070211700408971470506635848697165428470854271439991600466402555694120937826191484816439827593046960776865541956001481106649639882623892581600185490241551596748580762714306506252391494993318187877578630544499365527900828619519149228724698002311123448313283230497433958122362607996313955116913966290214873358704986462180358136688999698048185931359132634078598981320299772712688916333201427017701856898944861207404286176219182089399446310433770857364555814132062440309906081726489754650208490405982413918410395307446405289394551021066887828782187600675561831174485567393156392211047713159487007328262636934249984473977151588568044095091187410730120665208605276568694979697465969430559436617978295415366662757079660152052870186283115100465705279921260115879171042769749235187725309827668558328393235998023984677864662961990266637570835178342266770807241216189551187840722232900806501240077551318354983169005175147352422407397130939576699424313582647389225684193152869183482109112764932118237090402998161841068400773089399899218501675033822299919138091493857986281742745767150897827862407038667118754634454212777606678387706328679482768710212999268737564535241750333797344753675016102826861619548665929171719387144462813336192486639569827615915670608869713812515320294912771059753147605271035637504888786189261746356753257942813084222546220124097709094812669762010593728155615761607526749079800598829103418274449562132827420302705838447281209304384546265599831922110402633155333788088626844718925726814871394913892632029726795046525905998359197283869037233134377471906439311437518394618928819038092223701761662288249898797436678249829476467459906584048265956028935642501221746919988943220499299871466744434856311878616062144819586104473848096369762940320414988059607855731665866032320301267309600780049566635000240815983325510230802093307730235735580123166775477320002646570007353028408921409103195273322159995782299341645319122571887642339874031958071772051759441675612407598730719297269373720439389448590228772443041615912384622543165438484711771056740562828951157197172451459355321293451816159936181092440142518862102360600177954607018175738579255532424585076736124299556312627839649197343181988630689228331963880073256751385605996808331778531191493698374705950550049802696053216457803286112872590300453680968174076023818641017715265594991516033737617061218669612423464919270868488516527304370192791174784258909963065281994008974880955291469286585310217057199772282771851258444944640790474301228168316037710201159386025603653807451613921886625537096092892752316356803778751210051335645865246531880192261331631522069894292888471642824703668082418098313727351513587402034837870765719882440422620704160823709304007975261702783683566497238170134923752635397384211559542073500945068552003306067389884788668260977102792084010612777426732395263094925873972372767887844437130221623451475226081403459800474820532722263021754541256219323456797411085648000933401855455120563436226841984453744706267601156602739962970837037834534205011713716627471549712457685520645678216321923244106698259084761773982619182914245152382782014522189151826829395242104524534704334193299375948028363648958643751648845453486459485760274532149870750071160054726283128057121547207160632584411400434012760788485754395346597799783343237648198019039545583872633591186557351760371508687764798062630128697489028224616684173962196279560344838959640861615519768479300286517017244899104090025305128841607372320255265242564992669635068957548835698592074587202112373151737994959772225925844174256340059465608497963667181906192267255988703686362839041086626944609222540424916359100292633915416705002464783014657649227497181529912571610469222517884956209922298103357891566804265162660649581536143908245596813766013584809268095762127377698955830563646220290892713422046175063588572341905846379422390172336866799222451402812819624459678258905351798092317233392204641459619972672410014825589671666552872460728797225276378083804052889057888088024516212627160179090975427053626891857567221678836365818495941534449906647159968029549642716479386861940618686206370178562266226761680708436646324415467787149584041804693756046182144733856352086570286028046200317250149879455826520738266628611690536371430525440808604810984437372640749658436169918935168308805326329074052977016746277831892679285124006473291245358621002209025541342068599446412021511392296525907397713639827812632141786133626499728881669467091394374679705313225695041447823037016610322740396088382472117844861009321273631423947832478534277422304400851017389355009930604060075201821542359703492814741656291783990747914866490743263416372061525639116171732083684380794853236000408738723151574909117003634311020022331772911327349979463879528279922505120511874066401638402165005273707993832733471934806091058554034907069723693251258767749523433311084204996395740422746578246573977504217629160728796658165319227947519663558703771847085436477201892807749407845629095006619719274724886786355253856185470237260876214769183021391969437170539044454339484729208847628170514839347417314830843582467309823952343035554298319338092650058498418174234260850208208922711376883898412722911092417923041041949831090543403746940680075544154654925122648299620339275646803072764007444163668980235665221157883784425001592611675139110382579424195107625477090669882917302659908459448452843714403103519348267213812523759729009638614279826162559918326474497258961554617194510099426490832552654301809852439337362934909595555639381771259474849687384098185317203468459080785196572342312011574729671609209176407035573421423982304107363358288234415542607366041676956184232830468254180802264093270594817363454031725498037155165992556494970201910502335905152926140671551414629135492216670210887963139569687559744090835966253828998568314043915006378647716948739432306926622411391473524722907127059322205348992400644634978884125147316316144271522365827429741522977289185772268989799922102006149836917380071030828578212578796230927538669178423299057187640679511898887075658865911618187646180691639388537532975927854230024743493156806033917059936051052630960622310334973375247753003007729268488674763532613441160324869292162922582060870097322306353210052666695649800685502003602919452755503972551418614575781539903250561812213109652189008870722764441184382763825775528874320792260120203166315075192359049306765724881941695037193140058348276547822268139323996224538313487145520679161810801854169901773609142209685917199985482211517968703664911127533622060389367353547927246220250306032929257666178691533545175536976340461366078930416393103516842395309299290655193628769815714127173690724519203372454561947157474769226936875554374949475299444357467853343477438316079581508455689779734876135148923566386877397263585440383025040107909571057788377235944171405694651968941184507542104070928770609414250495801236429371453552017963617703444272171329029904753848492923290596878560951568031787027352287552347910701069870075335856328856371478557006352888978265670580703534542567640336344135913813711068856647074678782230006036501329786340094363623414953783996693462278895343158768336875482360449016540217278209787021724022527948067866811398775280241140258903146977097739051635520203794021805504202852807082202933471787881847872808432620813732625367806702862612782304424588337125281935713136577053747138271623332742641919042759746254069579115147757030520722040423115048605270843476006960816893408975373215856542959158774805342337553688596068452116683408995418521741282556782818522042235488142379342965920336744284270589280461855506050105921783425913873898154022942559106974375339140658407420398798494502371916936035209017929521850513176904197851284117638119401166072006289508733253953606772413195874100810764479236149655422409881700612712778935415186382082957375665989178618532444062675823223525734359027679210793703382625271038872865187782610491255043545413853948213657324903185444851201758019865313730445171855259253845763791917542650562850533692389986506676397995852111663891387551969127852392810619372848224417113041479685770402714304564212191089265069447953856724202043714174327327213968289029378477192979768156498848233782038877543083890831718019431159023319248925787819884396015655620093999628854188605447148503020964083211310544080622692275093653733332825062103841748554713328114988810685354962238711932615874131847298187278442792593177781747192046084687474923681011517197330188079346140518574171810896657750223983768107708381134093511633599383176812663257321842959019057403588993023590891268022703914831220654252557892449411555504141326130017633230841364619731694024185223659116534202535923761430857995556098708507555594733775825490361901891393082812425930767147131198174299210702657299838394694440038248961694750429893111768297124732382630745503627474962483251973442481138436326764189682062239217815126933177016232072617892736995637923191963945824294572526608936036088909819748665274081347198457935377946688277544025673440374322882424747025090814418549650722175532910170961880163156998507433655666445467354655089218407805158027381595161852671237178229756642869288900768560253922496415016702794602594029083143170669290992379239384360952157095725701734558601857689279093069019886237462297983549628072856608031081379731967043902740927792977595528423416665117531023181065938553994371709449222675886317729402178042227117423889598199023976858229502482230978814138005862437195380351474978754406061984197929738802197122920638384368218357602972222011865461971603000289069771473957991375072696880402722503828184549085320245313826730032941464385511544462024841472397050072533849016191948967010616364673596972599635935999780026962652164383681016007529906589590918619313541251552708998081383553991138769918597076753599492839434675891011284123681704459813047667607326135229201925722716747967785908760514671430383568266585071756223277489716394516157219272993101902220107780308895866059371854266273159500688878343878738422526479822822294354986552523449753404802535667788427648893807495202143515309136257923852015435638577760730361423888359615247349080840511612354928827999444859502934236253257843780671324072114517509727084563560640496813237761264568943976820034421366849202402913153705269951082123712516209085166146423201429976523969024267959274093767776473961818033921504537555170101565793870597378677121081569978689866641088962262032178061274104469387975219650041792760803543294129928457464902522221296404936826326281445051714877622609106235575858789156495556231824900727294574438445964700581434050690679621074558383960737614457265042527739665545769319692735319942725824864130471279801554580317785671378261564386271480684066498056698561314034813555907317605580401575935456948576613391357842689710638100822934209868258700069635522168368995770012166961538209599263361039775565943477438062446897096044461149459909186506808043954519678248281580873031019686367341724452939714012973011611710709573486276775167011780838808904724217491631898793465644098636799192376909706205963586205204119233944861571632820068769632358331130305240569052709128866457197781750867177870924437109289980937560037690203323862503773171661858730283433818870692139366279444515505168148342765834799349820656647811660514556587357526223946345405886172332448346534398128385214878222051284611499798752978863191360587339354993605181528308737454618362096613538415966121789871138137235004976161383835269883858433530442376928887470810129696814537652126469331041002471999994543050229711680477262888221654653253073349243881304625126260890068585611179536888367029574795585066253925192986164323854707529154819694792453289730150721813883571044909105518793719789340106831999686742790705455869763119476770901543807796719723622850466781270801527304236593961606440768996739234660634980087409392171623189626597405022264765592394073483393770173175437164762937892063640816311844826308198915975086207604193626390869101230831758731954808659973155457301613664954490884218806375025668318068334623536938449405090678379066547337987710004420021535797673074430386890911692658603772838266516450550816271891830694750022778711891524788370619048059967306228017825876232517219165251012252267294807198482465925815696809934231637517612056297886024401201770408226500717466326623798365518321395253108058982914208474845557472584644045830622487930402909018731858461784004743719592496485680609894487250808421526104243189319468981890022373123037135201835077274669653379678109396353985113854215582227122063421775111545165108716299273466890490497238333468619455641173699024835859206792476683229134834522189958934281161538267075035489371646213517614915712923603944608978864054683795605955002422919134074945370812693151886588536911207040747234984434462560365325932023845225687385359289574664347650598931868736184064552074550920117128237755509907298202287922074406122385705872429854985606599257795731640810960293060506554488584631204968208993910402753248065176254582842918400711286834795271788096604679002001691906715147512933940179928959282514394021146254517700547719663786502006788989604239187656193337437826474776036132718191329530315500246435917760820443138902428542543284407760301064969622384935785032528996531978924071356195806546123474520013186905787671182419956788699209389157043306505933474097502213394971159661021092833151804371918608603497617676530264671213984086587683581244352553088062572977811427948959006702537174644884709387945339008714102912715090378716821379334999758378977580003884201029669518784623364373717497992465465368495345767530401674971913072961264107571166692014741243611912955663776974471270422558771779087886565219639663036330303070538309609158773664487021728309945607263144291341607178383953056132827122295760946545592715550569165345744903357070185805876473905139271346501106086723302967429729221454240946458295696777910147839920110607899827240727131818950808285197773807965326070858935819079478677413444585809739621763837406584116398596197881469272427613352086972806193099313242433277064230648992307187531848273032952259685535244189040487845236846465277943948786544585570334691850859367901920841438750836044998833333474044136679150733719167135129075539822172132695742805337870257471143271456824991460645935466903451330838559241590573244463668969294758985381482228190523608373754408446080926008172279478250711337257064289971191210756190404265993681342875387401538665388111718909519253765401871389952735275935632970678343900318949838584646507878099760236204557307441441252145683688003897661067429644236699319168049115263083275294667109992195137538444323317089137890262182629296704902218569745041629954202131016018610660626961227703255654341729829428147459407959873970113073746105139380882464918339224910185172122345200554779485678365097939022383213708755346801759047768539071165435235655810979780364784528579340308941783646281861414010060082588259569295339373962105699018598466925540780101718261474899886573793454538865952528145104230608624008145211929428565679680140053858758224490390518217235675129947000965270479600813799576265113890796884369715727988255977599512569287847608785060841426860411967763775032393754884614953509284998617186352481292696888514999330739953300665769948941711736817991664361349998946492255104598287612787498842593187480564852140873731505519887441701921141050535690983344563445311449586530454209580395226892383726416507270423596214065807466925709821489465826054569446152541638466824507913696870528375514159047828683714955353860058357407417635175955137914776207471723552619783453658566390081090993534277271776067766987794666918011727132856718125795089482512678616151092589097861174145125078401031606341799831660265728685687189320796614061068362338758235039400860568788719021105962138149703052932081432043825788184849690812079521891473234133675293617925360858636050704088026336290619211106414309351986564210362852609129641328442802542260797599922373303646401429459704389733698490302006555886313492846354509891019859754454455933491965840222888677954595073443025133835027327015902408625947289116598030399059220540214197471167415243327751647993161236246007854201252667102857146549343143314279035135930110895708198014714382477625222028975488815879018765777667392581102678824512426255881972485804799031070003101322366718531605790736407234705721687115819579875064101037285582736782303304370196336627801595419026484168586679909430919905812030795880509201215238857955214944170256770656487451071020203491565075777876042516166016264837098669240010879292320515578076963509114836459772609208747894574227063886116409309358019788207618359916882725428921870214042428627185524688880918646395195576325109326654575013262180948302430802191393910631070888456263756731619317670643990144098015513568066149491183253211897649135957304312513207245969786928680427886405306597180940020328173512662506198857701658910860851818839062632687174775133833451913661800025527903394573803759165440390639662143724096793338754568070650777242480919747255208981844028711118251745459252669325633657381908479514374422813462122987324428742361259926877921699847006022140064414910758016444095553250807161552414668399004739178943495498813026532107648386863233271917465046009901472509892922354934603962839180737621016328059964690017044555474920014715914908770903162726826939392352424792203555129906866373227869199400825994351804554865127415767515601945009417240900803181939844281653201613118325508259636266914738490595320621405339775595595338367527644731309869805148208251736037576202814276053512369258459274419943265576195132880345200624497890092696038314002020462350354055232727061133242134041826477473875740738535713172430568390798919799373577429119927946213906439356126033679522363677524153433611576099896371775987662451411237170025510746829718753895159013213549829399677056259455934623365686807344826006896369976321302648462189813190989557322044777067431181261887788810943462412506232014440549102378650205250997420399656738374687601447007558183322186161485948489616090703713845902093957496725025578649899499107711339214234747509800443055460771456671839969287210819760505943472001992319648579498229465979122663331309056187822504137391508327065768690906316347546630453062561178642883248064304316742527012210775904955577289969551528524273974608402593198993495379686831221981854563646000396560708047400556180894450247336836128959567830150331301110845848106442361425827112962668851794007741720304419618005487763428294584022118092192894373821866159053564087912248535198437581918654879586668273469207173180498423951523595543924585361014057366498312656988884481242238672897074294116356278303942136240305081170538165681586261925237367816224034121387868873654584575190336927422422577551838799677510575899441138701328243536738392050246100919496557792210036825153929571531090437916301852292865458121248678228962104966380503372521815740617658259434851175008721673679512563671106559455330149229336992338748839645537540657630327369627288215242151669686364100488477553033063526187262107267788689465416839426625522987547043048310951401563538480919181570163716799859885204145220440944789069461373668084774509750369389602637019214444055189891194566990578402366848835993592977136524406298991806733340303043774504116338167782680318217261141987321021071589787930485485006416454643440409559549876238893535033346930412978407821151810967190109693171023279531181799187559722171862433147367450452041369081570148094345440117961125269867904780505457833070020098910665883518505911881465215569236328079703214929006236408600010798584225276403278144541984359449890136100364584931649575234457853929835829424553390362018074125621124834465305778310346016113518717051803919750300543701690538134738681692495082656907788996954942482690622870366954641169894944846574584507030392270298266776830084343028255717913820503152428143642831849568999855131688622940446959722296389603651608006109591717258699436566407980326336508947789954597287509018310209496881849957760318059500689620168688312580545307811571343125110380571976614932911056889346726618796856714893376529189673765200638838057521554900050944265008592660099690429063134487481882569379942070831484652332479164252233314670102578167494987548862778592089621951814810214557209269903428141949032440378590735929575794009967297876218873574104790422459381570632784030179415616944665302230225500568510198871116495997049684133036750840438298969609279736066776588410519719681986833591146498446866028795354381704522075044693726381863053695175396160553397719934729777900609499640467757947491169612408801951122450325220697159560174226385860081203511158149071621326883941943283238731835117179896540535068065883099569777889981472461541532029382869051527370842984294834909446917509413803106621504365114530854595038274776198031131388501039109804459205006149139330737797408903196289189828486479702494140528478602733137603419770480868542776100420135234878912037137416474901138482642690480380688499702817520808094066037319283244976053253029168613787748378990827522810280594522435814964492274836412839617184534962322870396709239475097255056775819820845468060905594026973284144215509921895353734864308600974249182239453826654050150915499228228746832433682161899436221243323478905932044255894967221589716682146031566170544269601088454477023216056849451560528667413649566163399170038054109360658363934307750996279686498947056792067999652242974812463525824229928944806031695895150449843414554799669783788006704306373978516139607190732681747137565110117444047532070915511831912877845786525052404335423388222208820703018962025464272442968088801672280030278991681832360369322271233811241792322267797429084584455329350921282527832311736415750901098184824423392283859952169289314040144869651028637928927364634022682379527744045910731958365442261946245300651714884671646563274088818841158523187642600089026950362921401098739583870700616003664888397932442172831144572326294022300502089094649459469991516697761139952023379990917986017704217892667068174236589314158671473388344639744019797049496846830578676353636508413572184427425926126061016952508273659696593435931617913153516494870117628418821841719528979127319040838159436093240294227072822262344017860447665999257449913257206589672532046309571911246903605805476861792275612364453895930634522674165399958354145852933808793474336229661768625380779049616455031784816181139475266088024191142876676549676883766425059615739433723287952450299155505504353096733210795817641555108786387390703022115492956195766615229822983893763104275935709275563215166232814871381869834684542736604011184657736630217943529582847610497317127772005876340875534973791502071856198889910222554009128439727485519016325335812140683522050252852975738776806453300580859689885518788553838644512647372875617724652996703588845380605267704196107399401328191143820922753805949575054545798545246980836756073067918667950651771608406841531912780798942447069685734426310951822839920574082338563886922602419880519659894245706499157073608799321791273857518390800522696831080508574064093619234362739851342969430781340506556219197989521499292451063015351413129623036275055564455829752578196261584062001886776304260741177365013507610163580274217572440624351545657208091700250134682108449994716651501055373908293197780640550228063377361638063638486285897961764643379181168903316436155887075325374252250634230089619913444408650352358971187975830595781094518046956532774897761334309898712426337795108183546409417728926321901720926754226122691410192746426438961352998213557133436941226671357010736151156098035578042242697379830525132906263195252588468998797611484415243414859664735204643052445562165864240454425552458814768956618802322966553137018990132517529093979047531827323731663712453563979270736337308228799912501589053552098551347012537694525045831950138359274638208255682792625424125227649677382107601175137118167761131850002452779448228339713857155218251624592514582649848749464760535274354375965823091229253664773754132560691230974509988266727476886154585843570718463298020863897824401938729592385836779397995095136887533000661838377915720739900339825363436175630351518012888897822385259204044878373631398107682274115516877463698301791853979822295569457292944869475996647873936405335031118904034806617124709035881028994404212959910618216549835513703877968666923425784249849463115754815240398306086302613012030723605743235543261098798184114453754878293903483530082134842392175931047423140824078285444011975605085479006168710666262724849365144109808846722364729806934436533474355154349390310740811825516330293488246859566229490605184136704346900358116410911548956266558609151739765988112791107053770981974958419587476061046244196673202076661851504406628188729151528160034282002435337079685380126711085282359673787580280644520172285693287772161088931782896036125690830843435618839294814639077187897809152244239481046692718064113572193899774162374679112530215656515662508960239022267445216467348949712842433635567718572995044766026316720574346992017319829754746378352066281453643044876418541156506759170510919247844146094672353238739928549317343578147757288579946145745519015249570318197990806659835865216430234364318342466564717643058931000617357145584018878561025931622275940021298102066153667056142590136767272793992958715993767014491457081730867432340330087902249919199654322267310116854543974048002380261730212934751606361474761453664987569557279880886344435887637815073895555590258138149424412087928178450493941768481341775812711132460435559885060296435048692271203626130727711124819173241692714288131615730746705406506766187596765668060542392396257445713720296483258570145332227770384924763589143511736496489256725159075324616561583472898433148206651700072961556372828088815895673743004116492241103583849541886596100324807409432767864924859897016828604263400647676456352465466489982444563274765938255916162678509489927228005623036501018216452648476119228841575135500423080376384473330214060332376688243914715485720568787287855275794543362769778970409468373126669494438595788477536527262392206929864832735130221790631770389803046853501101716350844429279939719659164393697460427354309012107253582063440321495881463142944862112713802695621771616989963571429689987805365503278573043381047406449043195194174654606290413848884315850246697911529921791892930619243371270568112151694006681138463379124993271410757248775858549154057015813304860784689297906847606076065846275072591597953280755932019581461639618339824971374693134837457173929691661436184933726856530292383966039312799505828910022595829989662886866102955508945438360859367655867816589773268802931071950073757593139031705911140256205932004694566675644194563703073396238088734408888434871747468363568875638546884308651280122980066798602239009962764643978651860212038108728836690323045104599748563487802897857365300217740159204401351677492243748148064108403414884021917701807242859853361407502926822521690744621697259005476628959281063905202068500068477222568538057963125968245620511507272786902061366587126533116588307023738204299600685911857688604937087076214342227717847913665879385581487805555868633222960562916957009750975995922296696671588139269154935753571671000135507909366979905943114881707533865228343671666165927036304019151920348336300020245322289976520336830737471934289614431259414717086644462265025694521609219515936722863105717495417677805988583268697443904129827107112951013953000326591874980073811568430937656064552277882447807637343224391474798857253630953606261097548803280640188684648773506643362129284481201774857790551792636663935562891443012899732726902645287966809338126754445938211463650700899243623413073117494971312761421330852907650362911919011515786611816892494225182405532315032380748142579864521298289327655674110625602517766258099131583516125200667027122172631985334866729170741871139127995945051917621188741225111636754617462830484139354651731071557395521725068364292314167481527148129157010408333352576584768624441462338143148008847591347178862147850543822624452626975094381453539699439815417078161883683214910596583349150826679147532062102823679342528053652544363126164074206632106909057321719332942512938917965752071167572146125267826182931833863470497198939421632432480891453820768973675595124044543944493473895147832897290997284462874777483074677008594729538793291037847342073959751994161228677148536745345210049944962968990296922106977871555696279332216173189137398285106827407424893259715487187908962376709055546202665221304420975003493788483615602828000688916294932683884379484009579353961413300356112495024256734673086043246200047944902605494105962342252415667065219850305509918731343338498809763558821911306937620052238541662302758698514983365775447812952184247807624402113744088100888093162183875959052583901335332258457910658824828455557825239421664169571716023103235871980282304728785728953534251059549424722766633607516459057903590072710643988777240136505886376485713961536373353462988655199619088293295368788924915888952878319804347537476457662319876734246921977942970058685633125929085105521541755640667819955105074429821374042870492434855440899348607942414063914194718882092798209678711044158534294461821617976566298687188688321456685419278996567677711233458418544866151391802108671298371295778880336952909077269901305415959389155827825211832710947337332254678733868880323260792221367570852278507656288961721038048321440531364873514294708976144630647591368119805037057132990481136782413498275304764158773847055919078736259811197984836729656308689024187126519281425318206820294949166994223867373881253012950942208627314599029726168341687602698105491640635192491223656499097171040034170923570380985746699710155980792993787413847409383353629166670256001084329629710242461169105492692437316996296141638504603160465010879747334981656178766576636482881691166847371177174752740676828471385521707451578790605645111314334212502223448986861716003481843997598153150801645956115664572677841617854095177255396909207406282441344646162462073731729243545506338601744192804407612343951595590259755154245499245413195722818121726086857374946541539091366938196503847542792762804160502705238672349367778391658200786364907860427645550498441281607192554009622387682659374741408461179342629598342974931640935764969485854645122034153014365942728339644416335584345995016219698704809177970910763484940547960068957521276288710065166976913095781232458108505183210995118938116089653952282342041448281595141601632505371762075767895523607231017995682189517935785139501430006114635237406729938765168238859196069971545088524998044668562571103774400234279925347814342690897023147685693785822931449194310099271801520279452404658578905251735799860292716106060288590540901771673081801784932580378312705993784537548313287004046683061263858173527335071106046617731247825536998764905936942066864958349761293894417793451725953611912892272937345037726827082603431855559747799387542647490728934146831320396493257500599065322544399962761727713050405415964005257190358933465897807909082713252180119067939294029363006361174345703617261172916659850301453707567737588737868387802595311134724897836003275759454370281980065373977143930596743518701229648007067076232225185543343529505947876975788464310615807693907479371078632194326342791827600803238463113354036263303964246057676884143537436595451883642459488194916398750591121763250269071959110414384924972582496116880449484489674312503060881687506043542375594431816579002323811807958903453670971634267568415139293402303509964160767116178741229088241370166508690978586909233707542982172607129755573071488222437365333919042155561686320354779464795770730971003766769000697368577582916501739955276166268849889987850617749719901753693452657488017019565902381171430993141682809984427327212710843376985076173347071049307127430670732355103361156127686312645566623895977102400749492042786217050499351357237175009118231009167909497206180029355838441706670314148099498596767111387237779289583961668523953111158963299280994552017878275104406592538296680845114839841133191148828956365773404880820177412778671649096698412322232129610753673588303538880144938199374077230722615722980629602822216573324053272244599621634274143075716012786373300149707151897342767566812241336435024006597809965780291310950138996525843401939007006794490707663854000410647069484353449849164549410344714732270412255542191060684976788261961488237035362725708386563603880239419717611067794360132615440176490420489775926106078247220286472687688099276277563911026844913065518517955903890950695983069001805257135965011154843801930242140104096993170874965284450340947795706731761444539570412653551076632354096519971604014418710190464700265687806777002682103559484533594455506138687564952134403560878071117275081532201272877837618647583363778899277814306378794485627161152296932012728073828870441251720309353135673409991011536186517847338920340843086634373727023554524474642070190003756916469039390502000109755951865619405991848429940628856428819552731034863492391897799560211226807481380707393272124129273144000257019373563340582243064926713761952814308939585274612740784108090599746661435685796936819823600495164936207281402193886687470799461206584583198839396359531070787807708520968842639420091921316382507737440248200201157550596359338681254365500615306491106332700325341936311429722923787535967973667137808769834657482683984732854795552692099291940001279673014131517989208891957398501759381807206741806394510396587791962054684144842852680985728205729961737596601996124631411186380261574553193815445892882275441822102489152728136017225311645614394061900474283147621518291641278687004775976597236087565359841206094534549612779116645347077921684207922911076355552248188543895034682721570513680391647713789261831159064472474483461545370018870285376554478203158133806593494005627094449782294149497335517683161845853831724428804314660816633402196842429159127350751091016188101240836886631739836507607262847292023265340942386849395304219112213129283226226355057938335664846143754253015146510294739403721380645988225861332859065647468854163288951389699860580849907395592735226180973707622963874134455796378164494187842474447919119969988024557970094947361665657469675273392604206017189191461810903591500473220853138237248447844436728382859143253298909597928274537365444771650274946215559703337663945261594403926966472989042982512011699217351460985195455052883883268398508921888925745592289345536825225933224084675126687011341067260855938047647436294585557144780910116470454049666619593032367041740890902981374116590667552335230664607538212028015952706384897537784475977707412574350771203201801013068434994931325097216493424940447523865710816059725642783744178696739769929283873928550613269520029968670648946354524718118089635478575801640045694880378228874892672237093367785903697243651754612097688106386664949070580147227806272952703521984524648300341190075327077979668973117444053990267428937015267617365518417652202748838834145515646064047241004867534455645619133542926606824387417646199635120420535580097021374381318455533831202041081919797402483059867236080674169113605165229685206481306873833478049231312282934760889515375957253934668830899473400224362531817155564121134439079606180406178832550721164597019605624798920554307918670475951768211878819249467242113864968549746515770155456717858018795996600306179043837804495811940777500862344046333006471802913192592529244794878606065970932490927668966454013185129135357650010233504427843759344738697545404570550640324549903417347816041425774739628478690956589624156331484459028230763148804515571731751421507464625034760064326728299603304758646260631273975189214420885732712229417117741264527394760578987368066037158124826733536243824299786669901343145903747362162724070668840395329185380748915230908727718593329198275619454824535574971971302127534839951200688857440620234944902369853267117229620335823175188940586435608861229304601752614964706628710295917722039127045206180536222342489527593315044395327834918695137629301276470500066557187302562271688621383813250617620461068869346203340243950205352622742096391269448846041457921130132223432439596822307151508096645935674052171308822815483348199258995222644044478189517800252313750372619246381915874976264325953661443914299622111842433279744487114419535852839122552271105392211013311527773124664087262834343874451930442382424349522299871955047287330378849608961315011196738189295759373732805832636472959334197877285712453799937679082583511340575316324663159464010966467299043826812246284473558996680585168698712457399210859317983073607480447950501584367640475682129154088174657939905534806089865562998914876536109850787013789338974887301665067259669989664009754636699706586228920977196819468950037427236604423505196908445897937367692005562214945584540846003484349583501940320573162432410957111569990909692488672704259893556266795749189015527688316172726190544050962154049579234843097385432745447391850889562205137136439291891419198816640163641086561179625447364081261539699426999972131129582269431709144917754848955413682979299714460683957283858280533706492720556745916225550874632606516283398722893014589150293951068650135640921029385623298500157180557385000505599575315077491096597565804573734948465691300950367684014309749727909898405119231467436940596442453016330477711895408847215200989733626640961682066284593856068656983521094936915192397018689430527482896613572015690783656665661809953913885855551890282365369240163532223419602496486233362419024302920377841640453357991685804494468853348560027577883760570325375936444025896095941572371318128040318569382336197351228288010516626900828063680003389344628535440566686824594718163218191932758241026859980311371762967223367929593155714839819804282168649283587570541841467628021852071442970075508356134713890569803335263355096802424390782701103310967450041158426884535550827408082632570111215724398621599904957966628682866241991982131360352986453721511353937424425805305009050951240028657975690800286827443397492627854850335089378659617063890137692431113344406844145129377704269879445179580772599556129419740810543541967872258388793936244739512739627950065619913831002041531704581451979437876476453018505778860129195205802802416520243352287765503933922037270212205961386994844012740513152620439828831406951599288386534212637451015271095187931178797290791945909444633692982599141689902759212522745659916707975260285484822985181405551775511170964011787757582724673850770602763953334117209852117397060526082126764817140429574197951804933224444766949532242294546115130979127975727127658293514574184420925018550856200087980927069579417242848433090226082195651515510897775833641523712729560159087437762734476757018372759187843677801332145175708978107902354747491025238423953446505054231794623718745024365059983622089909830949319848655390336418342620490892594588945766897979288404268211312631275467259778859119884166883846790128257921287947855397738967964373809478878378210772067288234222453493371703309413449679539085099134792194072345555460789526112840837706653411403137732445310647654123213486019378674357399974377178818704329624612193412214968852149044376878290178925999934729853770114058313357198452569425590392149031249687343596505907742790759189696431806928461634702058113472658132083668246902266153762396658142450251587256323030057239909420584757892779633096629806590498082651723466616709116856550645917904173785312766302705050034008233556768804653458672474241074439808168317791427496582521134674716550336579094091158367046733048858731801476389091305471487873503367143568677129958942053758795539599779466817075031889462783036799163088722350812020431950411295464047601883201826759487710539324768949398145005548305593655780033506189136737624383727103143688248623951887635199791418373454448692911618223105274632787638688772628093503464198519630798266181845199856725307177967249298827378762859147270580299860475837609807547825480022659040017077827714922893700673400781163414892971116559524634337773769859795034382335994164823916813226694761372079535938562041857244643190908654638272050061118489711709278958450637341082674648210934552002654346524065342280204347368883102134023374090700261081063334442073660983302583742117328187837391753301633590368791614876685154595639785468443024443755059329987150789177655774909453987120305038229558412292330614949353125844566797960894188247269327308976709791954971560742744469092096873076851933534956695671633181268782066530043698223419977461906450504786977022336674629296964959167388343409398859032533569684698719654542683378222992559912170847153500563660487156566318995025742061174200682879490297840264771421916472269995705917448939735062349726102126791450203154422363270833787866650878304345145731323491222810992855151332712474992911520912422831413390121447201854512095896296422553004929557681727364974415886115034824025818560120046224545025986614141811208963952869486494689528115011539052964095882693600441886919582390974068859188947985105271820024560797883484899351367168071830876375485272299836877699860412768508360174323678353990709058039818858817704319329096851580913818184610271620415318629452428179032176681888187703906773597878303054162075259391664104570776277558720115178013663630100193751452773661061434610630642838455814166360406607259748604836689256950488662491521401563548846612912264362010351819361743486719658089387928184157249617107830475404517560613335828513838190729430745414556952334958457961128343277362857833088103120310818119039507015964055996026292068430776069866744598089749120223393447231109036400302295430392059870832288423082047253136491207867884164141294737964908484669715142477090086438749012553393900556049017161512647337794619260544676056741213807388279632386423978789180451208419665654899738648889842105849720125956898818139453153376170536563534688394790748868829107409740955120648424971688544983961525968483508252677228190547670539413123993357721070767069035471487196723990391823372637164540628977255454854076268307999815812835092697701178767107227725926754963132027544304386188368762636725649954821011959539966480243667068455955127033523197125433655091258498154977294004269011365117102701285981681520723393754899962407997434759965482303467151930128315866779875056782899603497687737729632227970507793251011271577310377135085458888970139069638533818943412181689588100304644518215058998601715653591206983693424718948725272063124403036083792752331904731548015163060459839433736442547323017950026203366777040885352646712260066326092293128411020734150004947999512621494190204136893739528475491932516448879902007494924894579225101462089525771955840148321332416767259937995504846807405535860301318205639478426602959391615037397795039633669529996683004578284190895776248023003907043870444718247326623782392626546258405710367405235646249963384482765877492538661683755598655640733598687118748035635840220367481932804124391488575952611400997950953527243314584826980120416065883228507869763765914944811969320823220371958824254217086487063593787325805338602804824322946343997825800022577976575888338409725094693985425462350164145170610198306987140696388398546145550468919931466633926644284629519464448691003867524437151657659938113089698539892806036591687581156537165411708412542534149856091420312498260785900449955239766748783070632079465556496077414273605585956855920757287672266587887193025430043882134985214008793896378139129580951917921184516954633726659983674562367300943406026829894236597250218380242353979538950606121999886894112182342322009918659486485054137427614000929914731618105352209420586103278677054874488801164870949603815439108688499100269116174445258903333464405290519588175777179450680129978024257156028183534696947543640602984067048255055020108691164724848475371658358465353650960413453082098222039116873174784437457368448437188318188725658434606001653876544685305476971232836968327578605191980752635153092155107188297712338921343123499466902927622598018805403002506520688878632874831946292489971378671348086452038280139709610744768276780313994439308172162173980181895945946362385995005572780065442649512004847229374332168088178890344535776717319782035857317643926004478302971136845683687422012482813505620411596529729529656348739783798206325949259138242069425482553553023079077834256492109852248220338034585893473116699812532311721728603165232054807290469534487249415293671886559032766619209877446260569209459550327625091645563770989503016012114339916591638562670608539401551943805863684285359551674752989523772476935487873959483568604352251399134825191273168768641228162418320943125363854880328252012430025149253007212417210895066417429505780787227853047143698678157550003536749976015196463110776857706209913300082093870349740273132627423844140321711580416064267392817625530153251128358386303380634970291850412078884364483675701938344969558488642505577366363243844065281681094841439827036148847743086181518371238063461685052290207100319088649970060913745799285939702361754872284705492695185428553390274334840342140026865321672014451276342298773808987821479815585954915698302842040796419422439709750563275367211604785884835743773844241159748060821929379712434423807923766539962790077858243898443165640698782193905910980188221585661482136670302826869655264372258674842833641694999343411396547404932378973757565857253019336659122348963930141188238604448782191984898650003435124250490035949683575175008218819513885520021488583054957218063231680594781919751604234605300644225754250512789304374771512530622487626362777903085541811747875784028763154169624597222212215276644755026136165292247602496540628343283118635813945740841295784525844364865622069638315634425454578879347220280442120762071380240049077942965955916752915475444445305831205567251715743837867914252987465829996396477106257598022021646434181745696140808763275488255292236052215302074607510178105347936340262864477365490227265845408659038357077200673463010313353840035240623337003909730137851975749128243917898644664293511728124694006920006962207681613598601621192589563038199034567321417180625270180977314785581610083348351654294230256787173297306060878474333739709000807738812246920154648594266599860769488825993143061675768313573884369626306953581583740570316063056629546311579609936621839931629979033972195262585268657117801400375167332826833370281235082296239614292943039453917934549672678203685358201802357214727497343723327644233106992016871968645700612129798244700265435273588750852664069363990687734395843642998597084377338123013743404289616113638271134687894125384215490572014997081001111027269739593860013121519493934152838563524773596110894295206553951797802628010142208999122839351969238590463863468434493353822289799567941104229229736420633659317230122768983789932949210336885684397243553039752407235988368000416096156949063578021207396917016851401104873505395875988563659259047810348424682834952444810897843335301674449834910404081145222984520325892898197297964870162132775785272742511896221009123146346185283344599233910953879795965641702898277801649804124280265302735014851772734857022646532836315705696815628296207100883959667359163793154774889378623895108928475853949586951565019022532570025388233950650560596277465404750250085809276029784017059443108069947711400403361030317428689860874265225639094588542661163737291516170343247602473457402149071186400673656155989056338596059512908716130244594260871157706499470885699916513505517030016500752637241327399826661341541664839966172316346033277348483727935770425630744783719288595893225466498910113877638880575931277688445255302512172587237271751412596608082686679525505365809397592070032793989523580475822503989469985014218907275604485367731208864034930713445930152277880684303090064648103789491330372019119201513251506060719500901579906089500567141288536996720679175402697750375760640648760655361636880195310903628721851686883230527926267591410532010478285528122584562405969409823767003112738358280348721722378037155618432958065683962558628978494739632136467184141301386428050500064838578150024859847876011867382263394608908490356215182727353920767650882956140009104641084246452289203407198862289176349155154989918129175616153158007491110227101745459602755164584096564275448428323510427675703738590127572744757242572339986146539020982744640783081309194457044598090760909325858013761214582436090722383302017251003217350833556345683219185314374396820309563657327640830094341371509717245288457772604191069253477938627341757985753268371082087232843545821105398219010237535591029841199161280256341189628965410765459512592959294595292048719312035306556040891169882846299817248860089806034859823132063645682042567675059669159145725958147940064915843270125743230913503779739889338819938560473804554705649836901556310295918389857522356335590936418611125778720942607178872460077057346665181498245104124093525502324247888017111221131309933027150954294195211481837545335381402769946291007487357069998086711268316446115297780049474969493222936984874300055804909330802490746254550870079843145818021793429650921729438781638182300345171656154046122158544730465326899855571187708584783138931000699777598522753799357457330888758346860436074840272618206674179517532727187274489373779960523213726865637497440746370262415035542448813935602049485608640155940386697922684417901139114404658921547596773622410078775495772255263021124902131660487599694585647935138114534106005737717615474984517555209815804401140104626086435682845482175939833277850222595892153208534039433042017534370062101807303451770289054462621936557811934393264416002513862483014548983382449157790277215321794556028905612961494159680221018171810802163317647157566544955312665918101614061417302979452078370558322136008283247053531342204228265686948903756566025701020906906191105841801315299457809142236676087104476125420999503036467081780681324268222593450334051973702941761571558665913058882136367336372543607090860125494412609063534447774476792042216133749289434280746592536333498097222644485836646444043520037025900793060870165360462136586405136986158305814266562380996078071784232733644780301144536304915167201442101165162385943364343681905254540555277126232644456320643969136002061778981294257848807894883865676471178543958039889153659581432523535813518128600615044795549126874667668174006722309426643478783295829345543505744206426775498093937968074508866353177595931771154111092160745554601014930074132573918141199228256379731566405543961744042784383428313288719691348474945096569396700947387100387254449926730890671957138295768512376936685405953123447562694374700316632590568398410018778812430133269196833036697688786404077321806632632491972865925345069185645699711373015372976127049400005647285942605063352220887518799319836973639854381890238976647282761970944375221546074493310207588687894027983253261715536832807339953256546712448349036333026045131700467012042950359965967435468403420623569426726079994441784926136467670761197415557432838654120022388690785467979416632985143622550669094453712174811655518655235169874335925618086180015112009758455111542460525856479948127106920204232681586216471331571656176014627943373031624970002981169590093768182924180175376353497999332556536352896908989193832664331472241873100289780520475982071378875429045299105796009069677187960150494488040457321644323824104446560528621979664643755826790147869808796631643980453522164325271867921533225183089664693993395944340152169071130331673114252835504852436682915671977719383096314880491805257512668259992202634554326839687152711581379210967385850537848682992014195432305418631235423637710734543172909015525666650275912284029584738061674700813772063495879702926422017536357482269109655821638409766412475055125168546210741183701742708831618977960153840238847513144340012557908545254274359730751672953423353507513169911050391353524876808560518331038486028121899307398028571155184189781395993789456268898727004976190469274369441223492378331051725153365834022072278954783912724870584757099331733270739508330973290541233152458530276394647060770903897880112599735865689157809983911037142597231618246761773098921224016819345438557305634528288634401426564623677643743839307590738701748995975852285943194413043405584360371779735809479797288635803234903346599126633051752592843460839696628575017045781528998558017007491801995653333342800733615322338493379562203865085303025787695461006402937352490090313717849938459246783953837604845974016426018192757690803947337457662560929941583044369344239870818550096316263505738371307464855670370804886285788911665468966719770950904485104446970686775224044187900876010162439370427291750133025621706872917639966106968850605309987077200828438311353484509965588146274845989149812697788060304301121694772591622032644236478051727977849452520640003998248654121586353369459488748263871874417959290689165011717492700720414049138316835939246964097275546431278151700572578243725960667009831389835204832950166688646263249939681373177783331368940036516290340894582003526355241866322680974337938339998765636051799692146545710263609606665375324630535841130425028272494833340553791531553198738274334693208725787891634476191561935443568319212179071558784790291445054617662090857926764640180267403491027047626118648338373367218870427315256046950148662491299955491586257915332644804984011754908295281731411814882449516696518068370985489548397999771942984180365780765243407470860053062734706362624218638777541674027041707624427167949297513284690867510080568089012437615026443272838937219976081182504817418312417590656689642312159552682269694069360796219531871312221527546246872092946435776855278650519817601557899883647864680008885676881473232547869136116106253617706844876798710052612215943304248647537420467744189937611874938077487602292172495761076410572150670954372440468886749303421787842884533342250921664914282489603294614187240146792903030315183286250047377111467090734361593856846500789813269394783209085440012715875317682338297685014363417967178665033840135139654309856346931441687376552825578840755117735483416194412627977513654967224077807647727274215636095405444979084860289220190489070544845163646590382748110925149596528312319773536229171095792350275517918164990100647804096104334467568390479901499022463105288921358275136593217141435400844159146242169443428193664924285611349563800030152306163815435552426985588505767531643472488267705948168646827330488888677056247833451078191303331273934004161054835427115238175151794824764741197036821243214123218285678633776367307697714833195482696333082800359716450971618788840209298398043324272024617328019837070183543148769528372761913808703852030950914609799940148500172379206235407778770214165192933608099942421247639082283592812526442697922479611979417371385748091546554425634748218349010851519900797823131456722547227683043112178902680052529873854606757994935947874444939437092019583140380879796627315420825231596962994073008603020361917737865120519146781312973559643456598971703558926102199285276203926093642012037751953247640705286384638502716994690285890280316878270936735194214088892806493310164639088450153494144888499789593031437978672673140500572265711948718530176643021746276043715148333595850680281838944717590089921343417881657052699335905703932262777172289960096342442491760325595916927246640505718916506302391954119136997480466223414525171259473284272045803395683782607587070267344237634360798363743771050169872926237937873854872365656760652416046556496515967608923920192246634062699347411952336343855148096602705741282682039721278081989953842036892978373144530832523745490317089211493475496895379774732436484768682264376391919765762238742649694906035135908021105310771939536099041940836623119235012130617473557765268051683594584206686256222622959026076020565272550465786646797147905890231171245424812373857583768964621366211864809139967076170343786633878970024321393780068595571638983434534476388543454613490046572097556645851539104730180069037462015780708639993300706406908562538830289266268557214247602401608119990606069847444578478328792957254909545340424685093755908702194989130936722175053011205930561313362810717080370220416418612180742962400343347643635508385657374566830984542446256534096813512345329276365251652607482835025392145840849061616695624086730745275700925856469845070805737669098330337831139677380512902795484019695513200715409515697453333523735442950338465356545698237381345904095625017042555606940534355582762413205606150638875296627095963737466615996556683385906818739221005995576477089045368031055926264763172577069516840135734546882891843843272366053088267073276020989271642633835859088762153585496919969185159136566244114923361553524515417698235636688025548875760069709775444372261527975078941530956129492123526795600309628420189241582217543746493428006166117232073575428117122884427826836142291033506482898184957613687823946549659587598214135772085273566802753046368912128590233072506823778197870706588212164500756073717169831381507565062506644690105434094148812177631026176085250618259830271649647999371022062083977019992775100262076892050766759930680888596439510450709473587968798857417261241683969995030079412813846172240959021857821404775886886689450890136067740959276913561383896859355953348521576011341841475309539332744018719219527370977731426353859013446507603495048901639335781214710859280420640439309407985848206134236813642274977542352517895528393154293870049389398795068106533203970707478801770345549480342100196756342549477565928452363719851576388219982885365444988341047007225330973077969118139505833974510857622646725692235480664854808423200829703615194302894264599811001917089329574685949358280846242650544656225789533719661733366088174820935482231627688059434287009313914890782893265829034076265603954057134869118988595562258302218379673511177436333104264064895209723584505083610260401719412664451981854970533794403498217598078903742403133089842958386681824462455257148343800092750116084770389253525879827504095266171052732016812595549435113818058353539100174303371390554163761271401229320783916004279568648954594800641066935204620060060850463797638205907147836640200316503111103176600926460142453640396303467661699166181821128807880772024037910602669471186287871360120499219013803471731705278274512303585062305797363859001229551344840775442087995529156076862596687280758225232539095403617351208471155146528534605007237496575539676514359477005520753085644885995255567509668032352197364964154848559406267640756177649490533456770138118947342931189495531481230343271817188902321217604252383986480343628743766057213830244201901134593865337134182620501752605855334365530818956847639718665200535807913738188381303187606507508772617676630611402442033861420153597566818192695628445729734096236779242541992562468290896214648970991870435761345057196396756587582480760014282727920801909373941961914121977679508744334583281300714509629699953961662737695938952648552869195250575255056849345204217586012928006109366658072024708528051481712750107560089776793482881820067421057296421357642683975486236236931726321590372145373866401259109646984355278209853104891524615893657039440938255299688009727858628343569378178632772162341269485844875538078110255781673604283805211490994544383299463068332255124220055964990121083770880855311251007909195881245941919143456889908832901243182850863772505045093399155056876865943876368956281959164826713152136829933213180015471450734875641334789784980797273159236732490320984484005357906320823272213336222989477315886106522718381272049918664276416819949311414200365649438855032677653412872638912711614047852036401331105882814495404900179921962679086739831887151950247498608670636815622890121022199396430868819775624377691644692801194478146346351433007635724712446471288299946179922307556904596534387570396199834274635129011192597042026682082706359149675717206583243511297138528483823730551903785906722584336720552463929696189357865360129081838203605122871768874404601002975044609867232226528444147000741222204558875441261232900717685569654535750087477774549800693094554528965033203643685418740212753148598622718697432930349403552306652361851652060000859762093336098095900215950039265527743949884628992049073819037388344507374375184445930518964245778722702954284273365914109565529373241858427276296710245254492201129608941236235358625798752325603988835097298947878524436129635099742848144889400689599219015693987523681771612483264183327825030967125442966201556720256039490103778295447230126773244631936317248470310621518296470343149721936037863148794628852379021983471841395707876757180523115027853578775843050490883331286280995525073805416139469359484249076843718170544194517940181892718586968289092664611027500915410075560973208354900983345014532621706126053694432891546592080774806822966792645883902552028500828512757153241737326323370032439220685823081767953268583572270861761401420344789267180450820893209811878925797309334468870954414573675704052296589351377198474393268902421622401489154227255938025874313763728971150589684496546162174118898321484246092769777662731823513004824742428533548904683819045994801066808017280248311028148588011446252586693250977942002009056366847588516609596070428816160764864118622087957997755435112183453384393158913392907497476133109384760215173363250944796064181654241625191003468771519257593152218266094242992047702657916274852158361847490061112995236025879028222699506601842694472478244833857128355989832076069071897241026768401280525566365492678896164960634435063654566444135423599232206528523621684590334534485277968923595157298129402928759792001629024242239472868575834395619578300083372315227750601016117372288536129516964712742969181849547076874563829795840928189559940001430216022157916950777826193868594600663738452794679645860944759297760441822258429910041302976417250180818317723130640745240784040644726103818053425713212730925623918105673543045203897484084766430265680187675124883068196376689411178671334113127891669331512380953650331749946699305431822513345395499902223622336629686452280725590531808125220551892784224282559316414640721940419769157176347670052375653291835428374995563167792705005062756851014286794799468030511867724780538457836560391260824268506200458369192562078488171527196366771882519150006880034983202807388210427215336227665619114836513014557569587996102616542819718254825047860359825231214445576541521451004410662714487704894157401340087562283090114043316714519287270267435828307017684268447328725873224258070116864169504120476585403296665091535007973428575153681218782386912151179351062517319057165693334797661238126905978266341320353932855365582350731843860508088581023473495292080049441591333047192291433986718496341869395025796385001755367121745604835500348824359960259019515887444847764681951953290749746224574723721443573820107030317073549114598104677166586225687835716000609280958986533538451185939035159077512743265714001682204959784681473660723056481939870167911722852855075724426904661432322294285187469070796951904013269617816638731160103990657778787529621048648840788133815820316469297693484117439147047664387437517112574742200762310889122992687831711766040953680600159547604005948014433611078792276617681879463255241544667165045881206440938172817131260584782061871016952708766130171709698141201476655397014661306242782777277512811305451804799486265345614986230483995955037878943948992399052562232299943745983695890143122630263368167048300932382752510482026864221978613801207189259603098113311056475058479052500388149715915352157800209216158945549348141680219361899023533697934115255148585788522099184158447410654293390849720966628411102889657524974072282621879953739608901082658260694278772602669175384064992655374331200849180334255610982662456311292614038466174648980697586468503821217972816356671426310913758033465660047002172021272673586105627547055154362752108165479698959143170609097912140206312890162932141422262698002505268770677072425358105989878177985385052959920739495988496234270803858626789343503460571462114050797221366586278533210222113866513841696050837261126032228745700085265171134341803148711037344007416085859201080766465584858555023221850211112142204928113367913041846902622273862131990571416086681975559887687204648033605865339311839846500691174314356429038061732319342944410142893957243424856173914209719920457676497721819512725445101700481042740131880377623522758648361263738057880996716268473111214778394814159277599367586149431493694400896462667877387564268525448877438277403085224132888929189739970507417290957975026459371464250996759707671569492082653341880604711473997254577087559406143698273538540194910308505165003756178259186172807777520268805376544256414728358556935475900445527245822048311464957245671108021003795036953290175747276534295645550082861767828099620857688634228101956365876478861379508226018301976957014313020087602389208146345743984372646984366274741971421877211764300276373026203372835732842909863503840895326157360968625828052360938112315609667306212394852436790833097112228179915944545154388472848208836338829100985076356948440531377433407409019058297474311713507933525648400128726197301154473245146487247755786007357493366637691542630873242580517566486394821863871591375768882235138870193204549274745961031032250252216532358907745993443220654976094431163194671546416209060655055141276417456868252761630644049321507417948729381050470268771154056419207187558968424438300073044079245745078136717469356463648332484194125425943427182170383009346015674470585386028709425335177829973814378019905411318040057447949783127484129021309462930801090278056190955259306639121554786344878638362978922126313121776493596619244125142521745701552240119975635907119747379726057899145782919716905219901045820482049285384545194338888134122087846218092189491586134415227526608136560796044225241993846957617695086055952462744445272965401624312571814450265681367095496154816611760973617533365567822445536181198766861246517800615990386023332785809039869081904312410389821218179075586365356427996849137059012428902023359220279477693441639122371318016764008632630007088857070166226012764737427757274680856466637932130100754986996972556099844606702328670585291922385645834469331843214177708057631262645943598494537112006727647891747462264814343495364459398687965499708220358041174655874485473363374860133815091371172171776530860107967170167311539595041278509302804593444302406052679267212882587588216415267259677612339402891003844106260191697710840938390468992904743797115247254534864405541715017181803749832969994790035709263215587435598573380078485590213987293786278605866850498305267857060509970536025018005543338095821573198570927156875616824335193755092145858672169410381975518980511891825893947847301706727861068210581706154602602054314174282935191959909851234489450949203199011768894616120282908429531934381044958353102677059709439390921364135723835817366708128703093134270010678758002987431930943429562253077222393913849753735541300333523925547317604855991524597389741799702945443198380245998923308513486241687891915296520693802787158471432726898359177173822526516640641790952922578850714987225390806665857572244372938667755846644655604889799808777181725899263794644777593729430142031013675771536752569251235611754645590255956329404873768733315736066714155053695810535154201441989276776948856299762236365511679011839786019973877877115387905768988385224784074339952091088089236569296049938815523259819200594270653975053480958967012756092759894495092535571015565773304637390039908999528699187825183560103512563130391154410336161157986039777989100096153043149498707107715613995261480861634458971902569213548454118954105957678993502827928269981472379019830156690424328071631283917823053437581899087103704202964933253136852475125873663563047338488668923935594503646734334578245896886204832643563538427837890181078423197086222397544524645760232810935417761562553819469877538872107018374563959623845638279988622014251658326045265233776400919352228099406467591728250346670272427034520448242709519760037801827793913323985154624397918249206057804703417045789093605027193396361807253272241184680619709800374679793912692695420683055330417017108955648440748171712953054153647367273998164199097104047695722332638589861882226079019844750322346648531577356420782639494008089235106784915549214993384882293527015732991956530655345565285352017804419837641212830913482589336143880082971587662037001211410324466980553134173783442780580419921467583962228361669090739140394531558702840948369349973905915605076996002113964562047750964117152985272559529199447832817325615400130432246907312303339479250047328827311111252514420904775957911131980723764539157127891718664336750059711976290634523767373344349087103894098934177256170171507043780698581995722632586726049014228096723199140510088959932463360121509533012421353298308321907817997562131564337728756916608195241960281430875651454074718430898772437705706606805647076184676619876481344722380103689184756514923142891280633926835847833298008563427774791913253781015368340221133970743186036057695517109934955029943953115251387538741798090588496966624785967461052495793403248203229087829119859674477693964138506731413250312165666523553483888257380125326296944653485080793856737387853848242970184036444886459432126070266629638871505068703625999126580816742327729519756594414243753498118041584808837541967330785388375611805757388307141046598231586358902579428774467732473705005900636229485122154982038601453738634829543150407897198141464308464827248696366821519630946453109615565277906649711256054582580067633285547149955351927146648985440811863582895201155075421505943407568837760870707969767344079779112593291434246894406372390919451685599121899454485992058554404922998333909105934065887041016685631281857105315479182252839975135210539520261223065900480930747472147580991170499032435696957192422873898395612834865355147758739584115168621978977038114333013371702477318476069425808554023165845510732852203095823619629780979317903342879645311647831624071285998488481438082236596832191140353727009728932584208108206072470511810343987935626686148683517847492381980552214349104469244419279186256225977547255983080031120775319706718621758753363105464946570209744888693235713723632331408006881027754148279170272510347307138527095967320871172829082645239810114767742434413800811702468466288608793794227097043937962821267024973408656402476939957210090672629451141169767002586648125379135301693550425865006244540122487441961625553815896085937443655931714854107856290716721216208151343302200793744331015737152131204758358897942239041671857442072387416855328266963020700919130860592924012162243751404410308165297279980241107714919654289458783118846948161801284559199337656586804080213483863956845392872684925581579635209050731673865991418131891566046874570484432412105562952210245058889532968709077664214162169690746074704234758554619584172126792990263326557312871363894107727073969794871413739573929881954894009933858535470663574271518918584310630506720006975535953131557165337649194956618227512493363594077126346742348897457072038616605625384166570442670226873166415528207842185684798651743736719000252996058595000527992694989721669005048235651343077240979594394882255209114828775726781310347490414106912723418819074475422743402289785460920737367154964304829762202550813566493734319453259051730017940710966001426921037624308536492300242336973555937176557996434187569617916199416286686443523079288803067279710779009369355028573494570035264614572403273541650223258446698003475684535322567806379767795779843076721420591003937295156007293670920769329875572959152881808199614828861116282229468992896001321168186534605707603130462305388920014014877848690005211400239482534289360467147148121136601600197660608993247848255950000999055673592603869294487589731898172795284877641983517360348678972277686725659123352588257626642507258523629717692477016025906375172039532129687930644804204175763109588537444685423158331063160906476389894867898648790317604006673201960982985147793759466063344708150179091530944033302260677480605903892789545278912324486205409676150246981271071800674846444436568032398314177416787579307695535447861819226419806697563267221069988482768682680447377994217151530738155042658183489250464680682927890770125781880095786274111561971610088556479940927463498680598648640577783153630881657193459355274773739948973987124319583968301406004119387287998584820466393368897834831018683535574508969349126326962611843341071937574470536117159064235644837604777410363567928100766519388186658070206904229721930877643539246159658273298663329095949938518400975348476200351179945564947703607141877304781725235137623850536930437604344222471340736956582442815973012695800231931383617535492237099976095566750738796350269892617167466982837235915940763691023776637702326121870588403910481924695723921090503893429032867025217522371461278724413174567124353064583803189089551523973634669859673856386866253775702171288682144852166427987900564971835095245096180774732469251863592597284552356649549956116962098399871795429884275466110760744063560857366372566449867688408340853125666445637628485483424809086621024444951521339622743198496308094927522453433867088097713687037503073109879102819260627815803661055486797921736333566302423837388660545143192998398377038943328627636133676686594188407794145485151291743646221978346201451100060837219632174869985520297369470476091125706792506520345144308350744239151855123927527540324524224868970260902809892835146092851916015144002951244454798832902097564926717899862402918187748839276970959376284626810478026936160284443273507339683209390188782617111527580657399048544779348289049438996090314067339477502625704951674225487894345732079631770378045955798410310382541373999318870103706911860980821642216905188912149466541683845538524195937711083025009621800023417410792706641038331782871392965874687799042764250429887949757415465325635433570971307302434563225256040941409475430912518931226615290108648305046785814799443170638486184610607676638410795813428351330630893615046698606482182923348689013613021602774577986848383177389261335234925166904472722471467895215643645521805653335336974509361013082466661598435329454798506234400196199728106909894337650060630996473012108614960296805225267779731264416380615139972425886588071426081583625707817658717000479952102527474079901610245932122605034022277991015771323889898488998551903489092118918540003304263439806922893142601647700059615784085397756679646925767460234371127737860813581934881353726178380504541365828888956017363021421845960488234791484411742236548825908591770666571533409097447436318671234172605400218756811146740346711558893214599490306326617387569279484629727080107041795938235294267824980430390443491606333854244348391448820979013588249009496765398131517899361849078948448508763440096020236002507249420546829472284731693965736720900948587545823534899270510848593435187784876068879573035272358536745335092652927252166719898019716113628633978010611689151951050145231029434014100382799252209990760497555405766059020186180888562026785559638788349424858569334380760098528087597767857518147373224537188821442848019677708730047720987921433645860223344688480998279428412742908882480122476680464279464936829157134647987831383486439340783921722522871696085376972469034965594423570576122223406878310064166023088916496904120564456095837603179359877458460922949494575478042127642343545539948753460416567452780775851082867665905265139339478829456008372209999034900362933183179815190590066394923437191174902343271022912547645811763215139560427816700023782166041291668481302236236183323162297318511105327270142905915095769927862077240286870562470425840235965904301150141166324003231084991322788694248538471140805602983733042586292056383434529256018422530094710678934137982278284333737165017737338821007737929791614101707889872820506227215651811031709269780199388586423053015878451033127924719167864248442916215330254952868742134765902960662090914863158985634577437010844573795569329334607889426517017716470014127039345791184622902331423671223435472294555240876052002847894409477103599373157557953541370427302994308788470709083253130781098803932816798865258752993241372886594702302466701675448698810010340828408259846041390149061737352044233281742548931200512327667080311083724459924924679546979632011034183368476727917504347536605963038156596198935864650627974082080285387827561797608780297936325130885008671611423495583296371356903269239679657652792355202154416290588814821539227419016969301935367642279606167219826247828177646834447797430295626407456244472128066305913192121889462941537752751951862301016037846311172714953119395445627407957023613441269439992616755111252876375240667552219598422866581740086519750725232527805664891135538729116247648663225696297503596336985302068897610779875554609678142293385068351308769003861879875655845312980797205944342532689983254792325046224335300286571848045784113211441201973441973432457830095148605532211059475920643787166882457847340764097550997457487171753285723371956104450707176220491005406597620774210337589625758905045046274026291715721851476871060723116607408644728877674201356091588051004381917120935469284284738717225182093857214221323588608040650461345453469325269481741474859615677685212133481889055679099394532163280998318104495890313093237974959324112703553726773123245501521483539290491494722472409572980301483634333602153272725072596892492538007348630488515066204453647410453948075174108700510108498017695831289294633525942609911025487526954830904002440602513900791162996696452991556992675344468837156557003665537808907676610670486225288038402930747725431779926128972644354466127478242299992619012375283040092315212300834310840539443228443347337410614260770216409082650635972633755773961165098887106784283652025891780309647101971849724382290794333471068616551861776615423555921995758404596947789639526418345428022775943488888020572225666310941770366198784369523861206110701153269813841028234434372838238671024793480333706145544014148770986601221607537198374923059854086757728761385472241448327074232929574582035740386634464292208132131187148943484433330057634487714704643732180789584147544599278492823815106361013530136997431924727890778054613455171634048747817464758429300856768182943285431007292303481228873409653845475328093394735672026960127173257235784691159899068910829312712195232760903779525719966172222982896778148876367925363364200920112570795060863305071910356983248764690478092289688295766247678230625162159125768190744213859677745074918170463282760923441861557988677539384350239738692504140552598953030182014243620017492552594985955337772198731778182947628485770562485685592397191627307106465452301444904651469592363641992027689679041831442150760488748423620203391173357161390254354061976389678647027376076876423753698659283219884276875012314028051097678574424588667501220379522851901721299934132409835998564167484528013329575465785509519707410864149844954333091017583561763705475474650208312218340146693390417930675107038350003308841019382129714574025725502316475643040463612090146998496823392635440733116052014015115650682729833723292200076604204271485381992528959768578247223133656076521195256498534526292090909263812560415486206559847975722892363598417708360413244000639372555346189768016969930253554999754166709960408229570752705393828315286879529328786526008600984500482833243559764788110991118294403566586679037865835702017403032715669065927717417277338343848920072546326510379837116806917463177631794731393405761719893546174573748677733197867167360893415536942776427290953271773305662242480566844158209903572299077325734896973316870745193100894197141051230529460435647481262048989298914652497535253164702891841138719835429945328866519895535044938972129214907527455880539137806956121279597316851479382098592326393577598052390323872090302625909616026551667212747614662071855450982330833127898615650844722446795924257777646488488727895157137322185674116443671439775273171362160050156044286773724477300583995181631289159321179247336493183250099242842102869597663542294163531091435693897328505091407841761226437875792851020582041420227588154581923584578860216239627086643155009784265861903422997496892297989755160279210383193157866905623835622201624332700959595605085334382236280329898944760428648547757186989605064244442002180614641556667742072878506050420469277673381272901270722724132499975145222601315475675400838126555337208458043219156380849393826132266907237486608866975018751729463023476854761975270881190348282659143543510709712167065194172724650503286800569887842401682260079743539139585842283149097384066629544015885224589157212499731357605257335772436425886432674554615838522245233176325646519691921323721546894409320869316990216213694762086268905483126639312183844852159059539552361668366720447920557656971156076816992560078939626867230496672536087122579392359748619053928001156707423373907910382573718999274625548016141355942310784290173470022219577711966621267063139870784739395040409682805995880540807289746312351754413336630438374359591023531572280347268313371162572615463262833681525134592794646753354539781135889120314890909170969427662556812888403816907181782318574815844718093363873928046543407958741413924089641779729832129312323892118339412106789866352028233263945971660104723703330928251193551344633910674032235128335604097323927337206770565971679858405776118943066912031658569500749302304266098421278196106067248018560130629766335507502093146937113942439146330227761964667400959745211427622697704035030999954903328453234535954089961389106420231352822422160604015884814392019778826365048803948761827603340981523004202551900886438182425378641101665700814038652169813439237597813945218932593200772595181787181834984529987047719521506031971220588464108925929052563966606564451131966817386938945415664915202654666286034975157334311585134769148854599537387257862500715301160363986823544821314778379806453214318396070411643679088086970865542992422291302663692236893119384762924219528372795224558524927402158941622588195613240304329452762744426345881930632507690758116131872981272426397616785234285469149648859810460446861786876204865321415720399737354807423852812955131711457006525510379401179386895643220601784545061476889775266377426623762152429892510777720582143700704348721419901877327156272454957265702307127738880846065345971059895321585111654674497666422302848396423648423644636509499946282652604251249275298088880394112129157184424916714910727309047358230891127601626443583040264251885421576241943034510081047496699127482046512459765236996007640844942148665484502871203083804429145801944415202144363796288746201335550156121136461313921647502143204604686825951463481497950555642222888793026087078326738130384267329096882873125804795939628477332593476141524952776902648342302369470207107238912047202974113830361642699110349801673449366581044281056508249659649151563022255200496886051692309735502937977050215580693069971177810329331291506439145821701599977836981015679402554926548117990384408904825672997004006095557373004033129084277256218004576927306320848992311510510661526234898031738576863425022652964431046686961972663430666621572449918315046224604639453585378744429019795405511160768014517358204783528136677651450678828448114389560912102569339943027080016619772258875777389174136701362612562196108969899969374353282032235615665262519891877914285709001375246938678577126932438516906109847027984711432063322093147339596278733405097541852769749414974438764742604454186757446463972204702308493082349579163726666641110130002565979811241087364955747266920312825270055222667238781285305137307460611920665142951690744226818528664248553783093252085007911502668422634832915551981231949872537292985297338504144597783871396307196896791561299928598610034932043065616746473107200310974368226497680051851675130612354060963758685451504544979294723164223477484139067173061259873060237115649348037950149421820765424266347515294298550736361588928759773580009211448256701805865034227967200011343958273640609982887371786817206841477877516002002063510889362511852208245199893877651727947822738099772986691495771215271045030845562781584419319006905590142068927783156268572939002745493978203067799961289927691461198756210340886670359147427508117637125029699565717634674366118722897858906030400687155919333201100763921033719110378844549382948110870093586132255375884928564493446021487182988695125647070523864555554777433987104631335685010501203913987620188851920910759185942395737524272326954626887563095093121177846067833202126063666846391349952999454877293252354683296081308523744893334163630148018778075909699977293061822731589824844369966026551985827790153874563334968960914386322788131710265624760118336183298335537515590419909719685036357621110087105939765107881626676015424356364637809828858757059211830156214772032865323174569594890752858921210287583803935612723754866785180660533971770628761736553991356914923379022079730908008019598800397866431687173340763230836531572292446827865465003877198600586721623056909662359196354061505980148216231417494429250584898467980842379476043891998224487874183972256529587717591120249981434617336919920083233632163724803232373092849025787825935100420001916651842665370748464472287413874933086961045334512265538621865078175845420636191291043441696079154122201760331190895980878137538282990901711717850067950373411230557243565766704318615744267467816881063529786073729540585142039086156990371207082476378030447311389426609085062931260090967358993831062879401593737752843167313324558637498889366686929615274582745083460798039151767832910796814906967750500660709053258269976705804727504364888994591275327553589214884453936339508185621228051534783785779115976957637621237823334781698836162781770343729589993662293845792644801761100810921037467672913511909040587139958646842418186497363914010409928421873997790185307970979633549619093390557954238160010500161367748261356844792205055684296982377343013739655546655895066980493023992211321984031014014210293240865242955521973278745846741698385765343810473065681683615021713882150311969887300436889360064944563831312009074218604655008358962585659239286687319502439062079478243963995405860951656360244471348181796846983723908676772482412507973653511241888940558920304193118268622674177758587430792164574877109518025614736150853267833916700464099401163099470346868545585788626266662278620977391162326326564542684112709280820452664615293349738166663389453498619709877160418507284432175397284878110733190395787377042395360561230084222370755616527970807323073930526420301382657066824994911423226268434806103804599117849104164932312354623062738478110015083378813088938367229193677298377405496257606136650458813090158707064688861998828945251344997890894595934967371905288760489052276670997016298962300314018481625419354683133434401939074973903595553517892973304222137796632859794669530021891147899229429263664051930466163601264316202296235540326287104722741413375969476451896262590860898134137799263517937324324589848957683820172461606982837837414004259851361452780338665875750548900432749456855458464810148696238883313464121271307921476400612621088142963049351927573151531364565789188331324271005574441975944363251526931693969306307730180422191697520976752057783805959480683362048121883120731652187019652982796620208125438805685479471511594425798625897955995429621467901169891382718871790277626743979067664754493492278895940809823821047227471082600725361037682431107174003782053889682446533616212123560776051617816199959099477664295416766596338871363156270324886109388526963323434015829126062101000853032233322246570986688879989080316335039432353704697664901794003238505608186249913886110734079116340167688762810124924511584155079175273805819775081354823522231059771335221643069213659163258273038156024505330688120939434369959126996681686503805446528267190822639548439425405840291814643118074198268247334391751001595819072823405300757728376934486378000982943552649097157950181508093099140626249691281061162435590355216576597306477004142005523281469591175633286210299219726097343224770145962912968546358573466723633982600554470229989575919861980249359523101288452290067558983214821139693544743164808631957900884551604968464129975083559183377271676907373872398300772848766554664017806137918545272749800203445648083732394617799569436375412806561801993926457051126502688215765142054322658239489276597157779773296272855799091608517654325697588904010996115370155530962075291490967452339396990482533604903232571095081753319189789242850971892039258109938408222631798176805867659961387275063445239343625296644717232709399583759618134786260799584292627079902885862584517779511251437783032896359219521507042651323906356613694676684904811558233099543531389144137694940423798248929964535407769020102503576548346638832016396202789262228628062680069597612526118528964172225346362371700916933502141761240828007366109026836776169335856820791156642458144014105507911753826071549081455700674313011815822059932559174191163299988443492692114562760831264214296243236336441507865525653979547079442058471424536178718872241248168089540569713200160048408424905598072613440922908310478967065695322962675852114237604278694836747933313394658060469120641231062484914099839938375283241871870230639075515257177692869652879615838165591736294672231968378634068105071198291146988436618436242427085812677201007044536359706060729894005957962810119020348757634333050690214879013097239434113412065276162029813986021490675397332131255911385131715452753627198755244181578291834351357815885461309241358273865308141599065642177039813998767041070282697392733127068889271228227830921538818466938666571074773265112390061641755062797577954568612761519524538494467124263542067305568421925588407021086290501636388206295591946616874638545585488948796454767543695041180140498172931069135429605522230279515788504127082086540750876115150331843291231548806103896214108449296573423353176427503201031911074942302654233700105872371910453406204897223558014659405212564642966219447354108080004010151352572050949472132727873330849552232364170832296707272384646720349562049480553825011238681785548024408767218976601628087556914488791928787752419136842275537395655446933505205403527989908661877678697367220960916210422033540725719397833940602210427678196893868211354439820365496328313032103742788143897745755603980968296246229205162101972739953513909646026830544280003103247443614673966433329949583476424264823064173014739980028076804916744399660807089757233097911193635911611204608990782179839074826151263720180056414606016572818364052224609856016190077487829842732710538609901439010790423754700604019931065952313906220035371592704407282357121527130499529358245753583200516773807287889287724556794619605655179226196268144731159492648777442061822046293966358569980853873187719550745813577669546088158246764167040357134348955840513122270249308955442684512430066854546283621058509412002505767415093635953663636251110703418998011501786985071694014208059342315431814539152839897294268730411769114618276642882111917954672513035497980774072803590811080332700095310043889529799043065781823679395067212287624893371172718804863344803337065786641109255481973701505562170499996963390148961151067526503556781080095952026150646265116991307074936718165027063785681094782708095500974031813400518215351215615991221048969358288228036356510014827726733216063762311971875008828788430561185781664632335518033480253441116734563782812020644211061002681809061396878889288693886954746647018949171947473194916632894917321641406254004424513352423568501251414485223955502340030256768364640650201118826159729146817307955812924046425719041083730262956713655959838053492373145112898014372584687913820588635769962868030187020715920376051377687784519422580168634359718230086973323192527467881081890308628819946291776919027366991909110459139036311722222509311623324656818877836515930879583330324709235429340511565876834035996359417505768802546487215765953345604507598279349901943399320210462044038618871227815088125190921581213156732952099252231512970553416919737000526848233001653207428509290544753726364981041706253341645039948523356603879444633983900942943572450845572010005189901145652141588238354208587247029749751731958360777297374682313128590004313430291130110349248572348410327869268849580192000618607627989312482449066458366807399600516785430182386293035534086780249549253449103025597003768291350200397429377672559969380905422908826529405300044637361710702270291735917929930549023353654837144782777074337721930619275210246588772520854152741800342109820692953414751615089243407386371480139580848515159603144408269921345850970927307765442098007228607856659255393841386613702266856960447855990363503131444945602345669543659460978609837603096650743707342500293876222210087122424291630531528116880429718122755729486107787048143760768458003489289957661880980596285127883493488770252025981729578253189487194657594258393681368249681231949900844562181477306143516194701562752232521312635739918655113553726202949400608498944567373128844089614742257187893121914130779408932488125247083120762183376230937281976809031813069713212940399664989933017465871177122159642114388764186060185166716282262941826565605768450648894588673006063520515468578274255694268220369725118423794069588190292427052619362499796326893625628302834549315406801035223077464961673800415882801604034017701877506287977320607841908107324576982454267085997102858966968814174299294584788723140830580715853449010209614653858098179534873624373002635507115006940057223959557886178418572777078774470413192133642391124244727376396953651443249560590492177394928334007169018004757430549171566972051511511499827911673183568287305193873655799320621841982108456278137215093430932239887056385171668748123371342629253816508880514656283858292678114348881871334876747510813518484450055596599093555441746930512563724563721735950733287878194343252933960056140886967606644936721611703138031370186464790230041798158429815187705369766834065865075668366268287754783885074812044964390745487516913816482720880135487325383131166248503793070005399878599719792652526791509113166282600089002611182681144777997484821683102022970894357790832716372612663138780677487324206060842533399595598286300813467570112764499628940171688069247234413407308037688642197607570087452325491260916795130098612860742033836341975427767453077335971470384300379370567795794098385164147288639591561212335913307499398651063500861161804289637523125186909631319011963470523897731843147768316682450775369765022176818715370025031799867895858311789503424458319427504652917563550008028965027959535189766242801084482022026981810542673724997645270143218743214651459819068823846107789259225877392948649646554777720745249966388999724083709452486271130599862877808810221726000658445609184819702916620616239767643647598155358830021825134477870567662947757676756346563019118182037421249901409374411965277259994600152890809180321941999676983964665673464725757014718273048841977334115616168885955952641282741900288214790435809482724022782479803469124705331047699168586041717887014494235683112706533679437264137513715111947426016038766707724575660264722511836544393791840593900495547018822853179158788223307856799102677217934186551490155782023412436877725368220247433083280503987885875545373449364290599765422323718407463851492505543248507340494596436069662453899998922710869006749577356643854891289128342502562771903378899477345435790616445893064158277314034972375756372655352468889624584697767456595014939441591801684537900689312023966745798566531485406230180157452950452803645901425726569264154518560953466329570929881582723507732626335831232643818233872781538781010760579228575028726472769270510879661001096639984372756517991205642214578682522578146814605668852688797020121366100039446486334481671377325882225957578650829320647097716711583234722210107795762669343650112453826783854773841134301483637964006416109722866277666935962536005956878644707729337232334569602850670976267183980497538264361206991435302427025404807947197867610611675194589710817767538804605475562923821681432593517337769463636106648846817300923852819036549053642132976104188981928638217075300553857419174481894183120517743859707657017748833139058537359740317783072361067151645744501194406741899992351913530272053974284416021002027734459767978176527374209343844718715458607732971355448547645941692533926199257914952424492500796537780819892841060623844495293699538531706812971345345586823459411029072327198150420533552688196639277190486554995151107373728483762951290789362246212956121127420332076094757333662477711915240603631275303189168420149244161082912747055712930946316331029898003469097527056002539567102565080821375620174775070883697440881302696104395626820576786741099871404840147248148492523223361395181822126541565075013069715440929047145937142140994500314954306973947797601819722170894724544949969653025424619582538602034078180686287914914595934721019637256268417881785370012551767624988609143382411588318187423437085586432916963354575635231588567839597970918375162669433048984331883733975450945443320876826385856501376777045563690520079265785376686144503890077892807078614886915957875438386569284063945373344978881642930002048116044692040461792484354946843362133251842259495585519723250321060642604845082051335763015860685289705770619624803713014773787933957890901463153088355100353763222106047412608758069573288441926709955149171756104723847096591650257783018888164349273118696399992892620499098350309743909454618560349803722373413971945282601483638727937740146273126942617233322707265640589159025201447562241781804784703116982107563570358033820939060140090132982618427237150770804626755500144630596864071668739926791658419515802976579902815679496950333780437332327016320701801178732364055515652362284994797124453352294831137159423214741014604152498987308318492745790238637190371462844782810276146192416497451040529155834219969035515574906765122391357551881457717561411725715784632725996511616212872269300338201670474437692259660275312863536483483975278947766743664016000102501556630346609325887559421800712769911290119814611392112454561677229398476301486721781955017220642102128764903053446229182632428637562696549377416184715453738679768820991362872488792861416519124078329379360555658240868015935372479411057461138951210008755252545736056417595388150668917244174805393270338377674765262854397073300346095974661492625857279551356217048687797871890528283496018308880202882334680873741736204465981404402558537160665008422615837134462244029946769196126059704048687972349161602249604874993471769714008369556962492781821830477215287836748497075381300367745324640294269735674893584521200694027984965090143816104700256798980320758685544677848197774461613649864186210071439750770128836455368413116042794475016379868039226486957582372509714756101334274792741096540986414193064367995455405925849263423181386848205272094348718155738750729603793242922274062243680533756485306862648311565866933397557270972438455485310524564484757535311831280020381831761772798571950030190296207680948902041212648098878023887074632954098215035314813731949796224950045744480037854488114972085026080732810767407898329948759038495208498355689810287506506008484897298129791803385355298955381762802407287946517199868909736940562886797117028059514293346229930709703485548777263952065089567096133145757410663273737475615387968494659130937848800592114691612035110960504430444515504546290672436260093571694084495433323250183015527522776411304274299419938245332461762893049752471091237936901393937763919174857739627324428258404781023273653701778041275794405503608024605622399141028263226511470259088858065455722888427558742680686269986136200209682273513747877338556477300840039663962141722726115511530808207225449107837416002306835917584164831600845000445597151524972751446485736249861566419015081585688030046403229468222634635410247886903141143280385715407578787764747664251199314046790894363335295976789020947269902234941948000504971446511652062721601924125752781785749643201410305409530164726929026784481367451833765576441801290162642108033787548457840568445605674952860562263612211632180732362829793797166980344526085101477971650697796593319251637216892643195205297337246978499884945858890220779089451803237531892662392107603942668038391258758708124126664073730976562434167123403102050206343797106133352827418382958530710358694746310365091710062489706599478966472539619268578134889793382152644332773010598529412396099062495571738571594094306692475132313348126280558312719742408065431367710469216796293688026022651485975757249550328805528335466779105134426007114456051565408970436324995762574093694414431213667301322739795359676698456191457511776117255654277610849064010622646570582081066031183867434968780897398421659388035229619571247557462316345125317574289499953572945156568683761476519771051891233318249896237973262359687251538597639932411537856742607593611345848916802420428106525543838759274492735066320661917327682591588245714069411610184569998692882011032777110209177444554137273280499313633011875634102349739282140616449545364238102111459062361719141139953818168479149342982409213989217090641529971751883116081603986411916074131815141827962691181342896334889063850707402193504659920552336610414432745870637101024109808109429632631809720468670126679864058361612644554773511663801817276431991904392603753867301271732853109125563178092640450991066466991168744197622126297552541677277876569191802537734866891052262382215651128974373768710207487583012100792225512762647132925054295910674325546076023929213886202095305978269868495579207473087824339755071713343093517714762955657144004406952221677438259457000615070874278372971598817230304010762321753103408576308341820868392624663811166697240384128254572920493773016417024640105588142114030128959571240806355106003502377177728052648835884724837057415771390343524425592181280095532018083744775348306652159185760595047686564505797419183796218153594600265578051824526755031521746144890774162289915887944835581093673999796549023475519224597431372563385261010990624942260076151010379955863342677840672154706640900475549703466549613287634264688592592162646513869119619530752009396489131111068850138356164684926785939469084753055440308996755599046098408233746947596125282487699504532454415178643279679576864180805609989688634913072981563903900859902765190913423884102945334545814021441949915354369306068905243678065642752085211769380222692114750330852495348662120384312501016598131847241408946308747200724890437960043736129697110738625304357673694753414759881971411955516386031681561236090495278004518821091028404432682350939892086177546045486112642940317546581004439223888390197417591702077226816159462823074009172122979896995835033972092621308952267886207473660327879535169435531002725649404821541390206415544228743708971062241914351420783029751253100282745125684069504943702260606547449452692396762526089136992574787416669671032248400859022858360775141100036007948138426409252744342105264563950485355169248000556204711150416583852531877304073254517165120367088810192832589965895334278175700037636957070500888885777116831448722475270704129267143123825974733971605997491469421287001293162763691140660218467215927352705385666164539214308398719103608643374724871479323334679544081034028354028514167169148374229414862433228523496830800206492667568894459284097572432861035076908657720874419333283480175796912268531816326632977157409058176913233415529528334481712573228410569956152720192295436253473739260615896515532396250100428997163595189326929055346487821145711518925844580117724838868546609141996753577532949701455457144257410013902410036085253788673284645369742184368285313285169911223430620198706045126702908034799677897228428876926060088081867641256792918084149359863340130592102229602337597897551881928335885342730417516912739349262223372725058246026153468138665537886166698619088882909571141316279849212792153685761816532995984064189815087010568059832985314633249696288432874785392077772940783006762117539830982965165216247594465454764922904344409266965424076091239466325953516627354294891324506349579867333889731844126560184394657490636672802084671417206959699082824052337698851197470627678506410373913448366191759995975991746223362057042862364369491929565716190471473927184500179056765852016353026458219289855718815742245402816925379422457203661853244760965854728261143120818105123156497690920231616591886155227261912220091473218937687656133966208631596769393721709918971086793152975799256501307777091515920230103813349694956960716243068247662644780962311127214474260756108597265286946749884782532268928647006536922108743682184398624013377419588710076054644699721252898390822391362177623185602811209027217985094072430603398821276374787187233576175265932350165334735051212384886727726167562627230943356536341736820393278179219134381317340349656312286593294105417957250296879472240472038792097889082997594207938707229177519327057493926269524435204638361965643243874556041786223117354257987378054004335314308346835509749367808461472852623961772793956004921167048459222880686021639156788318872658735945368744291406892846894303931677717022313455782591294086954190871051832524568781482578332733000073186381082423056116290202822987523204567951588866012468669741934115004600159805114023091530202861101445452436670788029876489998867286865519947270076442730632929417777930337151127777713524675076676081077948799983733346457406499934576697998319117472232368445904385617005249843784266487148484393824606569693824104075211547318868344425255032738136803039689538595448027209663871455418754349703712888990104433849916371541173966123685025044526522741880029855507524107130511791221814079217785277754460819686381393723556418392565729186878719625014883539585022141758566146660056873682780469556874510518947879079496341267164332057228487131123351854820179764381165465722506875740692906338919257513730025575845120476981921992934842969728417730744978248032945562121069280362523653732245502746814595667278840182086276299384305478322939625622078953510024542831568164474862376955932631461653565569735305523222410343750965439829199698076811138635730298767691363074537061709593632943707112703717990063439022295828860977255836374183745121134018574487040953608043641796112414971777223704822373377770787799534446825467333967360256844491068780263816424410480842385035836492677448794865930450508325877571372639619985189706407554382443464652338149162663684737092130716664136582528068465903907944990423739991769575196212024723877514629390664154214990888099282685031481303567240387161066126069755559914463068046415589938662950583691478996229790122610734385407168983445148080449388494878885788759773366957865857149886747502140722300710519968071904556929173122535493726151962026055179224314043851230765806751299257163604718373118304159098997169422349181991042680728549184719638746358308702233016444877534678212725495536188346467801148340425643571638938773613277790699646604866588079586574475042695476656667364772250158162544286478159610106265520185280384290540809796492500431331283718372116701348144126289084877318353834588964009858315436137337975746434751914048793418485767568987211840715728789022163593138365348678349839623990249579293331226135038981505503955949987960268453938308237638782671602229845395290206668665454752643834310009093493385115902587020370219510361127166679412840372354604672833888260498428496845482623038824873997177565601092412136264755578965146585815563287100756138424876660104222145032098078658189990746422886977658445951326292896100349116851055294215754412061836160887534142545039247847853082762003476254590553871897050107945426647755894308610200145043680708982069190250435366320394136245198604144906880644258967936531159011192402727532978304633173577747422585143352609283614139276460646069446649599472194361303853134324375168875025832878668895750817534781188362548704756075199570740040951714955312643563218766440457437974148641951855643590344392021054936846756105143310853791266063738432047043890868266630759491110541367057921907584802548249143509647423292781451487171028919997317757508224688317027804467814303743893569667458277901955925734542914622803262057613886232703858586471033888960605441655998486257763327032513325665144040880086724134176538164141067012469331309999149502420080796505851282133285464989463082030582590374441672782682814999911009067888597395959288274662270718129899903737868297209161550890122877767840325933652231280685749096928376635142763745929527314176977076806290931828033751865736703690189443636679288331497585513390204783658531273228483337574498071269217432934584124767038081272394459243217378083630593087950245307601916413595885387931061502919695006915514088611720046428813108930177198456737516826461915322292830443755650704574876360051042103262272759610386135539965003938775454664772413463728234537710634293807884858486317152935962130236244264310751681697713015579156994426966401717392381164989097933273078321321097539267882562585665028394600497508869120039559236777442600960872662985545058858217032391247438135926238759202291363376697575833810468490714236193620749902323449120984533930466856991320830227000769915058318305121193136584857821566393502413435813896214185664487485596850116502580526564699469103632669388646361274015075718146161098155085354646316314065837797601770959691689515797858043247965779616134029165119563636001904178782819033955969083128853940299838125960315355349808200883039063328429962586722460906687034243014458949146297263241828821767345947868285155221555664738843330087699315570076423890359441712203169553018838695531037610677900996845052517554487224979255016100334474714611992165956292684240916948962346055624303395004383893267843924863560224347367975135027200693698529954708063876304163714679963874028190506059144879897056649439242492918994978250056037527069998452082457119580770090150425080989593240142291495297123227443288041648343174932888660574492633816623235156275959075845640222294817415809580263285016885594745324088004709079711658299425784730608625713239503811281794948530587886952195462743533512129161621091809039541031728947302697727242132959596511498242787485185891280909558340952862886557803930096764772277800982180334027248573488239795487868009470117195323203633142990392458120615019874606086775634910041474477676897277762376748168653505287871812457350683947896191507303693670633919151418669785301764369423045131431292074809238018321273382629707706574371745517014170916681532935259841722325509229318949891699879144669216760064549407153397613528404050767709455592399502965078289908793106324405122274796927914567127751553485155841371458221693865397701188137992676304016645375616937149730503351547086592425918596457080701125651291009891925038141624290928999458049650965302172860102924341628665456232642370940885948877922254502379062971691925111793840076834059394476808260166242290147349484153182357328189484565870646973104405812541623788397377948199213847041367459472540657839279565651210900373592683727635938374072916127991761687733784382217182940511350172536128980173752429240716029069114156311467948700351040688411775403284152473891715645269949517164888497985120140466491527889500237890653059314147382074007836354034834338977887630906001448406972625455953356379709375182912373475047519809101057763732154387044014788304730694036664061544664626804672581457555972643465220687674532415398460438661070124240708932644985098649399199835523489151600589795161168259574162808513272478866857197465962820742213964222021809274713244136788939099604065786577910460527139438870123377977983327306933862141409485106961033441135978629076331162488771774680259059706873919933017600845535696763301207698093145378629250003405168384331351552852653614983639828392787929330993447028375920565733674433199201403317394981242943702453554178924249401664017257780190761997580658957503343045544065025605062844607608379101800347379227891999624372703745475630895179701772006887613070720723203805681473977461516071054318868949551878746264214254438216619656039476746904420619197554535622872911610099687780391760944860621980156750706731127867170552631602791061742225371790187397544326608277086637977356289968486704714513376986933877218647562604451592483077148764974118106419493707927453719796145839988122227665734078408897972248897276251951116114872822005239561128246634178185671138686320406131996903195614006004086454560983834173482066761009795660317265176606687270729477013288997836089349390588691271279287664241197354465305414588702733573376927853811838073545598145628194457338646152191286274145810378380161584741298906039039887010302588823518273426312542580572985217869029119987476675804487678505181189864016609786076666297938734999171117275261359225964206358816575137358384886857237393243613412227988645205608607856221194454628674080567065778446211608771561730112867988714649575528357214796322354307759706071832971620067863722388086108122286471874994071649380174455700667088005234864157586796816575061652463141504948000988046758812329918812462284265877007559610919836316114858243076384248714681802004316860559228568648763836883483545511353231851220208343433299552410710646267980557234076332301522501323928894151909536279900709241020990758278798532827572745340990712338658331663114650841663791043252704002777628933730348105051950204351777235022104492277143581612212433959527642528391789952830003123854484708949023902287858030485751511572797201121046375134807215875510847939008825626771651523566886778899799800167568596279808575002887762298006912843984929841092811771445825427862734968409233318577008372672468638683103696832557849255387338033733212343800439269389864695176757584963876181637493209703770656668769786120876622961807353838483653040722173766120642525814060589532841966063598946658264165674185595485063290092813101471105878945252521608057872743324453610421408342422837589782274876500347631975146912127260819248937726410413648022329690326415830801321810079140979249443178636748546671303803317025819519709605283690201684653962999314704276568540173234941595536869811986377921691708684345719321418383379442530703528289079382753749458685284331773284821904607111069294783304397386971405552660094181505303758981201704606923656586945777320286449461502845446935473595035186839541843106615290231218508621852553514454530824460157673657846131204075491506937794558753576013722025078353325724584093684401043057015313460935578296481756149648737921587631012546879241018442284980964199609500224890166194532866674613596451505007510890353645137610460244389251799349483292381784316028846874216654506935144201009752965865603408683852425294446518131982526944085352884884866527602609199075787006790044732493597697016576378733983828771226560322121566640263284902499177433649530765018440818834944472973606736501395876972548492731857591613234319968690362334959868168751906556734498024187157387937784837244240966078744117760743780786063992701775953372293216476386267537469476589399586021618675009818347276885218622843323596071590140164749615107740995597722149569930461521773174848315865498505466819448459617001181489109702957624538789851169162129558126916590683219847210238537161901727444971529830566978166373031276699321722186584557601876347976662183169789929667859819669222542875438068524238252181268722544961519978342142187303324085867795352101711402416356330508392140142571683458133102615788456083654011377428590094281256038212447081613666134945545737994621792549241321848416065567788909372911407818143916575039178829248975315136943198215875227115188622102509520729997717225585438871792706716239564882905697679249213473549434399406583214188931302505789972929693982291029354393549631812788116302730880878028388666258910972919720786295502530868947104951690775861541803959772313477190936203922030622158054240773903648744929736562624892366509731745382766404386653075499854194923847639114701069391199833332666602004630067881700310887367716862237210492180536663921952030853742454485556477971009211421696630807114456480896752227272505062639099148882784781047671176241051347255189371914106608227578287466044768637104177955757460738859349661993850489699744623269768979266475130497252945315538564890459309047626277084072303566206021342741964230753682012206896053379471186788263691470128458022194763057883444514820695788741409641515892233257167996944902272839686250499185833153888353947907340184836915580725106251642752669185274275572011862136970907676332595516328634119780896336568186187078709588040355292302170825938139754443119920525898975840601080593180596161347589566302532773319133826631821231965556610963606898127857898146085904204654479888684070845348909099018132010153486601179086602724476244458470566380016750943751294886060006913879403526705448669624067833236773691399481893687982775432941219105230303493087108576374939487305289995803060510675114566446556974534550386361905241460225556943443815244303422697101659410055669234384183872960721586011792294628615209645348758725617028564692868845914686889128997057005980356219282007778988704858141095681318719023998951053037752567974847736467811787685695809243942830063776509729988721295301953744116955594342986043072877096612080468368537944882936839016849823828508885214102530792132925237104316891194870509488663451244029015924274170006280899095292444516113260138258859929845473420869929667053986728070381455597606833971834005188284950523429165662521655662884638005930579797528751581058748414313262370805312352200928559787331266869775208696961901733655171958777643161694313957797232249538254898566788354629661975460982019307891318513617332150465222115574192752549466229882390790526377297353527438408749692180307737708752002173734603862093264640312803809347252405805913731338897999667673182197398221485832843940989085401551712332293733309016586198044305448220840196516624415591682580154451507993701534794547471530424384198753713929665412793391640146494144013839791762049005752875363986144121088960640067153228661923203186172233784239361795554810622729206823152585040169709427253430946168182038044629261063734598505847841680580192407354722522691668181852069148583438446978645106500938602656769927545667790495931145307466797651175671129534940147371824897604954333825046371111000192950860034851636019269648906188008181836122556050873199421709291223937838854648948618456836385293956417749570644099856649473671360203224976172064742287095771865328958662867688233778123880421527318217553363213638276479047281363642957186854009205527919980862689001456705720167515173442291689755325984972010866256041813803069919822437668042310890556227944108136073350056623725999063683120096578500815286614297973965464417651319727627964773502704504377038407982277849122797548347901006414969280536026815805672975742739270624996130098437018594052609374752517310575387718172656495593347849658361379549702425251773316916073149653773410890252124203361199478589732762566694808142701748747022233901635951948083205703273542698015681778330736581460288749855267417340558000512209169673557537215708804440084057501960499556480066924051042912393744380536935487296500370305217142867321870877668487554280167591217473604663461562473979886205902349855176654224980122447076703098443319949678887007155491175343377729068192351760624310481910171990614958299309469655260002520847216882660495290394201929471345512602826785141891038176568090029679129179981191623837640547696805845052547000237034522386354804881268764403736468690172221113966572984598553852381504294394161074903731935866392441226782360368170352795669229013497015761589670825103537505804709910953020723464503190708557433945714411380687893489324487827646843365671976899131546381457462021134920210591666693110304638714099949226763989982088069347465320855097339923688312945479247976191360156250111777454665226404695499000547895454228259066488156078283820434642963880535709520828509087343796036237932890013741514633083409662291518684054855975000570650214551618503375335403402333697183073464294465485834216878077678408447670438891981014974643253284599178411481770415540361558749378158937843594363304850927877200748002892523773716318048265889255502834060260213175844834277531479674132557363167471368813167851516543164536973551814897098299409489500042958619931536462253146524382146596239557588753716465206697402166361441136187330314053236670090476707437440423228169725094933070480584093113593299483629823818329326620703346063996065615220811767028811224101958596340414067806358246219080637774109070850890434135774423773935049463954069813798066433373513904225055986352641687257794249646085724445558136648061673508651232975010454292490882676992493138048081357087112846115647213662205298036972604037982981549719579102440145143339403746544281272864884009117186750794714976723707377941879522523435026392904342641216503120375657020796467195691786578812605982258013449033551059418615494663836473138539394151276930330169258522867621689058126509702033568171674894988477547598634419679300844457438281534475394697104854160744693798947706106296975085735058062129675168216707324586017919114831025636449099541780780744741591452450073459861077282546509075340507259065218738380122658688628891410039722097376622963178220700243697181237890853682314311746203971938493771629787132369950687161672097594487755410022323309692577931116864502483835788853262655267113724624267092208986203613026298072775743004730705243524879778368974702513455112397541387283538745553533934604393252157468909426788340694040456748010638348722811845124384134853162745798079106027209531925496436387023893733680959363062333823834441881771192149509184147622729703267861920509767766553571525700249716992921003333758490341714820900197580225328447058566653753698334005130734040231944043268834913539715579763846038281985270649918456843252466967877275646897748052426508529449279047283762068878242471279889563972193417378917951947080475885210919357994292314512861378648252169140192543388974896233222701566078036935333415795119100565936020633524394149387341300604373281899288617642989999952822822247665619184526005288600929602145587639545756702085091240583854659255182216740941617883402939520529945693662697740317822106230988862773497715595609077279211155264484852672383060964082539032115450957743639705227951861819203838722633525003938733480515159744796387366353413261810140471348866570050146965625467886577815678494126902049242668782395353547358132495686812230050582055781853708171580706271483520663430777215397710703805827228817752558511061365872914244273609295354917468806405381398482344610149520389215469933715275759515876400768535583594645058009216600743985526161112050429305019230152760926015892401527569312652422805452479465076113371103905565656627594473458552292567978861478833715501560823373995744631786275357413721783945676775363255262273559874956618430033084336096402775786102555786893252379690382855254515534068438370293885587910392827402215844291969848384259274199614485454020455083767014769112551735931717802500815768365464350291620736092675142279000935286121273945113143938258077541279030106159626939180102758113109916745018106967492019188573395655920517904605197784058123744898380077167052756434161987395734852912110774521720057057829012964516270743541935918074093651230079262266712874730055542703070077205028538015543247905383289389540338962514241665451899236800589395224165888965116667214469624622860192526434681671639515393575109430708422174625569691542280005337316640260660083351607807519512531310287569338431556869781974818993990367419792369596535029340032081422279831995009854724924522136628444925856040714855961683063679458214679743374572930720789621204201590068374564162171170239895866113706973892881588445704951248365034244114870858103202518241942374764636579949039119012779956048207805991095743124840918230352682942879327989060903370567641444405620909145951114318652926246932180655146134150957328601709481159847819868905664524066876367646965289658781739748730191427690134113636026993778702742733954181833360798965314098299996964060549419121968919236098639646962626079486079783394526715646994737709704354595253666284115909808725658637061272386828313263694768404458096462987453718062648668891958524391801046078840261901815768053238938906100015134682514777038000939760364175256850989747155392443867981058545466821748991534601643970331990981068759330621456104001724359172335175665680632013591313070765176353921942733837968027717010984193437566205082166595012369506862478653972778450817492145297018195967667692748975913079048888013539547565098834359765481840946124972773970452586634238257998870806465940479913091867228688390988471230372739704550050822115383437753524441215148489072406609635315771874517733213595202137968624331383356700214984185648159817140110480833033209382634097353884085015642289433478706018628252836707564739790635992575877926694981820097936668064241173811889629043478891943464483905445073896463256342092999110505190985306433256744346865105606229921880064456051453426147386501676172697652136273799805227067384214566756922677228326288031310730528971445043236168381299790663764449077460535890760782003046680486502634215708721658733765352713175887978669354880764298698683520460277243665944025046212057183349511646049160778145328627129330773849852115720274948277953478222266431535605227480745942036169447506922143914489485886406720909859069220209471679854388311131825984390750548484576627571858933149038457073535461059091769913591653632927617561919083083816341418706930771995672064413392510964592229709943059146470796595827143848652855871288754886127352285886104403081711281768103757016922605386126156910255399346860117050629343711582222629350335049272737352902591831937453609095097055596846678577889637780085321614880127334033860007011964693810632482907003276664868934604167852019982473846853109089230794431462139865811830161693167704022504077449650679503291962514929549164115143463029728641807097228141347301288313170075521033793165501811484530931181397658527240183470795683968165112178503193583954944123343437594064148045860911622382361132352923519478073110178427929737787484256462383912059116311800745593985772791678192719746079891074077091468635319292836251022854859188656519388799532832960352738479201816060594545680320499491269337278545676970405166824465889523398539085048561200436882265388732148350105185321184418343165620163676430155327958106234970838642730225426828673227495273068562194001031650087650094453381261083877013573412175564106951943471978999868627132813295020750884558795155756810090215658880376126649604012897295614691815635812058857355637030643832403654966098187412775041819433912037580341311419960175131030715883085473701995758845388840433255626161677890795908049528943576018054272300062607011499034744711146467859986654092229987629387392678547333202757731601947493043416848354545698907138987592883621900396296874799775704175252961962932299036448263494346916615383168663825511350615753293012054529408297093924145332083717617886124277126711788969732402440729331505892907917366819872927457181308898656903104742908811620144945101516005736087556643882989048511327584321541775146390610642609070179834579354455936494674763463430343042471574647716765200356229769073504162556176655122836589130605136739624335401723433924299554214927698929054647606941423347744775446182499662346601086104507152090010447817776428233253593862688865173362011315248893645873842936296582691029363742357415374839293569193317147767303503526796588894633735010819006519258568384705314808086100283688948487554853446854878775476017956764800494996037058981212431495962625209283383861033826421011600757792210617701317362812888828142197170937056011663079730861175136404157140397160943806990886522271591539149709288761001690433145599540734869081464275046103390111952452963995498864347448666298599115539793664860546416262100420299859643722516288667175058301470321909175428279168937467660869702403066691573736687203364322677446821432575200149021527608641713766151765419594741549840659744453290408347742152945581159049488538645780563102101270407231015188521285569041742406253308486852191335884170272603133753373410659122821432690521577872427120499674161460050176735732998036024960631495477940872166186881923687944209954941305256275042680041247644756376850540360051647472164891847327257424303426936511581863729843702750910000125460628940265473307133455482079650755407749001584060354639766956762909155699667282244613162702319891937203114103505378714999961298101359800322214669204463212150012825973929209444294146832423865255105916901441751633358095272391101219839278694540085024863774427383536216741572876890539163784911618297216042366432511275709031624607114815645604731643340049057793101740715107781485260259328513571438302618805970597977043563560933050312843013984925774963705640203944912093702078843132224542104526514309763168783497626557292415875521350006732076474779595913091813741347780265694162852488224832863568477262024791539157318133027620134207120772513284456840077088701156551172774677408539026520074473985241419430573791491185657633626810334170426722040908337507235611680600786044771925944484764959152372584054726934295932234060382259272925611126851917243020449381662750356111730859834609547972072824173028275557609208782941044521252662976229370975339260051047577646495054107846964717321299936075220247267861860299309508543865375544144159016217798527172815381738693405425083661828818102438851269950122869797073733946404880249792701606099062802217325822365419070762790878873954378358741276524173709368724176555942368391859037592588140211887807646530109830350937403123985873076671754022366601398827077298886987393490946657230294193609925010444171664330262658815181414258444360511138703836536967629084048717003662282232308315368189753731328696044235997989486232227779747529452369013150649164727832900100876118583391174576269931957910058979286586099910876639898533022051982462201005949703547492162315170015438122002024765971661155348177094862836871950326163610999777558648914841984274689674052399580831329265288875190127425212414117194951793669852235233166148909271340786847449651670500029140142935320569367891823873527093036570654926590414655916196741339438391927721617557349910111449255354409721026990918955080649806666743618052882547087839769987952152862900818649872222552517919873172430964150756868885320257100649107212549524283222089892840093448390952820166556283274068540998355754003402171092701257964822406400497406661890325326798083474412843214137613146294889421034884326011806140466368079951231475035608966333591791813712229621443906111836702448697352240921280194087058407902394300102876853838075859246982290260453821115491381297558603076311644887722058591714144480923764418107857345462182771366314444046363035403085085276666636710209917688269432402251897457263306729304505091131297164933662941249361498734198948415348971879954147261470907846163234519409009601079687348743566186100213888267972919518186681102368584067918807992976025036153609335946346063485036702743517551442951740106525655053892358700769565339862675151726251893875224358529289547264731771797242125659023474954784293489706842471078034409972986697282422258810249137933507038404762041992805165809686143909982873804040267694185115571383829075925120081389690945121770090987169432538423585831977395699309694963514565426816316479292517139531958385638092343594932327422327450406096069216387710944134290545431759478242603762167992518891977933993764828385981651562747860357350355005820050524066384777142886731496018369034955599716437372485555219933751961057845318258220127249350111154072186991937254561430723494410011944629898180189226968677720639763493270498092124065487857837824880530567397544487492554178634883647546143575378301218127641588676762356989954372170233645563903074776080940211128730838993639553828524403752351667988015989527005675367368918010362103746220431791709294255729382786345989181820711894418246862255980885371379958574069952989625491387984342297373260423558642385451209992209841076683702896110704066851868638804460783055764040382599767922994470316123296372355949937234723880765225170076168183014353020602043294281882063068933010931292193366857613025108237100954159003893480195521723969080632420083710271546254173409436678055994338934415198203623773473522560941328537507617202511114361874393788728848365329202710769297721225170904554689596057443430414419223697500535083170363608998883208023407558220378674191841209622218220824763531136418259920460512896083223110771131620375664694816479591949253179428906932960107310844449991505220078262195771996145010944502730168583815792707960766398942623027404967028069104335165316604212752970227373423045086160348308700634307321887481974835655459454836117269447545799461613551180092854980712427350855040875906819522341430932269722729422653123105519794740662496788188593728579149858325564707653659078245558279722292977330540878145597238254652128401556061692187699233917905281022711355913133046767833006146150297389824704725197117583290138684239831252401139878102368440751876429680675229953091786278336143122544707559745028986352544382098607028495905911824222104381143675455986318375473991258675501168130760617862503742536110720177443337435498987785760756213593854250796759673509311857731377544974467089910522777667927176284948418781538931114796900247392108217105851617262233706039950559535533481004009885508189410431591769621298773218459408812642103849148839741516787587449057205021879334705478355055683737048382505307124268761251012036621182866385116580553555467034573889542492303700545769444838234246332580443725490114408531541463620378943822074776842619229317203391009319105982262012666678581710080883652475484130661453492089429995404143045152874174110389553073093595395236484024401250228775603819446117563605201805848196094296171364811421918855284955281732014448153417335689870926573767033560765666661449000020884776499918216038960075318608347981137195228191027314915567671397746193905401634115114378490210090446360828866680618183125996945625502283599224335446232959978961123157715273407593705799909342452880781739906809255176799095386002924344361037450920329450336581074887236327236975622005721709371257139019054607645240920635661390843997814100598036162035724500940106187852197964580899221022269292789647815082538437741638198612705912523471491150348266727637576863540584931526275483582504177074735559442228499174733212537264176259613657453806388691950157941092605913033966022094145516452132225961615936842877237127849831778239304042642073105106616718970376856113836400348848750114023270646164415442599958816594723833488217852112027905291412685503781030311542710360147313921408025872052640766276953095068025152175135426105428355641793952568849838771131654071688332076447676456879144868610235962979598333740294507506265862881437804803675675855862079688714187782642437926713830206954412494974713691707791821676895329643968059632619279576761317123709707110317849705076545955380099007894303315039216589299131855062832847506120586155242044676046590134022883516111248657955627839901643475594319690655014311020850256844188608440920353049470027587224606364987931103195486665484344148984412663145551857377380528847443967938364352774648044214279899547189333994113254103524982522805852172603481184140262735115282063238233113667002202185160491147531188513765829687146734201930914230353325362958214396387156752867043714708683214099192544167860412247019188464032789339633391185941205717462721676495250174315389496154487746754309456802119435692171464866088826699546898783931597117543818389618541456014717749150961583018508890418436231016480714336231202749751898471857808635334593983810929767509638908101020052100455551858565306015014221451199686059661449178624310578957297684820194812956892612875782609601964075515453071340479386140821199626206350607673842375158386792309151240029994110615378724088134840252773484436489165958195517387844802297841686398564643593085894976239848636823704412910501947682730399305189102346887627880602281168494455881208719675898782337080897299473364532239165722625662665118273244449645043962746006071762150720311863489343227396139024138969140419785295718697555149011763617290341303402058364167265571893139867661547253080531527469357518504502533509617146971715401061525994154138613086846474047823266135544877579409096313788405966494544146563344624872446999585302494815910318370593021617051961407915175982329360125977382655050197279487569261544925723393477455121542287920080242795299626620050610189994325837230629999464358102205980202263921625856872887991565297175946202375791605347699211630971172104104075816052936146329723917935854839243609158412403461348778641617917542037012561176838733996733458694182461744522906826468890142097063769845289842167440619988133168948096974863164186856865982832593183329981229774335685089343325065358413154338285341141633275649754920109699035929042974724744214288678032868887582294225034808613551403060624758218916226299244822588209835845896094260186253083881190969168282095042976041395546972319987005807734794763682041236848906902630041892207677201795541910600566661105659667653790135488050497786801110882026062411423524608537917433611483594800478940918254074792561751020751687676853687846304647823209508158778171677095304904882756916313207235107696692430433152834096728403631035745525637304722975473231103697069648593906212868561823517895227226686281780982193045039651756228329783791937724985676767509088393195069361458293284202969156728830909578366174169422934343111590672333878488531093547720105538653351943410801425425022154674509726541891310159962290779578206433479744112413947426975586187918667856111577950378837154342434361476589457498434049622018573294221430879291224270450322214287587626766729386922538917327702716497553842236815457294729634235672024277848704941176281454096976601536069021348263447518095566813246757095222418045373586801277021409146210691594302812101820126688076068409812569750924759042275138925984122436047910928218443424514638238494422007879306828341810104822486559871190702195475791291084540907569913260101034593117204704624032487080261236736964616264967850022067950561017331021078519870265272774677451880031519577361185301540587605140499835657006682451978441829828612740890305874353058326152646143171223731583918769281464593402608872704022555525021190377010793633243086651072315077695879646821926086968573866413341779476570672400250872480961447346819767907684486655348259202058855273667442105540937110953768869595969968392566807789405804094085032660120235747306597899829915544964505409193610283695450132842384393476525953648341703122541177710268171301776680582577150420623386547520499153070579683295462237006550820254612981834445182559517975937470149266098756400824283368508956549335143404890004125285676660327366799580652422758505123836761803317659768034995168627232094883338754228666724587309673217411589389168558785004868762565286136147023701932871037188133622183454370540916089784632831942469013253725210580412136889023291395193815613238175985161350840353535027468757675446220617927375938230538676050634428741764007252592900468417131215667730658813370724204541708737562747818800842518439895065235962384323734840711564512809948367702067304698261661583965903066652964008543981407522944972366839814139150101051683804046612479498341019967909180126978130856227296221441164544225041364314867723835013176032936329471394788345462275021113682223531010690190105496421908194545077573083172471626220721006289408358834230550139374103113135932432274502770366599637764828179609582960558410430497504780034080735848707527326152581566212173627881111105094215961162248516330846651830995848798860211185836978178391150787754099628757263064586359242006477853595444398669340987421645266507554875898046664998437550142761029447720503403200090191900227734265439642217387006361770122226654291724456510156267265808929002165705083649653490649192538411826290185280083490067426996553424543957482915674615809189512135930044259819865105006099188177778438471159705297206693283445460087840138140478193058129763768549392993959323002666722737328381118159394543248746716423784492091221540312510178263127208908927812805186990613790063140541430183698151804352457889067542673616738066460304488570134424865622922618715148569183831712559286012508522018741418438122404866958347959166127727690089891900964054396169833767096000105853101155055943847201348311660064935542613648927532920136795000948698176412651216288377427342502102456441824846030277845694820183014177026322480217176359202633344717639924868745150514476540967360498605161706460822981723937705320574868008994504857349720024438806737970119996361925826654789126905972071230601028926143891120867951670556395309373739884536937117771836652101470482993293300226165344817345380895171609593105625074496850416370048150853186502227946867688008794843871422408219095173039199333415080873925490377394429413315841351327835350777315248261496855669532190131067058877421403977677127120350162926483511590551503806605598282434012340407804147681637660357789449979839790470025138323789450591326582513555653052748982442844115582795991967401666062373603564141707346362354695246193293423423497188341842955980228038962709061570117573301480828816948366810035267985345159779831067798952283149724247842006142128769403927858957814686860199630103938640385220853821260660709335353470700103083589734264409429922275353438616402661246910909182269500078718939853851907771378870024135322692019729616230067644086047145056012200634265677784132477285929279110156429197493918147708705307854721024544005877350061038541544707605657700631797969579977255194288260410055348957825991387605158814514715540911369987656311199766654171183537027612062827507039957974362621819295903384471731084228961401952415209463260500225236848705842152154891904183966566996367185866183871675992748276867863393726186855660237789057459986312793348760462082742972801634015844345252520615020273661563790391267854575100115430809932813168441504651371206100000168651078383078245336933808150392388783532575827474906299581054429016662983775989123193363630812404490221159422103781033735037716555367258428892434431802756120482165121998308242002356737756084539359444247593305557864809857939973854276495538624035512296227095320807446805877272391128092356622702578978205715303831434247930602575665872726686157724000872856183767852207159079849882056084561789619283024317791061862794564484136961298701332104186817208318893949074043505702516804083807644793866636338303856005029073087594895657966828963683415255487773321117118750127190913331360786710593082174811577173966163948141378023909909123800734172460555739028032501337075285200224427379260429494069532441512373892153114638657451054921659130283850375133652767892632251730564677942067381046032650723423452065938932585249593238792171304959222774578029899700367131051935008304068343844636975593851140933682070066755531287351888876139937612811846804292665059227081805621388046656977719602207556723180403680987040212460262303127350360239855533291718553311358032946686680980439169990085434800288136072706411196842422435611489849018331311725324725510384096905948278937537656353966314211141515571551526385946613858926230856971517347651857350528916287423952940254382007318358927556079365692167930877470619286581492759746132112387039189698245677661237316445731102388182060973664218798449157081949457942052948976312852382870438005278625010953084712896045418891902588645391067011075421291300358901077889544032389523273392180323610704340228922081706603666593737984151100724484854042935141579838468800537887071139063872195428510726943731059472988779415487424672619087775769771818656435606330467688865029135951371192592717245133776156775322752360749728092482671790841307023962925042979480412710714287378645946427844875643688700159540333993306758334825816506955801980798677237747403071399851031158756583032689893407306596283451707990063104983219699115095324106312347109377766598698564720320224647497764251722858758065098678498731767530730548164975615316222405236377521810557549994510409988611227841221381682837795506327190953431964158000019591076554855871668589082974686729968140205737027180538373662129801318276958543458833207412663298432185574468786873352140646473303125463736474865664689979697469485260920111873274531671120341074812208560142472568207893311558280228052566035254626099157285678226244035907798632453185018365951545250287073860358897605580359748895305090751305866584690970912447306795425026423967960902174353383803717661810297404065993306726119481548000003726234833169062382909428324289717851133047314105793049722835906671951835478367901860968808263429865380416243279419162785383640545344156980918815400528018946340167547988086089553620433152471349484127269922162439708421017921451299884614812195896131426849156995714925069185525369936538811581660336043644434481515149162718864252569660070082317356317305482772782139635819026773896341372039393105376814865274075160865282333282830871443186425068660052403042159397653339915219784045663130156458648116860637586418299955260481374960303635601790504410231220297503697406204690472695517192213196902970653909508648532947508485916555567695408753874846429183896047049786227738632105226097275104829244095975955243669613651814209304516443362638784797148322315767153011833379289793754334993704626843324861367413043960357911651720693710761479924231247195874357664071036031732016409731732747329541032025140687850166940240796890219753861011625257064973174101815654577525089954474838225973741443097042773920463261583330214122536034879389569520247644389080273364002146528712533437525416441661965274139389270216365771564035644072411418410387148358962446826013337279207178596083458507215192751243372747762422109307573184092305031867175549235416570504116661889307530124079405554577240128044106692884095892319466977528710232671547667305595254879585103070424828940277945100173636651968602010799592222379993488345483775642257513962422628943480078006095869095200225192369095432659694290530067141852443193884090154306991284486140387949060085474533623215480891600536610553206463268549731907272458470950688937727085863648812000548388905006430747433453380326863068661172085155406538571873051123644713114269082391669655895191815525818921375224525125819676114024283241540705324976049949715035693410662679908977464840902812022218662566202198255769574230550233921752530672533716764025860005774208271033891752463893807486891776047543636298846569122995687613264387110721052891817221158260570833499196561213519973085126931607715430871791689852796927180453944250519432292630620042615438626968820628220262118147825656802618366633441860211251071394476816805263453194952439424800390957861760759485333338946998638708622479992662243035638909642526240386173048450780042213225204965167101143814693430297915551998377285799939387048529650805274891965390218024776173777509934392219704660680621732062405362903330320727077471595412096738315262784705172271160074190304112421256740296663623461259304931628941746706026019395896093977463861139909705556763984830382023675787064971298232336574261162739870802277810113924906157868014367645834691407547120330664336755482194447380225138055928403222388730113815509281145150677988675068254980905896172813525298927422677025662724782865759324733620320373863015889498776130865781678553845966188958410379399754962422180351667219748258906389407107939750217288597347508253422786453518738736712445206215304795258437150092324516559255173244197841512172123021174227496051872132062279942255499656157797846705070893060809338146438200917013804718943744189385070784079383811986459254433986872048950486638131898013174515254252153160938702042101330934381284274047155424329253462484518122333356958696527386154075580274426756073027787675150563958065639976184523696861531205716120401834423864402086215212778657903222344254204716503956775709192598957539034003887927966647172629148010427727080080254748377829915257957839407469775791743003375520201693631432096661277600700354376380519206498209901361073359003942104668871586141771323147598380153884678367480080940452664997831496928528504657870343554156054976658502883384305694654173590163164714205676294325283757860976251459325965395749071023821931793179311170618080168026268110824252644436164497370728448499899742834882404507193253349685247271686194680871149129819102118032803838725164549024311468770043314511760743587428386214893952528330647604052682303768048446929812880206047785610403994943741361615220825743926205646312974866706219931522746732257544593372962423196391858825109941339254123569742769058217412095559335159263056784484894639503046006582759914438093459904301517706286115029557479021650489450916220723492522269660974516006013085514235354480592481233531305647748938397007629031697153401672017002910360759474838932120994182522916335387355008249010684958318756970926078387723991551177096467876265882294949585123825265019957224205794069392225243634416472751649268932841741964418848025394068441669695411047164439398718886213666397287211700177342176863420789738655951077449932320998745634783115433406797570222031213314958198904866536306628059408175449971388802887633047257069787565272922926690509849162493550417710022290172937864180837845270934727185770670655106921656463450771058127020460487565741402276088788919876115291514143638098701754841653081083946553288467659242326869885574875904859796321637043963493914936830878758549391022835458026410349363397229246518538222387143933632468046751445311660264991770506631198380283859399572925976226194092170272583569823924444015219672323230357610281446638792101046492165812874103482602669368557617796783672476942674688700802618399731816740825839078332319371239689169474356884211343049815773262456497469974400073254997346549362934484290044583608097756261089072789994978281711118998701606736035108534980043835504585594307690866539902518379796904334438499884105942356671849192984988623156597751926140640411389074351413313791820562736033571813673772417622283367344575343711116691783515523665496486856399767274309019695483145825777076746918396497152791214102123021861297958189150513573277126263090068999373634163195418896448832639258973489898452920711131359400922851430237761927791875241351623672924778526185357124191989408588337593799954118109840605750411839992445799086379066253964050809934666466462537777560812009818598040292810638972793981464982516205021883423883244623737733732610461177532507247168781402208371638170377069054874564163632668038024009305807228695786952181631030272000339787848791587254835709682183060888955327876956772615173864665493190271808059103486624288280576225809325694248165644098718679648818493166153276120716443121443784060609467705897763832623700600880271537541943804327498743321828033418785160933931544814686544625700409136715596272489088541655149518231380881816853076164318418993640897808456174660563780683705470846652868744879933917805985635616878879688398903654778434847221600108537986510976877768056568166607868204807232724081932633170005969983291895587220470061306883318900000684734160161534831084683707698896545089123340654704429804562439955138845764519201154275659019357500029613316331588406164740102470388712718737457712396021122945945346810912483979980706238330566560942322942176442565776561947680759485412305272599345961517953733707397502538095795778288393388449724878467705688274729729979142628948882619433382955405084704860941420175151041184842671153766411337973446324456709960848088739084245586823854290365942644438005253798147220732045282011064278369174352000520819705939407368770528259990047289953918148590705379724975679449134830311006711151658430731772639106113097707134905908260576356072457008422757986033663683326956822613223330666307124594943082311993773930642839687453495019363580335335289963415304048710128602702594787388070938193006272887877420487069762141134896101951385424639925575211905978921548291992242459418379183910522057215578981763600014406657842965537382209317681669020839811902887323646499118279725677022868260290339890158305001085919332218692686045866359503169039690801610702779965019324593528478154667609011621347122733960653962809791661277892628045744093284853639769364428941889031083270771657777234327782736410740756053411756472143067837860437751102499191332233084798286156147695419520683336032612883291947953370966488953719719667982898896020496350912718694064556994759994392017561675324166033215994327968054568762133244465725287121029422929429881118062600501290436169764424579801084102344603624354729937234843760225759002828748326960892041851623508929955697492602325428106117085636703765667300859538964668644999059076274829154832060808526322737313158905312367095496788091698135370301332021097166749317325230729941476540172795386276550635146117493632829161529495100215202788327513558102208487384891850460170621762154102329655296282113620150899565135366399436239793446045638706271996434686464357078799307673580274512725366332366207242079843718337309892978879343358930652398663124446113242169150327330707509044091043192411285097496475962537542573592070878832565653582812320645164203990983913786797315442188445146612242197896112960476456509654929585410852811360098439014100346224516605094376152291619350640897928302515561555798119049092600075955053172191259656639408220183795429823372286197921892655128535556866067263821913219807765109856481935031003489653697131096829503741624777364884370996827695320315255580382325641977759752400547945075100809384727557861452038348209603457828771358831256748795188605820209781320629913833714205991280225716806534562892314920764258731558973765474485401994026436226676606613005314959273407633124032417096168592334200099688252050965854560382161186838166088499300707024517563930447642171826589930939537432779221076197050582236367751148353086214538033629461435899325483543181278296871842550089522878111387580013507852287621630149556288552459061354001397483798186246975320541740513617144597616503949342124438106250901642540146063075221457380126427927536239509718528864469745934404234391856205530744740053292668169746808090821896091829158616308809967010580600006816722966562436669119555569433790186873634676744933987528699257247283642886634661221311174008835937266542047600661054496525311823534932685693213121581016913992183924532064910088585270099610133475795871464637873282876494029347002388424065143729610452833939008715126164460844619796314821276954633692678427319850662520376775775622203653019279538985377611151750832623046042468009956990665253737218981042456022051093898133889957515022641792796523796743887617405658854987684705637360974130502653981153533339946043365772267077281681686228402409234677995770202788392683409812200469095116282424239403008035229208093445850776746615031410267609442167571727426886942266958129859182679279326182167911717889798273755609755042789670942459033636204696618692247693079673040480549360640702604668542960409839306056317161783354586594698273172398261211288691077976597381516157247762244118401232204997613636127086927412720544665688212349907127682732133263923553038470011808253562403598416699827521649104414102869852347995084514073585705684912487613416487510509876667070499532563346069177125055844723292351398553619069556824280217940635705127721854728698278258613831817874030589680892558962666023652698254109354166630519980076131808883878010687990990614291588118476978594810207550028292161876036841048967503811448186005773637474356217560535618565457969101944164328155188310302775832009629631798566161803975720369814940621719149353219575519258914665825947838674546232521847720453168694398260256113437623462516164307679875012204959143782678046229612387632978025430708718373528152927196025520847760692895282346062395546852016053925148545407681964409394513922556159267632806465986241860400922637664583635751368513711942851515848722679068390439993305185804782868116604962728471884150950228314149592629254783983099048528666052999007218675758266136908241894486253158246579034160303244116483744650241435865622965473903188299909359357266884472438806150903490126733489109387802037990308758097904703205066379262089000956882474210625130516352117376757939677611275139998850092516967394468900387806939224297923663071158470545094069078619036269052906086144651588598835288367679411850360384253919910983029604808504554213242823522634237809087016221395748001334726879806749829255961373432625369223269713292892232828901299361135180716119443188971980187986722569490111457216839869207794287097614927228133179340459772328874867364403169374465804261655890576801318296572648469252973852564278529272838058286892401897578807747775783964460947822018510945896814861601457045545127756705789484887994680248083344833737350937817076422575726494128154237471271527413737427812866664844317322595125857680722029441351430182479261771423571557516671409456779954883731825158623297644485825107146192667816701052036412141691026984812172122880485425520977209702593819807825962348110508998455991514980489585447591560598486167138805801961011525265459957382354638417516744272930829825033932431071577389976164655741243659995906996220995659913388391872523069054059150474489704432445529540294283010791789490587988704904395752223868985205837213678511806276303556946760732820181352166800323083530600108601870458056501063612086769913906972339417217541745941643441583245984889868429618936724486086234446672045242752293423760831257928384720761378225550637106561210304889862023769079920312886288815534481824636340223147695227993434725785818053676359081666872664430157042847635277517378452792831521307297331634376147625339253764628296523737406731006671872009177347186339781459051269069328680832852487038612268528619733955849466811250048173078849300761028693684000682171129859582906794395908564596595065964187145866405631336131239569779234847150651713632409184847002451171043397736823170318426246958979514030293117262071159278326492985428088337604755253833125502882577798545380136345383397902047667379999163911501107648699242751192638777473583323154570964635654771677052103629471458513623699633057013207768114460844754202201496982389924612038632677105004099376580442226212278489015514833184853730183315144152164557103408698560873378243097376565235268749884345190543799982029508310607700371694231667497816759490847835422824631050074635171406359663178082577003111467231046350991911115393494265532793145333490801230749233749535077691095539401677066864787439864466876168958615169375166378255507849145187395764992259754342033393304947633279472790760516524045072126061149383713244097047177388679937726569544410693698768864027784746340075395437998438000625596693327402283427909471558604612389086231050702602240741506272397635581476050985889210090297044956274755668539824429759957963714518621630325211801759317760855588814275840516570010194701309935764770630179645583722707835070229761661168081075414643656467578371621682237292765490988525371774141684419680890269117482811542142996498904682271411965348983910818990832355753391979239876351728947580792888103441737283813963181294129369655674908312320618532550660054285816272935868854066908271268975193904122512341503395710311569144377126138029006071245231767149122436209792135523879230803936210552918782707726146127493797542851435937175601527791387740236209183055019402385987346279098216811797335108753161405958300160767069014188367259106790965498669141497363495427568783175423565299127844098651771765411365402398033822398446242868051827388548561954251714598453366578013713389433772523204067375331774628232483648942645922228472548748666901194478963757666360952899934711509837143501045452261872962334569861965527554151141887859148090339583539623468373237219130604707390178703132313742325196414361898246652875044388514723971122940816801706194300137956725228447385111717670730536161601845307869571839698975385991977433584021565204187044797766989641620990310371054030410422200049254896856487285543739409773840133454612816683068510002332722413032152439056447142423387506611241277229158093563850709458441380336704450133702309368412262748995016112303560488074567524999001921917353396207095577360401111483076704320639468097069190279453947618045414347953561138956235878632757120528693708386555621436727514758563248863500985112817822886963404143919589863390002778546198346128597680053869034631428318973049848531854560036584435245783474536021477027181711304203091505040551610210799125265845845137014877883884786410750458501091883003888936860779733022319914173916891229923549025947559044295246965227406634345864791371472250730625245697744649266047591562763562534650848351176956032564512363768796062147917891676003713105252684321399025485064222554864763949661345891424925175353056382969788674764337353405835889534899646381157236279545452442090879967536034227847306231653489412074123349681432465156686132337001924616152726920902956951611441505524922756172320468650621042095350415144403785482504401150209608817084315366505757086244234325398205228719527919461812459097930217035847603007404636761535128560316885378984687716128466358303921304534756314059476943813083653974814467552429847986696422207099265572860112764489324833893693923476042569172181444538506561371415116846818470937383899302933615867189740249368391139779204053691187480073392380587237768280667919855158973317969270107848167548645145011068460007253252150493364724365569133082305165368266472561712736463952835543412572604125773691547181035722497753479215339128637512454115285488205497644339163753689485064545484082007513255780941463076887606136138338836624513792208818260786254704801865371340540097499164906455977687935391309391585709894732753728729876568935967968044358917767086907223580266345530770407717997875556909442622742912592978349113389774395411687755213804997114889258454028686502162447797362632767367787364490631617512085401558726544905261039122453211476638957158077779303119481674864195209717511999265636412447291889063826442925689719244817238167478168020950247603781161343679666309400944905547988423886985816145286767409193934283972102409218137603840351776037113536969487862380786497498242954304256596185004720177057297817998471919917139589397294240609522671395727299067002199108258653780153725588795670133472158211783873715659586695948969791570253912794613710979199853997857483128455324431044314218335497595139883522443665852669073779586617108285947294637061094441975335016575897991874270322498442126696088796557311172552163563996615912536316875932455746331201285212646645203530626665353073003440174302662064072928664637076520951396879136137746412031205781457376780519578320785504002716064181794820673931795536816812348623012896032926810583812765384743919658793086420570565629107016789810692008594448943505310099797443196093494446774269298605959474244010561842225287121498625979061040093204585095250889982805507612018775108962759407905764145122221148544530966891593717012513251657090398776773609807715897072952243920923347468458965085802044162223625223631813055676328591862012886356680985831811144110357712632183201687936274416450788781910650704891863515152395527997280085922294717765252666048377540086701858487786932702463352378630601618334621203524610111570753561473084073586452366964125158778255269119709914452247351035520480425402918755435562045355202171420277677709646945575530082093361803530347007558508307543902275887156428616436294907847933954871808897423280810379750244700161845182555801516007923903306384698899888012956350625773742921261052554082378618299587606074464815865124346407483144699245415645986124046495576028058238507802880984239233946423440329801246328849544894082117674008447262822085567519401861663893504377872266203104005311626678366361750088213715437993129343794574082846141466260480951274029496524229279731834370653773124235658363595197780572682780891913968739580777977915231621351502411457149616609079087382324121641412601413385036747487262192774990362141061156621125029560388715207159350160427790611915304746956766885797508454945133565382525069263707969733196151430527730390923173325089380161500723198087063267241121794778310161592913472271336646238909224351293051368925640467381632155672667632738555110467976853073059472505127180635885728842668243234626026752374078222112463801786698346437310180875009805622207577093003030086283927555533935697071839144095704301627556775468619797049100087670988577825566215413468906188717285069122183879854700524109484127135644279935286627065190959433183679962022672038264205961254430031129994548737884480710541996576476339269320349133987691416324829703817708923575917442863687608661270080574536366321729970503090086135746285099538748767380213255323864604848017273125262912797752795812176212680463633336715234957689672937117444027619455816078679260976188582128625018768529193548022293401574506693590893428463523048874612965533224077489367680603310352896482629139683864620490322104901098261897878563611369724388351206641347458878859897343609134296833416146024734520225725695589957350900746303232324993555435623909199565003071303365519852743706392531777903475375126886977924695379648449134625364938428975788056281914313166632886589483667075125993477304700191978609177918831376236217459858470423467719445744585160017271118617672606195300418707195226868749043329817904098875751905130581528259045134900044017914077573954016824763945809009081483454281983593593208657372661834554765089149212696135236713685787680880693894041730020658236789658498476897222972984529636254841114605799564622980242852127273782278819284254312971222818051207242465463998973225192443272232804948722374875414955375637506200025630763138720150083706718361893291017615927390793241725899978179608376999341975460287801123832423607054097819211858024022856347383777634335003329448529132561391313691053602667674086551707810185632738103112565899997497178170101394006016560884285646145250451677055484358885790114399092663754829495596690219038162430579269657537107946380822753242522499154603473216752111488932167623333985617073016885006251166264973571860650667617907174852700953179248721910459957537348126203910007501368657985045437963160303585042105943233800935717715549176280870947893802243513433736094623737989641990206321415782961539755316215489985029049871731612832467259764560237700775511055579771348054370606331207957180237492009458842359953355097026438960256897843424091800651471037343374833150912990716734819016539096631420531983744990227287498866903181349171017595787547304430660245584048689359364136292294045070332530424846948056946828485216784519208131619771047492305419205766147411931993810231986413941734775336289878221663835035161319746893189060718985698845123611922362288671817196380194776277293952863378500432919348396660164396788760633004047614803052657402655900141293026350820425474505967007998172815432481350159244945363986698733729545747424351678234848337151079183484113668484375629131426782796841722103201091443783310018763936442840101704972119127988332378288010005765657946650080323303002473683623871416312286028643553180361699956423659347877229024828411790022267662752152129654020526843374704123628525332807799398790125344760649319332637793114272103726411055564784655297431944490368257379054672054681735030900745907321500958125715721937825081458823088455260494922859691217840940142246455815697759986714069022303901823440758690551248484094993414524761080283940074877086474488628030516311052243089446774108771927469650060024037191057138872760414943909885356500154981564700904554886620788280888234152384858419730179846996210763928247867411220797935414762086555422305358955012147306203278297127502380873891367276170229488517641308151615565856054570822681341723592487816521150479704086389040552845640225498500697598719498143122359711797297248852369647649602387771282473811715610319601684327845631523119346245596266126973084250435799660497090456721869023602206086186993300586609608301281253742053413814867443321931544233351214297298719490511665608735684608696265035242074707662318813552351762517693980419486825313201913943705312470088152984419849346366832638601018857996922105268856163269045904814539751753553826597611571748792042995193598846436840956241812156987681966227595893170191494613774064758861475972282277019834486430222363504656923368027817436780660006167435949389192550090185575896282835499806462191287028327638614072216757168497813199091933286666869485188794163193355997487736625683247037293019000378215319861038821746581619830712023175329559603592592503385077129532234706858056667392385287040134385787024133715717730214222759886953705366075969849937590578209357888475974934161399288114271761652215928480461968559517273503926781114750856487120989990008525538757360727043855915433374088888007513278982028324109042076816523813502448296653479974484790433500517785412437783025195248619294989852978845130249955287472129104553819722093028585620977894457498409772806514431088091257477051990578001617406926672872079272962829845093231846771005547727968942988038780142030671031743826599768604752502449628006499664003697887604512824111445082731036040749150528458076618961189957364324938220144112985067174004049470948671873392214510590756115719664823473496443647896067803682587340682237643930535160297646200397615685980784736880979721354908320526423673810680735851812387199855056014387756287284646766612901535207099987578799581326992264682026233951161762379989218989340003247809660012522758172130191001363966994703407169946401154889572027319806144413554518878068970385742754926782537411100550758460648570654678354587753831636928645615599973404870187769154724896963052907158337682427396176945552152725064067302571251809023782586807390825803237621699988836256910632655816934725822679249496608697653230453121235263189452555854914923061242856531804448592531196925973290226439412372885837600782850476337933800516341957171114946110711402528217405680762549696352618040038289868238043645681228977854601608765341633322863431353829416929850084147729426778000419885860167874672319849864071326169106459072662832752398064993682136417713773368352062072925048029411663751540550684879233474493301499184816352101163005047087028413117276528047664032171382331822379978742100131150330741290852801721544602787990143588789946217568079105239288278096319190331680921190583625513219881841643473939910289522517390659792580320302382756344557856885462984627304204947846875616497490543392506979503803402881371734775656528644969746160951973789987770505780608016733805549104907574526562357451978924590251365984213422281939729479177021554958613720151921101911018722022537271035488378047704530964047010909873922877295815356251271418459007391219266365380976728184793749377246110489924482373938032692716393745531354158687126610086653293380429167501174275737234484718135346190981148875739468269780614019488255010016271186222290403326811321538398295168540272216625345514585713081449817745417686015244697804085529872696860548148871710842035814635471488061104057757387317168547893664731206039546291358593570758523100268730349648596356824975913243499188330018058771075934131788777542801227464461057052370224117617964327365319384647008437308780329471229874381156003896820827211021455022799446441313775750553398577773974224186281872824036237830748150233851679303252286980037589340768100124008149669282154443764372184524700262332402381031488556970700371177565029644790311073426961916133999537096666434748058225002655207268114392661835831929199805303761213540280608676555205990974979410698204591587299939860482784200882214867017314867125399000986512181879010434483807914136690763725384428712112556865134780785422654018592774928765154415190573699365663725568262518333585066125419502771905381569865832600175518543727200138364320666728394143218992923412772593213317061799134925217507049036999071558062734035764509546665303345697717492976217256960309450874020895856635549846609629273007060508353775563664886711574392064918085678294621888741230879245820965833881038020186848484313193553789201626458624112949344110950230560041629514984196800942881893662773366858028158283881545492357508680348045479515068396762302422241743764673244713256288893227481827843865035812185972835434557529173760551862589501561184158180802708681583184216458165787203775028155812256068971336692649569627074374458275561279412969690973683893718427460207806375386902131632664340179760987837360481027652679997266693180203136215489741736461469005079348270298973875639230948811455260967256237832849011036286538729304959818123846784060233880370960945916930464542281603926624971900532688564617719620122692757280355099875089093263528294819656285242421168856781000801350091224192243514275276950044045308964540780694277632628713447716188336542002280993394474935977049164941461507913812542364014469416253472297371748251658734908666729857172939281445771914274951848661818321287022591136728825376482474027606821714488079943522000155346301387992971175170766007594775041593383644707884215154021905668169315312386109957682382201156244833643434408710458207008011329043133288677766202828898735979010372987355711512281696109066066917235366389571914117724065353394623887159466781309730814230490634244617430141714376511356722449780104048071198138008007029143634324333595298523128352013144188091061963874220763361677521997341151283348933310053061965737257901405144880025567666966700861639745170237085306112762990205694744548341059896567907852455461714764290589381269934985407542389481700312557361821796436368680677468662046602860693462099416607636281498092151091349334062980581675067045165648067500861337053024888210097836830273422539258729957615699490280193159287104494620517770272254022536719933517754578591545908333258181254229832065021618262488874744295791745688490517035624667074446398227770058926153605251208570520570584732102949440846670215232664700943447670046232019919443550993757096294597021104397189297524094481413409529177553236128398759085677654805771147507800705463323829096958812520937070866232358249039756091911792069948392718624991492702082924896213836789078223097417796186066932976452173035650912693955472867191899162319599753478980580440678732934178868760271095058619908112168640694473005779129447085390284767973941333889949217882438927454652708699637021383860260658982140835122904135151358685993590854363904734692269631123325386480214503345069710858691250861241843438200793865169969198021365850411762555323972293290938998720211902184949356803113034853122510987736865214982992158466372842833116178571621144946634083139719100262958569961145864537880841946487503097297417665162655396798183072535328325211620952396461412813814659803092447060053995127184591602703205533919766409916084938378415586361371069753219698613574931548505471602270232431322530264614973491199691207812522326474757551700814652896926426551078312160256430306888093719108221121851305506858427591913318061039377148280674243659506893091711556166522541852557287041009032477867255928120280660921036470870425384683380757069386171677449675623160265061727555863217112461447823981326168143737601949706849889333415580346141147996871823106878111075211832598830312512764435343380461730548550905684788108248914644250542177801338025359493346208309325169912883389654463764580726500877876671430474662798440791876978684458336885514054754962235783102028931958287919451502431099159277370775439061742490284212890555752532705273288943099865512357101806225474026287559556381699282455421720010326108534616048729938078116005400824235068623947652941468611964504668505999233920437095513473134730265798925368940384303872390507457480209391544131733399293260789845588700833907531615544214509184180420246822695141172062027184801752641927662803615555835968399103048788582787707634647610241369932033319375201623627860851698748327812315192761900022558983871245055612600173808566128437568013221631906975564814558997939702445473274692259999706149334321681096898545661461484148256867473556105880515609756321932597662256664640007826059943297183647477893570385016268107697695542780618981815337719709272888052397893527638686471409532198915883089353681145275371741433342241610176165731250349237409446779084512408863410693069886200390479390113376962015928672183125847257634600622641647786500081442530012568673390950879272151742793170883276223584063917622083545468858990811253839326167184703745449052395067639607291223952111915321797602867974174467065473309634189149287433563409214133427514306285941952126613736797403371008589183544391982151931589341071912022587459520655102498393708337237376943748002094379326944516692946845224190835593351976207867215965321783712003029223944614123855984296091179376618650012613377801190555544344534144287539294543234124567928998738789575415487851965727045119343631909449523804635897121167876787842215576587642033500800707256936549088799694632844458128824630654015772553725281452106747051854200398862030603502773193579024863237091830341243548444318967134891920306687639028705943396615550799957425398374456691897016192980701034725436201583936292432508569325232557984801163066801700476043593226380223345159527475293211908639794525416632964570850917608426990558559149867330524113175971852743914695183408888749736532431863305800358766144846474662587388043694057266734901498076654632342205811589907358350972658383024708526021617995930218296258011655872526450432215936608155974757171372545641631716847654806971954711864122058940366268360806624401730624788938540553475581120109728564105456134673242939350577706243731431670383311941018957533777639106453651684611693067346112659325124628242993601408800066423083337342526913330888728243510331778511875341489621633496217406803844772008667865317350766056612779487446786607968582082423217806852549565358707258783845543516221805026861830925157592664987327705193600127335217587735967260678670244215255474519230181479562029223430246987613182318950559120639488190890451207823151516337425152220820325153241400075864595849814667134029589881987841762511254021010209972862270203986184627917186366928289187699051618329595070585241421773844518302750107049765643775205201600505682387102479245584510333875456834976481804562450201063039837763946238567782045161275122190198233754615958231961345091069521290473463517189624354391701083752144458506367047513743920359691485336779899766757135103880710352950806116505591376477846185292148832820090255483671427581369804366119312952987888940280419955312140712996635223052071278258955062646720087025820754458642829477859430286833599029925869601957703290187588014072004095836798967295548111813895196027609186142176669588014906660818777178278668252212426592414610580279940945041613518416663493823458122262734839612370174292167342027931999618520953464714564311049973911545068929573089559927271257317607045137554869329231827467297910213873484448828899246092855281531225028690724578579813093710819727168183611216887361287999564028004976058287227478105772409777707988505830374989695045540991476027880806744831236243325393859524189619044377104244155915993070659252684442880218846505749951885338876899102101541718086591825808306744412522597890148181749001313543305807166148525986736633496905479562890729910679131993630199377848462917911012628780604947228612055388405549800009097191197318400726109819550468736948621311218077695194574750093914230439659633017225599491241443694192572135390846339785417123743175398744547843610735213495348623914223141205999407639857000222845993589601237411800753569183831667957394988190111235059179658822126809852208431136155148265771240122249062826394392589079550203672031388667709905947782816169063503488418379811362246504256143694127811989925541233866766598506781392240446580666859467976563344821353320040834266422838230643345823737219449706105243946212465404565434540531416758776183467697379566724502500759764346084012522757327705423676741340584296146708813982907716743946915845988968229362455699877509844189084796617832169691292265867284781132835591263919297193195216209453866858568040181499469001165339007468359216445692590609801668582601983923301013015268380373773992963359451548622729075788659198931034395544261715999258865702236285755999351035179499112562732621722395681994789020842558255122048844267336887860756834966848382075464521704293582217221093603674693315233385877829325237494937804621997355181666591508108842339953732299051098091066843539255803734594937994765021033040724764845478670814078409511277401833870522212916962951591066416039796486156220039908777473233935287137458203931492989973880495332854623701775796249322573999830441043638956138832826262970696994050493824915561982254633169906150930282626281317992387413643153851136285164031282470824831431470310431145796934062747834775145523951027996707116795154629979577158163357591079748435593141100705248722660912821234898050259086367328467055215391454099445500050239275573736364646759464377706720019581344710866080748994915189131378095732770169094727584783152400730721411367498770375279385745320239682391071587263767285833978693080893821560244394326130190576127430874678336707740724758573041390611408663101502158894496892082843441949510825396464105408980263440292566399364221143253702790769544586546891090035866986203424097820879346219340161976364157662725747150392056382301376736465911984701234047828593945182255324932881515507949027530154122041870046648446291604110960823965226291912779614743003646400431928068647345510754765474291929065846978794448103995862236008756003430378753680255805156033044256150571487670624484914074882174483266082426377800192820386535256236737536452603599410279971375395438910907938314169263874907124741214963067526646946907044248805559641110507770338527038784864867873480550801291678862560770192912679058703641701230446062158450667853029358231103585387385741638161610278827587230601566102549763784316131790664705138972191723662715096975854282003198923521316033490979204799575911265400947807609043892528834868428905156752815909028232290088327046593586407406731915255250903375898779701485830625664231219691266319583166317125386762559022462392342197318672509753358098334032354397072666415411125684668917249333075451744817908582831893723839416453918115156704035235627489912058253945730544906509468273017943913664408884967470544879563857599319733857043929755483970231777770058089058460302338327215820037692505607092934549251101048393412488515788960060205707193482919368955673176501408190555467779710098405050449819674346566137164399598479867471185117012042155049307150752302914820979006160502258162384564641125218895552524106704779496864981431260396204850582181228893461312576058764992385063975514716452777334900506860471230220368370085808524764201545222235558826001611361358126368085280081572644695823144662238008192206894144263684157038924043977019243460023042188064316559774058126799487623576477087268443744083196762095792089296190160953042098593169949923411549201166118665070830900439474769321034313553785069372012643600894062579048354623619763081653218320328827512378761250249396368410751886519407846707250438086706969200153283778111879944716051809476073230934440373476141911648869776165845676821668535678717660786234773951781919101834126797375248536480533260583475770046857208222712856368232481031022178079486365701827738785101369889171795100499445091032555371783838517156822429479511885413366741824513514382396795338351436161954013575704640849034868186353891067766155852894359258844323810990274848894392836674850220677069190879780101626134386055407640509204919711844086187922615596997888724541801190917899464536766857010679061538676107707511542629054701967974968806117401308054620038555025312719546542994889898114892895625139514996887388609803253675461758543741027171922589675722986394164067960333749608781318672678682198022492604687584436777926997048855160617453597709479507181216946781826475646306609476187308628638302278623501325503929076203719213357221150056392748399564646930845683287500871836393861533080128416161185379985475880316047351627598141795346402612113798376975021337781479623316946406227990752269301974598076903776016024442856139063288915679707776113089752485191369974246983514219048085533601568232319116223221299877691121318615531850501077630562437912932037845274909500404301579097169848798376867655087294295001047108165803253009776162378143004489581926658433297473654494290047168424384681049702544494747003211785903281697273729774670466535920422836626525108092348318203345345347615863857036190109804451092873815734978988000205309473067431553573534986659506169700093387206991058379168768431008830917823977148003162519130827772253354811948337909731066203271966006340440285261208982604449706291573387520219565110463886194932320220303475323571175171540532353079223608894431748765905593238929826980784065020198417823926991852272453843552427698814424494801286403356459860526975638148094537800456530359288574830176918670558825015432314534629668493231358719709017390195205304581942287159117953215788333739223249491616717540247532399724068382868490706159432704590484397846888554278090055576104912016817430581228461812142508964298018382748309504010151828853550446365264767717931840013199045932186324600133460993988014193695709531917157511520821349963964591067325042716192650117299748533791511939255363937591869298836842287867626572299296145598326192920350242283282600340368815155410145331221702704064280015520683506410860064267834226568077931164943239667328703228972539807438665831833613548681702697261105027934451747353074324988999425134961131584789541321446043799577273314738168356967458336279641676589769754426708500569387338989007415030131614540453578084727750936973752840687086380863846307222736238561602996028588296944350758485581173628862866778536297550035749409157047558534098585101292759190884472824759887047323777302916571302944704312169111925172660734826708346704750635043526485926319650850032013802671644675799268476514709138511753743537820914692154205952572009553165834309502278244066029435032463949290781474546316257162937743585932444628497972733360821128609926012459946817437485139249927019980494929821328722080148586115137015148956242472642627103297882777141632312190354521625791129653773873663346334022437465997655695991404787095664630740579726140157653205833464108121682560510216769458322996440713426322612133524026418267803338550949054233158145802579764080147820393394404665686762549087429901334682830186144704650428706597375766797037587431059789496067066161489047786680830525370916480449150504522191053631780414945935426211431524544975770628832404208035144705277632173996943328880484849595578118872099363703199888451684562328432127086932830758698385265325708072189200758174264037760706911340024741030919321515055794632578188694364285300131605581400940755824353133972152288180955617694724721203492296098537077808009492892264697615883045874791619790191491828766461429704972563785998964575460938806838104726914137214459128953521381904876466371617003562149563410672452134853132093164197887080258975144214567192302239673649193498280435043100217537245235834743594686791925567885838608279039222730722803107201418563623235763850259526369050812903744300970032183059571026159565733152100876297315949932844205209702200692940171429170086201089150026035635303017725409659414386047948893214511084310112488949988332506109620717371575546781470716064479805089389296036863907135664614214501239262828660887526941824868163395171601100233663041802622321624009645880489039715667610122456431534448163639477902347622066616624594350856329728205875621917401798839560695921683049768158971697020145663597289932846050936944335950699464767311507433662573471642535802242919333379475899525088044167120438977950047054694291325433798229145713109612383329798957032532467741308593968589489109374863296953622541405103224531431101982472637057998880446189309437354276902216080170900582125029621390190041853699127331570115517193090093395378619177006005922704804546174036510880008534105776143997530056497579312369206743724932157642662703329121762718126734323148328648762299028351614351256461023775157259436907907550438151281192546785043512009267729273553071223534876533555575217043586041955298678990153894241357318777317128343826713358500597042308486357682908321572321222079566899546406430625354296404485655611399691596069084044381350363801733572356597439822075399426341285690290819684815840654642440293461350448879144450006310487885987795485762986025708579754550787328403510559191980364718358203168667537297312179140257085667740987053996613224835944754606219633258577427793319795970106859289710839549460323031058957701892611749860323310045546536680715993581835254282060929634214602868482306792418032836229257162434114282052152552986224019647674442337462784889917331629798682889882268517933813270326076081216835063451858571277750930923086700290652695260692389768200092288186248751039729776919899050491312728609212005073205329061958593534370567655711637576622701434134888038814647668646161224625673452344780028356697398625401663006593432245866185092386342232171927270517990373768428672735215598276316634483385165276483681721260794770449992900078604123659904600923682841184901550786243660272105923483137302723560693377329965111131666871296807872891752688650383016409346041604652072498071825479959111631179595204071062600693683107629862139726238945347159663921875039477854281238682225794910641128770272165468228471381902832208910728833592332820530435701780424122390519382537693275265197309124916822813329549976101127309201157797733188625509836576987112010422633300130580012837539294633834718059787033860943290360431710097756704335300986277878070913433568101825299113494502769551383845969227870978953296276698869058488581132441554671183165071335014949601464324874692740622229331120360647969477726718768715705025424912468365174512073602368476133314039559114612824551067516366045389459238997468333575069218415044600476856450145013517386092937649862033696371714491774985941037816971594537193277970447125479649613429130966885468703518973959543252401354747107584592499578000554543726615934509173023200927263551818677245884903940986063349647547560791251015032226998724222761379615882127805777302526914957732558563302930237517694057914778266509552686599523410482364988900718733133779117582195965419299072552098892152662416812053711971710081611730156518718115531895937399824716033694738338290393300231079360381247234762292862144601248723648774043535151796434677066355949545381725088715024329468697423672002697259849966279141279827040475730454305478314244947869752902604512704071225552018557701697185975085911847437589434486029737965559561631250949708435449861532990775195127064173777061908629123202474890899544452111731227193742961325484300193857265591787767835455954246075412332890050967711048898128981329920496775416392725241797989898233028324726227555041686410115744596538702901821831661556037925586909799125953746206000152192224097030751231561817401100843969014919661436558716260391561538671292493162967711084468867288214804721314931942212019667443241809899432223673803873994847986997132874572778270127062975821806326471259418704865810300389808454365421535965887371792384392651152844068258476319490399148665964224929214106439499045128518489856450100435393063336371292366712620026135067654987093052181128917922816883069912798329592276057586840496390456030484727279592243075949500042941338372688834617712810306930359063100025529020343272185750797316380213579477748515912972351532088435226712612173562525561034927051263744613130857493210750268177516073364461643220064028956988494988713742754771251224675645725981115964337278266855178513311777873810272000614685634551680670559317711026365815116587357290087184765405952767215919382028234688162739038011522304804071959799052556839011338803242304525684828296387995082339715899636728822035983621562763660655112973963811278251706876386404145858949432356075169343979034089829343823529746169231194897229771678522025143390919198379788088983732884375686858482668486657577322991999525420152694410959227238185358975673812179535431365438681449876284999457786656514852582659517984897447988352263685757783728299513808246447588228228297319037658979323676249690506010336637613557852764843233997090141135247587875252162066866012411093696473178651351375547672267220427676464399401603936945459123390684015647790919249460021958815980083676625731534874722523880858806446225209481252153767655188945074610623917450406063495310386536821756519431625305694450073993303975864571485131870609547156631569950505613768593568269216747523649391860516037115662371149439563821669857730173966768183820797665759952755772338184462333524596212161859905118765544740434889683268606851076155523798676350437074872642963395631828529436517322251650360819913062431068229946454674442308826755406669701949024686076487123807599924263542761786010140608703806423676840978934893174086272447975874424840189675909102708987320529388527387763463422010464510270054801126333479003654997170171138021782605064395868053630702632002659367738310957542547113467502677666591480912845247523576416755677905861505336762227184053432683483157258160263195478730454684483476979744373205115522126687358310937423669638320430430402230157750151181145427209439839732871478279859632518930674135203126542665063397253065536348308994753194351327874640863480584740658728154292453718783480929049613786975269590900366417008593477716867510570899421365820945840690724926124156038034613740161079521012888257888972597519135941587287430891104061166556022339954757453351240398741880079212235578811103878475783088605324797733004750685712283056898811794452987682371316785257766188485018940523872462630298480975077657816788821159488818027655029602315331680866749852534240620644370658761125484198889551533066808850111409687875025369992365648228213680886796058494327605311864698096240275871879557701432173263868202227211068758081310925829099221874613301937228192236218900466043222702306281180882541675508685547477569432918373323179961883181423184454725139816404481608855780945887984797077099544265211971044388127912357974327062025327680575526598796771476565799364260026989308793141193697460059236219008889504679969981419130226354251852709848272811774839370025674213851597460570783398248067971899070184819647227903711680763389235954229967803303168133808383683396073155454816443647719035736744503769449307074522616924991545033319790909144848648725368177965735536245854526833231891314040419139022479978135001036494770063022824859162611551871178801668854436575640682938254233691266861664760302156741604738971435009128906545415479787675189383376462770487574361079237236761286289728556105800745107083907995569847841761966208730656054057290737587438255923651090039471208526807896406293850454038190859933920339252617932908376283912674807435599359586770195809451399327124695794548111126492935903736398397957933114629917199033300365218825574351775112076881094187149977527577766717693092386094311225327693994575284584794613352788381081414255343657715394460014778743984324970631916711787112075781653077513086327880171592490703240359260754379195721050935344037993892765599817668327915190752270241840806993102052172633168379078462911731416409094945326354891324960616218685773008860011417309725441268561585445054704152107881751941608942684132774311017020101309579498299201824464801894165012389946589990560000348741864342701976309599117613448260418838748355241956397422717536093839665178045990006559773588187691515873971770942269351790350960518109817871815646167933040525439957130496893008871849350275712763673838663827072556765559645613648757882059938972413366096548280903083642558426365725494150113901407275067464004516304004542513319564162309751707479291415414308195555939686336136661801964096650029304504991745807817308844842580727221441459094778477104844527269842492439381815598678524626988555090037491548504477886330322467695789235258337542437302624803055159513262524511796547287361762144276360604766803138558013719575137850344305709241580588626332962963541833113470830029583661235877282536721095347244870625940551559523967504678450881649207614244610447724715027146660329720972079646367717232393337538773456817692351880417944853732245577293935742010484345537649438276174389268005519846659118265925479613602325914870346510525494258673147301469658293648419886533168514699111958403013784406952975719091945698772297833666663912523225608247449738102901809300580613517101337917619720856750384367415300466034580707359370098588737738982311938111384919907925220882156518502578537266883818782009466684237329728570046831318426960306378834879380737130074674883135910063393025477639614430008331677229031399172029325878825896214926992319216500362983041267505450405048124838548934439276519597745338648193201045161998202318868070993613315311528493326191406365592070452084701780124756785060635126549825148164760899362962599798535906200775987156849667988599401103917556865288135042470394510149516999415814979653824716977080687104403622982029644710743728651958067952923729815450002384499103940027911655845277442902626676519188081318461753551688996230100855003729999179615988493075683512796426997600785915147744205623214837933923105923839319413419605612209981797296769849038909740135873670580590788912392443865054514169733104309717663073816229943923129197710896638451767378702418449475883302917173195174878658194380482748043313556789684200027130044130700645263015938490054488087399195968059851433130774138020537901805425676198039636225320826428391485029599849796146452763796420237206734914246985449068909878446109187394592977980218406301054196710244504270329891313978815996078645112253129969630083812044167104712480927324087573939782405061939834116445667373334447290437506048372934884289377965408459977370560400961758190137324384344074255400368413524274082764009770952163183193722317802101871316005218295880996323662320448544220817115514519270786681118375118601158610041430724166472326267170024868731720876292832590567292566413605242924212932435999921243347099471907797631598018395663310430911802031679749435585891449010468858003303376720306347138556940458809546301945369352968100621924141866881747190479096094979515156235753482780893987163735338025761726332442746654586673100693836694567271204463207659101095105487815627383222604480078492214120459956928840849362554024600338371741187073249516688487731799087282293107699013625718884711858660677370981449823892197057727491395187427877720474801776398325893050965128224843833479066908706271343608258069133120101990856735775329950135381636418448477093641672770976952141445496301948339304173747710618889761779008953745959343965294979121342723923161368868609034395450556755000836147091658410226500839032090630818678494481357026188566158244526725493638328124005779297644192862871879675955662511734254875182641113953641989148405619055671105652699311915419691135603092699823248005307922528226881477521746054788429216030100150545694664990525895017800242541129631097837243504787632212856159993844585410200709533796347454063776513607455585523323658700960491400878326866225393630301853109928698654310146698110798917227535496733729075937542233664500129421938272163849129320686887049959186454033835935371126586267270526549913166460078018969040961736151724956265031495467179117589086437282076632162329479509749831095826529999176026701734741858378526639018460009007145348292570639431867263752247454846192378726503219582803500246676851873487568912038199593150256183830854832402830046634356801033419713983085093206900032070607295850392128233236068107714659475105274457813489131174503407387415996308893976416512153124809674029887514723639531942878590211263811696605164356335134231953003835557768278631952137713903558985249136620992408095395516950971785392466623925814050324987852422508061113854501758241094177559700100021719746735725319556105581773411545202517447292903680018350025880666843401430373190478096417997467150625230961011845035569211963278436809730427428971747990701877016334444547902447591758544314007385504081566853137431852875583975881650033061950064259560188538368326163134599960769039440572036363705495121477988860157319932804611888954105471117946375760811753046145596895668517930911130685087569503630238599109292219117610994485132823924179312958628515008559589728232304856238024851936887609931691330209567469262986227760185893614822150083866565256008998831636631647784170272543518856677610624180481722897794466154710161794122100671372660519943636304005102930335989213136418980323802425186144680787869116807156868573811691124019769259028162273000531291126744745509513457671189931491482086778784795015255922550133630306893550847050205411207224878383102543243205742641377132154994470396459752666893449246782957122130667216445352268151390804978613603326106232358490083738615294363206103555601514758154285598405088423808589746054377537179090830389796191496349445606793192364476931801584080307682141525191709074906981162984122456752668972232292648042412076947399314546626895955336644263605853918771374088708615844031871571681264251404891583957884302172684020548490518653496174888884182940253143866067758858186461535864091756446481713346251989087114541323519220964256046723339547229564811405449410127636153564602551704359829670731779925548131480709733746245597024515962238846118988156103631813126337380496669292885480719187454518726460105873299006744436597031461184625562895581103478921292115013873437673793540835983647893401524677439243308943645002376545259287583958060039649610125438335518968734449058302570545247337850264151085836474465427429580018908111112031250295204055383810697113708462521437063755410585619092362288514950889394254527979183169118266299284177394446069016064401429837162851176634734217495289921429086660347960418140173904495792263977999103990505662270511113456156944237766135013266498230738037974188873819193086553972531443998164120641059971707424740289857486962658502941042292282670402665844941955773819902524565627944246356124809757743707614800045526365725148283716722638661821665294588128803166863365856618520285097279102778053471337403533062199663838964767325056153115637490319012019568470746411847830897225492931024054057659296345215930055839149694744377772596417740483330221769679010739056747830900913031810166371304446894301890070927051309343501395661733557868446969932019782886488598035956151132415337806300091393382622327291611487668506234888600078492238204523221814825359841712568669210090407187518950994722792753643151381845384033466368498522627754780654525271129155732082388851635158949285883239903154885790630607450268991810311934106830564247143682349818665428693816351999262546719944712118029065425535330309537543915364713301515490779785408847592931386199484252607018549800518280158048986829501086926310396742080151098077316594754625729976833181862529114328927483575554523927042859747300711910428311023541243476506995715878965452336457001671384275378609066950504198501943605622562010318293570915937639919499147194476648934704570123712326008482674001938341590891425996655638899355218215085997419529541848260736073923965337961687659717319921861423725355987332132301088746021765361271011306003916408466822808132960724652843956629682244248569580732445921021704489350200233274398320076254594572301628674567297896581399905712416572288501175706500126466828779309149039420870264489621835287077106521319537495082544722160647584028676438157170358019877196656636843949481338857613185093176344978780470984063166711721503877175525681276063194301282453601265925393355010195130787292143938423212590209574603955884790445159731645817186131933002828363767419411805391970033439800092309073632775058357416435992125895676075559143364716510109653425467123139848990986993517680311868107807383965293884597075746063546346739226668612339940484276909959908786743063344515633556186637198967101574678763189115111527345383635570376655664764987642236184684022741128602520051332241584895651654885873572242758907474899766275232773353540613978494433498531740303062314306617466317469457930802030760179829264771741699025944067376011801549431763192449965892059219911870773825409220005487630210702865007556846440500366071453806581250645648894970185110241677129852005075365811869226525717495213869428285026818197440658830411402607085368191947071989270748278328442743119487268479224298674002250184828577175577137924272032177709073996121814722167763174914058584340902119686091532039657836158772268865988284166452223128584068619407998400989462114917423063051619258145969444388002144565727919715505910589329073019181521800230515583516876696944975658982027609391761945748509661287974340504362992823152278717006421579668107004761469411987891867655141827166421965778220428640432985966665416710489901519393189108867546296626874106178161320813379319588057023706954901112927252602084891642865381180924604111037478936613728272619112980700810208523202417520828507417009096060452691842431712003800466348662356111457108922054250582693486082580121558172411022675416488081123602314483729781164122105920716589037158244445353951832632489188492311915829522889049962436719179881386309737608833326619563891221756698276706581091453757630105789859715280589161932285086636314136041924378300248653700235252291186562987047167140325714535737618412706500131124952414782369455836534060260757313677607166831900492777714550700290040596472401130967448619426612944381034780045815113933354596432090615912076175198354798164876229710607312822819991630812496925058902757686905771880942245723971210417471022820207115224707667878038559249013039423926042798001267967755781136682299834668886608942620534239812038789762168917480574167714336079529143239912668288291499121898435635322552012405461593180354700282030068914968071596912951845579893889260400178606370281298736181221433212722147441725500761896682726245600010134326406341131257685478565798885476603070895322542720087039728469100903543963787863233682614904942654398352790711431225413018368464477581787027768433390466650579140625345847034251278664435628552347835178826424499464917990252493699091541873984200840576663408324478497294603391890167038328750341139429840151861607214486428506429497985436917191086148426475069868321599998204258178283316283401864609233607100302194487989554074540814973057414095274848182682217705240817579282942888775838949969031646876564885557127228054249550193641457001386392126245906849093094913518779557175536872650146917412833732139374294378030934971091408821909203863845011343759252736437558101948656321178011339174799328244430067291271237135629617421624675431854368704453715344475059512905992394095238077680585775705127910513732470333032698628371040057436680568166608395750371859716666231572285733167973940084735406567437016751025970772450355661174848037726718785701235699083545112204191431796295255921191097492246108384515061881522267940400537537591808170121250828406717209539120742003510534837059951601596651071628185192020695036652567797342167766641332062512710618458817750892822558227510038131099896131217061704953340091158380074419629157222461235032387767854515529517449067325049970682388395194857666084993709075543308633556899298718254867521940489836881152586085429588668649983019839792999912755831706752336383507169429388257262044362013622168397815108644348734858424316210480026738169814343053598798527631198077310774381402019758905818219751278592315403614922115989230901944536585916727611306807319469234934867232101563232277375959590716890454789271614333931270369877159181899433492256623874219977672491053494126388365468168015323443253174143669495773684286958673356570633481848694289514143414524512137286440490333433928343986910400164166041870904774824598652626107137692097222099921933315506057951658589853979860719774111266847066845924490968230028399418522471229535921445681875673580229374246760258506198263526721566791765359840424532249552032085173263758569304480581142573439971504583072580165465564017335042956478293539700461989780914352792049378413571408905495503673486796704311496184373215238763777376939435624885960522426437732143218212876394009012159673211393811254181921454910058071920345434063964300009751872005520159634592118203821113914024012995772333207281279798805016728916480765324430915655713574667984229745084573878824139299271309288881730302117960826086438134209197431299596956583527589090030529996059554204026127138962096582141677158564954305834149259610569572883363571982300092854095448049933463736549724029514946141142776872367650388921679982456284612151068111553947393071566544529373700502124597374109554240273045276152636382868085561533878682398312203208163517519810376869534343276364875692615794340222197199275004812581426537887615879379270640681255080673485945673889101888865853060186686116158788875163012101795943393310366767628847147824928246108208664036874113816996520286914276532561990004545420336175344575701941023285262484676592234380061813020934459228763563361002092695391420044525148184684708814811697904371320642329772364652780125768688011327587028104692863874582859165378098020925581713953870592535531788853881614791745379482214527019398515946895226891533285933966232456300846870708783182442530101089850080218538351031337350784163090772676838453093832483388297830337820235246814004434268057199398530930552923240128091025353729377072008816543870877721933126420770733363602651715865651083271194264488024165067500421079999347466172677961956043855101329977247449128258197020217394197097866249409904959477599933631688457819967316063771989026710538336836102366735308866508701804115711963236219469789352957604642269441866550641076089160973483279997611140865553365766383236989392604094071891182515371675388051219825221706841692265599632446776119652461688120345232064502167159032066484577176448439580161513539238203925808755083728448691744618781563237336998868674303687329130010592461652630631739064309645833380642730741152567880098315214758831197360693722517159275498076404237899446110132538291265048684926571994409510844306968180544615345685581897987078388839844090886141714571520599584689282656031784014960922664013536056457916352660119242149755328798069426100428380975471241538614184729054396885214389209208336497386275054878867889857654491524919842138083427883485260525227398939091021300833004725265284768375985582537272258820828165185222181809734180287278807192675989358310928076258774065799250409742944850916932835039066265308589308486495376215511734097367455642647774714468804906653711864379398116578161837950973672661342187476655441230458492793491774738382960979446076133770081677269145298267458868681843674249218120215214597814402519739794923410717651305256030060708820380691773830703230527008115731007763034733262211081096384772112416568615710670412230109844004281988780540819823109010188479315341180821353545335199741932772740359388225344254113856045717991302557431325672645650795743953609500433530461301073262180920953760721347517926771874871455495789095840457747390490862538740728923435255281971140795642689184962502036137065170980301366347905760537555850777727265364318744999045870717793781669755968099263329875931947713941966742427107715638557146442388416464812913993765660461424037773537451740795700654395175532905868196641143599350680232969807499320399621492854683394555381431883993502260692885613168539928142279745681832668498405229689007901227498758934131479538955652944501207830511361779098042663082576650979812105317991861267419243771624648711249823167486425982314959603771494021083693561317352591050989242354037668132773532881096866519399692369976957779540890849156600446412257858532536078932406111447129681047153803243650324098392259778346396337799099727769764728350836141443817547530768068327301364027774698435386430818991754966007138981368592381369908702461981231391733848133008990036221835178109477207804491495582399962621232856570004865325429683964320338067686256997609463007160210186386623349870561087730320679517837879615406655151377395484483653061696537730164440627354322108917145917089345675265738313332310620692099654406816600235961869516460305965875182529615966949274946069752533071065371217234703226971057499045243147551546700210805434547133165044789843086348898880240150295903603113003010292575458610673330270505562097395885413291471683379514799509786487009488848459752034423103945482958972120580642675392573278936356389368923524303955258841952335937330663414798998973068975206627585940242948423209174155924290803735417088092434382372395381009223511571877896392383173155510292885343814719174503217867244304011093956428425120318876076954082438142961384450322099939743337990040491821653278747545294959900561735312256623791641794902209525225667373259646026661988587944806274707541017011888918795811245325796117697665827529638901096108572728123677683742735007894239922430726958384121081771048207211136234832915499076028876861444920797058153317580751610288981660830071454559512977254119269896216016054981549059280289594252689196361436521273828785114203925615671460932102135285395334848377496428902650281818407895749634891348107802776656089718265772596590490693116186173818191109277771270127338683422487936228029810531349957758630781146422701637589879266668107731792982234168257252557048320092661605717560064569371515344339463615974507391075706387740510581590021137017858283922020946736752094054841762143642528770421507746913589939025558924688876311422683898896522053861421311370773715791251769727161935229842780783825814874477097313206472194017273311166719572817721858780705776741522939022915469168358631335462640164058051760874896204422310727795149072044450177505063695505831234168124796667956433407165059626669289276110562177062629543711762420236246189135338049967189124995978027789112323377105638145104501774929808910887122623292248408147611863467879848284198499762925815386857173846886800306893495609641605811070836839764501586664540618734332786595408135246270121659706356697993829603092577033859997939546659562495757062255563319285568806094716411834433922110461976065182372189246826306788560762632920690955774569661505333247290533324427606519461366397778171506665437004836428375311281760574503290964492870112052118892703931850082408515826072345828479307507222356051956873993912405845375773910852847840223360852071041432913115729971157892983234289715655099848624221369191246022384453051076942819408432201537425801310642811839745582329668808143501311249696180902229095904383335425533327430715607398507417377725776137515717908017737536493260630209491964416713122549352008662088052656827898310135512821840045761331138090346426818554790698203073987885917730840987610715000864162017163904713938599442445666608786676640963987273226494719087223121002113847724739287684622726653731682752578760727262310034458573564192977391078459123153944189827794110355323756330402275725372953432541090113407946598134391145725145565987099953919878526190385790732711695720109983688022115554423776993906520503192058706227965944907484605962948610548557173928041132519160163840266994030224752985282831778038176466208674144531125742249460035458804596664115777367023011246304587330510097070328597878435457016626833093205881430010540958856458459671822625448141684536735070872672759211724485815514133102008363519240308956533937824866384675684766465998384842617926319688156392682510810944874604160766459942457140167686900693915513066730089127912506531271231528246364985807973622609347523815299266576733075756017787893970126553774762879088528286723488600501707968045762769628288212489376948093577186129906689624711202847685252252254862881191579303377411674931515187426846069534061406437038657523519981374776325286288239934026787294415243177698049240180624695070075527646279308019200062413023233997311397376315719350380989781960890282397223262029503281094959362618932106041641179058680575547544664463724142671595745943248904345178483292181106350004922924599025963517952440885555493331927480155637096367260340608488876334140845778460353258306034514767569143573627087454513991339747117743811369642169698250154242499065791861122979345211942523100581091081560560347562742068142045515227149999816150078478341763518969541734742779596678299472517725990532191475356250718798023797331442959756907872632312880100261154399647059429757411496651632900058181580235527096860171749446211389663882736410499514249413711649449999924919896115258176113151993479537259362455364248283872389165369596948038268353316935191641798565306067672784009386661903127192048739212304763678469704190566454013339010354760072143242343401640720073402004508579445462803742147090482170182378017245461243417763835529446406262491314592640742977534287284138384974932548107174478618986475191077610153098252160689939102474753757339883469009088403760573435847645305144794817257561028808171276490923328120733376137150473381983565708808599574993084229576326013608189450694596703155719028281499948314984568261618809869792921457186059873342760100207464750695382746153181327372213222750339900935874163415053799767765877545170792276507279387102183586937235542068032042283972679990075616580701056407088628591107496887790660190205554612950843962590015071374936450005003029499611076485795037545965563832629665790196490192747104009558447710173667900203440031824607997311868259360242392652341656494197041683597062347693568054088135927518718337529612904866657337680163087099984898857571739054914000021735839696058205169174319950085968094931898627776041709059416075456499808545587449894540776801425991033192141885220224320911312354415464860391407475146760724600776668945080439126308797591924294072535723351207607968322523562037525426680566677379335400127106485974265826969947027975404741529694982017982491214048036159886848907022916456267314146626760654301088952560924953705864522473467789371141519573656145183665203674809564731950058563785356182168231778212605161694792055292291947603544182452172065562541976112277515750080830793686203229108280221856508705223317157713593402919003850519469293709224497529893766072253722959839967991368522276179595680321591435951704546005762575021650485125650829442681312262307019585726479498954516146174501162282285145512555354438258869692721902315046208694911308913734544935959811434754645692264281633543385323879928723370531096013936840199710195650916584087848913986200600280556576431387336562442113556364335597394382606910933099208723477552717356356771779252917538184326613791814136926600795094546003557770635843129746302671921849027853082905010654575075311590824450060492159094444942868932826508513676864876504864503623117102222720865625261686628738175809954847685249689119805408246713582153852840357363669174240712915064870649825723211570809548768688421732457195279777796076678253525818439035576691382806865914080759249938288517740276415950185414641357352786299507529563583426518564811109678479543303876573951635345445476405055854657347135701043842118390713133197473759077135178549901524686835640247404590138109542753824231325161117375766217302313169539624774024238031073941926582919594838585278627399738426958358464976078499466600817369434062464698495308345127107433908382795216196391200869336431354694021850350646974518266487343458207392568322014992337360440607629478473080377382489811931507429732215649543672767059476679510039946874330155299415474295878449599320493404061311838713741472331986596956701431834169448544009149641340279126614039238263194102896398260660912366464318683207789957869614449983660826698863856286648763989640844001159627286061919384115830509587591378950570321313587183875741160469195002301620934578987559015244463466951164370371348007440943417185801682096985836601656958191651830473815293782014819714511379233967266894016068678866217410082200020534798797028987764228524338150331910895968671020094195755549390430020944786788138920480353558541339835113571049542401219089951014291828287415192336793534636330173785025385561183411797455535034277054484194557869255134966581735382704509594967287484283350502676828932911216657868512645196965143202482489529311657853719679365997621415508345210844781409316399170617717413188244248250593961098842201987496270293776388598463578346163493617582802192351368209317356512328501522629541205205308705833527249273571284425197678187897431792888287649789128083064289806384839440014104201931464501078779313739962005582646314598427329269976079769366124870038932352586705167027726415791904027400451180939194440122245703061076010057671645014896231836463944886459522569327805234048927539891303957815699119816284051512013230478212997079645382073326324507003879160632237301191032788307194706849018940255832134423457889774702973909860681030927769356300015186775315810602414672076204079282539399840039145632166761322551572623664876965209481881280679866373939002727794236614258264138025196487600978607474962460259060846779401901213205466237520932212615391298775814754595738683711053865736926399138257850062234976866214388911604685658868947765502953468642239441596893644990546395562696679231630136710952127675828681903469617063406124599746113609292913603892465343474779613487824615622795574369834989166281508448225009361360024765720728143970663312401420912118994993831619672014215028446890242810616640912883174529351399838689585032391321514299170279398553276507342021486739317658427495653845806006970730637459531072876885812841837750112334903083927889281768861211218402285313420563828280334314262334701281329323169910965999434215124828251037298195438748652390759309775246202476623862213281808144415555696385874444782532646579138949168301555502340784819487490504853959068179160792397929237377770071331490472686862213451783300454913477333398823646461924420218233960208296720659993853350245147127083099272788590779832228865523382027075105480224570932030136685600145545145462085143282333091521742298421539401969226197321578584016162841758899195382946724290054141805453003624245277912406874956718166057475259772645833574764175646536149508268905486598872158835932209508010259563843581026452312111156687312669412713723819450072674726926668076409900724434832087372415843243090101071891064386159422509638537189464934570194428228520624849916422498577055671998691920418457061742554199003553744281466604267327782703274810648785062437244744023411863800409351643026633793602335538703504465532259694348544233900618635742387629572950796182374471477808071658498509356329607749726464371233578243808186895620189239495771194646616329719565636538630290597441468373528201329808614822189719343588495985495265188900712542391006926180367777588314049885970544244414101325917929036901049041968389233100098930653433428319176523707617853157608705654513082075195890596379900288659704906919795276355629160428672235801898266095992919476013854152225140407892716536212253240117308764293875240758368367433949815365433036348411857233638670014058694979622245266230919528240388747435888401684466979809213665742451103626390229235622579461555285997170324452009496826330365756985948891813798964204062840442169264073712815710046173953505496813550137047538720217906209685969062545807167881794418121764208547121329263491180607944897057077131237810480962076170545792485100026556493839529582862409641269806303327489413892451422649832346801899916701995409206632158530251153893623501397172813342675651827919620832027187612778529413765840299074404349688077169343898334329543700043993465542739388187506228054892164565509139156577146081048064097981137501237316565301583415756130046927062067349683775778019644955432383844491706271707920144908679589064488784940436161847688483501433915266608698853668386000556888659944235615141044329652965143193434762982619004167907919371906143651812715641860737955115904310002612075448844471909927678953948073306094078677215521082611997367324047997888196262635816782155283679149049069278279097913476308697091489262954612916359487978713401584984542514791086567533294134757314643272489715790263498930140153622318999526244511799981275480094095960568438221931809500460419179830513542409266023191599656130077425242629112959631924941294615804539868036158130288450619949558639272287008751448429301666473747373523863312245136070082533458257185795077904872165060351777745053384406787679941048399662149736397977629222171698165164599141624431789467814235056990226684456685506964268302266963271829001401932664973037333473243943016534260409551311105200882168773928127950655126690130548280973929795921286003845744670689960116448688857213722417457439580067349978113200828558526631433853344779860953181966921805302095930082395623973583839170416228307696241344483282755876459084603969199666361696764034468300372516872301723842014216394468508877018593559713173912089041146789104506447041209088613042336938251295506514644932228097246106132695738179147953007312833166606686668516764154829092215591498441642185007869218352854636300268220229188847173579942128474315454152678184755758806707294295876863058791999750868544914944561664118951970056368434089947768606026794867862565160014779046520224579891610899166689883853929855443864162555524270369707460093368823478693600056219513914726765189667239243219112467755452357534493601407867096231557687503607490195817802849306700661853862453934871773635747315768448585033389962675910232024378699432321385079845050013417005676524636047150467598130605951824836109024146136454695347528791554755485708144650732009413466574540875267729716920727998857125939736632921212067237301573157384625253021974392485100137639833260793596547342824640854741536928875423122262697873379538522550558758841917488599161843211293027001510174019862376633172232435317981926169944351473129486890998993886561157770035035480860574189591790991463167645278628004903704336444664400536460487088543580762802472406828991453151468500546235104907629392119495237935596014263156960711392803231119869570840276670387303891053787851641206602804435856891600118844712111301675430466543129165352955479033876702583061238912902467170020448197308655381997909837772321809640801873160045855233935155889450571300223915815911864448532920792600112200398233052666660081793822917419780122271683245614586100408626613947118290449598612407542297265960906532340855521700793577310707234259172875528331233886219020587105051648429331486045344201581737888270080291531569202167005696768001721812655070795664760271731299864360658163976144601356064623591761155153025025605260435824495121335928777311134378367384819773674662570755138288097120941881218513375301179460734763469382456031608363617767839013577428614955569607160157382412424987716008650551615999028487857761643038111222422089613653431952856871761669463061872919548865698861751316534233800263935890389326358292122895732166708111415557586265100324172014001787490911611017927150745206761406163536840634710924528842233336572634239198463347601404648312135610728519785681359687720088206178165679434341149634282923436588551106800884530131482533568743460514336725995176054398950422215643781726191257813485859739764860454660978863486217397764876611484835232326175111018299696220380490273234854060083800014599309065482910136010760061098195043861977123357322170200676987166954849174651690940177524961373973056246870649301582371739033230582768372060060178904699792382042967852005688858769320829075926125772724956966420238404282176150411178433925453779795716664233658238881978036814822792383747805913082212507151309897388323222939852358759429843559249324010395386299033354364553407623172379774711866676768544234675174766245770276722306400297065091176528045143715990028570043577718614070880856353900660810766523185242760204792359867606383475918438854152043256051714448607976001349640310535139672903155740066503776796379630848041682175892361280321234918423550611514086862641172286564990938849037892046183512062216999478610843130527999819420807787418740023596913926625461610217959468447049454374922093968342513440585881338322069358544384899444354094210046361230124555681690750003978932554845853640637886314513842514909648526981204843639572374621232443006443210298604115955590303310948335311982049511732993772086824473669749942773954542584606435899665456905007303639144434925499210966732213577938947516209390291362968555314504831013418195272910413826912473198512502396485077225972975595511851869896832402611917834789396610222443911132768243194995018646794230325257117149238104949006293882604141095611653390376647093273181629494674526491272158484470141625525931370655255953466091183279398522595946597282225760800269789661241831733805997030311462733749621066641344423887840702150109627704632125672761069862729081274687302646494489485840348101843141587146754717753256223467844213427552410877624626833696195598516129212558629913380831113288332117301448431586231169992937907629781190077640352992560050634192130360249701450529523415425935242556660390656575178529904127275501745287928475862809813676403485290507583960200206305986446593518347716161921726860214452491083132271123288177381733172966790911859884773476668019504956838574892735212461888734461638473433106386405615708189735511925539930273513474830841763811144897725860437342261800329140976496412605976301007042749897143479035248895335416585716638286039123121195438548641120988283314910917861526439584316122384941868008495701449290739591296885766629150935295841506349081615339706944663765188823661565025517562135915527764750833920567972238637274124525402566292519654513140499656711740714299085650786306699389831944855836393432042660704145026953851423035079623084067710076281053696474967386364482896702508035567283245228562598244178628595936962605919886892687043821020764509484418411486299416825988956563218492508702458467695623961508116554302899358662442660589710140891669822602547614537764546939413269917302202674261820413677603049225383201490167373259709244758159852050589155416063817048115257588986342985924950177352121395916354635605539898260298879969879415345445522831327432527478715318903479325810125035850968115946928391221100112227353081534064051731243022687330384971397835879661835246165039587652179270068584160664519258328887983363708951391778192627356206531338444702605464357923957753047483569730025311007540237355116058843381740667438474349214044240515760207197934222567732281845623268428360719501237717377138108299915878460769682930391766329606293459405326244226528188634942590079129003642089326099182290157662508446782347690259849177083628599123242729901004836139372406453077244254525767165929400252584351608245542594353029793677761985666462128265666346367922727472580887332202972597521985764450408485992143594622976047425496153709129868059056955764139039673351224999982574408527154888800390467409654657384529545081521282407727107736807491796271199838300549976240642403392628670770420819049942617557432780782638215471290177027112033047224024085612509247765765966586061125269904163401671322095816864693155481010805626911463091713299292293695504493882163643591447438619666255678075469108458999393520228041522638355906654655696403367590264732492729556837911445888295138410051971593888065421204894824081136607579185954422166821106481738131520798694727569256098382531553368741986463688190738307950894474625045992802797980732075344434429519896714390088541960027608839684542412946572983813460541870349141607943134182087569499436129384750356482339552004592910921973562768359746159650603255596184637142184982505256572901310704334617760324114620021842203139968773768622651039041855706734674161306115106771440509464329893727428123113574748536809693104076468765662821217391227024093568163800635182478708460979289494290055898503955956175600109291832405637388939472414648898280964822523694601448868718540693354064478513163419027444565375038885558304403720623408522030932706169557683088360271896865206339656194918921103014690063563320501254747747500214096890886713980860986116874160541553144645141634225839887319909471275379808079968881930562587441501027264797132125491678074413191419237964766779179680901379457269273851135704022825977402360584914421103647383707224379064120162506271057671614729629587217210006589997114027452927570569429681827886616937263344619395417616727209249981856284420686066582503465322951509802191753499819073420464915334180668117523364097757271522269511926567334959280974880868007116854390566559563494950904319028289393224495974694329555333722760202354677816906720843566534496641379056058152635583524059600882044354948193022318375467870547763728817700431684939279981581010227673114359805953073474295482532498936372894705096972730455487468657855224491874044591658717826657941576355541773575446109308188003685892910842044814814886980493665921752323329541218624624468674507949217363751389780788391623776204674338515679552903822598261703440003907336723634597635538824305662008800892915274175252832361412343523588478973007002034947272745079731081030557968623096021811970266755213641679305824349284712569787344008854764030749832750665437577553009090875142265264172730920470343999640436219498911504457833130370732597506444600593606472148876114614003032668495530673097580430004272387136772756521462556850418621425432196530493418700826627756616032215209027814763607281737241526295568374329456538258695065336945816127603753607421650404016264482286819151796105595587172368661404058955996371515889422316006314324942257926373998048668265393504105849772115678620741795476403408130394005493407207931790154970048971629253191605418075037319866423333842625054062132574375763591223864992128783112363950631660553981768000131307117120907912686009948705686635351963352672408581132213236701362468829998491659220845078710435370972837902543112138998948000174355786968902095721354024437248741322744535601520168404209985611994414512202314144965994270915901376991494230971501667025350975315155483576612288850274013290157744563454993181480588213679146630866355077483628780599794922310419008810110084025758723957180501100809548525050797446640799937696523901036016708413946282261241029302719997350611709161009602742473788654943104192690318183314159910995369187013441676786951867805233990490015017697826510258595828997321372025343814761529512270890798462297831928732075908286661140447106556260224307904629972563080864200957977921282554781459537091834354467694075758899064942495752226157091988237354859800713293663207072678845056880383589234848535961456808336933784632768777348159274525758382589919431170743989057571053115527711401068463375531648037649463439050683234764252979229458818846201566895291222242374744288048337716783905806136593922390872271299761006586781395728643985280182332771993859121262846579315054044381401577925164020249190473935879859907638877971867190424580548914290033607730254180851952121071705653910560660916001150830846138231975651521049006571711167685703830608818534526997424685075018581293423461643163408193729101884879776767975801278372682718979598671725543047026243485338734126752534292258648046507410500012422136752989792731385110524635130841764576367191295938426452241830712901025765770022392614920649970088907502638113072218807616714709616999425231221212784668559058348430984516030993877486399017923374826503329606161051195472037707922759409535479415811400869454969303767428331386564849923597668544532153552418998138442839372132816846007583932224894181834795867443428613778341817321177115427295434413603436876544040294572598575316092048413967873932327432877035728533915121505055798217883049834817617088817235300971741894664057806103266917472602079713772741714416749526454522691115852745981140953320541641665952416222762290597416411428046245882358367946917243665210897823918687018071894667124951106245197938040759417843853624700714651894377538641331079065438132818331040716519329293612392110174384517749405772555732126529314385316992346452636438920976008517807134188025330231249561168787106507683966840205041796928641692133364562300129510249771766524705303592440758219829550745404486415075338788564699135862541755400692171216185560053264627217843896633372841747422405309627526288113433028289882862397171028841001957328575796351213580084523933939873459174900961442011715457096651670062593085755670148110050361152301782888264802112891502195450917307268021610657823148292892627037104089868466504477244358139435811482131431756975777095462503884974704043546357679434444167390720834770451494683695784117304021481577531277925837548330387742365536430798488675987814476358023325387665058097641807048091607185664759899007082376153521717183550699316996399722569244251579489672066042075753864136011616491258062396569979474712183802616812843595390834283455343414969409285166921881633148131372622716433526144557103805123812089487225933301295593972669019809464429139465913816166979285077110613589347181584750485677650838414995253864398731209150922904492024765301139049773050746502346327917787909321334928813212340714171815866434756875628692826228132787680183290872317532714757275021305235638874289171230908066637506996103683438164173212171449576162991103953597947448906067620862527063273624267074950742708726759575895477439755595658912174977053541869498479434370256530046262106893516305320704871953116917831085855772350164408697835840726643366124114397823745885361071739045380833313422102203061222597131897196602571169945294970661077557641284925770045139394739383804148181817399620159401994326254120421279026540405988277276468492671259148915946532365888047576219002092006672364930808609524451133667063930293633665878983440851968902219136894557233732070937945506735312976392499961154386675994673889479993463145178475179363504470115754116269967139609499813665781531999069118313271534638003921267015629658944711040348021317445294157905183956464740926712240723282381580751558890841450786362825912015162814827706298451817062217392638996567490156194475626033581928095125318189673947257278422638742128037453737261726807043443110272286320719809276659006625417180355078697522562169588542996193711602241298874031219188886828456780631622355258716377274480213173062948567650309800061887708067122678564031945463686022097514787175073681569461238672573056887314608866548131342313604560542078994546067256526328483911463646011867816832153582213216706558474690963274476810447541879217122562067878441017455119880837144667559387869841290205357514016691384749626239714202781874390482208909525171855000849437794784484723341921514048064292083123694356933456635599111133887612574554031030535558686978396259731361933515802335955895587928003972421335743335806911648557965021660872009713876166535234649780816432610062422071604088030972793994638118458055003910751378556728589123859225495825721771210214816070122815651648379989388787079545770675062501874283701576241067046136907438130908547287738728183120332383921378642871653987049834784788622879316195726176976798573501106018505700548427590605967289823242118230486826031934022969042934945019686058597984207150805778215501973065046380198908448365031528826696680511052755975115053088240864413685156403026011634367936098169417972699994528383351336901206223052860889804009261437204548391046918345032370541219611709328120531937720838367247363386029286834888131488875773525798674871021764101114742721403982824336054543734526365564166926103790045067663864806805143552944406167122362087173263190420792180632066956799032428380338538598907044254953747397636096408323868705098235673664074779775777468315955519957619314413998250365215758249577499143432338544354761769315341000986094807209794969181004678583248496066089791293920419589738406812816902489468430748685114647534790434904245257497730889606176678310380124408375943001682852020512181645964236073867632269200519415575988145818148347365693230488624232401275670965385062288253933583756668376038511396383031745436408441366642067256123433102633184758500418678662882733082052992870814007957730960463283275116615322878018877251959430248346812158496999734368875727376463661604976787613883571929244541650708046075851832975360440173161109358708731331193466833263746618485182751688411354759993832461916167653943383901706967395943359439744872666911124367706302768433786826691482626392386157230599317491983288033533735220012584716201376450015228121483677511113505112167108491107149807842799558452914152616359189197277936147871080028162414487334142353090171824967019591962234246453937614744099435799086008871829400114188503583757743055833697777244456708334259611437332580290227180164983222681879254149018734532974075345888452121007200792688736591610871135591512261053743735304537745265006030923577554231865821916848662670725920884335454365394895018820983775642649713988111851831223622323341077375888555889629527688881390809017131096451847783668978279277933706081899138283782745587070032818188640406234974186902524197628743394784131033543403016399717379586446157563396753078258029005036178743061862248801702265783015606773331757066076537716637855385533072624068173458511823487585762194827722979891332955210316260704335611298086983495692227100534292900086647960065532396047238705433305645308814616842231043562932964880204163801769894522609167485718047662881617273166873761794858438032725547687542682576942249485741626627828047588547579348170794264882769644273572242800440544352672065548924651931185665338464107484560824996125343291309327703347715714704828715061975620518038560714910667569713113689912669588825714905582115668555211483668684855671049302602277246406499887632901904293609437691109123563563591272507434601839953937963785608703682333864079003371162841168470752248059724003910837330541576750101072672894111917168126925227507040682834449150085665869078854239958765599261115198092322038263404834350599303163796040572865716074882838861371091448195083075303161224177301302299669556344343345476259302172132418572618380783459753037058347813064711643399848094560346996272460451897865221955552992470983884606359937271287573757793847838493622849433472135519159184422702987411385130456344483279222243789674431929192295940993213558776863912031828958480210211467845853882248022011676644294343958839349090790451057359272382029062125103742085482603424276027439061480858988902945543492124322508246086842308178136787279191707477525032544392984918556153004118832220278910726662389760211959349848999730401109953356682177906975329664147295343037116997851832262532086466445652500559923798413616092790692304304221232958004017839613028222729301055560274501037265868507320806485207971315326527528262453283001093529252335124436180150916861271496867888967429626291138209098026933797934281838615466119739979044042252664115658755225754670643908390882817548984265866929469879752480073799302921925194195798817559947138652331794550371771849511813831036822351542118009783701430034266679201266351098036230783085870088804507248185266296716259664513669778192262137296966800323378881098331481097320749109741730799569988343852219164465268754809263633230901660660577120294185864383686161166023720313210567134800531287746704347041139377459966078430822112674231238689499651920781961739508536750212737004107933121090758050318729440277936879212409724948568669183481593057455135910686957290727823705678961312044473375389446804660589125508390100025561381328417669630794529628378071669482230113547959242829078697555795456483666810227760739409552999344957558365065295784056474654224601278596716826717504342208556776983311936794280363331873623733566086364868860171312530862119415671019107185502239368575789144338682836739906482762798948791547828482668475168567095264739508518071070603892753243083556871163798040952928052697812241374637523357098183505941756824047049130922707359350601692080330524735588784371560149060913568340635713938838654220346404900721690940313477683208852918220352779467033291240248463590477117555272737909365173031522400062658425651068082227539355226162123693157760581475617538298233988192249587965466248878442191996279871978391689931612284150548276055377284933230187133291514986997113891498292712004150381304507207269640035629505456829310208731625273902104006329891761605583161507007050844159532984188892057484945023263336035094698309686956988055686762953040094587673978476864142087495288170440237560657362880664532773362039938852671852618977682019346397208339899549320318475817625700215475041117770910676789946670645599171677094186050736241540545086818067542218122187027159926293623249363572703049757393669759368814935916500571649890924347395231397434031187678458892468740747166373755391887665529343354241287713062221805034836711121283982708797932919853659129932821904350664670667381253763889621140645815152961723690268998812178008255636215514629231022353057227202114014977963712730913240957945335268301816294863400375210016953603611302916432748230790133748852713522484749427589334815906520733640113538604256700300731716834710461172838129593468268866139614174169336473159847117966111084843071069099320037581774608918333670931600121301855654359878037821620188433929491412675921663158016829449582974790836786284068048182730961112510946190054283217455581759903899358144029620528335057954651071840534659617595906574174538003947457985468968585073952187472516178231569638184165902344149265512553506566232199269015394780337751366241351641517756859244595818054178210170069980856466246462185213706094676370590638484991332438691028203870060961664868224154317587303711729405710554398530376110355761255593273899489933230592614003230720501930106118227578030421262955962668595870460526955407244057447405221325529670054064028066436837656686875652956921274401685271143876130548592402627596190765815527785027333142296202953962552224044567237487054663043021049652106693672438480155039182291091175143634118306649445780988573556579093590847536686783066093405114364037061987136909956151340238053519433078272938387053980730117212303757935530277676014232971265389125589752721868396711734107074070145638624673397600018469935562438830961637264643313530348494015632754398670714732811823628502766273457791859612553026013119468016630778140506291457226498757832347479004727581172390210472501209492266720871725881144204341972452487663468169499326117077605818763090246226083503971420812533934150666198899905222521668237564928046868328181183254106395629605719070205863151251654590518571131254342789037597744034251933835778773514556242073318480976306584305902680793007491508389225617358728461690257137517235269251238087799540664475129742803732838667543687752342340708167949000531896638429260109488268037548802080783204820712812983925808928672077349049651851408364158657747119370627284472677712133257582097858582414699980307242270111186936486724781294849455326208992430040763356204931837866707324885013284883118558810624441528835861981638792382768095772432428082977828353916049111601899301020042404480706448986365745284533291456327366826929264798762431246444926082951043882437324522907957879718720481297559901341486031482300213457996555604415574858348860657204029052175320211270604020783687298760680412395953163794623295977756171451800256781462611798037234996177260427740038419061573039989558441402431359546678995405754022147262291784937493887096429604967582878828742981187306589264668027187749118178210611130803495104633630268227222167683016879616585988735904843771131767067332839280425565358450510380763024154055797894391534624875565208003998286970774124685237589284288546129299042801493773717581702793684282692112250044627155929026672651343370075041539237908729480452691838107711441084226021229965617304460869592930217218272832255434778601628837732814800090596917989840164911391035296897881378397837576370365077646572554446576563162060403447588816392320119001493127005387694091271289279109724695791271032088307602653564954405832652717415477285670106310079888138892204942923870567728001962236837692206833344757565003851569358231938011482416640377829212577008133665770432387296524643531164329375662752554236121513079591673207426692321839813748207828425376651036460459151792801442299531296560432232136090357650735705298493760386699772663810071219356704744828811802611412796796435624695193192641709440880016304161212959106017740919914659218004221864071527614063658451194093808122585342168771866063792961352021095491891412865753884968034046996212124202661665578051471548824088386151911486080142739725009752589354090284071293290301655561508116570953441106632045883555106291066935239894561845181600878272529931198056639821040044154040274614190812507174024799591586573635354265253101906940544209086366378219313485052416403582495057534007921745970829453533734734140128683153715968701105457192048109633954253645187477595294403191125106836629982792683494764725755474940765489384366747769073443568943680952032811174253968572992603702855490139329436334278199903771575301648765577588386477557260104270216112769076979635224754829674380138208690540595614912809995477141064837533940659452973980974592879694519777558966312786423190762334257985490875857144442531254159282983362779158764018252913365670737057927838460032955682800336750168505429976278479378630124216438450010918551315015615342417400609841571470197663741341860623652852279140307327331256336737644981098722736533577214148023809870277655731006108988125040610211229348016816858790759534680031179654242961119540044686030681954188054630905880171834142925271202573403759410928634407746871271835168849273936340541196867161186461131557520382242129209425284236962725347134855432358925902113744411882492023494632301669371475878727032975553742332718728933407977960271805262297958122292330705333608138358879212255374794991053515180867512848202119068333818423002246537721981035690968730998247927134441942591262791537283667578208237380104054288615356769031716048264546136230070440015690400987721198772709040824636841887457825058795143066088249087744707606364873667093043440073954554088415418116982729712607410629480791826735232606333695884283134538392507606330574446718391850252824379830719302815990638265547644741074663542944785130857999305502533270655382582457747963468411771920708574206584359431307042949800313122047735105557582537332511717793120006537363993574133255002765177203334239820617709646016880309359010375592689720866204995443356097502742858703864325695509105769458977012617438752322254148696688545263512720286997209157713288790068773383778718487357547529253961852597594000688949693019854211204045544455018548625277843957469038061154550470952256511208764806282775871256758274319889350495371403295001864506241535566732869774220775379760959739931044852622834375809020008667297770514544874171665124446287766024464966602949560424989580825860042120063092289281006549577059918345981677539634730663371882884718870040827709466144248177912325433217401953346119873586078008514399671636632046122489740157462327689728686429344489463345371270272571722853421118209471051981522460654640744554013723338756546432703569475092760294435397990251721093804657198107357579964636790901697472255940058049531606173127699619741994669199249742851431936201680503672907473618208739517229998170573682737217080930357426080345182504807920752605341073076271061009724129767923097908546538750793253415457842852576460646506957140233575846562556174458955941284605592807746923715626611779115373736330947573802535083604222269366247181020427223303865348967158506374071912839009575170740687269611699948314771969140902278184535805775746997318474246714960606591843537638654536440119195548079003358711432196358430933548780991591766685793265947072833021191535269916534837516741634699877504915329544641860999328493507424469221881689782294037229050737019793883138858216271087009946425508176950337434404539605983858105604202219630060076910084588954899619596079525524483886418973222154328010728420875115774634348597716241904205236844485684347252625965298669420738386899278940480062112891454733557886669357703218130155150881137450794662848146386722969965502710559021936209528775077065891020961848054349457651124373112181715162296708160701468081076824704466163113893951695769361469921167473020475288789800703443147797695515665273885446534820699107763588660185613002645386057344287714663242822055224569432505258305602119345277756937499766053696454555622394787853671066285861953246220631278124856508109134651846973325614852443746654410665998852811752487567663846661346133496304284567337395330581108814454184835228448494375795334463323228793086721071664531786766681087474288974615031576845596169003330203292395759813436602904506163131092328956647016761637365142545399346740941815984888366328067444486486932635209135856882435175636690353954837589831362376897505971695401937292413746262940750264007116199882766046076016449364132678398980641408661476188548606923306204047823801173997289877193751777085588088549430971096200235222462982967798357630510441549435833993142681936144846351985171607448377216510880749681853428221476122479831738660542092944006332910759594423355131950914094281114697836994715531645744179649128109144338161371084733339504452585343423677183532691840800199135604701003152411017597747767080005187852171594437279756902651794840058692093438644860475702996672327592084833621982484925090321606476174032169574874951169471225879875579032833663143688798602277224871082526090910084827625079762284712860010393270629503125539238551159438227136858463869019600524103740073857101031997389509879459617572589588277741438807472369741541482359358368272912044678129862394376108004419221712442199949787598551017467912642339835804332881741737759642096597521137538649610924555458845075559539955716322128066436564349113405831266903548476933813659586837743239083695709394542948687335203616939260693642961874359693230583467451915008473503965656981850506952297397499267504060811154842524676684594351691203949606458270939106570776454676716258414348153700061262992049086294483492418745065629396011012380399681785960322392895985206943875100394759569242859166557073369136645508102726278196425498184771074284713901644691725595080935509605322871784064952312859028094871767967511310264729567335855651648481579641336857429866590169444128793949026541137473178685459571883791003757119445964313032128562680124774558653251390349891711809342683602069510790577852251515854924139055582874203312568504646346411543864054982889293173133095696723491036587338226060942360711825544832587998903085348263109246695900155573219929511552061022555466933041514425614795314233627078010416096141210957332396818232408336433439308440315214489788502892482472583183258864839415498836948439789132136985726901006660272698471525916773557761060378816843474419223000961626669311897612030980923443165436633593549598338017420947176601616440618223650416048726057670177482343590573783802022379526647548114759448932860071268311295483456202260263733033754467559243848055928854725978751708576981891998066592442259281559354443903073042893008108243962519930767747092160220664052507518527831849237301765384363000321532053611948016159944950151508490155545757395472750706547465818462718633328314677031775374208343677079913805922601042103308663756445019632048933004128448353308724104566828652951959607350498470972396259344561634380268803070266252269892929919097870483116815873414870120352287849092018774995469343882581548645306761401746052812050370024766403255877148527912536809836510763002566745903332040459538036874653847752322181660341536872040887627479233510097165507833299423124075763716001631546288012655127792541107779819975536620833903964308634474969794565102838635183563734503276069200308370187711803289123067146834974869484459835682032472480767267326847160461770197385292083990242952329118333480499561565367582095289008514382591016202429501243179721161108887096602849220774541668541314402316448195879390618997043851059581019740753280909061135662745324745473659571360626797644150106719948580060345773520765373967679913530211977147374326154191421288814503413178646830149096702079052624935305240168549374093924939921897097710309824557192064969425229942801998871511801049606418485622558160510397383644343089983396521898313674691044069206875171140368400314515614726056347526467233671921527356984950857763697405404962387052843392389995709882656329564807627313268321970229694423208360844334531648505724193947542276689717246452000173002876735251913981810838109570928020048894218458240538865878274275965909558236194512963711744730608154136180828940384833793414431891427323111149795443936447487867533230818449238419172900330227640729865004461809137891129228458443949181625723110220476211704624530209631575701105430268543590782210536056422437082927016299459053799507932724734373811370076044975498598374051724133792729298647957249495580586735005134066997710176111736000266694893971107063421074225145701142259115534009996609094756458691600464301469073558565985159465345870315947416976204871506160777688721748341738926766712243772730891136299421952118218180324474358638605283057968017706514354578938211133208652907568469594660277805751820730692018624514572091566355297928785196126711217313346036504247948771891328820953073823758904906307493844567914879454830390441204656662280807806986532410620227404665186358058145566491387655179309682734487564751682111025193391397696846728439858646117766957172604225688078006431568824195656538505037901047624410488815477761089523289933921067683089253562689915086176715997482433241164363147887622332111013385264159903430284612801074997597740735838048224173446267198867313621785520396373925031846511437591362037427463904860515121402875221897953552168857320666112348728960818144934732923316968943377005909434614234409324474549438865872429795452010087925589991797302761332559499972332273399803214410655291202941350746439725558083793971361941482885821145225855593276526609300768767058297348711376066799101897802279350905115087046065377144162331251019004337914075927803209319438590201863118742118329887100312230320529392752921230261524315174289373125409906478337000733160354877366468675162935213253795380275297869703928544797815801413417791190976839256880819660667576470675345592327935734110157506475411692571744031492225473825843409266123223704582444630139878375081249795490451207249900929880181717904290202282473342647051599992837205435088358671746465180394065648750820228500966380796277453669284340718486800061238563315898093904024556917054654135814780714106881112418962335303654131095586119977787510058105401798792998316034968056170216662135162187826101880540170748283329387049117154592691551053185823091405269849652879992813259931404605423518174587371041411133816122185030009700296123738621956409247345199477263959605876503662792912440618079483222428310124750329700507648814159827311134241655962751629115479850681850353053212007996173612149410844034725116388797652398215158008173720698422937926505143614890317486374034527929908028823101175126253889412721181183266642284921189370777013013469190728434681445106934557705380862060059678374961871768774507007082980107989139203277112673225247977568450829822054500698364684111506286455819211085889288658870063380839401714557385332849195655203033140985237026189203096784646288293842235461270071253146080156640471589040505635374543680610667996181526277835515229514886312757950357764828118486936498734948284431770821360440717306158907593050292848106036972973368443124013419166670643895925946803305454323373884802305124720160568906798768333605153852295022371765902679716867729676139279014243479475691866150376167037280211391123450682274398474559964200303386100260818050918378429257610110683835123769919251259857820616734486863356266847863638189342019028607338114735658699768794435529045256619313521450071450470516051097999548934259613562788253620234061732977817987026613162243331334590554103146570592084660278531224530189351433190695391929481155277301487265050989291019499329234209571522112949964847526590735702452834306752292758706688038776332303449707698735168107125883432466345092080797106293407143972665859744906056455778273769908819986868992924731486731356416115512204795532188831946022981675070559313286201064414786676064466988897743192995410753086045584999281920717047670467818258452804246762922579212392185020822382904076117047524108583748443656007194365483371050536398045801245111583344601432612111201816488198919028712071555983420928743858635102247866270053021015900139303685946832906975069494732798487195518310162351627232753559156517471068909212288999878750386278376959848379823676521016982545319004544738794999481728162124951206438089239828785085816722304080581480956435892320217159437775072369878074082516129084444761099128936211007362648687819653846735395253734264540801854139789774648215658731524960647650622308527048508148171115274840371955312555190889150682716005237662310918038586350911783835393436236481562176058188641900228022692376075564295476040090050609954659552018326238741018077473170421142923869364723921997893660165324754483725232665558164146684757097602502798779894528710165168217541361678294025543414293869370309676880937984733331933038906299232996486107579966886646296770628308477392012682508838298079880475084868846639505253149687807749539812151855419757410147473985523928630830609327424615695408675076722566928844371129830326474641079794302600500596927561622786908097956760743000290964243029213978385875270852226514473130473636389546639416595423846586683610701584341690032314645001598407625256603189069412656531163822972971128061496552027928160744751342764403077509081640742920741121186439047847883088531929673756092721552563459564560762668120279148426008783787348684144380139194444253360002813318446961906384886355651625691946168604172560738824595833068734879269151164660610080454330247357074839770126215867788766861529518863340861565241196244738610679328454022681210992995996334065299575482976211808550947441731655150416395753594839024215858264885176859352361957990679542338053489936473130464495719592367849391024107014353574588352735393695833310481882809545666129440224508853128585340509044426852971887565951042984188015528006409995538146178426844583567951161350360321294840602036258363334857691620058905716812688364310560042137266275957614188398105850682717263383993962579142000108205557004951410086896502130704283885684883047077493140432035910881345032812156285565862849904786792601114849624078042912551594775493743960150115887972690965351596069142954155649178646061021205453160755437019218231863782324926953840412749911908639189773210977108152143718694976161307427373009371951211664539395699122978184108821117499091065123752014514640740070447998660659444747980344061791061254438618595853250555869735344074996317773424022453034049677528252925150657150277690100571153498333099454452665882605408659626815373788895834192863269361529356407598989729067207406624452954634455397487024099739445021669818710265435652775611823049211180169104955741795975825572068199295601546840060369162550626774926668350296745159617992045194989968854003079099150368605507728148328246886406731939900013453705927074459327457456822324877768599143587470602077569373210369325731898679860322845786240844825411378523529675121507653390174032909283941478622387951918966205013733048276745380135209286622617494888721445241349341834519766097345308391713010711265159061032387657247550448244534161391500866918180872947652879870946575805336434550556383875952867628616661762163060795742114170275946712939541895352297809196184013625295087064753260147364470603153658929654795275289608226503004299572845311685510401591545438183986424820892825963151985699580485204533806354618352209166061299208255340431042105257949976827043588726581261990525691072027659538329472040714250687630232102004904974975402946755110428344764084237124742363901407947926964628759419272745569649787915124496426423345768265593444619832832153851561298940474547009573640008023521728192250875311956144612704342802454565562963087377041763652107892389750160478442735457495441126113083249242763997989740527143969202565348185850951612224398835484288951732068081023183973335496921720722676689197068671967123271490101145628244844557566259689003350474423686302826155449304497267618302317564629939755811211633703047470792620969200905535972525998868873898818862650897958861548057373478668538744046668130070970454697168444352903607781448263925432379167159848087903686435863687353784563709862616404887539273376849599865661929898209867098448810207640529974379731460709020059107064531751210666555670832008092492625946619094795939076548653558035093875088391205769817993669033344430759600311310642338073508355875711196411279437215507832422855806522964779794491845456838001435872710937849406719963597528225758846057187687179206225646379597317663744110554111076518361561243641078827071534851754469021506135957779950195174401480329650794637717941401554121946715066414494458044978194403420099908353136066678229957812066190357604840447503857050901972909431278313489025971913724327284426265615431846469907687854366954863772805408379816862010040625220396823456944569818925121615064276506932611213182949415984653008139898875193889488629303426773541257023358590263696751566138489895862016240703448490624499446620866102557559920402007192091324790189131938743295374832362269374715343564148835332820453595380471143852307421824928807179916510361758522514333790684118854316713278868264062408449770065641119447345804019750376207673546025059082291555837740470493566410314934007123784815842802619578271595459542647095663605858963898192349998335189504131425154980034350892110275155530625961867867301669754935548365792996444791832046884733284269919917623614588388243537976156184629499955925018516223591828755173338210417230817772667640771070038445800587257383975699812615467631651893400407240739502040648402852724780980274726410496238089064863846082867982551449007985270795690573345554837554177504505920684199913045448572452630610898552987409429425423449900930266487070173488018976511330419386295018697232772431033476600270441789401088136731278611996742337134946384237642861747177879729244119862597115084681175974902730520895351318832327088113779358589458801955978396373283326080125967431931345061988568077401920354792513690350105422342766822614999265432988992138563122587672196785274113396922811597662959492621762358581271764291703488537565004655911319045305602803285249754002648978246183390880447791311073786628218355391532984196181994046281587108690155373329607901997291682351869581805179687443746891571546702277345924174848450285173749163404247734211798847088016601338024251704512156153046518040905938465332664137221644221581265600692041070030670349326494793560411211776784032144459490055936666282835073614836769041477711658482181232476837114571936661607790032825613669480906300062613087814046538449750021278513738709993789518968289272011410355985702946007731051082389362079877047741741756428327124696508622140841199230887605698085304320504854959166434236618624253483762467264012465453435972801397826416909518294522520350006418902992996938142485826155064551222749293094474752355063731415330823902752166248854640430126417069932071190374594704050269062838648380810546274882135196421704491517463052357033860965913636442465246654058791454651957873110888084953462783599992160572629974328213350390915636867680659920443993777782305210473358638440572724436672700812768838962565393070381422407591339212701254574840601550559138082626214385145132933074433015768148738515455828979237436700163981795189774835996515260427591739104716432542526943303868253543135977162666877008625950019612985875512726672633684667839546070822775264436280753059614957470034840534843696065353185308601192273419161613702228462183380975421193808837254385144856258733722984728659406130696877298514415147697028864547951276833629576418725196467684852197106833973329047927809239377730824190856877439883272759122137630800888794516913673441086545281946830968295349923216748278440515811294087548479305904081420528170936198903313162358622959825694397355729776583449543621302131300671497709791954964387210911225214600183257885719048946206135111397326592989665329303973679709507356979276960492018271847986024067416519252225847438807037002869010939913410507457235200385533754478559790891874885876703317413565751226392635026515157732859832875229797592171313832051396579532350813066812574408755986192216380961408910794827073422512648478655296223639550674930227823148023735960088399556381360499535014614198122800862868726213245125392235513457475114248659071095807786968863592233605285529697647927587273652629179857052316263015499155791679428520313398624180107844496931085739594433870172790031882675451206696084389657894787491739071441759775485354456574868485794853548112551285537093471519384461129214866720876470200500101777778326120466735683364314589175782819088359051097484938892723164612769139908573995947308472204120250945421139325926759694778457169507347573069217686356341471515133842490946515856024214867885909310465011663821593844667919811401466309365084536887085869569619014818207587368876001599365236113807969188779321906819232967182896047372226537783738044272356943473911187542665691562932975614532686677175772607952664741861069915853259259104537853781434648040597394683238223206870317975776735952290253186881256166348324265788779758594226241212623009222166529533015129621242480590261916740274767827464537799976036481975654403611249991734810911276130752821346328413883286007776662900646931085268470154764593947720950399542727975068179930435375346030412061332801359943150536400903974124473468016954020375888317451547608770124167998280915593414741345461954538433273841615098812339511492128468764635758269471961462744828026577939960553297864959243304375879931572018037233492401954113021284924632122069413731035236465728764582862963144754378021532574278799160731586086094780536215802075303618163800876611773104720938915015189628789189339285265071141109431290359905740375438050824916556848646953309570169472105398269114363483597965087665689172861268253278718760669908673848666564323051293865290347376266448955213162820963626921834777449459588847123408283292546809867671116985002099100581860906235565601873174913707686446178480000069306920918497477389783916323567358745852261671812511336728162519276441128806396339029211995622632248076576905193000942531408290911265173383382333209152999238919585219322460231468760387033053247771503557120451193787516141701760744403401175291631392710587723214280342615175078963690357119387119433526732645398872767724118157829019975251735088812665556921145398466549743336766950508937869282332693251014991323451503803860732568312257967413709422948728774593997185217775019443873810303385838345565998137399024604998555154864720123467271782956808764255363116289392108112865820132729114021903542405651801759145222511440763583083853120361265529250316635072230017649597753327168913843514451285581273696334569931398728536736513965916087326273299583620966669431571601377385537291230127132684693246798696303951030877134366729337058296828287788410157785689504766138297637931007837915414430746867209044439113100539772244710246078217674888151084324006401440449326259839671815092219255135336411194777778670423556377762763325422152222205206354123494067877535026311546726853603706451583534556816411579327911495505766589637931157902437926314311117348751020942896795745430586479442019754204640145014715195656422795187068009801258334333539911249061414747696394274591774434003402042759872690078305540281998965725153948356498223284651355281462951674246918274855832494964180512712727931617441336441164646576486233013402919798792536279576683944922049401516135384739724187819705898114439518145371121870135806170750222691841607291327722635435063368033695249728944803167385270234819240289055865745930409800380509559609778551348245044066067464416859116835509967677201528035828689144320553557131612801851457255789577040054811840143974556772846717194807801927501745326130827169687625684848502268332253361775145485518806183091208831064062633783213379854791014544802095260588223077400792691756277824579442975618670658761773864522089513315249145917323105253237555684797318157125574619496857418679222007518470394478711156883608145660964652945430153647558651975953177802701973924696187397613496643281090341258659164368860782620225533851497786965006839728970580947059985580173054374985659616820679726425551316645321436278082841931356163193760537648979812495829718628121386448788835744402357529148979729417813703024782813113124396571822968343139008584953511116679296143645239756711375291761329579224149168143913850750369225472199747092670177150507951571755669150578802136471278461654158147036903315981259245305859058068966422436288591084769315131038072337615990619832773568221513402448743430755295135417955841242291839492673354252913676018237242377488919750765268773688584709812833039713934945998966898660347181527926121989877053386852088313027590740860806365489632740652040332050820957137957597996010198096424398653502406224126569533891344694144442008580249309476123963807511891479092783037098755620716210756471538184379309776016350092409518881273562524999148000914415101156005103296537720682033292279579538394949659818775653442094796341281846786234539049682753026616585410310892265871661637644765786447410357938395069655168203355612659706337958183883840282649175648851831241708311757708094685493525039459467316758480852673155343453221457463316803667297118857734851234126730333304033498410665182639737483788145933548770755621753706059576642599837229528555323191989017440296688150144148231450206941594014767921558108872216934979996677422766263523918966441156207529512711181198461642277370125797619921295238095421551001125261655908468644609917181619453937505085800666298023200812803609676017978177497630055826455476369451054332270480348295804182744399509482325486861016060098006503397816197732400129585301470578957293447921177220192380754162432578919381794629552450746818972612335914052068180878523273275403402799111405416644702210603610012668974084037017323807038219433882021033704277828686124113095698791191816849988057192253230813413913585417036558087541095230803788155244595627587224996023669690538389173484863003837725800737573640566625050548086759891032021337985503917694279984635213559378301611681872130995194692008529474708570203851984601602142279033514646973451545033337984334651020793661279142133377141174002115948727964805294846182517114015641930238679767943309508295126521887595614661470594994301609480488023864959922367897677787304804423709824806703384654429457280596738041379685173897987150171670015344964338169463483527235052637221076665574888065142606905431625109182538906728728631476580561799669867686388040202681194029348092700429140515348131482048078841527481995358235936706844320884214337314216722199271021379902618903025987540957671830103471734320724516222614174969048256419431775518772048571145676516532924528419855303657617462103655783669458390933108515786250717028631453214646207569573095319459437947852128662517934340846672302837763299745352039273318975417498312107785766023531986788975616883641570511848561407938908787084449058987408401079055107728486489993483193299117535890675114830442408745725102403657435754663538469701954142714806624907094861584632155363319945385452471852210531796182723858842449824105053591156715061756088380970204128904439283946561863622318718738042860654938810189652867301912242122774294760053602123086972937161235393137813021904059015563238681565674877778083992417243270983494362582814631246037221070940883782447785992696580655227278253721837974097136494835614890740593029654038949302049465376530734979606925613908795154472444295149031782957009932356486863579995415316086700343663142313776131452262794667817313494358077653759757553944122329886339755483445713000982129925461162601015846441647055374271104494046556118433059948956180242330087445763395283935160759886176023246066121006748121006803896540747454372076719877880041859398358697601835704723162485904054631497641721941526925266511798981071911295594126941004213407825835186813222021695802836906482653035955860237194554977563951778206072101358019183416530440459040182667939844877734024943562098210133311297756488073151079148419263099455798693489498471542349322807444680335075209660988549929536717136214764112227546175768989770731975129262472258045086638396937499381105051324934123591368010479576408408070282346591081116059722612733025681146033291817409302257206971748827386837774621575984860516109503778535276678628921462241011648276993971860005223065819409798733643691977132492086831158098007741088058370570429365950698117182357960115898159353361055745846397159589595723795771304350982821653833602049404325748698670417929664431228153405808964361059233645061610909288638798288323635393623600912414112453950741363217597485128195805709543098734596272701688910771794907658721110625057407759143501083865086504930352116399567610804955995244433545607996504656654314121110633722382630858434015705028023697026828211883014955656670770698805406728043846493199784247958734306775778724817861170016952932186085861339727052083788612494339249982062656642747588319399760806179925592101041099523964656419645829692432071149177962588344154910676849832311346753840372881351226603196157680260734778151132533686264685893950548189722528457946628625247147294068952967492130241981855116934634813381262640551730589593197718248522086159507880994077555427688077126790837801628966007196497518836945281874985560725335953950454092309547277518074412854917395814160439221267103562814030790145637162825472844340182745568944500206813314199995482620510854574701676071267621355057737905851664708429807244183271584967253548754267647251663674299033522084012892057856527809054708049670199323753541838478206995888922989366960365836011449142819260050468154351768784143961329353767695153072324525430989780931529513838936087408191583124152675203788447798922643767651824069711114440722513320406045698618121966320316618928778070381929993445972831244834772901689027931173632328069073009656375907158097178611604338233629955010245356253421702202623703933958507025226798607158898008520312169415044734722101335435687495597786310373317644281646748461235187713500046506029111059150430654653971479330504011594983808171988559626420923072090636062230073667742514316478832016164447224085286908096548211955334803267973125466634357240059956684245543629814578734798471427772032721997073329203597272973423479908077934528274250765523975871428045399878187045685430516524034679759593423206025029117815361034934074041812127653753281786507681285136696032812093365178156680095861747355537748808163998028098318804044450874586529138975377223400578413253297327513584880421267506861447940567186025340105960775035298702173354091951140049874245537682850385441514068263903192168730324161411656074951322830295866248824722038528091639874933787251836088262283838069671478247436903596413134789601298010049556256097600884558321099825565319395603878942850237785265380924749032314272527196588166205973442555976171435628263001900222181416503305271656200197838139505432609162853907646186171241945995245058045212372059192429721441582737796228597761519696322308553457732651776702729634937617288026426786876037580672226591483355612292779786484941552730721417258020223867768145079887046078159528743264147332953247454729983501869292193223142191390833269795714114510501435195754615251132553801670162684498200513967614552873964560937168818273834335068863726455873526244146604354395014900462825879402878354582575443412700147489358363173294620553876592827562845386017821348602882761669946822885100133461648616805665817763402186370000257235258413713008243218182724677972851899595240580615953889319743232493527491219243470663338185889330150908322165335633484262701725950718102395082980354749119064769747399841482253327737571070913963128656065111493802016342384439985305394106112121020649042262708034210715397288004416511945553086695711650475167516030569845890657693967813818449497215715626028224578543875545059129504059743461106859733891171752104787382743578354947015528321615791619372071953326109835899530386388822228001742930710341130827044557462474029437670891522231166248125403287610103365173604485079697838539185215498666492608198326574438593078701971024958913699894350426138779532034300416234224496477675491258185350032977978706033035096812857440472613023903914926379469538472184938674722999005924664539985832058287360044434663022271001405746350754459556861341938395849908266759927131194879002709704837433278912502357521105727286153061064549125923956814586454124648641274022436090193015663569700852116211228922020079173178774163686309093392123671346276253116873805407396752335390495441525417332311368561413067621629315360612557228812118575150891644446566562854409895215844158773884555485719502937228327437215678927420308069218700062245887391421268672113837690650838816040115742336414657896519108630728050288256089931372934898067675694735594883925771644971285854006309765776513081226997256276464863399948574396785728033091529890801895845680186510646315077091703483973999960667369378917341954602936538391094696141521084550153099747566536521165007937575608437864867133583072089570475985777353375724577179322344580834380439702452751718553320622082086588697230762542627832121366516297308469034598648813545482615991619813716524599317542355852531538767303533721474276049694848808226488345110250397676130136262513202089952439592079289317263243491894153204700733209196972440733206126081680911157105089832440418268622703152185343723445486955010117533215324672158769107557757396247731782072331339628371437523009585655221708621178102795419455028517954184636726908739221939945715151050299174154432311381602030875679572536253466280312586321372416905163935209407728655128321522336541683272382036170316823988035722017007451061438933196227708198652408162116769150082121943184961109449238676358175709475763050644927061954772703431569328333438595342165250360115672875922170202616515896775231271801668649904327184183741545457455929709742196169467136654367702807103780239249814521367913979553588153380782382237331341906507830349385011080330220967725546725690514608859986290915358231022099753076555681269301607774482136582664761938490449595723382505798273847039382555207995336663713698832953786122613129519083014244243410559979395589969033625944357005726699877210285854071325659634620766109324268130271213050890612652050367714932660306734348143538636667149952041301540300303561581700974914124359112069742123461229910435688087453734814680970495835009180164542262997238435226709793831743190137640879513565678698388595517923570821308897733988004964322811564348142313241860542963176537187467816878765902111048642045983737662999868615939613455622572213534964703874602860017040018703551998400379287163465328635470748062597745382997497486033293169710754907348589156693552408181535333176101148024850343868173290239645030645047166022124535983204653564071030674949560480719468408580607901436426104920733988100131354370433409829810954080856485615048609745189538193205843815615584882519202930556985639740200296537933886904227186737444084638210877196089628392937646347196395332197821450771809930895466541958518917409926707683995037721728055496210032121685028621073108960156730210408921516720191683598409714630215775656477705955629125289647482039597354753812206712738364494117478880087214259940127663047670336626854287173980443214945297261609183549300748781501441995232941768536203326668119752622396952851217922031618123083009541847985478655194508888919441481532794155005784207164886465580424706415157323075623480648709200637245647342494330502393754730953710646831684684273840365956122037407625723568462104309997716513340646185261288354787160745330102167219676990310447640026824729757212205403698761183203301271958962486317742569119891335658934602893712065755241063889028890814275207769875398528435842162606032090941287232448951126806109467016021251202388775030033981856035604994457044794836988118999208161372155750410701285764521786191254500806864920196090857100966519748232739457345711943527078790416231099003488069722405447113851999000126377814910325654645669575872876213903598655064886172964973827191751571188066921739403038655915246034650469042608583168477572937881417222366433868210269480312667674143300893316763227346788727432868613115407985521667252460150191981242750116479754062485233304384821675518744646242355671956784947553486000910903031920269164877722885219917938548213347577931716124455489938184200832761604118296104434055095745072686299964683286351872512791517988028597306652784899909333980001148288153407512427572419650689902984894867270251024855563660007222931855476947816902231373267960567765566220222998177819509157529337070006197287304682121377506474750021365323584949757113412362372773350697156420037420062275722533522466181894572584065894614036672907670147843600943186398399629218400004369599883794797083689350288461848293232949281854309107207309019287816601371227637149430520727847373590919079487879726005541246127922018700274662131170245603661226979146180430506851437120078179051540142306680761506583443013247241686489603639145868406294966748873880976123060685021934937998733171460193959441271403514056267754047230456803289227354562554793152844652296735580596421871576956936936880537486911921631331873232239850246259665210794254566215184558604707916376103093041737498511373290477580930964985757429338325421665256946391679919271121309006056302371812938448247453208984613446213120659252243731055891337392868064170282200634792404034124428118167644671368087393503210789745839622716897174634182869958912994088470882898387455374391137658756259409266827125192177823867422050779195276855295688298417631899284691914197844801121288695360584067551528899138412048482548724952298904991995978032209973074953050312529170558931369574511548933669481954706940595575182180431393531813306743254537381750962869708192738782147373450531219312913302778074470785637148675973823292489482956330634622388953829518024486849960292159042570087499911388114239832844659063420558996519566602983784556580757129877456558755346691684910762274716913429988641858273780039685558180987304600497898186780098165882360250822565515052523858513470872347981394035127111311961025772133032949417458584036978521701413361294591553097536324291814241361452255024746394807450136160476967630025842529921429543852079232264529957575066415654340343792690587364426469106185837940897577456295096005192563904674281467601467617949149308851296070930615321413394293456724713658692165303946248361333086080694826239088342723038144254961665370074803855828968305488322347868016982936159770216840894003723109562596777316874934963586967666926010875012016811596379710379925323135784536558608288826903369666567329139118713222402464961436429008887134380687048325662523938776804968233695104336022591128478941899506915271452296650495876862101708903916774235693057935041015508161348078096707961455217655925826733982960666669287783796157872858805290906574201141891456988452509008735178966052660719338695192983015514007144558732919329882594940599696091784362653321425847638916686150095151507811683166199850535418830595589837519370579305390227482689386987749750378291960097759943442484166827976002347646834801914264378685906061550189435702047027184654012786269777991867509051500350512625285590790207239580547635943550140902647233211591548716065974508081117521359313792078995228225630061201147027205025135144319316496713201941403095268739303165552237630015302080242268003858862551176752364882485942431052335162376253617577967283698027454879376536101386296889653339065764084065836961487097339854573917492251572207478469408312553472689828600992194050659926679355457351868633205299870998438353539958104008241579666400467890618286018215373323179134247867953371348104754940624330450681096281397350367315938843048734502399118054068209676426182053696288899574431588998482431299875547510207708437741059406308886502210832043876985190892076500111898505725144156611870590971565669929876487905143827520613644781243175904702973255887008984324077348471438262485229276395821851412504427155474687440346927232590594996379358987460627583974092540485272314429069459284158378478354264890051836180308284501858583584168636431560214213699604699755905611408448397584711155493130317284313504838789736780252373113253471883867238581875382696220491018245620537678993648192756871584691735610255651640183578435187577008182496426991831930038036780697749776077737597165923403014092297704023845812699809937642760455337143778729830271083528674990922276299450889197948295339117731397350905524131703083198202033503073581744739740310601408123696368093775979729852648282526267890484809893973626178251606897633185324847063798920041696275557935804746247023364640125042736277597999925278333048951409506805822018802649934105065524587802703300476266347517015836735898276706158705058893912964470739296890327197217042139101066264575561991384902034349139102427805948482524491801708930505563810476592994872552266085101553742133358328879883653486220843573624824311329353435823009859512527380779543525159304048520031246524205874914329707803356281554964840562368405761238870047148585858077863009988116386930567617323841227886519444201410285964815082957798651580977725338373583971420814240791969319965751022165835413276131111597820812001108089406557838650270814857080899521355999493005319986322659722830423922986245911177892473546451742291760658036650618681714522122796609702846068905314000595007765979823683641338888029032383654048234839971136202368053621648564219982354981228690526519342769792116448903700509472653920813100689749519230213755405562678102777508539506426741480223051122340863333899887944703565118803220910909815490397350564582028092667257062480543475292239459379362020511741655661618990942275577917581996144074333744467459369125063375786446224835933259519326238584721169965643665014834703200994522077779637572276497639429960157320551946534117127572917664884966901530827916858858121051529503270676169813526775788562047501260201720198456810729561594640311983654493775824667364563490062142791402391441577745436269688978039100302284394238237853491054299248299938545203892297671696420598333707728203081279162488643317638055711840719852513355153485796709278109721115068869468583097316122229815358694268420216172002261748203061785511168666224737189607693219293536856145561200199244986807955176381671975966772167938008186219421276647262941624034439288137863695032055609167474504157555097630911062523091001028223240067244678977680885981207118868820920288552563621890489368935738917196357158125371734880569461127355405020077996986076188513871347000326599325900140284918560473433229969761941184678767198359998666482656119044580199196487207244115822785244696737178633343132457075475357523095270469449555224278357856929477206881224125669842717454683716060927446831600268839255312089306246728039001760719605983162478957803217441119743400710174799767026513158456728194250089992383852909994700747871627160121139609684692416919450665183096586668240650935154317921226137571344046728768769460273004324528632146300873736453843820825988722618704854496078561002954898576580789260967810225994175821075308964998993794412314297200294042383987263041086043781254659781444878407353311557374691396718636442735710769011679642245421181119408620304688157910967700867611717887014211844215359521065385179287081992114554698495015876259918152087953175151506713123215468754861013837873173187724653528206598664342081993555056825285620650892442411553448831475113948653671782767697316518489236970693432227555782853298788686172457283586287679573841061523531106679867993052093867576369295353921095926212096063755359290544670333686001355409202458882717941891119284438785959172915436034172077656178087496624852584831874904042107823153963021630403186665313609349206236940431511976851618791273974103292679592842846335152256075626231279135296759357535008074101862805761559649878546446439246208459519924658730127525922636899223356822598837328828146420775768645523588824687810979239693556726247993392289449737146908616362105877682262390545092056896923767533529550299490030178891510530347968480223625510337975549443246250517064738811171988204019820036071872331192846794569730805315506435166083406997377288195616497810886891668030536554169523452241924248395779568295529966765379329764750473188338771377268339884614461915532716685029645907695423898400805640882446575236201127662276897715061751432088451744814249161542595963766228678901691940878519278278117717955753285283651414513980865095571899227082856397772352368720101221050951377200198070195372919985458264853347321619426389412214228920278970778060959778873661355179010462818897377411105654417609715274562727975895267429514027223362104334109728147580157334382044570299527781917161048935922665282107194573523916425251629552216237739935932644323147196766804057989305864998261318763004297182938165433953748218148092171198141689153561671461980522778261110136346629079304963587115760492013082676627596744867871149438968071169211067829837808069561559074697551430634031877338849442912072104193568720808328300465503183337539354918240265046579636278295672676317996781915226609975065982994953808035779633218623874309810953577404113327808274359464720264280868047705106442765579996324426700555095428904405461467654855291016777146226639578082450783236239271897140894383708062406160580038023373597155758890838477586692319725499417028152115518916039962880751535587803540273787399423876732149239360919636345902590920717621879135685332114974034314564859406318898542158420621440759585623309319649360272244731416576391974891512665387959916148108927967722899668554024154272498456585525261970783854822988193186630423270621796617529023180267638747890234892799312216990984632655964083384705288824056724893307058591135868002228009790731295659474095840766865245258619057011509825531502550053155170622290437709184253615823433653620556514142594393158774382713896509378693671132064233896362465715325191844965223244700358266689617983398953720634493206101169510788715776140826413998004644826424672419058701871766647973679499685499500186772739679481142525009564383029462877237163598924026689798834301376616031889238404984755676688665908797043846684230967369592279565868595265492334227475875794664460417128230258270272083231025578200870331644824540879877710798322973682386738941832304350593015218858374134297059299234999555789318269373764535675324093953541845985861318775652984641409337451807457458135113690580839792421952964038839023308439193206826563956656783148847966530039675599128957575056712809963659277539545168882614497545666892694442510451183980960794281422391679539621247789955248084309668558527888815739698464017152417842687316628953049009334206700117920649442036736674069739241265530773491931639378997814353531597604440805409641917316441021172478656233996387911329279809342512739168949033619680610745673951076761009115489080650254473440350262825766366307713728946241369574310534826181716288803250258189426556082330499325440809081925259835813030080198362795276569153560985269171790403449129068871486155161038931956467286888295784461428513408562846093594399962779402858887174016271144493976023616809522733994196814047094840970195037357148709163826852053010558528647819269258450116298087200009421398644389000841297040402168059177393736682319038811948686489506729866102267038893253407488163138616724470023206410116095456303493560032895995460122470951485305140182182349367452205907519134844991600722552430780399626715731869318149961546234335190705582462746741612171860917324430076195513123070914564026903823130784481907041089736220212177809820673453409298395712238575192160043564980081221739095224510629600988776562696329240028693932553675427908831715549076607157584270660298847013140560627587117626099280217384161598672359283299527281124256477171020979044922352976181077530228480289969776386467136129514707226095769754382503909987864764013639394832481321420681661111575705377963668088827121513713360244873753206240028353415337621694285164400733337551832566946628305847719297924747238611705794230972305551955236632826283095838989259242289459793809828862637426295057948120946642388139850643486790187358876481095913973114310245099870478371676390538527321689784279969109756718173065536819157090752508858302761293584889477544172397885473498741949872706027270319993383099728019025949213972186602229192445024741322452188357702252092293756631784411313075103386978759012594015251021469708710254705287587295688836016370626193396934603312426302581003889724034409963289538003232266314978934811804866296701439963651189894762843595283741972679435056934116183613905302463754503789574096856062152146004555346558760263014409366832195380600416227644335242463231285400553774133413997956381429961967965762997248843775871745523148125853535242028151488733575684886560556678231981644318556434266050628646238212785231111771194110202993385703457817747485041004838863469984470482915279759960255196849840912064996895072760082856733945559726562972859105817372416545266867290253434042612368405218295927667873094469695908018368361093980095982160428794886435529698680433392941284905932367484113325641296925061985541306198476912240052599352315583514488235995951161316021915155589256316635931322580323943560468439863792305767961338111343161261249625952753848238433858973059658020502198413508618643933498917817341043394614941413745903381488014575223174788411131424528013785860160545757150469926093648012140810925860905782076898747363970408796558127467670158186688730420106230113242007085753995075506995283912922269389673031612489021274043891914254323943617094513799540864646306521742646268951020712924890413382754098834161410816788885578026635289095636854738827890129692177448150785067398886644788711870251206445088231126621622977377930823702900159389143579812274326140073426214631533081550500974976739432373603929231071382339843175533589206844677551587416261123156553562087077798497565198523276955027832755506119850196643953393399851605998768964196553954554689015670257454327650745178901179995889333924487371882825864400419500780397629790417739869057858614179756303779020356746313272614946317672391726117894670176994318544929516073071540812318880320228052688031745437168390402553201324669799900510486168915195477375845993615993893957073953132964741708003827462957449025522375375767757232722237588497863649377546975445428755171036394716264077471220244058305180247426282727425737112269258777855738749110429153859253064299693449811887122861432495719821305232368517318654192802033554156797367825163073690543790904569937442891876894269926392327217497118941726897674667049903399131793025401474667285968508793032441272528434575717636017868266115770683971942468869954296218690727841523962993614966933993369562394220544583973574719373038558106241900648281986182874460898096593717633371673315731491497127686164060285637047985343906845430462228356847059507220276998040231469938565185200281382997919939435516791068950635796884666467634338468049457546382763276549277594282253444848691831668406372401914479483319569857843916187633846991821879816959768688992750375042558717659128950837371916423928755729587466328381038312742463969433507543163305723089938353669699214551233412780686818113864724214161113127922036777985858089399462042928793154594958000306809412213944199578217459180658982351267866829077011166969326878351022692413752515578102021664563603705847251251312916829758831733574869259095677156045810826938468061531133680281826373176885287162691809729684698923379083001714630277629449705790756688734656345413715262970589929780744411397280771244438034128653519553689841087428775725447043137748885579758834579018560402088949428873438780006186951769866141967077416483036474354486361757813298688013488730767077187626529727806525100698704637803895195473017719289425734258572017106079158430243770472470345461125472533401413106747785093112623917403507752028966376253168835635674835127536018419357133868418334103434651415399675580457813444845662573767853058379361787329507336990957117027713126293421550943910454875522214280176699299259761573924730844445753086533694376035054553429343067479199630411866574700721711765061784685083819437583502602461142559358820230341011678576635321770551742991303912477961991606156790772998267774634249118538441589791439075719460692649622319755126330935320390602365383664131660175090912169805820984851767514168018286336637019716450968577202582376035579759215944879199820025500209332392785764127219921224413931724908604102724872744645665291786000152109509582253392750322993259525618971563237219481144719462735679593779591567718092711330372335334624488513001784780308339632395913830196251045069965566772381562010268546357625505984985652301195222161327230699328374701883688824772226509671418251204376018237536490584381695686870371551127160159229946931764810864358933800779828143217097507681143261690301873913484247859745668409063567431544264191384774924664230085999867072036772306996593149153195739826230702705135283831116633463715302025821039831810311892187592268115271297509551723442121040757922627952602825620036545080057008472240082854268382515097360439271347632549818844483663597891321228024009671641925929630912290764151498955451791931381510585197025316176570860087554472397418821249206992845508110730561409682681344920490970903999650747535850851071500829503340448982627070612246716134623299718451328011236178071847443493695406269779839020806702362379140274657460366637593770564763160569502853938292573694769690842442966439445453395033626150190136876954114771354568266662050936105520454391224344871299619434272361303472616879156466483763135536285257717543686519171042785207385506298876293810414556407207530983546305980261519772095720230188799820680174035603756734972468276904964107152778229938253643632937447384627432297081390207293756914438574397469052699363945757322340112467265530542350492087376754057056738229215625743934399530034361701798936080287821716673344476103012195477615859982376158023486901456688963095854308366579684169795502501986726667800666116882435241146552151502279232072594075894414754253136580861117702697663519644189117409307093776944201748454454459431159988672594162967922100619257112781650467042255137629632957337612061974583633020337508090009142407359873876764365373910925579813030246719022096696677805698468867689071340894125186416471780261587728855279717966964855209386163352792087358873631685421730609217052560973012605741516754797005085655174722057599407184265034114311930044140092858554692294053805686561661775115045720163273515364964801069402055168664655855777462348541680893382884700637019071644344736161087350532741875328039487143633817988936919182974123717380854057681846601326932980460290966369056807781713895249263622422555863660482854730768585473783262985321372692947974464972964358893842875356525592472205755244272514597748128085630294679013316205118935087256146245386584157987514784435715819278685185125282839220312847535086581358550220356897592162800964341968553572553806834522965051978441380007501700795237259197443746815349089764569747247941876671373594537201408829750888873846181671994348997105217273499769838163251809752408578531288972122020704073057564410346914944872263695400722705872630213908011701645853846314109959263349085548737636793773945547182880660183040053620678394932405142723442922872428393282320311931703117209321914765746150409152163037595138358683130301888223329665298847318103680350142726654827790818466421121712784096285812201558566787776941757733685008786498864310653417989613015387387904317883806516887740999612787969481357877678350918649040788842403719545325436748607018150551115837955546580805091039489750830090091255523115264290767843519639816857236096399627733061003649889307670135868166185130102462188353683738076427855740171508747299187767868308495686864223268515194091485411043049733025487907588837642878087868351363238335843464186877403670263828053639373427142573734015977401398227938310432097158684937835866960351801387966852777997867723665234545009221351581669399373373991934408556614394885551443102507149264048250270819835731607178301941676546001400125301545623274131769397936362550288608803900652429210063886095758495430695829911959497424348892203180873167903530987471858156540245652678042830113666707859892664659355637846930269712656974088106709296557327292658579264137515947438618905526072127535796053619536335102813259521754359811793338549587579408357174789503585599569149528056552153831655600114888589338757966697722730915454576242049437249277979787182218771726918408874150672421890531074344982732208736388837074427073154355740484201822359309554969148386641333220946059215463819510357506317400791096825102872228103397396713292264484114760345109669397501140676191275967279240316655994580989911811209759737234826210880848966957541650680750866920580665421341697452668870685094144276871480881151897253647822595853290769505894857090308642037649788367843453945656895372474667521030687034283427102992762706155534075813277345429040651479123180446493775845222341299497372847334175527696363863786003938536494253806725565743720583732064654547992441751200689220084711875765093519548568505716884894130416538359209957502536377748667773551176023895787022738749895335535701748793444153435604361897272940176963773631656591435367328798094782646661228298884460228483226861211963879813315202221550687057243034647914478364523972378087814508536497901808392154055347456656134094784232583228694663361303451139385968906974412311140258599854146418230300937220853471229716427506685369658884526800036153316704913653110086756076988581567210783129803481938239480164671100720241691600139970988094509929753518107983361108597245037072726128689859337120262540093320520380889035884404454099499701561041969989577360250205007553784968825683217706800747919352789699499300487177369851341841900510108136794748606098463214780262792361304563496767251984324246733439109692363652015088417643138707640526272039364843443347694928452080808103554493400009458160703021389290719790531296882546052679496239347122957107064603889694143881137941259821278221522701967618037620894723873202488986210650680553533864311725232193600637005483763086483349120119479189257116253528493976603840002750511531428533066017299694887277700835336565233682297259351772856067295008841148221899313377545234749685387291552854157831367867687633714973359908204436500329179848224042960375486756173976391154405098522887074303190236960313104457537867606670604361452994435260839205323556209867807026570784887644621176047509968567123545871523804583795767725254100737435271485085765059932755188779066032823073162877994200057293633212885742945998720315731782534627748264555236485657731361187664744457226392073192429471793908742659764181336253179955851162578032922716683316403892908945490727512033129745236644483225536426319002392100075693895002231284342926165244679511576641202935199200495859140553935210592943768421727244985449029045659105661523750061691516707179293466431069072929650127495433124895701217391080780564411745067078284911201878894280590854166024411884872159346315353405981256200502247965166235466219224022211795500736444754381391626980348962524641254442479502509038364575603612070336117048079881223825257494670026684029604089802350752628871074825179203026197813296685996696339299967686204904435513988863409517357684311120516955683438764479000821232220214794738098926150633152645827880998531340815736010347796129584830124896634083576944312948967683683954638394514454629519297449314027755774790662985570080362043659529561444181277847657165917978980053390629595853758677930677999174855948177989195136489851069760266155300625672390488530540845766559339192906687150242665280667780082483646311687782439724481745768416194306447421718883227697005693322876865823630992892619754166109603744812761122820622237308153274710502557624347251848036285830514852922225605744697152193440908892762732015478966227322409344606046620326720947568409182234029008276107849812233397986496053292953955359728573393118771421482160212190818105264495866812128285379841357978583214838995180231412489970326164536031371355547784160047273900358149446477622731949881960876815045000256022439982590183963330405866826381144800648985701887989986365996117067969389362790461695785761696541383561959329432798314868982093743954002252722063306340636813786619787799486506769590897155704998571317752772773035300004012210180937662850912888268699272443035395004276779832732913594648276369300247447373954623947770131327399600320521455114080758556962772602757273202069237002304456179236811368783286553121976850887595437178542313480326178846362725107780550800307570327010905510822658334070900570594280116052791379478745345987027169515661959914100249062846937760569049681419455020699183795619342921868625813152751428255975486663653707907180530584148394649898321369736474382263156356352842294226223750708411202575097737711559342876926491044061389599304002921233999325081238638127336032685046227494459691914027676342772654152033037076405551003452205182123067142844645032997376725084710638482502691373531068276456476091942528242978507569842921943376125127665181677578639719235913877482191519719762261508864173212625557767595974001256238209939550801191376584139844427850834080041339678745517608890066020505519088666779296265886972082567699538373648943084090850749147044949402386843134084321025056825459670841633250504226640273815647296106430730867177763810618041914314898052029006033160537112081543428246979150995577065812278510612711343566757664790372285073825354579839125598998487437726321707266699907297597144335345353574353362721811987120688174356935552946199937758224545508485829601164484425111547997971775116879637841437331433182219358944218503589757151448154682465840250524771382065858634182284149518532362164514955749773600462902689416200965363160442640290447712634993174638727285402924578750360109916348448811721565016733852853336959514305222920644212800341929547539444746208404128943940324036351230737656773068455230815185465989175179978662504825944469854908816479885139061549432384146014190710996126648735012014170967146521185677104166285451891305223252699052998937342632524857173747057331751905332119714377485542955354454823439799829972111622958513032473099074394849854272001811980788401298131464943217147114861437798046011778959858043350881547000084885571333844092305571652680546006031489097981207142690528887899853019174378091388912834790610699943527222592831049912183815955784216091725478592504221068030862643576742833908033720901362826606289934796748101644113832948857677945334214508206344277591445480938521541569277834587648302097806638505500140603982062164194326167123333667141327252660520796555913983970695623642254912241031039672316539279215162227030557875523412935127974647506623709125718050438822414819375527863540377940622020402416265920960591017812602847349812473508085416422277516807541823171757477196171027305551892729989660505724967242347244077825652672526585483638463546497543630862979787805810455032559014270346774363478416225438422493937202742434977166150748840071094567602597724380698955127840652090407446529506462152732411444021988498787194191366976977159831132819135178317159831103464649923311006615831028860592401196508296393131124772953349861642811814211652415799045945106276159717167997651459943129657837844292011000626067820702571446662357204270446393280994926433017279182118428350684250353668963578149330726304267409352367401298171542499883805877200900875286995114387693988939158219452986817546465594400147966539057591859934615692027318291073824583304733200808120696078351706859560618456798196697012546417319743479847119044566594677314546573000452552596733878598247760383111913645344888308389220225929475097165108980975467713054505433469109605418979360854086102769919759994926875534760048940643533382528797060177253402142343810477451918830851563292461452745587431312644836126116987082660858049579576254919943598126440585795868107173522914076680734239990341098682971238855029826274042156232863501475552431421346249102586634395011237223239583772876400332589262235417464913122446793940558403979440255538235493268300915364432250543023871271419918034698578627461092050914908726855985535839743698036262655794166488519615668023250300806851050405444781305235177956520851573157367450905381656316983672977779308206969589353882053605952679054091440765352852030931064522755937972663592542188940905905552126371069800819475249603560969151372129339146399927401653522092276151041189923982166520801107793428864963532052938184989608264558695911400347902682566914354439445643745245769798072487184228917631347183442781882350343074273959937492531127940349145305802234933305277938508722766881801430760564880254832029618998389596152859811929093106003605886622781272415960544008238188929389521110853572224211736191385891634742760664563790407924136219854400376227590140155364488826027008716271827354996397680734807968905060113517589644721350728646734643344159658448576479745783265520357305454146155768685317514996709308559704736113859568947387102038712809447074145236784413252972397900793112832315859418442366121744558102518283557374369326177438884792942533585549818626216202633226466786411051049663879276882525610340966940381004150238598067264690446324945074922266698892832092871358535364442491980381580430589785465254633883651986429605885802193202667266557690802967480336733269907074902124908006615098198437771976029049003875540687001363285850891150967020913852043866984353590712107213107809271420364280324752380616740808026786670321812940005970290515686998161193563036737816162117881485587750148242968177418736321733207492719070129659329471171135783709046457858255077676098564978471391547673618619143415429834061543704451380754091224381530073171044267798858697762717361809334428363105136147830394630422346118483831358399900242401862285030473221638833301118931996625496303229056059004029191110106188465833538658232897089925072982373688863344675716771234289855414595160697098973159977408642255144333442164983545143066300591590314065019551846897857998929966189031801824967464538488049921021941162892398296596600190511132794774431276804845308748336285271557040613150346187311900210263683719446697292658046299004333814618888896932215102845846265447804783632431234469870624872128419793722180526780105373360248449992375983198362439367483932193388914338250454055058254298523255870936293178415263111498381651230689582174820233361183698886805125659309199254670372504651195069224375581014011081396819220850215178256439415283223148789562741879364842352672901760062932836905620320393774358865897461767799497877494130673236076700590301693837262087149803072475084936678318133658575248497358658243653345331323158207648157917738588330516726357989721190233421844064212754808286999751959264745950484622980683713993608782612527923378627305119231271539273983714771400096402461049563510591603019103515251030618721066629234008954177942004537464414915533043232672383814950715794189920543144155532960672484604605561975795232791797984230012200012228469359642687463290235913757832265094087261115510083246444923860922633842253258968746814145868355020858538639711255423202310770026807164994151366877261255217636465143258511877022756054473421061360140554757586838721252663320272597249518770768964358960914929227627374393564148381548237686098762442649282710382965203498765401993828078469424297855612002395740759842580703950201747423618424457953213947440190587597168751221956953501117119590857908613684489661804273271954961484969225543350520283302576111448717973571923409272438379471889871569511104266403372144164912777884426702720911590577362088754247730465170499018605532005062447443097633918351250447913511231219618373116863022451698225193008701536162771855114678852181422383789530303125277473132395364406933328631708294877922345065841001374101433735120131782175933360349546327293278706562987526382416505464419160132124081619972681382747629776736496159876031834115755551143599916740187946525714623584021539717672570717399392387156490687299612726937891205711653885687957800275313450806901209624026795137131665067425627388577766987275260611041826790769765854044336141497288392147719670202584248953662677246913074504029953840539771190546680564423556743378147373093936175540581076316818344315305701700684339872755089001401251975652033006445558981557025331160355036209332498231993504972317034942859602050436929085627126667267799367922474325930654811056774328691713134282152224210766949576165856108273809342001808736502172235986529575148612190668581466967031768013599433590194741282806916712292912964290879160016817819258948943987846216577857230022697393874396751681937951453181725601605724509443253162360778620449048268815258788208117787819414283789821710680347015729115736573953203283005722982368964800140694646468587213197713120136533052533551734278891658770986470822091441020033121816571587256078396796235504481028001524582293816695354717769884450041123200651203198126802136647097486815682508735272170770898209155508715565718050526052981748272245005124499605010404716772959075836130063681662737019719552376544215223639306899254882321704399312500207876109734819227614074068915359940554155668450953549111876414027872035566360399291593948377092274326056649830104229251225596407725986180858635474428869804119506605235727691170166862361126341784383887013606955200632674695998617995602835105723592102267195313943026266342593182945246207910223749811216076558862570908541458757513272911155265484422885424677736711776914893851056495383281542119638464431658659654412403941859739771117362605661686619612617070950657342550677468375149974079768014178235604882268845084224446522065254010246840255678245162653007015798058814669235337585111426964915186569931241631871383880253114381427898137103736380314432261189296674199408756972301408308495064675225640749383325014284415650374779278862493308647521675962758368610847631829293462207089087546868624336700021899144236721788557748395463773068628099405850651784547360416611986142132344786488820541937301414602472473004932378445040504738132595681366325049600097166289466700106021257841593138680907463737673707651752329087981756815122233276424747466317211453551995202737859615453565766241469098416683109482829774236903591880982023256987414656628689383206205055890677630391440149674814883503154343309496252479399362631812834475070005691373219713766844563511385610687531212028954104745410202261295247933524588681724701648627366233792752517091228742186472365740035694856403312099711709324185576203481963719292380963399804516616070792942465169539015321608141249761459167626692808500163555935113267454512185341199417674656640434812359114280193289640592330227459004779597135781520141712166829918337088940516725792109819187478772119876516526408175262581038590836228462335891360574686763213969236785015595728230998874395068598326259077620849994492065708457154652131287534809070163250985168953150752628693003561743945801668504756399659701036333245260131022897480859275595784082594796972652809229559785023285590560289465888358060273044091754975386713110000999249413180182324662514285769133772399179582227123702173649332712206921669349806352353153590164212710103278374270839883107880012068324735853944743018750532799036642060726204368901073609619589451332660422472832707603429174878494257068694832539185374006460936397165331853450164562441999059680657136343715268095221536086868006399278158455256511403671573774609355489108211275049704775077345223800966391896504302882842047888640450868672214191872513401219140949237520063229489541253643135327239780517585345366507245594265767522311587937437402390123372780747662971381853137964191901501613418830942905994705871759223138371728948912453155628569674226672131501218267258196993244166112275575556637357676788309415720423032090230246717213694838646560617054886728262692539221758254311781842294160099181876868368292772472201488823437716196064556096749567708030603359351804598950794455289878718666902437120248998384182727236480148525107635158509195005172887767735670817983325437757644023415422496614615678047053291598316543048920637805582587375490591569873457019264547313471358539459773765282363530325298421060512712513865374451702778717871278851446425194919728326906536363197093886634897755284420036269497008381519039690859112471109251332048131452024443607419705030724896470755901739283259516849443453284635310621277615733582586039432175901022880382623742078833889894173396657067487755623278968534272532732213222238012774973110600392407540382430764738429700091118763389975812155053572836679451793051183792408398701905802119714885902569187926511666748047458210480529690524917347942887327504280528293482217510407302745002450499611037666134982651769439862536096464437775838658898663606204004498574838222170552143726822049189680889981560798242402029044799745215424731415624830463596082118108995282498501229006979886233517512583778754497045689009319928031222000090470081690507216028676666101729030611818894430482858637390133111464492687008285449824875791072449071820921509751797657426056192625812015867587136540713030891896415238198421135767686489412228259627009177598838968035646210403348004076783279066517098009967300557850785285527276020919721934387838506142780104327504952601751057370147338610672064774228483452927169889692479630855588833791702316592037784933730000457173508843133269325423080680006420298574536021737997516330216982705978550477482236735225058613534467198667804905963240091999338983727669886273937049520732718827649117763530175599287579717732406133632769434696141529493680232506128956401227264224636942937941691555549650213612762868686954294823720477302018186458817634968924130866392547546007360356106825954753487895997404144479137639744117495437696896256088808230364996375507013171028437808262724628942462548971613355470613433742383269222578558193900475170956364564859152729782884859380354007339711765486716098681989270441036844433636953799239931993599769886187787360200597708579257344524492878709321322093713350820892858579311905006892603526231529135877991398821069781502022662298636492003527210356251656743277162717761078493764877523428545865717322811400884236016736964596620302583701769421797309288844045090271637456862514665865672464545468121996429117021115493475165535583254175096791775047105540072230218687617635779123690157768792507900042216430403070237897768244830799359985793224372371438862921252062850808235262141086922144025115013040180498393264197687959103305659261883300872946925495965465453943350866083528343640261688468147805827902280887908850403702466471196227142216439007564112839961939919154931475979746778280860998305057731974508406008447284549796439418886806946996748858930411207703888585887498258345831921700632930862416771400517197446022120280536988470633905685800296727305504467813944070003593552447089498592297273085187819461588070856889440433614187030221436400500228731193909930541924108368618739400290805641920180826002638343190278450644224802190593036263141160041977510052121494492705630126227551672975893284681627569116759574041528833431395088818379601472176470466559488813483402285646860619255877508417799734611700813517143913255588393776841896906782503545627250298533231506803591458933880540954547171179934573963766681466232740087123596270253296711679410959772740389483784996493560903746309999204265978176383967460576750113691375156042403284011652967769720960094757514147486679116284369311949072097060090432069518146223694119017888966763916352978152556708819575561089111695115152417432027036597622651827677565413187975177988067250426756217814588695970779086268934483746002549283399224017874071285234248091965977607353312713080372607859032045618479860913254056284501452049798530299204245118829511760048553275371480690084779809406719019409840515343515384963328826048881385477472660119893243496926885247261017262936427892247369768194913957104142194824936723245668204943852007391145323489335684980294425338701188559532510148060251373111212307370681435452273424225612459426273622277958421617566916179917068627259274946638892844368460024690478295283232440556645545737180620920209266032295217772636683488751006380645746152237276269861510564902711725967185605381838140235825590084094828514122528997740059760316222003813666864339964131057100215932276225901780338807410354478175438460293639934670303460969652733536681681483156940325376751063103165179651205212293024658554534415687104336858686632544423743047537402044000321058979713921581513072037625403801004019839905316846761125115888823482611149963202026880194794901567171683856943925762014078758331384984258755171038589594178924166466361988215047913681474189808446309264435931504583928756263708802969798848453103536210747435732273314862578343346892908982672594228977065321615848017500313816194526595054253713080708315737760346134078593201580668103079191334174328643503394388344052523374325885004830995788536512806463874401334200592519244690591357531089184722193964222026849049272657324069039801293685355329015793704195805810045280202810928639317391957610464165507369819742656928445684086314282064475699377718295558385634927577198297451396643616199707958125649725909658515585477989644992256617714429876338892505623809471524333989878996418513304650903146067671855032253171505594945181173522615122769136581857938649308321848357682120337608129012994027364375515920321104657910952184216127901137385266438036605539135198973682332995988778018321877958880009163115267598190922756683543116208979415681208787305583775585072790128601759060334539901518444125361667849401194062364263553088226337561044436334910784785853580615812996350645107769651234008065137543381493503224161245664677031164503564674598760816973018460278916397473076535167814806920287812487469158393438032796675870577114432514038089933746814209339948045668230000326530211790942033117394939591762170972889642988537518099253824255088828605023062768547990634320710980801316364333758339643454196339778834994831248749019274605940115430548395458322676388329721977176975030090582405541628505079064625327121963530327383139431125891733075088113440217736395160666454443807488756302026634831457442127185472029726123580974372390312232243592673646292403539372349146798704711121401096748966159959717565844531003556814967296360368286132157638710048134187258717968921522607016643895528546080035015856448610431760667196467055026784452420811224292159557302808503525654541535567003677476601602991713641894220433077017317326843808358289231841694910062190095196055984794377199956790235739535581965672864599016258192562700030015923581711132983101109957683820493840667345704579512488835700822971477415884407597637824244924901817917302344743498646759517539243610691362565792097840744067274146783094132208154498964771040089899346596059149186399107972298169285182700709024360438871374658494969703595734151649531963340128213311767782379442896745857406424269880280715699731391709153827426056978977035286527292284653720264302689130638245460682780272940298563074450944664148641572369503950675660581494917666336082503082030415168057329896299009979806084013931447905314509167647259052716972439893135872669089891340296942613616781491717809239714125951667966686201401951123080401199213843651329723938251774385374734635316799230722109951514965375113275641253596700848440845008786012905139642476319095884008814666166589882726489078821523101349433189461911079772156875425293584046738543079246495011992914942941557757993073157649045179783466916590391001458399704374370721792317518100529608149587549031210418001060902556700904916690112501325318760637662155447062858289581697576124700642486304564925925509865499925760062490434189373788986575854491390999093418292418350937516557815904330425951349605926318177479225079919470659800359724961261662892654545259557904102174101059106167081256045955786326625213234432826913987430505375621947091559159423788738953780659669586988951314353548148710442783572794074386288171387964070392010555147470274328600400108913958907967214669069262309483298410220742570877397882802464868703021242217676168012694797732332031715154343954374747102922050674183833627023313583979093823075447560602485432911838158190563218439337554079360102806218669545275780764275381073970446839554819359519201773046608205108390354982933043921946216363064801145890662312464939835713057535477189610132671375212264244672840161832384054884558323870810023930995241190823729161120893212188817248463178031278860995737539641286376966539307764919758504414254600980306968323379522776295801210335451598770159896571576413336862061672621507110595816577254597723486765858079137896208281457451962629159561830278320033263360916514756402611882358599522470751979672949332280085384889206165881360403214144936452898946076599999852792000256405138686398985957026433599470913239172483419368686495197991135313412108195173857751509889227058523778218668928719687190909134588479929950517944677923018806802938722466092359338337943744643798819406015100544844403778892424243590920160738689663002061572887541186595268383268706292893225089131726948142790874006615473454056328300734422376805621795671635129057050873522896748740999994580841855284948179075398707851632591423643880950270323096048696409892105668073245850306979601623008709755631292430784013374569673673064108835087473024054142418839185066917036553933273569819128194555747880147640736074625625324711871127094842211087668894936315485358283840750080257281428095066391737225063175048756571999735378144007922478749113893800112824207178705029393616990413433283319415441402657273501267274318065185000955466151784895201679333817323743259904628263109806225358274780372621607522645487777537978336560170134163999690564230307386514504869986607046759910102455754223002437944849271762320259121584583648294421102073687728035403958226533337938857214447657228803538200449239009750225555625802672825846079792511585343400190368797606415372439535102234200311361324136694582895054029321702685504451394462658633872890608970504131683601749799884084040308234579937840191230237291109394180393038077287363263969501839268060418124582432271038577727255108612488785077621991688778559672440338279481252811953787273026443736097170663116158782401563997476028953100727184810548591441722395015075516080906989952016279739629339233603980711141353064856895759942196608901554756660124503540604722728437566668788687771909083388000282987155903035685945308786669553902040302262317318690001541956409909908541247893184419604536915036755542996573423380484957152701914716276805665411599375252229939785797142400858540486013084287608401150804401424591981746428083082523452778208670277680591695121394060669227185656038555013241073484928958938712475758343731103806026271903371641343332289408858273640392641921954737584648476590696798975639043345137956093914489788496856978697062542772692512625581296769585965761736781031110184420640366479248227727931579051455087151994169722004132842866686756452281246739835428892735520794878166851806719061467715920073819130178559841694149546812003924569121902426433232540490051483349199046053779018401162768387569835904683408057535349761586396437378774399517290979500740482973349026193159159800100737163718147105288398432572153659175099426707061614402580086839100839335178064331291333987299969821163458464177497216194867573842270035273937461974109411767037512391219645254931872422445126525590993752201226111424468422977390447356022120544769519180074739526161476469251856339577900412671191783781232713093332016483848433195395286269298302700119299741237287213804635238445993805853175419279975362111837474757160964162213208787946718643173497355931757280716395467264466335506542271205353198849107355040958738168327393248661471385907100928592007883941846618400147555501643416052024639558233247184019953192193254203167429453638337149242098111147438436174234918903146964390224319520836477621873606078265083583088819683697189167708495229173917873587548733365848985663799965956498086386844571790781013928342059757737513066595845062551415554926386029924757987068577318041750003920948886232692665610760275211341539479591891266258953377528037361129824348544496949897192107890576169939598255690202140019843908750902488093298528659453412443321097096652320555472147179493069898130117400390686695730407426660698545615901387741763027999644210052945526082814783391891984680572621354343169510393420406935393186022595338902827538304510074911651687295435580778257874472900912562087630758035717050444793463547865857411421000675326501835709572053237351101744759859540223015079679215346235246682043816670784063119422186178903750807657828553123055813691137441778621997162157519335747097071468241420982475074306711464532005386723008440178522846237626984515272710167266719047649549402078748707754504716132005217085843340917659343067683582841583085690867641511712379391653031152886030570835600690852618534237270830582741705383936638446464450559299921089601805598777710300242524087318431132523955115914743131692274620065300595761959049339201075941156315535037512451011126171129045507289554946477639130709514513059278231547156271355131961266077790216080811254807029888546139587144376413104816418850015016731493516100640696563309754366793528598628207488488547888503020834498041947209428820076002105435732579243305787148450212103268321723360897863483832566650332106291714711690328388032926801945434545049613511075697823204673943430024610837445173337145469400020390936361509967996648540949157753271163208147038084413408632036707027862502819177722296458431149326078963099835229448079908175410400661979323133316687997512123584211568907638487358769440267494758762693728592979521316486562009218970377665109489321767901051226487767702015677534818515865761607486184244792699010460342004159751128670547567218682186829503264978181404247676674967385911410426343244844280630611202457601341921825368038807684401677035038405630882886496095681659300120422953514950688611077702265019053626192349773871740260575776484757234485873612759134806016556195330460983846406108269518139653233376760129169378967432059913210319149040511101938142397500012189213885256087509345247995642687975426499497251363658703793861273321349578531814956873387803211062712455852483708849201241520305523206568217534668823969752024958836467992285224260579637672892596085712121034215902808199618647701579833803645825123413606032483540047218916520763546716112341546910501289823612258606258085598554827574733964297823437790387882037450967085575562902430305085407182011018805121907419046875107733622269140369796121814816293420785691253212714429240716862203661673667684695352930554655002368502828095891001238863605787604148926168112810387903722995490438944533388988739623602636308835854730469246145684278026810912096641170211148491455445503424829755563319369312747535102092971975534039619622981466986779815064338773310708844872078788491107232356205277022639941888492050168488219574646845969783925559119151172040118875955833772884397901275516146402219382450926478556024282612528759163778961120863621949135053819654234034329056468123709804493601176583870116341881638593595752706076566047509978469208646183651266702386326543407009185158646743495087324180805807317059069385108946293208633939924797448011940727562424950114871696480648387129884927927010776164447874758283390348920470089648842973619557910744994808047831810102849758356780367675645359862107608485104248494603401790649063428172510423706327225158754022700307880434819964646606371078667311485616029106288892789028710925175119684829562298393807183248582460054058968990551682699859647815162944339534725537479605251333994093153737604486946993278803196350628648524516949437453159297910317879389794290318937369161463881390324091254311807304247451176305827132931427043336681929227901574227170034715453866529823272948813126790419361492569053434320879856332936905065003628387172647537312060252001819599247385229463891375687371630398333264484932991786207629041069265712702648042580457252729742145463861932896648057689837692636654456941655820624060825449717610725067050061275280784452832408540652577778590402816204141834948585590341462483828375481705143769178076859665202157397930009429932627755253082689653744303263143782252657679548583382910902834203392176279909187790974131837813682137944371152724061690445769368298929368956457392674777383539903501294184423770136174478293355466516534796875131295149584378637942538532672728110673481714973842733447688481526421661283303480439385833239472773449062505657335242811200016162207829180234326057765236936552129910568285199825938348185654969527858670016856480939971346162715014120876527464004627935021285190930027958600806076640745715890019595831554268296507351708689592493316740526157054402399330584475277976078139433962230226137709408465654133147889160451295149025078329237721575688764098854003419513846740871003418907136123874625465548349141733968406807723114960864711176007045216195820593928404589934975282371862097337716833622921071544545153670931444369473717148633538007957394867264027524124464661627788882827961011000845298468569255072256774999068439995466560322894613632238956641298710667359322890201156843468033448767739025680566952873856499151387524134984572413815289634633588277463226542209390235250179570043036429300962844828579135949662765964232500741751413471747923111992642969818127764027094285679647800047781333455760114031179255029655897442443729874217770678052777473263614993647790822239969265071708764963355501976565774287466874611332829172670006157645797658378688774397342631060652351231025324382761307283801305669660511078899313988488502708179749941971309469788855934353810996390210842025939163793367727519739490709398725384953679285124320593200588875157009759355026118538665593321641719186534306939031006242336666389904943131866278439264678137677092558943528692447315588096819645254376747554810545508849235827009807990609556510866057714679177411695789238044154666788926953801650106913253074935390742339386501638806580897564475179149614975816613415326028734703990874561344451157929326582064368583093982415106010509398566715596059608256622485760550815838493402554376326747526499555352775490637986154763802642561571849838612015675906991931122012088145921162010541634211627973194632228856306719412912938383710332080530610377896735678057952777690440208914202705837261798054902335507405967707588979471444070462601407544198780308968799265770449319121912964576260480488131559700785671004419919979174162646177923074954148828934287971921028172684535351780936866686629278352401631620647438754065653070557820376713815643622255646461468814033788694011073227020331566290140275164508669655777352039230885631585214883954544552922459779335143473082586537686972927943875386110962620284307244867911648100145073186160935478340662799777591159780067406230821803266345849756112457807347711378732755848500626832845775860814322822401730138058858765622873371725167977097641366807849412222670122140569682909261556514944625226663176301648042853293837259231311744922017133142995342010582676804699639329083364799099468170087633804137149368541847761799457728246550028508106563487405860708970172424898613980203799094732663992893010994154516932090719572698830736113126976098849683502959567920583126544527741398448323045587194684455048837503191146073145281459843578046905144861880396626068098392863569831266707724945835004967857245300960448561158136650452363605484434376228717643953299448969331347144342661355138122028825998620347154332827485073214000290276565080374128941675152702149912723451090348781985502260381449464116530963167061319569796022341458696077216923024724185673307849083720982551545148543590222407547496836443552302320133207849941633678824261013092746952099682243883811733532378279322563157713743896047800695594240146686776594041736800990093121522088337668255036846340518430863366783815581681233112779133904554772810541643503359931038640613248510364414497168523824446653176287120003467789630470265751610786813458632438821547648144576508894877470507221603287703866179338909093478073129773486129339909314528122853729231220334070453921861639368715026847630478574450980230568160760375981243231383785499508896774464118512636683874263015592359829921053367310212579314559350296438163499355360382311850497956568430461040612374551420460880104939876641561036775229032676050636845412382865379001644965356128744668148649080849918666572564736446725895181422306573226274897575696670563969455082717215224978908207936986550196513666156978372054285766450747276560318129451637816484731860360207343466770782600016304103633946105915442293283632897201149016933153850107437281859698372476119058676816651524659914499900853526532307476470492106094590252421570049396791581723367991238807521899668399971766045903137388367701369821343032931663660507604042568805574825052778299735830616126398973721398299316289710118015748501949283448461619175392175004979014781142758427809080925256101937609559727974081207339885298715767102908012300414603896850363287558259423615150602162175370209717851568385438063059988592185758386389436295307874134275791840928804833240173033227482080130389180034305321095099411989241599147854839365795219861290772462082946558972044767751818154208300832155746237969915157844782207822934158349336609910189141597785625234322732245586732171497852965275640018293176827831931686369165332760061370283839130756814998111473510801797126897631510725480373095316358521577826134871005493943497712574487913319951803928513753878803647036037412200728473626149601649498934044916017007506309228318494431808189808956721861284443986787865321731341102213165952749226013775124444509637408560519405257339242184395142185456939093415352586476164920509735854907340822143135961528145182866886168972655511976917405215204437122793233263810319327936909303097090265465650649164905559816012573673415113517507355602622779347654871839788659631383307235330668803300296984414949041979551194188160807465404191274559486838104794918132764629180819168451477750036383556986151877250881763169459250335212481392230975584835443632069215176646335046775732569904490123927847900864036272779808593444984982850842954035336204849767345773542154655986780617689706959263433787201077808996459448856482281125302727287435021498737763297561153047223607688213294035723124463398288770528013139120747113127617594473562667756297688510906788414558044173204868012901171401723605917093622708875825991775024557148858155511665219844019014629459879787394153629045983260774868021307283612019591171138988806901299183160668169363479968271053377883965300033347246439983950456865758693861885760551724652086293305163070157957220764245413741645633392290336579264996993934290749518474819751278041788472925924971641325529635245998794706041353231488064773090927084106527586036676232913255701601526237261847233607384000540520940593750968680428404676516597185911807972768831707069658731572789141370854827783955497094858202953685537688431041761610100288506821171952969677167588167584907945968979088445231723073038716261088213083029613606005347832545416165217330255038879530937628524677298334477493479329243179493575842674050812757484393437094451506419225924053940990601195263494988129355048141857126106176472265323339331860719949418094521840659514337818203539372624542899357989803768224094800174606305530266665613539869692260777776732408382884741098872539425223324676186686411720165782483530527767866480303793768392462258935457134210516861621429893541347587608040254151822457343267553105518536926009083666049846047914598124935818874799261636872778688984211328860372005208502194945590880813983788684176493994258174864694673565536226800465807662484932643692603826788737109451559102789293723313941318788926666348106644868113037165414199690209433781941483023525036692456975219897510786356742098318713127042098529944054050671089585843734972364038727635238260461764522459979526021539515516779798554291476873007639962101269274597895294616130099233968951746816045552379478457792388483999220242439170661628618639753328467360463444683246391580865889057841849307538092757321482000745850397133366968380494650632715439129252715060217717755340929681434540720612549088289330566947969202845245266631429129795155533656569273424468015653842826780681307952979236256851322784387043461733353209185385417146437777196582776057376920996221177857888453613096362794387562779057988480721808635813448752535181063240682831555921541802167011536825115487097097327299884213634660711541470930154222664652160500887061390767065397906826058111828396161109790064647096118927655127028298094241429922813858955734024521442510437314481852709385056363905627003030976442184818800361940918930756076753488674726365111486956108179355275650274437771102538507831358675271017463297251080301059584757432671150165726729743562231548356460513350213623476461359558496829848510419379718704168024326271646903834076176646488484672210321332723532606860188301335126741659719946406752271773900451587103217042962238969044026986392571136238231629434183512177398434910501220108699688093805390326536374480830882928873508839448954391176946736657889700256337403199602651387117558376202549802640932859444738723428906608593881252193920783884013038973071890610100108957699880032403883463938677856346889068513385774838370743751308102541007703231536054253960119905857907323695215674695646313576137704603884657472976540345364206227648308478844131740603383886867920626912874077132946105248286191874719348484479973548834006593613737994153237987017966098842118812273105000024091781309206854927775096894489679194722424252010363369560273671223906290730078746297634578013732290140121437805611614943722108894755729401424079780811665463284556475751136309905025410330861185549559124653532863158210287437685917556513795018373576619887441265672496943312496014513968730612055886726795902599447758953157237343678642033493196660797826476825815516981397116264597937752295217574781042225907711389888826208526472313348862868072645614676605699024835902456520958293761570912442190315882044754199087121124260310797321619315922077890549747721894400592297028659913424106127487634418751657064778412128558386181018897569239202654112840762849540839408246322013885042480687679110041409569177928890411203776709949993392321375747893108693881115335652398004642516297486742084026368604270908930059961866984392946548752378188341504291430021845598356301192821835877582750141767378808022818158586935770854182397345023525844161897741001708416771992691920655323240207628527802839206687708813887813818750924664596203025102670333048783948086344238768486589198654347513318316562506015901118149560070408488254580649681891198396804172296400165553193858579861217497472674642270564400120903017156050044026434717824344972751098723239703207478348013010017530318355253401445618221180867798961404978838161322079288051594601429017537682672009001049425458613493712703608238787321444535322815036991702446959731913516715978832263601822963932220462933967674648141183285161666750878765009639158820206754187170883878392819656484715140787326115134479818101513950628258387965678756310786397151738361373828558595273543415257860462526947800655970399576734951550775611888105116718449456652328958672194888797848559230833870883941895747172284848316981886355096406567953240258856311764102271660340183014546922631929567715586306752580161816750966531171823658661309428173410608383525434049306058312970815800189223390338159073403989781146671413283362884609262614692119898639931075848050606184938917231362709541056555542309540929286031966193426021197709860425598693458270322015257870431915584245270481703378557174357809521528260905248676121751472536175321953741402796930713375092638963642551187080675061605011342146869479458384765262694205229331021704768259803956874169774399483731958000400345317185965145534834074620572963456201185883843902689410117221406868041621438503889196002615949934399496135435788332658555111423620169495144391110177823227382904326525159527578867488196832235741839301359040633272572455275629421358238490362949746831291531655044749737029652942770674397226638219291615071365298770717971079710397139656615079303427686772771247466718097581118893446555402419144408398906861521665472410024988778709555021376578064235849327083289221184994866626770533981499999119436839919712260445847269666273893946223519001809215966328048472414808810417766019202513723147630036514783504682183024483279907720463849155093030137950230053313137910212123232274117611152899042248854093122301888427846006774244211814425134451686160957352972873779100850926507308545974764353338410151264750392711073883689502780439420266509018215581115500408582424035802600460979608201749203420023901141843076252380639717580845710263585642346986454491139224407743608319084133068990579093681849344413510921819869872601293152733342412093174183148118999221046444456505497503704738685978178339759270059186675112450540866347511471103364433291144609489012256333671339759221303850682326464302703161223599165471684709922579914300840983098706779359387701882226283036930206154227202532478466897653920221861475817761471639469397657665066977253515044944447729445445019718069375310857717231162173645337002979336858038074016707876599188981430366225894229548916005122956221083373251541965586961747680300116724441100767342755854468832312013028462679210874734189623596103025607837111374015232733791149838210182178960505335734764372173487930175665453432089747705987451012690372541573572133355389252053945462083445311481107669853428445599638061286410787578354114896574426197448375317136603982419632119766164750595747509706850842507567899891959213663542157135913573323772301480599274835464814001843057899864494704188390055550273096518315142057347938435294323408932390908234268672573015445130985089537047197353573714285178236790611683928861716995881898480899439383455567125823506453447492789211429489942793727849502938012016729443391808219291395199521003618988809334425068301810095756338552799878881808467063028783593695196702188139090081575731988192833892756387553552095649555424091107350896579685921025667315736814330862065763216474454155293038830482183011152155923558151706490798337699219471401456044680056322775761083995096200866080337957268414022372329363658074578089011542485313404755877372307324886025419956271179046768129115517934689918359642069370972009589976504038450520664532991428588392245294991765410450869406875729878165264616381831208012310331275302916826309052301466257385939070120969101588850866190711642451256832049691404405512777593053241085886828679503932366474479063848208103399518575810365942736966289381137171528631253022943286368175541983038810813403243037498573889739859826909784871950163820274985701141900070672299957468348508851673403036582351566276118637040311940115736605253897845992247118662902338710540186361086861893125006885799722134216232141940013964261041410031864682366223292558363397797627491529154917722656416913943313654964738448441578142430129203904049797767744256908819817032302414478571717180937757951191028731900205328171071719442679070471720891749990619006915313280213386366919909913221991786279547839049068318258780931986696838774628846627962798359187246816154711430703983540354099514210952124941073300799085420390151580277855532039335573598597752721342198388574420793272784417093465310819705721562544846366736649566377269881786859642110740675854706734564403712443518138153049042812019267645860848989082810597302012705218564779390583267141570038327232189662587283347908790374019403409780794594096923549913500995709174743814840953742678787537173758585073087751210625134307905959527995076696466374447444739882551922054475764701380917980633238062961727025340250534799554516054801170464135902053419352311197999558840337879306704483533862083433267641549245605471027131833234167348949123157414881964955907404358351216844603767053659526107798308399113361827662617035244638047381137237136574420567026447652155586270237236713705447976450622340784635131068368620863251586397478209939889720853790173988220425015544928317166498707264952090129794972691616328992733791600349166103167874742755812652985261189109590596698929256701317254594236979672495420485875104247528572566912127111052184596896627502397383349662987751422098195940961964360140500009396570079763519086671460821405229685663178585504596414869850057776150324834964167019969167380767996804272065374560871988625205676282419785739013610892278011128580790848091759109456800644309529984581224398088857258118679295044514393091258038119760849268159969559433405376172652255946807479499977189825437617822705798250955672247360718869910761779129418420911642993745885449412918414146109936794068353969108107346021201877907350855270498386306037598625402453490233255870254633210671927259351281681481912859227514185959468837745362652747634790339940338040757059630124983850301431298505561256430792732716287170159761156092211479784389880207144447550449580232985796200091060010173479110044399358043824572130796823173927421611023238922362012842582756893945159477170285137408569471665771061233560967136454561060811219225758532914082926515145944534380137281607185347700289493635376243237971480036826913773130658918541429617462150183458170591586786405372767127974736664940494235282615166685412279808127660018310902933788500277795328274908610511618035772664445010996501253691524606402829355489867627401137659217359319067623092179696869234445380579851130728345756473419513743503291502046527044067147514244315926850758505489825006928938865558547907105576510549737648881237270889714781427165708078030250120626446164513535878095194111498153530851657570870488386959092688505260017442176250273361339113472914290037001636874418115490332556126137405164956451174256121607176814881558675713907120114951149699831723107862708349468111659481697029308188890204003537420384990768683812544467869612250552387033789686052619864959497069394380939362352549742547460127025288140485133981499593821616037438099782440064971504827486751057589448983022115071973622262902478955457127387167414901563642562733644659583026753832885885509326480856943431777398733449916243500378503120688217724068526777295453605826085374387485901235948680940024536066625492987796701452149412938453529865191547426762069813551769595896912796819186065332849769751445767825316464637193834343964529675850793064597528467562905530125422815473734333341418880297267358804521196824780558740461309772713078952934103950615824353242496362564769386725741486113760330012959236851298480703864931323592536177695473441487351294449762315630646992339014567608666108692610282975717189367952025234393271689510304467173775879803792080597265820564138458114479253059737072948860224224317871208647118817761839209799877869149505197866196113453248544146753119107509797522006921865515848311666816517720762430937781648618760746909118352241417787298062816712241788486083698949654139194816252786654456127225652669357752496545357390421948151144939950937135241004708578059310890483841599919793180746634348360971098055658039121656944292381743227706415452636137216774371692911571337835061523071484006884853902127977683446281986348137088111687595621347395336671044307871265459281714132058285552427243314121822239873804821634519848703827501959461050079238976399944543810773402937823945505426787520182884951961602702468345680755424564425791468519557751970300863160531690507112718388882248969123467463603246053769904668905343722229008240920259014714667731574702987885768229056335125967760141649429629471245041487468588071258199970854191748057193514581007269194206289622520226125330991527158237079958344001760119897082688884918518319482985630553569079891042059992651385288412214477295319362121945383367702583781113032386775634864250926265866363212200339174912509785238226035243018630640028672379572204721668673778996947840879761996048466390113155592526494112888458064479339453257117208280809430610976365575395929963216193472877383449958180745966357592359983518420854521556211272882203422056966102597187322740292762681472825012577455086863128587761588909939760428839405531581053144535647511462547921009150679530456788668462779547585309940084594832997220450485673080322144949028107112507301962525821450615043223134331069776820205176165886197069405507294557431073012783401904386482800489114779696559688815018591429517333916962231472532682803641133548623079239670670523270828574756068076032353203022821968580042160208944452790367354758638091882931903001074063892084536593351026927150202757612193121348207069062549464483863631446440062549226920918613043744656592094485359674764551701784568277259239901684173451342741959962687010281361925250880635491295952155838103709352429023659821151637111320120165223645791356707799778158644325873106448114009118412366841775214295613144999626221649952810087410091737360035423562671321520130412979977335073300724420146396525274463872249846550391881751223946714553247247685456900127583746615586196509982612724685490323287494573214536571908288802215932578887475365874440645270406344730970427831419978717703194937172645503583809442136822923480576798180326995879897827094785368741272863934531915842802734635984751900816548615623781361895669599075342754937468554991266321467055766183300962353068890242151325277950003717583639952588959406186585376052938886620281152119247949098167008511998321020647619174270512100688844024463162242614859969152891284177522543952739596936976805392304806844418557605205932642907893690984229919270640739761093972304974730485273145211480219259746784506734684088256198222870357526724528750673349771106726903397637422635855503752620770750386819962875461883917864355871835479535026173632293413265737338820668917866728772024093041572061111965259324676173704174629640805298201550398729653425720552359609873467762337156889322613047677241917917211211963940628867112600592064811098193226057522446617376617004996148258350605387778123491085750480033555356794286724671812873885671717988173653415014907774129034601430768379174963159744327250327708856102151563933391324189280592233809146707026770457405344492894260593209457888598435889878327527048299629574050233773001049805396062304745268200767906022274170873984243122346109010325115610019046311868365589642315596597541415228133804916636613247768251184396909975400074552699205134132090307265607174507343344056694183786389078457033940909623642268117489013044658472316321802777144105301202909006902919951920899935376394564855687666095698943948381488329335574999998772779602025272442816669621878402683004518929633448112378015366073167534014977421236886429089125690541002758776869234272107727392512269571235939409185832133530989828074668529011685475246001421029301628253343546488457321190100050644387393621953376153184745658076487057975268301063077089379201542611754038844166505703014099695365130802014900521735984301191745369871893204096075889054294763089787749483687038520300640523312349114664761707288930755719574248440211318738475793171655996451637334591955589404167775997187778832093092267232516823524326199448165089683510314274648672869167862362319815238274739660398707107684944578203210304392052489642583103699249120455411147395954124848731428304609052360688396678836213650134183857465689891774321415818776905267395818461783588769727560507005815929347879324631603974124401543417205015334055793988591718357576592950208158924181789152273185763039686196503117103592534616585098165999064480231491346563518012052211778405873990576021190150741519879297595645509906899806305922394806305351861373190118550277182740516492281738062788243300828727206205315378990465726379024972616392773519148902901191339082741511699084075552886938599558515885663880608808816929247946658920346069640120823501579329286939353574952534638528496264736633289938882093258051003137599708023397072582231596919400531206939054598475725352016405283746939893509574505835730068657616122663101425126476509803860823513235215472136785076838240740707299678419659060923909619508566169770419442820796323467896929902320497978021059009552275925683210768878070830125825926363324895800560052398416084720882657031816031092639185768427234850339069374948917726998048159538529874038700447693287948554487379723698032164302384374555594061147502827359490315748761530050362925397257508120990794129306397571562333793424388328142651214825041716102074669213871264338635420761567829776837164987618869091146310006067036437788626879448898493064542611802936307049569662778954609571184880684988448621972931219997633218919659544239595727828866147478519003332115339751030850082517259473459840775410106753840882276712342042395934313207595240943878818838881603970228246162260252941289433826197480930287285586498634028052300041104299097943410915356997390490775373994637042252228111849042472838071045805640427690229597762971166017918182325861933838754530172509322084649014785978775048830610558349734651455188055798193167787207953409974435835412209382438804997368098157112394133329691073677004387777588596775018136198555520730610964964629153744126800614069415934174452955887573154553781877593262719853945321014871164297571535469933139094797286812594620749579250854055198673784128790142152152627373633041447767258338260555503407805986199933708919871885692905766699253991655962549377635518702840217600449879204473075655421084526907345291068746772619860985954203157373723411450915692463748634214660551184203188194641342258114617923316868618964304322907976910198954521615910394999566437130463922084718324679766650168711209261625090233625392287061242957382884170473255358722230139651344575909684870831772321669640325100508240246953632526684166258429669806657674186954859385255984307019860261241580886551127778493367090610375649484027078480704657564928108725072619990864153271420787062757897139576856185768796691164388323150391123815888849112462180147112576622598140299589356318272471346709384321936559838445437581030659048020119251831730254622180073498463550724813634921390636199920166072711462915198266938996898977409265797670032178470760574055720889414395758246545161738935168093013742006120791443989829643545893642835380674277772041304368061536787202910746292976841180309622111343130455646433110372416626870365896931060230919640297589639196550474532544415752664590732607138324667445101049474761321514073731451645042446625878665948143829043678774133736558511404332530209856613595634584834497215011441822061854056248458648003218800324756949773283843834636913220711131723947750863469530620528967267841445528164014437424290482534046108467902126113967486247507187848730298039192069841092668627865899695058995428178647056865409280889304525074676898834033043826224888337202786240247337925346472521805712077618323009417483905041858621244080544342743778738202568584196903235848166046854868075040708308967958394484087037235447222883804407323011309092289835046338295707114218690412695181012402652114929794847074840696589270259326771871177045201937472627416846745051269206427971895542445762194621722654146619837600761243666552980344817618351061368025871892755130465072444237173423117663541250675956621752018958815048487844673666121418497360372978519863810907564140201904242127782320442947384878726789578340851704988921781123085719075306350570156546581450631555560962001417707347679223769660592571352260842883595590686046076624604184157333341755708449718791824406870601418511250761948757887862960242760032575760808944473598159141218381243266206972507756321808466346866546444906304074329519052385567189248963959894732470471635441620579620060657704191484365973858614881908881509909851824730776289231648767397208781797990968981014306668407756164382503354972342522873503890230482151830906461692181814448923416693099631092376780650345264855721475915942811716571590678736407972960577560896994078942902222249827318088475081777967524896837037884506443293874603245254943384756624541436191577589621077088529205105530538241277314763220349981098593801016115299750412472947781485135080091758856840969604534402527433026267294234418647635809352823776683729265907791771128284207690832708176860633032595449495308803802742301203100163774381228309611300139442451064727647786638581460201178650957986976089950157016980300151163304669733991661514190277445383689327102023432098100824051995608818363974994749364395545813058168957286057591584031037322253815015244155088016873060066869423294281229251065349412431858220436440506803356528549008975810002777144420372605389921237410083225537820751745962449092484120571052781187766413457744899509315164587098786517276108113934115640031819778556929426520327685354813081964924750857097320993501208649645664061715965505237365382713743659163165867493295807139083393881745041164515326111571122765575963629171073743732440154558039554678430909971242464108829331712902588173509540246265918437440274646657244157740010176830062656689115319605877926664491288564422797611104658888790779912646617906139039729169634393022198529871003473176716277272271775762244504846825473779637311207536326276865813775480525714043286210466097076588637936013018124430885545872175110770142970429418300598627943136120553055028252908751133636738816276699833206144124727831706138943405034709830363343991099615214646191699205095453275384477032204463168337678977979140232770577142348975200030396390647631330837340475332174440408979367200708568466137710706440003186001677239435644531144331634106756599747723951688881291503011974708079448266850750647377332370401496762781420092568793270149421151084552674208285618611043987950336564320942388438663656805580552553766821001497504330180051532963916807042592104628084958799945211382319274363205181608754339910560093134121872256807633584446032530747174871861556540215377750309389949359465886471733815775656074599158179021800034730649865859572905072195702708041238643491359837565226844618231914292762361395722767884316341410492330699046116864320181616971069096587071489243327828997532310615521068038171228028795043269004914766006917231771456360647726089311008398905339414487600137748936212775770479685952066584094967295700350873763495917261168350826187951843176463693698633169751513652592418958266319930011858567674813317313139040411151113841372670791256869169552364113212533913973636575067746897214952989943040071169045393654059164349645364061123486490769339432820071595821321039322164449950113035034146168354294108377511339253919858924603652480064294002182206121880503715418706019081543258141098046287643096784793012838164647460526403847453537085259993864967831360353117746041238116682398218851185484036845543439075564011583172544255805112559589248127268266985345183538420905888416920396767850312209149551491194643224234631392738019899097204518176630833812414885599451486082028994628576900590313541836341649332650412959369336972331602208284829494826977068862489312713640323643452307086375213132327293234418776506124031548372160738731590621268287130003476115021193350147685743363637150848220690742270236263303566237790903684796193741939963523138635448492350803129460786966862509972347300320506995515139480680369735191276770343639492605121737185242777633250757520583909581879688727220294722358433874058910722442225945856000295994385698947705161851639209045634590063346687735888701694266656421072626251407128055191720012900904739953765351656952009984533802242952865674317158566530357232137136556291555562672965898016668723720400079581076424876469453254835624270990861702856635226524847840107632230124706749224269069694538488172932152325480740479955251173450376401450600113054360484843568995542858544839129933338715529240955747184882894289746350217469608015611078667850742027362902224116781007498240917453825836305811834043296436456166394468467646708736961601115928189163176739059966785395666942871034121808199837190209668165559776190512489026119212632761489361570175519362563777757402102591622740257691971521417777901292130276394656572686953917880778692638320557615851042214797252394846235984996748676225855682553830555240518495493011542525822789102367744795576110924599680342476973384464854324454869504541692303878633271140089672518047272803601931623422376546121496892841406998010317499253909576916397036936325024552908920640914650816743368115820958573766612565708009630389272865003521926924404908668327109235332167259419016364403159667531668336827359939615059682403233759355709391384984136904706348212434115903097603309240707728363696809365844521538820498707813554018048563376115252681701427674841467091283182355970065267277746678787392406670175743185765935316298227993008725351139767203261655129269228184874843791025473034464801846583915791128316863386473409220446924139199924875819255084723330703114458027106290864781591917798982170342390455329377726084067020436848366503040379652329459413128957739692240638611718426048179454893929972469198488172577976017166409055977534077557657687159985730462186163550141244594946691485518124762920554088096025569322951508256621423143596545101799922725063328379416346881305171685255133522961164699622512281845088735122608340190173354339356072088711531701979852998580187224419870167314610327520355237154180149351436696961812461551712554281863325147706804938101006320686380407242388952916502050119474346237118916766264972070166905740043360945285986316379892463710494991459219150616007504170841665273083567095001444081182794489855581346015534048990439157114629338637284305970915752577430272251810116537136545642513879045804868171204161217214124239429085135941579594291484943750504339154320570106848078462020651235145039239856611517685704314629780162702344327582540979635022948987678418331786490123688621143295537484834698537795974773328621641954271354892087841074753235460632116014643797162623539820368904168300772845724546438806725734017216262241889944278363956580239594122752727175046610961164052620651931805713007078856553414355970925892677833575794671830940058253340410281128050126482372248809290168256213687119151651289339982022867803426619944795676651557701796327141831088685214472643319471984547029541882858011073134082495056396515979135727377338607687917926295340077491051676539737565910353535434173286671279917003660079020403785151106426841310109992608157983231320906201533281664111139497426306086543812912626655607490756915767407838230443543734683701745139042331569262704624992395944837663400284252210440919722149101391993089315047676655860705733979776246591917949695259666345883950141958012292191829153073746976619969656947849258035763283656898334951085132852927410397333923180913640569150719480541518993700761000113982711848911870427486340164196721066739355821063372402134778825287964616161855092816221554204351638652720099318266355279341818727286310878961026441155627411390458512849447137490728044384935291889721741658147126809082630952705692459829227567662719708321741628054049561894148166819603445558901438646077378792804056888458775643509951542248759822804896965560453205293619968144117581213998708940680374571376444172169186146862693475735306406052924980523024715177256339944630534181540296974313414987920624351421144699512434054044731249626762326828833022304891760723339183902465041516997170273603425041348779615384157629783681470947514701266929915615478659570774543256449020096448044850113212029538545015885845993203679529853266523096020415772762262316789759928223344703433498518947174267929552623915619451571792893473933260822170743499246778004900181562285334048940848363264596670769585838387645470273716978336523867412275580521524905819965499793444067127126747468986315407951927545444717270370882754976084775316441294428601161014502273578071171179460066394735829428843792059007795746118082109409098525755027490360947676850949369222768975154631394678742603213967492002294830480167099868068255175526188910724885314047534502857838391294244445664000706466731185841982629433747201848904775161012696653918928777490514817877648764796943608719479160080269083896429753409262371961218658806008857398364563641830760544545428620651523411402520322687834549365364711746773743428249201761238219232271987139348051822728506639481200362092606192479349377645385009987883650945130405341483579603300315392279354392382169654725689256660249254849777786939860439721585618600873573978264223359058874092237860217772678783800306747869017949881212185448020770392067394107431469135173096876128572760743543691689959048582202115087269684887052453925829287753886418274737386746762208867121946500058512825571083988656494775966998922932023367377216248023597749977896552607040895098984092071279996272851355445123925020105529237600061734630413119504176200479923188272043922841348167315417376387856925797276204364754891079090996968208650035127660724514239341701444033922647631293592504350483110681618527292450461397175347772960368099894964014300934936117441680261691444656915237199620754162932666946368556335017326335831820822216563484025245179368239739275220073654639645463566590085447976496077101745841782051583247201348020651567432759968563129596155819850921596711585268394741930207114028527665178002470174398241030391106719809533215059561679789478514694459541360051310375533677733407271174493447978187930359488071149010956479818504744036371959940695241758139220812144315316988490802443573561035814584583176279888757279389531090110230525270394633989472039255453635511840731246278455121945192749964683553553072718893545557637553412047110336984534388575415577383944241962014037720429990338513786386028361985846371875099999940439801478361593723451966837092907229178934469117468024936663535373903142742457110221528930343096854629686402327302291173685369066635571845203193419603228838518815654137006936092595471674866151158760861977871933222640571796070991193676021770911118946042922912571629098805272985150274745362132653513238462395553563942565082113054560496020781448834330193273389707281764139845928975542794141380582659870647502591209802898404533445683260747309143521975831860873303153270538243616845188574020767307963691454240485234302160947210605819608928893846414906755527637310034416904449233450266697929133596479169936420864196059326671017775692104722792784419783560452120645556918441044172165262857198474294276116187711461425304979168068612588313600259406219529910331026717527144189026397100817767880723737214134031846995175218568199419996683812148926276554510536704096808947711675060653907886457427749104582586770429149128794399386574408193470418963584818273728135657267376789478249365777898646511254810888028902616341290183852918060183058040049830079431623860387834322850889488141933198910752682805589497145650743994983311132694630769291518623341388035373523123463363668436137907835802490840204929877250092637683237021498971528771085398346611922249157900228398267497963981802443103751063678145007246958378023137058349146472795916327421974008794346988375883677110783884861127137783650430538704552139382331150140150839215159727738941869954898845516916229731881531344692524464571632750919827322715154589881800131196193972168336176573009797501407021138698553399145369364505581905835046662517301469584610325916143447537708367213366983533000348255676728458781334971902455726887386478254997101161143826090575302598098560442470436333771153893413794789082350616998234265208443223164381196870975738082015089869197324320834353974417201497171747232510149994332065252491459586429743393682645695588478593259791382951526515956247928114470055269229116065125727160829961650608064132993275316810015429740424302477819861441160556541721242897048423325437454621000581247770182943506370436825188308721877194633073432724396284335656223574061155317605664136793280672799090043623781908520229015700717078446599732700980108172813500244805065383414587857192272006433807211338424723288939497989403347362312527073741127777602589608130348415513510396627591662245226505942327072068920838609123444630259020946804384944449391867773078711928381117233743320682237161635035215271877820489777370646158021411680522388017150494339053126482606977732624215762079514745252188746757486902054815397888774828861631589279134198299684060126758212864746375211944717566921242200952096235281559389543204535596719936857863896380647367897270744776681522072125385761389953316933013418732100155759253041766819986008100512960392552699172824617424538292537195722877943513876031982692269396269159079353214935267286005106909560932984058918888473366695750982322479626604400490975183751639546101606661993868856847302383230380007721344914162149357301330192388025468339732038637220359990940927245837669628703182669576484477787111117123771465464519010000672477970198916489188021373191817937291541020366095875075636612144840026587352449601524296496187220943515973550047552811816550545096395022169667826572990046414493678582306111818353479957411316328607877632944577247384230075298444334070202305058423880559800698351836752197529902472873535323452665246540804598458262357259503782219878652200053065675959861955834554060183581787487075480943387518873733334989456513873069476774072768315394352402333729885284693963987707275544339104501518141432801171488498803718007818473872393482588906509140988042990261547387931668836642315113522389356798362550367916060234541837666778400448332042239100368826396525531237038371948461139805181067682615622642972691937873453101524848643711373426597237254919383207174763090226136496515510991566334682875910218786355143505466306924179442877618965326496964622030651764090288313119898129301893930966625762931810115442395420827453189536826516107214411549936322558205530959733752280986742244840199893484391613552322959635838979848608641524644105904324914894984894184159954562707662683855124576074792101917747008058118570361207987491693099409703157990158906211563379243803641371450205873551659537207715724499438511894853080956643507600441388418871654746608077807276041573269232991362335288465062415047455670589062332978629153393534697522129632980601325849340544772605521524896270022351993016015943899287976574941216351828743514376589868017699349830135316973968989952209183292012148397842516531055809051218041455293888812695849754312082031830963213783810072798316331821132336367124657469091445896003036645162465018168048267324825238802092645157327916244732462407050423898677899205994368088413470785223986808635543495571132105173079682416537485895479000567511408236566553489631770892095108437221148986049056303012998961534088560205658669838506110907018103177854861855007694090466008723708099777016276315379239006062302313774202649994885185708017675960466928430164232133756896078718911301722965217278322030456852404605119535646930976037980550931546043398073138188703833133980798199305717227608626097430291947591038425418326018079048132440409399838785448609909100659926726790631780859030832500535705073298657469561133068549023250855802687404341724112778304794267537268069623646043245644907062947778551693048073197378036252420137235152355821352022255321585446099560554826854970326853119911789952051965395782127965351617319136701051298820921124203382249895589167265248484417789049215363401531498483860671220499929113380226317465081272797078444008837585114691803759707312233569192788131295443589032339133914606459474528574296248885408492122610590063065133630554914834874196684607574278844682812238014999500803402735887161458349790196785097364733759311519807824594638761492320969746386145946931732982389014275200646555539998101365629029370273318799462489107616919502911688214179344649855028469190328379232041261653697871844863892122472647414017072655664718666544192636540661021533541764430034123723926537937411774699404494223794728248142462671708586145948117906078876116659896478764890288051104355257374605913940032041101034043234058341284907535303052029379888339797069730410375642131239577615259317304873304255248261994952077172575378830245381020318315433464720887275171659581471964488448868845956584662194108992563738895655733189286796083836058185671238371747993355216350172567927548044519483178447282119204084345901771718729274708539197429484033166462545547748009912061450783124256096206878940129826242972716519985522643234017454845492736208514202275653779859217806505185676950639694201060500086361572795195817689781427580208601985974366093847362861164735232408999115946991996107521040487414868288311771180578428402220633060779553201867892606567128143033255239221977474575388736661217228069327494978210346809991511181686730720542922634744498798585712711577245431984540100231519393945961137435850606571025951440624879584824708672334317174699464487756110170394859175063811837426019388880621421789471169316700845655293376451944141073331505420680599026343356510658257551604297034335602427050583644339041690517362830675427983800196001838462590676915445283245638042873229739966330021746893227441495899849390697198307363687363530451655207372102698461236564905435051345834899152402089234270577294678084393653131737594222026403021840382973068528307237765590950927596895302992245695444922571391202407986621094110061992149702789765052901232314969910690116877608778228533375347118591987542250617702141903489245715019144072106043346961995097019150099135608110849812140703502634635087192238270158385624295064108533767264989119741218847443233341256871119882854210066965595222179794247739692595787381158800612470866626368495758727926652316885470871592261612382867548374277879030304968539402552148246870117789886705256054783271846639487041227678646892071122388243406489664121370908147120739135166483967130652230907505353277009507145297903192819223423258617827866405809671250676337799877288514556390744020677148494593575893836097495069430026730554540817500145845982105094287025200266441749912966779126098217530777182317050964172085327605584223533360939289943901515230219286571896194756492316807144478578118013387258004731109430808945240977410148098577520543150636316113968474173354670867159677360299515198582328757304400861004026042020322735441244300210921201287636060272281142965286600126677601031569721156426469341373642326751935182043747904228724479908656101673716989275660363266706094811986397988744336170145456590599972554161944798225359353145428105697798055562133274409379034170456293488210553179686248067680363615287433814877613356908233316587121349145568935906182107477282293014975820047016251479463500451174554892553999613895885770485222603944234989906562575866431059071904310172208748393734742648015055285470897510239645448694525331468751557873357765645742588431215812468917058245855046703543996318660045915569727401748742038577705266658289950550826988422743746661470864472179248514750579744464683279501300639549276345391396111609403162535835133249288248212035744720119530498335729421606775719289349779045569123370544029005380276690644892172795943901338394105181722854562927147408863653559247149574774975141170655714459872673263914690388559485731627242880676101513810051961904778033487311284532046227878617382066256348979976910166497922168625533397794377105691545057102725611943478760551503605768842004617711847374525849400238401736838673259175010810219770489396696459629882665040623698068062593446552914570760998061752952517243328242780331047595703659733706610153572485982508637959378447345431720319279732149344316350370156837375514162789167373019894169022457336623280701721808445737088443681400909720278471573675138055913416332518073397473299608213399324312237261287246620740492267811843881619964275562402168852916737174018703834079580358641758210556934468430018501320654741223391200271841096510232501573851507425811291604928562259074851160445806076417272655250179248508350818729234134477538129924612989997279180819161574767869354214419034250652861517543207431681460020068881414590749280300030221144489642385723893597032454532087534388752304206686665623122175827676112219576569286636409795861773716092556946914973812199547861412662756056036584063462403794433662883859482937362163931877356806231782434361483750960800976214111048247018153807571736869824222819575613867235386822371322460544226574030096763082082140614282958709506725798003537290219608754019394680090544282030400817864605739157051131811219795424026743639259003217977123746050880421104801019638382445318890354663097878845620394605803466664656572452103205025630427130899340433407330925518336420964092068654752335063423515398612809040878710167968860132877516498404325315653541540422003063444951364509361556728706837138857503857971955202262975169660243306703954085985468846473617870427343456142036880731674947048015478661793113532716275444461587357757055333234273202645707661608355310959421738452742189920903677528003663265712081472811500290440335786213050129410073880877263070968828777592139917279256879166784150391211605323104548330836856240949941548213002334916907143982774194608749900947230635351336680352716154299008332846961537162002386106001935756956270451557541871484086884121877772166880947760173762184112002658864713806156011894259086525202876040886950569396120678331814719574491034521825571128205345317842332769982391884557555259374471521775913593762071453173237593867170223187394594833447912323920973942703992482940067563311850534147451246174242061633653182129910734013524089750167103706139897499339611169736225248835876859829675021450942574053931229955268433694944295567617397997641064809650326732051851167950936141610469741525552911788029762688095284714695521115796774411345825119272677152446469378535413219579885959356761587473277051663156170001921197961772433560335860691751819594942735423267610550772248529876016577136684261497807627026815066964087520991308357696834796172353785331223524062260312016740621789277937696863008698129869248913961998297828455357623041546916109068081123497999149238864127545260762234832170382492624486763621075619179993753685440105612517844681291868866992742946482071285628031854656283286348757081671822888427393851842905159354072250962520935061595616469259985111113833057391839416478260624562341826183994563148605589478161269921102665072617545763920754965264139736501380115089429772688060489171306555653397154501424715952959713723375698955131763526426900886027083989901444059413376546573729547874774022683248943235890551364190784061704772714930207998120841147184569449048534322753134439940362989047323747680437063014565747974329700267346222732175970827420323451354374989450340510013291090359548397949180480971153864382026917932846674328236205161880580849114761165540113998250049246236856993018796338233652413527285804048655968263058567036263021637282763483460882047353742108723001294342907650569762085678478802730019006756312078082531960794025033938819817377371501241192156179777975749657730318671774899479336335263549245663722727330691364619375833126113855733640784331695206177758640539639542964101788898780074340774256474662644613886056512600232046334113240042832515848142491443884628096773707392622631005709196927799566059885760847955602628747924322826000834011531531197645224513503004057830526779027386196537189444111668399820438480568673089127481437976867771928958789626834435367914911154499296831812559610626130071668637715644424160555488802590686351655627048760813817121320859101266134510514982121062265594449556127965029751258279400199398196318751325520276495108920385558006575457358122831643974036652978250351596616886872661076232463498440171388975179512494975978548287623965899637280005304459103835364731165151576091566838043078328913057151954419589125895854423469879520272921418001666259368735525254990625968408621284838835659203219408691433833141172091168292794517359517819977619633919328090901237014734990908879863746798660035333595356512590126311244152626564776677958008791334810937904788941901716954691581412360932310339686044107674764501351929028350958073403862530390364450307654326463190170721924393725064938592866006703879830394800613014941506720232490611425223002330181838293110940853867301342701059783216209275898051696181316550648859866295868345800364680124232726117839075819222794934748790098491137351459402294555241511853390447810862988109003369036855996637372508005863395976142837369073216633983701226590042094950002803936025539495942114841452791563945546252788096611241574268499948707862771883361502851115376408902127352332026511562936491221545323399170827812818241384958481877890586890137368267251145880058161405792304825028720934204479308755787513898070461377602176654768691142579248756396113085164139192718141397783710345868245953757809683807089143350809598590210803617992796393814100787927467221497714406378325469871011165433848936773081581116140229840264264812131498380718340915844348557569284130456485651603755121165016299428039227637552674233706590908439763397127764683891977435811934519049166712787775872661742477324079876892732938537719756725389878907739292325186100748600124983655429966897161504104205694841699626061846128964301595034916247260818314422803045713714786680908471523012929157592057792103086782914968150997942617933151938321769437886472767321343455431651318875618826751009678127744450775101574756526687053098322827235322066643363364249578442418693786492437672882799784463969551974713109624693313031119640247867060445793178102406993401043843753369974178482372107305216858171403919415339461941367384394471090199355037514967643286981526729382982774114062944312210563934558546536203023790696235592316231997109182331770398433988012921485887755475467185482715502820682663185890498598147993141563783314954606516374116939729768075019391983610678904122489670436979769447645364772304707463711788175395166447825855391987491971690390645061075376387824303417248714707674731211054095778040528542749296844062573019646239931422135619841783297105534867488509871815978584437072394104803952703512850793717955695181174376666928851554666347902647567386676422502317400398806178885460342904467028392127181990421361552125843808716370114953454806736745812541877134816671887116756957360097034994229580549223046255837478524211950442458512094302127857193354308195078432865470932150578894163501612232121967847254706055648861263381366886106748248471620737677107013255231971394792742955766277328836682453789633150006244827294400458198859880611406143838874650732164119447860630919198469397325711964146348961736800314289390398999504418832020266263445187073766962379998831607200443020756442295235960447298029329306155892310210125332341084108353428098100282705423161139329335558481206605211763669222667043293253117057623352511141862306257051062155455987860878445910877032684110706389119833017515180245258630586281168881707594089606165668628289958537906951218585482793343580387680864060130188729272156534300483020908904764537358820339096291869292304006395534115864486610917553781060620588203862086182180446290061920416140724766574842174117980064681297085330555930141651843099812424694869375408422318300739580455579399880363224720298982356692336855668258231184336560179995721091844876264587331904287817827929920163607206620725419193317612785272631041713449076083037068075244442595271723723023319403799524264174463934159124270281058639652713497806696300105421871516696061872229804006437860820525122313573966040144661932291772440895341914066090733884159635643679595047750460596665912953893033143265166133891400054976000348779195568467044537486082169947579494527677715905436221171027515850740413675183411893995883518371954252301149722421253101440379161783264546506965232931482670849523709950896806550568650383518110443430287449260877480929741696944584538764300908257979463467202918304045796426805340648894870381625727715090500846514404121141802844449434997270529735008723852536820129312780524214219969434360078041036367621268551861604449721888217961942927015364957640491473053947398414712537311453812782745909331405976279100968406793863265093431505512522757399463553462826072509861021248420717056542528116264577211625641699752636063318811141161383851760231820900822883174454652807384334328735402050056613621152822888220938831079758940385760993059005090148619906339682342884292722454789725338955075204319513690795116339324933152740600678246233671571622146233869078407599286440540577524355988723475588393954948382340424245632811038100127040783572842860815034817857151830707062984655463642940310980803701250632651633555708518159675026625899289196550412800149573385492052734960109507538339865713225480563899709718840759133498362573988361557845001624661039117508833431351937749758725415505950969709602211653648477696122346113752234221415867564553446966339477906994959453513821606512657050655464164633167501338493702751550129787710319161583483614287578298462094461852025421762615141470024709531608517566217498381645362719271854646493495248218249699976791432856155814128117982164182513130802511129923570271812702697685604593600224005819466883940103734435494077886857359932214179757875102729214987806827022288315517066519610598459955316744974779684873683020340372417021159370856673394437686431683926432853909357994273016621182535072101770595600098882510409827121919320735818802117826923664170469604609229160290072632914852474909556604422374175093777118400595757468013579405230438958625551082828196187312825618902244638255607240135040749515794249744206559589001901987935907949792149434915223609064215499968519448865266814028756703498520881322574755203435069105076286835967151194331576850285748340636467283043617253207574451520786530940031528838719441268091775016172747709729250864995603390020035444692965243859262245537191802754145438903338589957612358530510975371060405453087377545367391047798373769881078420173256731296829552353913069605045679592476542515875808633779767238929669812124428071042938633548812389236749975372428793168705176700767262998368205824787177733187306113627010624022458781608292475047337337197905322755660468696732316993468852554296539937442296295911929675264968762419740111301410825297966574308180599809216559775549624957368977877223829671302198095891034283556552670924847493746105132640463131470981339762069590398172658740230787649575587451768836658342904252540101016947838493902024518083921320292314332098615088505924883754443143424530172517994428272006605109938973335263978184245655990440902233792515847407994269646849242518489653697970162406908300906603088835819009149421720929389576760557503535239586949545715352785684985814899541927674879337122230460272686720113597055323085472799202347188745637859835377925205414362148205395006880436477404730245481038200294088901966828858691833541580106972201342215224515147996479459394125723129424772323972668759198376779762508894652151956236012345827067405963336255497703371765726183353928148451796293822059902605245987773850128711603256429975329890759894122186732421612696032128011400783346290671390691250894539152121680244119994418670393452157823245948699996405989803170184778750736232915382644542575035191692243329750341475474524854661600781093267224325435925414845141421922162139525365726771198272967354161135143718406294367591798771208457641057836849383179330782940939279391061120003989306420271949294955847012889044651245423369656092777533042788906628462303993847106861662735272243240396878769265914218570016001914416903425892363449268906354185862085308716621745436115918417262528346638115084599891766008003913098656745770065549957627058756893854270140074725778346279402349991338368812318728683454637705998445237097013316830798047459571791598804718216303173470785460654717132455344359453185019495395794574811026464915475761355417112584722578899130666090493694695974866729219693241947854706495017241788558255678080042180009753407692127833797950149341633515654157118552023571932647974205405058272017673024298913047141164376485269435974651714989563391718424280296993283735454918379317581715723060715788793219976807185524226709874457593525630103160947988308114794053509601704853496769570285078353091201142363078193029386065082780132544238427713846705865933881898761808764835566643475635528642479045432319535049661890294186644564403266089522736174037395181758587304190514881779123179937188848714492977478344562629578168197405815782285227209787677544329459166404767754513767875071379172784308831863494437352096450386146624031724797155995471077960685461804061068404529270655674376450545754246516629211596787373965648404998233445030171015321633487958661932155198731974512657772118360229257756736864641232772824187269572710029986323963879476727296419969372763741549008025588821169757747282403285369456588445679581307129914789409010115752823307582902124101608339255480189062408437485175128900238968523859350010153486453379508379322276841443470523782539563090741715004752537569875666714491013773437340311966133276611013414523660998581747522361210905160753474031083521136590646278982070682075247086725207095190996296349912921965206931853524154128699498679850542639568946431867286715847043759532970424756968502424030917913064165336319429134907824454725233594053550095076198501421134701739292755446987581832179053606856087563879275254578855397287047001500993994494860777785181615993010642420974760028707400537136716884129094821837437854122329963726348736340497452984856399534125703985915481436859024145067939986117411839330332910470060115676807871144769241230077349028028683062011324499631766892690069171621621428498678009706392795035593051880619806270250907736361466066173172924749187059983627756708972781327637615008277502666396730302733634813576423556732147866653429199173970707460343712422485092512582563202763348601537047791994210992952082061299131554020201232774355899872620435703157938201515657798267261597479862142019822251150449557719098950174983807668879158452839420210160462198892799150627843876771261557910850539296591032954540436841188975622057207811543290160183167324309192183843776514916258324343526358703190762153921293891380733283354850350386092936642021429802955845488615837469033371555761695370852526913821939157786702579746527461046508062845003847441439508795195058553187979067417236111968713762103165949061272535243429710929623002543045339861006735428191714938229524154111252351863123712515081633061581673746530156663396166067716942006203938108096836307006498511991046909320928519770374568164387339234779337334989984682045842424295891312214512224093190039926293106901470674157263697916851138116263784558146363246980645862370671304590791743884928155675569784974490727659990879043045211674670704269726600407154263031768724180381084768593338112219220071982362370831163222950088333398403537753141433799558401375841677143442092257822324854255327673967381066789878735904008316179455876640311724712448629401899285171558506040891142480157242507636696119456227094314218885075339992007403299586371496126114773577052385561722503300599085368792937159276634901047516310021867498709326080147803867396988107535923961706923889179090167212079214485390606972764915569093441583640759640633463082348449282039276761355431850651823737417271898234802022283753552344364041514523580746195508590237387266532320440665572544011372431464591678812324817457276315786150085779724811775051508633984815221238567789042782848231495303396713776179582572984336490832374423163888852950211511280878386322111737645446248075506071816045411785261485001261501948584908892085221846024164828078246358529338215753775316520236818750885852420315833843339279299663499169296299040182490351044428605615725963651395214315233924930158569922158896723560469824611612094817324958334367837478378761533705262880789065419305502826316446416182236086659654120836272281922184708993033315983910692021507684501186416254564876017169392570789584977148974690919913955670537618525439522131340603783811932244483297748440508908031220913799727895259838652821267799592823881981537653594860663696780699382365120462550278008640801596117226211825308105964429233811426373575619815634922661804947033315897710479560306679291232417597648597180952181936134456660581399732556854921779405299515287027739128914933756858319130988913435839009642459302143810418751681518542727844753017776255383993641364175653348437722322976954767835109032676931985727986827605988339847683265758330679591249655021618413912926889892767638730815383736052797437268317581944831322742923619204554313447207251339826110025631974143711896848816616282134692081566856335386280261514387812208952352885689392333454434681055798098233794311186781304275225837464160088059671394389077758313756303018949538931103439752581302697933998149442536355445853975634630623373044773120027714006893780071592849851696800070876667521746926928927062179227891950426988464166503329783049386945236515790045578257466091389208082813509914485041370161392549718174260555122638432475295029136614753156892495997393392575417199811688871739134097980174897348088469334094988522148127658576471174143684037494149484560189841540987272964814157535443214545327635679191723686960504844543042138705747522028478772046117925301011616947549101676075063849949809072847646225991437856897436336140336367141829540555566099208738634733073189017518016077274386789470845440746150656734356772193088300154260620080366625269806431348835766919337287362146395208120102284852768239040456226499511796111264216581228551434992940909674130054397118164976049226094537577582708352569408156457338953072214854609289982073479232346389038881606655851066450890642885713421847224165457413750992942341771949518389465461625907355710346933950360758995897804739304928475586199869855251131152782942150377851622946694933909567179235717898869449855142345893959699343980318334207787765566648540627455874081689330739535371758842664985487074100750959219056222642021192212495615237742902709964162002229197434652681941010211154333409551841031229792670613654416891284348114309334303704775361051712107250053700068990431669617746947948779479663373812983395087414438115494467153124493174238212001775758023559252992495918771595975470314517756560745087150941578110226857773601044177444121508186419709378071998854053628526758753953941588082696619729779702823797706865790882681716552883173318270361848295178671993415885376162672272527568976942025156469895150014445439251349573483643811620303927003403143339708638479276279378592812110683712121452683963317855905319596928967053613870225412375053222202782096182703209790407320428629929557917811986948597809656312633013983501700433424622632649789616643029619671554951534567993275507627044694172134001905861201540878496092686826368707469702199850672592126605897097372995485236264078638964239919176130554658436132048742731845789809696805457266713579201157061747122560984179344805439581275446469324885871672746165769388071697536605126234751344694201699091570322512768992959073065161224143898593777754541623014071698156323006523670864267307153497082658254107194874643283186848699112780489876556107174859900789902780310448331521280918367186660127291661056381578492416855768350423712542805614750001982700392101577248173335049145774339364946128925781212529725904871882992323072898478833130689817631574333090504873036564067988390936365687556249998019837491796181922457175196986998598882757144472262977996282420333177104277929887443085280747030738949568793354821186321870166835432286776739996909105731660599814567473321357590132130698131209424001254677011005393694809469726542091963213258609695329997787214199894405487552739653031319094757948635191682460069727733926817837134792096046928740525662922671061421335244830419109854189803751217159877406100467002034798783467160548070731673512389341243971674744667680979888345449160736778419525158908041368413427182273371566400537909614585533497072746563471258421764484959398355668319699590564970992820161150568118960011142388344669866041839346793747846398649054043871674120958742082751554563008817143808122953001938373276039907465422652751339311611973869236438690257976103132012132804335729907963616238419659947825745878274947682064210911891400650563197473717817890919149368830212772146956168977405611196034825656587567243303467663219019622305707688297228553863535228475396282595332260509292856825971457224228894946177638453692211151967939414243232978733137325154229019037182669582806984076536285430715082796718509493290511969093383731867426876376817199722827018456095988450521692698817403610460736017653974742731053310466570487488355099410859603583335827338269051657544821355157090362950744276182606273128780080178711171348078070559691621596433698275891601431108452569980319065434480713089350847789500800027275144132611921621218466583699216330142121898868568152546889045230538393799393980115227263228123192849864656706165606368846728773404099352815825167657995619937143839270474506950655382329907746971228084279181973083077548812352317384603313960171516553402586313161681655517624536240992319240350899351528082770657512610258761962529521501428004577221834306207533265702760141396779440730382199121416432295730227902642233460599528817827854119673023556728317085486861531363579591165641992456115232090160411382497535031600223950504669024277364278427537090972408816375859736501507800502734525497918980081962341593092978657277923983649774909726918813222509195535127874913733551919457823032738805539438497107172352753378944238476139153329226740611105920788467961673670148315348278586569399805108857312021015263841558785420584434459591853930505648464031895288398099739259822681789049225737549448874593458484060548174262061785204394885719752754463295952046754040438637225121981806725876574221383325748856988820601237341070264724321637814926560535156065381171758050547349407829720876613140158212623286729169219058891444218516341576229727058715290363429888137718637645452635863708226534119308295847304534208812504090702947682615796896440037828285670305922386925316450607096404184443007368746854133460392210080500352759532441115101128025473833219037346286873635759376614034166723256056628047624509175109023948744137738297001281478928390605746916043808287696209031687286769132144935967090457806411579746932103366822155842130709273946639953683526541318041884257886255473277371083572890360374813664786629656023550696504525867365395821760078926256492397047830917171084657861010456967731987664815035928110977453052707765795415013342031594308170361687206731450592730337231747077877327686456831617716347449733252784484949214026115639776332123040425340797053373929840263261178403436874928672750190860902005827519292224086567836094735516615846830598250269954643641589445948570283134581005232487716699540665899388883779300795689206433694388022296648030875641003050767221369147590282504299808300682028662950778326782154392068622781706213540505912929380200392334765603825963721670979452484601986169601269312890319478918768542615578321051735786496893558217780700252888884167099864471060474778216740716144848608842472513708474419129365000833432381668091753380454443169840446366764704407236892857161148623029430311130695031109234986805548732983921098213045384443795231395090792540545349360840448894356294511296586528755681480857920914649813139394561978310822968634862800735882963234316583897806470493762199607675833243768701151545989407648772207939646123286435099817726542105111080510213041436322825839864995298221499739466989528447188336457925067714752850342001306123843993321512141884408728615286899719670613916467687869151036923395875166660112746046178134974209183793562080404494627867433538497483163291171137024093530248595084158315940480696505720356021105032281385504337047117368141499928857179490109827418432426251197872124897752332066726406124256315497971694246940555127430587220235531590910119044940857884163294108860180941960528188199837282832866242591032839643459489500089817662190517731535217197896699749075490260487641027732849742693543213343214633359933738794338732803186745581580209091479805392674875825761818579565317227580853721940174117340174535701087040543560418358093326520017357664430662851325025543789834785721760826957584806476374905092357410136053851958173949426894555610244834868628981207130174135954896746507904842602119791753408544671596776728083801600934022010855718357444713054208650057151728917571682010926594170810204573791212688819092833108399567763982075122976972707057614352889641385723395034766352366631742435894956616518229783833513120658512827829918146371394656872790041350676107536883308338483397544263977519854435244541206448293320936014521683297627444045699046222847732114201013887522141635075439375486648554690819087705933852687209515457694271744838095005132968929724994214459736721060545652327936363563509910986787884203843258424882260635531420598977648368163728092890057590298145566491217314943197019057861880646128320707168549010882647478440783220088342025079630809347743049358495723823132644487189888172531901528254271590999552752792106843475376558687450242876717447574656496959883749115929945219872412198612919479692234830777461464690502550706797350246994000402410958771051896455353621446081532783783926287987525255541293553868338047715706390080073706771421438130475178852617884036443643762969111012466733146812397351178116882015725791208780289411182471658599072468692314625588494797021073253484522088097595236128103985288951424211094066150179545964863262176009424483905428886828681511587289870196777770258501411909026809432733525387871444120867148150847320704997024228258467298594433140534606773034708865667562693878022438544514581316661712356155185486520884489145120657929196908717658547199420503121633789792759251545572055130715052285664013159415642838489950090315439077484221185583742077604535526513497833630488571148943635855247091071230890441526779267450362329519436038288021563289565835710641797771053900672923153105893824517438505662346075784361504737432137303461124747770561637002414340478809228625394697014625110955576260962014865256883244285015461343075927906028330703919025294437660378189877196219100902829091747381145523534396108584352964927472552607260238596735946713865260557223218705723766599891911480086560455345117731399991076529073262893394801820524366561626196867388455886387101738838454109958594888310257985426678240749917035274752918516343189362531805105637383850847483193497126254452984948490708418814117108089917893496849612377568949869369144948057842799308563802246123460953096097456513087985340174187359745228393947727339038923196816008367441493205541231330865696566964646785422481432381266062095468779999212323427927655525646331255810514024378072819592138914934389491404567682279588121963885503679778707943944030080459678423495027016637976305850764074365001704875157766482780192350967479885985575500744255199250344847429240679934820625992638486550434484469759451472288588314196747094101263371237373801451064149789214653561832479145243855913720175807503386358544464859912371680459795896068368682967588324204069792212527736719531020897609628037114242517312517721077190690140963760596606550113374153037530980987114091843148955472964468910260514884467353373913952603207291678218397689736162765644418818736148239456322300790569671949828946171867261256416216604589954582135901809008889956423011519627260700796550174028760318557858103989956737061481774865882365523258474256933679811314896923229903846691944892883044671488947780354234481108223756821988954015462172256565100516575778756758573102911811041244260453134041183721145741642705485170293706259492236871319472405493939668345571738504685009352272638797437454705576273220875289288988061260162032362239660163502165250934455636371658147840700916265869629704919684539312726464110148744015194129946995711454641012073240615525866446161869963504374112734959267712478847046042385031550676664706343856367514379105871446606526640999467949320070645204671618675639110078326263259201296603680137189096191053479477503657336962349516278545373153069260547137165398672938246397939046524836550090002477573826213911421069346045678129015380151332982957464976684145935679568227977857207009000774912227867687951374433179224076042512325595180079357390374900868596323577545400788433785645285013070147766439764872745069445861745895663524737105378330198938628893416656564637110877655987965237180722832559225604195146372334806273776306887164741772218606405963366201252058750012660436243148133864702601310099858793296889554913513500237262376968695014827173708928145724770894184105654508464632096703906385741057601648070149014760711725556739300676657159920247610167478891469466491928260404697659489440161894507166793529657727506538852235102729808677664962697238333210823411494555321054212037304868831205966848941634704925788747927159604771899209366746756236608490196295700504691971427374571070355051728805494196155156614098720747079241966591454340571168697393429436966404353661730548494480200496621616902820407492744352445744943371120974031893077429003167567049666502822163790428676831913962811265444528393102287193467754827771763440415128092523022459918558143127233570875906026855931177365185563005662193262622459092334867236886118289205749845018803304815973228006783474206492465960590323837885913434952247355395602774707860154808798283538282090451415352852878262664491266070234303927648438195734748908361606428550448342284675496421545276990858527755618335427457279337546926170624445261640166893560589945863818340871589438906675943341594362566377039045234285681112145711588589920841791584165859455255793393682325634628025404039231696939886623634340710168529474968629616648241243243872678577926432185864675728221043296896900099737669697895976026303987866494537002298779832316808208797447330698392608875284133727482362176315255679350370912681438791255761492879337619655644806903180134484404886720345932580653127888053848227629879562622664783351462071664671606706447387366270610051640797194984948456537375019949422198660607418271562605870796167362863760971023286674100816619440302231742623748642201452224223321268195329980167730900254526700476189503300264303594468890424541826131067014405543076764687505842727604871261855706721196390012485898659040730696021013356632337643000668870155893113156940214098640157150952094111686481004488093155708130869495475215080040183148908861517448402130706320787251584316588487822207802019175090269169030739739742104616579365395343906219869370701710938205861618932284477097995479880385684087900269751756940804798504306046348822401883625745850347448048268899976487194912136324699000094342446111427767068257808026241707620677284177968543686737031513720257473393359886109686487880728858528235638535528372849213752383783269381473293668211084031428166371909297790715479088153614754031664624758332873038788935950419381745989061685388681958454228648663770694387638649675643188414353221108397055070674217960112728128412035309313603982580886403625866539718584267402388752058449565827744505580533190202010354038321046076064748285712157314273173358554284322875280255363235708252964774275122150102913909370851157328993543403531140418987470861411867716928236100599308752087165704279123562876460421981263905810972607160795415552588779476266578210796449493956529693057012815806097669630275960091185218135179779435910086912310496656903470123492561620704334442345856434710555717850674981003731116276606901719450712207406096990296680153963807406547833404584848180909796059882635024381058487656031752045121660927641922042829037475928040422412764071513342165089206367572749643502685941256281657181109569976597206663620671045141901268579301341609303098569614157840757663090769964853431403377019635837912879437470944340639920521022553623367321377948275736758682310335152699067258520228001609586909477175407905716899474605515149119244693918870697416158793444749064383914614582461215814423234369334224360948491672836521972500751736426346132346847814321324491629968850323955391887547078243454468987157561934317095658610826633130312381348453432559651514662134174934254530513324497152543446071530815486067705427298555033785419119586470900159933605935435754652781535718550742652012567699657703549577911876453102319680658356339650595609979077117985398544168815909652934643693890181952887523705444712435841129113622993693857637726425357041884251080480433503373690658950470686353329968885050836564478709948445230359711035366028244585695232394511924565915443830485344938456447220411508742070580078654158997283790179191353615626265452469461344598706513406886920603135594558984312824796071018717402918154589408802644697599517641209086414414756237172636482228682828560026842372285257439601341628335355032286293053578692915080672491548631517696966093231165144385632460574628841351330380127657646860187826505077170120404860398787912674728244495933938196631596179048046182046887331131544648224517489558479829676707670299608843628275608574920579779207933702241583242455936770806998612217680876156283017435857678993429267552247339352677227293757635647923755516376327006626693577479057817812232977901794513035434979416788605598397287297488811981645581203811394226418646434385858281015270827038477964803113812277033970210038733847675494526175182509215249572255206391992386702960271908824106953915494448015868687447949668197621168283968058247541358689300133290593936454193114010716451678888356138620748287632205202048621868002520557769023773028549565855648780845717614618834554889694509595968400030039457556169779494916843800493574000125714275204154421502974926322452598322779109652023706712255872155438622584100810136061991333736802015297217526441129361458683554484652221943324784260207677391208306309057832317541081589568133033619549806873585205925458015063533994885397969992519463165256661576634730694544356386203060262609618802111120563737936199067177519579223670926688392905277159972846114086186307115772750623441147867721006648985438254422192814305779009984271958195275825495807991025327204145628348025544310689431650720216463206704279370373847448754444655787083880443293699334135656890026119926543705405767552082192072193172455677768762149946277558853482694044873292757151623789586263240555122065256675777383060672361577863459488608216158763440592324436539204180531764948713374469917653159264246140407812163331355222844565479484874192596941119017162714446926429824593103100453390618079438324839339119798569577929500434240765068852540580724272547924542097471507171228208140009250794588912381004255936303910561570528478694195834590554040984160822344135962802342670463892999794014044500911066311767349590013700367062151676867747562113713105144441688916765707936791613811039104317613044866686586868127368682343295586865119157824074006441755357761829439051741259548646540600707688946422943445843838407563471509939594429015578745215599911587709367613297205357668202904829313354746626727279912437631208388663822745059523195147322341256076805531188035647543744981960645398025676860400621481078365176148968514978912372418884612554615431131094792640163890861244449343096237246763148607592783195416199722508732171042034628878584703385539797801602969038737264750263080546123334353268117086527855753561628064848767879011425759846309988918729158493463615958769653421293301458020492766471382288777531732595385800871362898357122040792870926749288699129548976943046493471650431428122579750510677829502186520488199243514064566629584024465151090527227442443711403051816744589585528945886012368518949477834675525667486166048117452305069261630717732256872954836400131052959897834158387993691742326067997754326563648861487630504086704809071748427858368416725581609459789490897800429454664532612727083195393633865075181194370364434844953544775592959718422656423313018461922037700650264254526917162078109208193083024572224858832815644668229049678047275808000586404984818294066529635468578431528662029698265953934045243566948569397152628345113361831880241183285217513467315137483941378247754918711043411737654006384314425368506450413921589800323163641868703711499267113888050205455068956045045853887980576646494733042440757276760309378939300724360330917345035162200167390339626526954843468232222560473313490158605413311024079827014448157451159156166686053629240984307461682071860945831236554471297970540356976098957088274069423441072893533767544035336119291652696042712205684762891307697969291816690893703043357554760463790439934537786071516921170173147450943697198796492642333365642569701646126882317771663997577218234701616758373961590763135473306680215560410350435966875669470162038575722304607468629680252012054415270989676131692445905512590309465390468894773169284101079347956198313237157393285352429449787814838923187149722286551125346706180804173605601618334234650086211704070591193223123984608809602272557697473324115805831378932542188142390272795156178291412174652714341560876478039245038700328779808384691859038050025846388061329919208013686982391519158992753815651113717478852188335634353181478046423469716529710328998919620950923406057356275271359284117242186881737837662257390337310719459297202618170740786703914396603407187883072681901305146828693636999524777107644045667758158915105094563478761034470447844251947512454260396086019363625592797673806309234609291708098494245102237103977208195894049073028405918959860157178787984979851822239360768727099585820950637886129040848735289195196505872092950326253227446192385457190100739130190155187676388321279673840046367820599474106299424230571988716559135743977668660020685124355751122116221368381204060906407008731033402119640463542043879620695540034526771669742057642087189705305699821761412213552384085940475725262626992791048452565668958059921551580034114485607058511106129065182303630281515442266286730756434712174363985999292395097036836896439180522009975977476333595678268525508375342667359840518323586883179158892836344469370751579854506135317814493336386884282220224275913291566600376060300688760254954087476629192440578237985529175122753155769717825071571383417954148427067324004750422869414585407982952452503142730189063993006772984000721511835119168673809900542032069410708698141623428624306947414124330979973932307861009179313857710347175139073226470208308847841119391554585126213453856319265397477730194930580785063676392599745716461731901765408196654317556507496316845336139578224289055362942153366980815772723328057812813107651316888619122551525524072938863707654957008152178927219967751401039207309541329658380505270731399591623409628301231877023721575168096886045582137678461877344094708059186854988997208308468608095737995937986739993986679441516143076152479108910103255123842060196422468855226245593849172309413713691416301798937550786464912765937666522694135804980201188078531119791911591244924578335606313808242761327470456369620831492035402390967501872333809677388059763637383969994936286259400435511205398835299271042619882157801536181998651802768110542955218203462670178725327470227053340070967339444471563138390855459290799767040051206711731422342038266814441277962888870858218827519432733023475002358935952959497770458982515434125839354003971972864864415477103848862274555673624476753410737032502747048655477165800957206859893413914073737564377865000071398432498892319876912390774521335903507996026430193326228485514678841272801908068111067768205101178992021268523654429922430646179544938548922048847990884295872052799918548243864358959122735204678299515149279411944124542042018198054653186256104849172268867395133836023477341594728062818380751035557440414464404805783924089911041076582723112368690041140637157120900327345954491464060574645012116149723427385598518956081991965374195188331939830259096535385670879483537963307471173376792546763931572599589572045565697199308125462585776612840397961224829870995892364832435187218737380934745661140429489166954960162213875787331665104038014856223748915579759780284873905104713231515404825540421135581679619862696920415828332489904199303131202182537498494918447730665927079361260439251414352430978826978694620222021467537086866964511683165336236512465939930784439943149405888800833116552584267649552375885491989965908816290038033967390211251364296374717872215855847661391250987622391852112136085136788655141698285201488987569166412796553393993105127251494302677248718386585166555583059098320816441584446390363660124253165159665963323998459863170894165452943199707891846247866989340079989815508190878743836056064555104297706269465123035548347921203119199994255156994538334814622664516814325059508916563044779594851953240412547717248206133632126210947662161276468233790485074865125006165710189971061734222906538143353031280878815103396156072814848560746931435147823864109872240264033009140673768493357133998013709917333603071597594504140866522338206271530254703167472482834343094761223576194128065404160681932309079427055252000933333387154117169893026368323867963380235113014533263511117199584297511287878015485011359401832526316143650575247563068800816270875632108784570589120060608080140905698901253231400210248159456522625333006301164178229432569304427522420006005946570788122965401852468395564599083879008595051421508243403410953638713707327978137466732271481008596879025968595183110620307548568392253023143029417290757305612925133284101207031704382035465280563158632035054227809942247082747522782257424294050834354647048892522687518190008041000364951588245667968584815470872054119687709499798957133410825514088732566386873421890396371606281122393139903978438999203259246482877392623569741942439892144565119129772035607842051518779538345741544437652713948580834139213687966928101482151916704882881006070526658621167723188463847786295944467989898821899606286118856458407703198671954634506459615073238373145828833219203170354907051193230353669220325125571471739542833275702948239406516862281839081478747646132730574467558183970074301461824034760539500043252009089002048872393050756363993561358048075434023048917435102650096855500572775325040094225764642223069171737014715105695054858460526571418338738308151970249960414053464582572959401397115844723234494333014660122706703380882254696196221139208673734289482808507325753240874732658815627448030104522802307050480209441167051205169725063228933952795120101079507179531413060962803419160038628245449685430774111074010964403470164890188805398114277337496646873807081230940789394781748310980427166758494609476175367062058532981518017038137685335839205038301607948618481806295312857210526045691793558256342536667658601749898167411435018734428340902788021901782828270956398857758186458112492061329259385230462746220134033120752602238389552186511949765703434783860645561230251049405387992277081092778066559309742069185994921006327754264810441781470659441942703937844312180138747238950265966221919509115813778464101522301816929203340418470811796525683212895915739790778891433483308108864537676340483438412035417745475757110815170084718468255705598837871799560722433256475220204203175445149377937694170935318902488738931518857714072814200803194698590195721246006092903773526191671195358017487995468481848355740008234549937859866744009554401699425091070130355101537156578948184263608210112935701609191641388880464064469555114038655900393091875129380421394748003997348566622259477141503010299313921037317474165025252697115910318573739406671749332975532070429361188245477297637639441033831431325634276217970022760674690543035827245940369062060255398561234732260671050365534864521519010288714337844545305209757172535210637519514201640346948801657812831865433403537430704313816234403989601077297491235098712923700968357957824455818099586906656176085298428735479929254657535499631610848223837684575026438848875454209242515053979415405179106389843583349398182185308236294421101799608144384832638719195812627891716807658406768636564667131945220782473585487642636121596106455412578353767232178742596777765876440001471831803317290746102794277323575471511928858524194778315636822376024954467167420682898257952172493588397644327825799223933102508852250477522768071125794603116023406054221153113797463785691364871715992897151833456038825189321095979839857636673183342719403250161802940985269903920199854980924298213041295381431767086764153234922865221382965079184903515571359211030549341748118282816346362177558887982740065029635868261902900156166993430658872797938503536183486110964841496631741506953726890694673947505835026510737026186348758416063600689829139560931635625504937228394830452122672179209462323957367820876084222642799536916488321659101964083344549859410739479492404377082440528337660075096065361371934660201430657166294481853543586949990416123850248383420703838951975540547213605582206822548097205901550299582719942821765711125565895299424585402609603656007397412915033198596172829748994067138852597285088315166241012020164123744141263245430456745546485292591178917036088360588181498089669657003700529905218536788028985222117073639681119320689542771008528028415900889313601603965577213038178709555723230953215022277768650582330747301186219990356706202174117653502061137483924099327047288339873443462081021483380904887793161257071128347880644252944888782822619633947839464686036400430323719267526842091815167887090202019859521587489687226026419724906228727169334978127499336799892271583363134202805141544786490382779360149268420377474939749188600579250547076618577133019958993313057886127278829632924470457068293045109709583881658905235287480973534686861274676897385842659101710380365380242088676310076067277939630410692141374928887398860186059397534986891252813163889687578417894331668653950399869640207660438053185281737685727353097636613554465377584254471860462139775845955591518008775564788404648571400448731299542277664020217039445571296892520795020889631448742784118124215673531430804200256764203559642355604810677389777051684837208511382760623656969825735549518264202702305231948261456819134399752266658214786345747692092757788294706667052894347791261713067493320609586589157921433018243301097966175380863606979839827835166777763014999332867510380236460390244844441995372936282282243390523413227020490185169194543410122544701723477873663128072304473887750416935778702297159689263262196325152836807728320478482488851261586725034923035349644329162597343135881745031276277388395938656976249821339517223872019451929583684097570828662187147353486887110891005321088563831884932522508821384998220058257094267308220121469834958867769901579010834251470875255037834792662268336246303551455746632186565853796125523510933852484114826023463697879577968299716084378879949382392327796238543909805008963225725991982887944155192265979476053803384506069048062481425340819581346297318151653861337491829724266847423371190087115590802183859728456609887116257580841059820437753572880754406716048139926676698826927127889264551423299663616871109034291310772338820481164411129209096487079405887997403073575867475688688045031645916018334372772661940698454666153486172969145236580343840216801320924523057047672299282421353940930530407237258829168587582240030656351504972007428864634272141983236541112175863398424037474223372208173571275216766032487911220109313800203449503394783234588148915822974519595943873556909151506590929509278771197032068730005307536058578114958648319960737263861674914745106440660227437796576051435893672035093692556647676382498788626301034536164124438116915614601735475411496549373362234233968058571188271958658625446876770714848096916357018664378714460856711727259002135711653638430042146529089213089797244893673576335184993850503955316419851213754172796493636046268906956741931670381114055315423027951027270725087025585770013472517541008313173346537053864711784658755131347241644804080629376155852236090142371247481783684993107320297021234717917393221472237063661377565640687903096292239953951603987454492345143628571712545700943467726215577789927248778177048561731161797786940157733313155141916147310961057953986557596770845783760086522709769660950153278368767801996778316677041988133141196736204135556478285388804822320665528562565892984161009255498869622432695609413586827656134161018623537459020942193389325479621776980416239199187429179335087060226802811155269049262973721393653006198823619661807015663399430681228640098308737006150219346015479410616310598445280341186217367972863809988413568900186820460961041776846494097138149045528838570584469534268631908246931817471654977951651330097771710060794814085646450147871219303615026616897604795244672716707543969454232453217968897121373896403754682314313570892343326338561927635133081987357094170170712413728637123163014780753380852606894369697142810455745355682418912180915261998964261041149455185043826294562768191146427692943001568989058209590416925331489021486814028651344434224981949922585012688954073994883588649764369879403309790843860762134099993579550342523008341835202894938000906461890852132742183301890689334527871806617332763868998029413969771959267652096500705987436917238898337734350655802443279518449679903248455650332486060886588716656245133358556253271566497000166900854636244930778245478594573694467130289075436925825747130775768182667985772121894543382176703514949151694049091900535238245956750713198826549969751153048556416110678154809974937814811341237083165455775329261306002032399278845990879746660017859559209189304503914495678392550400282652423917605103639192593137569750664767461413593518068914046209648016391197940771519444641445517967328005435581738077998771830849810778234416466683795671638842709066886521969745010587018965512221607845200391765096258938627708670998207098067232499042479579586116695050799192937490072015636995909172658268584717726250094630466810900743163990917723381126235769027415357145669942581593265801385835361460792993997477545687612848135483334857791584610211792294849988441804113099816202515815976550376731811141579242194177019055820890166165229238491304913901911854984769756791555795293802767011454167933404722219472961260498713734644537443925341411644325596794652061658978323781503370588720267483632843072509433246062759445783930788081914857040320139288825330351868464686350145594148548579681093214148998807489249513178118998809441031647091915283204496613580502694386832561222821581686365170676878879570235255927415615088494988088233776922850756407814257941477012503978505436943146970891928787731347807489163871881296316344392698288766987756963308227037126443948830339944126068994814880454940279308367551160980919597101860187556406537943758882615132159978549531183978932888789743624144936959144609440592713743189812013123038228678584744461880606333594873319948519190481394497583475607904468939753862401974500637624895643587475380426992379910479923986123934311706536201680523639092587545317561132062277612791580444917857876921925440674693938949189482183270952671182461159392508149123609500911171045683792565474477665958694839987348055909669105603926852890348038896522528806195787220813442177769911805315742520828235160156522407800690966189942225723915833715896901039997539018072191706939651426178516921621832852651595642436345746489565745452593154317954905789469181076409089765411366145815745829025880797198099824068451731608392232298320517625492588826029856103269755279374166758472323633788840628842729243626867308261062188084156142674811409501147568131909107809113711021102396340510313385981567021312923823672530387486078352889626017354002306550110719325320473219870055502760665942835208818008698937064877690446254130333489580875486290619042555256968842406615046873141642128501313373820779021610374461063166176821696102441780020562111030259695492046681819746827431265990226241469498059071844441516741681174082295572937759632196659696104324439665493963091324201125142822885495877216640787493664913368327647047190844678682347296948904001940826664656495898665110689488384986173317622713973995319650345910426072512542780967401264071472032968311947390989650082528177302063341152878814254341892338397653322757835162090524376176105153676475990884391178076585071599598317399243960122692497950482214065436334128756486286503292320366592392133082906990654504104967416489899324245898782354380670176377666321659252855431198913846353753342816141883525031760153614795702561907120291879985261906717315674143508079040319051642321471534907301756401724766854781123219141268309162714928881859379383901242390938946957007896728915843070115273859088654005398200450175593349111219515436365326983170029893699730177762377704482826178038542061289283564848445403298177852263579281708700093681951733271073187338829649952812166366414196575366420844623489840707331669965938631554182559864437516732202352079674824310866448977690367751028349537720492397362949231756327441298466299041073734017585828908976821617932400473954201911389722305723108313179489271465597659737650255757130139741943439456161678602060123318606816653655941495093746357162763471494718656934518701448201069521454052382986398630465719533799320690154750497331301860240955421193815310273609110437980277076886758349699265409638307683642263759535970882080610283601654391589752300689292442030981284802981180799805563968792357557907260789410271378809799963046189398873798737689389035506315799732050026523820082972351957995657668268426409991620378349038534245433151967664714753295797125994408952521170659473643374589709865998022289420455155563153134398742548271737759705855732023938329874472834865619672465255924654489972978324094457241281577571729137709846566301024286438091150327440587603876523701640511864628150494065227286006195338383722707410756791513274422650022035748394902580204106249916096613283999549238181571107257754418040455419445686810394812761420352388102879094770586099350011009721484591582408700261264159794550571838186121005038679098100637080315414187856537994867287880017419788516092417507721560478597915467284671717576753057415279846585949164805155577365272462138859359697658586187760642041270339587413831197213152315695340093209477718416637687427913061557294157153139763054339304017734519733568133288465693879541281673547744510561425756803953052710294172729124358168801437760717018160439027031868429528678655111296690100970590843804571521312721030056782804727499757925869308784918850530658269428156404355089852159253779914180943625717509405307192227532294076066582205179583363434021344094055044635038099468018523560126797455030536503316764026745485954061637213546445936557335006694152007060285967911143182941935576065654204494770368420764498222951638657768057604787357872867851020323031129024103599863550622203905538360522002396181209913958689232318964188771212777750522009866632486089224691295434057201573047595667999359040785332007555568362266957266127533994006176734727947953461466629051696329277409854566232321858956271427802670062511078205934608458630142118744804668565065289094523617600050669967820435672201975147484234298466210526954555655614293466313717411304966509083287758556433896854552219130057230731110916056919050768933603569433020320571250756736319690334965139937264752529770423290462611292250101581200901280734809775732965168924816152583676007360360755941886577865526750433260060184987583426638266923709682918582292990919498902417928511414218917275948907613988616761248053194445899398895843868714626507851858952235575242625848882324439225699387098282264926052652992870145814064155618656813698131698113493629859191034250297859291008544740086705580545490032546727406468226888219372846260492166316019520882730713074996987101014675800770531499884946115053263604036402178038148867196371074316859005042053933642724058137604474695371115522135287786839643359412686084558339824205025100840004263579536000360322126706270372395665220204424552655887499504203153675890293958621790415929914639308269230750743351260259981096579420370744376351467507674389108658896247998635791087715568230376513275942455242577674721254202609499445108649356734203324576589502262352925268532277720605382963088229653230410628166900846515223493497605671869502706015673073283108945769283743345964165795593696807178831361194059722551351990732410649025126276399712917646506249727335836717701229544385433781117834439841799633759855483418966692814885139762913978811875025173111370398453830388619094033472587625100686032442988282167451234501332434514376300273306248257508918901486581006652332315274781141708769001591308073178841388106079349245190515474834682907090632754694797698485155833547308013720904671639016411993743468873930526114287521025272045808472991910633074283807978226536843038694481156358848997832300701094837697963448929158787092258878911932187213588197730335368572213209031481125897896950506604442869358225352238886793600599512674204912339457696944743955662101373536343829887623883493064211658363245271496092019451420230321905348729611623179110993848871595760955909982796608615779920561850195194840940548591966845392334261960368919818893558917098505548493592687639127351933085153717927154172040981448319351543307775701740359053556363116671114235443324891191255941183047263332204800543635388451891564318909756794178116934257947921285085653501827480018395208881687077178676547220956411003276078917959868364342549947799755664141561631968529777890247748009061193601779244795070492630957280007656350352086447898260100799689767949291802480886777631057847157483909981860347155419730090723991059186460266081959022100745443463947020684167693084016705437977282848119127309507212736936884252831911303248179138623721655592528042674042504728994204382069922258725398120676610080894480737751300178680626444693431025211633404581302671846970609419321166846780095897114235705513414141335373500990948956840665924846757311495275300217402893991788039394490054291391373254951424815614374447707443576070394301788590014503975616656738887039226392254732062813377487397592888121327461102614712878645383887714686237194240084134366389963078292721744636799355242434942612927795428282485582768333060334599499995082069011427765182130757531237103755713095623634376421263561359104268656679151762422711258479501743473790597311495494013880205941305881254968884449518460344575823976699405428369815730004885950029842644064816401738784315314163009127934408528217156254201564916636040653109119035901405800709882618554762225521096612755497425478653666162177517427830088824234076188924442580319734174133266558549847767190980902644994937624803702615790612801649935425797258388203735306911095858371326096460968450302913100226421238360241459002130364134210692197276752486820513309037011310383486203974398819469432787239615293783189376121207858423047168912391846036658340317442881211908476149104646785749178502618097277439836890530635760086590552953992031072809818072937747261133812304437257077255840400522205685596796541618639547543099973942350007987050880577099019246817693251225494309518458991168063023584336859836016882752398788306500057761039119456448459629971954990747051355771321328594767591497962250769776023750729619279595504706625956175887172898160485853021595160169697501686559589690389145665522534483093563328289494994487082979232813916614676057263396971572775685669356893237268779446568475490845331633668721775272329680692225088829138657723479247902659254231457439633108310065720243909760379947153215911267372397504620652067906498992481955931298566282838832558476812665225103645058996562202905718320279336062624791783901768371854707354063888146689629236733291778955277120466370127131422129025428996952844608620292925880287723186468136571131354278198505797795811862551375198720165193913042539564378102480276569094860571938251667649080412348176689395243516450248166790030095539568687471868666705681276005592121250695769351530162998997508320404033190386118193152114323391740864390805421914435259846878049958137504666746467432532061995610761371671571084615823164308575794874931827695767532405606791680359278995712488148911369781232482510396871405224524345517039927519960429575967676050539452847079145507166135027730465571971869851432192225123874701223196246504685974109696787657956917964221845131576785728926045222763415410427503669726978887194869284998335617683865693809633693659433214539133939657735174722835401962413226957192608529523214955880075753090532788160606365978071186109781254293760073433120098413595384836641204910001323434055756155770831207350944941795881617594765857373689301062086553929440320357139935658621424469220539222172160176002510514538268350975494490118302477806736732588405552099814118751237017099007494360274569138546636779732920219283886456629411123043374838788020451939447103865682503361913917785742818307191886462736216942020379951689834074529260023138030393471020128544011810305249753948969129677850251923905250250255271838509722300312271938834917095382855453806177087340704633800750286702621361152865889236070503145924376925793413715422237500806270112542698997600402466504558684726445816545727878382712335533609101705458703822914966843899270061502730755255483094881690227723317058997770523127115719073081874786062990431830170104375534831458912654943758563384599620432032276928927649297870749286299773642796374367454914125655936198430447562569385038296424399599891493882406189430967902960220786648331669234808035095614803870303546282047341410881964382839630321417504918520970080632227879852166488490647327526390925822655291861044015466076195956840455703200032014785717467644181966022408006330367000428901935126444719139958805083140765390180064970475609947865218936749843725202621379934198634643181901841667119357346161081058472933497207281401697910877511247634364026056130079227651029912440709781679235364019792892968778616884274540171701080493114189373368788708153584820142153959138004339746792322693227276902900530191036998420798324794106645896527627190715002597124646389316575793413899239402731610417875066061120219840157355047497509306339042792873771253269757703768020590765726281626229573090328100694134115479543972752130924832787202763450168837472149203447233662863659662410996396594268860574864686912585234548509416019598715232650603926600495313417198842499706847997878970417378898897240680994953356429490700461266638137328283223614521388233921274544331203804607806498819315902373993705333632989821047179962700809180559496611468232443785122305535503231063015159336913931513193942884469103567416104498583382796382309101341207984532831017585045588123373293625768466453765578518856545550370382272567105212443349084142643247616359161370040607558013451977062712233118599525225717775017783301760549648869764167219741920037878087571683601408185329260921875362594521208123086109989900987178990727864628577429014779298140508298903724645108860612305501945983092591515756056496194442664704317524358605228511473207277069432520610756611048671503855712325058868701408166577154724054415983238399234586316744419747176018092336241158083667817254902305763662238501565386622763243069007093783486938959617572978541384194119809416567983956742002843714147401397930504721803675193257036493635607959550891064728565358694451666549039485325339916351105912020484717827060128743976005096396270942713644521085792341328577705018094936052673037635677200276180825966529404416949771389216764255561068373901659251152599616793083084592777857822136775049973707119988180080559805243289173323431899391396985860504632533770571037029541604277170133949494799630880440825564767406783315530310502858992504042298508111689996306565970615137218060581076174584740639236837492702616431294927922589510494809468022222352204083316889011684926062537209681836508608647403327586645218647453473532357843509461390030086539878200424777812764010854877129078375127030426478592080426133154577360338223321100064453468282621589420018783554524900504306236292583504565474470301320681578038607570844166867429121858647197374471241058282771098723629444339675578415226723548857754843310965340039229710265595069852247916084872173123934577569095038801967814551295718904875850705463394135414433304519386359500358912302076555396325913646889605826256185029394346382474400784543659567209278311847875119925508641333546589061898696542065467368550978827910657012260793661172609374798618841832138785796891706960996017963282570235812427141629164841974008694527604962144420189255689851890332426431974436572657383489693890294949808490711478258988339859246872335891369673563936135550537539436866473835393491980636085033836388182130413039627698771413180256989289403010219178962776215774337055633415657839743102065907640738507010075758890552767664015446744226034132453352607655086331589483063337580226329274332087533531174829282778141467031775226907768859810169475336295591294934172890802118604547171144378875223069264310685321021777253751733751869573091405800050537129777958090552288702464950908553284009745094765986052445107827236695778476252245908598718530678954029754101736338826224521320673858485075687927106645940393851340423640958538085829024475269355061510112581276355332832977615921338867923083960049075470237581030413396120443908703505583117845133595514206896992148492977584388151593239775675794571532912813402779600285745704005591001063998491572278568870881194112900036122545997158220489983064090630623935090795298407857483012155141983038176646132365096126301327353102344196169651721086557104979769154744207483203022832484797366671097754926193597292928870068808031098451814700842131614330684995025286153644581264585048036029815470782081367128582726444616137637283484479684528874589622135302180518646039841342616567582359664514809347984012849221534179115517338999155274086626525264092015162544013527926308884362055757702713612383506308309443262980798630301734135681358944952180448582277192205240017799641501643008565376926482063367603631411204275055810278108191657089443704417403219728184109301116763136491610679189203408128386152747777703779169718559619645647042130998437241631942186045940802785621469569631442984085762842776618693700216423031641486749707277831117714730524664378647073091391728376309571879009849730422501762677263735683816901682875594359119662715096025731295258851747525963643154913910370755918925161492509426358981739611003600666729923432282581010678326087669162562012436603940516653589647450514167021962110423232654402991754333764038361184488163124685340224591701395785294144776333839732588731747061023999560721220804343530080491006781524540261915527646934308416676329099095862222854519784382961115460046780084178900126718337759980477316080902072067142430659892196267911413083727508043121665604004187505817249540788494266192412560252486384353563813972837596029701476103868251831416971207925565374925131748660521132994703823492463696264197651748893471031643298920639902243881019653221198078869094399705414352441094967266285174229811795778351108143059985145628483640945123869625938204363922541267974254860172105767770208765569910525288026003681525948231366326260328573212058527681689500937718199312063947493093233481450588331738014088693407144984874371742666423241874289239565485937273829176585961235094264664733590715256906783040721033052379333981736685810456258430276206727900121550669869951830964895410305201810692641336931674604056939458846476324127841987968179062487952094564403785294220788206138503867398097663121394998125368493887421878933494914836293823173388050624038261654659571484277367540160940720007187866565236064564848315329541344998192499380982605024945126433229566778694714878153502547179237146391386845989562214426390117983237132810224239469487076685995063600875801263590771165453149406204727955968002795150861256555702052873339285928100333321395781687370447306206353124156912024540406602886826687601672993114462867998424899304574719635644540267783927703840981990236052305336086874020009679086348959373719995459458056530930302730364956059615738299724793569707971992065619028026874062786659747893757786507161343379897432410123255534842461825515858588784484475102449708650791283129436351363743684979188050543049441583337011784976987058733686295257713293557799543340081148784165166586374715392691406041641118510757618300715563915072043073055592470044222458123282781373638193169771633197723635172172104996592127369426611311247336372497975462941458543314393262679410764572165991131152908845836312254652827302677451445964956649314478057605012088959976005864321985038250502547472178474023270115509254327336641450875748303679996190355317796423969552569277733794858925347298505905586360408579998304257627703356074049131832006468925701327744127589391943429979778684192673322177357388876374677409661692825201847367402417454895186212123191257645628447417637475828474173302495191818656189676630260371050296459096418788637808256263329840999899066939756287365453100810446762377329318599887993353528630467849602764367596070414415165235601446197695609193158080828208746240868508509401510203981509505520318788666916950350433217014053252737975192967116551472407596691704680909004532037123888865698408446433970156534110963745367684354011797428039265905624919609189098391847263141526558640530811932761408488028697892247499058591897888179616282829098380531624053707912536376678071667626220152743452701143139523636163992702117313608254594490533136383819287096945320262197855765067432745885039143211627418283722207034997626664857304718947815957431114228478340986077687894423678164102666555042965906854116275015279623234207540312462199706076702419619807879544752137260892867453965946047466540737840676416252822526555748392107178294677002190807756627265004846458352294870112405783173075337699880441392949075319644459330596715740776335658388090630844036500990778546520155034318027979154628398971890839123194306209359057267367202332726090528225554705584769795135744313851204636273948811185242280995904747430270444813936003119691286900588944620189392956030757847564392487745415767304547398748058932624977014653562648606752132755183563583716792379260697342691603559348683411817501562319390734743551164538583988352272602173220138803893887489352561530717694695706118399073708938801902525689594119804451695983603101860597759739922406527684219896905379317798546118652476946952332927295294105968617595105466844762827716977965343449876428423531569359880491922104026613463841188552116724407360404233757186638221921796424818248194438939531050823369656226254398893397194166239070134909167950653377156346513306538041374125270046465827417392992503782065611141105753096226592642432277540570737743062144313836719162423678710648333696560562544735392515684130333215564820007877581446782720739784677504220350484968890786391684269404038737893320497292586432294353495996435820391188820619419503132158218791418800361372354547771339230527475214772135762895493187871432604817086238409213131511006110168842529527424269442109540484931465307417726108052254347847048772513309743984614698543703032391163449064640614223806172641694985626767122509738585421464250466295606012770940354541042084313066151055209923022671924866125981302850192764028601792884421939493563079188679271821648733009834244287506057426556922764379534756731730105444766413632067805825665962887417542251851808083292427963666633087459693010132038210050071450327431737939178902717971014191756920060752098851897144258265442768877898543411104941956895419704035748811171470052816397256431336240105710405661141175094577782095332885370922550320308930419882299070407691463145204867604221261726153638438608242948506262348195147659122096683266557438356655509993333908042384368115265070062519166092744213050391665063621876026472675208080259329185579657541201597932897842087233160035987952392769263601675787588470181338669342191510808872002450200935815387992494210530720940147588936848875300258962421975318906374825031775901460755048102644464372023797835039511176009992896859942689755720179473569645945417600241966208512618448583127443482612696474300438891639327091657057468839546292759010640264869786221443910825459701045995374457097146316360643504871836584379945135728323555636722893471837454499819352084273189968493194458186355633603287323826228390781914967942010148446872810228613901303846081154462445054628612000913859260245855877233816127358069985417884552821622971367050153153906265746887233643391583454796192141147785808491660048267740197989125148200941230829884533785085229499389919347583376451090833518939272139973920089000096561704146755689753564297629434684165629747831434456142490158702039811310237502348643332893933058087837901882079379356790664291060250011986471426327157750018773041492475589086384227061817589038267298663689490535113105821225957245202544933935986814767588502583956954100729641879993715302844808294780909029312519863189417060414315201577759671154413629580777094345619522702780189558162168767743278509785310770981814446193173877924018204667103278869258008535205210279387322185260431054735356364360005492996667897695386572898027213724399775222917989274344271881494051697076999577819148389245254468095675059711983383703996078283340824872352206375675943899038316035293092462937127315525126048412815573389226190868178736873577085590514290749731905035851844122469749125843847244100997836308981130538602059786467604966960108833319108410011806992538035570501858339520310144547972299500967303441761698106366507842435259636491763369031330319441923665837389301351821419978962905737098274344128409134323283338623315963534299357227953504007192875525680389556718001345511362893016328505704941361936336556992942766543858143001359594261888495586624322691939823552027455232944631741452584027400389411815102093295979538619853105330736769114250024887644974858374207237763561346417171459213416892558423847174698718354097804796029087788995397917841636748651129915596528001293256287575601822343046122980354957391315183851610061982073063652085205603121980250988398850876017918509082246880498413276178967374699493965104052739680719369597471557462537108408328438464640526494870460120348353609185198104620139531430630350883809869993303758628409752653864012939831458127023878433901917705418754608217139724198880409441937590322409928714072727203123459846252168492343983443276654335974896548071772220766427115225915137757521465835923859319449577057598291797572358491581391564516529831895289108029104072215049182928649360739491997559716338922532097482488215362365027921958014982762594555088317989704805904024333222556026473147339343602792134872597284869311252533315394369532524244920973599112078450696934557047645501456786030970874220571399764794712042463464351883454349006430727509505744832891511222103360395317997973713647561412103807873004160663146144954043526701508595118895179110494327292879602943628623587313047535917895236306449834493271573141372311529215355434307030197844450864604737479648936971681578324489166430497029488893672197573924781484273231993486176314084036566374993608445251658171216802143357033276199873995290480628970585632048149878657815213839726180733109715607669233725048877526460400159491191697011432099955738960608259700229702829208605038882605310830568389999569517648604009079599542372369025720515434577944651013771758596181554359929215101051832662615323192842078749738080299814559828093208657975136032571072791944900241632575517546177032438566973196333822462963462886354333499514156303386137005056176550242287192874261724494999558364391864757338165362310191295541040704753886789488133177161849033212949426847945208502008641662373347381018258602242136282096554319249197300474106964049732994338900125188544823484619458744770681033987475137983850765067878237843883467718309584694850641038005506022016536904642476732225264376814934444250575237869343192104769104297486070709358686578872786597074992232835833662082033660753432666656020488104153510377189197946931626367344239277233921354714484093495447169372301099053214246554286281758098834323191419627871082665404296091427667114350404521403678636491878557420991958504515632546869639281095617021633134293803678357167698041558212344963897374085628405967121725476753998886228350013348822843816311850178885823327414272618991838708584274445806860561220040037135330322121786797910712426604825414382709620068087427194871442173360380505108332462579449266466151414256827870131967205293094050452460307026327762339672941906390664375274460378786080687101647207263234889955132894139737815731330961504445227874668558243609800265399343715979211244349494493030701031409327589111783011121294476679541309300586838374540100219208844303354467932320792433457954875399342176763420316956087535994543896533692170474702016097392962136926932078903542977080009476536457893166630595682053845656023058314197635824015097273358022352501086654602415846885740152731990337429945609960512861743466338804050015617266699540250284867995323041019197316008457052737252523127275282804157393848623082774768462053638359280197524531724070235749161709966893030475247723843493078161508664054494354068506267196254994823495602173629709567802082797727230636373649085063778230484582250949880511573395571794248193034864798864381049505723540251267602681776188032228260301202569852023831852969152971863998379137521880004187722846301688908241505396580062610564662844104420011177848343132669451079531590138831038721943281849107098654863650671764088982706102682502076964483640809229481136380484720092427620704741945725742033906066419290929434212940673810272166180164522383147568422655626108795917041545261665244991248222605526789917627135179660177995895912981798410445977830622005392685521935242042342284540479990516616346580327460649789800513791509467714088129075312639712726125290896826705913070286382520766397578691214778214809510565907706387154401043343890364902794442413420309963996490427758890927972295266772245770630631566293563057032276814985036024558273543917517011941331529884258499646085045910087387392145193055060822888474450353343308642024365410329244598628688716973003124265285107510285156664960041055164952253969093201930315677685541196516165050169970940802303830378756186139801754745571233082571218057627989244630079909818741543016451427355909272683194292136271187562411019426709648999643050597696907770762102093093094118220102598216462968565261773028025751643587971019567101705643501694205875503004260394670263962986779907299452172540405920198293131036135047447590330147229745674201449700392869765035516528596553553543342971696147575358823152166263426081426877030663261162596091378397514630708471757873759929313822944290378755437332773713521935564373437179238837403799889897333600142037578112191828893847290230193940413232457304355767031978309297229718462715703822811570745110126091827517502394961365253872465346173631508217458197067299607089258007339971465677806410396419112998880212451212269316870159952682641984500651604760827991820181035665078024675930666299477900836745392214560971540596416855170552965600532956836420572097343570106816367019321241576733268659238727849121929111456354558325018612883718189421602708526746209210988069436125712500953501300300351230542787732463517184775396599476118982628578089844151384453206274727972446861383916948993471641976390957545507673128171251099965637371029298153153142564178267091045115872743295551948006494280077774807315186526756416316979544627983583076369138454487681444800474903224815447832866411296106336246639251838214721037475216357744570027071389571388727813284941630899810995052982852662399644673354063173969233560112737013751750108611347695402032596274257300603045891837959769217856220477413626381566507860996393631169855659697196731366150749244650510177207917764437055390622681190515715318407694580968682000448402755550133379970983764501091744988765028146143994251033006565582562437397678135923272070877056986565957744256673238004704324276928421110158115264636560066528175147562064767428488688704112445857571024983082325317388469864690100321488442074061826401821677897982851814699447892873263128241721795742936444252847800742677216482594966783272117789685765184684185838564249885731483856492974911371309452976713341429297002678898463113512175920280121815344690039809672865225021827395679637294760207071469549875607485222812761900017815944320043144254381091140868870692989500085663948590038534883249663858293275780054097162717563584732911374572059496360811867319064237393938099334754304223068962857677687862061947604601590235839980123386836875395543614399920626994659814073703366796526585760840830984491786170880203227601480301983222638249574247420938604348726381365106507377276133697574479660539441431847309854322833201668805040129627078337958593800945648727130488445817175787631013557240296389513393501728272099504092040025021960005296496812318184524439441931468295392680935763823015700925254867526486635490916802409968230436932450072911205469984225886665465473623307692174601790607814898680377548809185236558227492440056122358915034963382663061481019538910615720779656500948910840171492591445082353800406671242525238534316140090156097077114071046074774854202796191347206451296614755424894937532032317633853261108871878560368117565983471497739695050828812035579968733246731083942460132039881175829537866552485504630819024155061062492000912616602721369559925246136391734097676616315820813151603907468570062335441409573176224357461865389353806977243810808900177834493961576459234199548023549093224086642740601343323488232372422158483548686652315584486584561034779451137008065629799343096133319754007974366400306841211891827435078005827484003107554266603548234127105820722374026927300894797513013146358507818101842849542404902450826450861931235968204621342964779895492810135042997085441677907543667390395525736944675133481159609223760449130261721764576525547694625225868206323707331807634440687221564324126523129053513093266034192724658974853661022171465096323293360034342020966352343383684029458366743874874308402609968479271026915082200213991445383922064600104589138237934010727526412451993911872617783370892805722792852097389422406203672799852976563557998561468850682560886965684562575017266579596796720973089390621564481762495255563103535815218492488677062964596870454648212484837801606870408350386237521295835618604944190415035242409800760555920434463171001068114249521701876742728031160049837783799217952209138865765700549856650856056661617987049178109929263683509551748466914208742662197851397568010300968876665624083947204866609294896666002405682242549521978296090063599900020595222914057473599711224475133787696170332765269631995249396283783638393494084200447015136073378072795480324044448118587455934210665455350108054314013120989642294760113302349977226698815701222798847715615228535345174646461731566460104699739991804594935405653064515827851505484429070464046411913769568879822632975540800091643624721500787241586894915902921431671703565055936827218899799337839467702904162541202778088258535714539529068452138259046818363294515167932956260143313552421576837706926431507720912613264923758071901156835771330076888882832234945378534342200767073963944242051972521241856708801157889533387516325286730527636759304408692697887140278258851892263777590381981968148841712736075594915442621389941899194959496256592427803010004428632209099528954640266753112058076394785228868844185393895824334408030426913315327791024904877264695826675862046473406026901422323778677678721757787986506137077254441431050886364603493852139606658443331953890429313517630257764031061358703607395640288941111746936570048944181359813780785501748182661592441363436222798626174734093943168182323428213885514917949175914786172125033062252672433075145478934116911501858487298504698615297819842429124265654255834052283172766920605085210231021576933318938848018359007317834118368192600392631446862346999127006154173387830970552832592094501418982498893661279465391177181034738395950695825359170328760510116956393002195788026191155978766752507227869571357132567730758941040187939533399416708375843830519997488940061550185183321099894632020322809920525994340479164187290687784465274786708672835478273410732543494930582686185889403513003100515178287192874284972546125977069260514145498594193953313822226104907784024448838374442003863357473441094118297462564315194754418647319502310801705220069401639639573965968039980962712420189096330398320602200712788854901270300532717263824371961001851123828491504199344856146631594219059361489390482665884911713527088898056529657209490594742464142146973612955630644991388814913897855919653887305742658819723125209147433557047067924032879523954134241782375523802637037952576600495142843899094450912289348633522975847893153979507675314555181190605358681626959605811599838412178009263014494014609144973092797605603116211613412725789037773648331689600407847976464002986024672976651210567730755427266125156080049740314930133257232527146704450178583156073596972990014977677684022290030175999094898590983791498495549118778868353633145645921713989270607894430340351545497618670176629674148533616186101045417958308626686582466266625656299522791000412670869233286930452451175624103556194699614081414813836082149891987700808708241308626734904932054089390057348144161002226390879665733930123336454308136557484625409139451134815511447534617871072386652598038959124255058329859561400429513229769398026063019105611735352419926797183376438246338904889435210380654189576503268860434409399151132951772057519916250329472260262806573626901775224354397392934277171299612693176412933177434868846111017768799462411295696657769452981017313245211459143257143593760759995292027141288881562722782271385359268907346363573776309917061206665252570248918426966390955805344558681121931274778891411019795141914133183520991118766398997055061730994535247092409524466020536989060383855627184815038657571149338495029478156873942341966248635209379007075415649516201917808520808073744262622726163046686096756845537488404116447975233632758499291285436429867887397055756128147958145687923813098405219500377234991008719527856695922727015825219328645945680181279387659276174323497969811362431098374059207180117363159768790385106388052781206221990492057975704386795783442430370854165748759755910852862409888465995965378124808831189376321228199315971956204249528590150858217082181139616919732172587030786920308182854553212853016658300080791637927044919773676274332958959880119875232205143727680816279084573483778939403375555022041421526475892348208545868506377595611599651045846662776546984775159323990027337024326771446694716264154336467682850457689057867053828464444277361230138079587129006307042692042871286620051836894909305489377725594415502565008159602658949029260376839710236254404733396282401665260176591241259140427378631583539747337426942298936920176353742096917213545058056897806176054534086190633376617214930676731607565308846955250179647516997746044471207291663830682651282788206889473438170202754226322491691182612963566105479467111803596717577954612527226052400455151264768796015199002631676013873029949323134567935942828555329614104455255731067109000453892316657409611939682217971211114959402175347135200952516196490841454366715693418970801105739389300457396144225874946558771287749078848226571678335105038290320925690533374342301760511949896838594933123840734117398957918355836380292578201796060462767281406475409691727305139850433690673655079937839810544581722214086060948116732069574961541517777967298265297101460590804800792676850269936011161608306059147677382807382168124265797600348853541104978813033111705763948721711397830434668172846954112971655712310989787070527132347621359300297442037561212214574355111849409486364748819280821924172031189675386949741571166674995041727850606353320027345174685646143108114525022490383487021729918222534509863747198679736601899296256451514917081175147643727024797837067383408998014108616565582170439765436662262130711252646808276969583992134239365476982894337524976504651341696197238375013015150950214306930293133843234035815238177133257944711039183429241705895659844069160179582345405957547134733753413767299284748403064194525080454272706996070200684417080081391569024574591962223513570558381394063837887337339275666562016323807126625987876175623412998169698094844045074116674057619576954250452222528765072854065057069111221375206462909531928959923094992085690824423317788919705164755819237561161099951716102843352061044380168799426786387548376415941385261195555991560797996816464769061711033693881064362487109472192854297064741781388471881267757612575179650368264918110841420327569002181572356644421511420460999230226407853686669043771132512065190696398732363570664109268275752577415615989591515471400540223545385630702204393163635914648349738459759206757990288394730445751066882169602308752641257857220157551265768523095065932734621268806280241515403760976876953434110866487035964001412374140314204111896271197570220595167654974567541335058945812716049472688878181812831516098970798608077478377190764554191258404606653854309415465848697359038081589411831072563732016190239301386674907898214908348542057195147312230508866030278865992159810443054674871550115632613255199587568020594911493064992559020028306909146287541058814722857650996189508300706375640038908004223419251043541406251267135026465681348397582049896975769252673836671432009519939658844825517662504023210786992026667164656784024522275923602200909529607835617838551219913560914272386431991013143765582366406038219486341713319260332144802866980141658287567115955037900453655131301436538927729693976186580159348240022067599490679606186685031983123146641584141812168813523862170991538685806711202959290721431419185484834362944119654631292412257950049180536871820472707416209238842595800883930860833124272411973712092992842200660045838831604385798844969771490151768868600440040321918460534119810438336601720278121628234216579232347045431709724884753164691388120839255190502874345808140677550170305238530502418887607795250371249439731391740378397148255525564474364063131339450599492307822433942835384928852829899690095883143064312182009662336336168756937044216026183918815778966026803244436324706337335841782648801083774796313380847981198442467727336247943647570067005213085191642902018817482772662273427985320263668841347655161216486820099959248491984867577960324939273663922802756064666787984357751842063720842840517721244922142724545187584712745273051834010289611110678989689908607246984445565945817551581805040626005391065360323704444716943343137351667845186259692308955920526654972529428234607056972445980319954211955158925610845548316884037231819816452273122064839793622933970630086226025179200207969419712499470776913059497348463579415430471389337782457456319903288846307369063597981824624926293150831607618338629729629001509738618262507844493904505998563697033877458474613162044640536274571562896068847053385196476575162459338399584592841364620055653998239572446757712479729915962001728023856525337170610904135153009405312606196214404315675329734857297383277822675737478364046791049781634220907687439102342012465390479875839907971571764253980906772735776024014974094085686579485164745105424389280108131412856630509694910631307622735041997388857539188308227067079789105892210990588846193084615935772260171787506715723932773942759911796236454874068745595804513372242230728108359278384423466280338125803029562835161662445151684001547675976098192650466885970756126335181153192668263222060476859087260509864471772452179277357720431355644327794889885574766711825127474293356142488471707818272742411505654551496907677518989150435462683921790936815392792448540723970264121605360220502558537305645780905451586348815539904386582841453276070862357285082250300901779935118049791021422239053165445225559670923391278633364279213584590163867570889618013853416315083967168830811150812021133080983039289395865870946436790848122902866027734343603561565949449621993946231173158759688962206140915769778112583684182750792390445469738696268400066464070185005280863978994282218195283078160013057053054621150185403847966447230783741538386852199806292209717579999667394704248434755463928115907860596129934493979369152809060878614099618998033680072569973593648721333565688088912072985451080796865783716457987381763443446419291793442724493946962517802309617185201268043269683123924717349591921425732180128573583509812375448433096952563622049830796103113372205866730402957494561834195089844249206514433609639111234643385974178502587470088111473310036504771518518316333039607525258702440536785955750262983831799516024647731469333854929107118082245013349801565765677728120037186329431720246479675884479419822829897370057481946375694225854970157018853039631332901171269316272942257058154220741247526149552214673705063040772058333545755797407237042714389497034724977280636456574164546976104784794746430642971504816232816725800811192092112759119784111651540841937784882038612563397922565671368984025085040516830261955630029849150076316767222471919131442433030859741055468926911097395990114697283018866751148527636027834706844806037542541084124278990712613724183594585840991844926222239552543323467131467269788135698407714307030796703411660127786555065896582670483122669460605785940428849627531677028621206461043280837485580410984064653508793835199054052053281591705351050054093698512366968447595055685342520039081281929675325798654144288737655504391778479659094224508828507674809734764551760971026001416727647020470775133926578909881872989160151816675002879113560602039743103405397016398179818275207957713501004028469557680427378961525609377247289028114657784923161445081106435650224254361898155232822920303032043790139328982880447963343724496996478650744701052954362530308020689213754436912700757395050565902652279313595071470734666440896056799874234233173297787518523998689927461201680688377919906124313225961992741250669651122932399677344634795522312404384638528272351791716719098947624825927073716335479332569077526544317958443136477332788823660389569363796759332403605646427047872235940652087829438218680047336027055644099581596460456508516674952050068535818275304389611385640181096910847107435369680756669873329591773469995481784987870143200619669852704811282918634078811239760730844403479741693276287057227641393843079357400282407473152330609995973625703024983780390399221555557847970989453343656085748111765487857092054062151155477995590109231963163041039798822860240501894759930040280581867197671719146798201296099176851301426704532390644789778376216017884278116618335319734924523574163134040097631724100598999394468408782762767671700162999728453386823979027919249083371231004155331301547321968014934477911651003439152190185014578709760530509841711766414370174689346342428568877874514871208875516329556036334203794046613441660273622297131827106782287664894210387245288345058189925502875042110302534229245945743911686098144599586457857963871728638193004572517732743452471075969417685280000950540790187841885217125889675144619446634242157132886723660606257490543220576176565486209807707030875161864612252888638213731742314119220196230487524175937387619959444006445065994269176177270091628144000876283065504586417451720962682479503568565271999735427768803854402211139540354253828538280347936689610933432800553722158064114900073002944474364775645053140762249653356030844912554412518721660854003679220999956608997104856539515793206669734715759846276121283468487073911869845193500832442494488349721371779294153218236411987715289539533282796213241664285477369340831371257771109890141744018800571857882726352760941566542903417653298455824244590390714751163718492841087330690771611116277510511073421539526095038330359640552285758503111829730413078451261123300394536771156671440294809043217430301639913073141884675466496637519846691950112316333020726195312083345916927849984185867896034203232339069091586024088044914185649583444750296981059410893838614573482367400049868328813963808970760842950970291282877924174930917072335170112561595143523048918655365876680973456313796849855791002463182835191025794141556365945687427439807574581392776270020264618604378817197281899103577749953997757418882135511840355825650203752801420921589978090319265806374232695164020811284121142766327472567119970827959475261270753597141180697992454980527069636340510295571493703219353508972757360284208763886315807379934602436403540839896497096818474259990191180288818803193983540347896266615473641810909746309710164929279017511000344595759502817252970642221071472216261333700323544968211023671813976741862932357761868390062731227649621699905528436972428930876191868785281382401330094728839722025810299723591341734718150314993012746260003672023812010397881207223442734705852070533765539213935471560460440348673111811979210170155702399787828713829414990505078737649881067334212338120272074284796481274925024507193224314254210914410690821624822186704260209367953054558432190341378344319860896078078118593311921844718974075956844230468782463194292802757122744172750253089726950035063865498495351568800260745170678350218050942550378204881871624700047147613540975183015682917947401098397651512515410839040499713509690870341186541451505205717197807255098597742100773683072286642217929984916393150751830506474433701269145831376060281563720767724559270672976712327293440742812830709482219348560477837904296263005898554763900128229838139638336954085290570690685754485537316089922888483186969836422084244154401593309393951938925472130546621328017096357051425812667570133695401881654995733266116886136153953893959559535180096718368497541281139249658686262568907912640623314817936264205583998367898311899416109003875650956692509295726704667591219187376955878421998036040623472694547631071629945406231731082792718955663405375456201564725982574197364207601981226388991505990269317651132366751604514948528849347342929084118274224261399191798916119356853415071724993864845498130721375655847138780677371133457346952088662998656273849581324629653486591364508864544929386472755174500678221683752842287117299738535863925737698959174238088076478191263229554026468152841842598134663115531147352263427513433763149572180317305170206097937685503661898727731238062504474014585665729946998218945437153822217508616447980910717666643816267307605006453428376076457734027824104745537993931769591692711328218710045967764184759914509827282007822569181747396603224870972975827164682710453617465097848911960083817626286267397943433605560564417799651883127247272530759570316900752227756094841103004850219373787341173599425706930750113823033719217684553342504238049400567721503314668512058149170754061761784221943225522569582435081089285108375813546637019782883211065627458339333523506917496197325766780518759244481144787441591483310275593465777749607039952523619394132085434896044962426574121183842076807224217931112747994869563165858399337556176671261742250965135532194270270817825534067122576593962698638636797667889145112984650165226965410689884583077756771534643509563189983182228188656176382484289163783514133517186137914650860573008578020996002742465014430437911698683502450335009822803360221991592639943195467359565129982495026246404193611726797358762146133102073635197944705650562640799986056901276838617266973037658046118895911473160260916488431683239421262994534861266707285085128509361153236755553960739434426507330468739514454056647752314886219563435155604540625170933849911865894793701515849312055171138225126000896636657328769972289322838655014524219342550944957400830773109845969487142076532255361507005883922008328807126968462174759381987843267755218429472598895606890476351863061616556267141682047517117711230658307437478870570459274931097495717345971662909922422684436031867475105624551049625400092229166047878736842666300315363238174529258396136248769011475703358273655787737849499572805412981623720683390077492647222477485725199746363485624785007334213627393982274510323184149308687193156492244228161629032896790097830371841575470664005028538855634847546426548311961852235042237648439350090958152833899396647919875012883677000216915057420900330654093727173234381231412622915673463246973394582896458989782748356767381320480687683630711979712569371311841027375026389104444151478987321610204933966924397603405226629021763682917729737688053633316568643337486782121231384861414036770555798579640592000197427377902233245183783095926014530127723360554805718416442128971318000651182542467636436305965564375983762142571104876121573568142401158491573141936378509850392995608829529933290923047519645214196910332278602211898016370730516565474520475326788605768105637761821822310669471767822064276821075790652632959140228482319706486447977202375592403082232899015989760490112810407113806639830741137893689918216134531307155249977214672348858840667392192669811933160656908130485647701227752773580864655858664464279166143478846165224763759651576187109649043106578881256326448615453392078682430319017285583626754694061325347764721667929859787576195228191173548218299173724220575024050361785018349516869310731934510609747691575290892664662378831546425915483925183960732780367417778132694437948411020687565681985642697486523626821822502228760473721666307100657054030784658312344451214408781967505532084483999420774178843067009004840831244982011352417078766939569752441279703028238232745859330231269030368936176465804280627460001577130023693254190448872704369065583557361428091759275085319665345093473773801427180989862660605491700946170888028998954009815465644978656151374356558195493788731127592984873060040198654398064159927006640919481678781052909159168086520554354910855180114606602228052149304121501456176481074453154833053593151328498623039652709311766834485336638332842753310810137550556232429132475822609595728312826801355610090331985149575941065888406527671064667762827977254307592517140557163410235554870083902449525296536754155881369056368849356776827283633837998744038317382289471845219635691520230967944415979327517813578119384422678262479926424605407745003913436936861290190228258371252486187681167875921091626281736202184620109925794568418542518189965349783230052269785202556096707919113570444288196367487415040160921335019688327537825064640523580833821436061293294807288153205517704196303426389483887632805634072150018899432683775698674853692303517046666621967021689098410912227407030922131209270302087119641131229995897622113780045451229697238977644996807982272922466841126227492579215375744350817833408646477688439394769333157770060917026857749604671761077615674447699010789158965503334955572982395017295203141098560292661147421513598800727799526017088959877776658831272167636689835371399189214748711829065665971849813663524741372470000396827771979465014787294835620185498308388718681820319769187452137527872774218700023661208750775624694448123030303705460510212781070935263005343861058966035105302786016794643144977732639290645692956014876443034508694336882005151055758949059261284614462354469493665309225108047773766778210184082089324431903695225719498063161486444946073864209004510104211103668031996150217966236382910589821092203329651291065630859326930565788085636765715265672111988599155347475137658674377827919815626616005611034907932937723949803052489026283427971826484742706233848644773017388932303295492974541788246276590583369852307880820805902286418586195619587874724144749424535747951433000776312564822063686722351036876715491437188366875765555881364830576031494362273011450738670305170994977051691822007793304389756304555967145850517153097078912296621588974680344430986552534084936209713950159800777347143716013928880978807209901683898008161180979958112454686236116938351841521257804088617767333197570863717582222202710761094647142307984411360176981175119903099510867647400201523285840154799403844208634207767595611720939383482391083992117110606890612224809826800092976816358446101511688001242520510644478339223881341939436377992974108120157616519831728129606125995096939110577397994715910393527254679798731543100136567194722360380711771640681291472317774462349955182364559629762562848345180984778035965731518805630414006221185864307235014978332908677610966999219535472887027885277496298871455416503795636027665103616176982224238125645469685723220429768301235806064856290443393087998265096385482866319067824665012308884469056341772855867586927784008715740493645896535109757645899971331881001751150688720223587649411436099594262456154071751350611343092315790725922459262822270882840053676603427968835943428601450516073112859437259843677367983391934920487116091153855995045907565169528154946021334041630343210956992071697290556705565646560336910384683726287401428639381021884010753648380898849241221736697449370095840824882800345927210427818781408275190363898787091550359880068521354029733915944678489449286963052525752771955680635797480624885301724247858560306810147657707096438309629764524074909470560224550880443603007894450082775471215758702301868344188675665871938617102649521063580980450963679342034274488559736093906134550737385700392568261539960241052428807209142903958034568358304997292220988273032786231487843784578341312673073349424958006849601748987747773150066031285628279947431292466488387221695776702464006913909954092724740024130640670961344615617781533285710191266136597325588876777648898558224785983716917213682934616092632641839448539667622448477536877374913634074596076102685760127700898049016027518888963707214010007176233210498263962308146711661195936020251192956009697684250502003582919109294619598411220813484910757765460393371280819323090953745597370494562557286673692796682507109995016635957129697030897867438790130583886833385860487155032978619422877739787073853724728781143623255443751863563118589326507397013101207099098530179306720081275150356232166831561214712324388706975468280054902825341564832763470917334098094150341380866475713444918887668983709411851464025637976633479505975394014998048239584379351584237476971926424287415057345526709958552135823433972181920045087801813319571615412003382924435476399929296036614159887136475007855343564602829123766821889624838887645367705503534346279498074578506461170029584446545990856365354065298757304255871244106223948614889612727629776714547284019692344107188775064814728631682267282256468790086042034485096698108169121676952370270494920909037674490514873591351049456634654202189940739655270240978636587680713889925374751116593103735681733242808200357276414213025941884341492785180902334118186303104070315130271024989587272065156946379860789064621973576506501576727769011157164568906619752534560839451394059632292753197514666330367179508790530878847184651283086503491755539320808355737659144281479221502822968098666903257651815474705215353230620092121945562558730621399116317861452355814674985167066842107403345709867110473800125752047173512753724741682328298157178225154741806001028026925956297341614070174070395804865284848221534954728070489688525035467812199821346536261164435639406381746408009123196653289834497870427410832437753365382230198809286430855936161128297987719091431735397662084929530009670664071314781368728871961642001440183470670170540330681887454688259269512802466887281581053982177680742515224955577450828968240484367912779733171294964776791892928993544175010855743394605278344680546814035865223974166884866473457418224886481700366225898634268894057977598704757713986028784238557706238578226710310880735733615905059103276814344666030588552747445607821382666211476287043264966874100498871939581542828762556478794589735801438467733611819832985098947783949274399500665755889263974782026402586475503146061447973411985837975905660108811596673671560880359851261468005978521298741075476898296242966774587616274255320299074829421264647221274687123430619573517414958884113313857675564444698763495851848324273741354569502457807038868198236327815114908968505120865081290037700541142405681488290810599420398600249143962276800862797742785280714095020501670478000283746643574331897618858445547446775992326437194343097912148928166700493482959804576093630017436386632947697343964145725322241425857374981821350483667884309005628188519780467735405125053030446408527410826200974997207565838748697988688136747604253457476209632217077830493095949259743573972009945303314089585019521809265786002777762193006712801723851007566430517085156879511495449489583614227277608306286677861683396641959543537544552184712119561471994369587208140323516505457102238532838651243026788748637152507067308144584804076721929381668091232160066303675668063493144468169463829896964790954703032105039640405731697967465347149065107539562462507576568201514298251578506793636597435261727724598784746376914326614562527197881407799704547947432540463795306895226995277119456390910450786960991919200223267044942546656244531541782817994621476891130535557525031258858340910398310362979119000067052723197885650800472644048407473267120532243799070184481545703389829827207850157242825368192307900192963690604529481038652895105647697953445477802216919436605566401304419033126045860228662793222883462400519201063653410013425658541248265921800458883222881119996016704681430355976717955573266081102987344051618929736737305363618858003110425606173500258158733827672182010094257428912596610180901798397238704627222353148726116107618159059442702567315636213065850210929665551003205241320526205593066570002661715712119878031645816083234463866815479985907227071869622292162842323364012637205352168732756340618070525238939642946206853831177114485949871461742310198616585673359730816588291559095675034614349489496746318504004708912775800455375773942929459880089407625857050458493511564268823622302998495510173351599293387325063709139067844135507572858471017373255584346349504856735061608138171804735881807902283427865161247405582074323703654536591866454616258719922989388236287159965674640074067692931550453101072113554476876564811558327874679887868335953697237689783607566404774038627076694839881460506082659660073099872484442025729716708920680106756439888161695243517369154016675862600475668380936080066618940189291255733575519851699851558561664251138279030138283689554137325027641843819554960819706909936650735517645032505373614935471677673963495084098154448156671626476571278617522125897331895563163828320670518354185696040937573418454008762723638625784694369220864984684077749712710450477377754349932787561384029049431561376680671421495245787359912671919914918886862120164696064209427398095393465167736124427102997976654120682652853131987629687821494613947168385037878651458494428889144234812648268358047235661201182751036026249938195196699472161541748259515038293470779962379449790706735106475491258214670457405293733477446551522002941604608510528375800259672852115882011754449932269518036661207966205619042990240296480607663643401714825850489305357589478291295121953440982196699814970174649292113655507486617322805769055916253752642197267960791427543041147122388130261926213321818389055110302091867251567682319753631845750598117901751362015383007478845829021805469731071880638861279081282922287462601566317970499894229454887345962895833563191141592981359542997326586333130986350129030640314770223855649964933070253553778554834312321303777598134891242969027822386308698687573089788257389557928360586945434842712524098788932263203442958506545037576137657549071161201788796396838263244993192267273996196974557499725689154633134011919412158846763126363745727061347805091751184492379828446321161576807682000767514316249169408061384878645468921610811205674998839416378036819049959276702541310435802057860727644324183333194314428240806794861373953643604346661265226979973971250059093449014654150106131241323231551611562308080969074456271019721719861186472359559687084113166685335203100490786733831893992383806643374694306080716983209325044820580302364196454675392618599828450546190653562375139190651144922086896841771126451892954124699540697013738777406804760329204280909962257261949480621666478438950609637636226533853723396647421844000431416597045700330837038000083168133202030910942615252316348920770470927958725485047239600896851634943624861287713087532833636585368044992371914427677498561672370617126790837330945304185548447724277569966416296692299460567217308398591747543459065174823119950211400856190968471449045186882438193678619605744583388812028570043885942855367549489659085880105837343615327311431642958934163467264459762183965523010319917101960024866863459915034878081836534874115440942584014002555119815242559372106985363888084092593470541175923268167574593069323574915883107006384894290625410942959123081339811238780023152693482723573930553961978908110483787684069684696576261135596882902215656135792547924202357778902719969631527992545451120875783081979153234228326802777618931155252274933588307203283779567707057196170830999411553016273923429993929433324513120582225086646287311241575518044201346702908161938322755706447604303067439478397662990634495197627400280679645450509777016984285134527933797314430117652706269350502061285073340649449579485254354832792701104441742899739830932974785899203221012414700587158145794120504098173246243227829027658439721494461120567282163741603101550825311938874268478754826566308849739943558528810077164640197291216707451350007025140153157342417466179365495768833492685407383440837158356290334170572516733972874050877463687071060882703317290748951496209383112692966366899931705514343512069542333559864286876064176054261150922798780539937801580341717997987541487574623612222485088615451044938021617088767260665723564611431004856214435515401922648577800738237052221171733044443122381903345681130311976584426222562455020175119824882328807295899447292013182997991841821787464513476837263821763150026338598710535507330222504137304385927477594023173633876178741713556839735442768032819506512447151635842679383938093956815708469174582474538275332123555194524871154470735198866829997510069462538466393199206719220130092738427089632336725085634241769385720032289828588129212479887871740007884140734484538523782123355013320304616486325446006813852080579184845252248804338480666325812838159412715537532511140241319821574245447262543572178056003981400313562974793704341093842995073799101029542504022195047631512436054383695070429952243952062766775061516019759295185932352218095173801243948028760547937526458180900570632219170408810593455546160603954016976970089007144352387611242130251714605332107113417913068394377177643398184813194112936063120839191165030762919787972397203229802663907550172930467414294870832779894809802153185067978055592501550876882441869705065015201079435753617190384988555915728456432806581907139305576287266288916495090883689060670657134765326879055363803037380524147062608806864480826371602480939085988628394826521995847616649090327358173610824043800308284416003272687353054140197577726062477726561930562301291283879718564048399251098672207760001790078532765346567016481556265882849282838370882958900978397203532900102352269574393311387663148604579064793126523851800486258281971477050300144781993541587571655647020860929399470124231834967865090983220331101587361426703332360785364688290226554897462687863641101758345198195203902176095924920170905515109565398320271908685476632938105389335387281952864714180835045903337776724934722511818023332948174484190642085392836279429729324053486577343100755362770625540086036822503482518427266053199986205751043758097964909495503468272596259096644342246826288608573893697771940674398010981769292579880249955722808167060210061532114311355708119801823634604590441079467159355803375788636485051628773261527443436259371234899097944145403023642688153787749944283293390483072925745279318929124301523804986574454080646785807633250824458082969095801504412791097164800797846666514976278823959277221803456369261754061995662438454119080731433105784532137283661357851227781868604196535950337258994032604166052022345840437402920274074141457462359119368972483249676088646341264079109544956249108125902836982500520254365870596997699434683522216602052135449063073389294147764579516047931666080456323030973190609184853683361504564685450367273658245795800166668137416703104284332190847127865535758471897032209045227573017047274975990452060947743922208011105675803593210912806021181317179674589172895818002291160380105622879074841925107119733592271212309944709927234270075197450377266435589332125510993760740982916429944422865021285065278825653551637856591147585259287371990939458618304328351463352899984646694227584933929393996771730605001936762333733136024186575979356888118845533139416595177089824941024800866245729026272164335627523073493910764838346927433955796422369862086240304213584753178720955150153366828735481080001138519257262295477673540697410855947211242645300117239835947687264711500892087423087024960367720765924646800354559604990630921785750902732062558140074750074805561152528921531671034220703371454614921176357890667032199715509118135675149035274803802479093664458764394232262033082998334162982900068373608124352122483019690786891669236620965357119703321810650783461657809368161419573285032922047232662613646789069447564963753304242352486140622489474071673841722763667230676443383629555917353881582379052511456121266261099446224536077461258428794106855323813736257805586483694254695369714856903754917699231367254957130288104341685971480299055098652418903855230805066661259497126380174268748232790131800207656664694177552591677933734694995914606772674061946678231356138867984291294891660533192232123825647230392286317189159074021310744626720958683128683728016824295245897096467821801706640226484279191518131807202413606697627690742660234977907692433207643299126811235271182098547427242702124428777629586611950685009555592410510502844839059263252529402012848621643255391027848636180799093265856379218988638510708438822602560655733132502891998499378978753109675831988589524383818617417931786276425994283734513115384453753538869066370701920221938053700072137436282716398829680872126475511034943233323035660825849499532640624131034213070367399474584615159308577600872669045442783024523596065425873315369815742137706588824111078232744465023352469934299248660073918799796663480648227066119461577786611822692097659715830501010866241617151654687301422849806656081371978116647025915597047185066261128422607738469923542814323232138140382646589140514901480955920723611564276217891742044412979577974253211313258271364099397177679955625735455655470718550676845037495899528785635521264267221493606837973854932426991656419470682039766747912570193849957233619627835817637824392538392984055894391596182430865739995831099106014440711974425782515002470439063613935224674736793850781106469542771346986062007793447046489758554030976659571674828505289945225675359227399208075107904892030398868302281002768093412501930392452401895425946830290561576003257202671553910823743326857430076329784647694751118199714753688200692684800976103476679987951707184217702365575712020975141487816170112282820755118659288452002977820764730737915104411971843597977190062303595154027536798974143708254214224518605762107314000977934237180295289768322355178111435868609133444990926593502094653657161676256957540572046897875694856484235756091013855787904942385703652066011513034776115154300633183404938306964640813998235371859224025564284895746289839379808817963478705208409195173550628847858430107503372185073339916151627513587071397748737504311320107134312694339498637773199884221738815349428322853016042626444415977751065617514907812721086949299806319478804754593624763557901712723739051227943118118630744744436220887377887947886209735779296641876135251528468040541991649592048860980498468436367238269913980913926528934533966919298618959811987232802772021878346578586640110033733034245251974329276967599964316556846477729827214370894676908421405416612630592778302443565413483225829309887102999019623482851740837388630883087488261375167156582780271681405666808906994552981861032593028766136968458112637253832408252945487568240615717439083669391473186929518196612179045240498831123105831724121232757042690858687270174292437058676608192149342838617906134867403667954120960559948561644100739566020536077646817732322542679076364288122221124304682629582443713104370719585978747348023894356448056605707414726245556737982691214952969974857295303590535889069369803720127206326420926076959539834493042931916955174258277508372955254878008928345357441844845333886920465583119918475383226688176039394566265625528552430447074984117546173989321217986966034380254139198698826354863747002124537189607609588431435037326238020728956375821057236723917139015098202749734520369663452789730828039449604105891662158775601180558323061811087721850267036678047017209865786304856355610485976366615377686045524396779390764253937807510049010447234909165787490531793186367416968911855823142106239373681195600947374949733573749532893365779183861490189971970310640504569059744333235459203697273120725526813903664498074287737011481510728458312601418102086169358946004495719251756183189491108071232719920806672078713934516144472976055658815001770345408905586300874572548410948289102286922619273427931473106589446615255286045667749887819460897402643136658027203866717663471795979003059132357765098917029174013423790760649371366112771059868848039676553873876301142912662422410845836927937358484265834673930336554931669309725211462029530165761154850626987437932221545121164245508050732629543715200491429375765949808139647722036405193912530113713974789379650105829092679010083653399279090555176300941941427259740234867594327762010781642946469281398209921885646583314592779900731191677317309878276062284234104541182561527452637452520292441257064360338740932702267171810535046777117483624930888206166465718646738991188761145683227524213158253428489144355153816634527603777497961128084346028873303898654225212743101988264093273643354195244884333104296682807503716144714359703387503880549321760702408072788325789792458303771734530345587441954928104758353844037396644219525827480850168919359288904784837420751381916916764183942727630619867777688430003586760580216362037113177487295315893576218307580144939289003517154830908931313790289088224037866337806891035068465803984641631184121853038476180083962283103239745391823663422378544584739469901223612621050409525970873551158041801876355155630141540625614838591420652494421024800556646010579307323731499868943968429610020251964120031929835259565919437692823788116001294700908967567762551023533331568070795325279937759518521430691322187008062300263686434295921335455373524811758834505526017415145638719896510663454725834439717918729589781743652291462969000691833721799138382715519481429296890922764696706320905068162734817397276635418593785984888956007691333263229554604729089374838932417569651329865670181397173079030574123378769172587790027455361550827060041790637697497349336112700838533219792070234050910991008505447471069615415261979908512737187012912027457847418066265556287255654046301016116458873756986989751938264043172008753313727412252935706918869256499767874491554518360475129813672623367128698765563992922300344680659967202226268332587402522327235003384114422007308962074639835837941902530564004568046905781533696655618469166507112132704606455071002434202062410728032675797705923822881640366731936777636881004720597743478549574691903119216358193886624798533131085247354430004382272509604337494627358326148959712813293267425572861667428675489158561914939359723480701760241799651740345702290327473506416890441519091475411867515639026771627406492508085324598761106742631167910908052087986866487030120951570278366207365186292320767472615730283200483975970342404893346971339300415064608301925355567921067218877452753141223775792283223065692597313026790564619460408898693255254284443125407745981532417311120353598245878601939308235065141734699303471148901181946534941159207479960344823337114819914202443599146479444925963569139228808966720996939305380801090462679724870433386832205439844531357245608703420690490433610495735751200720049572750386285500507975105474512716287295879123270879202567663272182769652786449770620993345580146484274238032710509404755429550114069065374513440606673550082616176577057073655736014883199121235162317687286848353072196386784557206334352161905542197444812719073858252510697593733992024754114609058478440184588336213338434090597128364183221678713051741941186603827249888567635362883005914262568249029300330233343737276006250922505773898345476257321881632471981726720924414508200378450159739495955673225640800906937323225815020128530743905321351983817091860857698111093199676662540089429509483757303147291559336988145657166936846316652255507686691751593657326118171508917516159394867544837180139735243340594161990494330940545767438203448752341460632518992480152936900016844023161261617254672624402085700070188492907196061428578616520080914429613097880026343387009545471045224166764412736390841344861326045123112121024237302511644695744053028327011605292838398071166479683984647503734133693565426145148697642470924237447391007808629131939945652862418230294047181095595706018413498281211533639858338719146312868125485716912178692815679614057465366273521431406790083847779252792534862071590597261852371171534440832149763609539992519420804612270810733148681729707784277089926248927847777777901008817894069409711811110014806647561591524073885757485338265981469340153422453536048194593869208260501544167132280991747588054162665568460969279688473049356761865726101953231943673161329340700003281749870282111004723780860070567576617689153961398942203231127764841679900964052165100321115666169665215195533007116107278227258617689060967621443711071614992348185869093179419746674874225125535796421547083854801958222772217261388880148720178969687315404855748304622345526025682816216980195770248436285651002029864546060962463069310425178995214329976876169630024566347002188763913918298074544586146508962280794730767221478224397300919583812645390006919930277309107111432191508240893015044564979445625512016332552239768341305684712601954910443708940453723215360950151139179601031730547431071764451634923682240095112790898454423060525990557906432555813567845795012725008445642847668008424308795170069310265551516014025068071880786169763967003318874973632219881641773895369993369398801966557736169709889680596255037176627866530655496846244782192780791464842034376790043788016726576248176680804549405332933911108354542776553028723486152751667969578011924568100476524811157938553861813565850741296552112685849895643885761737761906579689367490874025405087691559431737132482390372146983879883268103452797419901071854778809283821157141097812463312005113577317555553231209681921504527068434196060430248228023395774249613473041206496150038707799895251516921171069351192309270286342337786052545213918855127162901192615833076018898898389333733904951360158917983999028310953764030581267990684538875702001316158286792668016109673413896627974539911381188637442743015225123879666296951319827530307891377412979364430392258041187748895967589130758877424570330603384330248664998518250765188682977196824319404983156409133334900752483313504848465778366507141651808976006583178688092628798458643727249020310502005475266080962767151964720203695455834133681636661439673107458134502927983258848921425784221526304211126929780136757073314808294954582498543340217132479424133491898198868410309743660077824786356108006817600772140826580373523460657884368629759550033330420275860939969352238140530519182529002380156942959306963269531396242735225518342228511515444645743022518415091196664253723237932804314714150665354036879608329877956199773755232808681930023320373942939123185591011042476984330493359561381845284419200011648610230400654076156102668265715302429383918894152213414228324734219527627251802888415829992783138356887281876445319222465401917103231140668407591623381833229270559022832223890948062509127387771514990401472872697950537539584997141965245786578621755776544652713480849229097808018649318079617372178918169625128056260170669690116102955843932251053222665992740970838210757155261507590039270878247609037786530064817985348719065587452882946677469748867460391346610872405105603736268224935404211090673989017142800760306718120064572384420676587065435147669067979860435870025470232792709257790473937542775578724062269462889246372461960301855140467648468344919852513860545881652276609385009274429042241195359416397508575117459523346254037139876485152736933247070674481004224729948920382935949191742694793524377106207995806386189260976629091259345908714973483979679082598763535389064829630880553401810692778289484705937805769943636818902039206224857541170920701186035510996624213673415173088264885311783378041114238123786524562213970941557620091779766427022455934280807876258656797718728129420562654592549637825877858708150069315531232470797604466783872552411046212560943352528171698447563466481191525314084115977680125446774771225721094267055991245391489784033259993703607205315546973379726663040150774390895026319286511276751528278961442308614714180336946624482254040346464273737746745115775653819701895072019682744522197840604063852810801510475890984140429869139287730399582254621238645668992421897959649645289494417411378113129453958042298689605364962006912814563905399494323724576630092499656314024049002799816472861079420586817674410901714380004435721798512504854891004016077143025854360340069784040107125403549221595637276376652657712814905359733528665393409127962087296608973729410800222910769392008847017911286575398654109261526118369323484835114889309460706247932456019286680382159744204659161901123084068125219870634089279407824990768064145882860698091699992954979701875706877650877831679001461965112364459644067120439572723029543994550101077335504370366561590133847930633066112932053589357975460276586265863434603989072051500269759611752728699165631629115883202269267061371675678692423644918712883320349836293033364188529563449020712050733865196822251959906376437121135105573699455748658274001839173865725718698540648168938119903660031241491245483428914909211974650621414374116740862843274143966959473417772357478618714204814268050447965122370941538783327978040392416969523648829987475371741540766509681866058435605057352941435867247410358595580026726621618680054167699540978213896593022892475654902814987095228902350122063897295822140057884139724672567792083184987728792268753269642512110078035643628752563072987489936417527832073831409142250346170329891465721504713939067308422852086150358177508127701821599982516577848213340032725729505737489606092982846733525137867991774003652227840026522956559399736950010128888792034324369888923799760638654328086603305488544303151095432825710890060275462237348527153917960631906997430474971228460184501392488377282626590049491780433357474302262072499230380165721359361615111407475239392414426639471651446091940834196386782361521699696212033741272931847854609007739589725919135283125254332858508846581450983204001761610773266279582735793596608412144604952990262813088358473170656427892261646471582690298800052215488776307552324813911249770663122508178470736104549756476154898459018550156090333817595573059409698224674646081358402477760427012466235796609028824024262851299580948341205634967543021351940859841514563200003645502160069083715751066178219642355752984111741920524846980158441280467802459947421698683594818650229904367952625416349610069245908100996970157463909164157979785498886754138584596897998276936523594972042641225171609672470445032653634450951430674103175376028208343594789713173766269690118926223519687496914602171486654918843133411165766625440169398766064493880606827274389794629987335461516817034097042875789892991210024760792063966640066534085089250886681496859229793447708281942822730579866304686107804957356159171632451298722907799703683816378048387574060142038080716661714575761540919269582279823369709863934716633967955119773422957698617003950148852980725556391839732701562492988652148863382277157168764777054678611512327442923650422007028119653695915730200011394494443373594393245584364435808148125032628118742575022876862044809913850291879059943994168407890238200012933795938657094111637926057015103901693803940884741065922714151844677657825096645779157798529618935069908932825742904642490089100971953896539384081586161622566926594792172469299675155168398656632907328126488543935228344312854807055435242674643119665556205490712060903150522987214953108183654824706038411623020028243876479131269343490308108334338231386977088641682498901964614800764865609033547980360779400919306115319606073712928192898586084941189683592523406354778770733644287356298195340233134798912978647782640154416835051897766066538309104330831967935146702182292015771716046635089212487420075347565419498613374698759781226423695465403737054880484971344578981265376370096576726655509671659949385032226262371979534524764025990031712597376324010636416716508882908329068742442791281187905795651690681515043317800744468155923831144620789744150548756858031355788782044904420521201201940453482810861580253734814905722643121412429108925956797845873078593544675906431539855693853075110808302737596803508355830324884081132416213382273113044257979068649860046265012668321129040740867728091782005553686295179499173935712887599259591536331068656744241115180009540605860931099869192877697307120200206572002557164453980257782521203886739027355385906848349595388607872268706187284558371297909345959890368371825900147900886336876336326817331128314285898053675792208028985775704687766445223754921494859210415765563464990415576231879735574455681938297939894135677565956331165724745406990791561734241988598687673996391355338613921452503889707062199963893334214314901814392612518590282197266517927501543894578859697910328452788008854057807742932685145512889012359683712072550078076635263847560204252244265348976913246561139839750243048626910931260897002600130350865770759844301483639488458910252059365563523114462580732336728662622229308643587874551093858147916066351617004528023778330009663812790584991570408411656880638807070683948649182714200619605434632195680673405402154079573845361669025104499698931499308256825784503708879911414001329024330678848649270838566070721324522024270567613912090633127673143347897793848643931927386602969058033810958632473328336551824114903290070298926317994511940348295860277655604776612101808912348828477367877809161433960741166336565739166000944319502549648516097800125848356289828089460869407196840281027754030793041118817850961547319294117102711999733500737535687916000856705994844702123035873444903596516096215358448062216289673600165718858436793174055114982911371081165052434558030325846950396589243784997031244311670186514371047392421828135747756748737369477298374143659442457059944136244038805080463977094371594460415953303565618145084741342649427931359077587535320421877993805630721356139654978443207574034790219196450331279336620355535994169680794858276466816877576315118754611963628289507401558863680002220264897423007346168954087144391192912842649846760949927577582125471590751284084992612490908861243267764518465876975236831816550651242935334590805535331063356422101849129453746151049719234345663906017237439332963930368073728256974437744432213479567123241884533633679922749228863800944116419000844588032654684267260034884696015290057389252816500091731246214053026265444044628768344963437413137920349247903449280056522732688442985955488682830704067006310815740776114467314335291899643147474753621946053740534431547321201378066351764203111152605450317566330063134404895373382336654817779125326527257627145638637998367961019618478335548706075842701063220619035191093616059799845164067145523953776649585607301535850087210421371161748095079579518708290103182157169373675826028716524588578827255739878658716071126378745001301404780976822796510596236093569630141600220241229819838388143706280763053831077972338752241468963762759332692084576385891616185577791495395254186756855227420690959718492534773982120997290732823361281058476492790887329327628457299329052341694099477679282473994978908906488601027261445110262899914982291156680828207119538537748390609381801685913822232634762558097070750347858432661573379111099678733360746291052945738301175622441581646094574816341364298136184999228869581904193857411048170060594980549415526954215324867739530466201695991600126182473669668717062994071787410839717387784421935715164827512412800179387347670407326521830289061887365732596688334012159001173458081008323409006899514005517998942400442342184527159039182139119553066034933161285642577184699802681876486492948356891473845244343679318038195011019121051321755066673456435040062013353658506923507667387581503549248560800678261150894897071493093025442743562482692983557855405339830777199141271297669743430041532356229981959453738462268061540304724285714653018619478514089539062274449142547128318406175795119839448498246012605896161626208369713507198429053533420461799611797972015830147507586891526212334695712009234953186875994972994568154071125270186124855353587191963625493678359990019469686186449784528060685239765226497708703577963978325593882389367705515930601756356326284928382184786708563172909484812210204820535274168762782965382171699706117584346751752829568136134570828680677552903942881564254584817362274276780289841884777815413236095666028328096625779717780615537095169004670464246351974136459151007587059837886683703391480969156859203651222643688721439061190043040424810768654709693548420230477236220918650690934475165931424465838637601615605236862618302831165674488723962127152397972779606369953479619614744091561708998285136230986309861027593409525615252002508412184268418865232990948068555091324663303889395784161538027228980408117307333258824827862434001642747383694826207584426979372365376776233315511905707869138462283569643310761677281628092324589124041799143277385543258323697584612500493125139846603814073384601258768031493911531044288219226003787287061124931131065952418963652905048600065721330360592240121224681071613913116314177382590873058666513417481246654071762437741505001872127455007779048706434966643282589190895049511103753912005100772620812648498004442780007531338385143593118742850136249385961080733475811239665733318175662884897462920092375047267359678257356230401180723120642698442137875768812840986719889822089731919121076542951647374915316000954164501930199222776481515231869398433829526579492943596512489384158894836666731959699618753885715940642715391669840455142530874156167142123044923862597716134068632304898864228612256387360424581271600912007360213221586240576319243375942796444016936099505698604584163616595760059494613475309577537423047983838954423010534909047584858944072083626808107718000123317233220102157360431373346446865469813483955519596067621455313231812874546783921394523913975513038391395058208492206817258523650488243487984374264816788155256886723145423317192968134151267583788343408227001465408906199864409060406838992323251254576375446563165661681372953778723925390046230714279511291381199821158511217203148956521557718448025982703400791925645657336001165303525348535870507204823550917931026160519532395455690553692149823233783705713205539046632631487168814639761647335556815354762257449975016654383616826872418860623764433039660441090754332753121491109174595259755229996909395868696963121381387927823911464597342852924126965248630195291309688778518896295355144211948690526855203860391261359438865079657444093148109312560849174997181538912474403764613194374053430836942611100517126001283046365234009955481307872565257473044091313381608159791263786316230151630949815311226943439778736598122386004046683272133961906814572664685888989048766179215234764660875585085000899211932610687576408686985135617338923752904035597360937989791612742556150398864212889145951272893299881282822082728808633958137339671846871073792106925467170646441924257455559942879285311097975480336740845253085633371086143431311445168515512150236106673210262153088204667589231954285455577551341782523513225976246769056531163557438080877960605405062153860126941638563074980719457239680749311215144989367925292393927903052504105570185380648978354675346465070700740173002503053701552766129986277242372954168336601805676501412612487321883066372152585708256299272733172166515646870260895396598872042498423005422308116014968376102799404799668675122836442457373855725644048499226110500697311882158622373709514719423837998645426281193511510684698860326725527226569387924704318656140826691464020270261925101531778459394684929011428733345097029321386228686646104984261128848953175600378362261806600988583953743525726118430673812139809022068405580392587067840028739583580335013398516534848226738815377520782838379269518153391810634153361046947270732068018153345904631604854951288704519001476141976162481093957733237128134187721685030416454764942392160236795523119521926178621876624386485424360907275883996399683191080605099759085829387430392930028594570126532112850676705418320076364457114595588305276598836126897246987376415431036069529948614484113648099890859643981365608827897468637510761958248893897712943192567520350604663767184894109867538278638177057297625814068313539103860685345954358010211909976585651678736593064837218156105383796920666319221133999967756096057930128260392206683687794033205453150041382282704054880585117763747411075100290331480235591703646215844412961911950837054484135662156356297642801940461428117445490160936818596763346112335177235500656445600479730762226378529317551966956864933411937805755627991712167857937516666364501404579580024769957781519817414744089419808471152243946592543989696673406648762312206616891443567492822071289300368958317707443840969408503250598747038371218854386585965207569047165749724549091682890019087700268728474488695945857864315983017682416494236529332513830629760799068320445299170961266517845712791776265286363906578950039388585203063728404421267531908518269871107566663131075464106699308710887611308100204204931833130521049407687296397960256659126990244887387955141462265723250866199669502767865208546967182152198628438610310230695684071368001126879691896958026814248981828018288842163632007511408843548348892202747556574951971864378553353313091304090961137128790213428697435734305256069707617265346425585460664426575528951438919748693903785280696879447554320054107483882962103186688767530374024702896115976524079099840995994868019696274485822536420789820253278764536625424347103272406479707999559275306396643790307941343659627918312834387462024410130889799691261138805413999884682550009280324306014586702792892547098462748654494223732240809020363957600256