PREME/G/MU382001
07992210997507602538721673139804162153058858969654257770007488560395623449857238846622932302857751782699441630005567892580349293664960016944044092360845194704644580320830175197946943330564248130185393820901936501938639207224510111418846671315915546554560450700873781432270390926209675630079914710000433426290773052954325734642781011823836697839692207569142371698391022014716571645887038491430194780776029661992818745062618863876225185686309196477510461161966264432022675901660100679085809210047599801541420622769897863346478072455830866103012170449957757061092648305511344497779777841611923834034593808727594330149838532936394389966663728588401146773524367796981441812180661702170267222700336189316796674053578724641205036851914829713561687037855056994600099671809980614673899922331417610554305465139438018671501623285730650258502066268433637654309325976988977678255996262969290165409194000325504148902649720457445662774266277929753260784175487798813902891676949343753696901361180985367717368440345349111002401783126308741039462923291310119465775317952748207672007954886065479150484461246623464948600596093525099234252755995093335559943458593439371438351756512416904004509965378686087853037610323723043380686912861579998137273528954121756136735470898953985914918407512406115917313018148469056830139648216985342933595462681636175711420848261233961705041064085407016748538773631292222153604659923577062985144773706240880121199218409011060629014290048828326255724577000866936054401980275325467587702619604792658617450304987801777696874863886836745414362245825631280557070579584476576150079111120651309759522867204302094083492457612266360487840477932248674488411543400771610368634589103347314723360339012964217600404830787278390388813770569140142046218908218344389011350417511866884384241821755171253785629003899063734470352626544296424589138956662531527905021077182533230268925293272380696591258616364260426216077734494280329785765136280346847394462808378894274110718839633647423214939938209397777445262458123074794031482643513071344649982788466918622878751093184979682876137270406890957856328330090183980409002434675824570592391919760142793506668522160953592042617709119342491045315204207767411016987905503403635643803515685513493306778884171131400173575032698422658552108964990831455955469467448723975650177995226288583287388778069063894433311576801328121524037397336784832244960882554058869132428450338077973040486097711446948230805599763537443813135023972931798950221477257671299705844700799300699700512514059336605415713592793484710562562638234991131011068115150390870223829160581745493797123866020979200168255951724246091176303886322111462089317965687242156957113254370492783531928582446707244848871171957448975181212570088337008587908145669037065134300564120319011227061455340897013342423155203266798078520502870138533875455733616533755357247833460658105628367425609909439576403171480002430035379382549993624701662591805154584063675160798440963340345598005103350405571139847730346242009192745151138261950240798453443188470742092022434043207616685314445137159285447334320620528128575527309686783209777219008948233737564442324594445685456237431464206165261929600772077168892409335686517654704974665068740637525583768576776120819818861395316978635761544420005794796937554032775476737784166820048968642052225519726730449108232572276723852370023821593882518264415909633803807851305487243579091720689100658751103539445290765424263507667172770268124255320201474764760740934528652296132357129859970361471769753020540948964633691150663990764526448110827411357796584938578039346021354296789524272672446644051976475030851970257252488659920735432624269928445651827793370412144815127831529286287652249336514385854039133043940944520306031877897666031054104938308430161829915218944245823685434947135329487728288981255812730827825906295170895009968423685232851501670569770083665607660537679155093003649447054464862043575507337216864208307361493255600711109810520665228410946983463868119232987205608769594155294015948773059550446976298487694572417018815411405889180140206768453675538904068389435802615605038996176141665811986310200104343929258389585055748388170922988207426327680220882633477164066220040048934887242394476211419567563940450571657683591537689885908272927756337869451504061406165182262414275350719218851336853592456419728841230206911793862318345492254151476507951747184142426041651210977388911857514973799887899009560730455373684218933405027402050528872000940437593580596273883884574964154888114975681764076748538752486666470019278468486995563828184806093023276576357651650363871731004256639769624340370192960042727260935617141542882232264724670351167971820661564798098938618344694596174562948214417745785058427286705335801541326382267297142473833886960553553606250881197625811027569941247390842803636832267148150208705508955175320265847896523051856950723224117451676980102169376918921879055819679196553582874103799861743128130288159204844257801324051765268300550816875428747641316590743962261688985458738083058874707596860860234048678565146339209783987021157141730198181329648207265091304731253223867586923183050415183381713362204933171127841066917759680631282923310441412032878985534294120845511295272004067852737330838513299685145110492374937267865524023121559025260070240200829154298945580038506345904458687707800012502496852100140935166461180714003098565522129278354936749973643058256381477307862916976262547263652635434170466359717634116422363880634560043318925276875474523973659359413560967887823703598491577380027938002838048076305298656256230056586555833253644133951496164877549352215744875217499175405991077139138149798248267373469302074785531950205913354459991266852168106320364313340468940849932502553747280495117892357017353275338075401822936335958915807749374082097303640945381049885689621644061580795395921291700097366849387617793661343675808167175031605023187872900774991461987896052887930258048000216127882109334000701801997034700169553885825405580550865877345639772989394653004705328601730108053392772049002984754845515149283245019381246756741980781220935076003870759694939153599050249269643747005382165037429350107263758594446379806245579471807132087223879195394769668159535319924595759889091823025212615039860430847188963433431879619188577109599897491985469084022348573901505311106765496726040725464183633899000840323220934938660850739058815521296135601859856884140650553707621702085142915441137248666138757402824612917364801735609530286129771330997191049782585397850520005849814530574487101492509708020372433564017018384969522798044459856517753818590621916139226922679992908206979903430848906473722209966138762249449790834951639011448485196805793704226105169269056997834875301763283364143349479570761914574483362569436010416110712665593087866866187100992408034176860996834904045574948742884314033881203226926007780725404063204616000806639394031045070877406770677346442380822375829554997635356539489010272173668669591445005351461376627085206057638583845561600880335113398194388572035552787712562614244570154467849592049322859546070639244145785632053406470876011352952679316876684016753160975410072832400463798010710123899706688876596357168692311109139410075345348496400491877894137528291503935211652947800413027194467210407047881036709312223905333723830471864709755020129444740942388762605598672889610624549073701696945941699758538105546727017601466137546186406616954461525109756038847684838674948982921570673291271800706117368265213429121626920942163456692952200224150260200811215599727235809891573085114549957428776503875124734912446424041918158905705635485113928565274971113935930915810281320349621203868713193132012951599330421556351865779441500755116042322659961177330946428556405142812099526074145462553585811624426435012900292983184607595534921835966446991642514710479391809937208873856220599919577822906798226681538248161172280960438757797425601661895140417192479440957040022351795921408078010353836908658516202916656985211068423166193116262743569682229657726046055013587929651075599680134624657678625525981672733724871027757796040800538752332810820296025408498466153638725344175039101605542691740090920771983749872231612757150017001254745156317059265932214415437501757955416510416869508637044701302197300332203865432135447519682843930472213770391896629249975505282373507342273564817112227027334815795411380824305983944102808301181524665998715316100580588766230974928730998130336715890740302684121560884935934567865212677298664038866162667679256211956763710310612425708469850497396829051266405441556748788562629840314541550475728121964535778494465294938854825755258480427944996744825618715411802957133621739819396311727618291444629298277352318071566959811613243724317610540246735891086951950277420343577106740432798854103181685550521422878854599384202357656101688295486476332448822835906480699426533536465019193949773893168663545636441706609293406097983033621946326017994412995701856573605430710866432246548185537721989199894879516812988695844824451243011550315757603469441620878131330941654474347973758938392005862570215568782468192243110093490381036137355280365106068862123671384330975926031959090072491983042647813244434934058489464696852392766661188112364366475625653799495957574245485992966820437524922112676311097220219273549765599062757318860171095768580870494922175774943379861321299459659063012843981436659165393519425018845827873256405153166889150878824268757269459866357056282870087693459508774289075155434049924813076675685348133519016380272291495756576528339131433537533831643533796679464821508450092495979231815750029485532844649740625848058546832879276318974115018025985430054068880752793937202987737431859592773921965942850711899453310324939254252373551002569135988532533462057947721330071894503621246789630655032510549191889887580034379333564021555065595836993858460840100754336900516236750891672581579320085953313440593173793895860259301984868318595718136669274782609707166654144632860304140253350766349124362061538788426806168286603463616745895477067892128992681237306942190658508496288058662937085227982841482074975144116949938574717019068762526703201732119173889475860343464551179331833807393047352438627997620380458100706113247282433827127000933462303345401761808583597900542159850973860531162332010254296189577327359730624408887453979331069379435865916583044025757056734789973197848289249965043097631167706557162269640988112912958865784436032907265685004911606725619768466469871016754399201101357048530433242096165913817144186996572941940141453744927012884997735356114339785608328274005289171578658296209784136515994678745433989111955204780298066073198453520296224134971014252334345479860657247419045344546287086864816758745402209062560734431100410338606948681101499558217181157693868262452266715452089305429149347855613523828777150922844779270810510688642386202762486207129200933479159599292443486877582310115580399088008055842416766251801365512208408825736498864972865169131016264105325666032316996292113641098706608348838300489105761534093801811698117819223214052356521359806208409760674591753083623576206092142018504907224320449619795486204826391125208464238905254696825967714575085279297861613348143664074895932795593564886178851804383491883963409573150354777450592489214969969333716829132356110899658944154965631004958331925699498969470375518418113357539009331240672879992770769470688662929797025079417319912316940745601944256703779892606536767238960452125125115067184070951503614918241405241348958209763902892623889717553797271417607829841543543712844489368056457213589768581242198504634360305007319965008138460484458837148653146168331147803637495388403157646662876359258692750800007443215082165949977026340314090379787871375357144954704666501676094031756231707066277742221829821240142320932400673973329254860955978903865480371872894120323496145885320154691202880208119095064829314164118043747559833694422381607497866351997723304909421187618788066990659445488181136190891298791243471008712084870219256645050411920789220883198894557204198986606813047986573442631094101615443262486065890812299016917561073714467319821359351020639139185897986132425987736195758134302483354048216012830519862396750746645691425030022727217816410560774820184190991592250224687486086229090293264298571600797422682976717995761682320818665824490212280791020592609955864860010811715489289640913279428536597956473389523932050246670869216682819049097311877809998136135468912479452501371195668946468851096911585819377381665953574882174511377505568372169704598483526380225248038028836948488633804973874256225753559529319025860500246802919360614983731416891058061961232128957991486714705283049538709612094745916915622950075261504843085701599774904896831501819932525491879603784473297718425129735484089889010063207048456535623311010101037334683456781355745889252484142834737923192085173608233773655548563719911290974947135797984916353045058240119712849534713640710895815055988355450458542498162181206581550713042712521697741979298175968553320421577218563619193825405451098618937022331782716473441213855282025942912364097932921132004753713013645183841031128406045365806846859749931896266742369588809537626254216171610151133287047291733947125127826937529046266114746513952685918416256995422933730319759686254505619541123497010487354016846051241510843227572236866443042357945395039783346107840641164489063183010426010804252309608585439094536619554520926641569877516769430398873106125827870053923911518266834634694007754706587987587935053541105262007803008532634430137235278679188335652278696448040784481559790748824226005887025116551473206030592985161868780222732866002009193922926430660833084286764357260305398233580822851796324191672132824563378549807202711266389789136834035521266568548643370660191506921566483195654389554627955172295765851572171160566128351152877566775036702310357536616412869707593448308789324683471424929271325558273491219538229217927685509233191009232122329625323256245446901897370715399727552443710999731558124249786587838100925970211295411966958811140692317589226201696041093660968056329173772227163969330163573166274034081860390473333395670374796703124644448732516060714279216117498555009683265896352869452135655397916181062323938164608397670844427931187581470066354717190959425739446763804140037482449149202578420793898297551211946989237455180448802848635752930928977096647360986277126660366951648033591354685761390599564687508558886630867772578144651974332463604542883548115453000384270785004600103921981344008182591578342979687280954305736155135671068129628792227359037664899727977538772498451253913530926717676163006805755763668469539485782402369380583197522037109479831107379464096324404631371665893696863441237013998969830753685417585833692312655851198686502888340800773234878005065104579922603191525127187987677180098655506069862580569459845780856972656759903732630795434578817361006750746042251776225809742843343770850113154371614074095233299545838638825063836257562881607011162144607236436391386308727873859115651168984823902561217954508070785710090467930289615160072298158259384837269338981557201005354350406788732420137735605404845752641010440614998484072307772096935491509161615916698000342686421569190192411321749011574207052446954321357859240973156691079972625877012107384914652495501044846026836968493300791268805518415870183938958822424122248930456865281392421678601154465954485921164967287770411703939977782330158089772009358314349900990694827031277245422352563612056433900698364468153365172036137703615488298559039475420985103728972448033948565173955744094526871369888155807111385728299311711411994575955082067858960685984299106299351683058324028015622734085798998687184986926705938185716972483219969746462905725937605675684975484953569336993535255716672566917392644149854743326124098080991234595852880081330131345784513069047842993356377754413039748508029299543035974678097220249398853077596570760239436118929208381714269354534771949160163844407528009347302238974920633839774903526513549507075042470989471578988677039682860417186358675710391722379526187763515894310754203289772349206532995914192339022229164822871355831754816904028291985252446849993781094993204190117265075668036986763538861162888786199481036115632834250278203835872305460191155853919076354747481171413561312820973912341823680296890014996260193889122706299088238581245706596654663394995253425733402638468418235032948792983103314285256082029241385910286327686007283437403900993342476769097490081360363990234613512034436795377508774864968101592101015750406759523551594414028323277236673570227623108016708243671153969679981360378225187578264899178177968792562752337746350440432943135019795110477170076985610882112643826065063209198541077042827657532583679425996565667267333381552662175188454428316492865656327578318121620486255772888201937330823359995035866167477146038733078878120733620805142316131878255884875590868971017135326496585673934490896553221538584031819548024134917276014626810119127441781132383569237886599143625303910254994701129011720930506251227748989826227827709776238100836275412786564977643001595051733841356762404441889069228401832247603285518497979126226729595012487854126722811944295361652258329695232393793298665284508041969989096159487603675391808492352325841236445928548937836257517624316085659257042750918219173391123205086943057732006686007889406437777566280733388877177207834309413871877256292395110916697112856948214881190190518931742464604130113814562906050323421356440394957014309244534394717837117747514736074454666466149636309585059731412609615617356656331127205051830699520338693193854556470272169590980619436806428722852613305419106665420922948137297148740132204094799841219875373884973723490204172318627414551613986793870382355863931454473034121146476190652163023077734186244917483386690701644219876455410566642445246596603256385004262120451788517996378863302328572170142655173049004891967114701790410407210895392857586126427180355300658657412863071156980232854301502293555359955187358218959385211066414576018691896177103273162223985014286926004266554723252243046986878147898188230964565301273272946155514096797017169868664659647165570179842528053697604986981602256421425779654653440509878166465166758753671421074971786317132407817150602589861737634556942870575771089651094950658743972767366542866010677296963302964711707054029724748959307342676190000427601851574586278824942970219322075995028682842521595483268451646694883715485955450267606735925964783281900985162262047184990515533995882109874734346115427671449560015242724140966645827746233795796873734863625067338431664805880560486627231064570007820192815793022192013744911662248155995823803726096392336770677509610951225398887466573723466409756810084660562035481207804431068320987400364627241404134578868839089592116837738824396462819272765956968377740276596200583946830145660931846858674720645916426541523382735940591832840275654537691866912452730620224848125391781205799954272152832570497347936276620117330744937584262368280814325475595943655223959391597355488958190662190274579395064564225533063343814333182734564746620452837593748694607896369457619646599153063789757718664016591685185253430146350463324995275539031396351341917731706406806649266538519600668802536713364911462833698704829091618548412059585935775805033542127990788664746178885022907214158238811327921951315930331328967999634112408343628676751489501480000101924099635650118812882029958384988921595419232108121368619070721004347370115077858618278512697812862051595614882399593260165104803329187740768117766276667639157096315326892899914510333760714687860732247784019162067849771596307306361574455085789444835723932791011306680532635859225303510613364085228802892453313765872919922826510464612697601755826347279737909423330269390926773755845250776269930568077693854409042374447619960859895846237335634800465639393316046765301265389612691947114472385567223980063360427916056541762947972856775603704841003743786059844594801104878128759915003250752812588896139496693840920266185981909642841509674284365627418406133193533603925979785254257080689386043026018794863693642767529180014247721132317622276972629498492442694832373430149860782809283568940215591101328864741336903405771291880138890098373972872731373480601883038916130091845663955546651445565834504945046348423771946654352955032327524387511451243364221155084155753855390205173856965561238848181863871284279103958923350002076277270055210036965639738910595511225725298604980589053370553168691448233110369170226352540454485633901661108305165027315267132674482959628739993341875613156082773017397868858519488952308200616095799248501604973171336815128227681530510795422490490324286933529037878629177989050967379204686446197390750673743234931585066136051058792067903131534460323097419071744534138229137778776209719297345350272216232720253197602670568794041553470382030484497109913665280917673410915830132065421444748010183580223754055563855292312137651614185382111426241356001681704838529116466050166736873239141010493469634839571025683052305828253100235060052117706031309687355270010859569444089410766066771604036147709975534083706581155518574998176609646678319254393349828072941737324971531692810942877770087267176512580185613178452344162279925887942380374246401593635264097915838855731553880524325274423651736997014471214453803278041533607360144563860544076249331468785732489668497443820940266787729186944704216452522498148415463397519169345947130368264567497714290265628006391649964601944212529152978304738480083425683337695294058003395294505426095563915815158900399674539853541724171521552948240189725550977321760754820753271922674062381880373965102450530184798106824062778076685712702171466587609899345928481907104184486436030296543637403664170907847069752395283804252468933632525368091514480401540177573375795032566686837640402263129096378485324648197105447213506513643685216142521735111601632555215457818014853552930225497546557838552800241543814394021912050388820824219751510062508527743293534115443205089759453895558230885530771899943932690505149066527891380779363185157170062904214127860901966155481196111608828404734315393996076916212564052137509454468730191535206565497912282559405630173746110632500285462190946489726415994780983582786355781564327745888340385231065237754740465704022992281877925645437000708871933195427356564464563478175997322155381170908556657537657436764940778737843196976515113001055654983158294510002029205238579650305974428077410267586621690335268224728494225315972127756243311409253223078203658060123512614014051139374990221764570835939389633982014228557220565194614714697407255119487678618420771078011799929382908471358662014247903762548411429215768725006489979398582006280472180533838219716333414987198671622186188473414135771484970815674618136782143655094933472648532201145357743749311116150037816770037074169805804476251567602726610009398654599494673772797011388263938148857991610853304481902451907104681700547989137885922101291222858957236733368576457697320824696460932138709362835098664845416766651812490147031343245432407780805939710386638326254092687728560440660057647835165432275747732863140285051361453729692201840967655671160858990055844276444768398958824061969685746777525538579898666104026056723736715333812670386951987923780266215109493463474857070703394248404663085725288979136771747517079523980110567133217609032337441453022842294602172792669761651487555334260726700624104265245882739388180502336430585972112547559552463710430630404715788161757904812376073925773135514950035364747456508598092210060007427091238928204942220918718073278652772401090242828298879183502313577082382329678753563476720041903506435943198082921327949632630742481051669696312937119682999627754648709779023347339748283226904803656840744914277902235991354227414705647811399754488128278900374672184730034990441970881808565267245587670448393531925477496325164323613107481229500605861860432187203757569904909609929607435362390917135131461359380066082286671797001798498301933034493222536644894701600766875477196523611797156985732452048482188455545659430088000511451581750436642890045102589235996850693766029152009069780741473749362115201754962728752190242547875243152118857951303367474458356712766775687329501695407936805964877630397236585461924799651012022927932196693940066862316419515258474118509800434344513528671073722693985024573367593710536591293903119232836792518636859570786932339957927089936087687395202888142460961308036919492430114700008004344763606300555806590808366376529675449668770297403039866354110958637039542286177084539651799056700280364292148608232722723619517901621643572779287973997569442760553151734896127185362691599933958598622362135740812868813859557565119304598661414795881143093000731878556468340625662204265364990889826063658835751474413299556939918712535895324429641142944187267504483547055608006775547084780671760251377266904052211705875103436995774025581136707365122404890223120315757381972862610305441343718859028679004591534247013374048248352417944337132431462633163651873470153783262833494842452645956130136872798099406491001666384772990247571669959664141772878118832799159586736565362025534867086442539942920179916895932873907127024338110457803934677437858958344584748932376992499471363504086315192735026548982181511114422408414486407528881651377044986272876617236700996059206519898970876248730259766543007716229633437453436592151270306642618484823928433349695461231145409823300512691338180628460854094877209951378706524334767741923165008921081775199160593300944777674418670050056602170795768362283443944132118651826672219963952447409196380052015817450050966580689065164687514420925468927152798130539919530834305833814094479833445367135029834301485886391131093794793907213230215970036569039795116770122966655083157083301031706889540085161031773300295384564802438507722797743094460185286907625079525180060649145026021377798018388371598574548768969224208864808511869364696868029308433269008861693313695794916227490722566987243457407322056586081088280703861643734146120295534054901789396899874283256637738298019690102682353829004053768823607169699643953878887969572427399837623221406249581970427678651293941364561887931627607346184971229447368677234383502215416497318385391189075640819891566672412852701117837092664920488618331192421434910206979723626787355404192147076159339869068992977243576091863595312055191358705577542959729850997491317225849510826758360854040746698344418467326307639147305162277221433100154304915197140921324552234357705018974472955051328462941940482631843942435675094182811380894712442858859964619620645839313943049523995647654981169233663286406197717262606608065185209238837379809062521258775846109098293056959033861711725051611293561533803968071364288372655334697410675500326737189394346078689850924263837354086338162178996906702529261239312113996153755091418468742822790881082416834640457994103357722113687732877696974208392212160397057564891602107748263441044671111970541928236835868459115982300779733468680952281346774597492633606558061685810360221137143407127400281869522710735599842973340085570150115864802025359003426921088450234887843272607016917120831792611855967280088993127394067077866535763269073633047717605230893209795557568505164373569214290265553238263112422557831191499276597700174239629853001126488258236053322135139450692538273862660807997662943593048613559464942189379330736611063577205195616115989573601104881606002006722881545930810252331777888637666552181878207011719432689764901991480856712574444304385134408992771820644269107709111621933925892983422709945984947580637428160372073452806714282950191810122520714516206868048850421558142395069155340115988070325514678044622795927994623838309541151152360676762744178070466282900012018102266688247324804134433694993936933841001728888250513371848094868179646054647921451254946498976074235777566697306364311767941844967223050167335167662716492585404677372902383499843292997691831383874783677035397386420708023221120979597266994952480230466234860507475429659647250087589285055265898078445620604469708863678359582613726116992410520673111592432098095888578074205410468379427760654889957135699217957003937781438849605482240202418232903839220103895953225868151082775724951466319420037563546427774933739332926257668929553866386443792516324463137947182539489628983320012978085968054194360847068332039638912870472185792539508296034570348028977327934157516788121000880086108713781790202777751724596097703572019620361530427773106283796885758175679333920832961182100637703885641227021189403918441443866392481149906996798892152918397118155027811319468294826501317471651927369272798145941013756595600838897066975927150930411274485912162777534550782460969207377987140823477044350091951026277028402305288239072151364970196214435839486563747051177859232751451225615690641180745422682619594361284162662645084234181475760014707167514911131313135343454327934509741595332923314060319121211742555958589838482779078782543391127659641498100978772572807884718747333647179027711635854443748535376412196537920132472493300439877592120632045411170771534466111661985665940452515339075051185298401390029469640983695111798497415763734827952090484536784388598708918723102015805459027360471147232261862305590371666687657417278942684976190950415942984749072846914718590297020743137761373737144400059592202299300497264070399064262652574141781119004299057953866289427737711592541002775701385676556571445819771181036756449035493648542676469986003600017117019967846610764357801371257390284795033564343251246436958824174295765211917784444590864238099422759796398508079073451747133748424084273069073273462208745877683736504725829366689102020575282623717315803228661673844587504276911068421345576406498165630535642078622795396281112096675765912336838279710627992015565654771715641816764825627369320928429812181283895266799565953593859570759032137411191582989310559743685348402390844915807462213899559116175172142593293994466269815852953886067439707241482166771653619187399233152185307055537870518043936523968227186043641228634219719247611174419369721555700121856738655846109406981743417823197891535924268056050530025323218031308685553434418609155005188516087196787530978018461297958154686628088436001267512228451262241381109273046626815325278378875243504937575404768389070551909602973153753695984917750164107364760414138050569212864250135096684009634797282358905059726148002697552678660166488629524668571862268131088233327093870071283005678218635243537623069810848111410863808429691088323292900076025824802283750216207332429893458861327351320961539090446894904188747475807754454101073431288229432603913654325473664043430679333816881152081116799584251087873374759791959271251169947586394832163175417878073282180365579853829098042757028818399595321294264610422902642021256856360317174012098427471443682759167162102896203097930247197022795840566149379935814211750841933834532377755374170720721819203426277830808454875485010650479777636341495105376906483394097174649599047980383895263059464651800418598536488349560357961660845424971396191718489938103653065580174357401892916147556805804323556319239879954501278250236779983856597249724697228536702702807024914645424772102936737793779046295697055831343726928574482706493398025331054248095644593367806423959540103783885728992326195147106291448065067871628108317991535391326158278064017719943213860406997036254563952932078198351777218303415477749031037861107363800740120544606603782191826854589187360221307085738939858327304170337962534797654616461351939034649675779223704739220861257000845744968365126167309618045110287030418455431621001228429673374619202134733591245565048683428188292965367151724470919805018665302338289969715852628199342307730938816488092206097030811047434721157424647803171251889545087605646249270661330350711264672638713750044795085124742939020822523045180913966398572156179316278863214965699315717494905964748411403638320029841564293485135940169830624111425292297245215239657961900273307352340829417833537889824876287573613735712334103694689477444017263912927839721041851124025794184553088402383409854195271274414928207581836282873211404300273217290770110973445025924071962869473831387796132702453271635060471040123111587279957038774045657609263070241487999559744778074060081114745708081308008224593085039358194949363478615536960468456620163352207365852125713794019996323565940711884844279135798400178486504083788870747394360703425158795432476619310579548807324639250623627340005841531095471358254887867465867558538965637278625967826105560713133040909299822660676691631669381034624919260309453516569082326692831399510367081048606963736816995110837155153128665493768013212327528579312758074359093118947456478374340346157280509762098379067459636121353459474921242985711137244634929131332671574411886188095610113778345756372230914421872403345294077792965328277052912782320891314595651668279966231267212132528031841607301737736886160636460802803646836079213362439714662255267213783876712278507480262639160681514479818977540207756470701778793438520513817657556225696728102291960490842863890942106195570170164911976918455846026856202997707385294096798614475429969595590212108244967787714107243797410281372581386536831456800508039066902942779564907482485359978327820591667891395086056106713652319500067292968538570727394928843502576191558226930971362787449201974677032720324933545474984673442593117370505552872868638569884928756819345094057563128318272928741573324904601480273173458025528155437564786638519667681983668784731077771127752953949490868764597250005914777466189671303663062326394032856514353529988331107686478404775982318013575675819194622901917091733057043776103679348004533122952116113144931505659786685999420378745424400961562940590658822858258952243746661834853619576721590088157479753452259453329977161329366056740587976469421514157659542446027784007512613829131028856001129779875387067348042332198316471572980142636616244077034168571958278811783689475228866486856133309232957062134635290640326228440933798101214516791253659652055599144156858091825288323597026204935689479187764807826280884603652122505396480939822322499751902509628234970321155709051872363711020456384972394788588768805954624190596182204136027226977934121488260338442140435345793981662232496551628381403692228651808639426200754642325186437556380469100563974124703534256387595933144004853603587501119457281708037315676516508988940964056869733976179933847448031194290038062552922708102858106176524487192556095869871993058471541569463297978152904388794473714881460130595861033081514767993282416828918630845506427203763569287227871457783572198496326638951025314404174465941453590294599073903323337191925803325407445441875403327528146302635343437981932409448248898726788695935492656500146696168641993357668581422120394050626147407063612945591255733929141139176469482663276130257674107096991610369092752064044970547710260987164956073960701337568981859409424409133486708122080253848706991563729570657922255969211398221057274772672051562628975132986013512989408379829528275901803981763739345997516180501104049202283080403407887635907213462480114111780454616857021037660126264537026956437062637920658851143574010573383186732110111469127139288545217718744551510599465655708879250672231735218454322914938159447456116658409188321832039032746802338469606238383612729211950376944512460266279462183815794872445804974239193790493567443450827062596507842977824132351213529783594950816753056832493615521445313811819627106769142491455864402155515698298039326730573361910595872761624273162790780180125759255196844520181419428199124252830187448220395343375546746339782519151842854349434640645638632982734312140868700103907176710570428452859001656919164383326786181164265571120236939214558095679127885885459109758324628015462002704297047977998174292338098572769166934881155590126112127471586735260427368133312647121069598086944031905221146785819281841159750613434387720817758823047815784786910740718669187862113043816995479263584958671314039770282772943808681499781978766966488218678568895401087657622543316589424325750570415359462232203233098915597313165372317409401729365836572667728741422181581244198902415354720972057790987796540171860351745691781616204154548016621405762568589035634317379034177641105828306298974390378378307630008293887388826060384853788697737008431984322146039128756890562755802059540354876279447023973828168390853750044202922076474058421950854614968287044400979861674541952754868285222530217972207604602618788736711517594648530303846052766009359888777970431158438409797752224940649696280144811493878922153332047090756850051510065439068474934884950977306972104689200509995635203999619616021401287894920363666769443748538594681268255639851662511570376325126300647602677985818103516380925475546689169239359930543094716755036861150679717428388868285607386171773812446887052611903982625292540056678830799076938483254210057932355104055689474096976339770585655328177604860025576908859284598681646955795847457740953336484490361917589922573500729134285843411295511402598847279645236991818940837071949110613582743542542813605056473064084011712859926637870396630731744018024152774778897478426163298604877449483654131398626362361708096648571115521958932028319611577660920114071416958856202349382660872012300662780143403825442190972657427303289771106660825249003582208727661882589513840624804993152373416690033636589509569832672073721202685460841704420019709670361048876176655852528603472518870740760581855603440705813689500640466426842530601245884290522638662388684435719257002817480350158768546232299426524175946154021402310309218507585362254245434691572494992772783230071322998144393892682655798437667213237983799817643103773013988286736804985564246636184130171125576793804055268079348866099098282121037406919286952878139365765556855571349474378187293082495654974468049029302580610390504914863531702903905980858855588349577163897362233915178665013635812008016131828962110591877406098670544318702886288253788590380718382115064553897569528207787230243966539534658103684179326502000828584548233976947499264452763026865478961994077740473188022788780712831364731154926061554130165773865310944941223387004334891476387577409411919951744909491436551958242364859976476378571483116269994930021582116667421817018055755212697922898779063072641195456686961056927045350736950115153482368726393042812760971236912279886403846863924374692934521744123106175923392890601710047223418539069519891071982294360779820772619518298220227787933511292913478582475603697442557338647312920011186587441180740491527011347677672785393644811024683319749563555680229736292322901988306664657388078812364233653152276573054660597233551207217903785787537653405018720547263381854502345199389317303046904099502949208026107426782582745566402219252586545305917359259545570205056511717915413190599986062786351421053569230582238232754508191259501364017581874693681211820519638500516542795973659928427588303868089079470375300117967472355788306674151315530537505303971077406485358676088989321881947480074298189749583237077153059120660970647636476318788967329920683909603709545634599519696020134688391224961048446193264180252801964472097312658019193041402988744784541999431186294861629063110747121671953587793152851141871414054968963050670050462126423082455401454079388587700787640580438705518786181433097018224493917845855152686674921211916943456385215506610273484676372321133247165340607389393426325995334473327802174081850619073362782910124509681632175975702715397489263540623144566808562597084500067611012933231987431162838452668951282863450162982970825656409083268574217521697548497462726482443548246731410709506362756272388981103191511802845783237446765672080194437773761728459937940588865279513331655992723136154857107001203920555231312895601893625586265133810076696188919705732362495673827786383323175616441322989590048617128636160619269644706954489540219742970274842848083877482677711832287013835520067981013822874792498188393186699618235719199562136224234193562394147872180917383855081851068571968425298657200268222606630230847655649244690721466923615542052780351137737552459628594875515449746677875568462925263141662163433992378775101952732903955470616252568612288952654433321134701645164401051958671051279490937174304984001186090816107441931454678424880939814280687746402284320425688499471165055613777200126731923125656474288242005622200765081315169404011927415311417523248953613726121190534094028360615461904694877630767691435314238458647804354379876362827904060565474433861948737915642794795848171681257472561319123025979281950568478347149373830374276186197524926991285390390396308559903897526644936235591103983405338692630104452953566085052148888232812672016237465785933407317965414379549453062123846144205529516700285623741656593074031583227431995102846809934891181609174696298253311150107350299166679107382385804978776062820914501153896402090205914893094546773824370880700851935672307014594634229597628363020929627032652926879095411104677646279244014680704280371727189661402300062340796110633934107889620479055537034151093365065564946627911427252164208667870656793664606916902911679913736482786169375326282600429780583574842940886999485048077904955701924641604829946751736482341458559964850738716679665868707105184145277535440758959146604018513520751895017584766162590631655481617600583203015434792753379001793273477670362760968804647482492468385155537757997202505130923874582656895440967935830615361040013699638084557626598994717775575153756140908751556701562808745134628283267968956282759093642166047160148336626107278018690668235617022311747782934199989555809168812438192586201513979875373802420942010643585260311520462844494771075147824340542959409811122475612401457033070350141743324507088442786169221264496507438399535969490289943410529272506705637925312825784684786327908992198481458446827611298093200285665170921582556573205585917265642274604795106120585314880734828468350263333408921898281872100333121138006190903676942883044918863405016814862902585673806406113479269295178178088043937822125162886310366426767677985012218229713672365823253168695911642897158868888403276353968369486810129118154935534203974432045999479037424805821794391557197529610280648039062623741698219603708129070817134475093498346887046179485900191792290645828676945487426676968395257906153289056789015546713259616526847841395009835928965387694517589996973208027604836014323151522690866273235515755122702080278283011829349103410835053262975815668845590851508840976223628045553863206278584157964892880778947506828364800587022616544377649329993943909165564302444068732986851271044284226211383238677395604489555829328105278206312523987869513454557137364859309518361611694859118807019427125585282365741972758803386957943186578712316803582780835399072799098226294088451469341312428998971110187288002151680897432056002304370934400741590920011502256586229552114011819011954739940481856715943433674507507609683876854034524689864608592298716735762974788875212592527800315142598427034855883411229867706493864589909401414392385659400306794927584994525529029634537032915975843798788707444858113877576899236522500507629500335240163254566510455533911517369887112119005134039597074166112382516870454594632887266249852662946844144736699747882385251543145980083569260319884594058626618289126043290459260426114431671233591734461191895072944752909781894487935876230835559559681534529416182438044888422754235854597761759109885275437606826608742902842664619047300502533261543754157384550169034138067667320353073737044722116398673191892562417428704753723288963828589126317928188399237997059700422549443656618153278991755069476089576995995497020982430087261757155011451828196486696204561343836089151151965113312062761738078087215242289693703025939619982691092459801474602523297576176589456781006676844064387007592224999073986923923229726911801314795451014873329117857788120495485089339706497534505780051205804490484953197978330414894940318629142812746283250253824233089704288208464247052766616102499093172425083577791056777182186385787198159217089757384911321422350607852808506890835176400205196330230797424330214219424494222573230479703827072550942772575378423727551700719865310585049125164592899373328087612236833959997310325943995769281491345984830259318078150316439410606133568428416587215284263598600501025918639790149399595317219111265667428013024838034706354441813270722980137767367199784978282048791704978330093457293117095458601917963732847484096717171501806440183906429131909784910702076588995793660820583425897858904529227681678148753666499377141833101358313796009179614578400951710920660703253039626072619050626419809660517791133810708268309840357870729048675671482974523718009418261436928728780605067177067508505258775546048938929095269081557075644716896016527008496311051971126091664876372743605388091539963816659355165231834654436674616970547080012800586006710079440225235110293675083647798281319006707532942401192090034260279194264800732311492750567628739092108766728461031754605633931786726792671410855317113102977269143585985671627094792766318802197715528615273871080369508029554145859667968139567810003569128008384360981544794455017227450852830241740460680959243402009618011420824980733784038028444989419193689686917457875883917249306859711115335261434045720866804570724732034504785111108938887977169405041484083957368520493457932217419185080720133448143161233203744744820080732668032143854349786535852566556251365145525687475924097753873545347648408758851695924696007597767031842984866949879414830171731001363444917049716772508890860835969653377349504143578776256504188830543552232137136116333877192930095861784633343703934415904552765062598599547955877034558459606827491992129084907263612950220978813578086116271814928290109897664586472638417761595702721952995556506990190678966455234868201687181489775992812567543260368497696269700305568041002341665096152349291284354889085251727144232213767563229015261970522182617502355517499518478771096929236906731744116236772875354270356158496030199070860930944002537548322949056395553113821875584983747161568727307334889454288050887812006297029584164236474454360587463775321876258320008204174001935091117761832759085705236000004983520133043022179298986313185454999386318539015811118035901412356011152150748393993696112637183399680517856628443699635265702301732959533610650543505831495879084051351936225487874853458086549888981249431699728441171664091910958054578722930101661404783968057281910366882969151084370658405277273984795609822955478755329539989972278934242740030062071793896189806034152467603667344642981596930671368990696808762162279795904017103188682890491778831123356531131359684227145126729074181895000891583483109601833570878759373172968305983548240733150435088148408675518688875554591675901878508030772866359089440550650002447447753937136430018533809795050856162799570477113586148152669755330776644638999441730384993591061768636078533989927281420464140522351318903716156675144427207639313430403820090558625579021616890275405437223633576635936772913679730061299696924821598646623705180787702954321489604859567420433231931722042408284105532756699137296968309119461075946634970237125066084030379693630212033739176984623254610515647377876698138939692698012852045666381567779115130758535469091326094206351343480251862070394996184657211309552952082513981061278128572363349690291195404824097556797039772770441213809828141574383077154642161146013515408220750884808042391367834295247184052508747449903347385476635717707569555589407841395921820602848466443999251241082369836002463860638655117256558373513852774646309381931397387102789068194302071531052530431041113858738950545893301768986151797130488052150059230414110010533987418022540443345482797801479971574335939030736998841237727271145154854695543932164315022723793706376714134922438025977892029613257151094119905810101525283843657301263443828998175603184988114328252109664900643553141452167542338964020250901037969270553198923627263534797917570549621196849192843785606331417925295713166820444292386747313814902870636339651077377673463690196212120946300728210879357781247314011116797382668813998009395230947016035649913407237594546843473721546799776583403842119408025632492583454278131660007993755713847365808508324257330674366379012801529799452194349302136056985967135035595306220322661986624478622274927388999004966535261623267190975747373188953938857406646196949328896375668868837120282996013897291837397078330568464652031479358430000757728629801967215230113754367663104963181984611101654776148242839233204299228483993794843916648648465622490810331923657612137678850091899444246814018188842167731983292474623466767419682021101316051048786903021019396797112255703014607361089036607919156661708983195605573977686891459856557549682864492559805071042623549363552316807043114114335494296033855379916039732920983263064411282539485902779293639135648570791102930864667027232880143755920231496901367252484102595431542845761777907746393377294328446515274578965861710241650127916409351902185977792373017417971018541330833232543140802719570611396991896834217235765344083903060943668257081294064176401229211100580563662887892645633917608971278526365842817835385060352891390979934494658474473259132952987096938407795632014959723022313864789620088892383296685086418193015744607883636337540212064097065951971754112529741492394285811337260017488410274846415491728688461167191860558710399994868707267476798157097820805487091232263585646485476543030679335677846071873942401005798827093444737980962899383087890921225714034314722189296045625166061876691929640805078061566496970315308455368401702311161606505228891722431339103852930762969827274965107047648126984142298264420261343191872961482217235465090600695466304846421761710536482380675619418987552982639735607660803842049868451262860815842269659681216783416219183948927704941640325090472263898830102697659683887830780800495154672485937435526379438382346981221936282555138155790913183116240560956784697387347933372935948958158255405112728986121351541538225268173397447626296862393033517737674933736378132596509210220318261579764794977635587145651429567734714338296630790122184285396498141339191957351581489191533587297663705218985310230852135837155195623830373630773022052172913448791558646168058504830530071498988630418566840375361682253419324611521267263546974828307432799227737406320276534584173346051009977273276233438227627718926744030833330071816587265228585049467480519529566527102044917873396939884559483286707437896120593329492611165621734234295641362768789105585431936437678925162624914117008463042049080463193024844631106496129399816686549853358948195462279840782804674927789365938470854396116505768837251904225350794906203283040413278978076630984292628948359157832962591968330051560528591113008608380808432442002532073581170191705121324920741599413337113521542540513055977583042436837471455007071410580555636739599584069060160044131353460204797545626484852842571080166874096484074652683872461499329413614416265059116517193423676892409077682432518317029429229255504089097971060859881153556819588128893665607114213220141766828257794902897915488060197565013073423729922669632098474765938812765922347957047719536247533526475476921362457887877658213138917876816086043765304527940125430665961144695747440280625844940784116955243721666184083044394682834748634576501097860361365622643345751134800718727438243862374768389156894981367046050098913719654479868208371655675187807711547669574821041122096194929575413346664982394463899186496935490949802380578144654974665822982915903366318793658400034075837487353106892611466251766072744463999956579767144467950526651778588484848573202806869730851268689788923579781272173507364402144728844988554922101348336186687585810793466818426546460973378914982223265143731411278558149794428651529203302782034235371011865340143953454270373979637319086778055279394901551379732208251351692979844281037681276254813972933936580618997377529125828416016744920990034086023685775254873849488329640257726883383935056158894117216280887715573218858344316934466335205289354676265255454441277214492079007993320373334687577518151012556713375626514724098814135760916509121693185733468327469258653874299871730399299596130190213459120129458006471657286404365853141473071265530910486454406100743114492468480272316441764428796991153077871847662134047675957876997641562007304107511282148624076668515667025042266918838789747789147422307297836566905372389216343196313020892010416922496344556591734138975904770682227343484259493415111959222563671486536003385099217749128860204857482604906194848038448282425575695057931356367086345334979623868406400590435644247049645674735094077312343978522751104060838448915194575027316907922487213714184847093361681357265729245518563451339477128394839344202824901488597139756939218275293530605448244577934751274251909054375827688208696679030185145719922040444684790498044570991608243292366437583529013208636787363376078609618015308303018341532201153765274659769183742979000410785596739876029284613006941711831971011233136405783794817506068545089590076436933309388636117235765864337838937453674284904588107746424393129769252935052221573559942337062486308758911128737712773727915561921028890579670693970269636990451716408385247594064339708831842307312279442405484255609827293814628617957503099707830238424692263577351501472728881689812498840172617142338536377437837824613057195720090869283385425704069724062657071967434289066089409022639749802882268792975307156302052636993328288044568201170253554021243511129316951786317364171848729694937540601166335439423922647503649974332423931797989600636355148397250854399643973332024866523754352392191814562229256198383914052777477303289161727576866624136709547658331470254049744851242214531843850932541259557775271816561388136678478854036984679685011514913590657169505155719318180016748616824070986939152725028191991455660772513494454236404713112906252788542611187898546666035963185921025996502074902687758038179988337146652850535988973032076976567053620105132255256848314612982140098579779347445430971292999633470318920699042340736188353948170482407337365859833178273692217542200491820129273835618614663010454063328613310547527839134548050100916981035670014254459694389423749609833168233579099170694998447229110983992506903119266261077321108250338969028310948897914926519928626328860624958235398634409477274147055923491886961179535943518664157568053878388757626957441236225921550542472490019147433244851153836665594830526527480221563439113884097956031215173931385420376804076499851314523337906672264053954254278688497647940907141492817220656011732388508220285548665857400051705259787818866433055755295651417821328927646193485212119062153212714372699378241291592121499990999976307305912842485270370173503159910924498915027209105342141718256904375615137214551382437182993516358934489124065788638360220316223137778051338322823535611173663759700086193968487998645410013997117175567430880818994107283076729053987238617370800598780375187195184122947611359005715225138644068586659678898211059084586884272506582452329154068975498315150783915798209731700695763770045668467683694496097100454873980751321966458688158888887506634635674625083152624770816123785029560712184500966784066974340386208424183090679110078740597878370580087535328532479109533384118002768258623247285201655811495445507035515817141723514360810631819554125429986393938408028368451520951138416189220809281641838147522907010363528839210284183230181629888922489928392603018581602803039080801297415854406782388794049587050189611158687774707088707515658500757869726128542175992231511868296771553091416455833957488144683914419772563422537079429736056424009850528795496891594601205124645528836408876917904777953002571970107073808918249818245855915777476599751246779451716392917931683854835450242623746360857241481203787207042591600680463231052931991961979272784250597432536157311055173131904903228368957858784176318562141595281227746043775334330332675294189651913038382249084948114345771884374521064114686559608924822521339640296296675209582606784144756485146272762182439606014978894406091344351842192026029350514081378434031527386416492610139081297278974010356830382728287963891235927419340303082182970504774678865874065094763567797788195931346540396122385208639219039041339137259742429936933971534613503240444835100907030169686683651112927334882167165171344131480674814338470835241295286017862514439515074761150441003918459456888486254117394038648696716925987747058658549049102218056037159408894569758431783451319914353184058371107431839208975778759122070487687654624119346041909742009428653182098547371313342209779536137206797634103732649193304665357411134011251210889619712287513719822262653504408083907061042395624844914510318428980770369391896929420069448982749997060698755767107583037832463606404570286909557987087965931387241558771583415174437222276622177663572847553822580918137987807558643636108981095617092331447740741008808524759737231157780821338207088152317198557725535245167560499270385363146520203154463948926725616638781417283871459940766185477716677353206128690066755593396635542353382541284689792821782527805182087217212630550210537030722539841116444086228963611427586010440120820395847396328331082277876216623135227852590037797724605821399844182306368332509166442788456863051337544419645936123551393414503307175429562275260509266755685996132403649927361377829677421300111746932212609760527983539420654075122961315681513887563820744536289561209247369566719419987337682314029684712175274871657739243312188888304748050932967784141929802822717567541146827733538926189757128589849150436567100284502973208832953995836305759146005651020490070342547568331887840834318733949179131868917672956752811760033737753722447277140741725729158748372954068629967361126532990762685894194297751031102802445689358355719160994229849259947783733566216383470277269465335446822192336157271262314868237020299809207826427822922372129060213674428165895596345188733945547913247569878265257321674091333458834966154528197908485161122481113498230210707652052914150257762277861443862211097932534351593285834332604883369809860985798918112886128006974403114741219046075466940562697176336145038519787697920049697466029965767385998516110237075395905742388621868388853619005610569745169795497510299010935136456586801253478904335707903935952197772455025782779629332823892020985542593667529987348465892213492654087222596893382703314301101955536492878438529317035741500414036142930460903350386310793475993006271269814251611656034529510236355172617625669800522686247953232233783038897253324040083517661498012052662786458477029687680095670907970542666684119937044052909293672005138194988876103890808289653917626792701055505194613763392967267120830592354115082760613894891681891641769499629508368896795710775799336635940003546282751678074843894360915742741211932517054635387272569275215091813857501405142997753794413655862863594705064197089118876116240501647121345018058956515969915592476583918381761283779151145952750525327479031419984715147040997489909161513281881667011508985365091813029648309454701944013157118310992512798083498655868962770352212545141416838699314993999379904922352839547717142170812619703265954333441290986662676883438676896201785573745949731485079944395018010898178895703413511732346970122224560825751775074530929917877439046345197514846844034774433287011222250071534838339175919559537393080514670317567138336194248633303074543221618061029479584070831752376872471361567864098218450105255018830548497565624323609198132730754626734079880174214713522631748414388331513861664670893727946372591850125000887417380145168632932654685961100770838466959042216850500446061800868310317259011041965991404159364115873360671280121167688268584072318378155411374892526732346198855732831219221457390213821996539686368430831449121441874750110629129532848048058983530570327497950095332686532608348382649558840582405615699135925919405929952648353898683498869644308462107582661522085014142901377213482324208979678308833929191372018628008433308894690448962570336228882725261800764764236436536639950387696432790283080871365277169102403641393504250729904021531896475541526650032875985075559879320001344724295948954218249098301175119859224535961346171225151311852269017678991113759357358349853493065320408043617178972320177820747053889609033127164409045057279446236398466957940559955957022196151416654452771206812338622088677619046861484955735451427935514503764138000699865500150745126963589262071464935709311619354487603181823685078501069083092910751788620623094018120877543143653455334567111797122731799653145426669634804986090454636233673134663077010162223906076517272638793617860476240665886835523005120584470232238900804099234529095917065532646104272699874235493000486589326510888311728105870293379242562041992431635831837379803596433938173831814657308426321108776491724355138719329762355175346434045471453478789861885440924332288144634021270770832963600722678051508342872784073331454907732852236118264954479556109066280252457879506099413267216740257162365704897643551730979445742986064021664508085717892734472694108826957737243748732400728859980454122954285079791249094823165063564025093548023465686500762309899626325432051604030560244992365838201171207190843188076812787729401887164320211999274574295873858210975593681555629115457362449604126155537367722523618542464849162417500225296074164507406562033720664269744090323157845827646463782431191250270457271271561442951727067205549331870349677179196337764076628303393954685753164033817738969302959037146829066981825830550374429721450002804686359577588150875104069663395373077098154315298850836737066373978106648410790707811431076314350038310572276096137046196542257133410797799861870283342990750115666794514427312491233407554664668435445897074115957587759196660344109215516967073045759120740292543114949191536315661405998117718785196941929901202245513499101820084981651847197529370566285117668235016981279902525271441029397172060930269318887907442797979201806292164548263519445832752618194295695492077439023481418125102786010958939804080173036575913128947402756101328403810426151646661460079201236265477399273383625338595999029172917324318830363573698144172447388865992137581158033107617509611181030208502700449387711723808234670907151584051520001563068202975226450170577318612044820382505114734835619696496270547190505446416118877503994806741425560557145214580527003278065776511312282082309453574201940371178772852508939801043227551603281248942908501942012118633616697693349203812117722650355121562558163149963526567629856882480814750684683739737210544305213410874241199001592882902030260941665776689291657033624394829614090117333322096781647368043073608315268102478822293043010014632173721277860751624906469577991012924226425434004842148652632685241652345197194029974756236444503936673374311497148725851898038596801297948556625981993562304643559501516862359676611265909619435387487350854493053197084934174364072954904402815314227295115098541933507354525859216765452737306450653001651629069624414152245176858518782545735610315839533678566128347110994843999942875885812618654275605415797741152519939633898426355176233805131506420908210035485870202903299104882926807213453616783303827487105900756272259129943578754678814013144509215109846618637808220298030903917708471228271509258957027779629466377593938386256889751463755462811001422626405266084319849867730615479930423028795226526505240575331379895963290915936237998048810489318011821268508903021627894737313357676774866066787375309721266537408020097094466722361188773115486852896066682708726506809195388785603433417525143955689545369610644145547564011158874939315909382964032137757132759773127097196817645308171587432586485448771183418571855364720674649826103396713411790910603092004885472035961720373107001827954173923755943961527594533430962550128043245306729872813231171745045607663079663571990736492616053429903490421735007206110040734815528145244187969819799701942901161359483281775408262246170428798585052835409117126005041568767628141930519236774000628850034951048865018155055129790673284666134900996176312388564356317181287303974277299417626378633185721341351164405051119150581300309615663837494060125924401835015614096961018006494078808525211286741493792329662537829601496549911959121118083666991912982325003286669374691415633716573519599260904992609273037218651285936537476945575688176804602316316717785824510396152208970553307983186036678022121377147273942657781371092609737511444335439566978323314269595212332482780059834173587484972473280315048473536740284474874101211504564602416612184752256470849475490109349407734080957554977057152617952376667968051202812715531718314414357379018132821267675222882830834523941088080038321656519325771522293694365044164577992313372226340625962173482725802316059642160591104312710803055317604162415882199371592938556955724770951463648231679546393828466797848616140572378507745301229674953274536221078524915022254720109040238025137516880097012322721124837268144815659057025461140294947390026972249699146537442496747821985359308678034345000442913244878888170783190731250550917560304039487053670739010969083625959208716333139386465365260650213633049473124796817548563460512562976540137867352962642061758291327713958683196216643368317738472850719418168528053131977623316082719850801352904492392356168402624256367211923211137572725506028515532455914783234057209193880457399432482121758316507372506450886845751700384964119092883245958869096719175679764675365869682343021679929196462773829839052710326441099474438787460851507323213963634409551052276932310946783229232214625269583822826526004460003246762227146720365743597018417185251673928351538455669983211954339716333960290851056191182158364189471109631089480705253873681941804688637597426054878330408525449051732825239853167144958736191798109889128494679994431074503827066446088410163497488755974532515811042129508532754026941971534710505116817785256563808565989023519981247527529045238857746836006517523049769624974750201635180041432809182835884729424715719071410278463673566775654718695604972016256534852101516263912281008988345936331240435797831667370378617914866952495229708058152636355130382547529258325742744250769518219899461836226471520063100833711638885525700439348945551357294913896209672752185766356494913649907119225979334779560675844762198938672870755501985370245830755093887572438080063157484756313885473867719764466114099053000299946771095105618589719429067004888808251228872375930439268588444202306377909510196181229383208383364838463006842995354980195894400151218195297397430339895656551405603251047663741632402655096209094047310644648042745659873385315950091972421677058393275623852488632860658901628439323896423764409741434519338302710959862282148634105584819925252994482395594647488809951200652304743080414931281222976989904257037375235077255392733157794851950773702566922263375843693055328083056499439381402105556812956873039480961394142750532082409095719733050541700361471355415586615877443941390902471514599966963698168720298069344716539242139796003120538242128487715648041152504602047530124710120950055413609869401389078510781050679825037975793534233476957078461820972869700871587800629555153914702623314972277882920969741540238771753722109968214184052258462441010684444674827595076298465391234960875947877412694900606722013145065465708869664447343296242610319290500872097378717518011941966152928685987905916546347384107540598193154237260035215034769456767211386642832464533075060065086063344359174186744708164922384587936214463168603089575939122642239477985418208752613014487784457241071484241070418557635416563173096472749988885493802670317221139981199397900553825206496441501416742737664343785772981933331153784502479634323008432834110041255301316297081147441944282581607313996711447675041452541527490490807480446709040871007106746691104732215752322042491414478925430139568463381707516741649354292503063256717144461091322781837674303238878398643860339431492757131465306665449593339631391771600743976225038566533042066207501113796546164471093399271836083645208435085843889258071252806124828554997447120964821612818493896006079929144249027523317281730758576477666774941024565133642262057491389268931257501054362656431882564253660631835005194595814654419772137816049807801505118862645694605490712510800228309427741095263734385291912287857599192182548673104647076251184368346425129373814027093221722045778223807613813670613897070656177085016271650525716524858667199518035307600268959521738530758852049409489515725856717729186462142413024565287269039474062855489178658292678127712188403316093632755890359736245173823257092288909635827106424895647804184287914086486311177713158408886619705268190594735813142273333483839553006635946922697214794143155512129234206135918365114721817681488698016613416196053873169598505240998626772785989336679916028103155925316097317250581898340050664577013452976175557705946300504199668162717056294772689460150368699041809522452234329946168543358176591996665425757623152084058460627376779258151545351493803661640271162822516702714981235634083119810378965311249261333308423144236995880837705447951623525080504014668556361231938683867463320075138577229720529987256788053254083199679184887997346338337571689280347097629058195869474652922894359390285791993942253109940753262552120750619900169167814328532038435319812010887406910117901844419141667887731692283263776682936802797476998831397742708484368104630022908947523739530904859698257955782851780526975145041184691750043143171303366263892800726270876716055321793407026762540175689992675119876677041721078103855897091672011148944788274754623568105416350514765709830942649619741464611754156074265802355258049792702916607394176922927970270179301829622097524780999376923445148725728729117602401133035015453900115110038625411857800575207107339134866316167515616846782233644662286334602923857201809073274408604052646157305741480924782769609616414709402497610463269008036808483226551630370073130386942106121376936515327431236106361882179298811695792294652200006279782848209525630417551507212915223567641721846341647074804394767107565252017688632560032908019808368134674816544397184452248011258677153567842978804357871138237357580311107607660330240580569829936443572887528828997389462826315260236267309164377904516909881872830023232959533784548534719858567056615564269897576633816546474500316467791909766722390009003755513535130341445718511097522932321147696535648910098782713326442888852872620477921749219633069566308153535477630914727579528611511895610457813864511639495940428102121817569719970895525602982919434611112369611944046775875111437926026807378191836427731993845438846069028161268021579163871565512574626948546819148536477943463079562746719183672587171215396998779538737895864874549991792778170488578550812709876313549748578827492313357394609934589117016061975094573244627431589922183903486730949308916112412796854027901512332762086547366232089373828304155187744334442046664123787038884822548052539140444485648502124038982583727076496407974512352868533016140014373182420813637271733302568666111800489989596532418255604623860430712582436595535519198045706898952009227707334385281743781663563875629530074513272691329179428219008282084903208086263744665333147996673664891584699223197675214011317416436225452599628341387615657094978037721642696509478133153866802690234797497558130646594282818483122524165289532048836537735667032410786156833012125431497562141502616243201267238047646310666593802798400681752838461970581697601548478565433804997659573482379854574482098342159125289670814665046594320273628662304274585771948568444035387734572309125417585937353855000945359427703043389498633194051722302719690225570267718007143026647469548304081752413999605142939175051292159526859431562157379252613866639984493417613509325608979992628987870386132368316162539390163351475898712788172156461644398447616153160165784736206338352343392966091083452447493956151230688693588275920673426701855793412998829126788035219215617174508823318316609394628181867839278420241110552756844201387601715734422698718025918371371560275367204040273924666331751425590025969291302782156237688600869988687311576324761803342298612100937633185969199508432381619111029076749133796165913495316763604858066933120902833487551393728396929401481171244369699450201148911898721029606841428745397605471310870380366905279430051045417732116420555555317037058488985848641188090112531681439470114889836214263789456541615990564132132030416851719240686092814014858915577026327630745483421697085203799311963605285188698130065111532002114178921359578985279382873109692096232233914868338466469856720176298188805292879162012178783187509596076905861559933699626035774201282263900735384808942333195889654369706416637299876844218925340432645824736120368550165609314044869102341269745892543403889672496632879670754415450363479895529441342565656487112191209473217915597680873579217696874669167529840764164757834135277039917575462954091143370727232823497478356477584889668003538093144486110458397277806928348597643383710193829445671634686378467005499202992465489913683320386853029051033255108728373264264320225286639006427081261594602079703305176561445668975714874706447046285675362172340922486511848895180899583675274315149637502880163078679780830146929787111775942340742115244073050480771737751971803850272786686500716866483807084975647336062030795905969121083593021415431701920440532259711700241706529734308257896624377541066470665526494210218638048529684160230593216164496765792953762586973539553222802992658932250210285744457819247462716442419093008371663674362134559536579321453138822539576353438157008170151317124127957044165095239202424799574034485575304483020760398235880839976434594127866337680378950797401674477337214682398250515992673265266782944386458864800337659834229047488839275677547943311473324101604672402972129345235962967330874706300876526724947159382394698923492048936707119381103267871565174759030287031334068404054808695616843964949873009971479422249820351444361075628748685292054726827724735729997389838658967301676759020151617540910987730352694341621312901124240387098028042611359834654116430401437658434184164716292426912686526011359021846877604741246779071783359009836263687164632979850848508219031734339166984997411739156829888634469426386680023826628362855249575593560899691564325389282161640924465829080884477935639024069263541218558459426827457053248869424806979207639880597109939560824653284273553229756932948662646087156757361056509495288042749771540434924133703330241018295939086670391802336369140218872420207006716525260845156790104975138835650381262674740592007483761088349519441251438937799543610538422140089463429698570911710102906955243221916047419288240086459376794698281440218775805919057657101075711195771441961349319171608441932723316469748182847398462358212930942404891826919617091703068660323701708040902123454878552995627366002334291005771227454602987321775490028797231212427029804953078736226365843852297835862549305397145587500226522131211318985696713639603270522180184941836193021069920808630857002468581271636254928466215507704960558772150784172529517878635377318651023493140380923618846846559333253255791247743330618777647870966321218700932953567801358260102292011505117852573882379200016588809944837745227717373161702768557418588423127060758530236564484197023701377918546113774994503396957144021522024717662002384152599676613984994922187195210419961154471330961062870185518820634708282036627296611437000609735328596250422984495057222791702937535872359203683703822950900548867263739594059107969371159404999249044239118368634822451098238643178727037622912398217323158802985083934911619349492350621629616269910420935582317914343663396368700596997604398363291764811918103555376140152106960108969232354737923958990249175358783436719966108146813626694380536725620694062881118212759026110875283154450932571446859114348010095517940530746247455259762292040824473386262510393187895276808199719441370832409551065297904722416998192671835032737858420232896756220722073616822202162527435988940585169608150865048339095568786653691267967274178768194647040879395249286122050928809896531976080695080489461196639483589102019500771551989956264745224455256181894668435575924685016489333435382804272103979213287192495810377283033522772755885817816839934855486503964539026442659073448583883232564484014935762664897971505311179045040743729956862470888070800549867774498291749168294086766234327960295792939913076095776108990474816558429381467691972618636348227524648349744514004586528903336820805130316758174077654655161908998278061050152919930639747247137154282361817962150717580398128895699340469922139111897879844651920198979529325450627856633813427831562673303682542545658523788592722374439726881622458123614495291846897568928199307266513126564752096908835891030282712598318373342816420948001313845606579436040596293830586094207696674724016218571386028157543642399103993135707123143680076309262958552439034889263539903579381386940382590631503677311947118254055069085200323345291608539840702765650484431782247621280353181607890181654131043247043383472257944168516814428695306057938311223295589880704562786903438825779251709951534632412864516768612399347825226154667468850023058789573710442869212278103623689745951344263678517735243587018605126970298127441981010529663838755023886449196418140819337024961938108980444041112743101744313403927754172902483042164952231042085875821785750114343276113888114208068533502194412203368411919257301187727242286929026219299653964666990541277985647327239991004212324740842722024566453639864999380831163571382935213178901802116081574565511487482278970774881585933618312746725786849116280324861423831688369917165394627920651888745638638030508212709488898165273916217039307261815154885683869792890174698583512364333860103829236915050614504712885813601154403322951893793521985645638280430042187811763736351217237591496551974119992789681233374056304160682453661317418439310016790405767581336470453945004674859245545149527943059524963718585135518349841061354551732795939096147895337080709156729299669997802152798995546757336199352194728876586550867903170366963907344495772094954780616211689523588273381679844534292373392712110258249074328945658760062021227801869306531960808110990872671091471667365880389347707772333687209600506212019516564282745291633462462642399584999361213418852649002380758275324633718534130722762152885544686969099251775908533374505471787372850260577842247647350528515300237062894843243375886592190661291844976452008275701012942679390692610372449308041502841110267212089923308264905399466440671678632017551832970805538808689532627915377634681135576147167030032961501178825266661902895215664771236063473215863297658715738438407068320841274003392365071785598213117762414349873946466035656181343549894075337433103828184117495300004068751776827808429123063481680851880736772318151546007840912945386951411942219396989350687296279536648536622518017346431039647588471439003213185185831548190209551066664892448695167523728238132358524884456099662780948526075740956461324753214619758532939810169214799498992484294089115166517242465539611127470516182947010193170836264859821113260555132316372431735033221325646040194236328168927362792008036859334282611367562553314095994220530446195402776039219831610478339660543756948256783501907078811057972075243485269792192396020905270182621684423898268140964035192969624817271760583833600577568271736080560467167504603251039750352381908295634747578742379654625200732365212928297523061082366057320448158454713058525963845431630823376864559344604757716776469566870720725740215659493790069696680221735779646273770866108026337137732485151964142137080553461961911109487881369458600485187200076753482302394873478054887007763238533215497410327029881205365864211013317528031451300908887401856313822063299038398278914326076664832587181938197039260585305642561434157875958802487058804490961196209623075576309517911319294470787909699872656072536850978406806713079396443357990959390023740057907010883397584556188091006732086871715647755371561293918327677097372865390903307041882898716801128436699665108543180417913816762435952639146262376444865090660826267793995313150936444882207898146683436647302761989974673076306577890103818470060880981671501818448034196524540526743139968887085002487701581694950483668376885643074872369769655352194726533517045633088974832418380927646717640892386825617658114448480040868980910081003739926583910644893279725817375645959238086914515147041818865987526239950508661574144514985734814574224083511437081526680708437062490490015494150433177441102473959780057995825737885588390342708416172059740243721599214045809921568333068673804066311206739458086618198184156818099829743826390330589750702344850978957340626797178450735499903335312126022231934141923834503377712269387952596874384497248407048740359070732704408914367390447512139497930132082069666831426589998364011296020856503011482485327912565291361941774790372447347477281437829107558414778859965559979698933633898761680619707438184525987753565689904770785254171254873753182688070319516559072484949391660523155342987295582827880879195661876348949118570674784019121764052976799688485481989867756479021071165806884677974109419083095473281859502803263560239395482965517270246186651943016259627242692592389206602786849683112012248885015304973483826172658081289236219475801341615086715926259608912629089062700859544953064265941289085858291032476815324831115251837412568769058789482810223696377530537113903742527446613623005981342256675364125786588369282436259941310318233947898526449287908145949234440817940465279021634409523009127373824238193710945148768373441225652015623664070424852291386966042509296505076481876753574162594536370858366755894335686803046885088023713798323994560713527134787386005200631265209028756638489980177788387997013174564405697705816048438447126908634771152515426371402242471789848202884492814423906793591380047891868436521641393636291812060169387074198716346557685927751850307711383595583903824432563826225433256298406781013236676956273240131637510538696656366233657130413455579605271992509497822618009477955016835836106620794193566075233731787789287943046440535625330324879891586549308866694848740277938100680118111868063508361890482868541696994742165947123033657405020357868908366704758733187636151820562129840018419094062526720335959425222051455294914869453734299505957974375901478591320868351358383957121018068815915818484173394370720019437569414480822613126337753145664530909634091819310662189646550708247771510263764328140582670220140920887342293625332219673873388182602610740237577028600904614348177078835526998354270477713365394039894973168264276773093254509073412490316376904446010014046348001693828164850603979497575692654332943741434829044498414796521921505702294795521086889396908417127511384296262290962628882590652696385232458717776690561772793347546236564740313996913914662989708683310877864808963099934421604525156681171402472496500617925132235087335793926245302525083821438027297269237273922342410437723480966276831479067739562004393610436987338984862037625589895202495531475020750493783353241213933296861800592381718132573030148726675051281700446184516510787882594931707473459241298677038482968278741874748933619825047190011227756095528527346946762090556877484283986239545178295415755341134912424054902041124310649867172430181553190254129319794428688962275039525187859073961830918465869331223507489310620809485310631016304908166205470003841823436552344308903435911981888184106401862134627863633647982050924244000975651587413389330366908006943724796943552055448564214423945000262431989305419105206582070921097663442326927950404143315965562723213420218734735965900251112328592521522053893059797938344468869542006401971783349614092551792368965064622322126363135282219400840929189632340579829772657373401020692969646265885370061885836117043644676122051193672758960837839105665123851610089409160909855920257679539655306533954600678249454112385313057567199926327275673528094392062132206027673576501560998415155387610721847374524198282537533398538155277346456864936414902290019507144960214554188261740536458022070310273077976295595613796440105399764471804531836887195435299873105349680485234128923005086991596675849014499769928158974201599881111641294148638052826803225294345846623421478500343138169914061274855279027646729481460007995379434048395363422363208596935174553105161305416257965728669210384825238386397652968101519692190528811499415618633342727193443301482474516264489625995197994046171707932851620703965487586872291320622032460643587376975956918636556831353843987088677721004423653644796463016636344249935904179537601973257385823253884870787884424232271207118119576054135224624745790406776206963489955017937565391285967505341238695673115463405587632257004041216813943780378100293545334742867576024836691431740694785613638044877040916689866286577449995874301946729949211379828849570451283616029216021902309497844755660765796478695763345224825111896112584738443481692577986110352938879751742150900682510312244189937623983471587208217296095775494820518077027334787141390101735748664627634085826649746360673072881534057544534046085032300414547117283327197742636050203186039821975890711384212384904947995624564536603158001035860439455845881500592404711346708441480780553696860886410198774755862913161444853840295280002123203185636100248287004648421214955290493248503185267640835951853110455549406636909725114022618516824325981999541199278154284403215646053318106802512823974354623046067152079309769310491287138258035299842243786017968043822557340359645361087228640559491445780446140773912673195317500315923797964872448645983165590465769284773188348729355656996534089884820352338780041697368715977228684874525143307479318895014622287161764247933290505629068203332568314309663533563198699060748594908002221432057567079571205257052846650817787436048478119762767598812953540890018227651794296633761731570308643703083676960880763916347347351979759004976235259478435041778941340244272626808594750598489137676079513631072427864859792345831622857254601295823715776039268507069193957062400243627519568291047553317201586156173809891977383959377756218503398429959045953484163243504259477418162180549431500435423218515941902942179140637030692604335318796556011736731034647909284651794486584407823198492794354860581224377900699740369656072268269902483892987775589187141466302137210108303775052011081198479893105719893231835246109139760012194701891340253672207345397069483705712968944767334860480953108507847299009116861156421616136338666261709901647523612472871126731797020927488073562257961555339143441775034478715453295968383366135967498085303504887755518634830510461906179691103990692788711121777269730418548366066663201689943255155331166706728032207005008760463153584681228053460949674694953020206089657364973629234503569790242580254678711282372086264763680485532351972295347678572595451300186987616341682611263791786344569110293096720431306720785045732675969299590945683435579510589100046011043574408628785143645914740837838308602283726115285416327559158607297306254465351566938136116909602475479351582677463468905474404616212383579536720524462757867235288163678520316543440196180009317951080264593676596695995896813220880338987012423520779258402631123440625180607710484164672031008388968875834830422863352378581985717627303033431214139547856106008139187704939039287177765305038328980980378867307601937389611020021553357287649392773203589505410984388123255789713045322361592458184430355273514036995372286184049331539773689659634064047085309369136744429960454019263113153144192513796457970557055844302229552753629431929601302466084622491797973868103858675146069286069078463500992728912310548592282270707241941692891281869497704320682231611207479495232868464102472303604436028929626215442900880969730803911635200362400120491907157557839483287694588999749971382331260329525277921191394676673809160737104953161696273332285154624662401779143608626322898650741666316150539164856768698867146676209246315735215867912549207987485598903691932231793535769216351119766347426584978456994028845436714878166343344201112520334591352030157657147389171957141052737520099706721257184860531826071123355610796453942331770742661531877473012959911126696357343929328041647403575655017383828166316875145729086634004720068053329088856375150470377599974716956354743460043974429630626889615027220518586341622149686808155951024297242730824767435504220643642678810696100677872320929558945392194314175797883360381063811241985888417996171568984766121068354695383654314096421069993061125291453642886103639286203297246800189616928414683018447610979322172661177254556128861373004534017066630750460000014054831601331519280713619098248630601505894944088990583486231534572576578081689175282272109009696483571259304581172368646653529653834500356715795325124992364190283321981892225442719820108238396464249377087129576977387675334675411109242138365815704057232166380662396473980793653495876548757676234012087583410660689431579332811749800296722255150456927808506078136002959355927702244469288953766942962741531257471716402517819234245758598543294009178617023387425567517395445507713526311679966213415850322167980380600600478202214322190471473077631080482981204830713415496529463856832786274363651781924359929664783893749247413631595163472122154092342705617595839446699114038357148152947665479212812288746906372646615902886585383023178698607018090915148408252898855816417314787623659258115924423442140519368595193877752066542895262731739523647700471447527256353837169273257555692390368468231603455531219523075347651139910012665595526810071491689331735264989529479531063648478531245429898199734492004298022818265569026935092363112204699639940686928244541795254164127989037898837826582468029754449569717139365788435277325480281376206263990792819906168138456822024004572447105643379739992914345448327094756243248977654669843748568356764376931493493655542382236397589309987731574297479469227828814776834642016336941471135198672043208414884055133108259095436945469957026704505416805531563704400542629236700065897827905392778787626730115010049536271796491424999091118913026700672873847719797232600607498328709982149475764126754708798699211456242801466485186814978986265202150567417888738919485247715121214704415257611465483266668431085724550973017498950628645229367582598619721759151133268176017463416300115966642232397764799106330464245852276857542228445293250172886310475503422145508819655116899649132353518973475491602796321988598610356530342869238369756858903353644709588293833447477877095584442000833087511689771645339046805549929660603151821464592193445404456022842693422575183069845388878586233697151584548784568780280300037754398652133037279623673568228973502961689429932668345617942536765489422149301410274732796911266155652349235019886728339547971827040605563805950926624000645409494246674676117059845734264181242967992651200218507710030823924210760727111896207639993464470487489147548598212232395396680239250958096049980304479168236804220487009233857906992601505578311336464799369583781427238410173000451406759875785501107349311691057360938335306278893141899145633097007645127179864024840518234584212459261694379509271934995398238671204477169408607655203792355386867203016742393286547145036662254367590714550752866231439611148076830479531169225850066423385978365374971248906217781140106812945033052776541740757527371782662906433903045889636621156138785173659795359728131612727940294642261085612748230532890278537300735418775872619718340419160566488335153226619231409838906221361157059551930833372412944443280550702119023668858655714813466296834168361197191827255208366278411491213639962682625216410573028961770528764769380242635960320210668258909240341131140805867603413658699760529717200123396493361530529918988152627043043051117683809064849544820926712609827074311401403611920671236537515567730617444534903273187314011804701543011744464227455371265845036411933107742510044036291758891633121797703829725551097188709969467494232320092042376484850002716582061301249468459314503139685005371487146171811570037408277924952816791509070114401698689627642676774234301037822500525940763641560973366520585569314829222866019025641816660501768631999868516127006109517626933234851961397191827780986110311967543195325104916107890152626553468877555759126500715363788106042810044402881734514393519282700640703780740007444217807071488793829314352090619394374560646525210622001231194619586174201017752722236899408792209823693745850687930086284968464195691730195537496533177109392716690680532572446542877392838641736639634130564707071980281329275126275762233255462229002342336609141908444804766945689370354689179406290786495451305210316646477375343398494286526233978199031022927181983886997630947537937019889161474972588318020400462314813633338418672150721694692432794916155750399274349957352394792550879983232158511168102903823942009772264772062518692284614715838742524775867156289874564404211041723915533751549848622443315776100953235149554263818905218504321633799290839842287658088392770796170699958958889855143844105608858386715501962011890961453316257208308912051536671695955017870986990653460539339268929702850486755388713681053058496971131768891534589331935342099346315121374530977455303949516822175239860381859833501060907321783888058956442881717735740530863780368091480574702153618460832236295846058600368080710798630636014775483889991142407096490322413478459549354163244065766129665925174285484835281024324368079311071759530008886543045054997598210658571440392830487407177055600063574050752302939997212516390609507814465114054114661237464406059731004160532037454608769936309619038266559726615637802096164170305326193590949517253433364451137168107189413496643831296373570686685369999420418886024048614736691590262175884127665697675824187145828517322760990782712077421994509621892785474965972519722159788538547771834037575122775972092121526313317904780327422804440166523965491939744796620862831264042079482721780191324791669283612266770860291806151323949201022297767370541376389284530938621156776622335973578736660337116897748371206150584459085138889784722983968547938809717912243765848143352357946662592960336752384926445347204080668084683596027171944747062114393887300566544590467611662416808914300347748290006965701876426652748838804770650482644023849106920151224493872587211622146641388772705480849782013201379057748616041280827980028021984940224537127498851224566058664338792700712162689593813399633705353500544425707435583893076242140363687485459195039706076347928078382610457773974402108500392872359388492803559053601119647563042553131908416252355932812565104691820456800265458624936870725583839326126121954785087821497214816753042139925755799466374189253942075899403840399415684543735223686282787765145882147439856799071717761999858047853046430402523057232240881355384755707951524351834524013786481379218095971391325641258519745053382213094540220458935293266098042536766112813532391858198856013420904871659353311262683270134816332118918908736568792822381808233829987915404260307679651078687936431209253872377077236588925309482791553375751512634153737100702352642578165781744014843108063278075505436232305776475859417084025557918978523136454101510378354072740410952417452760807669155877865779483275962464384030913587103405372075627364553278318173993899002426481034462894754396813764841112835366391591177068663689290478577775177136791538614445121784156831799532999198549048928059424921151308775835822094536382372721886631189493208557210599987830203426306618933520201555746768193148587402104508177595350383077935607012807951892777793952345067008945993104513205482681853222035175575324524584552184770562210116098999395680656040717312213423013695383824169683700797648977923913956104849052267831843812568406832581565996949829878341375459780439475707391754737427178908780197740627106057177169155931270630344866832592111971831739917954376202668769336643352057529820908262151851870882576215299617180109891956830184073454968490394686511272241378092219230934826055808321953452446179864413338407069162272377702696692705649883423867453079583736157225464160933697365168974200653386184485691754171857704234512361357426233561359658797700181285495086682161540030251689725042582549199626304658017362838573982849642530360139332321696110950568326762528219546881119871836533377151024707737635404682665061163433874825596066784993880076873112382037274687261385820624535474584926240828305932701633995407616384398688760461774189465918501450464779751333578497324082047545454070505543849413981323897150052006433277512077695130740545348389695202246824867432960950625270630054630592438158161563393601054896127670044392266602642103637380002806464432542528644927506536646556996740503429910707616662667279079087522051994080399063006972058808464742889673574733387845272413866005966472345281938582180516791123783629597361121338299649520481850819302022622552553107770897196567874343222515544429012413061369756797120148663152260717813456269938549178734155687373969566546875964283299673902351301928446058461643439801944979153974073241721942671160702614690301098583806535665725358634865267310036316490214944257851660756034633018792837758116525829192712684779815826684606540887128765138899450761711275506659159870876585919189224728521644212992774830964878096701793804656092853566762073560807517929835820276412918982250144795207091797607367685340950614534732370212112653396785333199877279051591533189619625554556891267947583403784511159057276990538990266194759822214560682935353230625108245648075798717098417727532171314842678412208852661171570519759219129971604708284630512326955267093893971479255073920406517621561427136001273330349450092462911573961622872407493649281644425401777345509928959340862049181538675332423227495295468315628976703567327438625838339288941302169673228519976864799146052779460790969328387116784160780267277059125432077732374547128401977549354228672226002660843420714721439952875947719065535678509071303449478385513078225374601305463690540721481271514213791042956343921989106358326720897088764094583494986604895413294587977996494311982487577661609510586117402123181815169849331601748500661653595788020558014692105724636377335091522355252471606496906014169061385661186047794130942806049909177570022103811871380792371496465454790260467337206321732481284690557227896273944936468037607314966414713068768951902516072300961405504154144750882455707074046107382560094496861035918519794550866754130451727661571691961239698987995545381701162408178043479047708629244796535370680536499659120610376645546104366492998630546419504896676894976363573839315081700032630491453504947026067746447461581488538837971575047411292838216106838347592169655744007177682053668669266266372742087478500382259020143520025319016735180199556501902629997107637238939017874518963757795655509756385671590720424577296764039884734385858691250477444093791704799128412061735832442523850337078051704864727412129597615741126088735462866677062753389153009805208548294974670055013122554966971605598053746985065560257618146729442213293546962545883797555077848665579268432824890810776308578607549015746919346506087448269587143078369976609456553494115476611931999011245335613544850969471253583449879523360017475729022631509387413080176968418817426883962737329585154816628170397519482911558797251997581093086309002957451634603302111098738731537751097473803749345428700754927625785288459859293527583300523848775730529068204938573560679551861638020362200454199860858138312532887901722511720478420524003031610268651947794846791700103153116058715744721710552208969238903611425124001510708734266028272825546410625409750878442232441197011541404802350671666153887259043164512406551060080892923648472026365087068443600270264524253316523935812060297057273947425658063708396012932145053516419458472910670799820951288128602428361994487390450666798226696593207983014203251191618576825387760979638011141764979820988846159542233775917114304866145428608723933605837199661956342538078111196672158049093118455968007935070726337378192699777181578099463632794052948104665346375562729914824212998435244334841581839784111594784075611393967131056838000628545448857339061796436232926337274502224636740180127445367540276973106625456935599591818487255734553800327670859890885213861629563193163197986859122960789686168488691547613377637415395377033446529302222787963787289523285192531560007346178970085125555849758006808877161757699885429006409841708460105885960393668790301234235062560130871441759746337375235566978453313127933845560909701604255398881081635935679325071205622995432703594479307393681970522817520721596131694171211672476400923139546844594005801783542753807786977941668520629513134626174398412154945120043127196863489743645526241805840374630926363674470489332491242492861731756618925313027438067751997417103746128678199240643595063917573060225296426701865358490781482625459145038422952743562470313710845613415737250653659478379196293231628391734444777714181278024949523748482334299461985519351305961770078865869849203563627156653012018073807241036731835846421583962433953671151520977373602987559731778777211450109783065861171936694055507934343271443338382290132195307875707979470629694209339360619172539039910838395295226781700424338111305094020383867180562508190872930938350931047536607330114529185406346123661539330684527146268263066186986307333205335239157937447395193421194614875200313905972706528771558154996071816006273675545809097237236851815438356317690512305750470892971730440308197785619159024600378447560836139598742544456495319609936973481263798053207939997294523592071128742896495298712317320236426842538979585081663994395657688834832949649577028217815715234787899971208069940478040382505082708538038207874298613118387664113520585010463815165609460259304076081808543381653978777098453866775763705537825919626957852103698259632207014083952376722465091166440401924785141138392268449474776301109181753071619887420647838943579858757358452188961921908781659358244391260840042958066352504696633795087331007397876012353449261499167273950097057158078636502748591981294748885496881262948594274879414373666345573712699997602312831771295120123354384294676845946155619819247452074323782656229459747754818245491760290612424406647908076949236116015164896760493349414337644425981248858969460281231371903161034399351725882778230474082212070977185784300986276947204979480763525928009289070052084486385455113774698720061680899657821883810375149255481754716857877686281811159267302452110764272614782858965701675328489254076037391934287428912907983311629894253135499300950097715195820089961686340752210307201920240845209167482313598279227951955705904417342296346959449483194881299026140394539482450632449307358212373679244715808375337868860696672819945767157388556125809563251242082961979112076912623460948694499696986545299157231312247552372740627998701460064750882775340842685861634689351940295476726688001935738417903559470405071140784892276234866784839609790902466353360004719855739830376617473467082604537887511906861566291621441357301929562560840522414806427401346977861792886581995923073931055467856999049317206673594336499655610289904566230418743349108382329005585112261816461880988187477706308606831914021754780476527350571291604980293263526825698808542023358534318242686839049167266531095903830844851284327323545074506264290393197483583999102325139725226637283868287641860175008634988938285833586612758571278966981468743964321522227269215759258652209769543091970662453335200208074229262309260389300959359268374059528242298597170881768242918888894918098991890835287530535849429008822168797425319521271760078387595720791739434174268336193036227956754623609020632032003012034300326629145834050309178746487901277729431029448211553613045425612174920031380846817332560367999699757132986012837176233873518254132067057026091749656439500835764909599488850779564731723679095403370430319778855555878113978944067452980478481945595079543021853654050608045725952063998946377003117522034285126320281720404741844879847111255186568054752258453514355357516891700059174094544071064732457484378946501129743769915037427954093191843227464170546756976567275684637761676513756639118262891170934986966224903017877326654986406840085614822759431393469633367207516163350452415788376645325616377181177003869310592450434468126770177532817562885877632610495129526214239946932174376311397735309029039869263408417021367961901760461719838535171077699343600887344073636338956956598061063912711232540182973091681213380865364825628835922699307590824061185277121679946136469155463342564675906228715286966891467527390306786879651072502813511364167608964813783512549909609226959464672008794470579344119596565573795399394109685772859493505088051058720704614112248635628898829742551264511001628799203645463863366644937771353960207963607639932942113578389200548964488846373346145291120274749284868115850315936485646566335098632797540096515557796086764516589618379321279807380342982264543891508009262242313438763934150001328898692282718333241725473848649214045188998033161828367324202435781805533294500672261016935601350914726693340991427490588292917965460234565307844325001513160932678436939391231976314118673696988297549381828744009369105236156238569498542141391982684793398103153692318121604656479557565167878852721394789641072695920842874325749868931221519478191321900875573462432875263105461390779031105984357052807706950084651719805340656109064512391393097769851418795888878541900654655256543781040562741563230343915292155407615477147847055150761400060066886125719429235078266704666769845767247371551603213866772155655708292639160366285142482540022663991754292760654047590215427922063898272045958343280532639227336560563025917267929512983092901775727226885236026173964672443200781976675048368963741956328576450101390473421643704966316498102845408279172900732445373193749276167544096244069834598076068774534348557491686101793889704884423558829128696213877959929062662143136671704889399957364679260197448432274419058104748922680632108390281772337874668521631222405022582891017258072892271001994549648018686895230818779225780926654765323784452722690897721530304843344563272563176929278900533782093118187781504355576979474162805881325332295825171656642777071861607290950593965850298936675035324826997717950243489920812606041327072029130980103751176363314604722329140148550534589753818488763359530513667217661112753400087154680141695348147429017311678846496290937866766069212478289558071129620572897249209553467421712725610602823655300096723185250017938449416057618172855889889031390777842052257334187624787886458408554191769931613405036943404111005944614306773719778436761302380752818668465757501240659480328940159972547419669126875251264359496436757740871357205785262274589050043968881607674773713993892955419212801446767861588268866118583466022463811419310203485087407090015672591337114244171909429907101125797240543516230585034900260209593784279024224221394140312354482915836366503045728138329047896785022616633802700197054853204282658565745322299244807806551911991002486479960590729246639964815856741632303436388220024785925561579676310514407445602279264444540908049685901268267572540887985785380192376162660248712487960004371575018038515728186895328927954191704512108808112043847235109257285910446689978423782519435374078892351405616514882124335804509579757373162466876476700626371803755147489486233187036106103151780774809543405243915850991727893906690959231290300316312946180330297578312307601396646094670697310707275043095227669254260098499889815173462227312834019259772995969718120472114467848694222920498454756218507670154901476865872477544023351705492783165829142295451350645687851671116035620764054293288478479657853741514134181358320933560075561306379901560951713996801466610320938660334763206271787230356776041330875355368043614277188066082392318393807317744909351729001475189994687713000155878496695440802241330097591916862897837540016959181696762328270285250902661550275104043874622412552383972560911979435550782339505148745386807337511830647919100188361926875668811860953617534741969954322020255011261446766221990743138415221519481211542229776796060240553695565031750353235625465741871055804735517800836290877480579445305013444140526964354416702970413329417500441510034141138953081660296682823944145644829922396338852032240512322152578272977652353673423017993565511719364141516989946658137532814020529024278427765187648498626228516377236302383135176056401834625535165087896442080767266185954707142430288577854692244799335120908531291550577044577440093562087090128811197301222481437275163132111750156143031408626790738360936361296575153199513027781496665054760285771225623235024052693463450970527259471973036973097279839707708528868240654621592979950034922832614517673417415399934335596567861895090426116897770957880114843734933710819372454480450910256133934852704917039904622230898679626092439659842970914237294346834042033040976291571089738651492364663095633365616698764934610828359353131425786049043358031699981989856766022910976593930029011055575422199033755460830824940892734186187291494618707725113834494888459876434769712697618532759533473800548666906837040564225154515317438692933565762212189418469859346002755952357646498182715155746554804523280452775234741229915532351561424001502759473053784192535811022963799754862237036436615829161059000986230723310304865965575964406129330069675634679768849232659173417917549529535185836440422737631361803326754535632673876522231106475217229202671095871610808986080470563130187080428489042766067703611751086955271446113348758471668232909068410958441306113909016784740401939194920946089694427549302253303704820977082828754298941536896841707935567256043520522061769108067301229528343225474223764002170811099925948527166289227889667981911642811459839453922653772699693087208829752611595015666426136130026865039328436002662989336250662015304991622204765804508508512383751354543152163343226048617479521173780611243108235169958678007096631086224441162608802466443792231862488929429007481897124312083107501919362521753669982951568152115476305622509149145839621920937602347276481768815900292601260551239110371858966371395109963988148391342487116441605963701196927368175667250181725632237889773039581571769307510007050270749525327456190598020824205318218825547719856965496471524119219416499225101549868838277825807608863651259764633592862177472125316196042530377859882211299788471296974295488549353007622376209375302022816707791568572924990773000853308139816551055475764546561550861467034951138315050323553275268122101677862464190493366099163704349195378863540766861329579573040291308476527705147873363112872288883883046469802590545404450558404752494183886013038444944318683243687660379252958079658216079750452280744976924742353958447009279064808488101961671979107516199180864687869405741036199324410297424810954057561214557163550041632215609071363831258248423876712798121317264781797447825353184681266391991442403333532656755545605224473058413668552156245307976436903112007819106768373438904760543311080431521842110555792884224824638393872050158792230820329876390801553646354070198918007258889100946794556615066360153750256872172967620465032194886526087631814445561806763089500611382571578492355625147259302879197854750144472826290808798052525987161470818505987056301632531336414440577521239832299511619773253418139739761654177777676836327784944801887896771213686565352891742547682315844289172795801985908014033810978565847807630979072016288002717898037513760704237343455319709477998002530103699582910540820689883104455282279658897620943907965878836996787458133271896045124020255577153766539215324251910595950629705322357934427605558755900567692332737740961194400292000343910951060502676326355196546720065260309237069514789337530817683227894008753922389331367220447419065420689003205253745859895585363422684135258103955432054527812953684231961015725501695535170836802114615232589055614994440243610549571788348872197956704577945890408473017666344981108260773621637553979009314179435205291117888271495783091112335309430808694727212303488610486733387344951089398752640353801425366181815202653280377077184573503184011059820151864105887268636654005462921456157712765629478933630591878127236291305073649470821588189904934030617521920886904667354811186052308993530818908907652279814459716856958988993811780963497528833988946588889651333312198228275950455288172027554315504076836422390726074715386837764276583424934239210308992233798632313486279192814609003915046270120927743672550629886099072264909384325849797017431901277634981789164501300383637034671618071147978522271760423796311760573605060010000685271396653110472995312198366081136996774315164581261293886973614561697840738436417181037787242188649457189121407384494903705581871127614867928239098416065133088444702289234853249002485513622106106385942331977296682508478313033657362142564835040468863359803079658822963077293681224899451929368443830120334956450756466804039475048373614824992006350605367263086391876172566145095871909748981100851638548503422462859241008443033956900297839927376099487411386101054268706681791215378948783573210980975952982679292343039868067290131996974718398752748685081184961490527594114414900212405167953732862378442419121703909765648440562258852436999339195214253431880592939742415148164100986634811539050804916456550830841586723217312559373433693471318712562803966642911502132249796369833239017146156617428866792446036485627751209190615675943338023516765424195557935975706164332751118628128261138712349162927091183641002942317242784701596567979714885148661169648595841385788868884184360254816884608964210415953155295110487390154560062945137227364763752810617165471733056595452961083556052272308425718198184895068412801251598928695233547580259545654836487681034656197137594206680862711118494357381283619905873000444690586295571352846158435022433207562118006089754619034809323280542784535356259902203543295927916231643683073952402813797208757659319565122699063725442475636502468460862143498001759995703839691993863358437654643232107277394867862878520745699840336627863244394837998951462591746898484827374725364536109571782392680570441375682280196968699291440512997015771374890761385279845393658241263321161606123258591213082216131688397423103505711552735803934619626218480658243854256922798791946141149128369590373961996173600054077702338182679623271087030270582548099117241359134222619481436530897802817394542115319339730544308928346104549853515629406966986803521165261321732832914972425533871493831721775395636807276035103395155780213162323755121472058480832977908179403129521592832132677556809930094963751296566023748138894667491193949663648293595634671390905362351198769381475571526560517754115621904993723245438040554443139224042387346296648697435303658577042219930445260099960399038414802637322569960916555390303914832343724753684301823958245955385595729474958568496953451483607104729708242204699397723126830943514447674295780559364808945407552899670161006064850614832261806435189088808355284219605521583840280244672692130059276997637575779457123605754533653278611086442115416237883131221116672673227866578449765401237792765843035889538613866686964596114211160405447222737517972719925992932631510789873020963344853937829337457358165528443111161791697124129132516073153768440895507609199991055853909447594352748968038226224265641817371858810239820228782806870205956463687049841239599881812448274744502352144839904653922164964279542417228731943315162310104138620042949978254085029504705169202557198530719112227280438900533269127777480707308559073983634168375049296548971083457770314827758834494730901231322892180414381277950233713698457806489338516631254777433526010489969135871697758162392006093654048935252917334755177219560982454885799879272032597592952031783439992865395972061059837371877008645868901341690639521168507999623229503656792928584658190396442482817753438669465366510441697401471926251162837086693110991482057180554951488397633344608898022586133225606025814259542040072237851199568368563687943112949056670220385544745386960157781050975454261229280793578383113140182212790666524408985360654508983767003241239910875047168849419839992720839236070824809125468775577146137857424888846315350292759449565742111173704612171682551051300444421465415739863432571755942304314797589154369213050713929529448132012211989960039581388998188867701972257217911537012873937370177319117349412582167389217779287561405028758340446448538501933678151642416633401807799059036318687286226736932433248891197605001945331995890273565223256119847396406403191204898679475448822150435855185366066083557159689253769520728007517453842866044297410832467471184625865486716042839698136901929100269362638313246046840353980565992237430466980679762633099270513030178223137744290621774726330174971727569747099005281239203999558561225427368585478365450977815734936317676794425855108706962334454872468842166163286894260990482432393965562212302820174382242910769551265135106797607181241960422554961047868634721065754747402216996701866732992392311692301176750729684779541263738302738013828268074585610573589170077430552532262631772920608645906950820961299045077276171394940903419103110327994089638778076802221973403351844450886170561352163746969089545810421369693719219575787916564676072581216140500503589901642624083325202913843793875036721290478647574869613945136362885923023916899521681418701833205097911624439130155959910998193554698755347383369823997975486024099304650373086123283361915850475893568133767939283162513900255807156923262487767418564894923774640341261136571138472367690000599524183521308244115532711650089017152550236113422291934507508415626027286672025198522983068502631544704947491439342909055791315848653591320740123825888558291780928537982709243234709160147068934161599960689555659914172649442800258573542333837306280538737645864011136229425334435547337721257656342294684147123118611017304600454156591215943033906369855421512597168688348484145519970269318154697794973873761487620738013568957014739352185261492854988140295952054400798389533025682347614972112987480163318962285523464942812339066550675881449921351571265393074235519858044953063999844980061139178588022440411730414220311961202300167097352360529315223298295434606326871355183101346239497333299048895890023694301142359086818594501512098492227070971106574528598381859002664569917010197754942015117982286256267611835450144219547535546376233821248285626165887033714603325422830051013413560047643913088111481366031704314760835321816823977148254859009235997711296532970408613657503717649724908702974804665748146480475068978371342631184938737956483370196280535943889960644774121889650269716963529724288109770813397059470088759747906234565994133363873500496902570016690590812427453897613935195680743758557074601039364870316695605876399571329654715452678824882209388796036618219377513756594471369409200738724441616663948095159112005839318897150440983489163016681067582390275576070691185188729300312796704193654747715853243590392847462439811360442565714783933561256937169427203004108576746159051349938164503021154288141453816416761637012442737837146101634894948770464742268024063329979072463408781674782111756019813329659312673045245080560249306899742199665591246706411238636865123647240560977036350261840241165593785490791256685795854878994531056102393800654265356309078701285351125800109488839962036314548197422795357868424383817259153568120261168745954773984251938867111398335061264434782172523083764532582608908223507485301907656852236168113387681459959816375719108811271301221317535916554074730456080451492628118649686596759091255406407936690171897426999437331312276057252302251065499384422994870067128242406629011885690170354031132306816141935518208606355571919905301881205738664824805426676360777380577555442551805090749041198268384900535443116480458632083610766064449780732517124762496483254543334737740039109890220286411168149006669615920212835784319307194897932727565565633762466440140657430214861460886725893763360201078775352214746296528362398693236840334433966575680766266045609820505427076240196047816787247463707395663761242201140496208775873541234345291692974789008340363046009069992126135360255459403526674584980100246593593297853438999743571610516357560238704090441776556062756734052280534695897079028592707855056047937046722883865913751429642325045318081199615566112301503106266569730359357995185588102988391008139458802707713687977655686462928238167038508495520894718366253216397806645038880013996247145829189648712448730427038031230277694050933938448926926871489731500039342211533691009422786205293993584687286733091089104124076066687871930939082619876375996879207794625091753667413981648107181304864135355101495160393002142881695113913404392692980234567099015519307658547464686605126052914151517514979602691072798692544150656507039117501275671592752993794318670873282752637458974562130321001021587346932209322660649285018635072002604201523420893126574936157461433451605931705154226425386286211111772977073191679577139357188148718070885420169594053545163443115109631327909990092281881496789221553775648438773716924575991619397666070301235532311275591840364043706162998753798692354678052495497350814906217141615989572910114530410935841699555578894909142839595933247990949757179606303611476283415166254349246041495592853800678200027152219816499598942299705136128004245456090961267721149325399638120019992186004520212090485478341286792711942837041006441623221186986832469275375045827439648171205927956554093403145582123371049691307456100418476305959735323908104988152387016730787731055693821743675222477154470206995478997126907309041689124817338336573000737646244785197627625398305510235690252079118466853813137282044408884823020541392705884357391102946371452377956291849616931563429957722074641379123163385824264014481851017881190435797015652011201751189456889326962240443665374925580177201164858983571951181796549813862722440808549142306614804500163981829165993347675584298753570089084510819730402316883864033144466243949199819034242599763005748059695927902289627336403073304888045850885483262176377619714438193909596975199292403407013757860934864084580176005351736460973457531679387753812826705081759410646672427851661482683165847879439464488793800227858668224402384076960019649168826659760193302163986666207792895626855376942151550091259092214528821922299654721233477657094179513336602163785407454444876186059022566161202212979650523021918699508350842556889460044624202714726790571795662020143191724569928951584578891461107152889101837735867302452529119809714495624210440879041227433945376954097855625719890099393961534855064980970949216679524686261688127895767237201965042449674142924308553560980595935635693077551194281635719659944980562451843148921173293567233070988956361346278114679607482251141993649836120818208139172523037302486658851085319053046203243872735947586240952866312611179891842494104769214169313455590112820387519900525642403350030862044978837957207034110276239084024356493695976199641740527261025648335841318247838972788459006938718080093486744098723073743614885570368939340329038550846007579819972200235204608770063823672056811330207255410436086555302127335412828146429026208990122984330666196681385959570523470241580186619540517402855226568942427404600241511888588191885346529651517191306588003088220436525574615125360574844589741843692716159194795177437842267767484154612623065091473603811808099513754741485914005073841416352876334198538737614050179196219302058985133527263227386563576728238689581960516828911607130520801623378391991828725544965352065733076254631478197666424651213427284318113271350833583842060329134209413055463901299599205576618439541188946529866110840608350533337579102092689673494743294598285330081081136544871405133251006621258503643418009203436029381472279550303513851909809958000744721182787047169087674997105716263631629406069070474483310283333431767032329842712240821149539017417014466040484111397420083649886021405210590238527289408653834615616137599572400292097021139887808926315958323890078251277548875406473211700185951412962193848984534989903658724165533735799778605435628843280626125543670537606008883848106404888277435393209987656011196115375243249657009891212322199992069368434831008919385180732719492968028302770640512305359651479635617100896632463386398146700544929289173861039555383927777471435159361574838889027632655265205474728766976316777462191825678496617259611785122513675118422338582720541017026232475790205478173226256599400100634411437169842819734564200526917642119360954632878812281060973478735840396056458123122153753325711899235285939354571321248584861850354270354716625365098441225329041938976969165370324138543362672049865978569508908293019173020426711582888038099642907943607446369655083587910566177181253369392105809555794381160215633030772980766436464151979909384696737439486682245176015461421721361934237592560192497887880677824186160068549070619409563717174747912015287647919346883100257683437176583614309885520511930595007226329841665075423534186511138731323565166355364921582073786339328612642758358798478300537619447957518050796257340223403125588270780095864767251309831788021032079385591454544578904143013179636444676952146287463469169600306851691207448726221029614671388781648523694388011148395115797040206810704940445850571417785585146079072098897214656435670393419003662227607748154390991903238652287418271256196495125100940221246671500677444831762825950691496207707317500121028214545962776186711122764216513266318437685606543452615681424947520568621630385906006168105461712028218977815777505532993946952097128631062208093089006313366143203930629780928114892100973854895867361708099492812001069948778112987790989782164272990678135905338551903698784930231471313114165657069990599403767102429039954626152047666365055544375635369330688981791947523856419111841073285066949959428813739206765666515148844298306195056238711179033265747791918090940070419377647479505010844326911262651266235294110268127517637797985327633722909008483335289488429264909443669692475347702256990103422014953957172333821412727662168344228289487305676724125196479334779491282227855992542989433823203969446588141180439131287816733269402759568642187825449718807400977670333589155648713700084241588936002631885055717906137710826181453903921075471969786321456417736340463737255036605285057485996305018224747303275783710039536417678683666814989963062271955815119936447661045579725654378872382766202085007596929589868758172656951577752889085372118223989945656940900725165157881308149161658870686323021211484552449711574524640419969803296931746896462538659970852360678291816974094588847777557028704201092261823181224062128939908797739593471571820060247736567927461302280748194047770447073917462887303240380088147649567720771703845343376650121474996720590668628126704197318033698502776181617105768679068760478195247103547808048479981862263410324461602827935247177504423139374288208792382170235938003166226029854105580479000358038804703606963769248549986964078633186978577924196975381586021108688793936403393303289534951028702379846478837517574341519663062096780707625307734714995028039432985482377590089719771077042658946756266825275704099741986105913425899936058808200909981098247596830614370410507987042348854170772469893571456537714397744349954006954969252710212428178022432705955858129551768328071114372570327277380481136658098075178310029617369310392160710668626008615222410467589851637925476586353107220138537520458697881568143028014498865574917481364286907842552766404382964625066528778577280158389750047738987151806238203722887949481711286354308641956406746815375848048456913325436786127203047011291822136441810228366687478195235663703158053019575378919728324887494618480700778031401898290923955673682060105103141022032991679162356218686756120677893825051653580682721287275261485937161013527133618088129152118781643825841953612537473183392509060465667916138432180753399574389447430726787703948777090112768491973110799639382762542857467874885873263846957503881485214508077655287071801263609985491917928509739482749549013722782540866890770644792575109602447768545973548834657949904023455075883161481685477506788651608141348569999619823907289734540815256386045988598687983115439078957796570241742116882506586350179909646611218411188370080095728545889490791989207217105202783715194237586018587360180108023810204011586009327215273219540734279799543085700179297329484061522422468832792278882894368104636691464859308230428531719342822592982106416299304910127938641081139798802697375431484842148690315800982580461025734234983275304251945781205367274274124123768877643156903505904977171312709693653430580319673712686284291844144623404712556624092868578514506617684431950550195372736354785141862872794841304464704718246119758550855901204760571118900338119198894354606504001983802567681929862355490569245916645563320505919944869990485965338798899635264816827321975569881558542088947303295928054819666646462939311096861690594550559722901065068261427191421130528679527157054892034642731462237941281714686894326027179306978742655696576109433971387106289248749582124476329666850078168597263391150072743265343485035407014582502661977351115192858414474962202185722429706760571866092083539180317591176594674496918445358598275154740066724377500584031230464165937343016263563583698383196679537940491477239356200893727009437704276609111589351679212669102441605497011526806552115520121225043180964264400861381013473183867442051444622100216226445758300112373510909472213293565433529992326313555520069326830123810991486881788648060298855401875298817797194322417349148122395050386941681234248738797064185571930902907511145641968244971934875449686168019067495994427554752602486227223990510593946998361467813109881511236444538352822065792131556071656510875992646170089361819064399707594518190282178147503722798827864171106747646809831186958635785709178312996177555074832956805492635253179635883012172661200915419061008768675885980595259242701516991544430922419668147105699277495205087022582123559512170589809310755767085106441903325073583371301170097141570360779798153683385981949889902642732515740786549740294515280327326947920884956553515246695920257949279905673617339957757259175458287133574582439939330177446168734718629007199658220575235170493209227157233579048692809795183353754583574434051117828988251920051367381510066710940618030586105173570754303893639814759107209204984898207469213390954586338645557634889680006085937152965963832709202796677260080297475800965598489144753085391720611374808920798044365506739535226784555691533744657400313712142386679970171066052207521965045762886537530735360194659321265630257690930246964723498025657061045601534857045059262343567981996450315963061336671735257520737506877927676314776473009212729219982635152669967701921273501209049506144510462965047368967274252825369544165013749171912684110720539074279272676238550339194895057205266882148977527362650638630641773809857434471180470389629513696074371902921585673799940621322668334379634967067575496984811357276846231883848064727101283913923126165188266627186059263183808735771808295454699394767186907837017162606506328511708234532089038904174816449394223959158729872615128530775280889262292857147459601129526514807482445892664991413037441080092382334308891984805211430781845348530288893872894360100252850888181724305716851829362006662308301727216659339281289161544313270513393448847734706469010221957513708894411289097470520112635242681467633618329270517854851428780281177085357059623688116111179769529881083276114551486077526529456821790392105805458829948870549129435989695149299678760236580873752528048517994430366283684662390424195916617757078667456443870874500884263867579915606982593923377083998490017215266794804380862124981131343277717830141346449017259740287927796840675248880037691399185382180187927975984580883183814713182188710751045125780374185823221875659366094977940780170871982643203525017049888555080729402654696376065782361905142621540125523836285847130254875871774694459000214125894964097511217855634630907693248704376506500386250939069951169065650213501801905959232651811630833674923198972977425006996924561028410589574227330485490031698178266861458796824410465403694571012493820632386480627383265991209395380186417183650618361220215974956295624979499820445363130298203738282896757804945827125811166809338803770201948591309119702805080932607014746501719354615472254953691516909726114381412702253780297758995497679741287651971168788483723546762583380420764862946475877166182736143216884530337619060210207786780693378103533852375207177606381258341196540859186836769719042472585930950983577645251097279527386229767970924802126745220652827920184780268017012328200637155734057876738807743142135753309584752306003052147895830433976882680026805066324648900500850757340711135234410137219601147909830010330855518007272387101192575165059576002728773796642476346788493813415805977662129627907685953562447363111524646674765324310253970655730766434552129832524465800161065440291356312527762094768222109656519157238820727666474839392007871542036807338292094710784573561272255757774709889856224393147799812269139004848992954355340454250729558114935535251493355229482639465610749472404185892718367465654084072238061510968467633730537769555887161077399226199997229006641709167612929550065437637645690894844827662793632432678242692284547045253940113583004703398802046428500537036484700006889052438625827115871770216796042165600317159697607349757301821500178550691446562238615130583013748507791547709195596715567648219141817411207412603871982556923245273385502587267957326164562059170056843023257854822340180401213490901664663371085713992902436618183131328860074664568963859538284297749801864726743018829242371922037229309398342160722599712957404762361469925139505796324984944269533627824304922140572274455644304221346317222760733388311229519096855391816803208930521404176240056479791233177647200587272459339201144854538525964513922403680698573396534447893881769871410113600565599234003216251017817014708894732059204987733444022022934420643365404517584094842996976568374083219596592304484605643164510685801615756376350171853788106126816855962457519521848199120513717072619313654406641733791013989818246179659861937956301952982852565030419929892938686462986230154573259992061848363605309038161847656861064744674178248240102547653774978018720081396012471728465501386000495897253159439715757681206518961377608129511297792789801079321131320844681711063431854357427967974953260708214176935758422084125944657463923334445365119417036334532009414926665649548663081995625679371143816718496448517878660260731219719552994243215080753329818299247871515507361637205640594898073624009902106868243352937739239471854145575323174989920635809628392982307974849681900990853649609316101137309946046735016799159744398725612137608635495718743850225776637749840007589045892036177272292875189671147195205345875000749365957866649929215269861862123582060081455389876356227508625510365034975382066796773272094271028350847314731082488545816358195023361938840935312305033746020025503570615201479309629548176073001918000512284446231026085524151753451902966872610652709275238869955219391673948041496268183085993415332950587688116359431324708030630447058166585500691520275036368812318004177742879845387595937125860323608105619602641832409753512062703077377266814272048733114766349837946194273857926534738412062225016931952364465534995820183119997241645116610341753284047214873773842059556762609790974147859963762450577932118999758963401146928387657220324211879493309323170704523153048025124848707063617388810268549049560468466205080101783827574631419968891271965421488279338425428401638893776345649019012649636718775821645795297628010746713945890177563072978405253530772316773545768454903337583432935526457554750944015944517094231943285973844773559763935796718734137350382557153342084841488019436184439476801839929822416757013519473754050897767336992599668582211948804821410376483244861143963506060252907438541601718123520965436652386313958402676304372234429075475422704926287763547602635079989986628008753326754779604216281045792678155784830350828789701314322818439507719204785472694871227145938343351876020622721194861642387444088672774648870916895920799162112015181126523065675866253355105326302111414801689023120479203208734838834364781100286895785557718138878805395035559877756430407241372866354202346445177673157401103448736807710126815676505403818157591904760449024681980882771290434246869922171571610282507684130333127239766179112066177037508254058945373828067738436316995449299837971551131619486910583475250097509444260828282714120630195553759093056382717203615868168528586025015355109358873348855049219782896658004907765033468679506885475904353950212508273214074873745934369134630654803538308313932641353715032141124663198811495504322724419512756290678509996817986263030784511290390048454981727894403123696344293137390096291949914909683156838305626752243649468537687096913749605057594592923931313954887996707934783333622001736906489025005848425375271893636993650184817189637338790901926441964328549633569237371166466337394677790657768759684956419476109628272826886045188104336079352517485895239150155428276865488494375201048439985584970533858720069021980884542054866740851113732073641219978080151263296316691461649579486866168369393682447290512849781419393481426868200393940797852194525896736367658254389290364616318354994203867422697230067173643259922748155110284320308162447437900569783699756412435204608821997847623284822080019101427575647482267385324666012045262744195996817386402102668129159249626797597548934417677308962791505939375613313419524386882098396239085015315713043483888458475224054876687297269324862569665158029594930528370420795046622131186380809446636347780503589824619404542113111665222885187935611963435945753414418782474966230517174055842950012361233718397281954887410267105259282329619097321556391540007820441853506829716721288416752956084606882786466302155290713300673907569007486015913421104973732135219615443438938532657439464931730446364271719804597411203924545662873711217843378464041558238429618728608674122016257737995373209759604097569505768136454019382033741675051830655103651305885272456410145573019949593841802928495225140679835656122994066126807674411589755818490602170003158214421692543561527711703675987860369825744418580200541507192639395069064560078538005105831581458028967823263931261463213934694333361539562780071994236521242311690779992458912611278019870240389267595968428596242344923987715551978856802002127823010608488516134542052980694811431395305654768488819513952159844306253807811640822404811140017387879667760397640738840912806741852000590654296454060226230728250449434509828475309738380589201175578254334456725673939656277283391296148088258624294664175493549568693739631081742119483357767005871442872395152374569120290453843027816593072112611339647345025274206547359608966914801190713228964939892057026596397736730993679983994135281057922896083763671225786651656554995361137249177806390750482670655259689023940253208938207755886040816180078328817968883318897676318721658590391954569830400795031217773843275713648921876253848593404491716384990812457231682290862991725127167139959984010741368771474173843524868950758890488758965154030212138059555730312452770881877445228890537566778456185798625005662609327326954187490176126494328856944723874930894936468069649489176979432949507463920299472108818216984925892902963923971220865310861359493581797817890096775253210884340347766194866359411768061341208577491189945819178987121796734761667172703863418484291498444246984409837680928634228219797513058910646472033034592187196576391578073702458774369355333546053768264265633701477032312792967183163874538660716231428893768868992631569836175378975918634565775783468505777566291527404252531300842657919436135494487733372500820072627780023866110840675824669749843394611434846501285269753270267437507838065725738953961432093892567522850072760813887327956140397902966807616827594997130217135696957900607486204707762297585628041875209679762543210392879847914391490335131843605942154371657053852423912598051461708650808001674508022918425372486252169549567662102565358278371474776328648676316855711679809485043725915216700096054998050931460669071427758229209575110045253395024478319980994802416574162360542971074879245381866315280970950880867064896982081955562998485645183606775869990969090622868391146589496395240641221303996259518088078215572510706312337480388571871965507673110397249730269819879217130751133946176948820678159462750855020315368503021396467462000067153060688245812179396621434894170043346468683376208613650621213584227516873944953502363539502463908940313197997494927233033235979670125576849867779202265064647922737598397560068429804255928883474425958115894882662535330880636746813863965506843497785196080195029922959485902246313063875808969819704962330772538655864484140022530623535873386158209584585312863009492557320481344847315198526416780649781503991564237500191254512980698679794202913016126205035471420604769287845713252608196137122499781161149427501834849058317316906029953740452868916828306691211100752477293008195018259811535165814907117585337266851485779725480421257602771051580829170903394174949347708566215691820602825182223178263675230209880318957662694658941343084772372378052227079585782538567462290553869860777304865830059215053174365507482252893454187708863486213717082665695458021707345741439224136627148531278733421400846640661339703650131348983546370243599209566774926437943961862653369562411821663177471301052914072599973251156580051454714654045926722924945542630012318358895597165900780821709014565680294831159855596587723236419538660922724508638441108369490743752611419508103000911498456455544574709129370392052079307165614531934145910499813700249816836746386456542054062641049337936037089923004709971461738905782594850310256528017615985661941340143484976950098670961239358966218992355004120102011259270788283328153311789083403339452791512174022319432005057397598289035580451755964245726575472420458395368283529418904801256932359232488093042707107532272398604286225715184807566873701842096419038864985433914380088252514340790612875587321460512266822166612341501864721394627156249628105365620363641862735564638537036685731965809253549260115549904987693855228509609458987375094326869408933179690437555238148665576668902736672875510085776432134692022350704495694954877287014666743799008857666096456030236690310831340028470799952212515243650583488480293941090019072665474006909856587340426494483983592960118031640547902746516878714286445221006008520498480789972586864734378303626231614360534379090135828986586444976712350009568440902634524695429820317110351653331022612523762186725364255481074449312329352588824429214794190553941485451277415986306286665587812267179472789933128385352019979384380396920392164626280552197259946600438996741826631659243737019821904039580514784633651267111049807836887281867073326692515707856167675299892262480434920969181098642326795191567353501409980829545062454098650729692462440467282685767409226945798814855768110681109823472185943817959987973219962731495790661199438073533779530517577817255295446278443741507366291262108419209527887958013987259643360007372718526752832193138405903911140329951745772251388463316044861849813903778515202605577975615140089293200516683398220897468628800131571509401521685918451904962694910589722628258587460627427865541066567930543294460088705249345066968741115024103487102781215989549429491929467908937356018206820383386340581430787606748669561181589403596503174117184625966625355351877657810423760421014979742250548563633549830424519598743548793160956943232127054116399464933336586484796497967425656840835388512818887009430078640678981674412883121911516076990245562957792691849299110169607102559698286735606185516353366417251495114195492514727941016292344249151049582987279210876415184170760686485883587778899099430003183839226540166610474942258034169574203609362819373104834960708755557560552934937217045668299296250887860067462290554501755771924679897664926886328311227621471228911542424892274772668304814844524167900953235277589742139928668804171518487527354307088200459166020889078781824431767729331847924924172306433303029918164815953091795861137601496491117734947378123367727461595210106685537635377656183003235146717701072684235572624215495741198438605038510606961976625296014670300944087933422743013506083239941400533534548787380090287177265256485777898403763554631323948552735770550913575951165022096787859437601012597435769244551067640392096284755307358721468924072742079126026204479149704631145830391940737787400824242161068858851292531175795832044981612179331360017330206276568067796084643116838706705616477510220407437365671721536173636085386658045675784847338439781682353601786717293421011370295011040177782712357060463870081686909748572685844289941302756156970237874186128316751851643478493182603259221566555611644652063384243906699500632763656760962202884052576205272950851158528822060261588385176371769107047022948436538732987087580317089830200232317941910331680092057187620010962848305582307877780492834757327554711544976465010531919592038018514795907063684586339106461663204120591257844522354748093888820163127764639799813307376055476001143298313669762965829512224871674723903500500962442029189815170948135401215397612165607241629370960923440731605261257752405368071332582830119960147208217898238264010711383638820842370347998863663395517599468800145622374535665428719475234337098537380195708642668292332574382811456640447715511141031724714399614219484348888356970282680318913280285968127025651635474030272423623435919262322469944432050444466140574018924553152757618337501691237684697387157034025917819565284922464218272067308419064590251776555219129116982322308716471314505235815448957048427680154676554396768442271782951776084490464500154767074785875983409017231676893371799983716059287503855421504017771337426475075362973925078655459176448787835828513357949854192994128782324578399689980551314330431493782685929105245419860704575119175328795966741380671276814102336267195215086871429505933891926062387574078716252495739139716636084146121851251210957369972972960713937286201123174568700114112704450502429053229379933363617041845789760317829907170367435576318769884266313718808738372209292582401301748739324913641375061597842421983992462207304354067093410619099968663239056262344246720316749339789327563309976103291658129505151715837660647368234564840813273212685920121660081745460490238541737916599521012981536808449620725567855744168670686199764456144077410232861345758509532607834197688416791862831291970325509687720433598553112217563067460178362341819565740900796585456462615393423507199521421489382254116979379814273177489366832948555238776908695033637568916366869952244706383217872018539278753709221155279249476275452599579536533582833616001322363885733394793081801283597704894514725729343056343183386481996139687825888656814263977315242790062318941879606923799189507307139943767020384391910821526322370421626304475620818230063910678796802675441829756226451780100256961863950158090709292721001295230678151585829740975859174514191063681623501355964734271191796339749164159812392761574501613865581424776588178362390516259743151922776252131456596987665119330740242873246431211809894652360831937677240030502775230403635925003381889583613778852782394294341586301362781675044238210656312718155781006704753942245822457104411613931508397539332904017465054365990812588315921537867292506482403340995465137340612660437784179780936508461393821278228745517715672276466458051288388238967336004487686535194471420068404652568338695833332126655599968605671612651107558797053673669108250802250061630537040319699136791440675892720242421057666606835748971163850846250908391801719400074745584887744272945433400936332800824889162871444571728978586772127077494236489409216201056319289869048587492578801388992665681295953520032359620368351372051843567507881096660839208781345469123078172447599380336806496952976345657206629367258731574122971735536795124507528657276851445531405437800886123099558392662217885312919297881210990904093507765883333154959155891860019516541240018451478789459902476121751992143418206035199188051739759311125710274076178200528644100600132674365927892547837599109349629517929701988315139444299792857707249028759172637559218666476653396072675420737840538786014614484268497727132992400267972056689932823674268832240903326400242526162479498851864099623817896829620955143806833587166471136614846751599676783698774958458751079744718790841617967580161967170629495282760077339160604549110348865626893424076402819280739030414928203847316984153040015530686740967015629528016254688111590462717216870149468235250759221110006827805118935413839379557747654764110463860892057953052470569026228227685337150271612749395027114417078541617345477933839058832776761743895545107588771244458790902652246611296946683502351938021420682538869332813323980999468216854227808633481929795447857663215353286883430475245865907786700635403234952020543028269888712897503471085452824219203698144343552564361390882737231476621802823309232774062093352532791768173404171175533312737453275090981171905660499216106717664512474234567365155783967382223786262375408194425512561568721928291783945121999586549818742454614908714984019850305354171001925794946636397170600504210900304958626718584330484090592982279160502486765839209543631086440490447145958069472718978314048386646137393450449246402571794920936699081713104466646113122889826592514461618067575937155740228251255939510905758894573868645024845233761928316273246275792972601498222464814664831893564375004219127216665480539025903651955712271891186220179154101962223311270959864649785837447234543762870315238727563126108841789949066518652565456913996103711087589259478473500240653969136742870212786209458140015857281577169877763511427500300019447428888880881649526779460934818022608112811558369606474031170071018259364562726933136083271095453358383952576012079400931704481020731917044087400256059470647662558894637649939951680532482546831396374404223994097170284086733512072477789524610911022520799444003247148429213321957858672074413864431681673870471000755381032846244447533263503479620421462606011492116770751652603189103192673332679947141817044614781951595297825125547099349292884339410386911409655518082991008304384344158393530270544720166385901393757783393042313153240989877991341627712714395161813415747301919757478821147141904374120591629600580875737727326750819579178561171946054965570628464619585800090035687164479046693276334472377399304945716642300631425682516081922240216231651548319349817993339772439086104370867018454335061052316610127189746227125621272033544092599352943207812094446274305840582099421284185180704643126993537242092492060113979976703301848050056347822175172729283867867390615711788711312994395486499140656208139943028151128131691057307854005792787674879427263867597118962385010451476094009820514667960529889196558288622810691331724599586684800470225201936245216608386697726478123208884822383171813513182861419243765694592396148190918709018366861845415635572141418491038703646950542353189057312306550464884951615459488977934756366653811673892564485266722498120566044009191288995839848349124539816813429606877576362700051485528853569139320941148542538214279706634622261517873711847426400339947530481829114077179094215963215349736524852732360059347308683611648379694484064310307603563799294955213051150571029370423758002302435435315698564412676925367724740926761039747214832672335668479544189718707384140027299571250290521609671370843997877973414646708079827582820424087372329521317570682169360613365228378679731126108160314646768968682934956338035209284764858046531876085868037041234562225824253538101801825506201133433975418619845038452029577658335417124173496946139316624213345150604618723713077432949813372793838644595186794599500412842387934959423964148477164866620520966398352901870594982819381808329647093987332796420515326109641954029046127899886597387141125522197659726795447663103452867808512100018311526734809229289820280262252974102933720030899083397431557486403437518258555776229724793166680304376686633116992250263312763586978832492718574445107040367691025629955767494985123057030093855498934304905620935879612887440854124433248815830222878808371043731794530687839369637781368146610264516268442007324387101388403143440319347931605694442237480894960695398567994079364888963973192680587274799687016999871808970428797370413035983242832940714500696010057828340040092075916007115680983109366869500704462738025197057307557392149638509410784126190001651498953166104386982311183857692180077311502639755073377296149909639306387892071113351394007292119269251333758350945528993505679207645044061771919393716445578672012804011160981414526557235340729055009098838575669782132711079583045625350949301047581092438634629865631617210195715685506073298711851841151916773274347561011029825147078529319372374897411564127040130538883896525862852480060790814231061715736000435299835795622166176517052429984216672943485844106849254560354898053476197757788528536357281860238824490408937589160450484405874374504817466658675801822892317263806101080563087436545449486668199499340084010496296518838535624490376164320066521338054249861234621847674310756182950463980723563362911767810342669632390459084701067459456805998364450965194043147887398986292145050099544368540367677909976328079612984818382334460309398940565207932514415221990974745612627373419738625804805056511105643999710912068490222653414779912914181931378290154909191099507675724696591960222781533139684433953811179776220618892531152839125650822327010369717715036607261109712871716337717436867317359764828634232416194055221561440968067628244133518097871542898008173980421747582356413758923915454712562158034022137543003779205814319297906900741614473114027105550634919952569985343210098262057560171135240704711347775008300511137726189589170952387694082980314697494813579034722082592033116095383625301824137512608501178559578025123933267870709317192591883715455276438086814517721713569827302349973881484954464349547524307649957714299927755156368027357819819742690724409630382265889207159202918160529854834050273381941752043506953697586228183288663024089793646752371026749419065484653371202446988012821985147153097640655283176417050033479748715932218133938770419723215273345062699554152975635445062603149864525880586274819107266436041676612827291466146679424958973160912112204358068309907884804963776535897788194921091403345957773865786741127827750328886854046630313436375825486094889497700145952676272021940155376248665390850711446353083828807174043430829100732467629076138714878171529598788281713886429498521675341483983674273716096683125774795375520970833564925246822436556434449143741189129053997449303094280430367988965287492292932849420538417811302131730303213200853431512224780714491427859572263432304760444005296319063914949622397602019418381769388801193821193749682843198911483597560709816758800139907018957114879215219047185460169650056157282631426188069142922302795856206238249562972344983820132583518914519816831435185791989136521704496502022488880509850724049530231225665749868689666055092659775994509221083144554867296835362742129949128477170587374859904075885114468408097424021566286321781551278356998062577493164905867410551301753700421287344419023638670403128302909370747174385554241604608847290684184046088048625521512104815492336339929816274091616504710136246318586410225067004198742341494142833388410773478810252482925637623998836269517147047245945252751851780804720610694616836745748042413667720718309208738287892442808300677662345673986023061308630306473310185412386133145922904691725864904420863011365568852895402711658080022276962952204395067043266623287952578901311237214759328395865035080843618675841075484187557688218178292835600871856846057789430926045894111833148410504931227953110554157856035693401332526240621169807399929795576545738721578075646526689659345902545325534977404459815347831905229663601057394209034457890303515564795245423681024195821255770412162010440759538307457462116011283923272417925833096809147313712576052810737817957073955504411163509818920635303451618206179461821109828656740114165114240159085697611881160065756879314154925726799625136273298211618285370295414401835178212042602487423026446508586029743709227146627674808432748611559764690207869351643602354963621642753589959911998754964893250476821723176448248180136897057012491082393169777973655171466609225881776899311394200255116180268752833108499524484681025098810567228872236110274928741924869241769485691358375984630737679101141602843584421593576629584407317426778680244318000850130076527323842826134548483904163377710225093930796330527092297960200405622664786179596415471314954066484250534185768677252906296937834765274311535000910424036762646854293726395361975668652367540539467276336048716629630398347924432148199459779372317692231548055309964625641318875147727909983859615444008656692627378906626369707686847309197375378457997187300282692124087343016562211937663491724136789509787545969827533395773087338449908640535164888403113577697598523041131673944291669356040808397722493766652393204404448462926265900518115714846913536676443507211574732495285698970420781611012348023820960594602606758438996931226712611269194387980621171859446549404810292456799594898335330798059268937720694996119120721700361797573544975830523969535845405403015734042377928774614100674073665712837689245002976769954173741141712984660579005304105308601647435489191389881138449817590789868040452850942095382765570344456704292683223041213480856842023316223299161400324245912680342646232928240686296859193623659722885809924614268758704916241585347582983935932556972142446696948926216976227880417891186772345326026643710998577444277497341351534384238878169791097794825208407569592862483262723754146433085021395995934706042955026113094271168225901086663115275065323554608738454759054562773361401849800155520436411338009812499185285795769763186392524403169244822474363771287456893206323125928516853432962726657830807091980340462943945610588090208579543116795344551963619753797520827600162005221429227720988735903621366920830611644885484281612700159178215620808190009027793489253073327122664712599383843152349468724249800862638844533527255878470127084918261689296564059916483908873677678259287133863632386811638372624615905481448489800762988272675162570966985108443115761581535840589109056354185788739264502026231735175494699739747396754770179981045408196539560521914488646083919120392761506490120283856748065702013462391686167405247653200812548983933246905652558665176436410637237962510585370446877500580736850496729020064327116019434493346570262724792346732684229721731370486221195121318714294077045773614883862991618088918848617253238336736096162909962431174713759785529128203289853039485216589618500427940861972821244194068613387388270213264429638745735650750877085747700270770333346800899143516021236103044229326555390147004937379671468695845647557764969706277754096670150431847695614602354359738502789359519973705893457513958395441165868797585232346473611336667848092100224991441614921732629303745523248902912314251946005591883402345535339744438266497772834453752737690834419727581280236815138115656590139203241263519131669453454571296647502829757884204486672269401391893092963729010980342474373155816773303481535564382745385894273929076801515101258751463341612414855565059814497903098320725573124333431062947187937814901288471477249316291506481295324297234656859288614723191176769427196998345032310431817281832020647828183270845114387358991329754671655142682299950693541745783106861261885124972316908786931139127764504796726209708523732147572820821074518690431864957923910186615257732471306842343804694600052153590507966291868012497699491681373292093008398600075190340528703955768144979189690926340976328873631047281758019080509273502707991202274522590675732645904623963781667430244810098190873227269257182842651168679458663285611528460559102374899232521141474651852359266367131312363833037619490218514646044596086788294722037449849325587099993885288476403734344774807455879239028802506103081675468076370436382090830400569492147883536972966721243633070537268104811383453325773761869705985061570819330356086592285809320938618054648158454518018279111932084944070351209683620991698173871395562782696595452496236449835256407510515920202697209948146899956194505680911135773838455871039195268459074597068766269852256830431360816092660450222349186357764100714631804892785252577124723974582589499757099018122182190581530012675231357758736966710976401342553500547721865856686952776643509651472581650897672448107056404386842194387643394605043102642242484956966604973081782790196905486410886591757627257117328590987433498610787742763514229866091271921287844285776194220064885324814873447975322561235803316878499807519855517116746160175268672138538246222910144619113106635012743648236340780463832600484772253608068020230454358628392833581798540861364423448508174151569812617995264283167474815153009467417372538241997338848684856770152790457041033561051658179160435449690705121014267128475444329712613607300660559535317340942820809853208128106896218619816625512129753461695562317749038333724014264211081778865539896394220250772286611587285794462711556314512929137891831496578240630488857690891366393434170500191692550122901016531883035825327188061096991673295115909858541563056978610599863456932752334303421063616211101749842818050468687007146600526599799825788900369918556931868358134169663216142348930450804219755133577568161181495464686111182883812072912691992640381823819876702974453199712526203823504798580235804489926135814313572910768386553351859149157262993069702721603685869250753853560480715450429843992573752768666075081687147995899245625582955067618108741109692156162653586541789549582990335452977412407055391252417668341749163848286360412858345840625405867042980389221488820128696751265883290324831133349956123048088624914150614550258357764780457768175338301263584427714376306993548657488444375303815603052619417064129062716868771678230602882799213613607432522451794218079093007030363846197165052457103840731151960772423528689135628411424300959996991556237789403086150476481375450686815556715434798336736181831861309540154646151760784241880470329786709890685912113379441350693196155316043138181242425143710806713087649753025108589791235663988430154247816039924912102699496055329365821920047073740280817776895614009513763988875020013083906230628221744662984145429930120603858108237015834334934871013547904753686268830839381283189450031750411120952437033969969542094335824306669809936320886272474905868772535313602905115297873453968334943294126489097557807485666498917323266165852630578705707565036346747916414672232464222546513175704640323026647234814771537194292522978061144249286465053513620997330705927411126842777721806808233550224496132266877219877831641737094623448881533821571647273141385472949465730800107970311820588541048594994738803233024202131252723852289721558770043017992547147499639666286781580404231769603846938849849034424422317714070348123778347575018889621266870299230381418762721240236678794589062020727087988423735642626971800395746547385562168230810219888965239707685364081053275839745787257620745578127420526736639888347321907357879807419771964109196781491886254629089067359308353087575572626423055289143812030647542733535233178156705088831624816743420208145607107820259660937562623969733731386838029384080342310544190352605900149571454399083691354759153705499135857795625479281354952604138746249338046289594599606128900414101765997142245299421308048159872821874054229337838647612473050894102795437904419943055724786626649833541891098625549044321785514578203922486121928147542406479296802406799767299202774878390254777305900448298636388968475889212580915864287288898267445319263334645709595717682233034361776180739013193423117468655153971116502611325355274310087131370413480458782662834420437180404057066967373420080988288703111893862789470909541549127734397410022628534331978172027917064670640223396813306465508063443357900372882065482100143006372613671253832867607543458040235801444479123619974989940734282169031789877030798022376436422800670193722809705496699521634301831510808168607726418949242579758008577940588494205785051993881203914302338539647941329979048167553743934748013783615865044931003428764957047828506281807475480784720154032560186621816870117628383488622127449398693618491048386325920859699820040485195801566699937870907468999342601291510326500813957142389595378218985175048856448727004085127129575638091873258844248516531352422023106846472601158492512034217469112887028634220571763751660847991989370936520472218099688970360670743138373233904482468004158358694145660184212224881782463142942483889337033779115894852092547122318355229696637651906432030704968738980625892504170405771191440596554436881454573976950658505615003946902159171027681823109122354919456042049216433264002308093519077342962400666992272069244787593970137169140916334228767537216127003610772706337529514040810843953594753854763342925812454279248061913778762887387500737898599714787952706112770711451396465918592290080439148697742657750786655915912107504688683098351169029971321722557766495731845420017964010083625796509706807928421288792226219048068384178865098950194050728472490813118812864830162246913790934472411490606800000125210204164440274728792443509295328171881581929093011794248205987986222588104912088720172294336032248980693372943866024476828988615855753758386236876537758341570851932215978383843558695322665077786886462158133053114334883823115334352528559204778659399996520738306676202185419340095910501382009842923681739412560378369378630488628557785713845984813141782607787308885089812554141483640804278506484575926801887710464736428611601900237176635218940162869433601664275274889111621303875926142213081589217405825922783969430363664021129810029489725666180929254792774924961435956035220640581208789517918012968855942480914661607425298837954001754388660430246160752232452086456831683712319738907292087757958751443957573670483175250448955567671656069272659861512686736256851634469885002168530458463937320168310444797447067953533848299278611010432627256255491471957610456226410080173937693966425943381357010930877963302835122213585316353341442045405254498020322202233187275310031927168012308930788423599110024076325374624014746011475028603160058017543380753734429958028429940944117859352141530740371372588497937490624325747422204019969814584709295089032498298338429312221842256189007286067420609498073096634040472450215964924929968108846752321939650378404312236603249512643566167917045543622604725232540715270872393145530151882984307107156922026677481532036304328370990031286179591152522883999846475259077372028601020574655671705549618753833671142054030929660458448394225530986590117490331996374713717263524224774087036720119773851367127538499112261268167904566412671427997898354409191649652495465751475799891640669928654958152006515483171570920725561170490583337727292790046241921032471641913325146224691073604014741775899796611435390751194211524678592136922812662641559014675201350066895050536867644054181927588100137566840943726399996826526901679204881407809821617406447662569771219772533725072297896851921345589314018717727174318862962246609874712997568881338912177392075252597185864909070918721264095365914462150440742472900804109592966725576504051033868951703298539803984644334469987140834970151650726294899659516710964894685900815397950866359618426062441426472250121861718968340519302199108187018250018533434653651301516966754067348556517441482359532077173376816851642381047715603767558385546316756394906323658243985049641745848067792067620584875042353601142445886377862723326518955133367806479309041497680689631357962927331912074421166788329277520474212408973118649992656796939760597877094009348550781065240437939926681668139355171109650861037063713784847812036555503419373660582269755099670882141916616938481526214909651780235004920612782756174112969110621509059372936221337645151442795810810938665470876096153546458902841023664503422714423287117974730564817519216134846872504019323731099625758638644040300681646294408922833565918535585812364176893415009021588377850263041769093869773824753930723009817698383778313648329607779973074360258531066175657569682441967545918201380550404792546115676417931487469052410567620253503992329125470226209047112081467134507323832920317332152460220517550511273098169055505226812889241319693728190416079372957320330433798017541047162857125786924519287970188803970530989855226158976296945698801521596225274336582208207503802402412542934609894224552316277943055272587198252293620735846275535668985561472650443848328581577729085178732575002478962220167311935052836143288441817392998390955518126289713320113232137334748908644248429027768838437956495159377748321997159603390399807473071648843654261143817524750944245444653022393408358131136681100631047276745875602534914034814796736077302340330966689716723890610338535284480366483790385581382529204749607507381065477243878808132766525397106433165641019086562595134342650555329667814898612680388834061082480952104793967369536902197767102540318235530196067468502135952020540933997394048817863643015921667848066056762857401765827136321319462465584761312525848891240015435076313737930046682897946348856817805789921100676442284039711498541812827457966874873197409173729298782713605394208131694232515577497178080552523353869903129465080757240620655954152632748498370037601201068335242754651508425327880463838901604112871752605502627937426249666830407811975592731137628023550670125916815118419254091787747710231044484432383803065844847229364149264617655164994037409800113149997679937253801879854458299209015310293202840886036022541958923384919265589747578882043186133104543241437813813401190444372767776601945099883097849131536475074028240578739259349287451691497447735305485945839645304525875248827898172033108739162757528577615593698474938034332523676397166950851010464078258984973898459909331815727708988235352478572423071684032913069340471849583754618271055040310947861645239383268771799312121798987806139113504732665046375787231031006041946265422110599890242568415746815974794105479883511213643208648731051670023593062729949510683154943532010271454396268105598739140553962561432737521767974331112102742884022034060499467411306350245287233771955386918930381387557936455122804925995042486266805766754118389070031453641729509327933879927276456602216729460680285960483906000278457326220749031635729922070563885930501269858554098499802449413313778446171361221452795213304326904100855409619328102408714672770646241665142922823298034405439791990006341747446293509613055987644004206699463752774974386364381295717093604090450081528595844442176977671930158220639857105438324958183882984011927218415694615963814788490648189275934377246099294039707299392010643789805459767602291613257842630585476989488034215746616434078546411114196321552285739223498568011453463750648888993114811904310017209745269360319765545401213030620515625226499821931344269889173728065060791389662513270219774084256327623471441127147619924226325381650930393412450448592645488560532769999220871138832514721603654398786753819549674119072214841701231171580882181453238265764693717304488727580452056504147455842458316067122045327285681506709263659050490309057064140229489716410276381669380647755334332831238632131429371338816962315056187938108669724898300776497723404970687099945195643384107853672379137395929250573531911317729810879208395215116836895918023521415886395657374877792255731802933939373340550815124914540169521602813734465238801156429736329508296875610968458489159022818415459350130229171413497273263104705665229142919024248889512083670856385271566141112865231591861896710772467802075777374241628254554328998122719916652264569132394622969697275917644431047375581989135194678635826923046475657369878935482021241521679584052151438757973030621875772335250160949598865412163409971393192551568609572669840170051263280377618986642835356294679909451463425355128284259564248511455920083621973612925541840692117990964690660341147567369359822680497227048134895910858063641664460618454166078189266055095428325192499314433058260113057995373590743850789980672311048005565226123178849943844515335980237604122519506436300519650178804643308486501895909164985149121830482890994138616295188046736147413414832440950693680231481064197778120509470768273710591690681163683068723125937701401384655862052432679079127287046104936818129848664483941720369245306698079097170800635227227176646587074690128729958726127488921408141903935730238337629881124014945910770208636831911699137901199525005300638038668661409722955779904703032794925154964567482212853024664557450552736705297329861853497024192123005724498564135968208641135418673715159356944479354511743612076228873236474655626499747881438902218202934994147552487967121162204337682662389366248864177982850894701685098781834909414308644462522108289864468121142353216996968292770522690085767873107004284763504970693867409538412071263219807697277711562536404727125734014338234000765311033447195194440267091611932460133649155019599616630773895700778699269848209374300717921813742118790402961424651094614299645701235005242778813707679102855717608538021308509992713599950153669538074621510869289073511169082907798596281990443344406073441352145464710211383963224452798295938067621452177095072186006180701724462968233612528159299733395083167603206404686980601662115837757830032552747227978114628592423594427852464256587119267038011797494016365725558585400391147538880624438833395353493940006802362890290098724821062972898704201409553377928774171286191954121566208453043349209295721399197973955116016073947162920343299650118332366981353577193841958808505433724568714259415778527344449087803113909948358376228536345745157966629813859906281973831775655024565079604763268508583815698099933101975272479226960146898568291578732571575937591788282623651079480310852490339472365673879722849495443896165413009646915644334643851804127774221900337398276415551615597978699146204391693206190749553001187727679690298533247127534834784476653228718728460886944645709259669994999920034515265120205948766674832536997349668807267968588326165820472867493561151783089669549935265371738874401212207769419323939750886911599941013272550789011407433237032137308259547522403295435231227070798290240111313608669419158791424446750035456270038036966177855942629053787922187367326923259273791588192199620761577775350066373440676226228571561528397276862310947979097574753396833668804685274185091998665470602293185408211005243510962263198279540968054983900437049554011481584770756403271333755693853396940495968801830688083699797076569942063575452787867082008202580023901164202840415459138344351183597409205094959103084469677959126424642433801924373054743935923184886891060370278880027900063772626823548510257388316137337443750549735169652443384253474889664424143276232677328812768665539134939562172056101979275609047974268054680711341890750097862411144484188240865036198113648778111948548508292411207175275542947121795727131829798992825789381766627398524577267696775512983272915175913443627644447594460261573001231602092693764909172542298821665723511908208269216988316116256429335629894614806272802761735463888285489111397279547884997042623078149504373174098399716453882186633139598138602467977639435516067844958392938402320430820928634684691871736178709937496830741417804150101335733461974423605886194556013963361188797671760065680285524856221756220047444415482308185784821024927151866249439589001017297601324915309400574276876889483691700620856227657918679389878784252409433025823469382466156230669285118881650014774669984451743652082878799288442491355172054501811726769477643004339807038387103996033425997105755789163370661324596278593772523658807808799559768327486703731531744395684522745470956544376540539361464648413652613699612321745601699381915690976499053529761781669315713514518169784492808280769143265487828554614877646042423333529889951914769419250223182118754011076452434679007985085242033661241127903382298889546384011673146570182222061737332168934976778125582501385484899101205975070888913112218300335618300012961516988430532255823840346951485722445421563637780465508287833720471677722213696831291145616526880572997152688652151668078638030705850136153531701416447354885825032499978861305258848164383220968052124591098074498501967331521989336886040326616678001370026687911964115138289373909533978717987524762498644895547768308178761037840662516418037255697302457382727219072026821019595067503301895939422559399409832094962709861839571970119595530658536156463245340196423431660011950231913159575982837775304272082268221236555360168577103801942823932260428733084014791767622663564713705399277926705279408118707183231674110817303906648366028191263588087518197346893548258634419279663106163216132278107744153437787774760234916281662820989478218456463416100945925398020827828453967016721332023565776880882055614534698542354675146626312440660299586458780251483826503905419736786027517391650309552537053578758443028165219827321475429042697685267564131776862699135270000405930378225454754764051143883639192842716627808555859803286027929231446735361338966918641250473821014327829005742196215175458161823901073700973999915299096838322169289809508925338873426587981500885361689016924217909945267292693498284265809219059807423039684013926491064110360336841788144830257895402784904245335860918846507224827560120960538931953139087678261385332947950232577222146867102778246843314662936594256047069420544650528934877912224682099051552776035724341614121743621436530988124765717682241545345617715451252961452350932294014634653992908803593204489053733939460596044823495842086609832603259124952600727506081989230454669449249689788071994268526935060253140307878723524977352089586833563844753997146081006168015435505802737826107850744929509439556616952759820874755665473293114775039777192663687097258700931228284599722471768794952376208326778198142308798363397901350320628902581380268549368471654196075364462630323772914890398095266397888815929748463570237134188064097921175652093915727542584598966541513000151959006202210437833137281220190359799224696694767973125023007262012555525698836581645832649582327896802937343464490766837681387074382873089698113367220201493913341895374668527618148102052845830449594628195590038074981081936025118316952144516771339324258928851919958675111896019024990416630852709467692623993545793724194530441977822976081752743141104374092947904029537871390116265646759982713024063927198814362064370265620270141921770397275474721475128016494964223857351246585241531152678381331722047771727330040222051767831577072600998170404094391604327352270816186659458030480234424088817062139879716843133416272903651522544248806132976944433067154060578420133650441935409559049107312483470968816250266796692850109339820004608285917389082099416852744471750148437230325032606085384285702142523246288767638498351403797683198824050992013448286529245991747322656720897843167330207736228948588935189387301480803914254737499375075975098214817550363762624122523428575459751206906721543640918632153617960719484369274257314678703383561605083196505654099405858381806674233280126400098509162615726584589553286597438814629483775664829412704313746813035514698764819217582097086809212607437260576302541029228847139042382478339169184273399882878748392172438640096919089603571751162397821981361253797227735400088222362786456673361837715866945266477953371500924297425397858913867687220602882120065950486262749794120493420371582783714694118639137422706836344248567061510878978841053491945420210724959892288081170302265484311599782365973191843111300154197014027903364901541902078142502288330239784473668414914011944344922061214080278199345611892558350635948003516554927148441876715124910654824362410148340267880190224204148262862403695296105705566805025670463484986278860660065711995863249581621296474039082132868328964679882906362529242861815165271599065219270066874621821376591036136964723941886393762330214250750038364448965795067579252653985232709705298704761524330741110825741967617201401919331539763681535050793877616048856441151981220567301914578382220243382915670874241444531770344054409935918071480454610840627564697501496928132696641510141840798075115270155991544286975403800743068180471077700964129067819826208807976789331374895081377430367732667051622855045707910193973770519951450343642869518630698250186809383146149921960609590407353619166629549497419064255095442793054796128156394308665178392626508599545821990702084540452707791134262525599204885419009496408929193479244571428641559931752691312649579502834331112708559524402834983727803862071328367454924793421171166494589958426627518240154549088004309634665306484168674191198720308597533857917648581146756438201866897088740626828414158756326262610334632365289525074797564062279736368906738696275325876798418533069797761190446974749357494800947379992413215429889216378893112003490560270257562217466618258779533995470114754335096924640827736272671408892202955326576870054073874855114710540365583680198124206968385398270669336823172098412948446968482104009930316171358987060996367901940180234300192062912861247169136937342577313104563938596822279338190232498038773573058679489097245648636956384873040786085727923095120063036246736918372619360682329721038175778846544746519486174588285427672029478963385693504958741458166739995676655895380731390322814009478473372332820301333258971547898409363145019729639906478051666064714410945245179739428497980387911035400626862289049375291133728015453589411708707525191895023260043185395297839228074486074492242350744448840701212585721397567562141936964110123361053418834976139078867770753492851480248852987041591500861680263316260900148689030106835993271305711499301322800619681473042402340842389786056247870792723963460882432018642251291551433308324192828769033720690346810458784417015426870581443018325552795899094519897166970256050391137706179772454837487109288808734284706100475202290604302564323390081046292946073126885390451381481564130584169837412373506102184632928019352112459857260522821820346109781576811262751646660895248539092389485339118481777751953288267993941752651793743793519350095872677727113783679733013335765999844444697992202103538748188135194493309538137880115549407050333669118132724190308500983200795265423499196832345437904564227674304547091697742509832691503238076353714820386834648233868999716142635207105161255532815494721211101758987261220475830841449094945111490816931534665914092131472343878031898956971307078233878051830854802769798802601628455075128133256947596683796845399744117513980460889686827135258015320231504490548404436677600376315699455286606576024207024982174730036485090589997611034291352564293924066960599257770551614332925846044474151052140569333483685604302381357258111142308903943604544011498892747583917340801920325005642396954821713998481001012466668769861249321511628657232842569196857479067931788676131419036857758505721685975613693390941050308875845374269671889848568150288731311711050602783870401443624315349794516420839634388555494584196144151298002805336305242838150913396766451845628535452768655922566834756623679770647083455288518581390609717828004410634726274062562967488984375535159356869121317062520169519602023976881837341529926474046943120205024486844673598214343804785969121443841099469881082141219154114622229740377531899325076546473726906496488562875327504654315559256148418720149875144531867473720433970054240623677192403980734141994398565080452732792155391079261990541846073606226450080542436298489560097667268208040951079786975094651571682849451953332675567187328430821120850324131320170314848618890552565087198773077254384196038246518012871406148437719865936365546654081583421767366314251775439987036963817088158556929108656172547054085619172339960169784151891393278244623786437157342990662855168777367232740703014999874503221004927503283646974154530815714397039258920515221636316816413477958861627516460895542381754121706792692042637657755479291826780229270665392174965746940768328013459846053156985940748481823827876531322224597653391335554586353043252182707399690894450522531276660597961723216901300745720020668268388512623036305337502094009826420188095398532097200404101107872917891045637316635443235402475587141705514399813750320076248977249052413359055441581551305427900045861981374134037320100234776299534146513873910907364652275767139215147597038037825332396673495468596431735846686296363766858155642424464754233585306196314892597908115046704583033517226661465885927405033590470214260180215373245571622144791325472532317753825249208336153224970788831716252325491688381867885725337241495725548828188419522928738972213949150615871049755484339157214616567412818782075471238808823680290431331633509353039970930818750016651527747520279240438167555063265331453117828804288823349625079541134487765102553113256695727709620243124813590905884503768690692760035924148917938476269287929490269193925193211292301772328849171405605565537863047806397693927306478093609428393303567404059876829792674071281908226706787042842847267430586577299257198871112537127489782573362535474225354693412170757243248815607930493219158056429137889900380633981283626842145047836151308268657213315960268194568391642141413218483321516936691630399317798601060526536442321951898794808515103715243269256179198915854629671397499393453089103730074546838156596577440959185216782037904968410177800489374455011080979450166871657384786072541339109544677842154004834622009114906725856960817870596403289388564137160161160201882833210277775388719275957883243923944362422332549864008906069357438255512584814199868720672841820716824097449090153405382418631730864538422410407260202567678014703022183530013827914584189825144464283989464800648965220264847892756162673928102239777040573550202073055032451030370587497470097866379873908505611824861139999057747322393279334673824655504835749752094037576233344270898795272193381254926937983202140625091293617042888697886002824234340759641935239089705585815721407200316641669081063704743845384846415727782524771938181505611529165627234828180122165277446969547072377124608487113940065135758053578118439868697279508041345160886704409611669760861064141030935006391983601354187247416091378565765145281239786276736956792107566286009729359002778238700583115998677060851116813113941673511128740817223054170575180630480900402081908679616427000074242455889625518066758165860017238687556150272328943245564530272068977221760841909353331587793184809902281644954666487476102573073960321676253486211378607147263817225565794935751328732178711718247787203742360158650584391861708660180521919923526725417539618259932592467282747336932691571892501222559267460461503476212014334020763024705915558596150888087056497455795611927018259155005942511583130444770558128501262957155143128005552704029669495031124344248330256643665702237692789212782268641887404936895913534478988592000665068291416950684755986841125117768998845851073007291199848106049434041439184121187378456049035945693896991624444368052315243709252572522107377095599628888487335107382060139793762486943962642147349633960933304040180560987786986719811727380976777734119476569172246157645505241204413070434656923027866661707358369337655325271496198249091978241726780107223480141878943373545932125393353791091087412056360511336419557927513766795294342539161777695683381463603965344820573410450673775063040723364340638669809575787271891790321570012455251243136519499320288827888374893231567632255543174176547557242658332580100608901464332854780125485610848865135766533594676631617857837637900950862349694928436168325579857260933514124005909309727373760099759649039983902943503342705621191991307349488022007609307621291840167007183046284158579879061562357936717825813337766514125416469170834844300896431592480478166721007062815281779811961691702872074926886428010390186458022548934164702877318647461021657933835497653061254081851878079361239233920229347693307346022600506590835370859228260687079882799029198491460778218036321902978410982310829991421567045626497085570871715649214804160122698797669446175383013896121776347341236741099764936222022274844157584505784777686408571928912501544980227883460084530106198794941728544709602385576874026040196036917728375226263515720172869644107484052215339105033808738366767830541968153255765318239519415361731372620490666328825170990477077762478515276317649721470303416983441446971766894781551498488337827542884990832312385312887588547381566207294984031375540586399514819037720993078719854279932700130874902826943991390633434236503991530254780080420044966618343594379404293760261588433247123153727966312013699193420422523760844847812695559711240046862782106241870989504111027332532476792686813874673731945925176944036594216419054942791163967184685370867809404094080764695968648088097625852572135050875863820415966492530686758092658653993880416382582242477628607186550862476680450503777869826836484840039254548136757290274977412469194687823219440860350356133314667192923398629825966770976381968049422892372696278293557441292611108643549414629086309145507030646342166542834287885755484224929936501611156002928519427456766979770667549934614808170972983083674466802957086732229883942609930154576428716175441174236286904287601305448241185277330410715676468894959627721479728773627339369603530875858770021446685543297687773059742249460364243711783881598770192262769944137251494045769713844584915134241937429383057959328275067678929633749663901156402683638253157853879880932404832082991405333560309450222642803987192920645449188183152327906228086287703210379655990346042103325387224044002867225150658911136198994842535614575800541746597984018644297020666380937520768983130988995465417309708545169166966913351791411768606637940112840268625369092101133798688481343803993549914346895520319909847639825193745081414625190986162255308877149035484259761430126455229191912647582781655432311353597482430285382718411973933682998693601086396039538884275675238881518449358355349885712325892962990358545416861621244030353869362502627061545256787308728635094848517544622259349519761753645318090975528244985268008866348921045414203085215976901567644666889336952597898336375013636227610259773290161317386461576724647399416466713942631729025724567422615980912350860116571616454995204817888566546983743685818844219406273601398335956377370015818776000730850489185313642043677923879305983416661760016765520865037492816079516910132565122114162212470822262888781981394150232963505113358359758730927816416183098325460837300129893026955253669724804423634361244499964823666374569169833447141899268172202798913817224078276627377257652338104049301562310465112109977407003651745914032233870760857244177091665472719156004612459730249562141405811068931333238253411205356457747688123982658455875526390374053233210998137356120841566117412023280033810526785854381695267327141549309971532692170778254661603809482816186345322235719532472982501264442791209787262052898544863682607569374487258331959685507490289447691238558893165464220143067144768662578721862435975161490505778097416955750312446306565495125258263775375542392917041659508973797081879964352428143438427050960464817293662307054861172391713735729582894406926636703016414619764944535084990391099546070385055057103607362696624008717405239870941114659910450595392445652080734933610222757639346900494619694751878114942104096871922838680021981355994544996228502688353689053074643830059994081001375671858927999221286942675515445176749075228026795169446145164190794269699581603202240505786990627131910941151088088541199259923480174110447448075004047235654031452060420802206895641017210775793891010699893495554847457010257347937643388429651060172436396613568967777266673929859305800867726450384393202957644684223206911151434158161595612640494104317863879861688862691386548376545375452088435763148873797890403686256989887691992655560201968938290652868990270441549444780465960539529338771196872240267783875887278777519694007397329191288015126586969258517271224822086371778945490078455652074130543750331224604291479335343307759769485214068566978524685004856228280253037440196750555842675317646905149975825069929968135530500351261607160135249529775332898267362985726792963665701047004272426154618714313420271267799562296695918349834110844485863099873130372624158073531309880396145330942469247049325821499802454117682187430652702079422798457723942642820974069600048143052030533881981651531237015402081617247796783172538242472170536966889173552766635538307623280468262132171028007278623737816737882531814288531762048364248590605537866727438164635013700276845624408274969965154035616208717800003979945255504044689859860820490228270563416540173400673613210555469022195493227148748637842037956004084770556458033367897671253019926562017958166722614900538549487424863049297413794247748160072946830780296170809857929197275841063387658626726329416677039444138146553113382074038457428631407110995725528827424586784448465627012572103475987849537500178404255712843471154672307623433448262735085960339335176398901611073392937462268881394702469335740267475101047574104056205757367604386324355338038698538424878661890711804214926669197358796795668864623368848032720016588278086715595350382695628879806683182268729689269628155659615666984532791681891675020855197834501503717769684678922859227658204976867679164853696812241559797890433397494485780866790460968495056694963216834583027913748719974367733166352485270442576427665958040730532678361041820797195419186291150570213969527390754180321728700582755976543749967633989878729112544579528989451634039739351987642750543550397813274169762392215285030757843791486558152898814697253489582827410745792760293857648999075454695058060972619142158870877047354616712522740693686882330045174813147104739256670536666216054969751652134210282860300785812359273680376454752500405755531648728386903241705560980637623900594473706006474954441074101886629628837979789680638522192003121947310306886425679831754246791798225880189882863985872957740814239541622010781991099890680020345163497612933666789684295629007372245942741861069121485377860906441873065997694447335868771538245620899582826927873832703351263369537898181367190185026436675485767352193030624059103127673255893314722257678235974128467066784614517818924177595927893453487374732909259859237834853584691615626281460357788641772416350554666804085127506610229430363804864633541956327500088529323286499334603249930264122939331854898545274106206357589019344195850655927887342023169393856586467266723911686874125348611336691255165264048414322979783586505912926783420723878539903522370483853928861260889976794471811388967230145858630820643633181130065120486916768914788256778776674964355490446649269636918478120835199013736979062008172934959332812064937816434800808073676909369371095197398744714639735499247386548809863440552064425572244767505527055079826685435755240644473974303932861822669725261371389812773566036086410860151776165872921818756638404670364685699464074116526670858958019347778027814056267359093174825547614846160098602599536710787083916176030020023583976519103618982290507522887060675965680120091402380896613872913370758286551939624314134508847459672698851094682209118657589432430676955450116970398870646060907760563802976708587044791224395164311278776130808249383534977434945928020399252389956453650501415224229186109165193834676840090144031479133424120367116379006852654398879896346977428860470705125430074169502272979809483467681021128254725191653225189816123355388072413063807495166896662325038033264939037844341107444001917522453059846273241854167192285126766375391603082968323351119269519036453102368882504663585890419296090563193260324905670983683735307357257205721012452682228928551477963142863592177854927521208636822963952217329268653650932657983547202517070572000848311960673902302739172083288097367009409263171749530941940919446505409661829999023068446259585480575246414298388277912864905930500104640961842777511884634319198605674347791077157630497704551714541369288905228959636372166440639360092822023431503631923127440398988131950239335454797016073095110576402741275705520690416443202565692236527959556345336270271169808564456955654397580654872165165840363937935199459225022527872034967332882740056636631547422709833762503729209541115258179486226270410757991419784359522883034574660897137478685410923447794509684724145557738869887618994254630031490840630537798081569776604592639312599165372237816016847824496385024646091249493646766992107546925218312996600708382702112700281682766378312840034408312241845344924499884780735334448023356770821021349980558155278026430778284132736285130676951631345977361152689011744040071921529718806124787307939361691867268979279464020116676809076554583833967691590113448344252577592426709584516938011620142799676683148603898318827203738743121675429516023511886570669146995076718242251680386249898825558106258087145496405206645212273632611151257202607330112100063337034289937728639855347279254755896731936326294563540316484285364476684958307439568135742673788206219398682189555594016963518885081978859885141939808942336421553741160067872343778236590866907931004426219738268543736947680456847857099705152655309732849899333152232273393416255596024217745333123197088622008014865744105164147393463187237289597013285518070950088418284234845109778454480985730350391489224405937477541082929174725570164461257552006862926538215272380216225428544264236706584018768893214183126211230752309739650366257711990386414757497563962872981627836805353041748537898037956786755401618056580259160817861408555352675799153687998153493670726239565197389632799069832334102379625764878431740587627674227947192952515788107016735901368884859770451523843356349535998084256637186655368382807343612662723724880415679175518666517633470842943398569750755679487721792165942760960477196129190419310769838877008292729115524193388885838029253011462649698424804993321004529177172472021597011325682437926782684332301118192102422252950069190460118266838506548023233203842814869143707904128598086536052160982725850515931585348215781342625777586737684606982178121525972158550850045193374618242761285129447121326215612156244859047792633808561226501575921297064373430561851826340554070781719681193819282082270101594790682270997151836840700688495220294371334778002734635148225938805634928637566098896648678024222330264270277007909234349131173757082639940660017351300832626566626452264464621802806617366685048168260637959184800730519936266135624194192713029063183140296760070794018122412431093093168676099110710630755165554852043576452965056210887250076573010860416275327845957731300769966511344590452013299316990496579632786848972367141175261293647695907741741692471208436848675029095583649979374364572910358552846066140872630012484402641595906023555840712872255387653993116999603025851411756354915898859613562403957210360327496135182952328730727818802292272886054928642357657678624809599019146829057788320111173291434486043017407393460925930697216559480608411879541925702015421823072978837152552951313518187893016977267084807527617039454723939736816732917752483848397982884852795379783925346441661161362108795361984428733874425669059625467231795836470923666394461055675827400241869321326470465689293692373082112103763633861586888479409346805908772842982380532049153179137831817761647521940833592189564615420111770699598315087695173425223394153002610207124338769385844374682637831212043847470809276495079403203379405208137270507766609703663428577244474830186608562957804632204313385950543927722041251721419261388018709303227003019071559228982415860181194632789562931121312353030801015052132618250240275875856809047286758588410631209915085436847169823307095728325226799432501110298390592654100445688189334633700703506808205158076624924369523188374471605565311378266093252457245183458050596178469018093866684983472480517303603383828183620642682866393487893255411764828544308882957173006304621468084755758693701757444634360468652050072646998945424999956155968676873755685632504645079588179095154457544642667178971443839233743469043736972087899496080842554391157582290151676261869781029135978946658125929005378489503001138545066471325090090461231199146783658070509150271991170322851164374594263551335391512175026334200994075180208869244448820054093016164664979271347521459026348832760555329865638974658039666287333282125004434970867787167809978838673021741263687359081088745254343624147148100945408142652124530211442007620224816875134243764828970108184935814655165016445481593178252561863240828847905535477911904834447031196758741777401613449833974648521168054705704867798845784839749223541140417253877795554885356594872935112389831600956434458709112297312285551916596510829969554447671346140959742855131102170167512254475311888485659573930735997977568639703312039978092962027511846541170346753596392180558233042087461771123711786051775761085042742892856794439934037996427716065323323510048645081598825795444648674715847887136585004536762591269555246793351635109126312041363867538723476146532338928343932969151945098382262528105998962581507008068577252440981868408078663083373132862311636456465376628497292818885853534150870476071674010217586812179172200161968523270586795673565927921598021265512070239011559988230915665661394424976353986459530629139705428890470499684637505476327681910010358190327629440878022816408496845272340510904789907169953875335373842637955533636785791300649549854645014424677455812163901005210941859887106074357915914419832898055029460989253211193858789867167759434666231033029977764069886616362288075632730669362876602094634890111938397052985305463653086336363734473830928032228881198384377665276417206419798265046675432585453080971314922741695267783269840134100621837084450067558012303479749173279295156383490749310755655952636736518818420506013652247809182839778981041396607824887669858997907857287715601869447698910527022204512199312899981708302800330484776736565940671463020761722245720606694634903801384348044406515875637097665231568306496615428685394279091392995161628667090545690291647277501286480992616578064384237638646778965654741179490472638788682818414793801214578019146420444916926695304350574235376259971246631726581686357993785951503748918347018946063899707449700979871663371149966900510747627910727097017094765114498191395495943134726958206339661381620176216636900581871788220725937245131207764574522555788717019694180549740967121764367363960118841770472803013841584174613488515361782902849619156604536268309308177220686452221375502599282180744088640964056546918240113942225284395402504624420852737773589665819962983749282996654716534208294322197332804159266897707073418209695541769660811817493251766867128901996735022708246383133527328581715202579618843235253040631307650964062460670894334346077739997332614642193116337014957150192430957451636067500105490755325114643640367503455049568012505421113960426566922579846313845583047273354225745518894953011049125360072592099265978298270053650492297753552354955385284430759233309150741876938119410412264849440368818575578790964770460906492824197817578082417826524636895710742415692180451871814345032270925287296480420921946949004046961143652952541900206228569371201087371317784394168399005928917603108487880207921552268618105228150714958198695838792512054779300664999421854062409348335924625211106657659400681434991046082200608372514697689324934295793181844485979642308908913875873688917447921790686718325206871950785271912311069324868048236617951648196328940850809881175870408851369901511608656326834296508477395182867171112127725981996344311543352416183903494802403882447789140549365358098326412679859343005623011251828370961342597570961585998630707291830090615810792965857307483796161637223774968316168015195392630685196885455851941643423422244595524841106434923156379613641315362606390957187839028856427379984519206735447075426282705606653310508365021699603309512724860604518642424755797012450702713212174644830702832996870315020873150738673484904461043178200886000279568791171466223078219497155362847769377926675291812780035200657540005820349975058659900983650510759325668224150853521207975767221106680311227369089063918657509387528561264150435068123487228734985791532082922095178635072485624555437669179783434457295982057641399902210878751486308182480146762635053915369975339831279313576369008341538590829013411411238564233888833912754923934950586945051215240443146842395093244230736284547929756009645355855543592954096151848545671191844126207650836517232194420202415603144284221276730249768159778822407599393566868581034581296148010245736555567671688670878930848769854075363318274119196992170598233548777762728035354403476836778475008813503848609658690935495958754566258744476971856197882960693238998320307023292495415399059788456834219857247961863530333920742522819591820443589564581522245155175103887432162518720301433390402391926129535842417641716101283114797919322970325460632343991637680692601496503229532335805780837770780465159812321844370755165510274014341840827809776532544201902524602188194258756604515103010803903104500706573732836155062575523072375181246675438339043921574690584043455252304331426679147932520955830717005305440313969625662094117152291715268260040582299451702380165674287736506551430731543117843606228488674060848374073288553528755055521222336217289967358932597065301280877594738876038738443292486096732852936005011872463165379630187854000027137085183321716364122722031272725529108719290738668423936908869932837015336092433200529026035817547591907362818212713076513195431981621579944569772783259606449664020260304528535257428171031489010902993434079602388558835104045482895816801579442770843173188565547158218148431996894420381934014961495647768350334142592511028665633458315951802062635061533598951862736600838617432499805262377934294171025870052427670281258911131713234807297093235652463844427551343080814078741415299249365510670664829669792588015918401473092182159106761638042085763650771846428776278509941881005791271770213948982433600802797729815140856372574593563290915030337967749378581544374986868615399552465319081173392230709814810353488879072058286862306569066158671798382740772463955092259292506840770368235401673927951274500644107610255697522703098423365297796177709421400150200690894664346324735233566216621866389114741462183420495632261163930895917398711494034080867527048949280080092057870307178136717225247688704041101162758929403716116001321267998549376059873003220746901518449031938425309532489827454135106047405295857253454728048368288396067035014562742316932501513423340276553719044822772101309749761642323729145886817212518142527525146105401964830742712854752931661559448543013240353521830724956192931722810142902756561835858525635342939233190765265565147442042201418964804865696230539518715218459732614321203305474093427922198405665755892293830763167890058436501737476559097039523130933579551514504060892293716991041306195986789825962526218832503649555268376177041857149975674512919217149145704153060730334486557618687448580280965032579742865755721299738544055160733564450886862971994564458327142595395424832676492408207285345995094469878261692570981985702513917910013324070345363923889768960396661601229382223005019332663198815316673405938125072514162685970899879191215236981005466776171767413946970568683529328290963086397014403241183257773127525447418958027754418413400833293872101738080414292915907667708789175966427463355699860467196491828563655641121488512418905778284336293065688251205006669327609206810434775948230542831546976345630725099923631691675279917485151010864248054598330242383364836894155867497972860115981610679410876067150700651971463204912642461249911903105070147999249457181637092968939769765275103011602224832644396767689290659279227705680648139426611488543813620873989016824154354761038971407734311180522455192541441454821676914006273842646187737715932769003160927795622475271757931091117203501699929939240578805771141051055070497331671910820086747702005953078011547126716231677491112927054723306491161815196799066497225351911694679454052293253121537399085778668053711272233941041779248580413440685321081392823603481885937952733315110240485258859764052139683812598366657613238744831065897426132790904743841071686884891286454974701250578874323356211669659802824928778057707055982085473580846859638712697400695989476513821391608945448558123228536119350716068135285981347279384372617311941308991856244819619022422354676988798256879936437269695606343536972448499481009575665065861199079551946103702754044428993753157256593050515391836186308646282852352946505119503148656738556258255614134900032083265307742416706297275833875294027865126788596580105869245441638720775776121139446897688378065002517068352195965479873325560149119954607638983326925353828401313613176716301206696622251106404931982270577166854711271225302673477825824066179307265864000507074689202687492997957298146869696220330099171959283961363227548068172375115993346210364764554417096713094770024716692231182440476353646145909312072850797422681735378144050667945525360106255559667686693233231540699261356854520885528807572631625120237616937243828924700285867216398535540741084360265935352284587925866591439799214705799832271830488793417546432887862643700266335898899435710255882442202210301729866686948302896382307690612600868718313854233076210566216980681152069348412148115355761505973148525245263107209606528103712476070719357183382507239000476320431192029663018258500345734288143202262180176421257585593991266104208644818803915410887738447191629665898758111449128885038774161940358728352333693758910611592274465779794120898192119961802509388009651129270623573703052511979514863741618930324223950011090165585885463865614690213664612525049651100289764935192683879939829302897260981271192445561166229450281985975106753214442573986724906794077111618207747846678126298465676276253405312095573037700038262712118499040902020180588684960601261413762577404380865325729508914143020808364660964700888451742702062933839367044203759412004911597550816511783699743085041556135234980017688270658079528871494487348868753144252815524084200773310513646624643361295311219191472898222081673559048807243685021591035401320152869989957139783022245421990384994931247805800021975505387008176275656003531856642919487609835419319074845622676622408165793863757053310163507163472384514663055243207376514925383017308443130399262943462313187925163400462362914008033077000025467940658933711830985729486329833997485117134191357030749673771727332157289030175264277801331248754012743676536302757756606647255513325266319753904736343306245293978369432722905949033780820402801300361667242323870589798404546849013794268119686159114549309646345065444334500057792214143935088906597009544757477511990043049454981764566521049070628043244964262235578319387352566435557617731401643681341231275927812435961387971864604477220743995874049069665211645242659720050685161046898442096257354731397756145973734109712072013497600858593808964306576486258747726921785833770650257581873325025385894731387731690819929477569154958345879548999507351674668687131414015107460460317213479656756122455383895642424945376382128044545362312521557772291464041502830362312370506687891376854423970351416363521296607251171755980981348916367441805530974756245213648032355039549915291372559098489087880899396110566314404623411856532412015862013370655196713675143859533724178244810301476868353572236711947668459157073043702845090749062671507045635050885070887868785169713127505746499269748176130253635525707654403832718934686378134351170583631268941078307813088704420271647601586000615532160348410769302053550023754773805044429177915136554440271052755667667351014541873882494704036918718595019248027748958281688013416651804247962360334797380588210206074066148912909614770595802720896514585450677990459070477480078777390245083270320926114031972062895032504651563317667281417655706899124510493941618670627609206045701208352155325029871036447954840350017139391952226764739283397817444494196000859429901323638623095343253723366673508193509148923922985452699148003549884426230911590182973993759169116936182137746342833354158871756542150670678230987613674792188318235888078562112345254587749356757379750395466848449165959692564188275462184356388561063867020436923948136739533646976123773971094546672122856350191562460862079872603609271052736110372633328865884633598118340492374688919643199254303023764926946538029880072923140611679427029072243173864955926088900637844410676617676669449173070568251729354891876697377101658030996396690606414238375375734905671660140006257803099359241372483021572156837301433585256428525263614194979135716758309730174684795999331532665288193909593282048515198780645410759362940187211598884932483421073498738294031022091687842823276598940814857032954223089158588999081849817873254636616280777313244433565482969269640195248793510781328525198707875488891420523750271309238449607616300881330207223467817667388855338377860411989730045178042440664649315063521160634513523741351663743851497688531719215282787287966490558892970207967372622036178328599334245428619296690201858466248224699372892549252612289658652536298648960878855113418844773873213733586646927945304704213047978622789642137309903439864921681569296969054213494971745518958887856238011489229123159743916252164626870703472619552385720532328155077696542505379469750595354470730812055155732694816532892177357743913821230737296806009661739964898746196500280672269863819045048917046192573540265956357148351605401114224373015015726980628835565111067974503828023850640295194021690806905662965520042111784870832476380691872876018588900815929480320341111943076135427393093988822062289043043957895061082191276495821930286396784491927437022543236359712528843037960255871574363485637175145343792498179291053445537920036022909479558450394840437476436629303020234857132062431520143898921436844941029988707975506591274652875069526663428683282270069326221316090288081389749658815087511900973200300185607759425004728031546726622576098139431268244966691424275969574867529566169208712350530545357554293800081307285768009887187835163499842845854963942915684608847097586287695651569858690586626143245252571703566842902583583893499216030543790188496671078846587777733657750003455172804675233474012448567983246456513954361811151572200141579904456723507348388455025093155372201705470681681284182830150219353049109188954993218603554336526701855578064336640585364732493203097447646672761271037497446523721284448472505389507702686567375385555741983792036395524827278603240625290811101345102201661745477401698483879497242183888778361034037455729655472292600061719820439377513517129247846810871811343726584450850703269864980102497712430815936948905933049875333983390624541619648094612738446048491953730388874321721238694663883126055233566961997435902882687994825714194725602510135154040675040289718004306184746499902052051268085581160550709213526145556163347510045729949524913195019926857100167873400901976852661370123409948734992757477091978767207587934982161017837026121098731949282980567359309632259728917986869697128729604466141670587456308508470946733487375183027744932017023392423452738879937027877271724156390305968718742150473918484236864806878830571737604522048267871274743009435907468299763942241869348259562433400052765007185592909785732850872587105236851197417527152693160329955155748640471059332064354651265643596553871450613784295559162489284793540976808085301624288563396857370897844985985847337987971567049176141866999692714723079721488708854901335943029166095803402950554502371156275673082709811607283895392991564697351878669329868055842641183097804588758611348395490591684361243132666496012910662607880649067995458602735080368808423084409636634718372944369274467137588583829808085094892292449407945890568936476759630185470434935076695910628271131322254874943956175840063675325919334251516279315544773995280076207092846894192497152450831563537405659252407439348867451826173574484292306952217485650730417019883208686740588318302155871050974580024562169425462183447697801029810365142434988064320920907798639194718867039576597445295903617643516241205087614386477729969976718357643132217788949754868748381029203510663004855789374029433642903951090432902786140910966189029839973474484799958329557579981101809672557287202119267330373452392980098890884499891184995646978148152390734551683741802779777781379637979832448659326488053408011968765141823386593067562764679883181937897276449611521626936009404204804610947500013408653576864894533294187156502482323077252289671233383871378253075743645075332111829158675572806156929385405866315683675017797784230979519509453335971291158311020633890842885221866594787652004461005304455464691697802823423322471868120967956458095723429170719433858196574155174066525962909873710253578829206371431593748562252389029561956852489154191446354185979482925611978501379189173766392373667157457960525574926331078895462220216718575087875035970701882267248262157969637881467184696896830079069964688300592086283115245355245136426273025430779214854347101980140185261910267196065871156061925583709358638316177318240988566633730458156815918514956981853087935046217059514267932449807819166955228935911708662795177164259587673560962212461492858620044047553331190327373696716862652273652494981411277880407220733472044095720488481076043619605949311306466725870532615310730875133289438485566721398664544992534549289255347837320116746347270165463484722505080329981518061944412859485217046688318650383354497149092876285531400213932982347829532423982264389996565953294139389418982795222777900604725601231183246512130184704519792360490649766690467209681712164351668435950133562025284437175306786183676557735314845088952452140800275839248370473773819596931007616658683217847633360417586655962983803225914743560729668385670549914442236028655394591729643278614567489588426817914733806730737609381213362227543361542773500229243243176684069940869148559786442227130934159903006111107382510914079071823543061815894261943126807215275640955291909005832046137668949091189137545503273559587964855421780999236421335919793777291095087768651782681151373439124378667740754932628800952435729995492026651249293186961530166291427903874499684039155912499783693428591201948798921024965040478805422539773801227586308237413552270439633073739771841128308326218139907643072674143689167003234604778183072051426176757485249495031019114156178286976227435156030173194923543327620450441569238906424721547324037934801960875197831082361610656676595085426380208387948341575208696320475819117186913483010381380447767045689174619154211371595883407582574582172531246242783831893499937251989016528745275065208629334270234478334032507494496219113081663904421186612510157269396984948400698722348187867433034644645213608689979639723541836009600956705581906854741036949958199313421764562829461388224492188075390336168826801635733273800990189603656898712001484148657482921707651242264927645464223234861553273845244652984485316217379282983034889966794556054956570714100442693969324184938295971059611563684195546036479162626369033102032017634744728781966495964784322687673445021899556166079928819110838976275386580192540010439241288363127876093868927822705034409898661438831358420883473139023235944946903709289858713703695056660661084600915228502217171534378974382041750690104922841275452843276633776536589144769791811879720090798849898288913841123600883281397618621208369095588255833584539963667851306253408642351472484208311189186505287124252485869024210244201956163481078992534168544722406822026724236023829342579916654157264205980637969314025301408621405038481235288414872392408350809582636803669896284696105056739469345201011009529682959955313005530948959672995619684676557721966587178137790339262483638092223425757204741270189345858421565224651913808811464101486398465280361920754425380732507237224297376561293134793861168299869098684299787748423284756362929145706066814114541862100213006094294267616853735529105557977012708916567261987031286676711258652467181836371273498012618285700391773774626757452975258742174874525436468357153041064201764849246231668904899183351409058214952188842641702450588604329890320319150247393181168259847735513000167402246926447666182312497398930973712353044834956519262025805398549706456221339861322153361600418921006017355385213231326966324059499499119595966835009960696700557290871010686928009597800978057082403668756190800932284371320696072164279680084534263019277756869285737709078664491761254570170149543853475135683229971314957984878173230676087905729285374219563872003232374555704062167025913062113215581230973605758395515335681415077084757184829209921775842413947214568673960466345731807126498994436205479002275049034809544609872334445957343911172695436709350645842565014041239204543824040815198246386959063642766243068261764958392298769326473331604364672928714819228006541070524016195173632665817040736958466041155442784330883857511338341329374923455446725940730561488716406007087072617358485482661239473517222395443778176284277664161390659657775351281660776880754907467481081974320733107590981434803565037602700332142633306132246023817569545973894321177988302791253487681732967259067005381937573273940207155848089050872268683989432697433624840018024115748536323130041287772587435972849492788250759762511779925058558048190657483022511078024850012123973510896124606258959678158427268894029169700184098165462910629347185717787324475560840626436851666798998525932979630318266187308682178113126646098800297548730224216773562559840053128284591086845688037604559400982159934925854974763173528310509354905772465141866286368447189153324220625928809239404196475784053901243721772739924561731189831546109174151559576369317504760853813542878233092927883201777534152756093922941601536043181205481039992670257603608728492637995107272491388866985596257509927665078107488573209724686338361782043655681513167326409779066379875507834520884337076760838721728484602546639744266945310654659450748470624219470938623737711928190130635989780319078648181226354551806859440192687630127052596259877403347365710619752868292972843237067231470388167535341640140809210263104887732255554386449934963383520104422777659353790689271384336748836915755791301952606693587186479479748447891149237791360466714593907479728941614493988959669468566508157967225171078370650374237973563236720035647347178249404417673758512350274185925705555227271729222627351191434691542203559473830282645430724304212234623978236279820200808747042318536687928469531917045314781756622749715517717316301905664571082557049028308769448139119444752175689844704712673748725011180117578174702051423874071235733919813317670952078160489843333887747887067167843364467782676748409665225166095898917658978483915612893822900604975947452944467755411729920239685332925702141326594449447342363790568092757426375608823091593140258322572001610208015587395153534995563159847632887636331821087268074775612844934058479145758777724557696647709955659139317365986408894511053307565714768445719012165488683138028314821391894723471862264364727929434144596615045031668022161432054289887604988386271383451404998278153775467355694045326292495575156753373415410591922996022340663173487612710583831533425813779309901361147683362408264898819483584928145026657536581624397278449412099289741902445508934078575052120049855995349654377114879215381065124106973780562916812535352160673480301509620724767583710275544526052238961734483799720161477622858894642838895667652690424065725318602937901887410677821394370111884169787959650228599271176575585484165005474875713720019050048171951862056094871875763341982938102868197084707219846340259619218723080437607327097362741535081890909799082488674589013971983295409675182277171766279174870089285938454377646245760543511337529477690689490373904314883038488902371549772283074530805077973447203409226080049949156234105869061894398931827830549820359761117048866358932266062213312791306342159651997203811554015235369854388434323910158428106785314419407485524796320454305235383815998656618622588424759897319914455930774656296531707429379736590667269033238165720087104952927416802358966184418290399781724478023045879629553810769839644400326837808054738227852346063050763780233937059791117250335011045240769198626605651339644789244011760858316971267483424997430355775535635062130928205884199945798263084833167680141723437249880913959120457002118655325133325001218964947106346204944053051209123696746738747503204598489488019884543897557403807543388530622357955667698506504723094975682204788391516156403824318864191470476350373112846869706610223948927458034433686085006160620119773624222691282935192797882127857925959887159931076880903629415109766900325143719682005940611633269688927056181123969490404553757175221890334870057841404175200084802554072702639857869481870272148785028663719526744055038727760531285952390767401172968452873995942824222518469985555137819214944464848868576212811947162321950423283279930315349440024820821878356918495165955754280486311823843355347625946010132686677897133401561559256181538541621901531645113915644477638311655459326651375436688361242933425086680820277400260281277053752502656064433456839695746186797312456898052878306511891744831970017619655476865422664133275300867751803600345763836090410122968913665554672375296022417472444553710129068430461843501563941247063616554541002862135873010320974721516803251382360453315018334901310596216368470947023089138997717596964675830820888693819063191177842240161039595544770190081045448084138024875960862350507502980668031797866084028270650022807767664189933948611886066113875104760160331267110122585765668366967958669678154613993619028296848456989933255552554785041776420695470252462266234780503743268993788943265201292893091423155867260086628205988370328210766879678294009062412842772611647542072060834792757923686602264867833900836534682096047915958950270246496328709913555412569124775375940496055524997010689176426394638866265470826137994203412043398140343225734199088502979893249601090143235041815830706178352932938055466040536950253675592573827209540373645661137824882889900329966617967734286937135289926536254854311214035220343338225058112936484527212431905042331232326414754657528292160692575168239713135630222813965602330817794740134795884757042398370190898943446050965840917971307869686267970342059018395905589546421969764136021190645910964009230224134989665881594959040033472372073696375760810310846369979780412618453982750027566873628755202054981746426222031857098465647859218373564490260348740902402481458265744917203897122839650077854574124469570293778627680349557222329185102537912878851757642872356776353237650268505969661805331140415720085960219016470767815624583104682213759970320806673839796893091705700163366697816874679246838871059097098009865697251769693929412030320847338731306341227644921920337025285600532260816409654380999300323473544623106339580409445183822661433421366878381723432197530706306719483062215837073501763291048762202160532355377568739507545967164617642848027439681398007961781425539402292031903593624501191335197542965361214333851480778422629128735484588506820279250882993903611186862782492212468470988610213440976949478863082592483698555529488074561190388015812082564813721407676540752825842012311236608591926712783907346488228123163633319133852719900403987556541675476807904227816420205903109079727169603042538904219614834550515340799053455721508017915504808976790896707856354922925217069055128671333473551353599398880419202539125827442219428801918388722200405959038411537797282900231475558232669817387438104237733093519639773683791995338502363432805917826150684738557677399156700289026232806899136685590839689158199487193360619707829496959246934523300449002236057659708742387246915853786070112412207880806994838107343977440646472648321972691721914800801217862996574515046327460277034830561880528215139097717894843000984091731850823725127046606360803103005384628269135969810687085228406432078061011101455057672595346749797349829681099572043972827640812203093165972806101720357232480764816212816330487691432528715247463073391801851783268768022332742746979989481333269692295837083418144123947912150897454876355935148987141177565010203477925595234480659129827257739694310332948155970851884717985951970344825991837619406783125767029838905574029819633868304760456580593261937555113288199567707775311367884813858151278355204951647099946592903469832745492976201808087230846521722746719047287121859081505558025590609012047382331258167740268576672403318180211853864749935252228033657173227264571975333747263449484725447034923808789470675765677525784455114061570045785573878223836907526691522703023390927886353173356786482580200655366059195465031459677421848309833217861454471163670048560716387191974321148338714576787117677125183639040346618524564938587495099894137919066662213604480121844908282655964047710547056893346106068346797636793641372685962015140401206329461778398105764667059501138809835327710334389089086131033916576763278985693262392616782443388309864223804023597742174192688339654597465594312608046617640169604634403681171837421435095557337656202453085300312340253417825649912811661043014340147138530619854034057277563960124303407265835580593858242744620182936939790943325454124713173686544527408103095131490226282179584052726328697390663450660128273284371293813379446241736730268059717698584481836390164178049324189066956429835776122967312428571580000107242825069705325752126583656643313419434197075190005750187645670115675369137149287924951540437221917030835237599301778465120762088557207401156821484391986342419038541835391006078265740156348044887681393562635281496144581412332069550698963283152094521872764721345438410045006383814032130195519533981197753671511563789510736219419333915658739917745882243862037188473690738914780500790866071273697299412386970938982591111729635663471551690533047583207492599272343956575202316137162030889307745068450282879672625726303591567312305755100636526557420719628557159438134431770579591604928992138656869513686638427502184699679572811640739361217136008697683173480349153548593441065822762000869357785986234301234053088932918052812708148429864683741357037850307461802177635970720169198475715671816904280543177401840750461912971743104685949660058155363709607192774710957090495978295711037371755915875002957035334393399925070024390270111657687846893036837425484833640066922075726793533458159999560458604760013364453841526741577302986916346740004607699367211690026221514606348518181027563759498652068330774528202860063679322736884510991351442090544546686689033417812987280540059273420245462218152778196945028499430448228001993242214035911101641972285479800622658783838679155273425515792950408270568519542379314688855151759611392878196179116022382486747498001285921029358786314254605826188397715982425777993774549259780952936486286387290398117706974681734758418891402386824182379107167704032550235039906656008576242605064871318757676884794517431074050608468233522414823754854526307678124257844492333411038856883176702561484217365889496255400118154198682272215332180707685851245525455200376485039690300078767969568447315263110145854324935775808078516836251998288903523428317210884099042297660702789133684031736248135235344411058102435793880627969567588558231458979048664497626510005187911874432438939828275936391927002449609587371211346635148474171376231867723136765059419073629821743222158486069874539077553184518653008085279486187450098216313139529580751671958051574413906601194963941187206542902944308118591596799927099741813241443689462917860424520946319563728360251312816547366827736639144084790619915679508096439306451394245423945421766979140221838766420863369442745940884922506119667879952814242875769734758818908716201032224879495999164284086994351517424969847598082828244370799404889445023747079254247809719676676140036761402356802736783348296753871234830534043920666139114804134166335897219244203383694831113800440151241574191933450030790747790675763869286302537463588088446643853384682561887802918011288057967320269397853220608705917843717737432655695040229334934281237772587917096030197713816509030822183393616868983736775436672302782416330938290573228635337539913563502628945866064173167745267893806319401753641980676233799826058380774506499614904406692047505595423474107523394905852674062880413509995723696615084871258361777143601705525509883359893676015395219656636193700965490437491744479374263338875180362363911511764050321286856769420237868517990750233333275182402532709870307843205961671150215691695075492218590373260370843128946771226921603686931077219585117814172600109862264570660362878244627888133068574146193445911782744580396999387448151744302342917229951698891051259312346627028129404227932849547580858505683919216751296733738970386716350711665975860620088095491057885762539457633213317776291205145478693114059421429541644017587496775269290049082496710956075653031883563159467036757511998187145289732497926065463093277673513696758499414423403009012740556208958287155135507814199917004487731210959772822114127261583196712403910076179763549847330768895284116929938436611491085611224100976724539974441997300312925695175509718326992963596143222999933285490538726245248243209529712569388249274302885895691773283662051112220744744531051956295612982517676064449414650940801199270099861193340717594349707556813398994734071476912705289600435399495921755101711295625896255575447597845190434903826146215187814575927669667491613617827168197228230723176884004966708218815859689097988080383539055125110788943412048229879489100806718708105666569888831681910947821878988883294854522620595959248985100405578796282322403360576803556534062715999630987450132725161488646104478778854859002985354191197680184977888526470427813850192728069524171198632443739589559758139883372856781279878022269108002075762031588821874245276940781896028908793929271443350733415377028804892099931722558418666716148245003097595802064340988518363614692099386850455756470523963101863476929993455937756612002335456076402212389342733499962597269659242199018197416860495340199878408784144897361204874346459454428191871880016794749526476130353111415022987743097977869637961948892451486607143412249570537770515369404478385678368096489604491022856188369607600994813198162353859535167275039555206348143179942442130365680517829784412954569648032948184747145500348010726791945516214495069243918814214851393878664799003399236951712755529643053808809920513683854005161782229602851238528021510225321082658938209216319640855679002428930579508074882656024561920777954453736351606067088579510816251122064619482163393382720039548622300607742629280324979421509131297975086360564692787043096344811301929014935560914249391217780348369983489772978460436474874256063009647421122326249905225138584467668027382231574018938890689090388806188706104196248600124068660684318372556100871147471128280156933767674840324922595619816014201276819227124703163969812884581145009705497509694949035262324497391275483052885977955057609077390276100797896210353279953995359145308365252310294729735549305088407579453169833207700248115627567974010498151400490900863187434448540896968824900048085558936196135647884715371536987253196612906806780713236042289457340614812244246703521620172632580570609249732816420610972753769964256993874812800416637345848214529437647483694992022923670486244454033509593151736743022802801352329293883054153494459161150401543588980503708186133307499856393627666740251093545969609662462744414066072344367626080493435406043213575499693332140913364972535290333106294210229961339092990485872442837859088810042490858897448045042605166903837285861007803714727863508612728577302572069174275364202001278164344132139896683801099092732163943470390282619420759978428966312339753475434709301441867771741246130298919305555702500117343346563525462374894374172278287759558737626093697157086385862001184753373132783648937136978300186647808679627234096658494687633314696845602819748321494592562933183551420102101374388449831300927961006169644534822248478690433831975372636528012387232950326040489042809638971978361429416177133127676157314652427011658263226870662354249621105408269348308265620498820908424115318812262158317930555612485625162433825725738619126257329169389579802748408424815585813026903089532884523108737128941428010841809940931881839409980034853797580549194476639115674618462161756274597359616250289091126144977305004521149997656837990370401535826964686152545453471465505155756452722453545872784403773724062961497836460618145300772052648311203314758410858472695231762215574739652881263134132478091048853013977362319757569058003101779178233674162128570187855510683102898779231107884643850011269426122868097944332949901193223674128408376368104104752217672569199105353383092437786583945224701630965875858784613868400980361621188794555145242852212716016110133911623040048086953846672863679474144413276545612951503529116383743964544599180236503301083958343704687063808564160979245116494535843703160788953700902459734981381458530596993994772216634696007355588159946003170210071840226805230107268335022866885781646435184068856618006113072268926635925801404439476887471853570546072780752069710224579784573128884303299206950418206413470281265024395181588676224196923232507846999406629131539904946802470819398458688641534040969775259376018176949454149916722327891346265215305307760005371618915941923789235420396396838355930657571240962271718798591057839029841264243051072928336883113602878203224987471794863743931327247566161961243135240497118902164381890865768589860029977183762427527692672587353319682500463892212227051747849963268055555403996096430710634332252040698372336160313638325966568355053412034309289018044513960815388044945239090143312496681890374205619150195064262607515949402280447224580513122508247558175781615337986488863880748355610607429066776530944243065790593663775435305498503610941101823034721372139179881371238524133506685679378979893517752730385069871350201385826085859673234048540192210597013728572120391601213374263494048213834125280315575647270127965878087071609844539284043546700079990343289664508195222417693495151952960396410761677882840912562346530873736686217122560111836121132604334359145137152999995872102074099935369602496578447561552468595804169781019367664164684387257845397093371172308501835048819580273317095479766000205781911196679162880089307846469107902630325280641042704365586759418488150302167943691967857152723372160394522450625585297544133132596828957403506398190341844952138962035889441108101080663928142423486431703235607878812881936342840324613301682403116985022381565272323591203510353181023617418893960563131090231048305551484951384056887836932619395512872858814210632328106466118494948813084232640484537886492927823450706970476327537639685585182928591598437014098511289577660627311267400087364063616385036200004604567092889654059965363285966243581322664493135418427097447316903931109667855243485309392501932104840673782542118751987809413143321575136839752103333413993748209848989874119223850804765514126111195180085084372481001321306278041658765778334236649363643754154778641921767142899707673180551268924602338566491561730433081871322276124755885137663330487559815844777157336109206670337074995790741675366872557477873017691904786429776585771748773080722318008596167528158690816033370350806927385303611063697013366210555515941640529380474206087529164639251719586849354949371249204336117087521758312560859654793344339793125743194454781485329127357463951180972168283189930216975047095894171982852173908304016953198565093088559280987083766172677935449577136835070962373961944817208820353881597394056357724690121069302514479297088882769309110071206827704119111358973012470399582092293400848464538551014827750459573089505086701117853572333721958610270348681919506429705121220659119401715352328241569173043455753317681460941204096039442675956672513675435415707744036598479308741278865640871436175325484925806854615475321988976407574369816958040692977829193553176726218453783397211643982655157506945626244284639017115500288205857461473182164665234195776799689544047340280778583761057332345829960341707585985461919819081395559666692835605400816887914301608033585793119765553437565087020158366541246076215709962454005174283658223011248872686634794164133165947024460587130622140407850456709402827708944410937247714452457924286616119691790969876084735031603276331317073758324685364754849703288375112427848053486182497488488120899790568280350130626778385741906920075765832761083831343805850110321616853138282850053200969820366689270740977609815795509530779122872992613820294315579421610974824960865703602648359024953501362153223881849394751008715753417059939278932157213675357799967161883032299761535034811674409917168134365936566975515115479440110029728375578440885650559785617216457093362782078281592762228371909790475112112255755475241737091946211244835968410326632093876154966123583716303685126232700406020296522878432944016896624674575448993501834937621119641716672438815115446918795861322711140236380750841208148025911851961906853015490249454756218946947703549686740124009978177158712645816332854273554983343114849178537036427548203530747659981605993568661886732058126437499885849397566354505930875026808102246910849220020256969395369585312841178660262914884070826070899334880487893242722317441217846490192631177083723115974595979438313752775077644850015874434183669566565197656413737481606993641708181838876951251618524106502806883251952765514246542568086913415964089163111902343922410203195687994294984902972197201357816146143655142325245891565352832045756501929029341396212284818083300583954510565384622538545638932048799778907074817794586636582827997784895831689350880929096123531477804634470278655476058337708693623372878419990896188339967102143740307520177577047463993749747666431053929016798242473849098510116488684237204685922787381036854990317975424351145663666281058658520543482744591594483539987863002084455835479802369442313059556527839937675961262024416334402963017734948931064617500071247840425946292549341428873068677778076649853138284764211272606055227096937550968471964466873641402363285518265970288974905543123252075672530409444554668404653957882080086710709912189727623641092925720483689999789688203846795116456022675617050448869029135381412494906948176278902861495815994653572911598446793840436769615025327499437496819461740086385956052764821736476529107029701794441018625082815803116016853728859985339162996592197199468339502791921332210064851336578151717348778525835409132149458376942494863518182805058609932527454404106731409358453357996914313934823633183118696816494150502531970983938491439792113003534828736556474604587162113034036607183026468160985583340310009858460207170368748887048451655239859873296747915764088634646354559056003791015748059963464964806350192510852506676305365126788180587200090532527171112973827615768820327960932247089987491796824101270440711071557022370879262664198830747938590804348050738607645053386609438305082971498756322658078556872712785596734010592268059766862501712565937631714960073989992548576804774439176815111636468774799218837056503461455753127899124661333669912070911822138679122358224613688982200822587034877816540809198474909665124823742888198312869003759350862091708090392443741686292360624150523069222897960444881254306122785918022144404127022226436681074065503078708883462934768014099459180267585576328779616717282922495138370806913846448107069773807441458868928338009925514190641964080618401470976054852524133847771978963582374130106439578249339810738642649998266505837414564889027348757998624127834064885463027142255916514675568125525201911395629028452781596461918828731905342286492822858382700992554697707611217378234186973091763081058206732439619365207540095143638042675743432243243224710996513032157532910578663908466145153456135118513641430936360388869431286208478955390664252994252347598878668803140320800913374967451805980481967574835977013014691158163452838107500358280089131190920649614729166108166564962086648005266498489171871695985509519611995177657732903601702905221528045856678413562527403444132506156300633344819805213366739556517402308757641709647062145928473916957349754253875037903075356626131937520777928446577745860226310548120847727829396094235314680371283737413047067217325964757098255777134573595909323524460256081347709703074502721021886267570240343936761223814582992357727119674638702744777497818917376093171423353586424940822220645864866906693597478179855683429582706060184370251548448098794032365613881435807527678300867224005068650442058967991567301612729066017472801401689010103696485026094910213128399546302478949832548826134309512875352864155592175598406546450031876782342561643509683424403330014662611003314061133303970495791471575517059640441862559945509902467177307463716991324855419765569916709592015906206289389934719718646664634455309106844595083705986709478184234016554723849322653578217801656015129410096473227695593642249750607571081037314887799743361878895502619170997868841498595315675147033304446191451428921582705304892829414508374354683185788361474342017535530060355941827625007217317338913370129374677405152826937656585840220617382262572596225481461104529011148112324721433348710825289316980119681055500678562806230906716487798958114279071786716806402193267400852169812955780981158657737848880056044302547737688784964311897178687139648885632721741720648737925379737189740971240205642979309372022279806632362255144247820658081043682586883691152034472012405162130963756693923726118210955274592955704649203130493560931818018488122701085001994850970364135086465264985830887169131816628903021846870946584545341425957898103171272752084172797643742797003303465784235269072312624352391000658899934508923160820486110815182889364424672902499883391678763565224081620250730212786379169944462183438226355995716115594661673375149020697266130221521474637680357000799601495031421040080220682051025582256861646181657029445384427403121693042069092209289694236165527272795586943646397904433120107631486659835154506205655430833887965840501787950862631024759321277183487125311832653534917612802460001938367471761516333301121548494421051332091764947454490142571646985298578313996019078038814183137444538609705252070036384872479429952645227028320042198929033098508994178613208551282177731726951724846321727115048271958746863167133140937367207979137232781837944427801088641034772785953413231782695688408910406983316867807823614967771450571190614124610338014435904407610082664339021515790220611200984343421565727529927597419791639371005217773488791551090429315182850760060551005947554491325666866154628617715481344472719969279430963021560991559927252603107667278488199567998829753765098077968781320654551790753200736060199217486399030521046793121309068231756612958702197799317931425264418184764384320566567294383907798186225827750327395996247426881336287867065349205581275268108758318530290352242281255920929186490703412930196564136538036425351562682930730074613422706221921880639398416651249246446452915505409247140100587655173799399323582880772449969379913128188930169946070087447701821282509456274634419065412031751847846472427393760444109605850729249212785132115477661772954886857667836950061610697203619725922752342435279851769744662436827173023901382179861111721317315528877573225518667869579184580903792783319274671316017647889629840949043420198442427624016989217316336112106597091922063311976872392389118130346807596843446351001340279407361662298939117108650074489443522514471486417991509531853221554129831958138169408326517069613697545960873812089268363237280129449924440614537261775735005833196708986431979309034306253728377461189721619098752271197468192007908224577527175552160883774350602499423857945323830660508615583105223017345409305086067166961829960331423733147909530912716917841207979971020803165511619900463635360666491171984980583026850627538884216301390658144916968663104627220101014862068948996154173006877439145605206698649780310738183612984314472666060596228834199796347435508901092608169127378433389984150349920407350318736157233036453927965090149309973479729502598106388537921378414702009067145494804968634573678657603818017456380105057597798465874574589904250406148105946877365115629647308197080638592687875066517495993703895823387764236639947627863628634814828254610723654370026645492966301356542153767756465695061634587695668852716034022270808010772570323892216929313849796616629440564127378279440724615673672621465357189729596499405954951368939680661632011735421849845968063789759673374921475111706220048145092504505663413647066842559187065528133571200362356238699246186407907163235873458283715952150871429775402130826772272493968822387721466973504527094125978152500779202637163340161421165214556401033900577123102116255312135915701557055846081126273736628794459996677548045365554520480386129031080359412862148238737903974043015795791017780887908478956993231322670290114618814087327972564751607914622502167968038472286499165158195021177194805789675428094353896619688652613038146562769624443836576314414799296984459686052051604274703099958583854414156809492372910431668728774187695491833946724101353660940453846434988809726879854467560649450773809777716955526380803413779671299452995478523867878654686718475451989065118748709427203459096995049804534189800594096923040643628311214218723424352369175990392838138551477636358269708555865358146033195054212073254409180896782123403437020076074354963419502406021359572864842935571928154979179193352708433802385409482573956945196783249142684187840950232559645321996918373349007943597790304667193831236348224120306982523902927474562375031285724528464788378124039470910685977054091806109261470395530866286363643212527287795040596506628914764090362006850215536172277457623005529787443210260443680901796607164879119019935202282739034057890863326696444752119911745208112212335024646497172113754312206890674436757005879039078017125268435919835519155647990216662275740397282678218423729990215282639730490434987891426127362831737398147655422684236980331678702163870220933373237767342237609642240336443361637240772599863193000318581220335161605213841441391258494626617267588609088851912653958426819361272533907097346069918059132827020452763370683658097968341028396445160574641757534520830920663232590535954849221370446941565442511355823645472699562881952383095666008423990798854436243575989675816403111481323350441216424426969574298499351274368101260044700060689291555976163086250399560296748283267868246346475238940534902086920350701607471988684058655852240139968766438145982051362534545805707411162902422980510257557066991308543131855107981263773157699827967923864006447472678104627608555392341587790228652502783689818333164913111543876418161971021264674724267407701667496506089058943410422186511241097974078451293216181918799707536989456195684591207708821744700709482474834587280521171139906096589548346642157876439647364507781188307996156099116084521997042248763878015747599319424040623708493351515931222111162881039185658244414422385655492956199899229786412297612114043953290721802254774539925606177401349562803908359387417336747268700188705453568152210845677567487425395150654587711842016424221048931763536604267464864250467137817838162973085602265969900246979508619071457058475853977018213923200355533748267048936397383843430377395682012153261178919752260692552882909451473723216589081076256303324571638435663224854092243442806568656039899246377002617978344860000294997521172223311503366444797660465524958696716229743969802706862349538225096987864140113103819899179755698914111488983442996872659679310702116076519151289159364234453374543606811605906174036488552208126601173978767290961902547480379510508712636532932935362991377048801361229923182679146778179045906212449465865585753229033750500000260672322484111993038274597111298480838013048462383804605836336404032014922798222253067035209204325678435644038590720256893547844999776125960742193363148399171935305879411411641290676341788718981339186120427499472321128719408965017066612075032660172669553255300812167781678439398637412756993622589364426603747822726581061702311828716535697128597893426040590242454376503447007681593871440316694756650550249280282449238194583477959765048588142359472636133720076052088025229574289454729679309091315159066718470058136989088694566996135093987442190427746348428866498536263212420097956373451352236559699045006588536663917089161154345992150712299119493289733869446032070040608989115541644744367182989055775536197380434254101369618726870161426448774960746249121678606676793630288873358935752613549319897475807010413332581057271439862040836708340457718503695506912458310268964102145019818359206282661285110738467704478113059901134501413353284038390121656944840234815370967410474901996682159892043779252278435837665335030443464501228102985345226298741332086745600370951402189424003881686505871182049561014527358572917345349375905146357164793759072843731683964062908106835496193091993436820378279931588171354717544023228473555723740711777294711204389816381958010316831729603597631544391192147026906327034156440108792832916131353246014999035330512401415294426080225517671657418961860917534532670203802622702660774379196166900925362556735533288828076458639590463355317578741926982739363782755530621426620840052996851228304342574916316045434464226600900201711252663315569563458375577681469517858677328416692527131328877788647124885452360616408351502532471727920540459554672790631273336114714238715111836779775390058101096165857437686218704619742480755582712166987097690604229586929347959290389604971936214014229527820102103555704588233996590400499903923889034818960251778466182028452382333675250661508029971807005347847785841284821311170572555266281897437816563011900112170590075234493433887354937520831890253771896608220592651132213299692211471098372084702402781552203488127914841931587761403657687388278928514248502479581191594094084225434357106265557314766501114347074806911767962668470209364303873903101471779368612920162124046251326343336297980931629351770240748196591833268046644084111048206934786268132028403373458565368720301675267382680797052539033734790897941460072124801566416324220732441572892810741378490282738267835119575348424928535937239648154495976407849101149509568129854644852817554520028325200897035300149696639993529971774992511262848247499691058953968044599849992093481977323447225074621056430842198536442638381712811946229299111624099454280852675671661543691543174832904602724801796561967404087494122163272259886100979102500716321745595073767897141966848279119900915204971198124355174374179550412794654884169393362422819028256153286241771119428444822964664414199272120760733231513935258750167798781953559501352569470045426805255860609787345141488031681902246887363915813118350143325934921662876320016438173964371135831210344135310108312355505159880763191751407968316209022876520493539768232559508088790124801208227641957908688837539804881454339569686526576197295692436297414282935022210114288649391233391152070271127740492405126833537899067474735842241639865015173290686831406922622235741824986137736523393758467776744460345935332803616834290591081326743088434049051108144784435349528375981412878699108949709468098789106539635266982688278960887435352489507349558128175546209981797703253061324663189467592671203144445227757226050410193333206274327449209897039378882095519022188773976666330040189921124258254222585129904748466097483688713907492355165233088713142716978536195652101069085317120446186963158745765134898134620150554924819083365655052259990656151608678301245107621711810033369348207002987945307724202131487181583502459407135982414702938245431751623540659645678400213181702798484341243272174635231478541338668986017050620571978824884108804187908203154922340483016095794710607122138375261390608756427618899506416727304052463406311180347146315311929852653065166454088890271659260585579594800955553149363513910391470131102164314452100657690167658858426877773655703888734852544050664251108841619635603266637111248262534873067964465707569894292914729715052479452005828406107320968584681861396615054815605366656419377689606716859089952531727478233628907611855619099129689057641483802896778502014844380248182057868877557253005415410641888135154967733419874183032617450930378176786180641895155320758599428444342891568282652195320378722279725518223079209765827457989627881743583382874468956098591552778677449498636106124554792599726890880140489027870877693583358830966832466290923533488679030644232752594187119960589815723389744886091471803254111136430334674104060815695788257896366320088547200578388132958576565157355560163752284952064055570476539188085100058814602749887503150801489949561770065890110655166284031138109341615915536342415174830138235352885566626831622018164108768897909987856175570479012220945632492065132970583417016754755981795156585932582625398853474302719771171128462959281521935375400440879661087031553899352577897227806226604701078498753904342891682452344259651925909007891946453601518565374556322625613974254806573111523488338516289660177973775480131554542780200677289587120641366300402975507992690765085432935874636512689794056953620634184853914875739413688481405455180417133593037969683335899621020778089974460017602512647511489696471247854613700103848941807177305831842364127529391348847230345753428040654035282483455211686345677768360459506219883991159054632330284753577457729107740248143501404479756576636796930828057472595267065451982926971410719198867813000369426939097589896050825030290440318872721921747618013349774282381867775163176519080187515115542519598720256176840365459058905870646506977374247339986319231442065983514405461071446388316467104857880343209956364097789594528503582879674210957200300696623009318220593976223247916405168295568327253125857877637906702722443902466339619394722264682448896994078942299269638281990765927644317215158564924111611610778969918229808838351841362318219719624605781735308834007137504792970018797004371800217894751730149925957173782327934665385695147365194506114667384233929745469844105002855047060506379467171025981192966605810124357074227309347587670074857282571230855975957056465314070329037206425543682069259102281271975381635676899592566457741421907286953484581230128380690896006687691699004513318365047452630093786939033544368116076849794504240161342647154638431558460738286601816576273045225309695986456272310850552632280225715211464421122014515902975755497469100243656590035589461853249907752595680926081506677927661474030429603731133418521056385103493014922178980807562064152878016104714586615666957256994891137598465533626261751315239968183172460664517954415543367459864224184827426237892594081776101205613148103856714974954787966539582145023457167042984638650991706259941048207612889822722698123984243269644025575458697887724591015323297387465550569679670488756168722769523405516784388574665679236056098847575899887209757174054165662215271724730270877609894857823719067561888363582104585473177044962802305606531059815555022943820198029044299858560024211146181807000926278877651086763404613496045552867669772844103855906858594589793773290237777018813216705718845595176675000872155039900617805299368983291925822475769350567721500292458296881095811229947694128380528217075440940935284380085610578991250321070722295292502091016992981363751274125482540622283780564954517488519508027656312050651018419915050961164267946478953733196075250986633257721615742554322393706664024529014547618923712839333946618623100537484389359571503837968142084663678157734021568423734176086414581332162843701236210002885605366768465649162290485657884892821615591693767854481467923856573001499511238041624573807066531692481304125245142191771812133874464826630258709239440339879289877286646923411639746968925847588821076310727908627233069281043520960568474153419219782864614140980684178201037295416439805852662831526661841482447849938021763567408882520170794952110129223880604003953762457384155974186587050986044375254953308672410664403294047557452884542017413243286112046806931708284532871442905652311053213379331935581181248695291771581627785701479435470482705180534096839615813819987744158467493059294532946750843577311512986585817092251843150257384667572235069481204446237228272026692833727384534304582263657356906235288862230781881201127875179351865642357062743692587168667577240639721836634599197434393952849302948923213945139430512382582562198828860523445406617843077949449367400989107360628489595849766563040078507339712805847828439973234010871542739065434976749207517771809382729720984961737535877081581618473831392085392388875172200626299687180437737759008121785900949079424285904734498881079188482195889787461835053404867647578526308246497185618331203135015756366513080801280755816991518278167173200328791783335881182391601491337175406157534550953073159535334780287647069287243531402840840605682141844047003769537625524043930108452722157435515142383073534587472722320143364689830673151889164757641199996452044512106576755008373701146403423454588468208419953241553074512149811585778489194469470149092330660388877481081362037516890316285061026929848336974201676333164735092836497844036499212034329992035169444837658600592295313900598857771358747051097599356888458154026219804580770145830568475394113984816016220532137218377391915602675833859303992666334277918130548610106204439606915706717296080830144239439584784852968766877639959940009169402067113399162047026154824949243704554493412174159790687054771576122572867629254761881679653590724522461920079246078311691844596208928789382588197472144362247444615804993720047369726250906568088570499304138859088567542301297990792833574149661750644254590651614924338029410161251767121701361809484594996696207510257101162247196689396645223378895833791964393372342204175506157456801270716511448703391068122251896788417954487754148104342339736034096754014931365468020010976085880041836061942335465973473014639043835592429592710350520999184206151175676603563663713680878083755487329383052140499678568421812753661400062020580754958319384209079118726968804620256122900702594263908290367912471227116922105334031913274560120421776752529236738983063581898576202859546444683428725350854802799156712944151786225854909580329531015211515705459331743305196499289948220203398575839800883856518204533276451515710978382419510538099443451223631804445747022983258327243773138124041365568584834203092154893238112414279290388673639015804564741206733688370847292316189279248147672271135812388708223163772721258115660727083103131937389019997035128804607742498265486575726424690881764197341208652083994584504770670265501114939012148893894282374985497850729525623326563510299784321614439984197426285106273444552373583066383518075295097528311352353708582367466309915201320909950522845893511844824618338261060302465562705466828384904281510351798701564548365339271027672981413481526234052688948281809942532046813659729358482487709271538872603322087501704863865032932571674295393101813785282967994469826855942931410313834133943844381636514876953751333884559825970284845474617201264846576377298065033416683929366235529955545899804585156935321509451238889727038837551781998577489585674425213522379204559265199190327548359637140457564330511632319782591096110814671267673514793947472314144908347610390848762692988518885238358521391656711646268545166814912273828246257007524654931340738316086540985484793581587857030715136019946916516888224133205926911011630522540467936631738215935294774303035319733277685746923573589726711548411182893586258627051750767226084001873246583951165955904567288825653780580004492370377197304772876174385344728399353137992431519239520992918729366173804493569032628569148036335679648360057223521188698870263791686774976720132070665727236085824926800724939536519767428196654386270024811360258423344908658036176846389355435631570904938203541145456595254012967499735794998772853251747940896052977891567721766328912230673464849020067230344324862447753253073116627383778267118508997168889291310068645038161746975009944961310560132602673985564349570678080834649538943287371368443864517285146285750225980546437404889689776121770867939049499703380771675820173076469601106096871073247994720830655472103048255830820032368924616412116471381315450428394743967202943486752917173139255320233703649044207353783299896290001465117786645136564873337927434984106952276727817565831166496560917701302273363338653748782421459450093190945960641806119629580101795884858612991960118959583155749459238817093736705421791295449217711755250688728269038441050337279801487494196769357871565328708625107939014302093705844287771918525339442309051620837530226716957596217483049769539634524316264823957591153142129659859852562212042392300018944945882753150738564197587207237543239999491357227821907679944045014101784105693235183942934930906398454403178865496737066649110964696969590649385038578208378363347964563778570025220874971012145370488028217119389823633763880943899321650099617703297118275747196128190667025781011390492241866919452011001143394554943292013554142157030155268302115943343064000701623820362767371359088272895931396104692217968266606315221345740260401188995047298557177366518296393176153156993937299182954285554194929882532032096052482413825270319499640657543407935748608906658446020399524301499084078070839370687650855510560348095228437449320058323849572037584413962788101458475580065922004844135707192482338176881887632178035427391969588750592886251280737165001549362742525803022668108936196924289702958568605390634801672627367701179973618160896005038512401127195746669810684863795267908018192518164586414287785207048076492008776426448455292002957004586565754488772985799520985478954214399461559855859599314230707537537962555583866406973543370279383178964142901419604535652132962484460536382977391655234881082903993690283781513814858347222629173829519169706813604293450298240865450568315704449382458280644625589037708674859230354743800425680595832412345515921395964149522754317742760067791611554572240194396828744548340768855551515428618865765267226670112848133529970997335014455948888832403157981418337940794138337734670819857920909428258080785329302774467875769352718131015215159357789372104853117759426007207098885570419498679868403517113067878935672906404569854450389507224590443839117244791649561928531448324096206556770202737504605478282687437669504632567020085972356086250202498258705035289459061910525621106816963510429682672632986302604593947763202986547449168307499032645626054538201003180425979359439534925385003076423815886288032313425942972329572616144575936387401080463434930795694153210997626178520639966266342006705516386729874277140155399746160989085609548999345642218385377629605459413935818108831556606153525699775304022575740261042198502343309419711479323584504411478013188391791677362991987354904716261573000546692295732569713973772052558744133682151276025062021849842709351637248543588369826155279318512613449140368967739148235947815842283931440141616927778675178556944960214806957583896675316582526488941410403879841149323458975815463130964309304843915864867000766557896313384633784166579461153607791643105467368783464952867484362033500662793035726022888930741252321417166257417118872922681554508578620235672868537843056927003815011338886964423825136922020092078227976225568510873370826044859566867052116577958034442546655657067245933583351712263633151239923464530516595851053792588089484504790416291179356962032443609359118906084283272373467000579071670460929960905831502454561102723112656246242490263532499197039686254776756198848715838936754115832675994365304771642607281541900201598956335895262943370060857427785040991585395741597009347158197665217853077769897295560733337361727225322843656912706541991440367251438334666330797586458458701898205371056761468367014628397391476464405818255964028952621133139244893531292681746082514412344641367399157591905457820416467083231528697683118151201540161112797877609764640494640174545554157052681310112658558581238716950799062661586372872695893975846349603135747368591922535579536046552684512838381437738784895461398049071377637044543826152018296853381141084838804303832333004110978999111048825960109694897281555394161852011400701295769419637488651512867163819602906318205391166734841022623085929247312041127947936604324153873628765524630075542870851428498461179842851699175000415740463361199504032343972922680533509362776252556424357049878839271432099007249114706527543442350250576517049402065644339500909039902794478644336804428122302991118949274013020575432240238091860882450398660759757833330487475534163864127283157623690249316376712382561279518713186576803028168372243036148532093363443921266583952866154171009673414098535846597490148080044177959624269499820715113982166965971663942577247786174227997553669643337468432609783211447490128938051033654189079023811384330170565978671993185888900658871938394755435260604978586535264875508253926572260480519691289519695057352703460725211679826166292117532177832831928732588568464116633486206055748429039126051097561867380288292544846910530760694200261541969381175477686830314546271010370331353774210695273222976516428327790581729527185893281094585596410928024390269175785243193604135323783556028580171175706449207663634839484229489452037395525822694245139129334268994544974343246173694012071442800940760850752870726361013280175812331218023456382091223349850025084678291209370122988160748034347679554484802152400693983524117509520299762451354296504762899228026243742746295307455970636219239795886759068459492332822527340739030149258828980014817119836309721118763099227283082783308606971744257934867688133094599671903623521992450364852013364538314426207832809581880220570186921146434439586894737328112533477266184980299268051486960017920992464124611951096536947183065972397193677376925364681650146884606375007053593473884423774072891469262202664190215681609392142176272915410545132656559478760092694913314466766486904098224246097095617544666413840443662608762873433137459943250867078618176744246476283843355122991388954227959258864602072350016269440663061673575270351804798288813216729185620784759040831577172178352587023688364282257033208406861384313093119353020633992827407834233070939719229386666429812582652231109929702818394807861474716633949347717033327437431548218061980490712239956741462393359693221377951274741831266426073510227034073678668912720583465010750819913010198586598569368642112170485157652846642019368194228850832331945538080573458160256775422555412585137966847482621916560714851541269390874096524538964533288829903637965647841482935779158020947897137095382301169050940022883946869847001939934812779556773650569488674567875561703709918930115703056895862679372860641306899207082395396728084713051414891219050448213356748520667649977420683580507734556879077522198405369456894898055886517983153468704483665488701546223650059507847879604416680375020153726805424142633347763236258488795194913138909470489264883814786265273401304247367059638468908847933762433413586901880884993452065957420493472190271812692066971150826156620724497550607315310126307243365112332374094898932307691761544890434489550775082196583355198286702067742450011619736515434931985178728508811760198814815047448393774951461982855961887768890735257714165282156517773197707946187642016350872410287344065934916421271500743801484028983876855396468096215145436217277316977399868368565281155387294910211812928912103809910022448471997296933173564932768560636769658126737785428366544123187390905175673995044194518517011241550670921384343522129839926176256282734394979351626324850540344159932623422926694870451581337786187499025534363423912199664909476322024982011696091635306691328301102455126678756820219132595248065385101102518746529266171953519273755937528788436027073508790928243029475213620268676728518651941531357753877916380619465242656019349336499024651344077300587771927011196960143385323623741679009778235456351758179765117764377085296124833832642851137916405533438689161516249533256308317966581301760776551910808423771650444844015135777684323975842760438683603306788999650693693905872117466137079585224449653971607687623314642099181755158466734007375954462985294074980278086012578758565254280610435621736048046722092454103611035480891597600840718436945448788443298661296428304613699551237372987378273295368280443718029159577536949682726530364247731865956959054482166031890614919254802577036269759421375837732095733339024606594702138601184952413984481615636185886367934164047161524272171547452868421366728950148104133588891625156772971684878261135476755424167202806002685627106778959559372805294975318833369807835789138493406049064257552349695479633651692035164310758021165243153134416738974025440724629968622917438605387509700944011124291768614282843039674464147668421363493116244889143578017432187296480605724165154398940177949225942908540581615382549020225513243573496014732949420288819062128136793362556547270201288163905068373848868048844915481279109947090149583662797746259439675867863179071611860366320832449471656626948436490559381001640443046245259874415275414471084409726372958938559088410475775077612282567286422837763874372591757738207790154057758364833522046613280155061212597688529994340861596591679173047526970037001228631818070862493947938190990645478385515097935547978683655094782469690070785549216342178778415445457222499530042314697757160646392703257704452080096397671119691445585734196058475329899295013767723694398135878076870583308106542681218519852114071998787810760892117737468568327686696598418633799952515277920548326810782865765078733669844207152518014251299883370646729049297421567760075470227113758869508060938325073258380347768539702755220838628227281302946674152451231977676642722887987572328191126694839229258047199626315866993855446109170886652295760250185538393014663103426915054819705732524862881983713201304219520750602144118992916313682078950463882316195628722394189571802623757071374614663503246058079325069617407318025220909624701627153614391767240287032305432322833055199083398614523912438871451505448001386017531722633341692539388172966342600687432349448798490986196925009496173144390177910941197086024220501891668052782492453362745206777686440218832517577160739971363266025209016130668754581975976817559810636174017282530238303683538238930852219841480785067595804236508100486622318768293943169768348281671771878541563351996444487577634663208498303246380942486128904903613494051338750847068416106037285941696507346690726841566477621823118807881716284806167601076975283028049899673371048679292058156236015710793638688970420796765892885929099187327074288140641222521033178769647490622885657630782956391185650544512648164685432500374562009485400617153467462793528065502050306707571526805560312491243939981375558382411944370989247020766561689503921295289449287963935522257334985476023440176054179012208752441229276428785001201472250121302614064384665205002609196818039583583228762703738599180750161401638153118099293660223701778078572588932823439959754907709364363389278022245570204485544341754424330258652953775685932869703517381369716179314879534032347064964436074122201759137555328941231525933754187532910409819230438907734183843666702638551884786173481421207430650867268912800105458837698794017249354280564222504518476649295020572225276470138434976199929127340090768655943558040698083362487669675284993410523430070156831949123432062570229130711654465670917201523570620393542970464739911566106068410226411103174113949296461753122333144427721531260447693497244439371310242455814754959029421423378205778572659836552336753055591541337562280025060348554735249949353261552399829424171897226254380610166880147346618516384789763501539027873048852978607845509363729104726645985889639965458796521397496396654793875097432204538427686476780481978991208274488450171696856847153220137548040887276924100493764471239617675082199917604175257299157545875733271383489657504135976692466063937290900839147170658037221437049079077388894581575549900883910166225623858851124511606853401163729497397725594849034887874737185846444434845077151954208024733579289196255284113272792153953765522650074484005100836724467012115034950057502175414934937872150473245752301326309462712011419208752534580230928871021843921351710806984205184359389831256919089306320592940976917264446192211419692833298235471543402611494135023404009703554089793274684261147734590260962882317371706045199615675028169289058487276583017540964040390844377180888565548607695171588985269442538610164486419198609640880749408074417420538499399773163761692504617236239594960812447877649945100324236864601014354691750598292904334110143829360152271326890535242315062987216316325757306450065935486406056985207293403020623479756930038692220261550225343007947552133264004092625053223890499525222203988491544807385758750543431886747197856310517149869545479999583391273002449096542906177206939185006846517442554653099961081691557769809735962050220978937819865283972909828322023055732997429261325012291073091585490476323462007226439782251497611511791686496681785260661659261501445113153380571418537712875056583863409272720643272912217427653292778496687376194931729330744010236403159938872298172743821729144034595078502289744830027285580662708694008432351998018777612965029141586727564616433909002406781512924218725833204515770349713420618023631318153681217864393059235268007936044570865796286182489804240763963936358958894191377377962735366475244225263442730853665232524342762151913820713519089199484621616911610060889304929846127925667151781062076695173689224028085503400559897108991090983689461718410976795340232929781900056688235999388551999606082217923547234535957037029846464487770980254950127431156807628009983074694860148559833439030938253791968420673670921870143561946496496196521843067819018079173704313564074397006456138739502615889560410154570187203593699521731502977656598403273559575180907174335365299498466731656343886903213628140824031233444333724817745341115107463896417981422474968436912690881740144518481612281224193719068249491547325569946528318193401706700891652584739461176403315901622859974098770810770788125669032110381343599398711078976740242151030733230542456167914508712568907716124656213041482108775084059532374208902169230821461932666219165548179310388892041993695719502616284031294873673809988953789003640701776013968508046872728242874273481755582982508793694146176112110213040634441304021743979813494315999797462556767822790404939080711497413998046346198655061475209991550883326501391945888298261427563521487309543698421105783139805920071215904053551964717849936802080872660372311920728984436122598095737690321919186270887005511862810466912770057206568223441439356828024033117526770880216512530318938916258865807977194830096430253196072159110883349828015141830291160592936458987686308975595344427739482021945017154224923028025237039891638238516677446549700466930985260944048991770404733843443700303706971916319662226346805660750199613902834760938976111233975127983670971863901705292952405438435065820052142948004900046180383883648165542607965151517757620119940067210359468547731530027258483668885267465326042903266937805254879977853702365028714484919712537675652862732898716530549854172053271307573252932223984444981764941176465345097706970636490881500187290721928020844894835875695126941823411566805733176383571971229281402246873285192881470843662990698055336971344873667832969193911016083014513699276458267067684330873088758356569260046838762041057382087943775669713008138428997757297369712373846364560260319450624176454688920773216967630150984192489673863999322409341587482049228934431435882424592349408789716606184221874930353494741782284203685853124313015585631622181596829210256002854014451306082065952013076495957331032222527028518594210513003741992591940943156795259597872713268406195534144414308186623657336594046907795156269206153659802764617450614427565705820322543507983592631333034859146619431005335777784678643576562379209386725064221122263397194610573332639981057540513713591077373299275145637476862124437695318840454118580817439461762007335688470388257660811550464796112308034502238329925877672853874209099404021976653148872314268346466135013081972358202625101862324775918560510513888542992141291797240472802412054180845329745273681591750989925419027116580075097086307090489272632861464662248331034611182535715155545617540483977599088875022526768457420172128106713971615453797306520306168509336114361220472165868451213400725105679221316146583053331927435818285652761353614922315198104938296728041584311853935566130337480412500268787642392013773621999142498193277305557206057144574303969447412307974752429570835956613234133824928618093858302639586138251069765903678258808530906700226481821072149342452123636297965543021350323936113343852922670798775910289268800287664464580726147144944000182025767952886007914891926822729266173406705023464478737129672437258509281102137153994523409435019881789787334184260645762245108330235135029191494775728301419282354598174899129848989599016927911463648049389608158512529939464615220881145023640678133150747847848964737879230073718940983596110051588169998888603130230826164109325198380713171479961664806810798569655738989407589398596083870989241028020774186608079437181289773600233707163621755450668301532620828490853911064887714578211553871137693151860501845259196682905097051033326766567802350346932045208138069395202820741422048259559031213379390903685406724943477579665455404180563201846280038502152943123973873851831714615528320334830822636518988327653348891078501832430851936200410076975487024530714085508313910970388923685639326919362863520153554392861675918722739202741827447541848877847214143470767759695419398577728492363473703483121285609736794979631799415453354785744548583858219894385081129776218590279628803011384947072380499246603028365329747135053171914452117450259720832986153834464638858155478944657358245533978662202162993206791294899465925270372083649815730494579780096392461747067106398356570345553655301883027068324819627664110873757126079926062676796354856216223671567268823803534048328283143846748195141492850686898688303833302807746676714983604241605258163505551573542260546219871050987817734495710600029884632994152356182615503861552273716279692784187387927795550837810031983565717500818244519056986893218386559405527894380902250126322038976820616697886591215552124881997117559801729541278036205383199855600088487704995299017253934262153800910737290635755287782345087871234627052050589607487501211735821899625357386174802360996428410018844739124295368600772888065070037316588209837169897115512257422718598807795178932621581915258570303146924802790841447195988078271314506906484108190436189368446847440567272969116877302922869307318182689828241682906350990914153167383353069554801233636643912008502905256185579111956966203382099874680078444124882556000110679377238784443058638753401316221556761837342404584463097721541333117190999199770163431320644889891580421121504068394080554689420307952772716667656016479344988243550084406357379619294914883795399638120481965903736867445915089749738742496864181432537818796592155280736696197339678871548461192057216204670211434224385760546762464358026708375213343308503126920164738822355431167845141983096705357330489602651521783036685171048346227745838464867767955902264245903686754986244363344587950626602662676450898121866920412443686623903078022520835758989499892022668955381932576605211121401818884916215836378522834197513260993872776838201862790709547189752619823691772615582686112304490960036416165613358802214706538394689676703381726953903769600886518130687119648096388803740610394759142358209058144172395421634434802745801875086988969572007907041582226958278170316785951375787517116545635632228533719281915554049760664687239397968194858945456373134304201117686970866566168274448156713043394673250237436910573813448653760138252747625254823176951470751275742901218695522574737817851551917231107332068520523052776934502604715798920757825048252498851998696461690783999348632539978870887664084821135295649630139261872954600554896894393146963097086158972115942291392347077982192346209310134271865706128951828667914379956698410072540652368301596867481676687236569640523190059250467242844003578959286187256577091484062474182411525527382176220979841954755588867241239603685360133034616853506036616798860127262093660039942484935939501828142994220316286418662506329779401127643101865020107054410211055869461524901499660915320002489519212233151829285806762503393077346489015733743183852783621478002595537469260606154886225961628979039910506127754027342763013257206914998044093534103176598632809860499419448397464866649229256313737970953809153229839268857469182524594821637445088897242863282742812006588526351542699432414442739984157172653185150278440670428432351065522389258848866187411603272079951571239736641924207935958436658302427157753026283305583394781444443229015959804345828572152575111668325300864877472432119128678840614408589507440613673784152699166140841867367285986356071595759405349046359437812289781278193770272437464200720090908670261524849762250538224508712847977676603540201767564059373612775278478427883560677446875280491952378022317975561434336225578061251411341314095570999416217859617263160757510348454594204328012946418047957133214132839118397767585567550803333405164489133294134491500245060312999286446341891486814467898516818256393578023806374956681771250487065150603084767281918227813560502037614334101239833918788034801903222322390437410566274227023072481798783106960705468702719729654103444530895023815472258435373762620230050073547744163748715733966050740171759802248398031806942351470968217922938426931169872611892014323755557846209250815505588669602789024322022360501863044676771693631146508374557891243601070938032271744728207621451834537395427436555356942045865317929376191125348185892458902018314269026950350517308212830926384883247438069067487841407735967076364539970982468949351635323233065888524403267537798096852257130765853092146235044434800356614931590989530210732273333550080819084285129740088160521245979344468536224404068951864196733597662979528814089534026561969474364889793461874310131034815901635745667150820165939891435478997166260049662051788176389536975691444256341885953419839366650945696865736293511121444108338538993681678875019001409285769315706508726954163981575666123946112574680602407041126556652844463041571868705226529973557296794913347139231944131035038474662094584645561023541400833634977974653079972608098133103144131928595225959822165057192358296600297696356841703423310958362855445416878583278900225192478456836115246532986568748628728312852325717440318739290834736963494994000673319119738449823052092783997695182401722053780532707880555836737352850494658981033882515941886005568180192173134020839500331818481417687451581853924549271103889049021357611805270237944908743939245237360640188403912533807835770902476363897754800199094721954827009886697147470367078233130762465248498736318814592041706672450121576457397546655364743970803524568133723016130363823887575202180315865881773427780235211820527925995968094658616806618926491871327597625753261671426616238993836640889110729793087666817034989315806608949219397444263266032595122299300635327999710759669580871122600020995505874541472131223793089840845961895431771389138517391731588460548813996213638747486586710158110210064043431186715286038862011730493393764955957816219032747907072041856754906972417537706858253369904762931137712487636355253108974014276777188511098431066945338739080099223155782956794052561640802043292741739612293950728869813280345422549591324604897574113075458521008942317208041048475264852855935162758332780430972380077985162261668315713062914254364616943624972665766415233175748795520338353714860112802281392032125725024645129351771077083642455088727181003079290291304708263974748939895682878255275798361876237020472877996036584726922954994973800881358266697384519661561931958884333778185458506451373166538024944802167906875731908717615052545138425366766981087600760915553075020819914393339844981844994062723169258956308059093420492226790803337615786267107600084954378110210636566312554250651736669945254169517206279693536062096270031454607398450157652162408789784933635754792168876679012710192998107702962343219262770803942522127672917492215036725825000690229992138059116126850138252092354842694992522055766664083635282574346963577221380078528789860159209244598264635384134776527552619476314592925781966812718283934376422119128031739097016380125379148976432846890814867460958315405567785676652827375794275700093387393512775881294151079708905468731367769957889374717034770602170647245799548537643277034592098781739904645228778524639646344840822710970056716111782139734808354701824591369099216049299860133181626226919919487407104461965126805435275577164020249074906745733485822336340772502014481903725015499688994375194884669650083011786991909584148647587303099675352949851068927963275217855302097858300247694637204460296440825242296255203445444120262164399966868863892280976052917098497440345929195747121420752725569684598270643169986960578393935763452438455750893581624542743890227243318894282697316000083986343337777220193626340375455922589547341263901680538907643348526377049829751739710906191418279708802415498295686383732106889097651417928941276258238106592860562806449400703995987230948967433187039984211452113757263421940719833316542759885023540591613795728229077935957050450913130410092049067934262499310112345850071979173574114502596402891050259632912080622186846516403143798474406032845210787222716761256216840741204110319604660036251228936863196981269231105496689549631827387305050901625219284479943800193215224128695500160503335901354924829306886144263187273017134562769271817904643619906659791382668532263327850179776086918916053942568626446397348747070488995734810888916072234816244971291008357543741329269704818800627826199831183594215769550903735908577867121733373996514854317932775533081083945092202805540777577033759535377281015107154586894274669683584428945499681760436900203062576673857283585529196181966034378589545761010715020879708531999181642685825058398691740903847708499198880130630574186176745797127072688367282207321613950322821729216907962023634163940367801739648940379814817120727201813077607354623733721749380106406267526110263979857314217776940886482986601749098694934690022558616654123013436583811661093955420064898506496316569278386738274538925489272152274636589464403412508543373840586934874204082184180723412618312976428016380644442522006520925827516720205497228398848496944520882936817282036331712003730420846926180422106636370701861121471287405727579099546269627103306665830366808606686018666587241660303119031642497717760006152429774543885501669158262772437452001761062864882930802646926304187359973504712085945670824002085454737299037299592200962968120960704251495497864541311852355547611383485447119641741837882701563761379147473637768223038293537236896675685920841015394033157176528891267972775432296090429867030336398230604601008175099993707642064560756194083180612969015524959822390921691793440787798241419578850708694115293213913513039035124135490726250023380401145338651821876266158860222652468254175999519547224715785656000000110784767304387339383774505537918975452388493062657221628943568574494488183429578864814138163953913845565767947328080643608583126117638239789847415735170550002944804012897886183466773012449504918109066823242552190040876432917983863931195783303784549276370169577229869752988407639899909120405575941463876175247927839685250597014018626353891196033843698428756527878053976356798457220483629060290321362440954185267066514674176831091650922957993362103193399837992256960832303671126878857643955807278626615221400914320118398606280578260027593623346238179877894927476781215374423361165092031916386922031954672279571424726675793941083434276934354642026476210736317627834478061134570326595273095359344425614771602335346080907446382845627544937882184660260627723394719912985890414023484322399025779861367229050414283644108326662599117380970082477065944852979025698445695662396510298527180786803886550168178042899790282404902887043505688555845492375378378696071268381667710946858732144871056176754877331064438593748691925332097792563239676929650421234226215819190106096080473103263694160642655755419700884981944706529311491466788412366174047809763426006244081691215329699321413866447266937047666942849010517254519225172434845005247182611946312953221868934679926231115049218728310155755543586748108957563361333468709410389406694856388634927273982812862875373207760638935603373337364448720402139586137789007644775866437166054615643361529523917249782475030268515664190252061109736105162365360823514547615399089550211691746853483964434816857176336726404308650612478963920365422864532935471376615540379440477826295016674501889080496305454469727579615084900974196489173130579511462204236428364420478181310772096189497883300074342765062208449612435869940147921141536312138001459106894925914924303832688380245376829547407531996199244738264234310457296429625772760337023923764047167525296728724363713852289115045666086651000856481480957091249203289587134234308042015787893775146059684791029577723504756665664862626016986943087065653021698861946649812679842313814508053144328059332527784086905244180051864135045490630489885784977536666300660592899502439536021429482336610392186513460623759007142202935251350503053073218244043091093340855067372005334348818323201816742720836352596519350850051910647032413967872889164730130190137109264005801705547746012164657513389496127394449110690930613937762220936167569503455833581023908217390913505788812152050483050598710169411353053730605491827985788700389803732168259353791527212509591036940110967720706522479308790826695907442345939911073444606139046535061387202536845025129211748054968351976420796122754709903152082904096895878255442359602089683685681801018103173163044462834025378831460811853408594711445360978904539602443575077152454078283260739532145688404547711707372506948022207327919377432635453645718572488131222878275781378606182206274232996635222459005752171166972484118202184068204119721465045409522872367831410610600349363694900710189218811717120085464740799536244147937579054019618136850155154619962484615620682963522448498581999183483117537509786672939742635855572055005586120684107650848789282717069049770848976247242027320026203353408499518078987272327742178932890252651388608990528408238021919798847308373054962362923152716251937431530903196443010666375475130574103342882431600439129130523673093681971567537879970646800063578012009657642774751774847486808825646048546105759403419159465454837260437402010082881550690263225093756046394902463442595649331452967435390547758179325071405805991966767692394516831889687668275079683773569936372935168375465200811611889268371955452761552012659809053371956728271466960046248039684036603345654881541202388945241540433852908619264422366805548710819841084488810009918115754363621383828719965029238434852968756246103523363560447192840639684394739635915522098755599059283095752912324836963978939868140686449397620414840891758655609382597494422050844762352377433326092631917499249392734774450612988847238175136683059256135472080752098390223697780770160180164488562683736870661116305582506173318379430844043025122027330390228936352425783299387877109944590352404606085905441516067215387931712085451316504594913042292190332598107308792182740567723041807676982256326305493775197767608205075009562355321619687207975450727428413830401076003398855888798037712759570728567034660057240702830482860670376622587833015114883169644280807971728108162434234838575192599611384762963135783900527397532190300771345176520987838420493864105409650691716444281249028613605906258148784794793795238522811819431674397095778939023143296531377259811500847765382606990572721398204019063009680656457003866114255593485243466822021906888454619358247272645628656584101795682459786798904072092117187618433336218584462442726075002210428215725454919690247698268720340004636811351858997904824348964474097000269975878752334771167616029064122049064074760309856962306041066494506627970639362203949484992800067039251065295042170337690779449409366007613758569594929096763758991002679038739307607748145160303136752021778098528906980031130539511956651715035463442603229174477907476939466596153656280160545520274591580806302950944855776453262458030351915781395419677397455898735303957558060344604008954299310706334766954384298071070356633364682159725077183186496821942409786913331991992246016535373145031379367629647498379474212862969314543715732067302850644322996105528059052861680314428667692078261553131634209731298339524560774195122562739491217609686373973209539548508541260485012606016403122636486674531834311339944629542511226579187688731281885092734678377408447303456908716972305557494727663896391099425843891822371185791409051478122617343810479835512453912454093607200405237847942188221661792569442753390028772754760328045132331137590733545117498163513949421986459441464799113981525903614785453349563689505181257161704751531975364303167920486439524658229230086739784907368601924675774981937180972832084356250268537438179968980779164965268904352902643758538170100140214939542358521061525663472381276499699878323515803915557984685332399088785162411252397328129979508370842099019672287397068461078753661393748613128150795307151320917865743203329360298138724671590982028239604351298835991033394127793710560420750714095344994202402640527558199989727686976163357863454798763659537103863033226642238591595045500455043495118169608622833158556358833610078408702350435794633991170442123930234478718826898513527965807995373706062725221158489372993347710573103729167734909232459987804809986226655076578684343537785735277690073536261128381777035735398306089514785965106967501247264847129153552912247878663034247111470565562769729832356840374489343274517079579238307524361122187591177112126461951918376749087485319258471851512547790867846815056275661610854094099661075985023931035918100318317315336018103548160591942627966186799797375619033995336880085078380078629839507679929569822101244534552920518983503611706521205789723976515902127391256078382297892071115716819584520085671852971773253720169399753798876551011560151446148512025509496348130085262321747817000827831056094665850875436289733605239704141101509859028330725537501332936803883356057194169324023466589045142331606395289318296359821452760633856913281804476917944249834128234710057317220429284181011545728188758599169522864041263398419572232183097191864785923503939164273248082884859976844450640563023830052398942453776995013755041724803211961597060168478571293386407574015252681732828461890055882270382664357665205526045922479269247364175291632415596662801832133196284721134672837159407484902733210135759213989707702809360762821259722460522059447238995373587380617085098101796498655895384483381219438556270256449624444754260590003597572490185370658766937659570906618875366673924308691364223501096717587580909697642117542579681527069110903607793878436267754063477840964134021056059695555369786118167624172114554038362517648810986102795020245663809146997118229408099482678097201700451057980728450833945421644073016432988004517594402108500140269012651985092674343537833302190607064150490549746790753150201522593608630262519121666729334162223319202984315604060420545599481554753664132759982997986456644502744491780172450222280503938635430415203189863601305514459354258203908862477782936776305543223636334446890587690087233369369621778836780580534521275804927371410547217413539810551788917990444155588853390291986758705182655693462359534347748583544337451106602797612601074661372849146284609544274046125589137989183101128353616823751514391546397674845233980487535644214655594949750900218726542956472597867599123769522244210251857452884620509755036327150335822625201949409811091055253669892675191326947439567688843777565707454863514055785439922763966991273409152820171640677852356055142076855134400282506156437971061046626946935778728984424394176938136992845507234443123553325411393451028484945865859752799760951820060434509680983138211494082774774987570332426371840119022212729072015051398104619056545884781815682543177633837028664627711747915135487153200915906108594342389898441554071620249009382321964172717696448721065661598037867470012021843082497785388986958477014594529280329170187827190207231208447862248115091698492115759717873578168507080009484115930192115413530910033304453637591663462460950297117639966135920689999967082333907315618129316532970586070116857825935474860363003112436206417107284758396847511881772378130061108617629241532091644573400035248433160932371570750198281181454988714860877059285021590109874055472982063226609868113282356265231845315544862980628285359805914652548270233540091935346300728497866143297706575401933491228794325173704334469017644870036993065499995684969125824976703082449161854597869312574640458296451070240247342879344552099059318807591635347214952093862192021094284747459297858550256952721156831513165382109107558526112687406827847537774931215942765245311032055122329553991479542568247291359514296014373986361649068949803824279075467206669985473490733750673831520469069648839744043048123741791281726173053445729034262158698201069373430359432317171465461407980606572252158297466290162371142495077688279854817680489182937445870942053467490125714128816838517507139096315665628894829671656538164331301659216371195781428636653977540969178435657424064927943979112457255699497533908050803152451332527501246187040040246824540430700357491519957828308565081197192321723120674486208122355532666327049342195248164146318023721462265065438661017088797026045697181609504370150480309519905959714575894977784969328176763377174867384200619981596732667288885271615681744213843777399338054157930553437256737054929656327517389679217019490316286519228497220736959741833378063316900375904233821461010855286183746071567504513888079015774685545394893276975496607877861558456463400476513244145131162387616081243566580632495871220955783378207446333762345279044861192954384139315906254747968382930899234174561489742421257525282611667303987550248412711278065188730504688511468280081011061739856621388990639747354783879449106443418963542726467656352903943664859174296336114223670458330651643819086048950283501523069050229085804878241635701125666302808278329330611919792205538048111401830902364253182144864333216481148610695275773788534690734527215223032133388719434624247229392003566952153859827561012578334779701766748899468985700627634750237858066998796678163250264720894461438500998868716843608934078936898850450108788101760261683846158964747709731497097296683865833182296060044979106969503618593662015463202368115533777645734316037872143978284494690729881904239166616096533114929925836436110710562407112870374947699085738175411300282291785830310835448909544874625678868564026758047920489311157581779797492574815636237964604818693160786439555988925267094474486297898172057582836771340385632244902368835928262077108319845420600004672774261051814205669913260632283591486024301399326828579143553077736894166838172052871208046420818926621673211361238110062331936568482239501177124423558121795618505317740017961110293546817773118306808302565360641337010749849241152128966681406516781175584174828689062676858992762219239904197762593478847417418022700000981903475933262000546876261738489605766423357739926872109479628264098662195219499562629915322178080644010038279714773357652862685812878098080206739534493210984539759770253104420920566668283647411011490471912648494701915568391567604233302757083280300869821226229353346095792138806658697632161880224364427044915688444367358636495123129276448614438638456804806527913115074640289379490495664171600977720905090081070426067799015051184317906007706677010635193325540328490611332953052188575459821911486255660660457699266293264206456914567741787611488443570032801542287482234632892428121257940410230425865336801687999634465701290381312344770255089613838320301478118058388363236376707954727220765670078962726389631063643346602988369421367778203886078429609786458565504891429022942317886913711808260435751704224814173858362193556289255309019005607145695831577613573578491647218091857876365227122355691847203542296212772299499129389667280758254688495717891423332855652649025931490354556622774102616434109158384982873738888341747973744072665409134702039571444126473365350580219517341533992451559984807700431270975071496289019789577078159932915182753563090213741543202377683085959265348957697914242959209572296279663904978184880374745389554079760144813970861097138036596687340466101623196895545404154217590723267807287798887093079021549819359226355617119536861353522811455147942548686669388141987721921995024470043059839503627464503330514915563446753593905010685275002044008967386590863481400036573121359664662069876005106938470084617331324929994353135290074015897795636229967324354061053055297465856904058123415700194845073763929968272532150020593964338614781534209816500453115041688681303266288003775039736786182660043414197326530957031097256049743271325442643749699764269969492750177401268259637138589406424644984414210627463633320538895244330681636677526089057411455971355189803433519998222565866708134890685954603338197137346121631234013678206178201788724988459769139751772468923440686137162077530784825695832752507176768162800986696428493574285291005819742426153880238599558553822338361531327392408694599806834044308242109075755348907758051481002096593241977024699409308807854585836472094450948817933237070653237097357849831409602168158532721491649203518302291056789155890332151293023185350747840450768978450219390183822894837589091919336717546367950730817069788097760150272478739248285662834020082950018488759922244773279546122518433092971445286779208585406778011619031030207926602962457937589608431537502412668168121177298491534079864355880398182482786637006678915998138590520896722925060318710585179624611216592025324648874067535422850236607786658522288306483828619037456109274506380569671126513295132909047244461808179690377932135745390423952269515914484222863042099838631017162920899768128802588206549567185694484446330524382451232549724941462181578378049156421183238224598058982298131350734946556194563261248409974958004459705546346110643630210647557435981465067316454576682992584452821538350826320966291903490604037310828338415717686266379205315454402572376450860915595952639425870600285099895631585661083564772651532247036172251065327167574497283342570431284465958075023943670759439229430428199788624473518444555926206987585269230609258268938735475452897274027436351995948004625533569512801126008014517052388081712778130496317769731232406012127187608239183040799805040912145945838488651032908949417145071143132530286831309453861876652733663805403092254437646130355027086471959714078510306768072967724091217035522192827203031358304641010493596094467818999588699909106315526948649960376641193275593952557761679508819135030291724105529992050789220805668927353901265041294155118115453930917805361342601951850634484492785343389835211902704565428356436754950151668271653513084806816811204897265709871933381512929671620613727058927214793740222235458817815183255367767290135502811896028826879777389920133468115416628854121005938934058861302516994051010885450710037568107016357736179515523692038980370106276075220614194441365628232381208737689904102578457741135044142204029816048576122709001585581570357507664133112690125756825803489915350400722092645447670660948817654858776596486059607624799900983382978748724060919506134177605135394442380630649254234314422703344306109283017005085543158469575190183213815585578665225583813733300147367616536798529597558591577385899618615264763003379397034486696094054394459378203322352240282498665423958002268196945173474512999636250251728818234496662687695608671492584107062617450609195196128372094153314533245369512701772339772032539816070729277839417115791345572577064161188230313765723486587607890663187722685056737032149874304599243211643434645285556723951938739108748355320967405419975497302599080457209329335159731349439486658502213710505714197313043481913010064840101936766116246694750676729180005812203199403610744267571790600413530260245362704375809978674823623340072868045479728785014032594580975980090682745324013515804643156408912186838113877052854527077849246407732840334849045967244258949239665947580396097726560214843069521714403297277278589926989508488633687449813842295311375122014933257049708344616056322581810376661818146263995115656418437472924960119195477933832682077783410568315255401128561090094073683906908934911960059457517604812988242800488776104558744914350992923373817760704359070070923935944397887027476882636849776239735557164321600096180416883439866019331855936064332635104924237427846965312377623488352246662567817254689365421329257873713285514172899899763063345708549949081445374572345129621395337095937208533379126723184073577925404253042146770590026443999340867383383963641659895387602495515529039020985597316884980500881919571864769224980387622854476119609556989418887637864396944233503845572181793683360378727376166119235522686081358001169174923115644055617440062216407801233801990506523287432075773038532414813172338587993567515915927963261409559463702292233138887531607717691981206672331893258807721542390087643721802442694030790939574066800921836464313155243583541913691502142065176043907782405018846761240985701403330663580825677357839621800094913864934955427509756919614922875773931204416563051627965140354007723144799533681908775048376304548300651738312515864903419969472249842903595898145601486864327891493851960741064197100454107873895023099471487367988296084390642555181670157231422289213341240869328600035165796667256975812127533186543495841695818823390890258671785876974760875898447473267020350115175577292675026232153492403740438743416588957417955908935964020648111354106406141313746718483089969665211833796775413131417172961706671417276531334508980020962873870984339872708025843970198343465063085849551891847841519186551194669236921754771336025015956689864457926030812416767088277845727184831701644360198107626673745271984403340434534621386129457865366461720127287617201446383765343649296962292373012370210022443669945665706390675272634524958878623004302849312618872086303074268790584417788295506357588857820783686132163731173397027527690834895846731786684999174121799028984013833783842159224394524395436451784558549328684614524820875362930362625219390904238302614675215815940064021770870522758292433671200566218081903557968118171228809758544859222220355084105998843352069926745297266512300960397052081616733049705763593975887495280496765862587698387421960922809385148364760170741584246989930094930099884685908070182072839740039101011959512599607770588626275888606386329967749764024652596946179956452471001498851424356307197469205773984872398707014763822166852189503694578348806952795134328204294259379428573835920896978480113591504586042484833543770376781362891605066058821185028845038680290157488208436755568572623666653628741091358045298788532202408913493900716011028031766152694776312812035423267060826430088216112749664233374627457804564212588053072766884761990816306397067620134960792246566049976579443713245412317078789835237130159641366932723337641748901619754011825334147547033290797459557378969540714805650999607663767096680868285665855233037134358600643752671255250604956626990970950168562906761543894151609514715687026622000616309951806301143230575495915908772666714409387631608645619847014883723483752644583993976274765810495327633669700030664493740413558869547856423441909478780913043443251482150585815423918388504533429298909841249021836769372378053559677913999767360918957410428664310434416841253710221687225892422831250067820964489148369518496086691766366972917933054213118095012111246836455450525605953458229545630707756728964903123255882137343288059447372586691150636400046228187474860001707310803692410559600750969774404205111843902399422940846549824812401067288145545995986286688097506148373460285273018509634071935168486711214305989082998876985277063128657807954213857258912596703329986177970832236460959082719745266186295578293412637771543689437004846058654639818273540955171506750258837974106782310249855238829326273301152335640040249177181026338025550751183986498453191372971015027933022344276586499943914729530608041834291749761646429636393040716803012530983161083144389364155175661964874160538284255481486917855899270173207065841311419047800837298122109966313094181739721678320638590651416332941651281987871790681480631784213847900294854496185872797112576563226030972130972134789292301765259121007637378821019541815814535336014768961367951442437064665829419417823595275538930414534631267450378715783476006570247655371944122131308961062687079988970240984886500043644827176054199176907917172475707668959345052999506426303362221779180048735866618399186587527193267794957907671373555928639956657251181348841255341755348907745138988451809030884509061001548090447066861324023816083371407498330408471898914216257986833861769042158287989176107320552920083660625710177050526853070578817977515842382776427149228691742761914775197556285924517352096804603264055693485268599465225109287254065182260958983146750399213000728266643388044743796078786799505904341772882073005272565654668826594773263615451268009727174201088113986023364433465313393087885418547682620385485935021568085616223058475636934541398948650120923717671007604682970028548482135891509408286704917308228759484886811565921308588935636214999541010547590279271290287684538644640174108868408950071077810551133682815061964326024203521452579579980107138476284073118965839926367511963652721579604287887425556117237147208145168518203260146737648404771730392898475488032488360106653915779157880339391482542373914815866467920436033927470408732905578311584977738550568771287497953713935812312390143391607353604078493834762864602547877505758027685676984709214889583150882377478335241516464078171786469339617453573216267166060964948612842362936938471879309757779189501148672435450055900626079345738358711180047437288015961430407145514921279368737537231705189988597904014557070978469043836367127710281841769722626284377295701883931397536299915057854448344423933969290304852229726730714560151192880409485737283574060261159846191951096171434621243517616422055261189091881205535818681642974590678684428179002636914097861675212062092260648723098670344313361705901334060524293435048949743769175378522153181988150685369016920015764410947212383692341707128284589989199371023749978180981408391500040723687418785187337533507321094467686588483659433305302853565011221187955505926393440724100467847227417767452181443952080300694805048267182347952303095216175165819238293192759457596383240020417418396952963517889854621428159794704603094589172940895987592071934451358806526563498484224485455511364822032339575441608918125271059290019776559099289520694726495031432843003287437962254474731581270155708763978505179527088441069621933641450733813507891486173228886557231427478474004678285866992610381549422328078490596653644585713885700968790203227534403682232533294201360226064615027691752068945226595986159432924247673421297287891854399010232931857215524051861448467535174857659776622158418724697543884484044914273245877578612515374080864303024870559868694155518855779898302015370416351309171109269951467685210991504932299965409444201033765488681549292436081750618041662112873562522359608572779831301546674796310397110626367376717804740723611729552122335212544834249321900191140712169789903835799643703031979782189202412203668749808431973968376113807944867077964357312432186550680152246693533261143207626774920809377867813004933944435037887616047580192999803173759635535951513250455802660020897183105950458579915371661372919006779881537021982436248301036763506117395232821050949600687990793219932406379876392730268224144436677371508349675468574145015296827075280459623544029076743068277287534569771224958756628674726341183119356142657286322933463260957316047056386080828691347443798497424136581462572204983758676332020482515229342617988992975870335563195618103754601125674212446247945790706939986506659437632435163062068865132256118604088185415637094937403073697645285231884910898889397687158051396863272125811377886583571298603511932334817174390975501754574621848489734135861150661645258592470307295148348667184539213146174222181324684394789593337457298462781841893811672168995023378355330129402448650427694413500183772979250439323082501015476238216446743851825188714344237714629982164280180992081274908156256624384736813993638402626977235767692581684181418060826702591861695225134929431531854636333687401681919025623639754742121265676859575386929327968665842348547954648644018518774007131833308418944426893613246930179980484072481449467404797449100312592268791387046224676394321167536208549244977440671994106099647862854920722696545982898165233435694920027611648412387074684219091171652263631497137211218525921866006774083680870079900768240002149862168054112806357506666538540021907834661226973311567556011065533600410590745359849583103681598139760495669896840780409231936653756381538705299584746367621134526962849503438097560551481198137069633161006299427520593572800399083829654338796955386149148121378991717707894095024509112891697106548118976138916529675559072150568898125398530567692213489453576403309709035090177621331820281021081812690384571404296269649596625040607439758129037286371046443412698332060732583394353165815955313001587100423464858328167592082063864275047994516721134304005754152851250545147520868518120674709230946715456157339013642111567179947209384672699421680327363532052672023521144376649607042317126526706530711108254274813299933268202599973674662116198279551321616102806082370284130686265473811727575285941201635001216333967131641644737462891786630293414379218578375531422893925858546489043083835807007828603227452881909641853536491163402973190987604298199672658608105839229418529537405903700106600999738416546386732454666302932396642991952963564705584228893024815977674599078484562932165347984327259804585557950859921803675917808971099203884039029082278549413829229419706546251832609223301169663247078479790964741879442276636225370323630839902610274502314919706122137269335339091287302348547329094400691778160184686070297154389285278139524433763115685369101170287863687096907438059671776925260850875267375217821499191113522785911689455720790283399051536606246920377185527131871548891068229094559772868221818952925231258114896026112001404324848775017600832947027942345713236867859410691401002455783104085584160901747337241197316087911052231380775394833953077661570424826501772189334389366689412354178456344363442236928453834993027174475738317215862228714756550318693649888945842066461155858704632293922733930443388459905399899617091312464067208366580737614132465314992937377858876612475892839653459829624903732284784792390364384988111449123268363603076967851557144121254506317724398375058510583527371611092871192111342505282292486704978015881245691398728808981090354220967712583503569164099362981673217505834373065454036139894407749278491760578558653911789204101693499546706284903830619640776829477266377226724366257590342772748362525126852597759790787255928501491374309797448937973159911738089569461317071306814862347219591747280458655076794116851893748448373211919896470189387678598567637486145506195897023676998803605243769359444586425546730999928717900740863812802107434238587152849197699937087539103390607478172804487359733591027715251871105247726000437820179567554227511415434495832325786957921496210610306424842085145815713978710181037146547358138376896803453063844358021758018069358583608012461849830618359053688535983767761914454777767083395889479899669104265799907532994636697281138937616475898269514342707869269066466843916953843495138199208137811158815618365138337671228114216004941686800356993134952111105012974284589633331907126083265351207260560698947876401334185933325350676866350377923261471212333189531065298168190210046422456270929071504129330256745989196068821742436451215298721206786210936876395565915824061918657635102073300225038563471073019628657519911411257197373957843160172984148954778600551982581757391445145843570199322307575898175957302500816129053927382072683687881419192262068221905219734297361405671438344570987279831644496109333730507407458840264726348196608104930360513789942568161675262320189137686220309886802415473578078927440115359899901977018387838434288399374985425755603065961310966409896055590129518696799179288525628725719116074923658884713761664796647382031901039266958763511850316545172239774832319412666555343199444139554436661760101416956926933848514231905412726128307350184786033395118734627265104045798286998157663776203847650886316923303921866574419515061298578329021902463431843770475766287854275567139530805028414302507812605918741567169419666477211788879703213067958985006256796668911129517300560638301585908110357908390562602822963848319234255631205536932256557391807531653664021568305391423574559787534948877893548242403922343055301473765895495083855490370799150538149998170568404083894196571082175484773116920914445040917277350439259578333723157539175875585090399511099534120499538514323653476902025018093094249038954406039752318661288919405387219204551246860596198734243298717175922575775164562020275584458061479084034023772245640484450398259476337008420108165235189630687110491504007023214527846598739596821981528665653030893916894038937102223072846431051988534440237124949033432447376729175964814079408375766904766062469915034017323256601815181657582283523886821779818088074270217073380432710586575468256775164040064818691923657266547742455059247479298138871382279402130599411622648981463324534041401556449678818137317841259746098817919224380936337842217209612424479721370394196809115321005160909805017002278527998645450498592831183558755531378669641949790358460455783006252652135949016060452692343323531168153479408236290784627394028545732292846035849554637582616411407888879157910914188260293952078247219191452987181083742388850064738094739184860479311311905902036647987884573161187934703508746007152564905107438016049953924484355160789151641557390087211403971786468142858520224138349114762618935739984079643953337622157995945804147660656713199712659946623167524756911705889235735237837815500403682573796733604699109357970116976526907810171137860177996959023223766586069107878094266598045651204679308125954047956281352814779524587093323982911217371732476122491240948545772368130623661994619841052132525996423327887261198897686677179942455383918725851422986810554901837611735287212952439138713946825549377207886223299358764815389577316924058776625667606237561280688836389763338387485146700045404629760069691824947485823869071783091030378409564112443194604215480922783913077295296383880964397898204243403902156100785485229930013092633916589534389027741822021796900587256829230743776621213678272887741193212493119183603941082871948116318382182156110841105298646633712444087943488597315744962081753769080826666448789089130067607053362708063251454868851703198063968758529913533353747314885883319829665153376538385618993635259050120376949881974362308086585838841590114441413690975913402039735607811952665423809939259146349702962811469308877850484672986756893527396882379759751486223923221432845597266008914596911640690104451902409758987366363956180023013612490783615424710253324376858592560228273927736093126626601729581689783715644227411465580892095411073219315747256510677416324191589752284673303921152004100307083640490928410334225889375846732377200127095792446102168283997252231598736378164510810295138505403341126589051869823773802210877800379704554491434026923385312709423931881195217682685119662080206742637714594928800951702881188288352525092515542317548678394802835233281597324949510226171309769002460227905756065646009968538062375191778082501549759945829722205007304557806237715114536422724604868465119465077405598731033148775780694125376674708305444907389295562463144533133447014116666570998860506851809327859954443326436622146336486918885707367661328997942758822657811467761704986936329999444871608026088844903417109119678834120159065814002739227147953480453117692099897633240997715409948227436063826188752679168014244750044857790075181904755423884051183555808915765793043157278716988268405867422784217488895229102798943205055995174547775541058038315379253825750044107531199560258222332382062527063607824778624421071067432042664231677075520423854833168868788216408780382428701602552755161236511911853487041851426646846731192906416808314531431220349978132663360566455351181317995280985651039365584642515222050423572625555481618495351339239753695312159051627509219584273369968217932150908528778975267736604105186868296376485594327689509420214370584936036303185998815884943350643154810660637156141872506396786528877442252397409186666507081211062782909525489527918496158336529514839764798801250424344364536122552979256955640573745024605577757473024085430217806745619393890205253794832320539637409318705008186096310665900233820136386266712541113057106699274284562260280642788491937724998919785733807224754951479148911436136986386823477842549033402479322289740030357471586934158379327056048274633266155329587216648567868914424377289585802794181678308669681786954713156613330739509815435129921175990135408071480654203357451286963473427328721897368707665854383324030342941207392910807155161038459971379690909430874403086735089867838323315517137972809735361683269935353794215067952115666041420642342868563035522375230497917453255944969988303560815296374973967329372701161627067546088081940416720725931161992095074373654026439130700332020342811262249650553063238329493086278017003459914453606096452985394301618462721856377342951519509611192881421594224657798946575774829499078281347624383719658704296238586564519788444913673155805812371167569043635169043253064096313842992650533770761541294068151263597361566401325098618886123353628781565553427626321463366790455418765880889832284169888910053195644281058268138678196351381864713058625153770801999472945864011180706800621317086274481583097340523352024103244558977974059607788953535559642732997492481806522178167973245682575404960572890273927105362533793013223725963272862273298089035953843209009466412612347452832939446161898247095237420642088092991629940946009065168548560869523639140803478266573253431300385096535454299231135359151004431059686162825521035916223735384802545146088822916364232702593605800062223721212323882830547806805845883180721823124029571482086836072948267732477048987017152941428146005712395702224467501834123521797776083651195988117682906561475701718901496416603487295982335971779659089741683022207695990933631486031558582794348385395993478947095023478154727843939585586824557366267421615070657181207648667012355554237195200429812298200566470829216825696147946425299608110354385017094579907716960128656815119904459947424063550555924004289591850047566914823261915273808115930412701718875041600365915165564650477552346373255194576460831460943206464454490846010795585391343955949979724524801324221452657701719339162262165151430629133962534074991099066759537971548068909799550354291013260349445083078842587511277456311484750406214623238562754503215578948788305489392616204594499718696420456368351029613054061073653242942087321012324968459377894402557477966258208069761998195600769180438852013548913420264172772039503510737108095153356249889614781601627883854970595044626726784097289000973538920790459961847467534605631195760559008940620343885712542436953250270921085639526021380894121322487509583857003515439123683884517175395905329926934887215686436403238663962887964114699657305383288875584648542301472479201163925058211361199068376864409541773063061973935668189367253795461509972967602343881907442439057432096899058706458326273396864122997709483989653287169755798649345218855108981019690722334758895833979489630260662453874990493953049637335448404053715317737321683748574904170079577247236970082172014969911191920327268415024765549078584849022198878759646134190065729696736634894778987565647516797114241444455965632430092133997198361507692907170536326436067961772518359683419789132067433799171588359650884329326619525856778839413548212954190132170905481952074188476812288552733545983248987469244835620582771819512230517115921828404919934991683017111960503337330968925437597794461707394941486527775421541381725526928029037833629501045750939264417718860992273094123421830591680176453497313861948304552818624274229229501000377179021295777797996266328000259818283329833225638809418204308107072991131500614786632648265226870399293266908509456386839831072041745272377048548246875928489321017976447868533301314527368974307273400732164269614971378812883074676483039932602883394178969910715676121421847623647956876075849213824920472296541537106720703853096723249005485464138488421331185971741946015448747601361166773538584508255052465700872972845081016816697711431067431499981472163856405902668435926675395823533035705479490674940051153700122596167360776105603598066743722658097195537951705472250515129943957846548529951775762728932637945200142502598219125291866195439866184094404249265991821697434117970456809569343853832674388308701033953306316046023441335901278764914611476806669215106431743963688248715139793124336855413098288765306914362967895385023544769699297873183406052694117317583409772439743116045562891545111996594183830094934574471226312208261783107610011921164448710644390092116349917349176447995267914469910372071691369313191620659860717041456807378207213689693212862808799342528693712258481030139469423997180255555057240792022323086042433779213436209484045757470241087795308128961350902554360260395464191280743237392285139966653287204126402116384838571921448187820510457841566755216275085682583005847339809278278219770200581014138408436448355482202918861612317687097960466507548440737178110690423245792171564953545664992057630139157198152237027033284730198611959843941905139225620085033550575085482639426880851543107729530797990827942864728664320359539453057988448278291097710937703452484117127672898530988691952855862015881252690345436485245472912601515771298640765182962552231463289205801285503707581898838456821416451841124082425431497099394148525846762961523833818055946949346902538408797769515722152916235219321870382395587111036965975773054293989810579303242685001029509096911260462020795155569529751049274367707772935498797023682469485483259963810593954894232411382368588592147454930725468692212466638653099762541578255405037132091882621085452816762139098591911828939832705638330982865584500589325228336574229101322147949444374366433873180949255287321206462759498943651843303194398296629175613928604657495494207140190646689125336024783423573075329164331798704634808981287772883897017448597191156035526394192765935489442261534148532734373459695925150173561359284607961386800220408250625947369907643311410954377555924664044178773982518386421369353112383905105344278252645412083805463403404467265486798655178477940930306846419155052106421020894691160141178347012845016434353588725673042381134201790141144155846191702501986646674629686957270316756595283235833025859679952709384463602314377209103068028569760178830473937375781337445378467105728064957857437650555810247551550254229864172536244268912217321901254205597881360733248436650994087340434642523333015698967935932174769746626155942761897095836841716070226572620256446729816823693512909148346314995524296433530792377793790939067285937686823123559735820622334008454332711942109139288775409676637884350474798562935221326077406130186386037297226686400976331966107930323748303274448722191287619547556228980444144383631200177847650277373514373664857973813431765612373594213923861363985722941568819550239371798299651519533426201589852678517230330873630259689123499363170395813425067780355722249081793603253654991070057439655332338010154878135405136390428965778778587880774956824157892336033854384517682719563702537231720059282537734292614874804788324405154727821854575982948551158049443283042217500092957047220958631423186513644983267665667543310437720248679469351095778827074253285081091608383827238008541625675372455776946596419568243361669184421813237638408579861929438620138620704561753527783525544307108943882195993779650196413381568480598913264272018555460964151934447548621460148991896328832502070165650683987091437413346787717256269087893455318926062170820843181466048875743310891391548095203025765533390200189673920705499816601986015047679981085788790820830640992807774312034361692066318534005201996242984625184706608512829099277272926095547532449196814004040788244523371661782308992864626434839871262413009519705449767782366443949031103734210552495822312107768997264181267028741336269980189579826168300009887366573042512956824220278779930373610676906004282472537118682617621028701429140263017764647685600642815666864249035243322451154106665534735226716090081935480171025211252561899450264540917844696079516336215459574544542969718903004530731813834089969467438900358267215501708720908852094202399985877617253116441823745624159576267576687513681765071991224138920067100513585565604343537546571349278714516326201633132677566589767438599231041410317024965576010127308832672105835277038286634944338857226978059488041040787079359064545641089413522941315027861191904826797224622591207222117304170997259716972364211974283016212530241532099614221902093181801127086234884092658786027766525462308175589356710605911683370733516084001219391569066279962367556121183468250569272716061607099460648284694819843506682452488167144668470586621944663280745261127914060988403791890253086052283408524465116286797314062555807269207607353169308486118060319118668014027142743186571854083691094431254013587669360316038057224698679886336726607945580358196712552589608558413111749704656448370380775888996876956428502796233579299429471455689214259048690563855390656823060859721778615513910934061200873856228653563447523429454930663148282242146680625320731328137612479960312938650578107251452892422918872439490284046812847999525499167110728898047018862599712335008710678563290595287414720274690477825073234306199546895382657018809974826288914697762997758905704694837785514505303335930244330131294749047443655806858835128267790070967147495416585010316968698195604502021136914055651621208578397684533382436149061333677135204956919736870711994208767381179255985252532695389578918777091404541890914240116303521426423442883808693362042954183247994709782631234567467698825201388960412471647264142965248924511714848848304981610229682432692958186062764724454624651757534252588505326897965605359130422463020783447740628871785115982364280004897727687650227495169618447543643156334123584281506411520077524497968871746457319584785223878328944794419989392949682974502641210978121947482082255967303194004381523339801078334459594341222186161940365553883740689302873431088253945516152251553072995569546097761891220272317331616477596065482292203034730224211729736502059478263818266381457631777855452588798037640501516437604787214248283088674240202072529081994379906771750063114840402666549944435081470828511564301817665654291334887484794357564709411740186053667171934381121248507982984203534129216876347709908240248904185996189984521206472409710944446524433001045350230305673539887636819435412715825407548962993402130790713195714997339492823569171008003201950931191393573390361236636770251742585792190371787205853459919168514939384436212829859950679066305675836100146759950781611762278729227423075346061262379320673980317315216206045010813039483630705026612231385497828374791285481800850094985614789861906069701169118153738149605429578641381640415993228347842531757452485943761787097951155544097851464907285999094186024073210034641127970476802261851092478538005735007007124325946396460916155793209195003037178940070975176681662687206519336533560397947044190923666402001197250302827575021989720053494790236006330046621366088186844026481238497403472163220323656433956943726011189189145826711726973893553386694390274325299443114841090609241018621175989798217594906657362728150413601282629422439666191532811519692900626268558523807528814432035124341259821697964364898203232493147344018417813274834358233377704196948814156004061436570768465898063679044318704173468959312821032937979123189592770828977640322709308820951577410412888564391372345309883380539469038343416701837411442798503136282583042399921442427129786524849752920299244822148061033439576095958655354298660221514620897515947831490719086246439950401075055281662234971322598679051742083024170698719886152082338727630661237596259338380021526125825429787044850395278568935991683912777436758711459932016429914270274845168985094816588729516712687717481380826714508231874268685980960547264799869100566088648852666121452891468105297733600299243599560524063817548168748917043325628849963237305040350280299795459598707889136725382463953724486348943859328109352281350302057163285023507759778480994507035144393672315852716341056844826545275671065268409709396754607543119166886826379300792253747358949462508563673443279456030954690467922632906476922226761500912554772616835579761854330671365806594915211923930676062316368582762610756389878633411598252958816755740414916211318270456336519329403295660416699156219695308790200615627914455529106550428106609325088783165304212467584642037485006021978069915403546986596807681476084099275718982942485515427616961516708038437605510224654152017347772970245748269566761330231373090970149816881216527957018341377762260850043975658464744693805985418210626127846134276795683067845920725050047980972513864578478507820860366106941108292580639017372751795405878097372774504711052201519921888778263279877884339315166856709792530598500883886029277714354254924818509354223061971886334602370420890123875528190682883625358510943776629952886019618647131313200590954177667230776407267618442575661518152716585649338072945553817548719570397146065998675081649343717391311596113548670547876806479437353912052747813073960572650565512700124859815911089049575852239568108135990054149379317068448602192205987666332005539998122789195575501352711805347069562756892729727813037231546754406831278957931186059998723215759565713503030974697541763588135943204772954524599045368977968557765421538315002690537809200338057615577205413326572645931027261404475847487794573206013087846856692306478967393608768388757508832836958294608786570838009259732725394881725540363696329868161357461705935156610407406971245056916941315563282631904437758552451005900327412345131486333818707414627099195419443574128604205059540934002081307109484834201016880894428259473226578538365025496924596572710905289691326926321040063120859298571057933464254666594617023084877205762292860422029333880581445496908808941294877967435233392683555433023550082286941838296431268154229900060946991915009609262545608995539880055151310450051091478774617163997142063696130682919927167027152317037745509825199199305537743430024801599664320288008801696399514274749534844155039254785709227713659523664018838876634402857787642250469460131084782719293744534951554237725795783906837135706215530172492200582031532237125912586206329272359605766618458871570923918207610883818248397402426854515369680449401729720081228174595092479749743271595921462510048815957782906400950152692750989658640128792622016205658855667020173098566424329136131289870919501749410350965183935242582145972994847542880308440449801759276943420552480384454072143890791581545296793934390128325900630003616825680744868074176868706810343680982508973229149529919225746410003098942406976504156696179229140741154030811914663445548582987324263418568533610773883934702951693443250416589954502338914249673021113009920764960644301034576789592373539317687108334925469090262276601018050321880538035362050557527061655639018335965631006150420959510373630659250258909671928530835558190522956352008681986954072073461004889253111505205871880366354817388880430388773079765841168444573984694708348620888056187785462259968042718572781208623869176078333493249203846269681832647032426531307489814245033397823321105827342483514187865478078663498701731856575361146605143928516819594714588497581423031163365621103347441420033123252954327775126280948330977694459498244806891463977923959954967040449080310356972488465843337268150409250601273718376155720773067639859593295868734758228849112177771347631093637163809845201241317235091925857761724451592450043169654241529511789299530532381888740943669107634606105549124467017394986573501796440633753440731420443863566697733392101285878743579797245427316375804327681657007270724535140684401316028941517470766762921536690758398902848750090337150747774837054680404989981840697782562898290816613155150958797717856432439345386980903012163687352401723359225342450213850266465754869200365262291527063338061956308428314713717184908155294821471698749098063495143443479981708728485938235147382672667849949971505266934456561012000644318159135447512245023385774955536014173479424836684029975597289023092737879564837998411495561690451967181186436965591742775772162467517586084234206173995296979201722969866918411054076985688938712169528874753608286034943189618244759981273337932226851307332725887290653877725251189905800506180709755610231232404639782371517998802851629889680461004383215953466012525590536774173812051962376482637107694246718324323099353507776258762505684969287827986024591754759372549644308855455626850662400311326152527857881302592112179323847998335541312072626560387637562200624934618604466697093040669428745201710084744388983449865963813998870936755442231285714875929823382501772957954673842424669266276196903987914231329201259361618340407228313134377647371342652180192789077910725134384607074849124078626185457446852937664820192318809648885262858010702838449432334693899854773099916437853666959641828171163999621904135970694667929452857890704176973393224248205832794107750580776297399094745362643610394494886618340909420591398692046789654849982111627345869372913950693481489228250425400677891691195638254933720134159215424072810949884051689551303415346872107911251990903433566199011916499627608719178787565021013476641901857689773725987678298416954541751960595446300091299944791420591204375267754444335541258446032094051269090611360017585975382941702393472750538660448763191828104490825274862598399501500116612722246949983908649631288502841274356976554421038318401281047615230280458601234233399199861222745508795146107115091533805726139239253372126663821657386023729294866048323667838152373450541131430199416139554233372450031807185897492877344956815430257451835512103501608539506204464865265758821666811886542685516869242150455904152578219852622419728249513406416327248636852794477231039308939969199150917916355815074060093395126031351264530085477425492124186291015811807513426658840420169489478645999046890596588282087778772991969374817943686928924137870379686124417787063332364985284827378701183634180801482071123525495880999029473260961400053216791205262521269838840931344916254995413786861336123057534561360657045161683243508734174137141105298969048051715590270714243712815979814108909479205035460093862063325640564208655519002176606476734255184525874167849882232911658468207748595562629276373785188188011820776757099161009198606003778653624174014267708266185160109346274093215180211629923054469187264453412154177576641144217952589756455259684714808250965845606210303269169607300882772544898447080916144692991924771632183043082570353753219411391607373146566902273908905186352486979810133781379602781170549534915134518199470687179862268452174564509812523422044838094228663107698884287350851865537287916817898958757671115863230088709820467691082960640546655666784611561469903041295257191650223574998375714841905599957087972610515574963544267021961848236650811445351929237136522955648136585105969631222935099161950105661668090332997202679643894995119578915413599751557521023461944998823484838376656555905068047822767857380684290303672976787700622757261465758445337831649037667535615291081674853390208628145220827255477173243551801242061138075070138488075558882047623572162266951831452500802278242099724151032654251636873475479036099896640265123768731518917995300559474605552153338816197099557018449151728430847052245212636867560918510108110548267092913888138901375497322193708958730492682924109282198177905308520848677124740350826291978256599836865549335698057150766805085536995349457095645794895765304445623424009007085010524697803154578192469683943379455686174504284814537921039580993373951120045722545012113299172064239728299078945692844367859715390611663178693227834362016020308193879558358130338633310073160602662959142147186607875964247408479862340076581002760261977291243350301202567033734959826517267306977555530504498548565307000210896197450940180412798883201006348132287760693269721770273681032013041039013533397585766940093118902715773504538170250823653711464277532013819033871957064746060890625294857463069763585424377373570326885499782406575596764091477893350232608818716199021952819359540827548351242577482864952351780291034072599674198119743136173642712451331838023452916308906997493360316428719753618456484525181732328662517778697700062925117061846082091756604123918829721504522582532737090232449151885006858231541406227503555071820020978944669693594833632885193913183566303569490390086677102548549763486550428601189072523205986976441540825064898243380470347802885296152594485291768474348447370342929250154570224576806191018338901954138223960845133727862704227325097040500272161364304173822360010440622296291263868342005684077700660233347936632857515752741873532529074338490468421264636950114773597039562945693627343399574147014834319520370881924080273906168813993419804319414950678425839099973783855491192207782906411665168964096075703855989732192282535321451912179206911205479366911932228999512254262105452553458300970916676178568650974131097782876779353461163580633316812525490911006928334938120213566763869109605367178724527580273615282190438764351031095912783947256500554745390714844092397880238550346987186183435814624473361540565774604749475986550133251119729358332659253635803012609027962184674404396641227304842471130333618558908472438869553192383102439312877790418941160759177787248326140768159562976704951708279472050283263639131648612237386465937931925254573897066340614707120123700581203768368039463982031940268957710100821453546112244917880093845255543233749200793810831456709380583894431162252410484236265687878892005914748718751357618994127729634868722922249867493238542859545343485919686405575757952783596377362874478300200651552953735483586220542884722631856000471634348018673917836727598523557824294923049514761766079271596631930291942688630673351436886081342845676356979172149358828285015598253549431046792025037135704935550988667355140076603595202144839094838917938890929807243460320008925256630996533864010182320572557581597946701750313821930143140482926333506535476169160477935657864016364341786009273806316380467880260729209766597380153615531392209122775466467353600967364268578442669835383204209561031706450687261453825676104121412584735304516037931124082321261484123465737034179261992070945232587746610862906584158231117021946286157750309938741811596520545473441470072149031741513909918962015440653787262882058185559499588171434526010933894419583159068566599356868196797253264485440332969635707159499253870654203821533028225115477819918956650978800683829979871801853009835738825990300367189665724117820855722787795265488946776427172129703747032117857048465551039289813720764982026485605969575718175120667353183044358864682044588048907170775274401239006079647868542155780145000483991254413372844670706074235529999122943146404205676111441705246199162044077371651710405470251784113934134824194245855975176971241437529531470316596086387389112094509912561403746395973438876844134570860208280498235217135593238516388737251763879883792224355732226978162490430524695555789466166073047080088201931722634474913632226642307398887016136710538676626229108707417474976539245291030980508583291943006186336973595920027272916879975770385295728062328289050566487421990235678382031324872237214310009330454833753169668255325192550919198873276721332092372755304365753120198476093533219636089765137127487197046577322199673696462124820859634110869770617600219053396670568311879542583471122974644901766338756060949615342155491219224511775920056464127726595407500330362348817210996407643358059690067007419760384162735315867592593636409025907676394500058948629014399594076521472462418303758072588714933031356770769345318785187042921430726126657176274656177407347974967906996012601731508824410866257497186854933258368207395907147900617337165778948791965190882942086005869738233216482992319389112423028858776827129128153010616259510352308719786448499689056295322099397412003472932875785555999304046846122948054851259779980361666768134934608600201957362995849946067170493033635179213236336683413963136910291023086502506126449526356342839412827285467559220594349665524883885936631940232087887292296766164257725679290979348287389868083713717581497845602903076339837482331713537776106264597934247537845663604402045267530796374718747677320398890309263173353699172467162375581862132697302063719902582969587817158704653490946953677567102681063553575946639368873779315220863930440336984230373718020415869879453125071137004190467940383852417464261399381347132962702422261312604553672356502066123129329664261589573691158038618737445637180315093021113106243094620660598746336084638159297695832815456428177388724648871274859481242915868561633602192006510782165626299762833019384700045314228856894221359107824490335891670157487283715057170501818502484643641374564732159921609502569972729279133238567718112258299405783187164101674579191293863222723478959989052114313663734425872283030083362597120197365070399816407811087386613301640511850380655953972373707008457924968254423094842535208847258712442350278160996252839591225138539831725100809282041192906226176188826898697347642547585666633498881573880326397579976848558840891827094370693129983999902032533287652599844785135885637688733454218070762011543395527008951631598792075699579885863155948552715773463412388824322971068275228095867352158798455218730007429681541906907536991133777294868897195586727785997708510989966687753406383130565071965220619009740328878665199031230062210601167053044001118172736246231087075869970657034137409976973166251981788026781859281780252922646412395911261723397229426112248772701088834229229583706998042894040089624317681417328674359878896793024824366614884362823301185249155081114209912765581560137696527312627841451028239480151374740028693897036940422238093790773720883409811979890459288026829082551917766651757626145472389333881460858039606974249500603965991230305411527129967198604688933617126994247968258382503372036453108045900478960568985692462259149299559806805799159101494804035268245751598269543508098614991970438350614389804639083456361263578941002136686753704906851369670736755629462290149885467361434391829318494509701211397520016174488575154233297490882761714643182501435520850187149589929422707819682634007808703919268805371912991485088944347996448916487613811371421544692536915651525306807649510671118664627917523524978755010170951795880814720100704887333652063136377982533704786507567096363349035120072808863417691245143336023640352985845438065790620621447453466564506247963400376531495280216212542114558987013959743139284656697186880056344652115720205577674884816470679834946725103935031528503914390436380613789170781873993364890734161477883484185080922936835453076191322314386094239894136057315816022707647923609153954341296895231370675330052095945207028430480351013821915083418875167069831336541772087247455152119487983730885994529426341769866499017398594700523244134254491512240735752319079919695655090216405491032595174668389552153434854747320261877816456702889480968368369093937581140734016028405366274961209539515257001611121363801966122017101739601678033868158200926257028157013938235044719733432128259038836352601742715427359411984838510267654217221625514703985545414401318042108668669233210766676488142820680203144672915518977600857536310490396808274918046306109421494227883836359008686291239886096052671564202521407613006959311989290947660700722121474180870916923119764738752745437817028921810969390434762445166561758174626251060373522686330197104884387518734088139751548143956604150403420608601811961274416126054592013775442150731786679762333083356371595632425152379405476536596049913058638728367335179709784156318501462035535577922141545002232866956164550174923251533727023858654226296314648520184229796318989973619684292847767513265568861292910875001471240328693678668113425041748981498526624191675037835859611055347852594799457425499380514114034768393725264560917474076764986207146582178145839403791464377118365745041712414751566188230332456096078637532510388835185542286120793167966317363011594533392347589955484874667267846368210419560749398019811135575847532822267103353982126506289988452315201721551472290853336516064933084325017289940930188942923053702225688302957869525378835265040224989730182067382442685426158044529653103597904499226305898370967755179340957794704474014055786024069486589917041937887659409391213213806930002967042167050809756212834935207337318904602936991130393978328499895210652498747070158105289478739183174070978638699917360147854422923527024466514795537441282313664074109336540292116658916589955275773034225115723375776897793243319474464998473591318952861324015641858259693009635914377676110703910667334439262003380971031372022024763686935860048054584683603919512152971243399714651791286620419660034646158033248388683330019298968680835293776227571887275132885054084366976548028527111060771704139610927986235464974396111394178079759864542712687864163839693234210605381276862524525312205777467940028627834780855040496499199090761347030436976880691464160506558522937641935063529928446299823237134077375444496240710793940393509441879628710213422544856813149800076776526712661079579339523839465415757212224993548947249990392238388657086914492604854193882107924973874272056537433389721048427947895634625028664138325770244061579068894339083836566909023809881247328970793797831057410620880357548190912460845515850388918950199313745115770041430186749059755887497383864318005889767536091661692319478332795791500937997677425082548729510483284105600308203492121373829474842484017649932991945673985856672870440171795745575793029052870068793114748718806806331627514329634290386031871422361428788883031151899898734984999076570196735218547245486541389634229672879582569874975244165120624353475373354159162693119286769268210486196103205618085411578487938928317018613107091303082963907211656768743622971988913828973721528463166046584786238751745970926362239464683771525005854772832911088747216949694962717715083543804104318760427560814883716963377084932284516785695487114903591809137159191310455358297633504609199027607050521596152839500326586647194402912396591897290231565351854293940803011231214180344378731978065941372987026004676626019461176623277687684113590015952455228930002054127786610374117826639221419492283691600184915995291700355056344915212390338747544775178172744859645898184401331244225989049223380297215381385378986834314305077866228623938750510405977562458461152448241334261138426691687207998609940067289334558977658416304544101970862540783957174410809438728537158578662866990381156580565380266230063381704438625636627879397336068914117180992361694936089575077412501702938811680216505121459115697713266442721324712472779038919951438912893712632244682295338347574450757921507765600294134835896829593018901950509986058064879517174288817619266386546176902196683085424012251138248446143778918912655628629387369975944085933848198956493240344943687638460303382314288132380362125435415060273799151644787828578665864087631944769581177075632532444829673325848665725580943093879263351737114973585221758313744998843608354198329913439392874722861298826714423846900032329965364193245519461976199943397940418941168969549606579142509935769935342859070664705248795036153013163888004149761475452170310536092077846937681327643478809215945507639344584570129609485768812465704812299878287866940288982885063863272382501037548232662893311359434517628918196903111779847451145785818434494095822616469575967935063605256200395201044861699906692556842003993085774622093686968461901955074859299027887812669155106656763480487043843150227353951374675242173097858105692805829922374127204149552947296850355868085604059730049074812041376487408501678679650403901719022696412249894762409375973580142483989311130690145087242265775136823585399462472199390183191374975963101663317854140394008345753068834727250300464398908748201403936208919221998428068619186515834846236465925347851130877269124530100147988859959831478000080842077843878665182843349921897400174809346955387573289651306217909214970628449489048963023473001521628726657251919060284228270902236760859912182473919065401137586344573072908045427530389828930080635777475461182163106855902907640824669362255487133833514059512119006592594839820839600546547124862247213153651940669804537050942369443798047465864454835935444751026624751081067293847553980822478795419230371811448008810216726574647758078689270334337759282734726974610278880103587039021900673801593960338946461239190648156709194105323650133269421094380015709599157783940881821808895504427037860551894778222308544637870419243914216470041037206902447581492248382107909117374617777164964987205621134802738547870404622941655881463114747174281498544926782852032109345761495521672462258024472130431627489118030726399176281702072749699486605705818426361515107148692649784704467786755085267825966112079947517581538822879168669495712168320725878589238966746408262010525763220569521720586998410192165092059011033138656343504981123444403144341319442331033306848710459153458695355530156922008638243635115749344755214126744602107998264262962200364693939679827190145348749574977573300646973428688009932908636920191146519792074195207566609110745166918531309897258547118419014994918361529613879172228162433443370084323894331206601855604486241028423224981272345471228950468781037206586774131661610756811853094971845551865661798677957813093843178756089418371868421278341582961685969562861772855218388239087838027079203728949194826599088416317692959512536482999649442704720161266863278853021785789135229009117440218767601124804398324942027577441715515366856936770367730513544203252418372025170942186330051082908757601057060749511684498505280906903671102194881129557427770120586007104470662498593292584904012275204275840023202850415463999800967142589804156313888545143159509061681930117817371567447323560721485833552085107812218906926468904565782211392348375916180359580307155317446652446628782216029509785728567650157443328807589459372055570811027737175111715466144564657106963574055098230882691119734994321320524703001431022685535629609243559580382437198089489077062478212130618080051987351663400636260892052781435152978291365290617185199136769605132049285431052777444700036922494234647834644782795852227957149532721958870921590550253012734423467200878763934863709409959383454445105483567787803149052981086308556863398240487169459238812173797067247465733871111298615940114430188872250160136680094984236968789218511500757641483446025542024350283756587014785505441876700127271349121121089724195705723663441098954172145005921876768582643051044276565758284352962789658873547602442034719426081580307709228231722338415137772024093827874627499642332218618682905512317205696347649470763735503410394661034502144864964599191950947942265391764230786546417829378522548005166389262377904424912943517857411919324649033543406013927804524336228137254611014622031201696643533503908959377196794679267278116135648234157379927602052570268091505620800439604818735911089906722226174273003836750657888871549021882465808175698474991361283582180993535049746046553869905275031419478659014298954827987102303018845766860302362686591634734282091000280368835518640036536614482557202105860317586568125341414470374571114667261750600723119620838059344500041985208381008577987447694140345025686322582117767626482184301621383389038271253750808286406510540531683052093552186080137492089361808404750887395223083499484068499548005478150317233830079995500319031453093449512434619062293306805843559510751567182993336784597602306635905550282222730426946232321235224221733532161882240419303007455124353519222258811417818095198668985363516998433122721484241163684098865573627929445556380592947929795237292889484342471941133701271542596334404529619084957094583895185247104444530768765930893308621812891703095853422341681383782057164863791423176397074132387351717121535216860444206032363213179808376400460805891229910441138201633349563955338590962174238206785493413947752702503385556261859569054378151184359414388754714062340734156704720804017342592489018414600016103481095971364951854332194807142208222110880982089815088982800690680777312721236038455770263751502835400882294286533469144282240172112907537977970624649834588836809485074077872740144422169898657532888144776090228921145978804735078178053374872381412615263963126774110296986606033644692494178363322688531784275514175539549755020101920123044001988841778206881480210556271136202701531232337866900267220376621985266489314796574795691899795981702504855485642655843435127480082449014808117525616346450437025650735594224088656588669641329812482061442025067596963528029054917979891848833238662654096960922119743829686386626543409621723973748815447426775137671877220963722962366098171027356845727508604562808583062391567636925111222453117359933822673203738045604335366731831603614818821295728536364258995453938484873554592375356153469773763520484409778011080212445297198997620178833358488570086220116842903261641552083631515969165758616933980260066780979453267949681896875081052316813607408091520439050056273443131540697882339698283787216994417511906242177043933066129068124558828388942447661672804397008544397032947456492826467962243198744029361233582068238558080979971283695530367558227569644680765330022143239333426908435557442885781900250374128319521990051895326459556865315897856406937709705795876887770553438049298901269365679710217454270247664281238848171996764002827963209443512993551718245496624703935230077316659134828263465631955637810489028567847330468753463709801089942201220791921421297295062602100817694006922476729815436257718076945898757318615083725599575147327029593535470637106910919232415951196722875997340812080925660949755615167985024411317460395262393579659518368616903284514572577416058425717039558159652025939428168137278833501524992288623766312877325437200910767358564940418658817034264633512650360974541681067116493645957246048226783930393168683001606528045165860244571934901458243934064811710345212722449438079346901737777256809521696795949652787123963705217299056619474918851857253388026534863338363649995971816781070803718284185214972775481279637424548936562323734999780605113517074029484849642051000875071003887061572465583507442732567773053271078637869370613236556671237694697987335675034522993642128436261280301579884632833849150631105471817414284112905836406315011920644096645226562233957374551456944911344962374382964847396322033512371087356942107203530367974811665843562874861361119557300718473710263056128681427142775339819197207351568020489913640792368448904738906903073557768009613958595711739729944368249996267213291193331335162159906938673299302383107276282940924474927555487049415141988573204012739403476081370726383726459137427914379549921738381555370869303950117489871854484320476042594972397164923464581994575834309486217372645221650237254231510085337592832032465271448862680952351623235380667770862796246938955077016796252548569841477334737061209837689903305270664712099459586920365712101903132064330274373980279220540295729264086503347038529753496928634451004877344672894452870433024484949717145890693450210506986149242831626350846486214145496498783536914921064129484794412981402474392104639508860758983600974700331227504674168638704593273489912706323320996891892652259075740333900316263600003909812001772319271795892062518904043217532100686082441763129724729377656506308067940885846757788682229881844088265503232795033917642824503127211171197930983179787237386696375275747861973137826098916569942200035972280319644243416272459627173065849599735885630086861411129717780242064890308871436091786638696601576103396853072286868686219854070264472884789162279838229745264424244441734620451826486723533226815671736272085315866111109871123693503919190738490574374927408277849187173299322756255742793818282109401691239009529853683784689073013732409227207512240511708391051534069229721085956614828752534404058157537134757972908505690409043925517283884767100655543763527336905424257220173555790787421978081064800737071584710121242249626098589984851577663325597321851954839199618020572809627491171460282385327557091044969052650548207410939451087088125778699122265568651090341548202791924645672949637798763468082258811582924533399535497829504267249738129338343406197669270976223870098275344793814915362486888859203918963545490930714076317434491134958109324736743443768666662302564387815929874649823937651522011384100157056028620845452440015587594714521620478029590783499888893102150538128066857308541331196612410154603939712215232744734935452084458020573794757415862441663918612964385896869340508597478668896526681168919554436625014485928128968660531400124334880061254110680842727090824008322647713529324035512832527434287351360351347678553616329073002820590842984144006490926550785649783278860234765732505379936941472033889803503486050848159016954136358018983621790006643201822065025679152422581632762844953026190200256249265905299235205277717446705860979467587850904975550321823212461960485871678911084515420981204919927663860805527221513910154324413539110809005299247690759754024668074212279623804645115586009951337803854850300225459444496143868224172120180027402478794855611430555556843569709996559067771072917461184200452627053595843438038621409518269174954561210837559932041433584840693982238884540707964969931658620099718959625819927222910920545062879086921268974570297348408340810058693535385279343986271728890317743554032602942472081761635957562784734092034646609916800678597532056155518545327474842736603186488084198169376829964330051397833601428049417979528874952167238172642642202599894067652023070922312929460392930261274623529570662352770340248157235034619838339843791879942985737508229326237895295122417436133920984624662779470058772413498157973299452855622536045054304043690769071004711387230740220051858097625528786581450120559821629730979843357581291665407923974489073167029259420466817182786169694348229367934535409204320104428832690363820798718979576609423450105558110543233265121350848735934139033111130638262697996904724010327617901823988973217324674618121170578637700661829752087108172296740872245842146061144875893665991213705490922537304696563362931136287457292411797443854485870379248912784701584654229209096882585822254394217826089552673703565589167421573556703418688993425235750182326140796986334883780209248309456959422344167905399232324805419553542318267354514377883847976327099791491278934684198052618608683678015569048570006885784430355939356664578785190633581727069337492501201486936574889726424932405046376607019808780397217750260318568342245052393505395528792221753789687422295465129137739132066673973076542580962347968936172751681427604900606832812460297051439802390744992524110093086025404936141343157435740568041602190341510919191236295462317443779612463440746256704747427167859626328954991628511643686013100028438385596725511700244123547718291545686721331847878701232379752498130390466051969753380669070267009976654770441422449290210227169890520167339462714812486332823885917913008926944190692499599006930791818929105659735757301416588231694489369707593913548844151673538561234072654013979231087187181722340986720357640740352956398225383401041355924198196192803606460284215723481849560986450406973752824370382441593292562394728576216860557240278824312444145452020659324586343285932196432947780389423923452913970168982024030666496900057111938819717889642368083552584472712990039195328526312964690820812845201182590350054585735972130042255639607594897592160333941370122158378504631333030138302255540990350236314497652853160478251180781429870810175835252892529822733690970166166469672397810740651924818223795340723630897093076713089763933496752721940539975081918296617547886487376233992628508839160591581603203235233590553663898390643183415425309285240321541303397617684627854828324799242273488088202222592199855623178208710919769771016579919552886775660836938306505444099080409608759825901938249270047854002814545705796385780019629319305134972839687275383865668553653003757223216528881396601534517468266035078129149681196533425967274153181850055147623330999906490642917719947455291995219377035162673847939808117269566722615082702823465950430128880372624281063807871170556714831206259639486738294305903117841177031178571133217827389572691753122099488868962810528462934641201848825678243763848393722245451828015859756161837435360664288388245036337959591384844771791658420724073223632573412523540404715747966424295223089541333489012137951144724903524805187507130047423065652579779012872975114551329019382075474679066567521136445393760920445786246261126105247023293636253333693402488311239563057482438363632464990572018751853952906201499143488671722383381750007666963683667925498235558488532941240814078998448258422143452213222948438476065983675824354548702649338371529201921383494741210534089021363067562138881346478071855804461665450797163510333500455938857139521304212514602736317113876066810316043534941508293705932630946428161327159189163261928719053144986632457094607027214805398100019224447353607166087181702332262444815202694716123265246275177933786370563424838574707055406743589547125838694788399898026490835554426048630317190923644093512713027411913900545612036441980956111233423272816721282789638398755680197876815384928784808513868660485607166495861948322989743555025051369188668988450543075858446981163509980512390992192808124320342882924299898069418735271910697170206906110609997552380236246923471665650685197714119988069428192542827068911385589909650112663648136456609836925086836467465122678027912132960731755908741526031424048134135646008149929332739182928909901327326162804977141531939749901494597733345706353817777875959983024929136671153121477787218180774014577952084083315949170811940773631603145598940947175187117753881502855171874652098857793291900203124122628210304055533594082009309361179244743961032075984838515773018662456157143938423413620341215775765079013708741925829777682626238491602018394329298159986988878475449830286674652535304587700847914938612818647392359789423957624919854502028145134696004866319208256700012538151549305066134319223847376122567244001707913451592029928419335907727677385856025782530296483026104289467096528775258904913064216633067683365284182326584266770014206491813635979049666522183895010737234464243304237820560436894579991802990597898202277766860619226545467008955996611059723498936112958746376505665088445624943961202399016294837539030496965507950841005737250424804136021986346543495843483517002396421244983344473086116228064805650610734195538548336336825498626921827875402580102516490122493774542764247424887943197289885297243719772509922173901541103322701381598672535555004276666741695477878476049680117037743833650620084908076010631643672435513709598581957833359325644436667943441340684296118184640911446230645962565286538625200960228740979922125475436346443709369241847658174033430560611108144814719372664782690942903367765671416257067289672908796297185368303389767663380276911011777418800829465001548706749916566991310772739647828571634843309175315592980585217434515046834023255368747334704398798459876489006344112103268008854277570476612520827932536901559969275285065053038883917037953128676649994704218833759411131546395402332918918785576377931439736746184304148353861712019505941978955025635883997138437514331691398497339955063250192511399217197229051432481370496818900362087854358199743432038961300184437939448551441671871211122018754055855063196097053642762648899154593851912151028098856126706510832872673144118718984781083508378453471849605929340160534284736110813663126949708739153524785832325964639776907848249680035032756014248484175577764098568660472116267901182575520773039247771424812048097823305328837988550372159191017733603980466088967976274024473785658594480759589221429272712649003995253852247695340815872839594337666000327246187522207497601656756515927711745076878683906289380553073856671268770651640064851855781779804212317303668333684963473905461105514565599462990988649740350679868710966842048499045377531568413977026207660656662774198587466269061733375886101117206457502648526518246281376676306883320254950854707804241739360550364196438657739491495148387464815894047463506072813992704283122843530199610195237129347204190055907649027502473705319851512377689148441341330765258082624322965398436600328595155428484235377861411328344856243744376354132247463188395253222256836415848788404851022791430838001453589019035359752540152600969838012484196958373721588227275503247749351825491136356776027771194679548235271736997097089184261184312677907246608078404879939908881558852876128569453666008886566233946960663355521647840581477421704104171306611288431787716437751006447887269485883690838393728289673366768572119191070483483100863998501777880292240468036510173350927721747134600517683224213863626827888322962782798560162830947400240717691409546308590280013457003382605833137582953137241044572138836229705703933667548888258991060466982398678925583815270463863156603385897262460075603214439541608091013286831602190808394039425626281169971148708995300236761221157535986732164882784254950974834578953813352531686542911109556705658942899738003507574672352771830924645406358164374592472357347974884220461277971242967020799368120953133250478847483119882659109868431111680141385095134106835807179899480478501853611732349898545935562515298022917709960566627033734832839382483465061629554949476035692541778356247634309415206888742766191426532554906587807939194459802942103834746699153957282774941282838647579320247687341578543031264396200265609908634406193297137729627592613072487623483451829440473295534011711733009305552784735337235100383048469783970465306642177536592712975224891375314941443174561067660571848581637829378670891601198453566635583711743499592355875876112101224975159062099219275601372109758246472804908772402016873096904841821702706325988770032487350962922442356073438931303606664022723738765682554192980903844325791372816747424420516406528951958871025140780442118963875860567038416015444472124543869624158580873210435243446560717255695381982654650777190375981135374113775940074353430440345589313386139688157440671633726126733726389874212234549004445188909981308843174174592389731093718633621969306073203111482845320918596959260517448053163776548683720213362664413102337438544860126735690020759824322523571196856033300218919158039683019055113362944394852364194620307040500046014457677416519008595540810600231056928764836797794410263308264746145430582742573322828627715921876100018618547486556665638157041234103982830239547138056877193893213501036161515115400157105703561695175535598928040523695206700232532193358465857307670679360671833979353310660570422281023097860794074805448139025759043107519949799230166923207707542202392210862799395870063180393309709180365163561306357695205099282906571512765574385895368347423153989361860142717642165736894656929040611544259531094473171154987089472236419970638220257019553882526038219353053247195085495444587469894383326478624148727150119480154617767727541403337589486921102137261744435243825048571583029569680489821951570022544487139652520447137335100446606738199091834192061942072085837489084495459661949585025854002999637300909427401677865312607484361085857895719363686140359623520594835707383904722409976296807006528638217742972908404684456814205121672943013434875308580263797137156632426482973147267856756647044939485877599353966588975182892605325324157083529876248392846241733227694344293590289697681231494749861464465176437144208496541445576654344824213827277155175159647667955549156543644368561056358375585599765629567252418311113672311704293645916930875885775027292777367783032215908960977139000863490490387976027250213197648991065991163052553155097305685689565492203713247118093032582357244967970387686015159257938020146504969372637103647110662817880945017951114271563753174617207011886591939612965392492538607129949341900682817903588612265709930380582178573306696278096168554094066499822753830993561057945373879658333394655318790471414393964789032415069205530177251922790802707599484725944373470162273178150289807683447156853501135279079521374317747754148401413980902581933509538600286971684859894045584101388157295925894571848486583682867846711529693752733251059833095113088793739350783070057889677087475801443352488445053941593017828373274797796584024759315421519463941921889399170138421575593455826352926884379103661870516882523546465132240317009707806958007253873365598729875314601487006706054896596085587578483705563959057811130313328334505488869714992763542317699842846478997828436709522833977651656640241592085165683893055611036193265656305906786217311299567251626900873072083742340968758282347610042449534185997229143705727890358372531317952114982359631306743894490928813796709300196296039548358888240921957629950973897757679034250222251420728644707282556697462037809068592600426375397439462310779465247134021317176901489824014391209134494428107875357722956359061843088431016178791700399297314562987356476776487805375603762772680167052029771796937455408663123035807047663640907767602760432029011873360050794823249025156816978784453876139017306348153494347618397174763430564677108152467493513147929497516860752052564489717042240163581050275265091099990422735281708610935374188107697611995006225337252445945785890948248559896436968119930245340938340620058814960939643341962782652794784750593336365843902593168773429325124589778557331886881811434154111236412465389887904256233795272751940250286037102077228115461543385521389797103793623654818624960133044265288374575295234811176848758210971667130911898362799448266851442014198763021603020644115791268848664274663158923086811971834950960729501428861343181134021855886029203143043165889553712214608094564121992864714835789910405787834933341523879689060904843733960952743396987899904003612459495940422209167194517974095367067893590630124879323529573797931761320239181795779533595042033102106904425403939545481152632740009015439833274370794152612454425520297880499152915204556749838392806720961020582948518817357330957606257331802274668417133531606122258969344735151217826031036129800344550943057587000074628668733672225068763757456814459391406077178469235511601167471245392942850005617863363817549370934386472919955278210774124562476187858092457648986537010715643446836720933067145964769931930187379067495375022648542852465552225782515616439755474632551244954507714464996300713996947837671111929117729926809478424297251603119316800452609774792212097894025941913301308949568371771200537040026825097812382058827996659297520700440801988195215890802099907255839040808612231091974125650585025512349727449833158902642644912824785783769438638272585785701356439227911776961098454437651994424065360197006809946142877433913729337592685511045010845027746904468205299020847775117069924035652134681459080204943842636918391151093499837461020980841601076439035462367914499814640684865187887841573597525992409693902928056354540188156318645883905855001042321540910254217996094079823523693332694673928703126399972990389180351523558806594273754593757812337393351325358191295018800559565836264943623329007667424209038007982589153802838024091923533192092938988605687932354495032508755991753695814721428653894655589791352467403121737323837754137816091340798598858688729091954629984058120201706903367873476153861540669379227078803944988700940358990273604800560089730935179203707219090550164819961690801842583529907145494210331443545124236307709182625544748315343556802553019910830517094353077678558050356434457196164851953835454650183552201385857344287804381139623054966387941639204688447668928783589014135173178279154538699826121115990942636079169798066552741253703791350210160788713265144901707730366728328468243774795057453178472301686951142553789521871078084642235693432409016318324071165073001127534231131729703821696384883161119375382218390132817543435291788562059213562095984143301261262009199254374278624089347710791012320605900051990216445639410130177396640032007852748451627002489074547804218454848933702528068345632931508280882577533619385751576691366256493213877613074144372243833911355242862913306626663827279535363026245375906240509802757835875470525418292569869682817760511004922934841997157820682753423860983663092538982201307837655178523171193495522672133174196543079855076862344938161661881672531348681696107663555956691485066154639792818786762616057880036220249728415294885485462928336322695398863039953050814190742495041857462195825678357840822729950353997478569990287338652262450002302563745969388573948505754905593558870349984381344881699660074314133901636206068286746114505865495541536466340209561554487070002467617682395041013917593200092312121855881883888955627420833066812399379063792087671452667180932400247912499671266632929831133098997817706223269502181064670755952312172874735025127922656202952413245541603839999314754738650120770521706490061866668159032162915014730820275032939079658881530745059465311546432610453859311796383567830375063186172668295509579523722341025919546318141205074277983065765791540170063497328506846624731168704021159072513107775074561597822536400431294930779831575090945430931095156196705934460418213180209935836782821314008097984413331443218634982640579562757537094217680997809581751717228093177136723804261943422201328074128552029012873523067245275539545213510310480143948048716957082432741512326367020362265258442060435575452274582170169456225499447451712463524018100802891536641782739828037444227455209824305592910531405584950227905399216391122714369046179867259171430852869315942657806016242275716688975664022278583696011094579925770868112973676673230367744039889536903225530696509636093788522167989933130265596742127613580909614132657776698939297438898941672138201936927513407720731749087644223225466476552321031111221083872854603488981527084754039817112018349738638038680142956401164702467711246627582803538941247976719956295454441424069337501792003700484173489678789360998274716008604928694910123029216405781900367295027108928477820484331165931265549147188533087047477747553840100797153352212456530001659515384938416977565691317164864392607684314918606934441005777101695232229822003610458366151847545065604502479790202658216774266149452961980178455073191555103420791411657086860415775135662334509839640430577709589458193873394563658120553746073492081966711992421173606195786518077281030078390210721880699886679442954173287573883747169950021821038654297392726946468595535238420844614330860750141222706941800368222539395729106146221800793826961122031434439052604656391392764662657184512319062010235692030970101641237369716802107022138400012049804338785640192723057958174269419288727018162082495099775980169124720173792495983272962058413044419904956181132541382652579001476537997439539219956351378010450746497426772966003039885620350521761132487835769130807474278138744247420713474858583454442344699016012500626126753576203123977417290633056188178612290999264410752276694276575129360479676476319296940263254815504230010357683607765885564798596097877213990330143001392665677132504489059129119268670424870300093247135300415492576084848852785962417217324714239139290266118042319802153126334272809818418004006050879220165016702436233245515182590238407742836257216670960634843838247237513557735527993828798222771347730711390291542078366246118044401626426497985968138317892320310952025654072816416496343617570672317616068062720623329565140223727616140515241285930421237870217734121102350676543237308597964394529990899843607598746677783147835900251579750685850109515522873184326763145040013681862441750041628205290828905476442880639049563052115178819630869445587625488637385997581959129866789772120052731005128116423921582224509052977056366069115333284647479175622788834385097446628785793225930123380751672099051025651028010084828188189912640675448757486728044160675809934967451465558088754156707797056272778208162654220880672595275838536675031686638242805937679205789085255252921556702492682148434629346412538615206634478165485772548834771469879995403382750498310137361214925888213373799194101617046588209537989604049227665775117714661812669226796547319225302874843760121937333085265644358295336063364554096105127457659323945334318671529352494003023999093962604794022388814801978088959838070936635678242210238980529767295672887830870480501799571928843589463279732582341793710962328047202921975682448483865107945361799050194034490603849772092037234268958659732219252534368532536995339911144955870317382710482078689542009606995111532359871533521469125529889034031105098000541537554650717309753511672006930042760134077673847799530169248536208082457302781957564166069613383481985910798148989351173752370628787906008459547300912203626862892090843336375135950529682686513780173378946477386837063257646786750944613454680717330529321066752986765770369890678876514491888952387012827753152407272443582748497494905394247453342522864833226137730012209963407838329966579928667405680769169798550197806363222236793043873081222604712680266268205005273597877955190412826221108986324763626774558362138322144003132522094173141387231646303075799433684394508297770989487428811119711634692758100250879633444045109305178221665273202682862535447713668924602974372343244829919955407542244363008963777307679294197871174636403606438192093674622477578387168361854227130495980372512334914533728239057718205235830207312132540445042085463918634834075077101717564270309867185526625236322934311275159673767543271863585694670326426160306039860882954680769853665091233115996799644965062141052544315972053767448029506946709794121042239989860967111257675365636488410867678476402037795870287688158415979243320461998313017641585127122902286256157539383694778693203838378345180207083579093623221582086758650010895800762202558913923157644490103552529658615939050519753428037523582448619593252418653186179813464364422540976962794642791775367808451571529363575963410680751494827182632105958772163724223613813884843514660097114272005767141320918634773235090271760298300996739626216790889854069436578634878637209426950492750359032354657966208914793662086272039752470948946168988085453373630344150841925742211580648722014180032540062359242003388750457135752752997203923945299480871555625894481682655991672215261095568343251158230819061089872871935536363298237093120537372623418116128158053219102381489549455221956737615256602605596269610440950744253801333973635303835023333326116748047868039200778051431917450754196885843402542266007984129204282447106649942873888141094365864895761152923899578250670004161050736425822158870668341960255725099990586333431141045762451146855546008698201729024562779558219749332951699900184663756803347095870810376606640300320283417544619800075080786930236950659542542352038167607285210908766395599583064217819193444596027629193414548011658226367374091709202956759200912623248815031864104275767143986782340889698076234407472540485146045413686312990110397020562946031802889846586026411195077985922666715738601398224887234440180529757907011622296640847260756267191972229447027315285363692264976407687164217881058766928066098963996681361328940159058188352785810627415626320190098915472896108484863647859652446952003743138936494344236722663823997166886461150832816289313054041400314652305305053753455399284239807718751242594931390248788474657097944206870737161360571303765146483701113289912360939482484074039039389858571118811399852893758142693418120561341820349651414047537362293685345694183327864288073178580598271523382288196840371206896255380676990313103467289079643968657630441662215642231912198612447353180880553861724702854661266800976547184889529156251176562030248619563255037521316407821292609027015194877968200102508900746483153750086506544455996268041673677310277714855055789912015472303120365231039087789515839590652020396763232050521081712670986487218541760275868863917522670621967545055527423463400588734282249203852616808378290692344266133698851246408578903263217190435053508261180808601164901048569329580215701547774216451109288343617178171785090154380929974458369169140169793357024244359454862624977092452999236301789406722917598043574224755026872950696350842633040599375260713318260888382604960072091749044082048805503145378361367444986459684735549216931414401126072807405498970043814187218232205443343650714592995656380922455442533779165940578043130469992524363613195699160330145345703414645538461471329531931830302451946875984990808402638374296843440704933165035379545878672306019882206980858415883680392866922219022830571809816583853332514140779447829069564687961397551481959624348796861070848984283086794066551035650232438737861761631549578763298207735691232524457386289475823293416161553963272168491904723937167690762785433117605728357744598629993891706236095114455377754394094600377718725150348605195247744865052125386662372725583194360070559425127707222754788963660626433509995825391621096534154327576677609858147061060521888293060400071930940446750351604186063450706264198508948441722438452543440632197102556366336600349238985425201502045220666628196978119285044956407380384151162980816295818512908689158856136531443973041437765410883905505709399159748252603718271043582583880436046838585352741297996273120620275345920617408960297327148202677587539874028410478323200976431242287234999600051181249924806247165647516411988781551250346002983141851933903279364064174998758066358982096188724838347960818310710076651140295031725483409221914802378233538003005120312546244145004176987330780845869201034828648134471778809268835224854029519828315700029522223876428189488066346816756488189384215193083311736797607840412752771656516992436382412092576552956192260272736499693972531944807110662762025310629488802881132410997991005728036676868929054879025038685353306137232062667287568309619315169678047412808628706032625578989219623646154282092240985060331938384301384886112470742378381761492598530734935849556385581375435036324294369755976814985624885007811867344212582256454281388948449056532224377363589554662096988534008677052425613395341771753034668944624257342510189040207322685794245346813719694786484701581132183179127312109315560194876100332758873863275620086548700837098442522148437248840547407390967019233089885918065313189135244315008284541794392443754585458076908506586312909750856118230283815915825487141236027763081849935830382016938315691847278988731686293972534836188900378632035948294159535763754519507391685046205012245544838696743725965868197823923360917455526146630797276833746439473531102337093323411219365763431705107518387200620205047761412053650487623623775891128210755723030921150336928951564181989569748969092661556797581479374941505823997739912394435861580120683587236744623197216257656333051042140673447162642300806776693158783025629290785234994731987464767175178700712660965979050994334360225792942475795474379598999999833922957595103393209229291695775681327097456709949495232616862887865433758216728955106651426941220234494530035439396857156628375815653998431330917221363729014063452304510134516529124084919418870737219556119117778659964383263152314121375845085204565082032885729584998827317874076212856552209541964944110411158680112634991185599716395252840245116685833589835138753934610132231928186137915558950368061379230294008334406214645165252595998322001275693365469366581233093686331967655945064247165057864748058134655736561765745828243568060617135115169114054825844390308456162215526290875925720028232576178105999413980267362607016166710861166079473420240478534587939536650359362859531443543513643516013310032534714619997874065242558035728117261836679221527275196247097235998189096961957798723738871957032898799466202477922115190171673873418777184268868076695694777565690634979386533485887739895779338777220227205418656088999934005347534116357195141766673990493745989091980904799297563921471943624570214041250742729162254852602600431031833537471447370815762117172117599480260023517097313822277891206965777079717433686161787024098781411648116022812624601398593323662521160050701122581978165310390942439987163045657798286792549970986753029248122312552435036246342641051659023100208336026009969348255287614107006179429618562160421776744112687135069348987589954038318542411409980800380755290474243168894578727962421749387033645615278681041318184633860866087696520199500653712382828592670546322299804737692953297142238546205186318296689287793390828929891782284484708596039456418706142043172809501726883492392416803195005798049199159000141845147277934867098662058037532318034352345798662082436519234783568937833386196642336377436294541131838435467585389631206283649570627372452905133675306631873354085385898435991430334061265904245237503300037030426541367412930691256184411746948201755784914625019407383843517017433879670228232311481757077799914435916995891110998451551596697213775426001325819382528173555610270850993856913353262730227471388992599428561775061543871314611962660182790410151406167200155701414016426382023796306161747979216272482921476594599189503685520192180536908266618776864377316646862200557615049046380604609655850185061974398743923545288930656185877052875683252069648096049948065332435493081357754650404135448537496103478621674042204319489592025378561667938765960970030695702434330465723962418884862686746192901514042304350043946707103196312894004357775743555710649142002732165271784576389460641775353946132581283267956105370640865026280269451146081553156167513189599918977426225939842268174790905393258065887557104598459334188041676158112525218370417392787485900851132806205562800579888461593452370414178053983559140293590116740391853966614618942447645081983742984676040007064702348386622064570610888185300376763916670654740422344421984452816303568166672629059355211034009878483234898709132832961032775862269091629902391952621923955255638754279721198183225099016821694627539112651830344371805819785619927916274567371524072733631752368085397233365327215231960677064311794831065784538452151877320419387789018270397543149771509064858146433515077126340028096570811727489847243364896653707045180249123921645558379062308908657720459821682748373413767036264707448574154049055078629042045554018156963710043904087805196031409490667903081292107080076513922204890153708448434451089661880926439344415001502696400272475917115438131429669377839459875974359613657542643992847692845810203076770243201071544824815605178454192035824413844919569705943901584871269877445435577410386209377684117905985576121081777393476137227815110999672563774132307536216309081233376644965912216908504864465937179280752993351741037955706114702372925115310446461788227534877422333055558146569524241353613190475701893463888323922331849065723451965269965369580606523564690594368283663916280607581108072304314688592483598721534152895759829019613900102790903204417699125312198448688069535769554741664828370848499021763839997596212497685181697266608861979919477865866235232483107129978623436960075208661705744832152673640658207434619550320739976124074691655914155649741196003356074954747635972625114810218398026465459245293561861536039350670326127944520146820973251341844766239648605970420844086331466064369638881252256922669188767178412035977235218964158534676732527213831779428723396289606795578916449950063037553160172680086042681895479418830072595380369510266057833167396243854765329256590812553840021978596675419854885101995906079329855488678970962547661815339136644053423605385714772208684448373613079440008510216443749543659394512667491728487997148825879153344904439444944343056984167797063394927830042176758943319872006899940622388384970708367439366353880445376822855555805579178687383324983563188061712254126646433383538975044802459004037868996043135198857843384160629566727155198914421818634824349045556765404784381815038630395271138538572977979048659615503554839829187518610316523570947416941015928367700417229059350445638334905253418415402086301643389496640424962082853895153644404070089211434131260571175729585952222295002256770382577097382744336146646508928322382360967166356946319416503444165202669157866311833735179905936764479446311490079379743330297503245558400958164143354894691911351452270040472850035409622157333140727841962877262969243094007221001158703558196961536345474815080636075436381990599059333233952153636245450152431728205857098419907645440324987950833126173113964782540752908579054122585363586626333470017224182673841564590331072159389129111974332286459886190293632662869875860728150999789335418827497005667163534955993064288207328765659934697441370771505680313088731781090975126620337279050980538918059319947549413765231855808224955215731174085902171288081760903174499335417380503983467710823278119297638667426848096093384898842158383516201764699715270933150810416502752204180203145384616660224868908435610895121798795643309523141076002564654062206511423209418999627816767726347457098313132013195916063136035209286296073346852233463076976146427435535801329288797077987205348443287620856216009651024053636065183142635782517581558533813590118586068239070437047040526686024348496931493055714587081377356379838317646170032633898036969459829911061383569923058175665828271095885096338220096420756317733320574183532588682097564663433358394787970499591164356070692200002340268659682892491288537009294794122003281511089932427392602645144347796507768180637593957571476801918287042913567578170574815145647006438217352620270720102609736262500033856992316206307235622244926451989734337044956097496078355657563555361311342507827059441140083176149471803967570894279639043109195214317793559675738817637007971796323209476443874941763110971216220596560420334813032633141132446931643161197409284869161257021489125474281333187706031129877506780286246567442259505944410494553391143857314977195098096409016287500710216644958743627348545751007736098511440709657355900777670787554629904942317549345611342909152456996959104319388380050766524658737554423214625616011465134632785636497201773857635513869231447449816590556953223942587147359462350732037055555725866692654834905472759636309855132708037759444708038902605316390879234488647542962807910709767012329250467934925522596181728156835931143032237299624029279893190310345547294313215739320382921770865203241576823199715054934036609335452127693823203771416836302972606869668813113663670612387461027414288407258761174613496895608407943776540292231940773879529481891244534500592016648762484495530372876155749747636486105017833696825198011865153095210321236247097301294492629556931550363474075201130916224814071961851435129950724336527140498072167329416552142627801650214356456743235606233740018489406689490811334038719531387158762128312547451642884294599891833421034171246453263808426912296793805902329809942361002648320208939788526147134600548614164503080637719034996812985428568156784772969472077820748398386554337270758406706037057646010834651907753567720909717333694129490517303804674886777317281433823821081554972103044169211592134920957867821109628513767900837930043540417435593810899144914246870343826599657829495693838015225426227818960099384390858147831197330178148224178805711463817074910653155170094037525634469315972254765082069243764089221159227033152855364789266566602817716203878494871462383051456439484015861620524394164470820913221263553709070672737535202428985853849746510917944402721725799115316122722577649456358689748008137970025749841675147893580665601460604844430611220317208122262266293252762413985931119773067425078552553233629904738360472803593716219667402103349372537335359482559916580545005905578153823025812646777992920191943599153942524614739993923946509737395307220242700049058498025589483392741940308144964224071581220086861579881602285543217944917313362032760898633925110225264137619162680860013107454169266680617167986937171457830004249923473757430883855678914927379501916024349158846702378985878136411335628094930395677861143947482828250847278821778823494711506188143481159332681694787011676590202831826056971078417954361030550440016964326807836026329957034743885594154736422679339398498907173449365258481569543158095329078954548673355136599302703216259450095479195708076800330104734158311783115939889804233275354008784465127674859380382420006813839961676297100519711689843348660004800622222824070296214909857377516866440378636915332800570325160233245847444400313453162878663938374484898421392835332349925975259212607773571001521925923855778720674459605552063474264335638148430470640791057445596064060083854292214732743274823162192025044140423943064703472168928097016268269194384525124662698085602694628292539756081088896879469949388888443922044734289420102629052408400094141466534667750915109460168209803099461590701237193563219771495856908780908567030897414235755297243123319863103473209307385117786550542803250301187364891582495633686819897825107507946588612528555953591829298235057169869945943804382314501265028628676994861521952628451300546918594499816249134934395661564726360314868285889568416524824244145501313093619618770327241045325092911632717667307926073073891441867307600104255334582656755965976876371900447037839143864356356351840716693342439134599309158517862194229533832293887702587263126725073472017077905798024657617911781238918177122111858746266576369462959973837235343692610107345337318899631432181689639663461770581472240356363401585584047205570803641033481476043600117667359763094432700516061822331511852390685732507002509786848171614591443604451467276561504991711123134021396850085636076541053417499820536510322896087107885330690913997022102423762273257078832975258620136247295184845969505884993626859795601418643374484918624165003234177622433500726230816885893795602461787270050101273991405462889071997397291207593952123500604514032731756056062446219560254797479890703987951856869335467773356744065345872933996439700348812550293443501701869304757489599259141646262978383703025021040293275431987587677281095653920490450682916341443730920698636321512469217733846956103280831227939409358726521505306340769271024121554022592462707733089204429168818736761903424312234481790706179989590452956841053127492308347757547550430293447970911365080297866482760271060851802443634730771170401574387594204146374317369089783967867975390786300180498029172913851046162677208705433471801380638884953354312736953834042768814564016932201295829488170213916884116673124284831019949268987340661487114156226608120298855815124870388165350962802613764182594173392232139587749718117668042801284484848787387507221107180919140134749880434403397859370263372746226081697668556202066135162479625514613030793715808136199799051827801492026020702707165677903766034965871324387489612550283523289113884717810621765664075235163518013750358593300623828896008153448720555056300563944511124456706746423515882089474681674830763728796624518556092893957500074289650612760731952184414465829672651241326144708704606712145096712780338947485460092589119522474998458546506440623889169125888981220706573657887440205281544257857135554934016146095019273705998014840984270832480883190551235217384621552521460448731856730297861637558848262383798356385993209102050871922873022345785057999817258491812129872824710287812292678318073612004746453208381139115843480092620718939046755214915949426708326351403736874351459944265814758483619403147003171995355877565047348101907154758163891336233681183722462455960271581961809322934950411814596726958435909647549742584700118927216602897747136811152976769878321691171390945157077417881398179909775492644721949632424583939762289403146575625899007286170377047855149230120748451167821225379592524794961558059226598156677681158765779122637628980172377693837982729295893883879961426066056334663709264797714579014198984249780660404233412325024812600960166987335866909928327969866081800390365846842536869425196573102454239996548760734522710057137081972917605457735534496874186785792120977368410400816618160294133924448124037336779220168592949037711735674084267160320651296231793356649998803462601354005279552094974618282260489715939043187500833461199074833331815024302128524918341459305971950812500537173278781312176128915813656975592159851082307560801177630830107314417552677191042642317925953789321414171687726419013764106577871284027662561393273043571124715504302605101737367151448615777936159072418673879831479421220890637621579494281202438442471428573403775448224974274063168479105499290888738971610031339970882461910907429716285986142802834497105661748646186409401724717017561912528764754907875879989307962785552723237343395224077428775647957405335663645892535692080197771932658639957416870780421840162147014528426003962233026640963237218818378108389384241709011918531436354081373766331778313718148134701879084850659469699476573013185150220880169737006302921875426241806884117850458050872552973374926289190098844926124877709309086952600480537990369461433997496273378967404614288989841109455249271134470710600741945410341417320246155350483757941402251231270250862165092861220850158218323638964570096671994447030293784470250234084047002417910152840605741738125334359323144407169724099036601789939316117561788553366341625156882567874045169394800158513756872254868001320095442145948559920892010314134004486441024887976757719785744880730506514165508329694013672680273191502871855131504090573206685270140995951839162635007527943436691942006260350741808296153416959089051204069597840059606644264912843229912300163591526865187963791779328618013090146903249562114992649025723221125697830300493472236209900767508471272198032900203587814478495891156388576660416146260675417540079479346209672614288616357249009151266769508699841617899840238897807328395846573401516442326308193981298933028316304801830748963652192770633656830582125052179546120775728336739978122746831500444850462709286719188615267715997145592650292113343166616058001790012503377650931320862044363765019086932688496160447320577510921847758023961524632455592248420415940485171803591185344823209548059264275988133494561192016003047338325692038123255527596429902714797654774000756863340597959725570278634822843646692426093902854704567684068634045998297880357079688407377551093110340839822061896575743651527389121579300448837972419947607333348466240355589481809095600948088792585767590506797558203639845804737147956941675302373408500759222594004034621813225619528136907854091587640221410552988198889800500153538760940591350818902183346037917116865182983603009634525429149071219331768705646099948512964949674587799647177395307728189344174618437519926477714925442209725386740903398691119277434149591291654231469193020515532480762704166292537209589134739931189925209212763409362154228008209439545607099870249692404801501185266468602759913146053956625887331224599633659007285387151170534776795526848005152041760155613425024000044761363839475392721029656721649031020450246208751498934565138056718198979456993751207435826452501026161437137082058719141078187048988565386075749237133151205888652258389143292495776252495942304454910887444924339788727673986590821853193767045005081122312141678042539384484204133972011135986829984379493311056195431476617098811050734477505951052100209974721299033339204810034120853889359914465255701796039005471281488435663195823476853403074679194648744177131203372323625960439153250210746387110209942990767604195588676042481704285955534211033394533161578567597056445760026550699655478245723310457020556072694899597666590445222889946940454001050816396501512490331687687306990853586430564886124179114083626349890270607701825286755867483995802332737955022159218938088412816889801447569853054882371794902340675177997042715715350489490575653494381511204408019783539678275985644895964847308138492069297829237919717900298376676003803164696254792375175919998846931606241219419113577353052913568395937047307765947277858868451445553348058096403193731491029981576457397948974756145103743394914315067224749880458629029777592982651021431642481860025510548346143847077970340804556246642680445797336808524148531500314677746446823774255684100554541565331000137720024717161439142055890552688646397742848705590815941208348913503614658673481303505863366010847904751335792320800427419092862735014092569270438175633073655865864823099466933736452297867280969828606732487696413804161537047111318075363245017234936361988563478099178876629676453584041016547340555784734769284691417797779336001854930616217587740323826454577368720767269235564827642932709317558012955331194928016867089594307312929949049614735839842000039149583852178240464626371284513447795884918953635374851048864510470889397107276328272320384116563402696549040271001742930131066589739016129916100986144835217966352990189134871681699195538721802360749573035171966513327100951810253896345367581805832007581776111098982159556539938633484707999344075370440790273899933521890679572570270241769513327840417521246381871370033322718959477604307268210982474470365353173079668412622519681508608312751240070976251445158004401223632246091298536839108358834927447185874375889392867319163766118468086565513516162552255754638525727760549172078033486607141927558458411389708982242010753553874475075617471413675965980117407012811498960809167220302039741469248674755467809543209912726181753227979177555625628460761890838037310522553005024191190639125408805297735936965212829186896713759499129183981515774207750730804880944884824262778645793333561298111491988514611733299514006580968801745717029759686978372481943539334960805587919229571201955860941441024958836560154378554501156961767039267766776811797911871147556298547606155299811383158199989872137991349279935304184484801437702330896770497405618627140169331250902329759582258392820186652441629553226181368905365046113120461018310606221440493133583662326480889822255174592086686413677851870917156508878415300261189242721071725032957713565643150983469004297831117957341525335430423221711507633106682919467888952192028343166529489444771111588283271970300624952227546172673144650550027303236861761729016574612863970978312969467710954523359252602706880255598012125080892099757309401460404798969049632333429620636985640806311952147633160086745216751988274216291429712514578403835097495381135536871435861579585849004015540062270517718433215203772772934857474758574423568608859637216815219417906891963856291795014524237307617985101430994894204297958973627791038305097121392673010166560179741458018401274256030234565768014587110004427958682268923841101125098839972585864945980892677961648852275121302942659271102711421210090107139860402971114133386900940536219850237773905423457934537788117080880097085398076475303238512227684911371443526696854806998921289238295372720863997534227797006715332421704440010038887896590686127989184157615205072605773357801908523095932484260010452923808252749451156725622905660573210844103026060777030671090372493814377339383644484832291011122975338503690358400630858897976339439735217981656515596316387861999498353096086048430018847179826091054025920677371044980504745735076366224502625710139536432120913722074903366875259856558198145773026776961710636754605072277401626001506739603000823045984130665094377370944027887161912180127193687080753016919091592262569193187699882277848694542561400967610557008625885960835324667060201745289626038576472988364594420888745118829531900545818575468107200075081958076858289912995620810086897483260882630158076440668615547970672731206749840776102285161575367526912043109682632097383040847904629114007076009837670338426276656942514337175838433952021465937443214268930116762390054308373724358732377777665802505785680858393124600005152951205804874994486055271275258662741625459453510704619681423417781902312621882624904412402078624342284153527756428467614200450329691514366411814421407515242995275716186126277747852520719519042530460688708525393770571547761415061102156992105811524946738258294775056980483242427391295742334532081976742311585379503233957250480193934817188968595926543797810866132916703227501903175927068564234489979933290558575193474529839668646032912890784017523423423778762315875937620111508201495992564357206127369882501830143379825460501944617566063163952870219991820380794034891020361329134141091967003291332305346288588003001810467217081667022716276372328051545466627649612185218317064232494857963143254638130538810583235691492863104994706303481689779598398023749895860160971371923626936369088600138909983308451063906878340181703623519501512559542968287596601471667990018266198557730070728882043455697003687538644035163068196879089651984382185853034552803711721447742557906890729710156570205159266029531218921114609727069187859215354706437715347017455585159562985811217878541861988932393412309945117051145652330534751490947231994567222623640383817650298202071866966562827233516150608797677815718076238740710157271820171981884130678814187260583935232780818275120317050378679067696697235991213786502139418260015379421655498348955350005410476953821164049589163892949476356397654397819402629130366120897943796050698430238748121713254020814117070940898647378821356764630465297642280192395347529834902566571225501701877034904978418815294510537003336239141112587303491659872571548148124351332262598031024190650484396124505420000811156416049920680804373737383882618590334689577291532906430175561130506930110301589726647545331434939408370832265343408064175917203219905929725851333390152016765157254907297999627476239457856086955538299081089694833990295460370615120793247506482151772673171942875370913194288712524775629480313239568976737455454199788229008561272237220888632950879998209812867192984259783157127500668475535945742904235126313923086895651086626211405176123410770376654272295831646022484000293100176301436180564353896267604660479838553157391563396839339536575181029496205069743718101642150191664925988172119351044083697999113114567902141190630612234707074493109220983485946081226612284514916672193446450871159709008772530709055097528771755666622678743634144956992951431925207505207584167972608018752136543841273908449480114275405223401020462759518208410660034563727870357175773286974382088121052548543674654701151779099040413432594500672361494546240401383681598789597421446957544417536699340121733140049723306332121828374045398652345904942580670086210135163162590816984880930058902357472268766094798248625006522775088443832037811121879036374415281584035350883980928483744318700593565568135279245662573713794297089177941863165591067509125296774200378662173001878420561229334284112289736615195695126515079610511097621781518522655171048712400534637953492834610524522281082283671092134951739803465330320905378752804787943660806732845182482340925133656183856512510518592383076108451747405023921176275679683324510473244887639679911237917795902464301096650302300070118683775802410845793605325261002467322627352720921006802944798601188832471238431107305490928649871975486807876776746032186381324981644993380173824285362622060882498777592171105103932874246852366562580802538288195885880282579418620054656199370761255795919021585855826554165407309260727358330245388007801761498187483191621667539675974330410552790056863648005097545905749809770421983410456971928530122696305805884064183105970772085187144501770336202849377345629211862572997372966628002996143899780391573977872235613904841516581851701629516716157710562193638401892691313238296652633412536442569158409056367038577077190336742940434466250795656934444838775174737187957032563682987436662929169130909198365914989202582829733456096833812007006270615690947201398864864481799060852404502747957706876440810130835181399378981581241833963174238912800094617831769262449226023790708916929923255112581211233932263957993832143620586077681129641512487021085327964205789286215255129909887963403202697058744268184916025237696961788652094430542103045446068116510560245052765147946664167469707094294896136408456610892641400936082838274615063829897675665950475260891122665960410612700704430519185317648003181004434063518324788465137766211675683020830762897346314251732312124823739022076395637546871937558584619984652649629510053727416407757827471793199187229826459929935266565841919449545219884664941584029036274944139007781726123304441272541268894836369216945930997983072166507116002889638482896165116617431974849642408916878121919466567652617198481984242220735879330050317694552255516720965533415295820328613906833918060041903025480164598377963077598489556782888700045644009384474865652901717760774288118847324625929434581612970699428040102544391415170674074395966678708131108096625417947467711478312030903428755882861380133300653953135742929563617319550393009364628703576691111158268560175491813194929333186912659877268685093381354399590851264293328229494153875141136723844187262132879703090239955448546610631675183080194614519145651269990225222313128078859474629944803821340112616164794303931722342210002572008598466821610080016576563177060041905076968754065647457568047671958362664246399728263465413783798527188259511408137158241999679248871123514125988588743152146055316125393678189007134378658975816545086428738668475889305181848737983572953211165196565483273506390990835392261125444421780039621713024701736475858736990058868289398531220507213837284145279837124364969012981835816653864776715968476513613413420522279227269300899388092925132015465256251910963563686529629112451784114416190028690166655807948277751702157064456987788537595277319028315676018153841960867484921838709173420934868792989404037162577083225020258911602468517420183513545908870159116416121820659911688180980284113337733476642657776536629397953956087770855324339889681951494345443130466720659569058550068804375352464031645217108236610477041348684344398955266967173361469002873178041338774324000887867735994155512928826921065179829774594501235677849435214511344028371730318616512793585178425908275942191735124058903155972107556737539756004589400697849586119023203826718227695221378463484253030032227612762144596373223426267247896357291765387904272981254502833371632046933125050798644075589847238043983469200106819612197072867779241943827390699694494217133406554735073742065125030763277534619018434661354275317394434029155883257837159150899072306913501087461648118884270954270499703339096009919843477717594156141191673174090914679170282444792461431959637149908830231969402909649861738144210516011264883237781866449143845361940402781550734364205726086800988369470119024975802576846361447744223043423156996120811944650449642723997273821423715702597206225213143291301740534024845726832129846388582507417949259646591549480136237105093722365133188614716236091577065605291528380644413898344927994528572368405444049257174694081780087387664578501154979686961098424681086248785518747058510963652375986566840968004339488014618719639100492033969654116211767566098724031594203007409948590355983331602343521613998188895514959611237251630768410229368221958481167109547892243604146724148822082932123585581072753315925122097931645803172646264387013084692945712330283200782715880462966314377294692664551439288559063901278086022732206939410110400070248543906018595859792548045675595847783627279246686932092108594164750560914242283213700534895201919879341738648713572623660930542443414972211107190282874538811608972724495609181213659145783221666379929200928629368867728607042529549465580574027249148159510034471368889607403617512559693093579095621543004118260588115292668017509605770448608205013903774163264004431760338689721177076305326681970594235370019934710796783472109007291311262437441947969145432433081782004257292079693448711241558195759494400671367882193773833550065892533341369235993552006041991392612526333948371627525473891565749968950100575672947007629570577867981409811596644854687719830188284843455718561639407022341863281596619879356969378863280993873087253518622463019744791710139348426223906548448412699520190184343243470122956526096799950154367768970509442247906059534085605693305805224425003339673540108450710594048222804232630941598922362496811428421967252379247060151408479705375829783842075111027468362754138586429827229136136168837511491350639475752495426066349964536632230711574690509045574770171642424435109898871989098742829923248450303161217991948905741883543268480417897134284465626330230504697038491366019930640710168772906603674568813998883739776461339095285523942583264620528189965578776827530225797156969452768833178596388594576265866084846276340074836327836710913055482699431638454519436143196921063156212328336097153760915781433169134568961574527094217136331657213051034495061153004912406887546302354499827596529619757524798818080798471762988702508819636485303061843900408948957855955602074709695558932607022089839077873985265301546649083879917382754775395505937486787442851136501174656042188274224845347172318474221470220788710593642353100328937832783958610589093336333179372097365329127293968599367678138918140523992537601512277617236776149531299309559676094336818920094370764026937693593993640232849539273966100295344821829451539154187588869625917230986999163882246206210016136600989866693625215993215769214444000822623138136659801180835319887341767892480694432974923592378329565972801574642259522041528157309424255109524461437815733901372274598274634520639259654722693359565188339714157225554447464771677832344131001110012486370910349797083111959516922746811265738233267703203083864036202997295929760978955777368870181134745039692658111877230147988184863728972489941571119419041625033551871076292698892696523155597415264914275461091013859501624986821535691002093674672536596432737234751074358681232514296156316525806834615406224995748402100102258409717371181914660453567807630440647547414614948693686584163765928796542201305595483558661240691484591648021470741541793784678007122946344805996585122355157255873990092782378213407499856771964038114459063160554045241131519170742994670279245285399530276605969274379816800904790806993809573491727565632302911395764916645789484692623933525660465556455029685424327016142671299704798479974453252009628437535061273596463321130340908564593030002435607991382964391225174179893266685899326202977262814553265273728330033414474727313222491034700525942958202735553798132763761475073806622023813908575878807237822627453098337099894456178312133631375551410403949989588378832650945143747511564890838775512733931679626285028375553417690743369319182854156517006634322790509073841743023575010687686575574386231439939842143991399271068631398958355985728676060074672976468269734958517493755471215788912642501820831864214788250219832419095779158120247442465810929388845807186508800047261677454536554695009811073555539820876607132085288841831729311571905148308410047274655432304503600490418932393395634565503471435563023699228611374720109766380491014721768657871220294119333583549701407312585028970389984303195143706890054601897635093557264800122750783275100645752531753920390379780723547800086255608495167901221621603882848188763636560084230926260271990490673853295980864325634016414010300160147883465436473632163912940799266421292987677310738328069850900892270163872451008491789939406018840044816438465381750593243196277349444080286190609293253991661250146576176664431625224442060700556331315206324935996922143602652050236940676921458031616154428602308615882475279127830608054102714665490234306536243710806634965554832891003153763411048893915965664091154612045474628072618202388328436110364970750848599846449626358225730461169204053022627210574802975583015369965960446413625485950990509958115971686218013129290427252724252953580626731970562762391322690309613813174393601678982487279529189055585525118468680599573293390820322229512510483895697148922617338189136503782840427890461474353525811792292854788522887525798606388403240200745707395851510027711444962180054380842061680405970919355969723250022849372152674786633999916749375707105181546853508150859173756118201640961040072662233866762127823735953511452583264663316385816006022602345822207861795827947025083969648889049715398651821970571707291369510749974931878769111127601683956327342936125841174897910402099856137590458600000693256376348547093745763996094640752209811110713053043139374664139938929384315008494379135649603771229670873340290209902640407104743444778375583275619950369859393883313316738592148781387452156875403372623172159409829937272087918316037767023458553447401950059429481492911232375260306415086978507681495976783008307248305860647278787634334333273789788241824387141856741647046427977277328489903584615169309448590904314385049055023757455368151359368709098275751973351556298770594362661567981652883681900509875802870997979548103168080769211388458744962422458593739008483789494637513232283547407691958014856295356952437541694599863654959006874178960064962893214973678691272472536234363812104450322295585141854589294721964163720869729740849592925806457568199920652548302353309961022135340780081054380467384822026349830954640666185135832958940915887863366569264361576736103136129677749617769270996550899081290868932952937833533871717956437699983325838284597514937361154921840858066592599206964554880277215924495407344120562951661444386030008183575813585221277262745588737117538961791974266938458895199246336250552216502510544799463163804794571501099058581563625876290492645185631104501849638193697620568155604211390100343658588234310839398687361215831851733360900384106749411080234815569016770987039309481316025504218962675970198319100162978893450116222513795572576105569279116782098733900670533479055405548303874468019008484298794901104081065977216215175827273283973618238474877976582790094175966069675265209763529174664573401793118988957157338068650979398269513059585816552570612653517783110860529410306285390240410399287031508983169591213280592902386602601948556763043848059581714076563324108173014122680369184094350173302239465555076217329461231221799629623191156655095404372874860390071998595769272277781243292829461548609972851515924760565969391239505903559519680189249747357191226773245943616386647480002701428257660753291343890918694405004247888834707854173445492464673702939153319979282850834661900166520609386042164455630009269907483494437633359282530771514000241695147249215158901663443317829822696476274325338916534982277532582037615749269792979809126904958110185346940549048192835830936766143379354681481666432595250470614768856531366121955703122641426368730105340831691428892477619321273642552463165845288913906031253715003996362591170884239942366325282876527347065943041192088836990035678806443918449587273617917248487329298884864576612808649005975354961391417788448118100717009911396548030620982026163801313916956884226669168718113963421072797088312676447600462523764599171251429095701966185401749899712925810126506213987343533406501230317815918854887818296682249450322506121107172500308347106125330985829237764886264428058950663514296682123646059837566112718417940150184278330803803084655283709738969006561523688501934885342291834330271616284462180787168059172675985352778378088594109517672918315186594930718890483723579823035781643419992831645534150400951590344710703615146583082597951647401202582560884837391472626881814196789816913096906885196373546751444359616639706317535126057662366962222306598797265728752987504730529931108097377590138175026840408188032552122044852614846848460939517960464977213386676164892810597039634124516303059547555903300012486053332889382363823852265858226414586806173257199938032920658139900487878874929133182202411024016056871841926679813352491281971233298870422207620590686025221664950868944491734788974595424917850434404864977876550666840673464009425084463187339191271350440434170256469513868120829942453029280742893401781680773795898201174929518098860990831568664895791934398151029859095560516462136887507052409732876357902747674111409383811003803421647011881663283696939546177571493902939683582759295047958067016845844378741108052978475427600682716745367145330773876465146389548742434772500728200372279907871541230075550778036751756286125569393702209108439458651375985742688874129891891937869443338767652035532776384568970339609716169163956104076578329174818061803908856943963967419482722569550500213985029264276025025913421644586180039824106165057639181599499660178716991713486488118655297250523450526087433757734057154423841797853237526147966661784893215025492250533412634488899510916682569258841415945069801022251665978775842059427824600156944180175108429653414394553967038383490716341848563967279657911795854781438888524300963969579303864543993525968810846354377710060326808871842618494984185048517745424058539291437952115871878386844605824307595747501988057417885688897725593481646544678925175990939474535671920167541702556870612121779987216936581524081471071432193773089536598973117533316508880872155679052223553755146667178747288453830223733012896533574940619112824672889587896595967208695565438679494897972430751414010698966722942004081512861465248390860171439089652737514322146058819196261677905819379128043884346153502909072059680780016879728223979070233595453185222159910473527798085585755114518028211787761833609168624184291140227224073498195454150163294794190622323354205045765772640833403255196298293005408297088152978609455857857161164896173340465426821068461166280913514977616619746603667478547880793768353361048644566605003447404984813175714059949173510871525765629629454425517148271296856258684798530164943897392620873646103992395120794992291155541535545016973612796266943080257829121910660050556753350568557530905008367194855896416029958324725812533308999522791402726293545763945461489334287525823352683190100595455052484705137880701976141081731101715270119923481747406543799940168460193474345053746810233780404438750136178318787568972611256359038832122919139746024692742608465250412479169454709980091827242503829878410142845947811356227321411202500838628938044808207296208463097212710129796769186580631589269597784435705735484273890457121687755951448894610727657905026039734073432276221641980092220284112870637827065406460553574233023292551906638037102307752528493723596758757568034247675417849998871150706474733432933453623857769987749526266933673616383286644678998308146974708618256249755518374608545137257215050957851556543805242168079474461213039129671505999958839396787942582490213249523753127733844969680902969710018570889429689387101876795353172526054462659598846960038997603461919836961102909685953685598041514495527618754488006491607303855213554705326749955579802156563225326709026757711640453514065957802104359116759366744677141840559094673209862425018768993459984497563628571890287959816746095999447286072403043312460340562376364834099680646894379414571379881137546407104503002533525781400773002044860445935845446407978406691821369385395065798302205843562137637849048550747049571363215533792374682842249763743123911200927049229892399367392069494265971228054390662705884383971200012021491696788375849834579264638385552664988410629686194103970986270187875395233096857890195209480478747713205631412780282084055589706153598812260858679620864522723811695677368501370809168767054301393169912390415313630865318563607798138929390120447444619502694183104103298962214363033416889898241533790068461399099296357194401941009759604136311134045815312576251808720890305434047114316976388291268074494607917810772150209062711778706936514543503093550120677879797575729684576855522889336201410798416405480809937589935477167164870678491416336020495476141168108120763041223585136896047024867250765282193751070753920805872724472525746458483239038131291583300109200999564340100475096079650906370603223800925368021031400293620550359540359314414083031848475196845706027733700065983421092002111369640030525448085962002693109746900888593476056948329614283301797675726442658246911278371985232423779957271859931229351585640492882175358093597310817753688808310803530829533586698096484449807203797775316280759483739660782137523217173090301431443140093135724376343022245454580055264041731352131850171489301072082776087906791137624598473941022802268782625082427829193218585860791037322833913553797999649877183307288012511344782310931978252914018705193055299319436498109195831777952930822166825609883988865574989026977058133652291473918458760081663292140689828801273469234464840767055315380667241039801801597307917953481102659390252493029113351325415411500162051251223055526764810252802478203970326971348961607596845791935961744342828576089240861073216332053727615364334430651134090858859692635904601686416153052803406349773608191690543345156559980725441339294806340221881388438893988049586855428748801702718212123749086676840116709144404251578809160218403764055549572623936894055062938634193513511882864413816544641748089149935966662974692842411978564072436046473584823012922580991648247145492267340393108111249215786665756939636145735357701668335420652900243333254423802400770230911793648044010945584741954682433989605856118927032781374131001827125392312967938783424631627749664596742931829986051316414120052460941973292925834167801166325013066860417165167326842837415759121257230468249955715094885764189336633722408289702178879180334527854764260397588598705445638026864165598800294005636850772727036146994689631998298077966989398100225871964948975328260460532259682042071046484946448115453457457052197304886751650497497037537951093449612192545160235239808308376341117926812534721132606431032873277238955310278296852836351354540579050248392382425222162818171222126135493985265440927031471131272150307516425279061712140733508121268698799861813466082370213771960606600177444651565030329171518884608204873582455833696991116817796928630246859528960768885639717212466414904838289212906306789039685829499708890352735552037515044218137952949341248639672724318493858894173937814029648454897954035941332353968070097870906437576132626048361674395932944655680757834531568241741078046909347087331853637468820895959359303703627685691966871184341648144294659154930098056571710733273591238477271661697557497836710942029448951475937972180382247645525368574873247000384781359833555908032110501652899001602288244063815377782004782684011646765317847590786105743937196779172017033884758821686397775177725021701043079383080307283386068944324030142523562950992688490736978604665018737592293235542682620931078064278437711800509657517358607629363808397898795048231515339024377625217822284732453803699452053956322221435031948946053033957596254759578475022338322962433145862952535432480067677834406014795012501616543639222580719822421993099299531635605136612933710151223347395372792965668715611201354469929876899295014778945372510245866003253956346457096111313949634130424938931500024586134995959893323104388831774984133105908462517325832069897438801862402201339234165945043660530318762679752797107974217240411110516477942006880865658535927172469821790244976128608275506273924370827121124145429621356811478105272526079732193388580314322223048326045144582852718169798566821362949861632370784305786046413516430814555581713672081467324715603531993479426565767614777113487740724938416203420466832058361838688766125721604770868894535018358940492887805256556097655962511316929135001404926386543684163053829283883034986939902473993438741673573586192610798736323815967937343284971815796268862408200034985587703860426660307393984671582584499683030268189861169670888879823961160661516779124430855602027408552561132120038028999028767259914287664122903334855442265711222925387012237172298857547989649427501627912159230459175152008177973912353897468424947113469730276641339001807102341157309085818684266424337829027165499466726142514672907993690214009834329228485669345219999840023594738222845677916971913579972824729350761683214336630633201820295943623903879008836019024932542304964717779824409846410817536938824586034223288240401069034482451033969629159010281070522468521315968490639570106581248946861244105722468194806289019576402406940576128667467554071962365530733079981668778932400333453011034648267788039520093449235604999526149299188198214033396295491448758919053003245553702282308822169223750421183260445455366772476902431432866378548260721629647823094772416997442290068405020540874929757338763561270833832564654630842906995379263216837020942161784417294887017413399245972145766352896534656838109760002655257483306452397624987421671217300120455563094825156679175013529050610456475367755113520347773466338113532414298675223750425055967252112433838753342081230881875421007851301199370163131134142618275794324803582441313246402570520132484353226688231079524454905471224087215386256370400835704548789331332709822800568630195342342939196402336685776618286755105764948005360862047481174837153429923341977671103243830847227042430276083486387823885481539191829813437820091768516721372483106979288408181483497739786352932544965904052942829353080486601094275934819065743818592764717641631222963652343180468599918048534270666255270369850669041718299612898460188624445903805076575476171503242011875164847017436180933363343358399974971661830302819606506511357913446724238290829026748946973107246033646844415843760827556241497261295260591693264122555946045429690594755817604002080897405201768666859337108294046177767488423043482625469546217370517512416624586583823239473546136980060886405872095976866566790186029977273641331120355772256278330228417590496938933845019608800759798813187917203295140125134024247193240605015028002968741811434300899266364339402078740598872447788387311400935663147971717363072525228372321712918546777347055729861547574815094477030178644034778344473849695582802956212190983866551390524714042477441047085115308353591188134198118505059247257513532815741123435922899179874565047838129630572113363037544487852886119101320889820010628415636697987684153011138057312195634141325070395279670613186696224176954834140031682046441686458963370497205268177999419022599212802307554464324724543606519296844277679571510879106695599306733438686367547371784476064829977352880853113378105285510871183063896259030304720774092609329504870381722193472378166279555679377693578710579820782107945825250347074948306862459591557550522112837457751308537372387359360303456498368672544948289405829943991981447855608671403599378039488811495301683799334363972521662814645549211479486447816451184981818447133437879848999989183860105870945764588872734937317849012197079293212201087674534835182259482332017033569080491710455619658393491022318867306576052910733795790297278544474820732612522601104993660967584967216642445423548088617567519321744053852857028630200112788049628179462762316212120489344141936206436972142144357815433619495901870865269743746970943822600576661105964975454009649236275167015612250910406073982759876738615318941981631812967949378047901462185970338377802222754665506079041036485762274125434594509010638123329663928734944699971727285714516279191693171040117367560352451104474086177286040861983001412036293657997303439290101975252097614773728946678468249257655336566118062140071639584100563789443093605269632802631381660861209835687658597251564565993369769594392829726028659613810677640081263266685855838391627794027668719710865893422103181116230128194011926636213755916976661968857961923116369185273097137740540101055985738102568064860807496613635035957562629494332325372146835680025424803330904123578943755682598522243907414503296698075195079155032721243202219123084637708912254213113391481717374029691046091768254723148304910916644580490543525266747898608341340765408117911932398246195455977446883639235591206701939355474597689181384237439213406832528641239225649664216211378412617102853088868496957355547541770030327558875712989400025654307023593511168564856553131472317918867819082003165367258209935829912826765972486371192576170556595040279850350391995129059971755047135109496351617715250461786354360560302615957943433159020186793696334963743058688880780385841857393694024318787134600667681250426340440692199308792181368382684161706275703022764725829838613392402142781621066341113237988553958426002846726205437457552620325269105116826229627995107167918767117763704100790001952443978653900596489396273364877864877249713493387188986573695800441601913567582693873736994826654170138226207892684676130563048364021012069596336339024448707010650555648696519427850420123615243377132930306999498833208430050964081365112892732959184725085510682432249267936928095061655976820807729594529673799472247149822322644403740866135830381991965828054598347414030026918363309992493375084762486731727956735197832361132056935886974039956149237597748845159448466228674051942013746356932495956809666484376932397867707671129846809322782948392502289343379210795589708527292493651312427043408305587586513402213947633517994150573366476267349632648146814042705247632115980089606403594479992122369468208290677521235899966173732157110217236298497779749661355054728250022382434222949199998613954732752204847486987478635718681723629687215432188380087086699110565418045879590347078462396984374781621324570622439710705289898250612722313353090273636715975406471190664893950880924645624296893227852805538322026284781868356501692244696524176430507428178747588764502655704334287351758883956463698754820264801348117833301542076968301713803076659753848042598388131465395813066209428377883495662485245135087763095294794819677538995106741873729568005737094178910721196396492877486696417935701477719230384164649967054730204348624003895174498276127869115964587453891485272531769503292706942067861158943655383651407717949825496059904798181612021144005470804044435230183487581123022103660773630735546146760812801845530188366668635861924714552476482069190269373875643384332898963946600030826837625284511737533193844878800306120354552746215504964551616274963051584657118756792774424949090887917273087834892212619910178891298097137909304804194682116405071407988670612419677809009505282309949638724287707968464826369408509585351128293385566428195765166015268730612059226368611300743035528854526216241232441318618673109517832681629077884296783840730192262203497447528989489682746060941139881513664218286967141840798258181773329094471392285533029502653003393363190001524822492267751581142588356223821494861297152170210937811793049422031232343622183704212791714555925551452891832957652581091627376729479225924759320837952634257768592535368115621873404772384689527119238884256763250620800712045154183059716459302020847011951429546393261668458793753831451832126389046757729641815411379158474610541398499394397237008416154478496357974461001390222322332774848099713957082629675443689624032872066701367873288503758031175930634268480049476011637684808255360171155205914045224315110383404468925917620331350081981327402537352767875850328861626700547296908159422287761090903903913225829221226130774269255913731590114633728211631349772603560240788926253887767698232737691712461846306224280162496895089794700491498513232928334508447127623987342322658800878914553250524905749020393476774794056062029853325178759868907492280695979546068673792923690320592069565578073766348107056802853713186729575301259262680849980463883561751216339427343104289966991720220665278369992703000099042986018973764496929152733829111757577557521884783702623457328616066807311294398990265495433995755004694768502901121083798794245493968965737265195104118535362074084599222393171054268749551324244984491262368968314773670170341688905198111257931354607042710643589249037446586478313245050841521624443886488972322777520552222110778554647097784873277349076254486714463319802648637879323533496588030741919322760959403829819621551558786911223127991104368829674233731145578955196837380830263017115942825911947147658005205260441566408835646672698525197473611217588884785222421876847735706998912032375446419836096818888295556362398527862489195720569782447680686721346579298590902234611720160757957471817859624629627999790287106721170856933197111321686594367310656311573726793534384182406053104106499167826720139209792926744948676324179172970730730319539391519684709804684266785923643049218208502366864711281267096158438714619762120791160496934511082509753389171779376404114371927456536629838098429224502283979412873539673353831126630031573410935136220978277390243267440661890944564699413302078161047147368073137408905053543331672100217575618074856888185070456552899961276226082674177808964482261471575550511040263906837215255739252731420843159393311507020532603246432465520596310555013112086014449409628197271870983731172289145033818968079025791254883965579532309413764746321589094044105408828401214231535111200345889495902296649514688554425919349094907183663687739674796667599264851508898004699401692175770604392650789577527748371754153802050834444116564367484807305876947863506407981702123085885042023228325590316890714641367478837953379519777167367445428097944801965577331613775899876194378487736204787926647927230502322301469258908607025101062197649963808275623106759773765784889763977494042278301468927457878104661885792378846184921263246028200402111041500812607392512740361408018466245412920811587504400383014601668014885395867401668559976667052054081832780918395542503534869624455521440827482538815218144863102464046433750153239052650434010037336574385380610572927130361764754477888923061488645828246754325544317489942983748235570794167594912852666067243858877309922745793766278817352691176722299296100889243159907235980542175616017087038142684292783069469752646929236143828616619085816066573134936763267593474991178452598888623624261697577111017111684613905157341716981399089254795646766501503675761682313974574996048070650686596166273211480942094153446435095920817708837891894250279234069118829989028310163625404342947837366086307847520314505506737359830185060616879468436731321651304664961091056213606160391667701892918438448390480397716563341099971899921573792964249575084492789918360210562434643069500348388448122016739124383745561087030044982873693523833112411788604602560475577119878146525342708185677426312499431659354936421178797795096612499412207499863193045674176641793129068223732856720397158315405583202731483212754245364718653033657704761484010130899691516815115547027634767610973340690121866778123263832789523696960639030404595988669275892747447012236762572052526135275065984204634258719148041128156704898740523167806804243703761472197313569742647415840890283532154743650033856473328121587917117904679316863508496891958700013301031940309814277356366600292297912852739420238990985290343645930906625238453667086615009827179669190214088578258558244155827880562485713333455670217658114045486053739500183787241553250403868050973776770160941192056117407113194969392496284505309829581415976857169539529955057580701644800175726921301269499740374830188909521753776001393954053517985400486278727389506015265502092551349159710118407019530447906266561312057943955150528537611484973018793304184728191518444161551600250408819120535603091510968588896451504927141443004379470795568109032491707358996272357962703446452416406573232634564506683629356127717098478394520123068274189211758341758961738765848458283071818099263466449823330033235623514744506925491568641666349013277420395979542901192599436106753754236718348042525787135912950143991917670768380448135712148535400664404511071570443802140436981725040524878485936952263058720220176241500478337738948260854603131118052441145942790009729574075272873591690596753566026333492465076047441337044424879022452488683594360535596494587551663098382028778661945693178612769077617573666957353081867830820565540661951017204812872813247952569347867110029111452504164452364716018808228109370764804692546557378706854007226082388174315622713501653226938034192090050207422920081509669799018797351237935323521021009900652498396500424342276831128771243287721928771464571987343535728589668619078606377192808996430554603295328506544497223815252665714744756828735847770849609043100949418167873084525007253992454861658385166633943440293439968197175341236355995648698939052405426006874125597945301762658951053315271870263202303321302830127717124105360639891500481883554033191437714489663315103371022931712318933776156038338345902594272858152828214208156238813168787544877603104121341938119068575799458432111679303106878208178200657534564751656862608546612506684289135493171270786137846308590721742668435351834383122829782693170508575847646626577780337728706851495064761330522542213785836102151009040748742887812865461673740963950113901898999750273655056232030446474617430687429689686401561877114745388886531734917638508229376801880100359886076425055402534727556690732074911169582783924947088192067329400929443770551700705986261985362649615981655065331894965818340769645316832854885697162548471424414722459803208889442927321783369777901168847005917991372545860356596140104283230112435425106744908297355137977474803329999530134730425423445552281681220458436120950726905433606181888161213205610046669718867365243529030763982194960278600039513896445963617959309633059307488479268272844938729283521274773463336547564197935301279155093425011778518232016388965332401326887973914075067684411410897770882174853031542107064980477370961364369411674001528659298825577924317856906174848557840998348353350059501797481806338862203816035035132864956810035295487760873349433027527443428609204939446137552732466434293534159254976239447041692561050145577916745743588200618866233364136972692740065273297714570371264128094970924226554009971345729126939855094374023904784409129751722282143766850736895792833910981123788675397604632352672715551412970788621508838468229395354713836795080762245947304430648514303942370471470807922437404513992514373645093162690057472312437388330447717038663769986364199680825749838370632669149352086516537024498248061298287083415056140097021196826943957297225901972175335237331348649532199605762533896083534923646458365125094721665471906050750999115858419689736642351141463336252770449314981381975242371303777922930951841505612939173689794330397751592071708789845159882071901435936021667956028926632602016802480103586857196856601171850376136498359901985777202480677566391830752255903115905457104691905996230607894433205300105047943506046296959625211190728571929783780473292562698525161043562361377008758504394072611071278944268721984576246772714030789214374799288137887844093917407504026246955165048408731694964310794048904733847597421620620394365197172202464144745559416228597830182358046365299615175940692372178801096371403725742119483776454191975090165407239946550448899802327696950269220953706966457180266169638123490721255323643021129631248886331121246746713971266477530341833400741361991873347790966408208550235851765193134229682435948296529176871016244741036853840048599230866168783507910219035806084804661120294661586427771560966037766703372961973061619236523216288261525029629684703545777084072460566447941144776146632993513929600116524499419915482115790016595915935947881179641701629046342053201274536880937784412831724586530234133523564185514509381487643832208936157235711278492232204175608463145644633586300848043156895266587184438069702114022173388659300094606241900100225277554774739168385025572959990868133782964662083551210924645885904299813841690453621718616612318432304249258579765219077900492046325988860215251732801008357479938376196538064852717005226934902472368532487187508718221622659847219600030622183471162956405850313544591074344687766813390602307977108383882838412325227876498653177319085393945640986868352231921047199994657148821603700474373612049760393107042057366512914604306768224206374159388054285281282714041946668565348191432179757306815970064389286458262923912557769498527620979513410389823146443512099223723590718217998048822649510171949584537826404047104609593289391866319173947757851650023556591482532587119732140776645920357035323721858154789433275195288256569889000609668729120298845793067913799205424922413124188577557717507519426349181980467417468326360772812884302858867287015476956200760356420551002196018942666455383251634863065190117245256537144444488387617452807692549607479268419501118817174595865984325169219376893596728308834335174984920985081555861392331926980998680503097716869611169959393051126722635481839285976816448334214706583371106453042886139380880770238840375829950006876871625335183890387602859566174881396104685845047665679879392564526522376122869549120962533869305012728725122806875665182579385510505026263393666146307248068136291177153096763852783632050648156386179020579760904233890956509315235739537945535158839298372030867736371590301282907333302802233875221665658599172265260796660627141339531239807808119237922771853871814211686396099093441264506575033247229822038899678996645922265273650879374793304327237680221648287645222779205444151088472189550603482228243708222150411499104574180135911776154436971533882433492608690985969865563162028223442296598827958080083272717044888091848420932698830858643206965835785623067619613273245290369301528441551047683958073842782332506376840429926408689049313897539802830252440275481658879975812266363619026643422717227550763145126619909861275363566394423080839140972841910072631049158535797025322582230170624036794989151832231332491823383771229415943347933434317000690763853086523369138863001771418548989965311646126102922056743978087514751457822854036411481204280582084311065682187409036671390934764277994171161616263042348256944040820176803971437207102697710263795361512297677334631501513061256807400571158571753397069669159707745349726535801649539597414886553153669362728282028185452135809723421075152781161163411230908770496560058047282373322950028180547373397833608389432841150845993621138846950910212907839837045533934603160712353088379910322817990908057692390262924748944296622644447064256856015199903227940343745200034341852984295126322214675483767770294386769870410417648604741119261072520826732287473481816341722027843457880723041612099198841518641389392284617646848683133645659860946741048678009989308191925448456201581255726431297019698816724588879194095010586422623911863504256708298643172701104587011830525603244971197203765289912126922511558699431134163723118984503208393273643273300877893353546120324942434384358410274207973301775834010138756898032570678650358837275097119423098677984736683223554106509424330594379497639700710206066763723298418745384351712468013659787104151717765853341430017580992757945772830852602966229731044066060110819939609521818239159773140641768499732006468134188767821857310812491385411325233137002889072573055543220041347336942060233268579969358485732967761290464538614722754739503171599371720134824669165210887100447873369464144600883786610144021732675446605686107783379109978999214708722380847661047360119587680866325284724715140369185466795817527657345152860929092857341716829177304098984147626487375802323176910564135013161851020479994474408200144512046433807922868920291721851430272993696040247433484523365174580353428434052715040320384612785698140849899230427942562905795729578249568520979282227713516344775201670607686229035366413812449464065599625233921242060244558365057056501050300263471133086272361336435362729559965621553922631322044307071985190025760025812155656198778538979578231744126041525583394378023449571501166719238767329512547599015918930288514641487030115745541552125250444511906340006430037456653322506433946663924987258641386503417100884088936983773473118695369688609122403610616730368059498788766230734591447905556842662702041104693547508750144720885792195738966807912700849875200721363517101297335237905046312769374479551249292695834983027077619539829732987190881124984693135554617955715678110132482651496884852451539484264783317069488741577904063629354533959447376702967514102286078529572519489410087633296276436437063061244924094577440769620053363919045851708568211377792754064191794886984536785736050966494824581520853385178414223110025694713329002298273123335921068005593479934550913442956876499953113232974601228448284255340604516582930179948652631677490050637842406058464586747511752642255457438963787343005946132831224057398234311955459858267993005127900616784824700242142232148142613734087793066236292911224521686000250573177635428418371371654511904420127719884774456629291653951290768304207749249540514566333192417241042567973518053526058558411321607047395988961103622695801554124244124075196648177996685282485790938763766226594143502877234992703826769815369166015565797368418212026820946393324214505110524688608920547089874516459088443684147759967972467507134571942683242542834948263864501249377174372855041628247346435550014034118523135297930543861925476405292275744068731164141695276866835085883714513626300075227008718290475049949687762722122840758056728982784367251759185536280949095336048794488040726471826122778352208598075894591127357211733919399495406114842198159026089152165630741726613801862543540384397200743703917473507365189095900101270723139833048361697515737506911673065777897406513265375110682451477853634279468679607252553033178353796102655008459934927340510734283871731235851595479843429968341852562636389661318386691420821943009970553699907488075751685249415232396342951608322219213946533468551369493327306456761016446389382629278739842483394724794025335779634725534434551492766424476411330077658598023819707256250742478017997257330877886164566789660999396826216414283396984819771524293919232468063486036251177023522728416952551932455716181182373034212625234122896623608569949094861936321510664822151738586340374943862251480734021575865995770742810524579274831382222117291914233713643795483876477126043003614189662735578576472793184691826792007496781947982762516352959597165329799450279812013862433382386439407276803070636125712888375810949029996497686242856433789782963576264211499169406722998946227510617618547079127341592540219374668727527618864558653735962261580626500390677578228003953314778169599500031410422892445282190654696030225004953220547845398821512476218804625866843916417881314229197274729645551786388236070509930386660743352633121871069496513123174514568826780562018988625583584027870131321415084856939328322505002864176320606033689866014388080065028120699827324275611560074155456727068960953784881350167824478654153808671741145083641285739064170575973744474389975625461649040521496505413916370745734422893632167411245465343346815430414999790888575868609893746183032285492944216453745760662365011019757040864549445992700729075048644725354261224982145964278090739977874693824102354529516674509516248910768449972659387540457888567863799952746298002804404422336756676546101230809155504390955231473342741348456589611850547273771498010964035279712338576686308597433691520389690214747309328725898934150732919959434432043368785659566177230300759034717558760945464667006757012672793781841586695753543930818891060321316566219574938338131550871664932446847097817745218284165746261865514059056544547925937185261458412219445908803080005059371970472387567754019620367541873946427653163535089925179166909127764443923117982312260332921141909341370049216670687118750928279116301572076062342204007481551818083464783721248883207323406372236199671774014226870502137344561195420546131584602611848424544916099374920803702836225789685569415611815406432613536506376034277495424379718507243890532841260682020573820153659445088746583846268424310351228968412886446303286088997787056414388891720878442174753970927054362960377983087501804464226314112693119778582909277426376158013325843434485187997083079152951621250954130854579587775830140270182541347118856728072123747233497852374544560697016597365142364593035961631497324950380909990055775986334366926252468885025089592305191732684305163691362561108412763793193068024379933558424559384527271782132783932502959170785475298386786072521702683186171823025003889207396599277784843841781185736243612958151480989769137627147321678701511704013658277181965793310225398996262360175261688482753864054689246658264125973801334596665949695885840968185005370169163995544812464437393863455335304365811476113085292681392616870949531923098351766283811967792159453059003715785778191704538674539986297521901822705349134014783026281147889633659038612178753787902700130217469341830405317718438702005208126361714228325873771875921831212178049781901046874427957654863908477994972117984745110011594217181505159768698179051526777758826548363888025948636633595088279109177666340177381427825514108508686594275367626666333381759485126334331118462743967780924365633904731903746246115936378656684954858308318618228008408137221504223878942303801399284705686150810819603387953823732018018230702829587595562526333842876807251545032232601850215113558391705884512617366713090845956838318181830977229180215822959325286064672854690435018627054436941457882075415557783478030212654861409872056153375753590572330087637169443808730004112014642839187680069392956684484271411506207677426051002043453075495453824638198027766312482226376136515390820082775275924840203599525820626735165838149436812704172387670071253067492504449533562777695918524428610468833655053447239266835108185410573870607745441905708261366259353926627109855213779922354168869598520544255613338147834504249516785221470562914343897760402952793826533576655182542867115527064670476984058041493212284001350920786249861171188202370106013522837741738416512823284561433905068833462734196133100829742464922531057600907864518155139958744930471893825878334788966286953893925320953001679561732793842687405576001637098169971374491396587800948575463237042419259285147484592405613853440046443006097549179045596162271022162323780964513498131074227046820304958487235039403026819360499609082994493231834447232027540599434724531784140090305392718049056540191602997042670886734691182215507634219376561592761258311799494161948692597507396318243360292828563902228863028976129281554186844357440045263304470211550243000454784715820722965683749057466476650464233859894992054561411016729459298848631832921404010812327423830326272862582398376444068849457435672252082509203265423135907623261082253959016824128877190815812349123586264060459323347997419112994683772315072359010625195198453433740065839049889201696790557367206642531096882089509289645033742915757796125299346244737984408711304238180671094848319428631478358645110156553137627873435499115221437994094005127942334616003648200962581441187295118834203569838029563381061111101298154830764953343141442963938027630300841861959427553250188401805684058403079203295861354119378073718710075468711023237115237750308489129791076016300365635301194737637269511927806192243214867446214071499982887460686132848148148343117943906865214368010391380346544330235748052483547813972164251223874659707404803673863320758597665608012726627494049434469617364987087843638108059792670771160319932208969170973755889074120346028531577855839400057778507555014913036850384040605887068605457944550597255193951172435615721082891393811653330255626580481966788823366039464073895967678289160375246414096511618257603229707498458790400405925552010464377662455399264325235797803629676333746115997410806370386016274022652112934726986715632058943615400946659615795245609321786087469742048324030860516314344757267605564156038479602664031761547281014148222653608416509408901912758840794351729527226877956410276556984440416199540499616360603482094371535009280773329039888043489223193969492658525715967250200568427345516305750628775118869582971066938740081650125293905455262361255393951616101673938512972304542673633958281939122945515360126856693436942450213485763581856428926498744914130643164562724690026858036813793560635614589006816246850767283651750187508387568847731844060164555066230176405231744839855978233751161265532915337252504033618683045054664469456778417387424467340913385414679887242190395870037229448942067782077862045801037171226907259464919029162457279859936538899650243072178053336049604778456589106068644501116907769808225001965146812829249662854985778210333974805134064209360370886734162872407593238376932167840250110074646443042874143102653690760778438183412844243120862069585090276632844942184963608453116958167071888945406939900622342889952536627115062152618329138253375775156791879194651092735004484113798479448322592490056484501154141551969592541085176864685131729613823987008089427965842638109655841314565666007346101130552706726001994895233343744838024138322014636903600714661828300507556968169905547912532832326293977790497556446082715505149660613502911018751436521229551683643429465025202303628157931729127078781565214994747761956036056644210125946314203568186334938021543622070552784656674199413110028628030638689070190082028114801746264519625096527486872537617930075460360480655739801781360734561511156599566139554718893328142146162313939999561133898091095813498609820197726966042609255578478016077061407906138207611029701267929007950120324103792834664158169031707185523797230983899652380183569717498826520174182269553821055202449892594555226727595983520679229984239724828003775031294722024387590574683767782172612684128773897654937682574746169636742107910677057204261318230301727704048837180582444449699620419367470691008321931316085692032841416232567763005450532741691050198798948549226913801992589234926770127217033324819515608090154325329020926415998372030749357309278327977679772070527021984094140662387915432101128768933692948418139278912681228833833984534427449998976843755253372135093732787283040159392918982731389472797948030156578446241762968711420646069402997902702304211218682083870476419585936921156552942430466650473119299781952609511243522983386573935241578680536349947967614164528861156377132838862986817204616512281486470431693392058443749133859294319575402731959112464363936861301333780626012980834785616245280185123771265519653819993753381324674304462326680966207663764693286346864260459647342119841933322691325531552977277205118334399267725845169826983152984679005103041327903599450526356729766515395540280429123642747201141349301063042128245564624394322573377224913676572714448084240044874533822566823724103438660791277626463276225688815877832536102774084686422116526333791902689194825042465628515321925725801086670816504703950981330480699212105155921305983740512546885908849003531868736592911026166948057982481843348148781917639195408077274474260883426564326168804643952585098428761991464444121766423448500322407404997895660942400266242751854656498015465999957530806007210972506978183422166592948534987627072253157789011271792133516463985092691214826970881798071886154847415320988999995783088942218636396592263975567056788320158288498627046243234397164325771633068239192824516411305562455586926562906629576111670296768070156311092781613723912606121140331555224048464070891514462435873693376167379798693448734361963042830242676818553017452728349020514786449343409492508036846729516825634617141931506274866955441013780251170914938079569237834948991488643718655592358913713037894304723153425798955859124110628859008398962164280476567895611208655189704100564085745737323616053598519699476244088787476114171719956245666375908483192187365795804197556119166747105519466539103676251283453510731627984093257648546798369496694096475091818479401169231861230763938080562155992322196153938087174516604610229577006649947005774613821438873159916559502343254300345079500222846757478600758462802261078745129756388761749529592491005719804096149416438771780506427082792401582569496022877528170545867877791729970012081731753993145259984211273324792261217746608985320051902489779204576956441040413633510841367006240087711772382801115115142935318471410344015784562956806347398710758770771985640154119609719264298315017902114751699931429286230502697881721632878394254312505184186545263885245436406965568025301473621894441650646472373141638270394416454797500666112212168095623364960375400665645551220629274677927059117772142342908282578336059636257325302718660632589702667775391483297246584410494538873498919898555122141767095481316638626179450407307268253781669696550075806069012590565018520378531029467267250511348225363817955855614982260607253987310924149117099984380423065657058507426192332041422297134840930464923336915398030497838298503420663626999537881485516753331190338240137482564315565130786406470645899134316008477632940549874711565421186890546062560632487806239981441416734816670925084005451165444992698834910507976547856894031244662370964897669337323584914590684613584530939000621935390267952735121775969123265559999446854277465634193743534632610711213768754707851935195797695839686968720729039870575669380764571778571925406276746449965289644884453111928038114536708782050039862990607759480913730703454701317820023554734886772493119191550360325239051961068628515387120368078035180705023620628283776934906379921913635162106281936823359360676118289556609210407526131382466105729028423600833025771713356620734491642417229057304125445515055750485263743349076741312753334959176275978922469364031830566169635274978757557480282770838668847337574292546401049562583528829630173936955678579211655204064052088180166911613644311519208809055396791631291999425711165786753346434370067108380650000866299820322134243091719149626966145008052115763005069971074497336646820194108439896463394354894110066403861321500278734512940550460422062667820434539086135556315962085901227598123964233612320309913232057556695416643073879612646739121528554115395463291329613947829198206446915269697419564493470196562348709322373614322187517602095183533685538297115463036016400971756531223878012338829122743844015063908808182488775173905457841488343725778398517424687454892720197683126022595356891428497415159624066561227784619534122876305572084672754897628145758114296602468397862616982238002793945796033397243046598091072115575682859974349583009288410863189000213475033667877223955023118663865761026584016997650729800353384155247144193626744051869844635555393156859177984477885033593019505054691042533934224987274472040814065434371598717869525989700046462712869633640116507690091480126782403312995303956903896976230972017902133287129464020319564785770780098733183644314399017075562330421069163971100312979580521768033531850822010818067530333752564215010178649946061568361762946449516340101312854960782370782210756760021769787305589368602763677060599203677325257087374542442910830470402593990819558067147171806374580027319058350770432977519759763721302537396161506560308950499474289917190402097069182234726264535145578514980554048083738559755447696216182401057239136214780311976492943305693566455613385417335816190028387963756563309264770013438568070884806816634396960476796185482159374517766763122702310680448016604339838614538527949039924097764631350941223107938611524868339221877956047827948591887755960920772526639954025626600883780618927508184552748661901121585769817923504749156911285533461247710252376941055960224491631159556519884300009246240807662505897740532047242896712974477738132590590191874521019509542472750627496285671222461142005370680656869719015932055929679897142467257264874921620389459405669748867670666550364833660909581306340770066277439158338268824059570618367259113012375804397420361858666333791586799484968680053792034975512710410605505353585750776119122357493954760780023440121895482525061969974335304427724107382746963139784918149897041985870938665002300412217791585004469067982581943065215891881456855256612324768788166695619067997582903551365852268128672296716642866321033455503679045012091393204179935134871111742893445941111675468085199213652270471366496460323002002954067387877830827104061207648727416818563420470768069523376213480065075208022966957015903499997165645967323238846703491357362522788735476163321730986217185693197533528732083531657287656274254739692142366817001883449333849180559332317138592013019602466436307949536996640708148373576270007320227020011448240800439703840070904347359268544686963597266587970008247037382836442534996721626858411152407610012799404502052364522824384271711082272210567124689923266787523103398303452398775919320541273698362725537128566411647231240586458906552965679993838518078874284507698917078629408422313683550102319680697340012991532733477957664204714687760099617917189403920651511746406034976114568502512786979150115131899770533911494143907822068539289319169709714515199004266570307227610991518333315314163884839919364170994951905482014140088179867690214876069244002729717777227392683643399287533850808370378138879087306248885213454251781224649016986925177820854788834098255422700266206738036702585013895762169897249819781679037989099251452547570988715186695328267775102186917520668851556441480930211538064529174099086032630011532343088817064355625745816171443686950168579293836841498829108715688069538917344340870976827697591756650337292202832670682110391384813335770614908525137070948601916646982151401617003489448505234253392871565003562600472432598164360861169453940258819505519358979527622984393986697619961611685254807651407904816656187454974970409272012569297132721280347960271768380412121176105557397473935807953478126695301873468201640052785869977214602254692011775885716493476123460093960508440202816738203241437664691486239895249315370170193285773765270929728697852560847238764074401238479268300802759910093509347452626946061252400813351789329126478692778257526080597981420256757658760031492111398125588656992219803504480937219243108130110729193673532151729713033125187056355399816493153527652852411723703848870856924119282501924259490483300694009989470062843950282850011754437071997206315206543013371648497156461007826284484311308918578157102092520596030577418095866243464076163179794839384201371707699723837606580454310957799829635417274959132600489928545577564200783725341987743643017255911806391408033365359122777350478401820866861562307402303094727367750487145288333138862180817240728595366830276716839758125668104375476686611197964811663581168764728948650143889645342686336837154386487550352441938776509320337688878618163975093818195905118974885094491358587723151706366211212310749990931698342452166979540073127329190334465422278240278561718268141989525699690268619503634801439928718510688951343571893312831323728821744897613107845360014363378013012642916219361009287592809428342615915696629608700803789627412252941903617160611494338403377198781171860496909965234488948873942127724136001891109967032547198058397657467818819613674323963861331970690714394688502888066668687539458645941524032553994633234236491571318328435589122667729662642694902004296493367250311921422049894313758923590542329630281138301410818240332653172986621114346332393555642984072142118733287292123772537513101830504617829561585860313407709655702384805927165471088145552951426546300867674391899730926174537125179904040387365098385620816546040799955710363559511563596721743360892869656812471230187251003260378527992236782558209745191059583959140118025247687622614857699383721165542144421188012605852863439588731904241607440345875824636233845124581199803774749806350139238475846759593495215966131893210191068377554458077915029813619162669926509317504289219613892107474762992844301404243765777743002711110105385589773903125855527210464570981543907320563765892359130036463414479470051592571450736848390823631169513836977436827972054911450362496162525459273021742322364227645393455755457620832877052338210123965800670896524443931320251553786806817857661807630668557006919644912664915644776433401876825669165562484111187820354018007357577819720077537594004657638950449433388749114025533288855319865680108814526719640238049733097472974638701593896277770075047067037689714538051931123751568881275705689795404250867882049818314612012604156781848794487084113307542869746171760964461634677480735442597974729809012936000335432568616776690059061495537031125865176698105817713850472360018264260829901278703248322955335258563228981812543237117731988116205653343230202830494491959277131136270087250424291271994262603358846803205089702831496336463272498211520840686702837640597085595780864032483589052243350985626029404886650432927462513609911983937871367075322486122510656945107703302382017174154201714027919091377149766137471004401811280072828650855875146390867491206504304925579608848426347398012742920325492601738430994657816750337195887758250792086332814520480140425097798525557126717304908383373453139543429130335617269787499573720821873503299989080474621382790989261582018491221614429572376929087615341853289676065897328286551878610557535675870504484500180276676953019897453656606943016405576793785090833154002421396673151133510429252728015035489495245229263264003405171766418359397662346815815126262702901650571506100260802659871527113765386338722451703595440898895075777528082591787757926716944239325832394425151280139597660265502624209190454322179241479248614693061027740615519240314587435536232713175108406237537191472446641291194939553527179315696481936650122933634013996348242843215375035932930723754628182001030368161717509209719570501354071316443955439945244020488450438100642589814643606684155189343176846995654722297113758820406841888964461180002690012311734241116826946940609911336937875670486979628161742847298792364654034412725292538213901611856651011113461311289943078122213621298868910211887438628613294731649714942344092742911809083846129689638304782514150638708231398567688864605213768104480565377624755483114216465804612003808728835129485783513642514817420268258991479859237696498500592825144763230493764241276816300550908969086405882760005443907930510593186229688477667832018394272523744881462200932298078960277460285699648717741415673856826662532299336525097150827301783436796261375002738233542174591872070368700252430848837177420313879958121590644554027164378096513811420875055064877187087059577300707125398465442004092342072118706741968728122624068660929538568273727160881334115594620502281218673407503670646509830299450953451715028950526455702987187523721243132342382631548747258291466585452676608676694070087716590211776319921136532986357974549787673174138702369561600621855756314700575545592834656197004505978328304198631021112408867336671261781621654142643605124709749562108796927578840531671449750691952137822120968241533825507135948967278242665339772322991471857629775156126600890967687349672223427769348962993275821940352478995319294012736634663616245614472334291317651046280575547543120684207695553177530294814723493350462536301514163825798520564799017467849041890946511416234747135287789097830343125709548229780648491831871060609608064534452376088073444036129642864129554188504001157972069614064205514267990140610272193808834553119935229017248901584018918012720823012301882094799762813489704502005913566122919925112393134189148558593802413313177218648958974769581708274352987812992898803236589896877815950026916406569424192762835918807587234602505035460789588332653918900528083608537284582470415100797800751036537345564639368513174329398036814310697502222129603739710597409903078129496698979555797777043795558052361675103344550106044244964841386731173666811643587559405451878803473735124452272038918255213972591760870206135314900762576491406617430344052273575583473124373731661855086085783191267925218673494681836777165867428956555444105184266784513725329604752889680118477390606813101992441436267581514963014416437019281136686239863973012431152577013403507260763095216798104555901982614279083196394625343075296836582975458524136337722286355198072975743857890733317186365408931249231511020171124566176130930491533387867979436297790598945312180590976298394277340226861741952271423131323485140727351005043050489534440129415788542147739705944216775516155466990988302023111624721349973373573686708074505138070988209116691515528200420777085224205235295376322096192545855739527652570200561618701943598896731080497355589611988851096244033902567397621184943980502217124289426803403223588908361349919732090874582693758339476050825630117921230967192318725521330778018412334187402651023622774050375334488335419005973803367958917378276195424687063757171696976952576451973486677394706882147513049389874636194845454235547855511517151908658861202998715323470821126805639594058015112738062457013151149099459159059162343543686009546427759215146737600520392016066981226197886207760039289236638893870891736393091726805275890530331198724387120898443669456331251516389341585540001358668719615571636570716683626096966001533771051965999879437285741520538007883196570877404965661911869145052857288126606198835066651199854786017021062008280377627774079535898221698890406256848723043995973615999721423801827729653228580019523790696991261855349576099542322439035729858783417547721408773093068429542033682037569183139169011389688040020054800198826955377338599923571022961477729129104997021909436582064335702646219635815836436595467098368343446308255081132154208926888182050390870840771256945292693897019200569261787501187029188002097409441026912823392291677266083363921005600051204689195488179395020507940898533627119252778979608966817922713836978936298817038694624541125972428530401625048722475245390209723242727089331789603506692077377138079504761356407923569240172499162016045097162485009835270414912074121230086723803039335817246988750485566213569608483300045346715859008051529111472208881038976870061251555038921203250343928486136838424922166728836906242725612870021273160885498959418279015284529396951324016810250315721937260693829925203944955182307965936200389112777909187600921591752944400616098687632685376758671632172331272990079572040254613881565342944126961284021498476600536150889642292975532302370745383726235119227557490698268928874451449503913591555805434034430749739315233570994129875727472227243538746818305313455178300402717122047695122516264113891112055794302218366561189630723153522225450503152079309739306010005037354468310993700649902061489495159507650981799346486481699827780717650134239201999195645316258676737280905473289232394648241515881424732856992973311844113565593810200384454756664721137987508899567071344087087636777537457821271877760129210044780716694431383527077568063445811513180829970601428314701721843137699484796409566960229558651985081509274954999925359506482401029097867033215325602755282165902513531380522822341813142260672036500909225658343078669398108866217461847921650357094798367459823493581635515882648842601492315279466488038176569295851766988862145039690656318512195430770473583653802559749988939611169295950023564406345367580968922052939314321484830870690671698308744865596029469460123571177586422154715059107893132242362274526450887532530398155871782606586977658484870058770883486104023320033993811857974734587002290136764010238916571170640132281573407388521189850412356758892642868622207760129463731677575023954600063470257932613199119559620587352607990786831201020297046497144347788044463790335272357222136157843837376736377390156072091602847479456587990643607247354612432891736003816843206630254390905074906633862285409664588265638190594325456866564362828499262601886874714925435395943007858140740555298206796167801468098785235883299422672318940590991861774578132667183191190799295410637741333907436132492394038329591729920087818984940759570488336599588113791176274406863923391561691977415812606146852289655953849475724949760131354844922980343154456952812840200686055832235695136314101109702260693261376385254103709709834674259353973278023277530055061099434070036244018760362655694900722511732384471129704471323765069628497341787978917222200027235419317276148235443308226808598389823727483563276260227796114580609320355674672399916737361641842494912213083533772429279721467630765841194011882803869420933801416920480569261064718455432862261682363285200016380186886880713753617434435039459043807295298124586628210610324256072881975501488357400452777945315252310291848008406030606061529774905366330243448796112225859760484549846419953482269080408865491480018677872539266160573283915797577232739742150851820215089645157818973525773547150434238866067607490113459133188772240641162850319986942954999143466453298001990564362254654101610985702794913168186540917873532671421202151568892852806063541738896188796293962554001820182667644730302858541803181039268724692297715331297237785293504405277164822311422989142675481867459679361870537714409774291053838471830207567364584419835409190272932689507390826613940426112454768329345521732075179389417560605247440910291417028973314633649040811434701518972980355259369338365136108889429183983906932178416215353932419676680728080706001892126685817597289075879556527261456124149274065741860392767266847677970777791541063408360636697506786197158148609364203789023537929442305532156402283681132710330613034723501580373373677951792806604648640719066403066046380887535003460262743975759571106055040020443965662478715536371909017014559746040256517949651589678609832145169669935254141619039806159706575687532653427917494345057167753983202308604716583007442640128669878532900814230785471233190922965889636857404452127330439737646781913865347356220209834671332894420295082405325302106195742529585683958478082476786179054624510940064024690299567456491091193305973125899438705765847913627981904216054515237810330019943793893971335182789568890168875240436104556878943062254080409538264088972146999273154228216314392471620183589243445673940870408501815670240803128820863133775757959479985504943827346293895689112590051731986375960240160734104335448950244878761123321161596573717359913091116748485589796285805773212140433438271170057731432429207537943574476432184760017973563351117463545109154816593861965508729952232795893593543986044086127205373106937471535672827049621161225881913928367548374656250794246264655256632936085032800237020705672589814807307486861554377688028849584940803919016221240475810943169272199380541929907376214018264914878890622648357903325986247396095840631891117458484648630694523427371123207323872423055855651521472464479933805795445727073067557635693874495974421170815385747713154818400518302374041475485858680101819678838856129031058004889609357746117920135109574381317881374385843007923568784935250243861119011116593543817781010098519710501192678862831490010152711072752273964575282591134311639784088055611822263703274289279020608274399809122360877986038663525239774482771180802709894141944936724569071419036934761261009404077554057409990717679504482170620371507549602404149173115689779178733461359447735223246753742312771532758116837816487890447652679533881718762872230326909068857270350769596745430202525234794469499011628214237940726728636881878879478691929570008190073454178952898817831906662533889080825178553050056300447525813363073785119901223900240062819592896998517316662430262776745627283939172222344771190655602210277073770920693144794783467471419453378403630325615653942881234057107862791567979266433239777885872534283837240949426159605367617577315650624382037755977037766797545456537083908936134863922129078167415463381798359180048027867167473630968187423455340012920677590635557140583835773494968811435450078487099046380168500057900984180238856022774174974529095606977215577735666772539537486919634569044535529387984281416306867657726637494861113031894228504719146812843517858632487958121428319665445858793984692725353763435172631292260456878018673874948631696078694194774630400650929479750380222681542768089480110071346776167705956909300917795759976430079153322362559691516736931184108722463380157588647757406490526941144825130286433019842396220569748122179276684281401166884547472779070378274693190294063203404259705313973484058967122521314742310450953521397058544176648099002603814228503503548551328845835002281819667269353855197592406968461567954303074980695103833457279302108476808607023618239565030372291097750523553813488639664062501374686364751618537509033958976172464708134758128142346951220062622847644410534110369337207666294203012271008799613525087123824641905608395839421122661516563868186681768698332106598998219984560247644251253064552601275749451968300454303021257993478066923858713223677387875097129115182055634885092038097750579911002111340821920744778531851769471721637822479031435312998525612314576569816678943131296943080117163751094655168384739745103345528626212853396437196314796180506968643345789649163797908507942531450811892476562325842550471624250913873094912653580819390091357861362171253796699974028922656475289997185707549852368122708297948070713480520391197954967782689182817602306274551232948247253904129161613981096617389264264196509374994616670111215386543653699111143770862232894145633660854052010880084414123582645443318747054417623555969895593447224796110559300036705821841045786222676143342922745916183225105626703297171147219527523978807243916397063637269755163731555103703865856747853253729048449307532366918064084949599854317382095479144399017550384931072909576983730198258271942607993390604428865631804058514397565763792474317207485469802375037055232657822371268547674815607850096941844653151639784612178200028204996597792434208450861190539832535721239646242528532108656330709341182328650017994955849626715774453279927529724631762809570663714313513182629371331174725792090197731137671705542276448742195490459835806882317474071119297347879247120058292913672000964229274708012417337080338359200715658607619270891930046601295359431931069242624460564999308399128176831765735418214693289712456047203415023675982448706707185528272422779551328005928390178202507055058321230447984107012801624158464944640814457935941531667669470708163666399681275103772280618862053439107050027844641940139658683569266223526366851405447657226114985226071082287377221676460160065194426981426292824525884716084489190177854691724835198351573592462577082071099936431807056918159148707250875357507700691376127121422934166852229276637351243687837920785198799844522213881582796069960289970953223947422451350275455301391861909278816198385529568649972492902772866954536138247366169803243694657284387300095448431857895214192919255819540447158802161184632592547984293538852729257303358688901873189942500599814221562322912413589638610391666400648068273694952810197922743570295995628288201412872919972427419562033356294960574653452425985409159235917621813350060004580893167027172521221051319970018202700154235861614910277485273546770353911959830014072345034162565193870857678054031224281676940074247040346190733239027824886736379630957834203129293978083660762707325932938342404744309627692187585932679483807936941752940559949254461713357198557309966719336998508825160055214740899804266000133647981833810239869461296290830710595100872018335415510773890446171995875538455019597364703279364031454398796222024515325194664841719863538229530090156487069919118357666432892837218079308366998687590340199893676093068702040925444559928391235353338402624578788944315804201667956749258596958154997497692049720935863295790496635110436993598312012045456398838753646849298995378521015736895100684995794215047246213767162287424002311773296138774033018313318323018362812027861065027616782422921528197514014830160033627300489658103218695921491634909556820965145255111271067352671529423884061302968860686591192891440865107714798262761867961088593472302254405736780030237886801271636012780331290279105142997887171297937778308442744105449782340411813086057992997868406758690069401016495128722445055554154788482786529882816817310958252916043596582019990935943284009621522589336051236405895555886340327370136860882922101127319228293229153741628019473310466932132031551402328223086186878915771087464214621495291432170202635302216577983137212193030896087912707584154331567132436785405705463306673736264022909038559427842968238891753165284121398298760582391702024125091215223473156726018968980940506160158985638695900899323888795397654523173222651493784380449348610711043085147006555620698581910322489068862165326447662077154336719726587910759374777854384828447756734771712190576612714799461915484137388595400958917939830823895854270411863957025369475934519915545676878299335392937092566155356949711797650130798127107000211203389093424426755506351246793224079870558573446926946543859015378974206774651871147274858956139614593319808246368667590541569586204357525024594693097055219322858789183775372376075015560594594530382028562038967785373804743436571240212989456529992298620720278608121193617865990386674157071947385871694536466868605586242273351119596575095946504517551722694691653163135750699512365004295847229537356109989502552762599357708272300441748448539119648111117092253251924505446864638251964230902586172530159631715797568362376066849081699271506842876189320268376376522006734219696380015753918738010591890523158233801663860658024543523489967498508053470375990442561554217167324583478916881959974999489795425518047091333812760850348857792796440188721858063953099917101977295217027255040350021364585341513535989716643680496404977939758538874402783575440155299892616381298929418580652781747188484726059888184814482656494099331564506137882834778615666642946433715347688438814610474456982441441698379701480193813299231439863032246659824995369073261814579172043933511608085264895624774602137705739754360611019384438121693678637805962312341581800699040864865717529475037485221789091511361122753998362759331024715845724242935261570267983374057442132604810516143036047866864905008032116204833646702241105428621223373293381632520994848397512195793914373292498088277833659941380434572439350047161460202432775144098267583317370601112431234598161977873747536974125551568487520120428307188154891170049549654212360807528728905173682787199100465972126716960281759422201480383777723873930960233270041775794726078652220207796018155330729609828349040973357775727209329851826415157275681548267040032965095095439295484240717435080054757164751511959468057598147578080387595743979319097996621781574616612278646217142684400196700015480494232126866243430730083028416326611428058027806168055698050735797224234664345323332583521344149442480723799421437159656943725007697408867423450714873585065643162788424768168009938236505154797772675017091729988370035536880739117195351990418867759447355842632322191740667121368711580720193826745751521964038521930756830566471597650205517237760081825428430352425701174243512661450676502404669177339165772374450330377928827863410195788068599234705711412826186716421018746158617097586624202939766533578423923486098199476982748431226219023090166976345524215199299635477574897189483396242027677497463441783076619344790884592198640152778699590037595163683387674889375161218120482309668133878053084918761271031326957142072746601586851991451763635727642602413711528621885306435585187352764455483322102044421885924110587084181855140247779587038487392871583824056848125562103853198702957653755114489071911825820664035151510425583124688534663863306990014609582247326188097151141036998359946799290695559492129842706468355031202325799157207585720876513205020436629791274643290180706759171233992385247094895559832859859572158096892340925040557606472225139465253390480678115471191843814663585763081035259772060976938329610415811781602101381686798601027187679174004679271635309306415850613341073199240741326901042689011669119494712028026275316204852817625040180458145271617990515873400533419819533162889340967493618263327775947617898209005070636802776894104904880576147356297998403235008649858357665198189253025876470990166002732581312556607774756627877792608925349127706198629046666073268843136412997683473599876398050954681789543750438532477589497264386055979909969650210302949925205929725706834542467200296609020804287973792800259381677029850280944062137596171856022206562662943819556586258134959520860206253780413087510446035010256086182476048793595041014043319309958706208557165507488350180967474153480322093406437487379199571429808113824263802441294241308484346890378082246980620560154845642896663527719039654204674549167259949645995425585476864544236023639795619614462414738572047565609737426681419909822373808557191226206187276205863943419010411870130858491895934786473158198656247044490073460662072369440643705387264792674700566658036509598657969847519200794439338647800117457607864706977015168479283182425276983530926235359856412537664440563486329052529045567116549321434806712214384350110721954364334255758806803769296215056317696034536198898747196663123809748610091345836785666866892735709530257672875090491516831647907018531207959720735822772447413130567170279638690522488326127892849285173885324142636411755229309170711263188596116595236812149388532668480549959788461819509861825408688455526934588095465542948404610992167511155434918939262162414591808051133346214950415946289674145291697001365803638433183412353155417413166513740927694351423999470351360219145446802161998272137604948940855617643866896016978003932730782470432418644703407741951595589478122824311993275128353671178638398666854407959262131613888510950233516156709461669155734262274051204942262449669968770107927072868502491520288654536209374341393534742662560181251035232873611546910148597572627626309367487787783801323298375235512799947588713753459409969804681093849602675631978696514438783244930305132652898935577454038751219433884040456877417886533566246678047584450663739482947374995989528511152849491368899412308456672796867413769555527226275629431710423631193201268007086394470596536583195244184443821513915868181910018519061324665515482661263212657378947326959275997089839014428897554476238604755506894764515652657863523182748709580708938860455771287014122004003460402943743462414987854981093755646943713551685452272330969769073809466363216771710631870053235057712160797700296946023292171082525412156738799490434160072595690030274510311165295606397126173979515382189482673295480405314889561634494657169584928472470333797893144245563435397027614555414385707608090474087902158343764672417037981222083372759427543629155690560086775923896366077677922505898722254644218731522528174557441893688486091205994299110779071049728471736239878891761570850929584907471985274142445117826840904214043104280697380009965369026174546345261830637955970712058079415282899036579015936724461212112510670424338340215201030295815229047759167267448370140155711640379065502953422852967035402703981201731263174215829941442059597506725388342583848183448352995116517666880665661938298692529701370596938344605522188298530948770612056126004803429856419116216497527689031030703080879059834124618795169598309126924030521703724100239572416399904848874651748939456867401049775309535418884828980874203579267824242090177655335375211787687863020076525178617180181003030954776501949148475473394994984650626248071532816672762939259463945981148703940712904387959529499723677116608588163621846055658899118857103016008359462302250497815462650398566157145519841608466102292137293060507664451093075526353773814382105600519088185983272416378127990455846049911250256776799934441892622107177432521044436720361156164813942156941227739227113048091109910819416898404717283958147162951909251574868123165978815241985641360510510742932429584965323839912272534360178536925455700350926257082735402781643031033333683407070424774674412520061617329517286823216811444978739370825263768002844911256458700397273109100809780400698481429393312248922819037013395996350550481032963944473511518928025402317165594766498561328701244131146546195387251887032198029771911100077994225445984469272717651236535655009906552731781223589128744751234519706040208307100024821788938095544096310393498504168892215545761959114580070337875068032816785613183269738083869422007342300125959879648699159609038824159089272457218229362519097312864060582132894572397054379486206841679207983959304277124858377361968513261222784458518540963695822610132519323518899956918941942163564792189326410526014024767274601197340057596715200764832441091039820366837607458730538612432144348800758714817289530618738030158871342123202020604225268278079907344638890426931604084756194702044386820270794096291048229540127038773168552257552552451428245943170988017824741076273733114984847621165495092744887853820744274595502871355467853008672628048997204647444940946509027702935938708058430912225374699037046299811122192624446897022003782627347515893958648375869000779656173911502452542532728650439458281015491199864297910897124851199743053832055620672164895965365233451627215938347761581722526833816307452459185037744223566733516806830721182953866345933385193317334123013193065990801170544064622825723017503704922089619726969081702495082824973638634525879348806804256813472468456592462181514405319663719932030988355151220564964321916615957968317928641302952861642661543595009617148378576083128801656916358428287822191507134151993167298851638922720170334070955287724809577957808986346454205554022570797541832676765623772070551535497973668467968598926119755523329035914590545813389626497807010557269033775552627936620332827105223952931871570953464839853793647751638816667715290098739874935862391169419951329996447558138404853825838526731271346527764247072941071497606541020820348117419059250507768875148459257175115479207607378171307024158117625801299877952015250239129043652597855332013475262707403445715472947507347108486901924293669899285425645132557854815291604422865921114041114512355066596595069927136864328663329170179861798606230092362423107170691501211178519277705787873407229484167161203627154621611327861958230277669455839656937261456128060843148217535437449586493413986478354162794139493360157436261592381495376595899506602935569081641654780396001070574202051372049672387094453905329092929767194070432451592348477776807804608164542228079225218696480942591326730745450713405666705226609990808114774496444755380949353975892849588179963265709496783411948290184171100643404666070091003929813314329332717774134948633729005569777219432093459637245182312576397894936685556298088091250344430050231500277279453213820189447518585503331544740951273184931764682659572107598798483850783432187085812036921689547199087582758235407776514203489826973970660811497680789647739730493937355352804964555237788283972608661608298844304428737412426684206944099001157565565724064353882394081630700579991718757883457183029018641483000232700965780731501470208388872827914538789400621041300303164762303765383252156209058431856512113990068683493304132972287992771580841331243803397536407467104031406870395080997302656410183143138621772498855602483997506434066720552956372508899409492888066975349518875181117184181041618208363646731350434164502187942403315674836283210208129951187784079302415649650768993408546182747103074860821727807176880623882871139942109967953428361757415700563182841099409520876523324954423938122102632927587195515900347569788626531989968804769327540511699020644226477342963075230530113210399116543957666314847196276192729924219700675388789795010813076433213889200398202751717536340273694107993112968391576131222533617058740644371833648745921180217268896080218913831120366052867789374916734609040706135915137720247163259108610253364184702919930035175258011882964584525888257889808425699963932331617511369825948939635205459729792600785628611325164132975028485380931766778391558873769495503551309206072865492976536662920195470041521859912596427373675980449933459492368559827125555796558550210965458832961679572536853770283665694542975734670508622933067155914571742308785512327598040488370806226336811638288530129965031352182325318606453552692792786071043229277649738921805649339843932812545245969455382832160392430989329745861133612602442367845068978636465044259579315056132878152324386601067803156537177569284751328628128615587522687193563931027591370073430521828027917618469813957747135604294150981664552087507430046304873075100187654590916749345367581023122728935182451800348130062243565472467226278455498049095350380195567463468302176247466025533996094572393668055547549777727862677937469217404070903208414772216608693017640912149060488319881637318155114830465920233362143267100888708003370163468820715533288137055196725068319104928261886915190271781581753358146784093802567959622795939862531374468658667006099767919909823297768540171226747599558790001620190207083655684503094178872753456376716311065956014659809692887755393331085797945406662736102631419454250029279967332753002967678566302429239121448217391880585242845420329938565017856358723201000177843869363849211941685982138607325619072318015651532596632852964227372546149851206957097432508054416236663184371210095970091416740225549485334237763655392287710406875258553642415719222771868448959440710619618965932408093714819334925194388566651620123173278999257875782415406406274784457587907421069241896775846885225227699503504794290364098576540018887446284987974629980370442482551024932721557064224441273860649567472946811823920965218876479362935342627810236057907993670949676723799947018219932270642713066358924424113836012747678150832211222706025314721713319802208604141760230507766433206313902190787640364246826306892742577949857403344178266668929226501729688837269502472206238795090979664794535039155287683902212462461849301774707192161300330359017189629852014887432418842091536898509509737649331569799016659189555727527548437448835717178370393611571243177088970725549236411613604338989653464245205891760525459313897138142820040824933909909191232888742729786407734928316265034141101006330917814761145334985644390776024089603455429211932133625083802014484136238933789062456907125135708327977685099319627423941475130688132415568333878989774042082994309402517005782200495929542692774412088104196432971251090906514383474301694064379356027288162070513935419179803637996028977154119912966921919948359209644141937759665770441588151032124505605696730308219300172109532354289607208656736541232838868896532131472603123242596889733813473772958778812941216413027046346476667027918931284899050339813984114643923341560821431037147288084627380112164881719651513288034231453086667670564519471839823234278966948144688439265664400845112436056919820309626292467061958064527621150623839035963747761002674513449625001970228607268488751422223655993960418102938033985598514662799733574762956981475762282392186653224376809994055441941774032781384622520347600205139963345126203543915480883902653428409255937426978877910622956225412857184544523036776412318445216778806473781585106150059245382323273453616247067804290671494806753175538472802707698452769441537910953276177098851650615973839145002671946989341691789592772313913017085497205750514664817235730960669927071602891938235136736751220861303538087236962450722073379757076612219804459881682648243844912698848008136882067634904315612494548688218131634518399275576812832933304062181861097356891612975277169018549748984475454646700278402308026255995178982313850382987284915485222591346029433257369485856509788052305900251496189787903920973657595554200621612538841701534179644335948049816109249576095313851802535529205536163952883014255356519907878158057179614433674478428589844670221002518613090696099036850630241142784734156945356884558115301772529942027827263019798991356127156886851406542383855977537196538465200774530849463716494499596183287714541221841342649285331545200891330008428599539295608357509219168798315514255036036667725301041305714958111789526613458783443972644328867658209506976632186929907642186825791225664161368369206827663113679779825433203520337570352361496904825982678371991616175825945039109447660441352902500540214794008541126992847430028017839803543149403605820927116499216591332093990700371715969534218334157587437405971421508056982832565467503674475619869272076180741639397529872139212079833345407706601090717597321794263321641821249771050609794253398046215486310580858296261746736492243859458357389474985553340308052329737728556604893480373669138952405377746999458574529998139884293485554058822460094857085477198177724709938497831435061065204786519536115089210754339188341140137610012308237389944717560609218515086658024739848858874920930425857387894083757630031644887689018737111567658357281906976823806173944926348158570514723945395821246644903725286457037436102328669772873507603261043951200111433981445066586451189996790090882990089084533462694783349998464788336185765088360405945535733896441628881225511706299048560998431702424046396085647739304975264827412748495122374219467150948525265974337345735365158412596039515802977402485918628792611036234861826020559031293394058742924054596280669590182057045657478477050387480075012447467461639020424044851797319297681573701330525289307089347140146807929175817698801583203751836265486024577629994794772895945421652404119039920225512816452601261675145593910225994592147370959209726159968467127182814807840302372471582219003771451424268750704171065602240598423424882946464225651721425205805968040088733932963172195473987336934663340656476612518851355395140569306838879402068052417274657573223744145929411822035751548443651502403949066046844780549423599828669699132487761253366114036924663185313913413326477566043238504517266112431256884153124726101062019361654206574981649219875730994600562567054083864663950575900765874470593147257861959421964450471846980547139130603641530676487899474526453452719820590455015922497977722928259002216767113991428682289849232925577292172736599974111855886178120977917432752508432027070003803601369374026051053048103864590650173503214745813341487547891629767271591411746521751214273432353478006594510740472030379821489600885795761944292583451285070920849558441083578003122972123767002350756372267165617360830181447274411381715699413193070646324091682755883606120343667300788422382841528522689451154813823988186493205454996103128916732207403593432191622447743787441788889418667442842460323948543769217379410587642795560360278491918456269221858949194608460010573065375195598013039154241226193123110881126250088343017899107906700384046403825950031415263962290296618589921913943367168541159751013057898618615120936466988546621117690645182286972308898932039749189194367795309824696927611257657999280362391305486199833104351065308311787954280380319898138508851457570237050215438914261818755080836362170158426449423051445296852710578928875391402092213634422547701720599360841781694869060473396884257229916339664160679075818550014597002507909821221594488581647754465530084869941326362767082182947278664776663432350805528903243829133093211086727460861824337636372639822383647664573584430968166166067889844919193588995069215562890556125994973289565939523422898071006870461721607209072321668433236213396985484338687812081997852237312925314132134456590695769959805624719634769648277235842378697657480159049330241631567880934374716865797282111390532247748934671756378979901626518796784361778946066724854933923856916037902993428454040554299288941142830548269165369006061731295762566904931002844773759794776609591328267505471286338292088873941109047835234168384684238397674054545664058197735388398158542072370286980651215696419671908774542766628202057885886887244691746938311248629963863775227475853316413882618863723264798450515698518575677969250677287287242670625768560898566061187056650610750789193485056442845502595793299460644071604904976532209291322169101625245644680579643601090710916227641577712301001427546790548940561968042316321050325672241247292783997659827224053906248089634931630764890312646135022540915483841882066084502643997829841170105794025815273587180710606067487852099548167510696103099659798325361169043491771552275873190493908719620839933981515607355577029724783540135315962590988829555269404785884850042923358285095642136395818076502380775210899018379565968684680113775840582418286485497267263918174787498274533424540435087496001938348895039380393681650588989095144311811471594853796766595669908092507321014634918594126372616211508670155935030751358047130160092029147262619907323084152815077197007840531661537491299782485508227521624670708578681250095305807684748104892928420908829757053635712335641747010595751877349372871321722340830968358217436357817275284892014696172318289862495032937166708021812504802843329533996248515621016419983544773512273836337431901322217391714276423604044954939710394334922996391455640514077740107606386829068725752789570117412687108731486114759615922195988497595600387909814967274932812590337536774017059357224668554317822612673450411264894518294201691291583795569987454676914014778184087617674421919036216284564217872348532156890081627239472114468163216205316056728027088868145443568850694648009962931890492733041705574531525919994829537972629915227722159597966686961093998030431658287220522306902815914833164246536807944308697503817694844945093361167554545073886621665772697898201785817705695641015017727528597610529377387505790331563572165305721931648704787080757710128225280069045121342891132584155157958805755488917911109312789487247351481041744185684388463170663072499640625588736774280094658739415150653560359093116340234063307748293413491839301857784549321188181938214359370022256700273521116495230068438557052955999744186338574698585002391782631724600231912719352207414046730748900436793324019151706125603322521351709133467671520329027083115965708026302424015650757100994329653588503503281447970122755462159181565886416743082446158499808133489147898702002234595865717344048630531213927671775882814212463399896725364514809089904214370022304466347989963002980475225770845050756781362153005922088677485844157922599376917760376303526331299427867975579051399056769170811284136555982613273224353133055218028425399816822587734028006033876797804300123087943767989591987800841610718410197170464123346764285369520786074570575878263493375411037505774681945695763287788906431435459566924196984292209216626370874301946412118608193491169003810223424494468570345645467635466243121246700543187101635237328957435561959718657564826482394832284639042804777056293891588178573675165935746603535973672010386683294247908270747531508811093153596019001002175860104353916646687844170040861811438320796851891751614499542217618862980444342304692867629417476021519960417181258419662913120971841262976365822523684518955075198674799820165679009044688367533445976944131978735502510325057110103343462084096051742457794410548915944341573340304684965399029930817132552736209152173396976142997805686849614019797078814238469360313255830242728252231859330188747805208252923478788406745992418475396368560588610719679341350514221280357134509106202358035966931611858812546951136992851136312764836456966090022941955527652529086264359476849720783485062224484971280583671942577859035686158174681794112579268328770078887203065407252462770109608048771584443931317001880888808514479535228806911900524273449775995312808879966855916708226347087962652399588436687154450340485657718417125323622096088289949104574646460042253188187713323994540310675843869845086041866831959795641868050422796817626804305280537160587732127897714724623726673536786328150484058078484844920553964874620202133076938168810969018884218654044155608162478880251383689895312213982595902504093735159960594393100329013662866367483846370919164803693294123765201491096285168537156369840366514791354038311186865200848262697412311823248420386734310588751297159615175781665462851922410392428499148233146877806383542951814662884312443253727446257292383622065841416171389954463962555154310779551530015599088658092380805203040466930711790607837202408361498410389734926161378334296565047427319932735277117561511825136175455663513344093012836832627913133310250349906126230770894351471549755285600702001150868541031695907093012921908906367359230858976127260104143374360990357771179613954158732569826306114086296626166713907890167570443185267581616218534145574191386601697613952666326342990729621753410547503740915995843195988607843752351009412336389405606508112644015184890843691371813203699344048832485202028649562994487756296704658858071653503449696112386046077999477364612250714030359580030386526700551292348448533546904362487579244429137457823679689756222707116718745819619132435861268537987263162718636258273884563156376550777503897828992372032828006404182615159433345136351527243031700113757348903312402288756879945875705499833185454394209419024018763780860411275943698519795409660526224373332154149003261427459269986733212772571864994435429167749732616484972327458940714157793906982498689809895521041647119887474468004960585241511264133084146495141694459761690074579013322371849852333842347211038951467330608168991556234080041586084143608373625162190861774089563878395974302051572388175415677040990323317958478867709776928661041545408317114386819440276693005993776623753918966229173651097492083124186153315079866731439833227121022571871212412439475111026391218098114249257588681979331734853258929562727246996231461941784074544487365879462276003129597986576335056706870915760352452963485773063956448065492780323157351970186590337624595445697719475887057971551075219510883261235213411104501710378720685158367395549843964260753957629460800856799882487807276810587694528507681702111838507423813061347555543675104206698429513382468336321738459335131309082786725181261171070393711534360019906627373674277754732974099807009400416024841014638055826170027864114941498783798407494120151769355076865886375869526213180646451792692160300053481152064841417504892540712853492231525053570934578190008615151616528252058598673671336902876469357482866553231798625084301175695455986083959939763667581871653756286907887081805906106967235475050163960198231311557675136107454519678891665425996323787557721583429239103663956662450231943146252953968549044688450189702279227072832083748055520826582059422373716628303261245919225943057243572035135231417993989981057374072577205041646883024498209452968967584679012635174413650234769954560583443057579625021058323030800922940247252040570411063908033000822740608549813010409253554086110227473274244927227619361425298034967842213797526976341675925455690995620948424728247607282972450767353072459181248182846372333428227984643962832610581432055842969136989011266054488301505004764119917406309890153430675659159079652311285378275531906298118204710299533242164448108578300716002446644299799246118074014093442938356806746413844099055329464768879596944284766779373372825388717717195778048155003443578846623563509458894480452427400930725291471246224041459993340347907683489577479158288052207385706703792635212208479147081392894060218043386571503786905995069940455734869409046749591942271428300360197304922701307535430146563989276195855165677177856593014940223813712579128491921630495693974013144174066955211393534448425737767526453191883383766461816873610592328864860874431425203026658186266844965350674880406372506166417928885719703040247209583524624733416948838372315212291614421778077452165832353753022817170441161103375921265048517902314168427694651995992864631508182117841982754439591587592080292482509404027166550385128146928592541405602998628889088355691307105623819628685763719066717874613122349193212269303227838394918757194269216288138490884238343895886450128343373339382057747126976478549739939714898521223285933384436963168145987385514721365026075325061333515350075341971807150305460012402536511021416807857661365196217035784173744655375660917261545743649783893919750276811648812605419986987239417567650851019886804493495987469490115791674987352543040515087423550949939940691573142202506123624733969507432397420173585369473081106706820332079922444855511157301654195205367182428290824894948647996562906618931530141547469187801469777164031410048737664533697589895593675338388229081269212992725159226435520344144779001960423717844508387549398113512417993765324157732182265602698705519743440601448945627653325679071547220691983545498648689917501786147585076901759437357218702442210068216629892070736655481273715412232203574362194524964280370316792666577125748295055096843539943524314981325744179674944106981437714125103852232176721697134592585126257858160619552099996829178516151310197646886815183939853598985858940150946195009902643068663794104154285625566004794545138043635092928004498607142175942628866371964084178624996094482418741459107425476146826943034375353437845897691637240155746604459873351866272876876014100178308503139768184136598475260250926239860584112541524022804163132966710451200753861790299265517815224572032417639009645936180185113866748005969960336982208326891247428519571864563944334402914369388408798502065557096745405255253948392296811526338120154923350110661315688926443993059584509470013065524244189368961706533707201386818712120228059643222147285750041274977092433600687518626434678650807708943489637302201207697391809562593688207345789580784542928907959157396265609887000521725681936340637073346697353711595856547314933955455476594860154097797886371529181421303612299297242171474821462491855559534081605348144016702691196250092248528068648234545797166076815406064962258600907655408432541263292189376271425860485981867430047841185295213589654357224798899257141586974095620312912366444468816845828284817528590889960596004103720312343314373845375043434620786004026377436012052551928133082988959218157945557096891788603563749899362507744858559633359821450253722046727752450709119986583406163816696963610011733122801182847532051602454084712914301570647399830009596417529733318091516954022802464997815328212528898533528973939298944591987683822331167480631150358282718105682920973675666160126861781128838044466206380122437792481036264615559110437362021999613381492477072846599889912497796767919369452241472714168535233537531341879747832046272087123048632051644610217250839670899773250808468614577702683696747652556718355414509746450116850850827306718920936908512029912101978518819820016088707051211346667205623995082852392319950769943254455539242969250540288649051529221628988779724625652584090253953470914617863083947012101895999360321407520440709683610368885226983286883773060727636441789665533418942522079972902089431345933113547689905285960039407736316643167556791969022868986367555861803871335824585046864323629076921860266389545379394311660259699028446774864904220185947756333040974814726169244058280513589916619892477947774641937339635381875829975582925212254762758408241366845308010048376424133389883824781188123913629498329952739333328878102526149028029963858963268019728260502214452108924955597934072026774719834056837598812728016851118970172084951602065561781817970003532080906661891062274220315836100542586756034811731757077096334383029483119229978859708453055506907997073774910403997808652810169438780511297015930760837615982855465472539536100483852028092067474501570223723904728422921067692619183611024790860233750258726015067544952633310224199240712781014711196654811041677606584285131357828318717738264468295047462545814972928106151036567931231750163593765085387817998089967051191525399393115841449869166221336324232365320129574954233010544938796145839955576751140987357224025967000957113596354999874585224667158377904340510774820515509489777906224728597789195197719415553770002734543853291788588127661807695363471615811002030725860744618499795745307187936358663121834105053136756174811576621320519519574236988612813376259832169227483405412002866065449907876855505284416764810775740452963585160960619252960532469034408838878620307973784407329757781133520054689601944575033638161006260480781740314186384938451209023152749575523109329399358992599738083583196549374683786723542567817616575497526097567420535054850719657577365277816504601868047492870456049349570889677222135003222094770273516816377150824859101021755449735161430104204296463033668971957788345071974130062197919208296693417724997082775217082563432653126265941873847006441850542409547571427999907980081251421927359074692506398677109364334525354315353303740341510605123290676662666104998698465707821612908203397803000845591456670809402899208670031389864092246872370422620646859678396476574231256289717489145407594021993598948968784015335493588765536642700357941660641510071517417094462650521954785493431840398785876700073806662561847365756983320444387562636614989405865778046534049528181162672692678797071425763500536511065898886321881652402450034215217127106998353993730766776590003065695486606819922406772341737183481273354735574305600452354525564847153531502836954158478960984703419032828365043322020750878891786120566158617728063646968959256569781245659044259427533513144978083696551932710339168094444607896341415962107476094797596130912281351062200292939368576911211317133483464348782168079108051838249602627417745228622852075631077267481612022553317274583366246265657811766730765611599546024454192615932555062907660285807425121480771688155832676701820492125318899572876685259657223911264414976908027681268469446695832828194483817462076183171721349901440677807891684306298472477991471589186117739161151861630460307945499095298755156204065293920343061658527913042822055029418405896139442295758908587826956932538041030502824768032694577721382110572765744294562824104740820113263470695692778846816730601884004114771955593967004148050417285384578390673890872318857555309280472335074243452487229801572365805759184544267179889156467479898607540207914577876252170887345674045709447534969818258272943695511584064944221164044600162710026081547548077746844803298144814148443071951193465033947962403848525391244941989328068950750071659953061310044272553500196766731231729205910341946398584616466764263055664792983626682856710376042743988613102247802560175128039099212215881072621986436636253544469437838583483994852462859985490068959474899867779941064660775872880403361961970651582373294907565892477567538761225273962038246378038543697719285969130477348385765505653277250990136198501412982181830363618459968436906202620739876298900876226745803741782126430901093521890642990435611282709180273645610704180909456742227233426981939570364519534074591292662899763228683827221899665963728203984954646382514522794583800990487910284503919770938578904757395171931862375548869115749855458131230828282967381034484434359796217376112261952104895271570611269874375682180164025546767542554365133372225943311806685350040113567862994705155782279274241565271592633706303811877997446794751793955828136007838189892157877653665917204330395244615766565409018586309168698685378685905362615400222261419476140553611449979664864994447452002518807641598893244051523587211611295172779953370928591000704770929303813596566365907573964607200042400931147819953972463545523673342786533632111058860420490870539692992249064796897226568262486108471369123751230726817900132852611286886782065320295959446572132143995055771202355210347452251556076910724329525579668343729686107888616765557469407862383639210751955209955011006294603111316992437228313091388606449440740117503842348542339426484194285642389332715013270308139020101511655880265436235384652523608489201641504782477638944768209708011161629325343120103985991840778772623172345809954620114967780883153423543082438511371068027784906985952449833186626439319190074954939248677215839284009191457609072741879538299428393714128510714124397824810983234860562556710077527917276012274224304811801193683648167891720771261289393043632364401481104163439615730065410687638268795519432994210965162596490602431188505570816475287989937596559111273965676794109015325263684479845909416506676708862493192580944324576974313657585812573512318666351109241309016970085759630779697037561816896310777653835084843580626773178309332042647571382899332435912273591772931862068617344319398204608772269616885000022208197670402362464223222524860457148688064924904288234975042664943186811248261036220637973085469946543026646309577431884561549433420824753949891331310621135627775201699803971214901108613732824206393963776215893650825940271834049602018895043118521142782852004388450840422382537704703978543583953661550879498181220395801688444251575534310470245799713859346045832619220760066929920456387196775159806000456518005008388346836549964511184660407457029514007162972031337996535535207177280383348047442275510347147998903842370748059840765982608252344218534452122309672965567614925439460722120694429897043261939201584150924418736385462297608238543840334934952772648472616022348284995307667720531631324434971506628124723828286663391883828847726205904479785502303456023335376040355379041138004438897351409130227818767745988786739576429606880172617824990889403924549892925270266708411615440195148609733606811151848447915131840894099210666991342343305853502106932688096592056741954792517859678884251123869087825463105053860507331321048491585359051710339811022992314842589360852710910552558016959745168949042783350968845453910334626847916439458617846875807892782775515405858373624814570170293940001997582828152622282944215818987780422910095847785725664091591186355529857112746144050998104052352939975337493369684288712683847416950546816120619566465384142289176610531449211978895359390793039041332325350323456433523895963807702831324413271024806995528682653108392320977191468099040213479836910971667594496656799012504605745528722352653599785131446770489599810632213727692005799753483516111321712917527272402220664746454095627170610617796939040584393118936746518867184345666164790904365962365653243740194866818187446309318094497088268168699270527324566211970026893986778233517089829331048493723571739326940167650453867730922266445042784805999089911190605528168294328026261106066819058740165254761123036396447086567306666830057842392560913152885052143903397129868058019564885337328580259100025425577907878268099680597688350200350004950125971549924075809891139838141299300081415042623302597795330102861728043963852395195645942691602136989504860308615157834872032338687998893554145943005727013960550809842324752050886381830921446934094144684894942077306480545519756890205288560134224069414116649145356169161235544897087979418714155494200617559519439560073178944246812778536086670804199441686154707476532661836200707763253576637070489085044249127342479641533819321887839664870962018898662221490571100429754951569476641122933923197891053161489377274990639642602838109239818726679522815034539561296413562784540587262050674784714087197494900556622098881882366455888362729042041914098248912499999613306775070549776192893915519922133237244614188420149760561181557894252046230598264886324766212099531239993940434562170320165551393524191759728077850795549130636650353431643195845862797255274192715909618073420900617509600078253639349638417934953364295304046281272848125534179681802012180841455148527440293358655609158687062865389824199422011310722180629461184309124727755842260372155753667999339651072886145034871082439493188852040611152397111702358833089613839441374240137394765311308619733128098988334253838497072352984609950672082627651421715392830334468804499881031904461090038285082024606688939870364755483611338295443037472846014792047088058973568234598862453530836186264695091700860404749525073783020053905984112875298710717709554192334997856328727676435211355729055747321740902230839354470341376002560567400979897205783043435013674450954857908521322807364593189399385519646574199874875165305176080906757255507789388860129177147254241590176123251404197961565073932206222745365435773536592440385404419895456456583322447892440111713499232189083939063988659959233002478018684549348305532912461477073930481124994621448004974080102706899280020316984825058252592857659733880889783961218976362449285411657289938722287253266584319593338197394813342181613117250994516565703090671299413524812717903414539664189678808331198431333772640243063527211374919480459630806034857665477808892094480888660252089013159052044447533591322615522747368416313485232618698227037588021128316600836650600080615606708925492736982725538751081532995428440299990950293808415408103492993130486464005821149287841106370681951268547499738776565625192368884040329674397480269253140360973752348951430016087780859444841784411139597964010592723358543847326681370220182955217524259976742951273829992339942116691807727033146084262237747952724234831646103469191196499117177812225425412023559432421521378300981672364320685944957323942227653568201887135067692362121951468707018977710971256700036377720803754378602637655387712834283967851529674525589039797732166866781819085402863818704499058887970915992987839812925592145710761150582093511360322841782995323629328627891285762241598920596670990147839588198126946243755784364032259597959722566641525684303959724514012659059511948319636652619328329645104116253257300756122733001646358166686608009160001327221368834148936939744646376625254857707547810391043858348088378476654070300660435374809526874099929367871262257438050529657215354822526832239982229368558273820206758849031538893450475021293797740870166162684438688154714522315866744020993760589465585998058431119792338060854238881096099387765841872496784243324260029328897110294573524859092392020701379619312691105032398434003153093494539633785926018786724471952699147606911665104498313587419741504907862246263927514844928481267165300782344022429678147283582020148306279449349112527970459152577104465492738368141938137266010407294966787502081696506114504999579479949014945550383233471898456998658385339288535836647148341227607566903347058663299536988330828837434143975485344305850103599289602815637799019227209188931379403422402879209124404512144750818823839676504437975132655229689728489592478981300449011442728854014472242960266064408997340452597029954961853837569716552994154465504263655418731466727128119642813465270423576200844475357434660968351742490598320331032343097663416012565296325332731592115059438524000571373330627328731536384402052558515247606014178245124198094370640418464271731180015066360363850804489501301072436778980170992162961566426331119236895135401603292323047221179419690130970547736472010003145463291667951351261507461704609139555920377041966025133263870299240203395706338017368014863941430876015784339433143722650315692409763913817562717094719245253129453718449021497104717461006157760369743840554690936507791535411690392474955115436301771810331474432672339856320504114986867516780111909819230217925715390541497165989925167596835306383974190812402636723734844313322507191532508768393692030483974595856634846032562333527621520461956289158692711800535202651235487039367573213468990419585605622726399420232167691449777772364748864526421915088041167448564215719656244893111592668767472394619769739070588000514738485800030791623121686596151926381269259207066660864890962018793153407600297816167343929895990288644328076014643184716796833408668418209326124228408537259391727062325440022330563257449637896211515696254011160732461345515180665417901361299378319908161809429391243177347322052546825426015440367199023486686734465046459310606081741559043171858804224323862591657719962912798890345630620513959108527200233069538799086536100569503895877583004924899514446521104906806492440701006843174052880363698862288394392456324157317481319556524130884246865016868777769941914784864978774329751478101302191826857430670953786589750693825474689736435533947368336885916140774499819024445334286210067750211339793768731563946980191383140852048071590477474179952429838411344409494355172917395963732372332749874351972823183424797872514596300304973065669722756548265710589078633943138970644460491510168424160830716900093146903120292558179026819238559297105385702467068651927081565387567504846902599915923703578866765200035183513719537456844150538068695194485832489038462521446727427795693713827660242527336761652819940645656322226053418453293837094376527561201186509535206647678940554802994010541142467348349077300801151021819689769907860612658917595274257073499321614190989102484020943753162850322875072579087692228666431257815453647547402102907852791951551769678133477508671318115733005945911961730479941324002089828266039551432990505857523065663771729311874630958925410994862175864923546288721454044416847024469265330053734509001099403106496136469577774292159588038038786766601818492304316973295348940938511623156554549208656884470512577886712429753992192900055897092750103623700462450588988113670134834442357978721720512956856896065362075447831782488427377387239305676730513025412070720919514293734289770908157819771476069501443496280958719942638933764594306924310439859638913715938059514898018985243630777505441845971107922231027756178766858279115029374807080014032360295483791952845639736287889642176809517016278824444008256043169261193492088020841937246987110310706805284831698453511359323222930317610335566000184832911340175666549369520074726073903488132396355350309260430077802411481513664933043550483498372347121536393559855785891817101200264413815396727751409195308069620517667173626912591740004441770277694604760710481415647439723399826459696878470778519576778395026103611189174871657350255316454353496153131189691768627039308793007681959012263860244082516282347679386318998725252139201534436367071394728318634351392084667550508402156633715387436854443403200338980120230395073965523876502956213777443290324435184121010099009121484228916345078464255314531584574932221959352053501440591079581283727715559816430980074183197786109302816143871069896307830972977023494119440015304407614183323724991748319967054114796089752012477598778078839423978556200066133934871068756335785418422067630401247727699110350792900661871624678927405468823815018461373202503068561972919422075843489588330254982791162702857805826428114001462648114814565938715509860652926176748675184102383244393781803686170740503440405242053566820419314795600571326854608210599327378588153077645566904523542069743686067196305332820274463310076479954521274991804034452317719682015710854960410972645024148352090695898490561989329059207532507699173024314115031321830295020913159831601965730111465445318453053800250107959800184545765847632854864102028274677974995802246622652640570859026886271145454995798134793286659033651180171468159558549953992867454026796900683250711225584983696774615269409489730598358159880041911094993805420196002797966843123890304610603289613704922749963140710244196691430067546267445815065008028937640659960779534921183058252564353920786801027652478069253394170364916512877228028022513855045880658294190135577710382276844358485180411226326010798414230574457868882402120650480798553650502604046938033060601553732532283223644834923819115757578475132011615449831277037312292747994526757378680722118798516570856894940617745640633911370149766450910383699942483293668246226175713451503839252819868422930858152885341990471909594550960750010172000345909544782369640427715795752110527106365933442034206396096495137576048573992776082377138555724587673455468449848981376042738111998228788599581679609004386097156365549566572837589446651620005743248862668304393287030993520079092541972595215090082106848546704916589209695860529802813595320718695197100304678845811569260978266517395689987813157964741003002402469287128076749387540880484734790011030019415530382892234126942169732336567571748191707895614034534400367513425466955730883183796781191380941728695783546892457003350766496811185884927585973144734015722427415374055131276555418312324090831058684541848473599593557309970380949029425673614569101325210789557540468156446540915404461062960637560218105475542736047629669259754274092381909194459413356563819180815968118879584978866796168744890599097825631285914658621375135766068706533697434879994235424676899530460815840927260290112048162030962449701143749382443725393520172779078350287259087671262664793994901873849819451731508763454145765360303633583148431223018344561478094042194598220525004095505372870817231822099113474269760095930114884400409384771532146072730625417510119972553230360735927424670451886934933733445673019864022568807271204159501667802133415298656748634856793830579817279661212985220721848032606186756389896981614085186714934313133845500696938418279428166793706805640059208283993926435109701347972546653275574681598792817594626867481268234361242283749337495640574760116239030610288701493077617962991389292166791566415236792069959451898579881954233046302402347731973251150601151365571669744838318126644602293033320160378123460009249508494998705335656897815190643946778790974006789666747401073512219193033470823184954144176375862384166721027154503386549590432174431582601166436721783995434278138177638043737783653689509240420472181673780773333439765423887688144258222017127448614549721123344004049675098812285076274551615803789481698822926687524009610612104391604637190287372785817091935101964882564157340101205017483820915143297246854497506757625908604348440052952821748535768037518433988765870335161940780509708673620508488164941537510764029276411741464782210583785385878389121551761318751365393105686969112194910384531826845025486888819000169546067929712248985571923463622827966718900878465027196398069335789514971360269173944659440528608350229558811502083288562699802899881743882531113765739126121472690633085154767488285946759348880133829736027761536511100359246770618650488824384473987764309714547883091200521524459008322277909265453587191753064528904054395335201664474835486784511821743296878757275956499189823726116350408119445993331544186728147215382389908586978154209501994283368377719847852795435148839936807832116176900072415369186787044185369722369232158089000996777252895245033366955768079033027204963443393985686832225188159301549300392754059528983651987012678467316374647344477620696355774235924878176150270822593456758642239614148133524960579638114382859793483036578864999013616283993509047260940736727630958674193903315160033056445132374599424963949500378791856139993732755681870400126048769319785520744634187895839231930668869304433837275155163488329117359763554584218568992121986620816636076016545683224347944548201212939570389334696221782520012644472832220915376830260604573266044962894148839586395045053594676450388070072242990095286153046554646821634426315265953211552651086648773416901417813056265080110180056914622574919636730758732893933450455549622990756492237981199172084927644729052322200353969174609772671921918679168158592377932622596193300474374222076199100726273018180472726460919019835975955378762481731993255356193776874936914383402467803739651854909202106900233844870525687178748185954746417356453346421835394369173686055953795759026845996898821230198145064623667841650725478304473586871275662929416092679847330809158608229509601219626414859443401157922952004873055830780580805138046781185986709549607133433041688972078211545116844862895806576066296627380272141703125811586538365160693321821019338166205828982740440206612197026950369679166039423702340392517640200145820784292173686620906216491971468260539560736801900803375906545150560371726945901234339619085046109382608106559212237017718311146705409542800501983668968543937613609107365478022819920631163233707159919537229067003055146702897143523805041263346338568333638589678352097398016716598383786829491207537902993865263294017134202780801500306507415251725331288196281863036486236615651582979233648970156474450540137588501243865884588741679562846327020582389233642696697345313352862884264609780652165045485309501399879207330751796758036668461134784875559729405852849526029877071906159046765637448364977027676637924993422246311006061015500973233688236124249934911418633323669686590821366136437735589835384741363017536544838381372255725781594260473961501897045513397443041432530883560768324646071088931978856845338426369585260735588542555966277518442095907950528220054983875161698555491189464332835866408530708299587221797383645584821563360522018968565455243146938114871472224666788862674222519922037766785732221773895757380907666334482663230237997727437418375447485106062569253119731173618087702338190970169471940619410242421116181505399000116334801445978790105750542729606313218415577916464654226890882869206574018069816812034798152612531739724229405791181512094288775165244870490202958539006940807019937095084517344552592299508985413823121730161630936558387208033005578395299556217165053064994799017340307834173453191424566178827246967326086740688231891701851671797417757422547474147525322303951425591114142992616181672079452281105718221369087100557854880567523463085370161886023253162818408145342885622863220050398680051411668177054567951621363430776227927324776192803875791335306429292142596965927160872776062802348253242126673613159960209150142897255823997383797411251626370114041262406743361956823434821662642716702371276789604258761147198725517376712324022611109499520133486640657732248090831234583959599498675808553950794676434469486081069148471661123615609017916052863871028918948380191953021504199293437546432011106978827706507724973118345692046758855530486675786542865011871467130558169179300833748935511955171583441443998795833101843720336100249591074691338803475367291885807706180290678731405658272346176667812578694801089168632019007426908241778812200507718836820705318549749688645636489980614442392028089276659670108073656534169430641187756868264429605141803775473232643745735017226596713764850203247546882711596899816583046544978536511278055798676930773320075374273837311290311497233021194351835531989363222703938555501241941972654826791711322580815348888871358214737387171182254628531707414700597362995429496736703418164030477545612083289733588125665885670037548229891477933231925497834003920165420929178118267030483645337012838225465066849397117706523900015779949077596219584437570243899828666299191596026296617470684473087354071339754528588041499788796919625759570791234913917757119433292488775157603100158274109772410921691101519741346843131710987912879123063744585051792798430107183201796723690095672427067446282439169196159833319927520345670348125582479108010321795219353817637211848370914086349723435548947311500277709657520530273254923315770849641525646438908925337974157860520110064322654017544085285657135633151274488658580021428677187363226159326033788881896229533602674522531441126141428362588281251499529692215262437669502943793147906485777063160109587009994545215465321554259457617999243242325238608934896921957712588122157762493805692491660779759139857226592981320827857202561010043330086312980111785512133808826242153136549384635057123066256183570703414643536059719197650989890767334490461912586223505196121013341113868775621270173682808260390105362332211960182184771844246228531390341200271254765384804693945220264851835709288249765666487820888900695606990333745162132686321026401075656362253471136318893255816118096473274841449363156129170568431878195819190205787798831854486111785591391554166705583985566100254182578939213001199388968644722505226886935016385680372622785647696974050811537945473322035187650255576313113603374470634068993273839705338400229068990958911209162606013079745577272995930818734446916046111398434566254498994198282082884325948982524619427182922855219176655001884549529675424967412109522036691173078772835465742429834598466570697845989847020603550847621941692017924282745938101071536372293977534925584000601649590176011677535352041476962692480998769106488883726420124558846072513150426120054986993273293529071295368750227470012211888546856282995065573513839667035071668562425839061140577215162581058948075605881333443556547470358169026020075664819345356374274677720186943758142544167693549264626410458670529330358560911745240725853840027542084606212205789257423142447341559673167958613588516055849231231760619212285123013154536777436883693218033846791412309669326814302123241599787268872803673388035754658204746137138567827728881947138565971874176555307831928794914175641418432274310191486385552454126091493708208148197482553229479756652314990621546224784952546778094078710028288009557261255826010335346285638229505822606756098667885108944650243419958939956743545409540695963966548199073392349813473693990531351465839215920628233608397308994939363948785738831155187220349347399843391262730529333486219301656518304931908124311646177780289613883313068043425069983927543945701187074341604324774310104652646762655071253124874065775739990555384850848584460030237054091728115145484129629720932068299940160354257915385508905123420370776529165578078387405243780824005176327128235767852513740743578837077935435493006216344122449632384356073702967575385256476515329661853942976883197486471932953766377485096683488176329148061945790816291488316221165372062431691583826239204435327424372646553545178151382846363475399736881751619216352472089817538385552430229425567579376138610369777055932120718854894970454098607750075791898142707463758734938314290377824232922474903200237097352922294511295751504695668619464307581508704597686172530282777438977053237636511683296302419251919622590185598525336147690764029813167355348167769447702478026476200181397634422883320178473076732171223469722895469722363012970583318340284196039821994965485676002463871780628926523487432223279659251573257047640438445704705901993133368285037066370000947622184457343172842917439540123889641914672226801288287111464305850374496118587666063602012176082565278703785662527133011800014570646977842579610301380745035210549040373927335864408393487003950414331594578714653564024577309730662067845180165011870404782658439831636053080199612801409099417387293533098012257626613716123670220397120871776456714269343066372305510270226936666601528434644655587713719680662772282126428689059527856910205343030784018611661661198740803744486762861328367961691840851240509640409656413875084073282642007032646041378566897686483715428594612157061306796337745976485986521447279510214216023306873941802980115706007987449162204975236150985419833569444956879175048515169714233174900152556386043822983044766695489850683441230772676482832790674043011058362103430394077333736436105184544142082442142307714331517256344350294563915103789897710735331238161156335155414432446927787691427101784621663176567290351346500279251142909145421375907405941596525558131702279340275765455513565858856975408580937309222212808941422974693579357485041594632540723514948184656171002042534697844986335337664845712975841108059735589766460910366960433001260411483831969433789278827640480013542133964019093993348925918201777319192302756392593184922878252332947084201024593883242180958359839717893168489447803799867002300048441779971994808666561631472544402626383245516822991717362755965780352597037854668060773218390091879772547643193412678188071060324765625011654002815407639276313147165411112298815460716920514643398765197851153314198499349936863507671449390209779836724180457702264488237625821796344229958880433159169967285453448733448147524852403045535639186332530664212066552916889872110508993517344106450732208653582852037259973088856339246533806290302539084989409668670162686212836705716436568094944102735597331585726403629890356648015631676571677772032363672159808835400776439476967276524712942592250011269957013412653872833321172594604370174751187034252063954938343234163735015961595013274964377526024773406508003854920585684231869593324559855457154230514223634916797874592572988294298000886362682447416147682463141615225486010355449410549318827246840518663311841881194448749942474865147520152450317661484987248496310152769014737374774217001866005578620483288833911656018813585328997790574860541046317431996897600738012261645768132985986714754068239632240073453060511580563967467673789283205532351695133904979582756591715647810932246006163829518604107368876160440987751354806643079250462385626182931519929917972715166250798040206637614766247095095135396481371809189260987611159763798428096062080366730398032131160724730229954148976217299371806901041484232809839410294273484975477062986805710243625437862832476728605385252645501163075172749311858089809072878534894700752070050435865041669830197009893660381157824772522119870954640044245590264747383324818018543736306020448697648594937263627149285709767031626945317959600117957296921545106849827500673072684008110595716025210366311311476295635745886977668974673025095657846157458610780285346499062221969763104259005749967094630348989180121024628530083961016879415545729883124586670070236987414470787092683524127043716333639967216587148797332969265951990787865373361411647592825127025387229675414931453948655165365486883650769415048289894098308488623951175004945830382435585125481463211913748254763538736583113477937631054266588184031643560051217205208617078286110772488996654869339089485139899882885716788639950520253198237391034120302599761431082749677386063709864049004641331296634911196103533069966017962666053686638389227947267870023555335223184018609964013722700282145283422403367619635937099549995068097721995231585469877587838735611422583838888395871784700249355686294698185049123813698874564562545415148330714457298444485128217639547507067424469686184013941639742621177606017281979751699009480999231484470053972809366589630735305116328816047449925955647260828727247969451238443152141681612567424599392214344570854849458979089311286938893227633043409138123035902884501562636231737269408304383045946336520053375334186650837531504691408229480920820493420761037626401070011089644675850459503576187998768999621636101838501434368955277392706415293468456584457973177213434259171351364502582608173276901603344348652220785058091862899433126571006950797781928540658712432598577617950421601646863098385000671050020597700875323081926216613263428627559470412813312653003144057018355956445047854594748615664287002507063307042956712884886609725289021779460679991380774084799285290395137731899113572412017905424986235601452294317454107527516094534638240808352671703843003722104407230618562605892358041042871937907329982278464218650339016641248208170467119897564882124071620028172820590270747543747580371056957645409925771478714273154743501944098641715409582991651280018295104047894784499147474124285714513202842254124082347386360665150663399997836624336200317413172574585421774187922827334390955744205636051427752190037597088392696705405419788554453454609069890331536434929519592929227807218140047722393863846544767963736460782141958483457024399889920279221592316887889601518252825859502322863352474876837964804452879891011157650789265118306907419324972769058303606737651402560600403062900725912850578677706256100039627144919224673005456927313127426885583190728750123520477090298557796055893917153556710949854016983452391084181537696046505093291778129508958938769714440200471015159557063424824114000601954897335543814368094413349197816505804463519557473815883145993439623836298567141711768806277343729708488678730720556505891587962337098978542151764720326591706849472270222977322221870319689024457303957817485315488034327151731506846615333509055265096063262402989307520060749687824828088338743961017251874166128926452694076503998744476923310666384317647528421859952370626528365658810483703508026472665170032555019104377053897498379194306746658458602950258061137135575333021227900924088384744701997035712291787755814352938149052647600141275381947943190374126334256440245071382284885874135702349619982726016981599145304118340153081696876517617898872252580002066895167679687629418218937772013537106527567870351309374571567751869811424349256901073394400494693629969727461867945151221638731130396386524797076451841915498069848639390944564232857047057320739418219726332656767282863965713900689418802034809038306738407019983784970526540490691833112628782242724290953390064737565703927795238639979238409675253758937231225156265733201960776511941088248444889718453402730977091282714569866375366080729934879513572557344822307626845931244930135392048183628424006694458050730696547935041991963874234194941402870662814002666856424483894194396764387984261584295176293005520152429300390289773000658438322350437394265161919052514036210765552488830724650297756219302940829241658391153006009100305138059668049284919068992778066106212433636814733679682648384943337795322803426260804402180827912607830438461776896054935851546407161003349982470338862086794338842408182593356453468510770125439439076891788249837752078694210259398188989222968551472029156572361143246844220727922662545765107102506265663545746530422364815349513391787865122818951485715536109154748138730814524389165545957285404996801709429150027510879563907508890673577779961107816192204224131239461931065576642234705320102483936383612529277531471534554238797231245963521659826443800404376610077167866383992248011455946715331570488279835573079621037633360779053366987811460434174236661967276353747070993153922218459619794358293615763819815586400586718254715957479986869737768234063156768746685331630831832713548466009047983719268765119242641878697492157422374691606104402157649846683877313859585301325955102782086575464644629136063112185358726496764244166682195956407385525280037607869485227818353740640422047584622584429152229039994444274892887671891107700527488370694574571452897373564099410996279262258474884094242392402008664455570636834420003373445460984436203640198783012605118068009907899534708910706695276523379266852791461322174769474148137472656950724407425237728291987879909883492567833408499516924619837844803554462929260041254351060596743026192053636370877861637194820278372818197725962776028106391000531351018704205928850676181362009218528287706440349375204177069643564538807525465019697442595013915034515739176993050711369466168607646786315580650471410548053890627268596140046538427186609020205176150839571122107293250872726459358856334573980128780352567161117443703519806222277222361768210902209173932734705531988430998396367842051980913774074175288634574750368026488842040334884548404129563198000378718040391996191818629708342412572687601387279221465846135131255820981752912324168674519867607397911093803358645286801752486944866174918208040198744190056795018731109294602835349935178196969121394949137372248208166669269149102952967647205212648613399596267723759084493287640547477612052620181016035914617736753889841733319224613282717987663483061359669650067363964286319445348733885012770636963050482500563742567996501836030652207441840453895601079377650617089300323648823493117764227755957727691758828854034575316273545908684953427477384439744462609871616509349422392435334910603764490519424484669078273407499590452569657559440103961174873848396517663280471959106808458339951880741109112779054527060348991305885194949478164555042961371024119891244444175070788157324885350527154302070376069774659303544626294503378149055506918534380706087357497729289471697795017050333469028871067269625804903214168996629898850210552897250740394876287705210287467198565973737952704407088142612523240734289520078877464526740128767595741386465512288460415966244963031212781504442093620448823166407491639075684802839880720713806564088259977475039761011575585384061086005511509241382916833327043060352505233186046847928718633434576073269487086004379096251211438332518643183544990817722166969148192108030443470057671884417502637587477620599977593818903229029327917485856462128843148669660064232563662038713357831940581205749135793944225224220880284992347950346190214826376797596276687656805513052449841438983826379390758548276321178032675359139915006982782266572854625745229495676045108932453235889071573849927179952257601364451005775391956821015040527177720307128606379150190807527685863168225859965744593622147277211678623658372211248310151000460419779241642464689729430374139937665841465674044319852949106872613867867229797754624306292587354473864494013893678367986106000488968581148151165665283582402236634738558657132574176520684141540912325769950855574896754090473477034366898799477956380818510953905104352220702629764187220047894197800750566953660450719913566147491435059240759241344891265465458329293906852108015124076206090077533303865104818274979870518268895640858060481208908717065676680658518575064154267899632304814242660762902051278562329033291271039578691575810434900879103644278172513454686106312567291781346903985362694269980332709105058757883761139759801706697776289696122182782354665992837282093314452381926530345085662933460877213603273693304261744775098574948830479494296473950193695096317802002452314825695753292895660883321651392107651012475753427668712632021462298289662681832458992993298274320239419513480701147417977210781320415934009238573409386589670419938990941719690770657976273228723906849432692345636439655819494073655064326393182829155097792101293182364427812059296240849261022357181635632118830874620107538271559385161019879285771184730149703074820188183473404099741320134731409182232021108742441532270630635581459146616141607315925704737777297129481855534333669171624261366051883663361020607265225656745467557302928326017567669598917623497450321691692645235966153572479982940828491379851439022140219115790753362335114215072037787424178459267532571226669279297252054293156919065015753901879191522009228760236368256937111589259599599700017316547764011828356966323596931409419229261260452194257638735271138919339560241956343992967825384241899875438438858306155345872500092709144297798260548518616755536079794923856133370877494073996551016420753378255600805170242602410676252860316666219997176517504313704428527311026484747269464182434781368410970316961007010497168488432394877823440091438933810773939448224000535778660829312516317708108296715229482651089628952613165113269437325781007146374382442390998235958409178270914267160164293263317890277954746465764383922170005257091114365848671084594144432705291360340414096933077362031054318988616060153865236601482460275946250881361251670847867353581032187678084055474909465174469593412291560268018812697270592656835213114634466399167383586913873201716705901880770430031251442490623638199451027503189825974630581770789498538295194707411623045061616370501505952082578719783274227456736715020628893653361442534809396876964905081132535117404295666526524783520649698833386112204340091029626288679942945003642240693395514590490998177730178277065494372144481896994669696244755725375311439722689884388372461104145893255019439137849171824119699772273499062517719290323951414234809334626515841163016371972308630465573907566942969958400982499513207779487349737022417778321370523620929479197187412662608555770267435982286412527105918531763898104889446670112136081184833272429272925917415877439800963311266611473452772683748231469063225043717040830721597793465964819875120156410061484139974133667404762484748842385854832748577140325549639590695695491241746247874539852155860539799020314417080220716179896369992225164076812320027520336112743316466036990806142064776968836978812368453247624794940101658388242234624217070299268981725415950882071802174819094239118118551037663909502965841274149343800284686629651113346624258202052920696405489976627212625066913261181852040697120052094132729326292866418122203930574027886746205738258067992438987636894926566424080610303824864695716831746500374454958678204455504386650749979258449183691673971070696995437894623065586779390547123904060943909951670514062995210498632772470690476275198787660289303750749192162314159859655242412510278988534020961140366934603377911700732861721169420445211662928124517870716555244535912038140418463725822800495357422603131356852131886442648435087273517946840422929575198553768706247462669059761008695647141049579061892915918383286804604234830879646507147142521245180900053249294335065165873138499187683452866720554905172956661858271363795093223377691486019969830920660133724053877940257117600531427176000924443254755894862712389478107218191030347136051685995197288875807282449141084172859226731093860090797466789955049997478299690729009822362684201851206997461083107470427509031686003824072747579837176933550510823251488809719612891986735759454736450166536072733910046268704290573902633731789694044990693836428600761787497504845895010683623632680924105423823520891455786478980006516849630741300546127849002283853906768817067008688030013226474208794929402940150709669847380193220026512095469287745543733308597024777449845356964489702418096794532107899839604065137654762339476859416165353628936214803742222421857572035341886610052606988053508902733765220376865094650556746164294422931259133505445148547847361415879964100459610969130207149403507089168622698861359729713738226751019547706683388523307640364152640381334566647494307015027776150171151311781194580146628167733462336076234407900070323402952725651235899936894342260321418372901258644182675117026953990119194286509313366504796907494120331417073525707340024419282870930110667728275560007329046344139390781442441699862989414214502993285174499504422822913341920891226391057749743039459295517834773262014114076998557960995281607632328349355320974693272494691845176485048274118561510269588657772253583591687131722983263942182687851895602614672290332702644133489052547108689386594916178333780870105904320737487515553363389208730835620722691502299715208609542470924690756553365906536982371110862635611084365101500098740350795443154874976835152849826554461595481423945557956281024804848376549545311099204545909617900743295495699067111582657297374021330082286361018827647691917516147547442212854743409203318610020678639629418285241298851912644459208068283417104995735682701930205624649497423858987930905673428590142660242492378939115370848998538266900116849421800098409746853343595295697231587901491609569622020314023375379420848145596387928903424455326886387109694185617603099474032960540751495086207564059379495401987008341672710303501067444993007529906630410116536761989982326546090697306759376225982122554118810654204227254164461304633088691845969643967403262617657850000389442594229897878000819203638355601648380066836934606790197557833607631467921797938946299385240469044634382017575165959707791101766752177044009955693013680156091931639577096925762136489311283083919564137100026399821663186520320756263147167843224920137823888660199676089360089537952438827281050108943891351238774832299323422430907490494631789688408846648763022785092227407653924667579023269465191962813841838296476828052509699237603485852229936427530326852143838399197291357774882870610293708602409856126108914805320134300274569316485551744608899124174427312341091505235694780630910122767119827922008160687236732852209738922020656935933502912287586765581463784653145341682809633543728072542693918966721914210702833569039269772517399807780042849283838720327675997481532132814850500688188647828225687774125949056708950042264776260260088057546214189628038803931070445919150359327436500002071923672339298294779758655976783338310217168415434185411258934033121621562487668035964735148791739637966233777423160696844062481618964195091428527104459611100266702863613686183935925756540414369246176621852234010228548761386164966480328115129565894743668634590901062817197637297051023806734826541881267327817515990113204147654372066543080355612944994995931467646222360450388065017813131203632533287353301652481311978590251082298932552737438478368793167171423224062633617478802740292744370210325799844122382040612280374615465188302941574114314937282441818812500325558179325991672776746038922245678211392955078404328340852994717663684633322791572877576628014587782465210431687312998734013734424511579857925706947935593306174157146148105003798859503340686331180185374583612118957359558718713049140693685373750047683391122990689331624973943235109504452695181507882550780344612639484542426705951506672026243748215016721775404984207767682109829081457198271402606216141705663420257462414649457670662156480749443240216990206206279858542943328175558086055106415675772713873152326247371920484495992395954598367345831913797541281135648198941555861907327478983085977166243853189315992063425007225456847978866683291678282604004768307482818000960062158795807946228899190411491753377410949462138044657871125995634931146756396865377368068818646465256937952983817464254732094915824868959302234510547337049106572095067302436046072193704525177655206688549497134076986115286506650880477012864382093832277294914679954752449782751869573741440369373860450290898564853796796817526615063831489432443282021322297006809692023019967400908788099207556406690001240358516245416639180530558058410266348751551095412156245210622703374855548839846080167909878065795124928253603189718617493486486695155528320965912309963135098759554226613874371496469805562606897292681482556749440655585115583183718323539178102537886251212942652549445111142895263195880703871648898456948107929247949913293654918932441886691245597788566045678622568986222279208517905813153455442946154473321956800300561161387756119958363692667457678606171615600402677222815293274626706262929052069158014782726756875326339356298006225848922037359070316014807936525482779612613891408524804698007721063018134497919713317604624796552201451755715505928254192399322884185149201542717408606160647531558321340800636863278967658068460646403015090257839005461327205039695323154789326014468924604256080611374714852367793258200397971377371486327309429774216109738949004685961532682941577372413354915634731915152319627745596436543871901327196177694346578770608580510529616414340202710212503690504020610926166931183019624752267028772450168731708190366736033766829286295355839634434657001388994942203247934792324656710973461392798788554453496677990935216805830350586532594935612553509994810733143772713318329689272236641725949491657589661747331715289348994974058049993161700240352958983825256054223664521513484867323837558219817604891207123852980434814962042978802239758700902379402215899074978697419790641232566215356682661784283915135285472190414270574371117615353970648916983085883698475035636573346276905624424024224930008150568148020401442506150842217592023928463171489298409211741254710868368238005085076363976223484870068198777946911362729645930156917872854566332050474549808933217632298522779050678347298818116756380445268346207058183793011792456525764709172185134013258973232691863438623689584980204275763765648353911605010641881544344600039852314358133372840576827909748068641124321533852021439515838383045233077302405475476684774314824752682837564345030787201229991168633221273716791654717191507244777519546425672451977467210444611737955097949806487748273139760875689772219409715016957288064067528483140976159509875968693353967482935055701170545820668676514503565326083146731765132905272169693248038402577277521776970503630462209271885854717291793412343065283859036543156680483261157880442270872420294703208496999065106399711611613369795025310419459747469957297350351095529829289735669780222372976727179012220794100236921425799257482391706745423598911370721634541126912291939740212980176115934017268219088178764398530360265513073734626455553287294507461675391779809781382027533955815334489853287497603405490406904130480982646668729356662194109772286591590718544791836108529947803626735137780702539772604382774347965278132735901709679342766386963099939921883012161268074085861171531179560024091931583763645433349733888954805192765328431981092580813518290806190588139956359326105874536549775452114932354693841831373329417506461946643609538924012745553006005963186334893299497700645865964446425845458224796831620506756520621314550720271410227880884990694112224168104543765757367313991843370540689476174999754313868720437882068460957616125500229293705776673440470639108769055360348801039386261838584831137366671265921843703737734529110246059033927658865752115684958600017253376699121800900658271850348157333554238103167501127250070153755009913234301595421888497017133851946299345600286506017509773146506260444667484980142105509929448503906491668332409576916248987374592978385860575960882369478706185105558416922768241786883804403283154048533381131074577639262952228518686739553583110995275873365705870887966944212613812755994647611959523479044015746380915731599247029694385886289132402326784697467809844686087817673902566672435046746875388253515739985079728452599876190755654880329198972980347739549913181747539571624370832013662843232494033317527843802060235919938324244788924036084609533041084728774633407542683645768524451205572896224058677722863238762628026228704173362604554863899705412158559979908191122346524208599907555565716224323720057221486948687503961528666666712826761374699996991473660580862940782076380811800773041373982218633642224551584332382859768024810369539120047348475273957204284053980705753013205627609154867783088030945029524101549813196297986245486516474494921984893445994786644484518838292649778676707810259297773082379995866196159008741525962982436574521400072472751422814200911363049898111381120351463719731224407438043179702928217861581004439960672622851622392669015712398379605832117780756568186596138664759693993545630573273312786003481603380263469491180025347597128788610125723861815448034264350924544470982571317024983849806573356468117798836102189144439350535806269169438749398942636769063870333747304285571316376188631574661378780049645573078904089966566850347512973652654292742715568120420664101423635085452772430547440405683771976718125987652495597043199655282766507327347865146829489940571372268785930173453616446849469588093085095560980010312427020740363460197861297618263646478665815972478097789846286148258059084539936607317409814791417282197428200756218781722175401390805428525607628153208189823483451150327947905637326427641635144555155913000044845669890306169483749598346101929240012057137781085407685979525361386475545790329648538576218443094370018222819713082006446215143521717125770888147611171803341123555867256491983966380118457155019179554177216007537647392511172452150005336488753377394748539436091261840384825847631582077296915700993546341071167540368058826959474338945671862171124003737432255846404320884400939341195286716485922372193498208602826136324539043588017309038841918168547156499250682450356814273219164280306340087088371138809896507425371914678721337006380349639192904309247679338163988540156790448660044382157069707260806702771546323924113025742036876334975445840018777570429848636386315764312781402092579701888991518322679265144430435932319847548687681705321965364300972949001604901038602727586382668537894246462623170609120503520157310867021034703915630866230976976166726829903009933858629689071745214531633916677339604098339908833799106563422979535650605879141196096795617926270238026704356610985328524071451605509939405222829569560931878372571311624844113302634367842325244968907635172669886486074150630269094635473710038564196487063457150127340440156585370975530067492572670091731505510305661679956731895734236587693569324986971402086151040890749637764975890574225587182369892138998611990728023389152969376574371870239438547376282943608994868822618222175230980925183775951847268813924813346182201211252580762001803295003932625183773858998554276504876280561411780695874941783684118340579951791755162892763277201775148284697682310185850046523544472569292032257332976728495507522014231776136489868997581940831511428770341366062604313566331336524418754832349101945339922708937170066396770330392079768044295270052621908993433178445268198401593562323572313174666622328843377750159081005473057772551227949545177548831388350978801618013092617942293667992025923878798047355663273896224134211009065153665134387534786833902232129387913476225682818761089345433952065425113627308299708263296878487843108998044750650654084874202698151080417911672160589776997864390294346538594865665574775572369261741917701850050586532537308098390324594422527145021676347021857629793563382595431624014213701429970738454169228218106936922363786688751053592395387423246732018288091586647497461226784598351881728469205444839433745844299979975863080332198890493538926761802352684095804093077355018719979761723771429331186710144255800417781837656754675492520985057432488933334289851190568961890618216568244834404950488204773764325461027676771022996747595221154912269949006865829988762247770680072936714595426527637387827740656383582770960579216721460414929580781805204385907340279892232477945518469879308764360578663517600906000904727115441191099876011145714842848953881836174201579024320933570774901458029999162124412354986489123443784609734908259663383184131956334097614891556472122470966930973225568424803467687143771903506746454234076027497768649734410133153552421168072669942643771419283544201433553915338866473070131699649595980137972774833573822088999353283583656813731839304527042927919467763148655991100574610640367997749632724177259219807843678329259252202390761728405178806375434248094680696697996759045852571179242754146499257399058434847183207784857017783242112442255053472203166256517037429625749550444335771445719724077885210311754614078380411003495551016700245945049224588443176083213430552609661006851490052241960729837245791237678205888342170405182370452133170852357645203609019923464182316510949295532431524425187030955938881833794354766408510856691024149211275894271666854776714807864180733730433517981693362282590025029732384522737600201657046162877612731314982184847645505996022492385663546945317397988573768029976523176679431209556354082277800462308338866911339166258357712344513895159538858921613282859915510101240006419564114982561319929597257772114784605463362778874150073038859159572765580016723522475765480421426190738364309669902404649612023214819295848386201952772501243685697313129215592359335892184943331897397554229614005918656533088504260032843654953744312629464990862805131436242164870367368272904377782478558934130949110321178930610652817645910829280049669026336102437095112858459356433177778786766156898770919984321489347995902857219598925431506615068535657394311616340268407337370699923303252260437613386735664905649697652999590244010826020759754976075971794229123553995651830236880533587820634485317918888891304806852843225398945371552455292086995878986987402493996859865720007796429556040050492926444340023548811585380704940785062092083821226580844534118871063167535965103639119786357746928712235852795395517749999943012709167800130351164744610337579358744901681194947334835589219317176487783683101141250327770491183721801849712978673435378172911389016029399288100410043583971577852108015390906533914676429157575258822275492088251882690920356190638215807208229830707869202611913333482898492646535624780907100441405597973344511288587225695870049976967885899937351325270489037703353047949020929206815396129156909747653914869829496570533775431807661915202784308638331300153147541780354209393099688520755328699046226084376703233445020391268415019547363569536942779644387988577544441079010461156727497426179770462104377019436999663861373616727392749832132075594736012647191714564878203199040115474737619707626823308333528112900456970132363699015341951909904953827671652681406281147173655505202500561747451979297803304738455205935711961771689042774587889284502767365404024072931071017391145968916755038495325112849078055322561069478226800591887430689799158303771068616240631671721703061424347221271730358062488302471782343674471690815653054400381527156652882724352495523310214748577955091253171085274990503191231278236796847690717598701125642364056983997058985100939748941965014609331944094283963332916946128273977312706893206761895993308107874568692712830273625440925753030471144753547119299321171815682026396136065940062052603683415400957924296254274169034689480076529252936721385010076650484296206726646763068875441371216790255121266067311039631905272259244890191002692220963968160265190934782358278018495879940454155437642863620919278490975241404094353013700585588627666675559821809269280770906854853032427232247543571985537531152270253215687358396258276491177194880034074865565494971462336751176706697343354469142712809825106817866900599484568226182481482584671094705451259939211943296365824239313402787595330146718030392035398005114847149766312176492775998029677214519198160822800114666629779670861890813879168208584981049540121129390613053603369929923956925412263283732763815792917066234562026000092918690530857025680178643702206237967260556551845608703927277284378855992401867840592926987022968083630878292228901129202788198759884449224213079578305490866191600296980938400179697027762432753260365350299317113835455986755153447038766140483536299760610359331204713348449106900172588454977440635200726532678024214484695196177778597863881827469350797670408258939688650879940996119186835892897889025111130711816328175798427007813910936389730268691131848670733801580073447735940651158084356326897565275642841651022142368904762670275053421660204869563641594344145104732944593857714528577770929093760747424561066091227792491642295881406426101358510457095618409576777779302648035095945413633543104314985942270619928830853031568751496448515379431076040127236680825819695809531491165213844368975150136365977001749318739216706067792470996380786195814854173844781417299940260622867161773385141869690817422343345637851688562016972321120027605591803845787810852189088475559855757751923609660147231359215167771619382167981668994042962872768656159004609126857029399790649351537299560892176214822946850822280010618238566407784607695837377419067943046887296167051497350579343314151993738104017103618162966154789569316499720668038076007999585405043007897185796121387314206665155510112943628078198701728031256133924227477607486443448372071840959376329325721598721764007933352329098760125939098111023576803352352965819068915802278563194430444759769798313755588302586287353688541497818949276209708665367013345250736335355251412986585342828579520916240933164521295897330462359073544069324273854251115657039787338852494819688248109577439624215113694485153227922158391474802063550370393361640923254650171734416967800260224255459160722451685302756384015126747887705797326645926876433787095130459503854827434071809678710796815985430545742983187682163006245226006365440786503047733994889956859435941996819886893538433040688357301024041199812234428373453291936238432761412800279596659352762567324346381555343961577987217938241039452021747308585965573645722293447749368803564303322599580537551204569099248973333284487693890879006123891096684399406209304541558240684665053681948171276746853424647160884751494443557334726179846513055866713768336342910279342250135748234756401047384008678472396389431401101518300499071604621989862223185490894039042327592711071532168394662207563909883209499321294828259908609727306434493775882138511776115427291641934032474206821109079082265538887559502298249949431995390447888224386042406737326558395549491741993821868633843953463951146909373694205573709953501097984314472717816007415494475517714488832519418198882649628038480546541019507219029707209557836893717638025829933025250695491885727968396418389399072840436839029847211312020070621940500944539197883692279196687575461945579987799669279960393198128664287064094453163314040358975545570742852395724690469434024933423252021933524093022512345563415201376850280695847652070596755446671654669703292027370301172958923123949887633302899630237440364889659052381168845734560984631111753392500821915570231989897474732082084609810785925368368453784188460124195049805563874955909047225555526796492578978672056810868779136336145949858624558323833392955899451497927385126467884577172889630816831387252531805646139115116185221363210965601998308622697056559792721352349508054741115042866896359985188542942578917798195477713975087909135310706213978506117169614954605480754009672316955218768792438134049671989805477354777714594703954379576722949544445043765453457679091800363834996130616616960688856067941939996120778997677974438727830039532138827486634842120724508765538395230186750993101413799197998891712970531843560585777114106273378000485230033454299033609877742392562887479937776539732625330266297962513656366258910897708791068352547067913375563820421921422011473864396005997789220528597229666535911014852674198093961127694045649884991240211664383852501426522005569252566425385432134933957002848241564612818691677289086004608041817075185986537192807573673070962412700350231628908873185641676469705796564737019125891331865991936054005702718919215789046148712666722215347080752562167321179328090156026507020940380865355771158608551093633312106294274973177333447128339107377253828187840055301384490687515066331732073762379632221650570489346567481241122566198390613521022495346786863862683035041399179900139943671491841668686684410344721664355292317181875380892282081297207266869090838311517674893873068946507453428480993270747866101023673236730041529506590460405650524231183634965319809069869688039366776182316594586208950423295679349535744846292188065698237867811602286334849532449707367275813259304490928648526491519397542290663344148513566659244627888825386074304515281039670801175215384078981928032466750428134983013631399623722311917583805786023331445360206984216898812710211133424903596419307216361574780832885124045259677440663934360584024835633129260854971477484835307015379851341745786276786237920423152132942354359394036081932735287450996073303408544747130619943390409148953727515421707810931241241453695636271682586197941374735331320771431065259338325832134576260433988386372297251711821342950905909073759122718178911145272851574026042344366315677474547162389119356601000794146171226923356516519058065786846490436048066700154360144495450948412759482918008474306819908473158980335324188585696912316969883721921734160530782642757894340068210520704385280292023519409020905504851469392221320992985061227291612381709850255267151831939656908081773787633569273807992208232341596761793328399803466402375068807599080145152477631211184977045680409376216349670748608489164098226743835645196959617056938004217500340434868800668463124679754879986788594208035437387958015528609932088682064319521106196215055540225224101798783363883508496691853057790861166189854070029146830854268383195180007148517447513465899073048674110079999335403378537954232423042570424609505438427783226183800394278175102844266620908973641676057712771891229460498637344956733121131995796147518097581535377399453940982631482211170653330915808163530573351792713633121445117694373386353295155971256924472492312482291006505473794341583624585377697687014109538584557656990983335699183730184900778122209795874362979077720250549379555018980335029891687704383653635800975934464478643102125288205379722412470614599603403406285710846933878236119011627096647365178676538460684956659234759968283429386693129558644899650869027293599163882442546976814923110224396587817262858207690655094088694143833960107448921545771737843729833938037598458445314058656319152103389390166024318593757341839042155841849995828037742796843789270220435688008595053553335864485431356871306717266892083463733645199896492307001430875172187193098939545706610068262842279093615145453820469155240920194942436645419179956348749260310502446380966614858158883625265231868059656484163981254049306828426031999731695531082365761534932810277684256351032314075705061939018147578045778432497815487299270836762965463778132611875547734051810595932148757727191033832850196930950209629507899575694066586982459947092245001428835015222201825884771460889735852616502120113967217171951846360271926599212092165157943585974371460332269048356485897585247406538321488584999444977813707132272693002266244645768785420680089664355559895526580380284212647060373845449422607657009045103404808203135333074011879581532926507610027400250244534166006577147086691513621637281367993737000341312568662578655791517193764794353906392256474945332361021465023001113377660425173940026840280515968284976781466652877527427543227497430658416507146323203789799524429093024291210258125869501410777916774706877744900141848590551075822107628678385503003290899440140727000210804939915329650290835808757583718435607823050551134860328082580924938903397327442140345763348993887261941959074914498860995003571109957424220266308940885539352772470367538697366959606524581020991142177460103514191173391765986205867383525066952182481875803758745908167213176194877702734128386769970762887239260479464022236509603734942616696915167055173857355177440753902481086320058721691345993849021153042958367566369687045391921754674296060765691870827179678441932738570500023347039168684786606529022888172123386569798361006220190814692092239372566465986097119140402591051268726565275890461854082634688631527611229587123273702602162937780961838166248294043317498270058559545380959430645954763784640940782779388463581186871972620267386787891759826685915273575457751400056053726342900440012724569668898821054725016447241388099481609316996685420865176422545918812762940186254797833436249662854226222865012593926778212225596792385185390790026807249017899794692521288304459209579222729027886646997741478644347352288751671677840294621663010892840226830681107262378372267337795526162933995610240300049099102228681618636399878046864831895073908011750108020079265303082533286993394541222486222429651817592488271712189628443493316168755924043774831014401155747693234091831625697554819923003145215358189299359076700035648677262979800521258551643416201421398757684701540613436870768882232558447806921331179986632500119440520347491704354250340475067980313806411194804050178726078688291433584458238363451132636298172970117365954065591158754276781888456993730739828743998470611063311586559373318406039341740905155112692343794619174938750169848361859746505935947603966547227130934732675202254060629696549579188786573643994438253885553724396296942334055975837812071848358254219805421477290993126961399686765389840312657950004299883205743298165361916560034068828414846817137183600126042587063307184570786903931999130659855874331892083135061658584644374461903400804755156298570643403320910916884567435530887340114764839178212034605425916241894267800903470846092062229324490956321780078647136920027466667049136337021225344214898926503254072675687467684316561617763715436986500097050888894836832647986120486455418700241488726879738579452580638779814699268745212809168630984232604254523494165126669205303053588251357985222458517503149914509425479197765578237330141519090551451128817255526410893259273589681436129944522169923599440345347757991981706957389156672441088602436263175351698840110999117723706152261899355246344101719301807720893552231049355028020294262402986626568071305904339578695186041815108466846092369682580747263296097480976550748675726785474105541452671585092748481517023732083308683429699260001237448603588877415768912072183916463286064507564430758000514529675053726599499275177983374850740058344618163266246564258042479249409122574226825907364737857632737833450884483193436046205862289909921887706844051499302553100614162481704487817980268543000829587773052240044721176679229433262390490871747022775484170662923830153555189072475733296947333734861069960583378169769409368313221393048182786636972625796163066991740349892235554768036442058861085547950500789646065069082463254573510526559214178001027582759617940251579612676616532348073531310563622648187451175657236404232198499825900817350433634676279532829262731383224611402738419174401766750450269176680525420906711353587074675437235561384638537002236985616477554934959881732154095484837822682120079821302676976607885203213654900210029716920395380206356030785000905375597591417755032828564289499615030913792258934785959935700468804331260426792570137661531688654731511667486136250287522118932258525773662348360091258586582047888817116958319556384443112496673249595899119745426227610210213919518761735244273743545930171815800102189025146183300789366083946852499039846846531928746099387946568154895998503419952323304356660932331862689053564563959511222317168918936380622153857445069804336602946735148926677265938398320854166519015078790744713314050127422435442590308839681754408451871517559981596490475388824764993120069507250019568170118338757097239178116260342984303347073139193780134799678765250660347655173806828735172100488569589820245203278065501409171688565552356442936240096341459162710836978403174153598814267370622250198471962652448045464314444176662561397442111583877503503756537947453490948619673452242534054017080313360625840119648752694472187392277915106563173700804059512258579901073403057696006033764212222513418273701633086883569510789106422496692676503139498783184140064283991327849609750259869148989399487477825960443759831645932430114706086798454984526283746007033744784834592575084623794589178383663042281230362324648419433184945082457599565153546052398328227500945711456338071880418031548530043302785126357387645672474565547115097765947593752048232483862588330048861349072937401223990800850908815612150413068762479550099695289825802437410153239152229743972116012098755739519553503333098007088792368743890253215328349881117112977175284395963653212841667616581104125666600500597031163554208236635818347830837295660540366903460535382308216536897907367417864180073032805555610584830150380294353596722476393155640377185012920794059958449261727014924922587189194709760277165074405060412089332636552090693328392808227308697699859148134164189450633967899804232303032669828283002122086810045419541692603236474427000327666665440709345945430593652227030242526809180474340451644680643196095995731859016913162490113752139559154828709470209817567942504664906403659961764137099206973641787925637047642035769667288730354969328451892320964513060468452313053154448150702185120623436972566989060365649366759536007044342034981614294722785994032821059358297259127487863130203268775771651018586992372618579003231289227589301376917438204389469612076764224119767156453156649058965268130369843077820859378931354575295666181695798226738291087017292214046484229131419537320595081408303614441279356679226911931302342257841294822089109542043044134041556521929805464445269689993616972917374165472846147071520337416456315901467891134613200558257419637573277247524953631216055700985325194640966960133102742507382908420776130118768421739017820219416785001159573429844305510697439282881913815478503939491914580462894852405828748650854252886339347682711563409867428853022189037003562146473082699159137922896140994077815613698172200406387548291800056043936192288740993792355873384395846747098728004622407382454392474177209151851550359334219045246435577539108589148645672821800011978428113952003465048727584005418967046374076140018793942848700081878616299123147655376807032019395667051821767726086348540034975162526187789311834965132070663645879408441798746104380939412851878408015886226970758314343560901115587532182058140412610819227788171803105281686340027861017453789027813139273812675483755809982049157976389333096745385666411262879786269645424486837934665055902991590146831630606415168724898300092351447393153060748510340296924749846054131621331660658003594613427343144788684615118539519613889322258618997701048225508561477762874515942615365791323375617743424228592307492082795325775161738493608928658074707413499928819102763976475306658046822779763624428604343875749790404066698387947835796384485605385892922760298664006710314182453540175388024817058459111943154067770205007552133717178599241119541593679456291408119156833193143617377047103733414572848464667972333841463978045261845857197703578279821570856575084051736513170692593591073039993944501893645128036966015750265433440726189861201157626742729866371434872192950436684446372944525142403603067087144466667435793625948966335521916024786071353605950047253221804988155689382320730355775709269612284168270968589103697968644605525276273867338447578649958020962777069010769067043833456607016083771195687177433063411184027698987115895273282998953337416947627815251587045827702164259906604634051078335768687201908137539616821116768022610661036958165292829822054616750499443919457121540570984579291952953363283623423220059900194304704774600997236535148225117659205765950520201729396420142005943191844908553960863047369033856487996714018377423227888465768493074471587060317160722770150505971285056229573989675147708868241264318016934851438568947141603980808183889970945439749522527608213558834677187809146889047411792590395903292691880344186516800329105118876507807452633373215185187767193525188785273227301933555190384415726222823038074942986097544493405823619726539282854270415082885840054162811167464807595529631757456676640250976121633817990247610511926823638174439878694773819539835032114758738322382600830029226568498246423225133292112898844139996182182367802169694659409243229980404259762251693873655063894486800057698789698317027831538760871563977321670004677633947678763902262077144247811687415970030375735048660220472795012666390337340298520185401481809226485786132981536785951074520656091149316427442502792471195430984000793592048558963932263325495829949662523404223608451114329894561386294824711884989929039798865009262115920266715459654398597003513012627834339975584978608851050654010110494289734569808329379153286574141474122208634894875438862228428017103122991553225038094147561651804790796962666403435758815312254208585735096381551326280687705546589882915132741432078649196872754493359920053926198535222643424313762064794010629676805559628703663213581700306476600348970031188762529127145096563159762848529021046160872312217625112961948641178387766266033995465298892420249927403334869971760841088831843151691776345004361022028425114071500268644876059477636005284190432429699383665938426077873769437045531020071483469143937453724647247624360407107693380064651637091116342254268337833292648506932074277122641947109967645531832267138104343149623270342062282833568296295804550509137972865340124200014503223726240174795555804624523651377458570941938720346200263008903397301295796318257413480226356809016809811108948490159780650922225661691974717262496133103692366475846727295253477819600708118042857467812026556688309815918747747921270429066551153449652235839092634957128160184982267449738858177353976790715248892939905054163470179197316758614014740194309294646973690019611041124564276443212447511802908996069734797345404549099422756148333895051009882424024208633894880088954013147770559084524442671606114001385889398898857050255605137027191283437182862808973399304338160379792087542481323633117739196450837046570281224764065661854121286486802100763131624526562190554595833391186621902755776182515060231086117872669329923922371880629023155387568516179139303077806209124542636513384306913147906861315777587492845768343176093479254098774473247250879152792611063619181068549099109100620406410093899571646978797884308594232919240681249163352810430110515795801053073321729150983489788497164818477807949816118102695209473433811712480681187038316313155558287496126112511091079678657380575799261224367764308843775175160918702253523296726567903516346014540993404234769934989616676232463252398054293463181494488697067768313499794682818155378283606017206753292724983023053130301184376315960550000421507358915283988871075720793515524124334025840027874277596350134653608833415266752435857921186207722604878783794827856510828257360663420769116047362529583682223268057512340614849311796593892889483420884528559498109956962691981864222442263040842326784308226339317586618146342508080219322845445364564399386124112188570459324670108419005343853694945395876939496689907852272740384317139894945209951215763848570852876080863432831698611199300012177336882324420958667930608456145550548022735373980897659390806436199553302954197592897236019670969742510607087639723581616505701692336337046444081010893311656161951981485231717219270928368622452572727167205764053214738895517087848657093814991276130747575799773107810055971713912650700092460361706550770814317647566219757787269752066929854791764383256750606725645903490349587668703560210232622652321850782199616149364816091596319674880421021969466956827498256325561890703006192163681585762048722975943165364686572502985748669483998629128295355985582293481884564267978613328422399137736193143286104996483992322361053249284868630883020577825637385172353023460489308655827710258559273026277755858908349422197716909389362593163135914549083950135681081540327333856146483674913024195812014526475655316347725860194218887863641143535395035154046457907117810855427242231622752630371596078020912303478314927469393710285674879236680133669274319558961792049438933544214912417929587045843059417496370656531347431713125480204229803903654163855572843916499048885390626095897269732607088236919846856501050220099852408951921794042387801895908493054107163063657841683905059129556457101072770637015511005744597189207425636703501423859139283975690736088343985088231075720994606100546937268649185382457613898240526324615492200460479598519982477812811387486231089741765534005597232690588930534100070445159156038888575534047393706531304364267629192722883316009977662988268751214533118000186938949501075093478865021968482102622268493902549132963324889697292991074254332722647925760632851873921736566556922590469345140791865646564300957540221774080074690232289110206101476899457656304143990303776838009847441812475005429389002365583339323797394154900071051213627815619731567636541576326994858344399728092918303493903281994348808742160454806267832426610789678415734641948912901884892990053722539456621097071341450915463929676387154403511627926603373241308492255820325869661199069440372434583405297822323466720541391678757450168745163349710907237088346590641393736564148825657003879369892022192766982824392163763200163303813543171714517891429824312433348312032495990763409021402616578252704385456127451486986227699099629595784844256104358710217937547106772324248517690393475022035783343599113567350942483050686772182989174242165563197187092279873365023908781786140822148082673950143917966027486650586264931337646725531543915963332125253429629299389800314578447899136132396503090515894998851056852613078705768074927497281132056904751897309874571706750516447998816988999821122195601034075978347404682383350171475991737523430869683885035726226936074126012191438580925447050964204715770215101762716903862409591568616164710942770147015706901407976012163669972723805041916749629634657214409718507253854406118813615257031603012163484686197729568536471588488814350896228075839947475210451296048472144627857896623868470316707862904811072722952379724342023014974255994697106079861752024022829378179311279136093178686619947971953419345698588309070788181669330209135181223979623337835550562277854707152635661074340362805497399299442921796232276478109034171319034139333377298415167689280433990509969874598133638321775211847484450319643632646913444493163665494169624990801148308493852976490482708520657532338853222441924421641288234929367630985431558535273957210626798323255409055187503154013216801964538022712617231927560282385780529694614654173757009915781322257645906810557494946169513455986962529532210848410834033217787123340457160382766623143080626997172908013454417827517472615850104006851999246853629999391674682289508243552878305238906892815590140891254658165483724798705660822324325527613916525891459179094689758302955101630377439330390276733896563261868179253681375425018134714630177542902085980734682998771372437420616206632290332452488577770124599504436718003785086637247070561310758811928833785871298015226337727875318168152233699687084665416483358882522143553774928734972869169184040836231599351843245822524705774708083327574474822181107209634433935289408792030134567345319554023508151866464455702295688569026312271781010166535546464200633048790119962164819075529036502164008538493808863508373463930850867069984710701624907940776917939592310360971942355784717860938778620474177525500368469203705841902250780942235900910059137279422030852398712645537386786096724609020701782495146705791655308262325622437606100379148199112434332678163823456923552462129444526442667411501563721236486417795731043134627231498074329393778875722068331384890210440006736126989424101684150818570439317954507928062370741309459955320953529800410500985735016445941516552583648772605996064192310551978188400689324475014241311170668162896857719582717106035870739275425689645863668716007097651299419769505864665564022274026662505032011509576583889238869900735218820932536611281674313409165844768168048748969063471298106167676520518386204796149887002777079121439879443676051223255873810723091673924594849026612669728854525861128240017241240652416586522215100484186242220266721726102986061106597156893679704952355846237348862635993464738444443820568228939569858882475344323230935877327940822682895258884313463655323685865193640464447332812746641556950277053765264533241577901536976674803868138968685654199496413772840291955803215145605191850323230172695191929182268308958169580031705872988539231076017087802608851513737984521899129274129224152032157327082074713934251406843555900633668315051662260375518908151116452648865174853014457736003442534810364845459772849323842577606712968334629849576705089019957056241735245711737799130400709813675928263564180555766932674349236569871658061614242888705798961392358400543434879429764432151360003185932974198834035257484187471173988883755055530354591107405881387910278589534850055595320947404647536021874332275962418265547627485623511777635475890109362628689942495068457546781735090905649806453806744048983484490200984882146429628909034623725848993210933031921763058869455283575120779298080634139414955544046908664882905520731683270014690551628135081924494175360359930312802295762309114016418500932125913491619616973529746012664503277402402640547701884047434670109691096627144191741279842520482994846613911321944450692248951248813442328421050867951639014089888230128930631864024602530565706477149047988162642114437869154958783388948059062287950778077190539692360985139844355606957435539940716622663145110816685272252188006744750234581545710577634501691772387302194317598656497165832783832030965737321158691912295412085424508926528070767212551535473877754851286355466973211949527211712691383107093672616842347823716162735806550741183409951586254005688313004264533517869027687618399495951395657353206168474785990269277155253126497213257001946957702490447810509177943186721011507380799710416542637357273248010822263724676535645498229903740772901797369386597632501442352660370096276114894597897372662199700373128291428017954975588836621440582713190747491427466643699343336324931988599009446474402034717422183318470520298261010683147896030034469463951725002616212181684631897449882556785088596861058196874493338501310186497191282537669249809132786999867477375445613708511229022110268726821327908674092695318521003204194683327029921985356737303022599369922052752907028546162600345446485382206391333846276342827687693205874518666244604152487692512690492045916001887030006260496632088919327587858395350218593714340140057182635263605159766504764599328750031609643373240396313596001378111373141990844967844681292365757670815475405948031466218923996183913126900001535915906347862750700982480151011556185737718883226856788115916559991637596347758062372378689584591420831829530219367071140756568432437264098939799868589436060219289531368757239082249397202142553039210675219452776819412832707257100858601721774086741414692457846741668694485436023127700496297855447548455646111835333437166636597240438837158319817680909235586359796536254316589603536991145656350493254058312255621392810434454936613025928404408755195292179230098963618516610309693273642208257522961552111462475079616252402755199730609029202582308510877568821680654667433721136345526231073358667220159352207615200860556446267762059407809725346908666627687997184939326233223656632304327149005822629134057550481692070719670603039422420545828963155736868563981743881863280510440622362240113462171616097932147055717943063497154619761306222217099306722454469420926754937408185238471690503139518196814531794619820350421322199833567496288652050772247022155645059537557407304113958365087680989306743545453934047362294772288621112293477319586672350537694516985551819908107009214035557103239056242023806679539231010048428189223529082604193399103449515205942347128026382219138402430006879911485494864167013815532161243738733577982584103638292778058953011338576249546066949114841602420169149268493120252615254703513785850360440258225482328490003588332707767076730845909584340692012641152600451929210829805618151354713820668033769884887843867521549378341806072470067427842362079342442615806184812342560486035703567781990054842513092849041519659075922543974235070557608851951375958852531096776976636816116966391677503196126439373123401453925821592988944748531009621853295079524152275735864170261400782846009322165799784786712962260756446540502104976884735895416048600351032110317086135695933268822898656832024740106085038956928934424927426559548051688670108810537053264995204084744853316955479798070089992480689473915218065186000354890015096085164793532556488647515903739966320758542754823775490943369925185430231755033719944817649680582729660318056633802206001177239848865551527088684476369366335262497353755079505978109163794018392982369596791060252976351551485743201578839140074398369966360373305661826144553408924413247030947006713218966220317490726885400835104405561468928981688194263298476007562405599679338173649813376506542178794064267892798204912449371159547271429942262946986636472589905091717510118287501084367897818850398263863288236801832777418292985556487519838844368594551528373081538593612125267497990935902444510731533422275976531303287664150718834099353685074255445361409695097499326333403452527374107835070544137905996206402260737262227867751305659908497878115869322897820183245524055548837104574518109940627318106223880680636509966222995704102550363349547063471072042096264103301231832305633901001257058184575430336506341453070640267264429653449154026991857725754538193140541902265761765406543403395192398260608024524690420025658286128747370571958827143255360059325950116072176610457688588870816013099613209999633820518372948581083803521402293434397579744486750986333673834606710376762669185029888584924917908889982432578580425392702183971028995168671251308075923704080327961507330008443426148315292373037591930348317349782422231263711655758739669660850038577109648725116371722747149506620810977686202665537715354244748911464413994050023088922705009009064326158306871949628946768042140207516669653350779422093844630963376869657568918570393177135316948834332819777305423280024005796883841888144353857119924990273942734161295150971668309226245978606828507102213409392490946924110479618674489551287643510281635298814314864049293368088083073155874552203917484149476872795483214374568124863436640033016406711675482288617924774442302802285691879919774958947039701890526358823004614389581418460729179035254944628168642621734703450411446487184121789948828983539913134977258399774418988983738241178895543945731033180109535109622852045115050993142799501359718552002722803205260751487638450386956130169373870142077886431317408199085720956829901439920939726032868080006003366405059093687981947242337162249576336162675270201937171010853174715253913050914288926365146727913482487503937096881278642671936432561199002648895219491754993579716974000739022417681155275823519539406518761536133750873804327091133856771479207153645609122107898569906400015098772748809167145141836444718583677092948738612737825403377391368397020640787838267669311308041761783636276435338027903128396763100742087156681946455412071219042729376271934557854352449584852543052630931590027402092432633185852417174094212622079485127778684031329891444196383241179944421120850400451318819382004735775362677674919738357875373188602721660932183716808796719023125268068362127932812006754302017147755091545681667082988420685171275278353436965409406796144892083262125657713461056690646904889684650559616227474627122826925232700650598169458671280464402370605440500074066554078967953225933911768225215894444110538719757305365295015591963758773658204722684864334877890863043466370950935981230350207912891807277685826882210697287017327351710026251006974125866514020036095564704037342052976481968056528029293648400401040792450303219420307836294719479288758214069273994874900096268687531681249292291861003505439642042303889545865857450339219533743795447160538576406724584003268757840827686463100072130682833054104309169299975815346037303943570322367047930336377667499026770297754632060206543476633903759214890178781768288880670537220516342921734639031744719732274402711871030455210420008996721638769591113567833053376932511077948232992183711570652077713027591626154376546471166977385263753296443472017759065104308347328864220096246771387699327479462081301014620365074936414021114671300624187902786246324329621278434081125695055631427439097173567934296952536992211133547139194928427074031922949472257554729132975159080867064558907162169731045450099852964278658083275559295542874647324183839072354198089590634553196262324990963787010124649120724689024113751106906128771026356602562248507946796282223439028141509066023832656572110577786296350380709095242102856851297942292676017059955867084753293331129337009533908286728608622412574857353909278676441769752442068077861050494065089266252903032096275688142780058871130858416894267854493639139650011455605381264460696894172067610741825362606902461981201523950684928643087791583225535122794863201323901646010498984487209955586682267355460008005198236387201675395403863075999340058548521318932857105429167441990363633006583584794244019780312991637551269627327351767996646925862363092638727474311742419449768165256780106194712797807103393240069279202686544034958663175911368820793325038478498404748451723389561148025264083829911851949464607450515064554470841710426497343064550806019604688107376258308350868358594244255524679536867193022623655497688135858721452964056348678678833098964424917097021799094895031081135023443769193799255028398015619615363751297369325500049160858027438500738663751907336854647813037481180936007364568046848088205429780175837821585618483782277297439392000228342244168726510480703067684309863961274691822253053413065682397086419750493486353796319102658662508604364378338425095585458334770535045160257481370304941184965207095125489053146795594184101307376330065628235401596991357113325569263531985748865780705753406296207224809397046549317040006260440272912353252957074806319120921663740998724571901880025838775286462189337513733587086722968137212296654924631120677063471908668514243184128565136827600369640818614595096236345552816608644627164082519718465488118775137409707561010495158562262697755637270689381444718751486933062540555659964997212754479819114509746894095020988517937519821723472211737164739435335972132256802343831728629436241468237565298724087118788764948818247021804088131337801668626484302447401503736836743895556833670277734945918924108572871931802109608370129207994134104560754642442804314479479628500883131904273831031076260068207351671456242066977618388044205299901265365728334560298511098166922426713561261980468802348325903374829663949193574379386881746939580611051189520341810817229607691947596839647404968842520997578030404927208398545421286053263337211392403013938848940733413931876607341817112209074568155407009601856875621089390577000226638195885798208991017430205960089463242197643068708033611323343624086931687981258976258609990513733319062195863546563769168790078331399567955875986932113721455101067517170208053169534050351993166062313834489380829614069097105182833808895983028720499971657052112715130995276882715656921269386251597032405182959510059032202502796263284919625328189800731385292090575892334171848998192271947924013280683622767808414353853864416455669073865432416682124253102515626229171900249492497342622153001402118550853537717264081266576556250381229780778122830634715027548693188743297236669393160580766534428119118036557845298374312517985095556532992395567604644337208271750324456208037971651165509472993915829136809052403329327235785782811749068553600977042064809067304007637670180575376436403975579172992524989511148284054456069947210665556509416401078568805315138040522574286559201922156772889883408584064551178142092202012321897503750794039360886784775538282962783638512834672284348529723614002174528596548582691563321027710362443354673248411268517219156057256067545352897229587395739495120602541973241342832411691421628458275442396509981009789726647513337602008071060608714420621050791986237762180779660846015922460442107188662881955565097385087644163739992981427973876819921870118060268317392674654817603971255649599922134910748242159818793571144848455184794912919324167275403615355963572072499554569485742287205163494180114158320661910822979442403669926018836368010713369635580715193839707288692148875583841316058392942095924737900987404771971882668627174193545321015031763428864948281349516085387638999594494775421275271506463808513218950911442828002213277013054355738079704747051685533774250292744115463151331430310636779400339283574224701735931566917489911660888670662027877517840691524851834852024954483603409375345177537617823330605470214081624653427632591075392675837372889470986836498486293588663441211338655054471934974697366558227638119077932994140936242553867585554855502434626056905175273982116946542234426970692878012288786385662809024699863337747558886673454857335179570896361306019213647205721475876793704948878492935548738512816704997228218220560631553105943247750213610687163544016983515721016501466298446490484275857627912385496724545960914523638195005402178641594369777776927769546190092139161263060490083841429844676961519909161409158231957806267417889796843179404803263040372462501275610711998829817073407535322750399764793546396665690438507066590088163667343318891763701855117635290669094368766993513437855750695582462741370785403618804906236410672971981315466078886840799920980102648293103995996897395193778444560663076292681640053505905748324907067747494357142912706050489589374348827322573609521086539796735124136660573454113452554765293199041734078135715248201348279222383533766510102613699998300316895929515067045904103171628972086991943872877906095154392021600667504562562242786678880346518658158350044808291654398333707323156560347683176039063560877028218743784312650540766726690893444604532836456626997250124608197823472095063554598081205054026522015870067165075744160469039814475777952322225432536730396434730024681951226288114276891474714528623023322980983457361036896654530090180636121720680778422325941395750342518022815214335275796665269929909732013713327917309889311697035411813680937583546059417199734665413742585332567088682591959550965821442756160726196002803363260135209405118340174080461623484303321629238796641053232761489524169426676839915255235959222939388107710078304016927175689687192029342079312032107169643527162923234461587867874129008096655026756182324049385568927093677849044269326111958021883723121296948454028413818993991426985814662067153850406899982444099107041805452757224757571807005854457942951484300062754672932074532943986897718098227977264351771743046184718611985337225909202485730175768825039410259178046228178802483431801031170757830553547267836863570517405151756064704608695110412481164491912140634550108299162616122247311984042901141600270616654426441934332035398441825415447819746178385357257785992042283229467273297558147669261353648957318220432175397800489802943680475368488930597790622200678280819978793716604251869472913669758146968095030806240216462715695150748856279028058017735485053875601612079861803017300704969420852887362941276857602749460250836515546141201180848669341806354684707721971215211422245446850140606353211008133049801643990610574753546662054362558526252960051116769512523737372513392256813910907453003233681269815461498122443737103000255895238336200494512963154578932160733244462496901652887456823759794144644402849108259633304108621935003874864922400150598955008641957886052614809379452428110912089686450964491825768728632540402038836338381149058441090815202682111730368759077680288931875693370199227878436515582438295010914454651515243605754869872940219458222353764288483647799077634892054922138487330756017075033675358732116946513219265754748811691432358627288421714713550621566520077809108271473272810103194165419275107661218946624767377088857608216686473355433591051715060074159097229215483069719545004521623314104833987009031281628680926442773751094536046163467627109238106380732663767825876796423186020022164911411337497730331473305500866188348934219402367662283418654394947613420140979091628807096055721992519959040179386998219328136893458704157568177466152455826003053266551868686852540356512338840570363903857772403303072740961112260269244387897159769041338115032073388102854866084243503368000188901137695236963123041150667654928238025209927239023829490514405792742816085963960362455847544909281004659613963362219120207193333755594585729894686094487160079586651983398558763865184950195295181502926514316454735878192595460600749469441759723197283702877720771662066966417089958513649651883683452574927073417486950414675013526096699085426049334150352433689279260072851928624714084723392813065831058180946446786595303755797020315289026863084287493327031137363621394548612527478023139505502726401243084296495723130125863088136941832721017909026434848406127315447267539044944175207770114001633750292594347645205583360277688628708589079077581470130933652971728860850386786596061633465700970196013704956496981981070151737713195854191689685951759912194246485391402126276233008623833276368537234148887091551775896055267148336467016218767749252983521204408472270955985979337430345830760164540322446000965478385613266830823251037532320116649258195858102592178930352090172735153311547137525661151820918147663824624898088589458945850803065412109669633315921535932309490092072724207709204369719038380666139764720088252454058041562529839011927432481791039538808197402235082999386470815148759500806812238413474831988948518840136540024382666539598017033593623174450065016925117719484169910455729085920204336885073967377001026730568086318699842472513915783384610935951289186063552889993008579900323420407064513301189642916906356336085172635329011960359064733008147152122863248171540937199285621701568979646784123202690767617065685308833817865000619929649393774451625280462673459219007780450501756731315724819404974042056602022548398155713304686786815879778282272423233996146073661447174516910593417236093542912842033028536451517214764994231646422354284488757005455580950900808719666550246865610082003474105205826842129290955917117360161975814857724089418078283121990183861380245669454472501607363675548457416803688430098378835909684586007117624048133558287665628460757366388059574194123859926724704802703125537323954245293933684150965283681077500782747089044192885904021142570056076173302739668985863683283485092675730472333906281659936388248683895439775752016080409375068038007592641836244391618420397766079954959258593466542401950174437753112432928531154268673307217154564749816102297705034614547595268493787023522827181258679391168924733311955485483147777670175674732317714037045416479884192352832811608659024404203996427716484371586909504940574532971607541305917788596414073508510474906119905789486803760614108605727434252479411341236455204761442015666415912081494586918207552735532290095275475884787609753530493819856384838587041370234627384597864030294182033399274488659879072360030716574658180551444435120190367635252980280153964124274626619755058114426761657778769678505476617677796380854174731237922253936565074728766737875432848495089592342441858909196468914917286967413254977258680892358583101390408629651938911550666116165197561349992783567366070295691984216863484386033692602752515495793206975257747812699781165576768027311101532664373175345446247937558302139273681733205244659330848137432060536217311339737774228759246104536673731259416033343912883938792897419421133156856005353906239023394028285621956676594316296344187103115494408190851410615290846214239165267069865218404353623551035046311808753481538025693748644129812491554224885584497715586705981060808891021116344687884148364370416136401633930823369828943075443554183936529386144956970384781230906237083317840415749836996613049116746377820439884746684801970806441375958489835668991164609759322660272571509901622280373636604239198552203083459101169860355732292858098477418174037185217286710677290661060115275620079944437087735140972210829933830723334868989856738669625269146181652062033407410944069424499720020343068676987302435920009828950958187258406475215229008604256934873662666228653869875910947396623239417099225322781775165707717593643780278699059544503497352507755213301669853283397496982045990984859208715978485114613309805087765684321304477886178724060859244922534959134813254513120446367078466019804864421216861414682768234959872351893988817387636289082819571629567375959094828824954440361084580689324508143058081396546002085928476781058489744183415838334973167573391667690051640588456356567884246419579373616205410441393146533617825564784711731661902642860651405748227476401954309247911906454234014108885174057040277010561637990321195283666756773576263758958304435120510266236838366241300566332612141417841807232784067956706191115385775005215210328192700802534092409603369414065312293087398427872160429909622937785073507788117390364327433776895221868209867669670492083319643535863705433473112091653168443187676147922953125627221544791019842165800151999840644919894588098836344269698938396922997864568805729092207001204172334788072290760639149145967839019284342410909435197125024820324921950232105552744499962935912398108360452404548435050066013510524049756675689996688962034649895410562028598363103768717164101167063490723954731271869114188138494296393393107815622397033872723399371645824084209234147662538681606701240183466208922268813462469696919485265355774981335772201375412439511883345718799193329924020767176692844547836719039473136957339657780833860563023792558713386880915391661392314508892605014306506917366523674388802106283471739939101452100385681334276243235275546006167551916296358621055473204187237950564397853806342562604079088379150590369539051442985345452026805109616515959999722250388105593462190921094217856311545669018537258516499991282502233462396779246818730503625859700155780806505376249953250439110331071993239255675040689601542663171376435926660454008745416967802132951069855970280567225171852092667947549406162769670683594053611239883161784537572567098776926465938975228728528367249373060820874194922030675310280035129657534780605159651903265945609543871581603100603211868305578753940795519010852324804329491986340055953583878659042712241942730142450799800407057994714430982727794657277267591500685470259213600214343833176493471809094064323328505628249070332448207733785202690075814798312817269625876405379528184333006875981477259668230150053586585200220602996095108595262068372141623240661010031679357628333344188573700163535411688704822601984763079177977131544031289506969926165107025048363866475649889625967659804929278083775508612237400504359025088852864402322597568729200951694118604858327111579493115963935933044262816304132179382334066782284884021272019685899134046487141764969437768129181622467296133748104892112491006975562136002989294199492531347102561331697080224478415593515486740746023019919097214712074217464456806671136955031083429607909975306416691165149616873848328004640352656504359513966123166533893842591448150623057452412645221576272799507066582276747906637359762132034356047982549154195728783455905376596659283805587256530780639784338576634729579719759063255510302057371313498472664206498820049087548726769954312508066263439761784274986740616465124999244567867454681652093060160517793936583449707777897624622077366546485186800652629558902169764324978999830590731719442077001638003512452807504662465362512017944080131093707637946766990119273795077593349223590167232770221294402934494341253127472321739048400310818978341341319123118296459056066870891770038324474229622316166542324797167416666038849600340683616208323070475629372929601021263042818064890600189452696277695736020748591760719525655807422782454860722125023059020689706597106393295703625976757976643370658218421655539116271364765390505962309875877289358816332928611717319856415378479885231580910388625316894134325120434756364600254285008755766102812673042075351585616882551928948418439692377934672903502041134749300516606605478516203186009691965876887428850074672758316663998485658025555872104250990075073171464012567159718490352447408730185650831266200871571194892172498298576996633344901636666825026535413658775991438346625219475923035459250783027702670801297517725643652056615484622893354912741137719826455583006178674139770309115086440692024639240069110294978623645486797486495887352051280243945214822870356057013995653131225680744227643409802809312931922732217188444755950558792023484883707392391455127956999482342666806443525080208905352996057956167280640603762511614204338169896758488873423962674175514884753812673085279226161895886140975257681496949617257617171753813103816572250345089485080679448308775490816186127004878983746199993664664535519785659059019485292255773755487122686731618659145321823264085935300943164835050047665874556230814813184654666743937358072502171495785636302812550856506172980726890830773045336605953744787478164360644008144808560732555207325826407461626450393558391311382563118220240229353449572082393941252579068078599906641245013155321340381572525664688565137522480323343872523792085615950247267414110255962204289365498714672933276261565178965162174076375854252774931216453467629105530068651665530852832349470680659871730578683145037299300165296326378441335909663906522193611227956517826082550225903853830189656717895471420501026193956081571112672260751963792381298218795392307692898995009672583413162223948752503459228704155487539619551806426700824223498515609634942055201291577475064034919855372528784030101134056176264620528774167541595674669100560422477011431445745494871256344840069972665364660161176644812837813372165618256160226425622188269542912436324514882492184583819935113504860872274004004301624148045439238891755433091175275072860191069586806774474597664912703060077943466528031449604760952776803865910872525613096470828056451892733380263335272177860621647765639874225587214393147547515230868014557485906832687860515678710585650928545638303673810693671394021828900605088765986728564699450513240305690766769302476310559637419961297884534735560097901439795314220084491823852641382383768943145968131564037001439490484119373415786598759952372125442005570688859131033875562478365754219231647299818475726689729340987541965557474027242235758048550435498223091168019398635430583918354568895289773962853338486301166795331308995589238340065943010706739350765991155461883441118265341257125072131830650852090101202097587637796131181316874312310109926548248095116081808080793827477560351979778695224116191894136670245921165888044631753499324778776213366474000990892380964760303651354368244477516948173807035911694346794756786076402358048756230948449128071938398494145470795648106605653279529257797264628448462175786820580687527646832763351599583126486550722705772657703366187738604090458510364451980059171967954713664349806149756072378045658916034541664800788623110684444248107264196781230286236931441710241962238077631503136415789391369244794711814232464690965904321302088226578282793416569677721722441607118064372223456192631298415349931232981569698475337244608101741700091125942690810286291370100609788070352983354978337600944622470899004369215172766311673201188857735501612127970971947197050917609379963851787370158293434835311552918232572861011523095572759850552925171043544450745720554753341126542722766015927541054000042809305464388093006323658091747507641962845414362132056769196375600587206600450304730330463794298714910447205383076357848927623073838614269836684732394705323265069077559220707926975775901130136150365674418242159419241751253730313621013391054298096572929349134076290495138234796633057451929054681368871451021786062971491296278603337627053059966871630705221706055614644932575709251365763888551177177488294438174670307126145453129559896190034649171157338741882881938040989357248085825248687364277285175778576181040870151627269347444568083534326004648130328083820308161817856913872617120921498930931011261234450148670723823151677763312240955970900222280663039359940893947149724695898056233973509696267953508362562902114164616166005520756803907472233147351654018476548945906109265977184375031970426643376846222426931284083688206158508218869568739635076455565307277678497205509466669878857525653655690693911042058588767505410368976208949988815310023091097604655781562655709760539801415904278151147968815656758560356922741232589849330205156464064784386962367530898557153450501267516077847964884268131818182234056269323543835386750355257401629793452822221584964478084706081469852796457988786115601798537388180646121104176150643377111179171219158341588142228681116046519283418271412672338502399534130464544758676166804626647958439002124574193093177184243546469363822573427146125979631846712966650823672388210208321224958023552255413887102662856650308030888980154551229252208257403833506407867421460119764110345798805042405885915361308714367189103528912109451420476171949489568856381821575478747348259333893847054836167956327028530225282282292965579210121626084563760781532499185783436080998343710385356311827661218455874074853121514437765516354827068117600574487422670982631824382615809160904997443753018594517642414940671746559580862456899192436057971092842793201031224012321399484205180934511898643694642247070370190837372816884113502560956953151967309150319977708661275089411292725340741769150451065620864517477388172465712921106148707527617071204969008643343303518715037784203002245819252275570738276203027806216436432351933928617899022778755674096434988221446559118498835979414667751391774776916904992231989810142416386788022642472435475321877283534720078546891253121174985882246668476087350526082012127956942548158533747240391019807834458846328337314963009591204085852909029563903375241768047518425028815295129379824863117182903638859227290351685905035993475915525435017596222808863506497369283715992886914782142477785047217677636710715899345789911474687050280351786925129547187045077092092871349627077506594849503925245763018375459424050890933434963503740225427752296002948807351317957081415671087762891035716769042891058544675847581457049205521746934471547405711059682486827287630628963572655609182391062396019670128134049793417941446827182872739017011721925415209845073398258047917113237690203328109583594902669235171340174499115789387321695934131780586366699656092603140806586139257048568369959815427161451453444817868253135309551008323487773941597903940412632834736097889784882045306366123075940880910261659121603620230762126221507977601900495604111685041224783953641106159357929200714388618828637522517306975452124089041220450217158900334081912380751786127820047840280850852099201585605403009765591327803305405181718971575644740523268751887016089479005497372045684966428483235352593263091196388326910121592616335294222578787932602927923341754840665475549616494271011921977885424383878882185472223130164478155007244233493623628718087403111252031399361605850478143963258767771043942131230436782289104738198120760295571682597666028653242347078506857791682047369687333281083840494501565294880949624996564144759994571192317463483563510421776044700960112601117675858813145109977489300699522302365040029735009380782424432121906382455168043852735233622595588024417800965451908135171143822326330658832911056151704466178380325777739276132007745398388896343088226302089626356151187301061472299441851286044827210869290778636220656863858247614126993418458968116385029728750993949866551553657026768355460204825931786541776267148259624944794308679460194839921911742933106996840305738351575989631919379759011968466191809822261734252917868977141010657962866735148507044728942955970590218906270636676264804179574458667136450632134425313591420866519168783440919261760213245316970797928014043847294639913034554973588461373318552669580778763423112366103406697132225300245968524229933159462174062599249504271883617237691542143166827329795607391399986521865973112179632083542501935579482259567708447972067366580592800851768224505792619632579928483256571116421113741923229482536052124626272672566002677105804339573587788622830213819927906271365445720001865370288247651151029950786763259833020659192633335622025741746578761266821163583436181057390498940233899388604543216517087029379571133351060997938157095285491778903036267918953192770012018738557954195544330318369782288075877172341728756613304860827354310848253131199065271991865741165081961879494860179911845168120808425769825347246337269252300281065032868961781127980558810117853617755723373940641371140474300838528278249097698764703405128564912141439058246801825812033413486931727273097585239898282524861391865870151775112675409076565143565284894819987708379352419769180038471734815493212947566520528083348147307011306556247192777073188752034556122540238696592303501580381099346879554472281633283848157613762981903424396179692907804594353420879347428861242209555217660121615398716342820822299514569759653412896721946485880251727458179218953933704767565790150925249281339020439663292809385900170331527283511937687195952364766586645476398064313231331632017966799120535114759798167185727332875441007150574597054690860201882944539051784628945529440519409590690915010521120899374394022167208749968131461728138565170757485214502948841826858762178766253141934473956278322689895751877548922981052979758576400154149446846735304475156112812097217982736889571379566696779924024906925652649406235826200117916874612734182368530805265367362286919545097969673438849723956470815868378185587635362909347094979898468415306244028893600634747973785677535554996266248563155143789343829077432282593428407953378312969786663737987119019610861208668916122282603354846468919540224487553212099876616386681285878941060565598694209357998656364459868259627621016919113725443389370916226632321257411915719126553299986262809342531612028453775756409437956025625380717951888201410308005592804928681013991163167803050519322004277945711819740900101642834303797676709972504299708497798391182572251775916969911679696884579146674723863924536821002889936747578110894188616370373054925085030455971875977556259259007964125087419453948218246155906836441012565422708828330290443386732288414396946400000981574299842468685041978389198464388555227620911368728257270950105561987773082410177967140549559666915126923137564280221435875123208757747807642149031903740708246594150009789779687999261682894964339563037890926630146748813002711148811256432314915075320642756831832734479822988635725240368449694381873896695426698962495500789619462874697358891099783670777553252804541085761994885160799801341766419585667143768075420894267656516473250929133630999774920701413547915780539221730977020831898022221786554242154353781224161850801903332794592049670878708555496482824555771288245681627298859431571877312568745825294971033968947001494891521209004963621864069831094287932236178086797359645293666913379597667519224557030794267807914378601594991407187998282374881409375624024706728623108259303271705330779118036704668629430517996604180275544000961838824453622314760822245859939156522918547283316289529551728225950059594231928297328438594901241778497978443013365732848402050513380326126099944527497330008712855731857185234607718369168699248578096442572666966611896882170504259261694609276359889532698838705989313493684276411666683251230422614570314319207934323967369064434331366951325796854686780443451126475065734010551738798766504208341789452778915751722458671094273706387353198867708256536328652122220668131260436860767852659039006069486395573394655001381070055419049330270457860875757503684943633329703013264769348835723596411535263905514565727901811074128124142499334351382218753828343099913433187911586320392136857979104272193106831761878307252026135878161829566429610038596693399894968763537681677986700958531944728172471572930766506887984555105975784718183720995111480428450216104302241552590262924863289203751625798567785271592798277497420044833325772136368740000007475309162853664100993350039775045986320450654012955867226402726997236398242528479829930387806537133853416242992389203102758992281274686586456425626138610019595764911039410830296394119132491737555783173825343884577906734727027336082472453785355416790414315808228875135798780274428315493977717023733177946561912332467024559722847512754574139145168401398304610913855611630785239736348861647436539281408443933150782494634497529191880105863939576715464684538318826550395002779616087488007827418360857974571605031176609864046641834407776271172992353001670069198261018549794657036762051342447386779488570853142319779210195645161091364252590164535542946066551404127514221650159441167994630422615284210730305095681745933363276563969605732753765796360664097495513322442416885198372334092171022059707577469185091664002348999481499236411459156445972352154664574280071513516470767226477039063752146341216405881872704565654338739058614816203699337055813923180513449990381975964155942657100761193808252928457238709373987696818035984858152543285629585558663173439296339682291342887215756309028109763187953614069380765776821703365189465745715290425464539517432878455859197762951892499199015339806718357283611447373569000058157219363776777863213607717773966059376893174167548902465007640640043529623732372309189926945990087334081542576452380463914239736762149403434104882006185078810043139067814552502569480371385824913028331479040375844839569973619516392447788437452759997680152379844338833309622263923511010102804668717326750435274564548739653135377425634610920368468938279986456282514611089435733763755559994229038611714660827901525825393118337846215736547644778462576348823306869100521273505353106072539819402708531329210608655543120938098402248568737152405628408697432683167025595666102869278846053601831592083893058201584929147945972579809284248340618193183790937268716737371184531971762307967723558696421385446106291567263699459785649972896191583623320239322257097074336118758199923005719760186769628234344630431429775637772401961246661258626529047926105497467997077864002141104844684071405521181351855393572433038126029518627623064932613213856404120987269719682837501975196427295372968326407532545935062416908828460113299254136068718093758017672086749546462079931794753200514429463577697911980589328565096462020789495516859835306575406361773666559893853548661037572735910142834944828946650331552043922421801837334557820307917658549287024501119048479895158114020649169334636709766393486964439293809849176326949224811603117798729805551413912156364510126565783817928122450269648563225856605077041183854361517173973382194455563972346335001907570042896408417450263682813786268252505510894714310172366705601426380034885067046099229306756647195337894347579777135928460543333274759898519692060154266832967523768756576126148064812653819119571837292358299449328876821171525846554895632798626688196172852699613868364668353119353512228177830162235766404127672857617997246997640460651002067487094152368583267916846596188224474324174188049226481992090755122803399541021332295869090731728786349083878529208288652245997861828877200972396664372239277882111707255105305100699971977184647089853775492234525656165747169427471339857571217824439699895897130875179212897654849352506236702732162867280350780299912837198137416442429721507680640751569128579919380478686293838921553973085802160687828964684226199248635428293973846205961773070425373249786680403322084996733061728514522528592931969630167436359125876585538588990698995627213321555842740490356125562022516481247108226131458626565373279535381607176182766183999681447402988047244685939971527775556097532515561819927223636268068892101060706785039413722765835212661765864976510262140330678636383946016077015961444865439917256904377159150805317346029606670335521898232635844029378919070608716126323948114347253206243422507098752890211927733021755316879820796170703204909580927206173186564023360843617780085831457072201335854247099977144432753871442755199529454651919597429493497143639642906282404387517535342336453821167731436584704742805063221419654889353384265331350665598666689637798054092566130018376265142684937512309069927503631126530495167604005922843786169149629790065194210759878344067773144895526834104087931470328842434471264825141515066928733932619161763680155915923365297375713212182626919409036027165260447999380067980671268276328562444998109685130253673149340518804633923068969523649829888444158828937013182603962526867300552962268410761038041200763440162543002262323239550781212859110150769657235895696315863359594093771737554820012492887003915224587811891566489801022985817608901927576618109706144445951168177261895927992907389265638033089733037357152704661880875856843918661926929590440022769746363069499029165120537811185455666682865814017859581124406271152356869272741789308981155569115330073025011533889121251998479310319171479826525848754766639235376391978045273382265157598303030156861507912379759302997683635434884246628743694896356210180388738418590964245878009158447417284337742570433486691409633416549829745871383408053737000790330919741924193913215790805568607878373814643449876260419226108894160160939005729325965382375033660163008252607968234706560208143822412829248722866588166495294741080052566679832844081275410270394024497344867421978195371235763664723529816709366653265927096821683155233226601847783839112368229299204072332001258159389799372945445524203268156955599181426216838741560555040789114711105981669782874361698742822982191165154908496112873258319910219486118377603552992735127899714657793139806325627117727428534608965829113876833745622364792630870375781503705660429982096159329293604537870533350392862875461885919973721685408438750308104971168193861734587255059703370521904606827152390514001546408068864388734994450823901849525012658828155004532014542818891251776792850111042864240898822200755725835689708017030933612148738902258174027712250195706769551231354980728693747298143248690591455768756604493835294785075436204314401071800358303350161672977191286617858293213262915245138624263753012069319539793456044867967157037361467403933431749191508191926926676584092432859253239169175653435145111553989035432315330249306379517616299650491504644604811861350486361380574774656876054156814458600178910927141377047732127603419972582476212226800196820893384162849124053274947462815873444232998441693412868812128798361831504951702115703310971557697923167713114711840128936876219128076375127123697323886726663015868455663378305042627078328398510277510212275262574493634886171903703662255432861308408313033775160996690629764254781809546677988918619713338009705282367951931490118267884089162292863049314835590743080130020616200230482028191135757416387839671766891188527160266176861684500719561760624990727257744670126133812456454296459064576881225605670017890122814698226505056566876728624076035239325347148503123396450487334340542029584252088912654067566836375147223990837834938117880780548550953295177565541594106113240626548818540350628124564180873856269090413584743424557350807476808498504428098564363648863802687278274570455902384272856988337049624572973524930568439363405767325653160806441637127090374530146068942435819339643370309437258981873940917919290586470974645944771570854763464281926986999469374605153019491771753145691166247134048290211998063109572273298554731771830800742011149211786514545708403940493986686833260365161023912331242698947353611754005521135764857559776244601767914163703091097743996064279713346373671562604492799228030106068836078867323684018970482638168917598621185310265191892656404286303171912088974376905434935854255855956643047459606934292018395172132570817612145960702320616117739945356582538632814228309435155942531435871290147630972330225833929870312792098870092669003903597925046863966236062362071066137425348928141243880563434639626626237653133840696466028109610812118846065535244333226417226240933266665912223199104245676948202919439059307162731755987722772313197792902113152800839974248696835770788521306403731833554147198099126933702952626181016630444988841704547740145419256983179425986845443413185909891466246952373337035250349119982808056484006551372880087921442149390256035446759510956737271291230388985102567406070596733227836116491421014335574719040589375516522708211236079375900214372751545064895900755415221152818840670746854059318899151147065426174854351404555211167329179453493854985196003486565281758101149834947885104726392632116007137884968972330262884245187980086298929519994752487801884750889552206110303304382804564911137208167624119423549759475557480335447646234849035903788165853610178007165962713113959500356564116075588376466821573497824195474901891322399837297298369217536331664218747659119426373981221485688772776554427067255207884382847699388055065111697176918428912241077020932095368517272318966866962362093356289637897711751476165429317574664293143715854408075487946362600586964687365286439165254055862702246526714869971145783638255024619112193878358225845796307479467917870227660017687122939339657115839439383737070291060569573039429680262052322793317742932207032438957828753597016132508397885824333053926364773021861544880843486101083845581813546172103323082616096762012166417349245249457354974343229621033297880914776989939726597787419716311316105732509192774802520092139902914814989248741640806813297558551001499907126588211404733239311318035199596514800437546617286156952484855573623488792816999541165051220046446102252595451206901597410215726417521188636152972567315517605942435110629604329287647733106624078040019339249691931867257087444749716507197591524774776313295532773776626505132683039172306960548764449464170735074118072634837529493699540063723693332048787472099173475454201505300538112732275893477434316221039393321188870102542410183826177556025046934287479108448992409409747385590801279981151768526425188343534912370229832826815684056081572345159192313233607555304524581407507296768709679906796088515553985989126097716792807140030474085817488241841313816532795964903307925808927408468020125449873660883014191665528004631320570933634491033724354643780115801984295682001759821806623178708056980452190066215842193134577675377693583631314375045201688300955016186094032960767109209105862582918616212799494071453760705220035496635061814494363258673230613766580696242997316191137864965077588016455973026420256420154394791849084417176926181322606332467501147562157830514418062804842428296609962686110259924503266193655886479830304821709455283738720032268810420359812703087402952239611761927084670969932399239722741341378126595306500397003070579905100059919514638610802676241479930211774073181987513447946906255624715144269032736283451167143819039907289813476380161035012199481748149067484125704068096208391743935962593431996933969980760423965709013266421649991385917097121487663810365524780613827391450862336005639156370314301464849761843760645578220330011042796774358345102890716630362195522580257331986236267507672999689974392646795683799553943105008095072748048080634686432997690712171151912106321070887227419959650476896148964845208467368219408542684749087260165884364074762610263809363481067515386112010666824210225842287910476677964870995720253510624705084035378574540368428615107815248945319364655900273372640475190352411279627165385583882451595681148968922239696955628643082039127400332202882215657592162556979271463222751752465436402222267985065866151436677734809616494731224665148040162954335474668054153635892748293607619858989720827973282911345104566916582030669299565924850385703436711422965602102267991536624652658301858614515316475981154672424323966673697320685951478724850662465355499868855766724670072069014310433259411096225517937011718338485205636035818110531028538993049386762499497470499892625019323817934621031772446946023295342406692144370020989161048451103385893054714425008009672598912394874689237764921085402423796956365158189745343733670201665912693092449363094199185963524294271320438640900234182278534027228398567597759055443727993369963575899741566698397871044963228782269707661961323629993127731876635332127505777391083033046343926081813656438963439870292765746735884163499920217600023501312823597211072781260403315362377229216096819446956747043219129732964153997769544135981415582627351092171022591283502759410902920476397078558848975781724360206265179305649359213105576357389867159506816989611865649979702468553027652298447712323826147204453524254248546481338941812927156506913001757450303593813130275990282054607301043070727730143828992443466539663598988922016766498941730088814315496325517386034075614118726032234578292332733595424641214417182336523376416587956132685180463446725098371616075576461072224467023912274090789485099207790364314853206880182819385294818565539243382704472886107457095323960470933913923808870520634695250488920026021268715520409190585180919562949600144359887400302853950461763386964759089775695518248188600672431396518242714180393119517259104061932669696440961026087895819957825812093244941286583659307307946471850834497944513971060403153481894953145433837688663615278511430074922253688328108323450166352352451300874699285925912434858010974902896363716780171817138559639975208511456001787447765171896755058039547431962082198025645393243610122190919249143063335722750326631172661824319383567348075933405106694153147253506736942658610903419223644327474729927372091913008431720811096867420064055289523241792871028978718840008987175785814454464060316304911326933039955274591030051928953556547248587727835915754743691291453537220876586534592200622002840456989353208718875071162374685027636571883543532294281313971484302321922152421125285224264561202315367848579290692490470789919421355280308534679723798930744793629517411283195895015524356896081445236285742262988262745828272483122192011790894831082318367610591083277638084403869735976994355936906279421666836382153492459517946520013979036913555121036890221954606925113385339696045665334045373611896304068459195627075228516896548151551081355937856431718378275507637485193318439426752558696946935516654699914581122384786513169510642372115661555588641262009374514383065931561935614344749923642319362231794913813438255046552548952847343674193734266234908951238099154458276907569851354950491511884802728935329580873599508441287231731678311386357865751943198667329476500448901364472054044765490369698624943473845575280841912112012243309552476021441709032221391006136871441226299239430191203707395754752435195705419627371017786166042524140695406643528425162882268514550919196512665744644640519282366529639354825651156362890209198947250452125490390114689340769194555157421365565405572950859753917265045966027665518446360776528827161886793873924132075396828912402594830566281302168675434531046876834185668808423328952179718398205698296571979563636200370943899912974709603652623570599937830239655091408764404043208035711764634881632488640173416885331913831555337111635178056697018824193835152311225676689123954900452159289997942871882613156371805149685748837065040810025149925041584008490676622933521284432530220307149961666658155334957772116872771042324158244332173674299849892522775180518516672454200079498215732805654340216933346080896351496175789956099441219432871103294950547163230126719459533956709923687819878404384604907492655435672087826348416504407825061780485490965276182320649300954295970301609661262973862539794029593796832704098520880459984289343793863780263243785679132709509104992900917623501989349788277127771437953869333937187127576076927356638995206801633555417851061346361810564238356434225024942969051362495110717572574938830628367776121538012227449771120296153359115345171780641026720383926380993465528204961262528895439448253723756467913461827110676480865978320891801071888446190946248163851055191560730774299036002676614910237185010579919938083081571948397648735721301943994796213229894118106864828600651877464376948609474874500755560688022889969277577359507270102577659755357875159840518784142922353098636825855972262741913853651328486353538468795416496993332838088425220293009737225323444264238793282959529045444355591734114511054623586829627676937125615542673536420527834414183144116882368393489654054585015259457791712874199448833852616230316064322723984870867425936050304507608932723051607745942126308610848259219103096278202604424326225667644785995525415651029597089282059459007410076117008727060166301128931656285448731016331001469511877324527592446483570616587521867345641432856903387238004021783738021905477755008330234632830080093380470118476255909473346041182873060184320226922105621704720592192053459052616883075574881454679430092109287935163370430776495351763340243049757482922558863842004591610424154695283062610901395651138693524514068988304882086502018459333039529389367491711769452831765374889016626009719359223845774740141060532237959919860018115265402325259233075883387316573658834665177989917849707863187106051448749551823008809107428153778366209581650597905461039987708572004198870698414892720683737656121503070676950224562151076510359032361013304103542023685214414144389257810615267194162847172565526936334997775337481279462338429784732060437835343640894382415268298183901130428278401922638747183810595050463730950608907747658922535730019523962253257842824579758426376404669309731707515663129153487824328038485004698705758637049280569576730333368652421358952431691946855970689000161844803909423853150186788682695452441072456237210184951568490998776525301699974461448984357993116395880800893979631973191226393140479491475144677155024689974123224750924272265562975847599072044673396656327328519634174107858586415022811694146094440268105706128138682511904833925200297112242724602019936636779975896702419015838672171556741245742778138844381753428238432773518196575732940236251858456647539151112396270861202319048617999613667314786585522609264732287086247524100642167686230658427168739672804868827630030889326653843542007052379193558650384533149700811172004014417048711169718361703197051967624828298726194160224161991070634877357983637161007741129471549744283121418905072607548641156345322816309300425273921487642032873136070303600253870759767594791984101544461724062129399765962167574766494684792724823619346392557046797504187587238204831223739705383603313562935411105159415663030615604970018616377275195412995720544387211501223731709647605555876162275136049677732591041901755853573147263074511133856298308895609789491683118460285772763574108755986532383054250073378863351796386134754930180799780916229873808004875181448328329707861841960744360235853708164141500752294310865000435722328780152576152579955863378645638149767381055103228519875167970779601519756700483172481780466346359750977579510742317549944967576482408694410109525806944646929739469544357306859946025959160628982271029161185139411721110057751066554086841540413529407578140863178748440178846043466879583579269384054169421754246535194919886737621114558168032716198466760919315617952213336726029721628580564065749595219253703476506483360238385076907053748933691108958208507337414845717618930797091984232024137463118812250165220971353122758814914993636861337068820125408062762089198705416906133125190717488992294164857496450111365759850163539275995488454159129113421397112976321423672948586990854871594767491686793138751485093049947457176489424434885725472034989740704893346051530822384516186895217052192631581621311368912927643903853828187398114220120865567453521480393453291948425652332949355206876186635173982422870976213057367504262317358999395063499119108511357644689390395991834162470627273106390787857427744251113274581185804206752591223363615055102437941735267192648897947079443047826590346023331399233443156893808414141164031907736556013068978374817494465486111737964784307815830301122662699782206767281347976611038969537234289255076576424412421193476692860728125689621895493863349602897429260908774703321815056378066383308612652889051804575457001176941085331801969949793729393304230203127312598966792923155661172704780893796071499469405959248617456719226267115621589164612377225602956071664315817387898147959018446719664111278990898375961119566812308870476450614875178095521539615784432595819693853793779124347991971001035996287928131635722273550332950345773527468021307755513466657889330695826596746977020504480238600322633787636544373714852987716566363047600203578939915249504707264875334676838649853872584223707970003823316793513714554419425913031799262157652879112030775620537476242246107732817983487579323750170851467919999088807094127478456612156642024428804509356597746997782547580698932929124448812994462949085460162382520667356169440258339750963174718718732942994840097961788201871188718949970560160724449725975497335844491124956007284342728199081255513577471718506335934186292335229037281726647619343335585984005234286948063535755009047562042694885904550797165821819204325348855689795243850362993745686490733848394368138585146359226681867743115481464398327053946353201474722597850570225464090163455659424419326627357092684016807664651389142844119491823086382946056823035867031947418640807992842099373140882650221920663857716984004577491847176407695358241952791964008759041306956089046003514402737746542045037457440553981466674364571485584012326470180194762872675404183773144191797182552713549058787567703829793804952733676220674907834243487973481252130342862474615526252439849579759253141505566426769312799907270533922300950782223372334918707282298321438669857409893311995224660285390397757412419154474754839426491937585557220769489545689386098634798052752915754200279716838613891843971304545561481560008419632194743032655953766845378280279884412077268688047028142708634661554154992573887864204102402560756951051837009208662334065824014758949214867251812648698338856939664256332843018751717218459376869273463226493511990576300288246525309595263706220464050796382172568425037930726687202013489095276784022802158531994414100788126140491074717849530146548972624603453743082133624391479229509131459059639001780891000906838659851266648276592097717914662932019678852411131032855118676678680289990288519024393938445083549747269473774573347561087155419741755640258384584605505976503980155571968802360588537968697146600631436505463532806411210549508158325099751402738469743415253667129986545703284247361048436481838879092948433706845730002289512308923640565494932366511917450999512524937056204517685357695023286789030913949198124192417228737489934012091901849599732649074272959782625947370314849973392874642838210034593906069788512048971214794361756567632742165170756634528869557767752949666314146847543284895724802360686981983237366675608271174172526798768155406201328065565280720893123635039098547897744627813284519490163178836063296832783992566195136915914995788761014869811508187915789389614709257897857511827879916112965980445775129870798511420605562263804491739075737351064662134443301496592919514474049133798447889757814818595842753049855609903317275927560409847217717557728486647482065479322532018136456342721993646985189282469007775170085871744742776308207103613732793106970213883546319926010810414584180007807974188462086292706062728663149756873506824788387123065699956750076477947202232245205211220905078950593325109891704281483061232982364518917092835465069121328134075579522294389876343545100737716579089556169693040768902979369851045629997302809333287329296433252161717719544382196543156215053589728750094338882315911559400916431945902854159174039783204981398157504651505268280407733052341658330899980228579213722289180204312669647159441766490466954741309456785615932089878575723490373798460520334833932727665184461530348583886722853594147585768306109750560653964632693701066176836778294941065376070009055648094158769708560757313490131671259616934681888712240489838718306252442104938891804631560780666511720124634579281665926456712391082771409134981443613271789773978564715193136430416057108468579462607401197739211896780730585505893456311493401465718268025351071165006151211200078362344550896982176935829286713060431994273291851232256843458522252135657306494997612444962138230941717242638442508687723931777854064084003080439634785834407498295742924293801008385426864817557742680457491027187756010503453298363495833103477191155014493006407612354292752155385330388587150680280407094933833221797668364617495475271160259166175869334177667265607942748790861831768875488866034943739801933281555733476152978549325540214096289526652442074530904865226189563621567932777318085476560549448360394800335975514918866239643984946616248595039724098946577533647297956633504316163937810880976219922192821127760670456338013664349516636730476052296090893308858542205129609683645583741085126576843291585115288706426735826087449247521175264526713082376853192742375946167002865641219674981884920828130952874767653411684340589215601528933143786706797565689619303111073294905999371321914749876531164617312339469233592863830635673771554586492063312643212048965539936735146645430475025534035841150293649363498196591511933840306712825729684131778716891441548206099657030711643004724901454212273553909947661388879744943089707279442688600576602069843701957944285984621444829954997978466531368589343767826092813416574795967318558160622974946766404958004847982115149531060184523495193420511095650304194744834256736828936193815163869406806176346468040402720140835712944473265008048677275759346488933597523881879689528712102453269582469819596365017181666825433097537644139352389686281071340271587877349327345034382108224228750657508603375434344745185614271284489413572404202590981853410295999170315064678722983565486397958679514131479648177417433601730962654236202921917363418799367200599108430481372596543828205069357458228855623337722401421505982603900149914983953522702421930643466115158701318834804174229183437094872197786305235603032389169635837403040205306673874777059031395369753694763035219724866866886756782279038147133849908874387872408079741415061224242210461659379237421131801916132131215857810823881075499043342491677403709954325367851216761544705271941952469229796119965957402246715724735035768085435360422292350324032167044921125563886157737334039078808062307145654250833473098035335672704806806330014585963124423348736778466813519223718714861825278214289785174167370056027273662924699914098174198614733511624244967176148698348360017755283014977741824135761080791973891663242964306958231351709468808314984883601509095701517521068031651148346125940856184092124204574856530393273056250952165221569474521026859972439772674104725935016936638382847110179920331721877092542030624295776306941693936633843389144829101061271813235657567166634915396384587964644673729681871921472358094054584696717377367768188041563904959429840123899311796145985212210625788220330171559406671556304831116006725497408160659288578746343515926386504390897302520009872932219967483988538090220032834209335616994687749523150688777904451353897599906274442390901340579412375400351684372020271810518680515148304128498773733342130743605762551980876742703026974043639180576946451213650792579386111071803489048302949674498377268285919371197009229615026882573857398659835407918484785124984139312656284015169359485750367770165717860557519438920737241690650871648196090522380442302292147710904106565188408607279914948780515319452418269962967812496782290079935905742048411758781491725500071309160584659895768872087668755440373342021880045759933168797146537529438239788778915356194576288962157496827089198621750341115988200186637881818984216820535352953121223419435035412987206314323771650976129617927168657837511712289308961674507149079379163004819762214930807613938602995820155288550053087033383450868427346709133344230712146507015492294510886757961620583060879455019921978646499099992682399355000162333764721236114325406456072125591193419361874258828524171648222876866407911850882371882820918101528474008068692694427053561793034993086325570872153381319384994388388480746014361336301409660413088162334509580723412425696092556967958447482563093561413772410850431081913292697764057287255992375884270301743031443892380656001160977911801281557790199628275991967654707257336050846174629813869167733420665180889373801001658739640550895393614575527534711109930369157800553435732411455905158300863417029039813774372742787755547084290248361187343445782995895375633977769653534603016453096557007737217498291936079067397586744041968859848705633549228809615350506093077777213925052477778291481480275320028117914537923927330646854717835460757603989414464695511894855703324971730678551431318418586455315366671642415874351298071425442592840120823418293610850220437225634855904077045629752882255428355236887417642231399359586275169061681848101046235264203370713418933142130156728565839601861967028556707170715330488933777715667733196496585930035255216644853405626568843235355107852807906045321879137498396338476032180102486970859241124579738333511625800292393972534026870117221666313849439105263342679788428077332976340867186991646232337852085116226223165514764615303859810781686779663087734291606434735291660861485692655211217284257312841103344646905590591558662696735750717218299965604932891219155214727726411656961350575310147875571422237392079581726809218241448721917167850276077494601050535897929894665574191830017137706682058330878980255904084798583943411142168552928585524352696612653806304551655717186277827027823874147661807503965019145761524538343051588170323611137088440055539205280698315854071424506260523604379567341253944757246480941092169741618315592382464132519161152027483761347619831730578225832688617153236941099306621870620745996404846747620521548620330069966621819749974788571882760821423850710828936208314036638379342354508602806258641456576455607541389664654002396172755806454755126748545393476106227127679399149423081178416865936055242657277994677251954918179300791038925489001948004255170782848200659475936529201125091334183874689982211498587753921993533803698685512738037651017668104091904286996169322074425797127515344060818876688157789410367316474980642254404209556970475201978158214832964955855972659285886818637000128389762347575778902431390934766884860251876057139588458543412887120392671237162180700367978781641746298743757782531388323836483721909876628338831546669241132848952816678161052095787132856499131862718782734485935202916632979982261480236562476485964748824656311673331364130558085993452844084241602591978445536669197372435739071772452616991733735602398355867971980759972796394418864122379370753156580832163247490162465910305514303433388226578556481801852604091534557616854945010849465951687703887323024040368007537160228111507261980759120680615329224886536708036699347837675215006027997190321586906629525771685436587810625463606914658676943638586429752655410088086603319260201789789145369142005601820589735833565435614729034555373955183849311077488599157065856605831476926365918041559002992460144566094114458665077013927227540240265004665733204615957237668831169901607150215292869481345545390877503506686066235305117402599090893925343421548995108605713406139453294630905902507638833457972835118907337030453754705107804134924131219337916114523756739340342412167535253506551569880809546406585513624619358506931374861220460994717848513885321900510887786801866572952578013785635557895917923646502866898941904859382830399529715127592037641808475183438735191036841550596084036516084984416499122396856238713377456929946009283365230715938293946395211988227868807110243485517771557366122435866384745250933930133428021753135639747561077371851430810203909394042361132341817575285094972528925530012972829502948651013172658523042736328838148774199575611320437603513236135004640420443835496908105478784321602687604703997639111852790509610693230862530584419275798026939920055972474529110360224451226353265361024169992083927905822109008118595273444633698348329266029962349323883417874058175004423127127774138784203111440705352347026454505916894540046358835633813254642304645765699507782621406886617452078182323001981287357524684315657300766256637941183637613710133847958535448361801569158912065680754402850040638596539141665470694445448125311341608361508107233834362239691339955865481331198993607004463453402719616481845098016080538040029607482805217187462414793142461774191818612943860819241981369749819465926491761708672783663057511516701081013355235335268223494016316016997976751031024850308432643349937776940367905268273419261192992873372413724330119070753798439732096890137834178591265450483697792488225335817419738057332502427916221763804004324269930745046324761239465525353705020738772559545445103027090576115152222468806757728359075188459748563371957482539791822947043987908525827949463413181922759554784986064040620051654487518412473187834310372604156345901430510310098594124078323221635903896901648834002338252621258560133015514393363279738676124883299753714545750881236527288521626650992718720686859550140662475082086918575838661125981548133828572575954533934572846291984155524446441242520915571972750573060183354464014284826765238231401471325995603913500019641508362655410243921506337072268588100354218418105391910364396164732850059801118795915745318776167013131353701944927045795368521132287447949329524311308619430875436423188129945227594875350440444555651880652186633153452898849464301529809699647068805496696144662879402686020867904135490496114028748777501257742508376602896452894611396846895213602954313104964354679773602267733769308548396316646370859426289731999351198566610389324187398147620190505690896020463279811553713287923580253606583328821643274787190765191477373001838241506348706889185212715379853330753995879599625445513949545675036914605259833582606874079909102146154311656038674673516103989417787653648371854987490499314614372332298743302085478512793059346180247372338772727085212869084744419327429556596410492814268977089855555218771348326784941582726551649994906856531237912201985376368727575159828298719473286142757665856813724223868579167020894086082964018727776837441945227464000191972533026590909221574722476783393724350629002483663036373770169531915723591702183275469351994893372676263045664417121528911377509769269927976052979358188900828242608025347082630584888317465272785213771874831495352421359546655894404759798079250295026168078755476976904770151009053154031087667060366457920140595868044642951482633754279004425830351572319757528827870443104256115472930647801211564374802100531843935556650656209648736107758609176541595050999985764782563232418506631774913026837389952042115244281842451664671617691704440064915772143024936160823599222535520077652604975057839226959816823858091177320652599245634487561960144179950945208928295989072001782058988933505576303218304720381433218943123744792290020855981974143018638502058250539722010806170158598645305055341711348027915685612394018065475648816377072749287496260281585857783363138942958244647811692818840356463204299713889686606671585007506517687280733322568124308468333725799187624706865065583844720652873004798736877675948660931687744151988776168794642464884795900030988619325158663177192678639027599095798270144449428821890801066913847953934392153052214679211553067161494024843044921097592166843789115974878735831300355292758638095511739705626388012766141354671826295459709569176953035588185572485551889766928935529294149572419946076184863936790154505073325399699115183336571181408296146142923166437389659492198051226797445306453082038339683770492679019189626698233433370808251767844125935961450203170487412593360237878554293442361557023618231031700425934070011774946343686546665319708708740989360466962034693388311428730817255676283871117110773139546974492069001391044852507581274064535223258057252188117182306956361708740597046047975461608877792594357615127466750176635988194229056754961766852711389555155151310316064775261704723708431407622191017865798708684676252083603424141511018169712016497765640569506645298003979947018927721695494332777212542014928259742536658635332311436403129618567042461743984108022186805994717493730985864505454319677665291662801425289216578981923261929378129536760868944230989245999062050964563484725118898261407650599438325971169353495021432199154915343134835478986364743625774122245163421899312276108352957021350589696010368476563033039230092750687733972129140563455435353751478646957262161791923294940634918879215659750766555084296691708314194315949301061079401657317768777002404265156230098653670439476813183293214981154062172146818226976478150360149764873655293328808251883708659501526286510998217336307343670653487155000826348172621001130063985855202018731823367249500716345388901154880871504711454012716023832956083277478069866804690023488902042693595394140811836656326263037041814721891788779057746313155375147975248234371241808262303278482959358347793931319244497099024975855120378261229070411888427475235337731203670064419596761207651704092463161823198410385566041254969118167726190480830127010653744432874721586065770337073936756419232103373786427106890862570200383092822137830466822708732510276960028990871136221003451578429199474555947803602719988738437789358514386790714597927720963750132622732115936988370774427790211530894462806005205868237692721083814734236410643805217972815692581113781717009375928385831164062559939901861470045689596153658565767486308798924886370564669095122474721136509978475758113515439003767137504524457090413940290518832785207886634188159343855207385547989002589770916397721271028452571163080607788744207454670150751863409278956630278270445955833024015116402964738647408985627912684410952834799356140956374064869818406433656097147961763917528637326251817112410305659341146978222143073958899735554113217711970579536572981904665524475769526869722173754966797015413874777472869473646939386745826044167670517774336968399713190870488910697780109396381937416320442041748075446079712290461082616244745630397195007908261446266041358385621458614274061222860084314978891653479477827073530799089047242391198657664890778244351073522493470108254804168830629669731514879313696826346445493190355453068226682104876004918837053471070984557696531580986661360269129819444424732530370124297644395291929712830912859256149358263637006530729963108546176585246541277303581849591411485580028399982910347934252429094850241718084932007109835235939390222586616026025807174871696773459800016588896912014027403701275440384930256670641622792454946409910926090439104648154990307807648638444292403933809523592725411951131859778767744781361727637275074554274553325963572916701097675316446804528106373517527655741746042526256883742638518596619236594217424800042232668412156135280698073685713830339855729412145785987003194802190729961782108081013648005276671796563350088982361227122240407760851615101683169927317606536572333231463885920128621168012474648875045321224530819574107184826070261429291441218164064214379716016814236491060641019280728708346599584860162419601294956755753233196982567715054747131885714239846225464055974904982076291676353081525090166455498459197583833312676112506299726313274680379842798906899992795739037321909008856859599783647275142228614873644789832881388572364969953863576523155454419881726450792886874944575133412234785310288548332161171692982827053487295418750959105979041453527269220884121043680345956457536539549362498288250617235012226426062427128776587806374509064775632145653211426846582686975403397947877498075765905484927455060629006948547057557825779631017704968036564740636079620446360804646453603244786433230864183923514200719911965879490224730009472805319240762221100403339014264769062716102651944017816053450805613170843603542943233595608085684746876717887704466530540716888348955702914776532962799737613989358673916778080245148680622599617341128297246787565760813323672001172947610312666255438754823447134844126793930913082492569336499243211938993423114570300807688212335711984314885199794657027406972523736900405054432489779062462763322560546116375032267363614684290641657596685531685589301892111494142217208033228865202177535193448179097289882491834111634537067712441278102257244024046762413980158902298580695342952704120772065391242035042517830747652308229974034557243569800337975481805008450961052782791992894953789491880622374956361136207468942159541029291043338467702598803174842398105707393071947921198215788170996636599770394979861162275173333293668684859661851616355203541325816968809590052832307675001046484238274338468529424585211086748054699857705560218473489934528828140902968005191171296084291471651333012192595733787939537568782887545395833061774684243139612699503674612008108770371123050238458799571467860300162591801361954876056140515276535863878085171142191018961276411624552077702795251434698544523442234028982551812122732443808251644535613690577679225951168473111318550449252123940503173721020493747107007377700092470489837058203278491404856318685459933464635330983611806456496619371715377227257776596508564239793986877351929808641985219547990439594336964423451316116618878213700461706677144681014035816267614124999425591010932211279628091538874054301143554768871734734852140599593166135620575108069195565950903051849758193412397569936114039121362476936538116927048039050656192731485190423831990727604393526985769545471549602754212394306714949877971862444475024233671190470976526306551106697445393291577654202683368982122586726532653074639579005908993469347756706520180861144219718834440753822168759610112240974111467382962516909922338626939754267625412280105453913038932538196915498708689028480996206333752900121719323268997587175083704813723570921337977534841037882793697523089447726043732001705389500386443328560112817846465886177280711985038553360868027170216536431351808438005528024454664538927230451476088943723022384651708957307363935389724986480730621013405547765391991788136375243671796331194746586539095639718410030011142250233876407640507942440305458745700947899079387957387903926624488648231482645888913489741123663143917101568048941908374898522808351570851398889672396248815759106605741570295687163467760990862609282174573767620430419135680192855998998442441488171000902169888749154474237674633300872703306713105000722994023039755323316489716180967643559593355869303562653957477881121931032154396648178711434491466901958133543717956718172572452737146977324747699341648269275978478485089466064596909558813377565488162252574080270633035558993498407767243908208022724730686650235589195252806889124355014873239786882502652468963553230835583108846216147851542683871276456785080404747951072610250288853519998604783114789377775242431931677151775937724718502442708226401044453843277248017108487909574985420121120009708436853686481236734927285293856076840641971012767704028722526725877063273907496061879038308535569188764475584919038323569486973460832795749632335894741126228896945707546788533654093877669335735536321292523246609414440778623898155815009494666142799732196459378870275367977676967526443915391908499118462160047037701371855915042213498814265631681136728190648222940534190259954981319451601332609213692075177211295279160952888949214889238578844393069493231798713781162283169025776999132928597818742545639270953416965186079297481979653565430491645926896331167965730880834514555884526937147710255986095642145896570523993702684815443026487085519107705301943027556607429514040718828337584421514748719250818629832161563946753047977791327951245417656181146546931779852767965021255554844047650289424381578063454844108869613963948689836216936354113959949751518723815242160920369013139125406294940000815227415231234877053026119823893500977904532215038833096134688423850295112912593644335085942090923185300955183445169701510981845263175024164795432998669165098340454549355422317423998106910665665435677856086608178185293471591314370904352918536940752568423094886767738816406171512645166433215275379374988718435808116300361713791375257997715994300552169117923269402288528945510623131618747384001394527596835462562048778780778033449336578340024326549046810688958961990847915179095667412199016215859741103204194396154379363191668501754115557714854041603133677834058155476708719338286957366317263550657637165824241449719723298707133143165656722473504384316518378282979900825978462879116408653891899357143689997329272825516746131905435633410079466864990362889874975631258002635114605728647694417852860764017605174994029375049044593843217562514629056379959564577005579570920697369665366633105133321133214779938983703925826642516699137860517172056854838068028401851045982009813766539201228435165431325839967452754988375384771571813491977880443549159042939520898363224493965896981048770310016012000152214242786961815195408143402246123317660202174645642872946706186895941654503424192280128860627929896177470032174020864434496300291194550550029032260170126250434703202015636259763040715443210631649523381797037044693363479086665779999551063967065326618017368125635458731123804702171278060900128343631570722225915122570977582986493419002255847316644390968532917620396173924231190448012619702782236400799203170338777356713004526153711124412120066999372456941719079239525570227232256415705294346885954349903440284666242198432309671256554493466707199464194417067476677760584799131557625712502053571691344906248359343501784556475243429104877446136630053806025787760847561674796951801195244238708324201646309827206096614254056140869444225844866836341396248505157647805795749444084280052475386747153900175464719642491206955509705825631445014303343731623279213806059035936836103477346732939364188077580965568230683279120617793537476040452786989301043542729955291527190603412013295633627389882498585233400479999575722044942974880520889423034330629075695698327971652652231370951463188423909228083948002113681076183495756967507687828949391014244717584850625247326281643213374652005903655789721339371742887947506924498916024623854647814261997481358329871068309206503880735695277036214929637044345432896194211014609646381752278110552485946322188785294867067989202483597319186258556936186284594883881773115649531166982296981334725273629054215226243746087411762004447140843112448722360387973565906749586832374313146129298897623705166682235299574900281500293459801091135103604411962376108050950929342767663793210439515358231764680106083610933441452178062249896026265147301753620169088194643183535616566993799044145771303140489623415231568256231784718816064920085609999513316589163139676015387172738939203126747169654255264417009844344104064521338010052645129366058545688156495148583101592037993840687127344720347288116299192748874498475521331780806608208346133406572036260421111594598856598782467461029371171989648153749285579173272745014061663886694308907135508789011688590460234160913912946860768902038132998255931928572845882327883348214740411840363804550260830649774270225184398402431923529976820885299627641576560990676336780551425806163698063478637060885850234344816447452819988566133551717277587799158998895088601650484068513372426554532075896929592290728694817111112260499872994278648634409019532793782152196476140063543966915804599245860921570604494251890198909173160958865221280404794061545176071805563024137460616486548750304573947350631746792976194966098622182337529199745223838355812011945349809317134265347974525422802782083038841963202416983048746451080722354595293690863914547623278760917748473286266796264976255867266393602853775972659376408331951145716085462057521655539417133770682609176780699984426890236426607771384409460081264845268874616274640169815095721627749821803403226094719593495841720384106432360490068856021762248553833873768323894632175658609818078356449127277760312727157168521729899339885946887745127376456010090757951558715764190818212305371856521949733487249109886816534273992129183090642635162376527967719450547741694167576986284047170874881813677852665814804107979471328295518373455113391451738930246721215275213279011861521710887064170137221095880200648786202558163859321063208725259439749109375471170882217877106055536396587275559471820751221765178567751325343529685324607753676784478672937271659171444991785946874846766857503251011139852285051189010855082935163626769310304311972823372085666691208046041482361576476409776832687739592248377517530047704673602982097615957449582053824722502261834187495826437714955670365050190557303708449003536748562406777855126483856505247190059678591513039510333629846871254746789162210526922377392377586585867636223229172007301034469237026721820303765159790102849628241211100272650644962944266799134082574819693139162564632910646574858340230943984125048986609012780366261616098834711270488266405411611774692742173249522396312183427123240122142614950526416595580911375886021004779466466411606212909018898271558491185031441188215491505194937383424566176582363502506212518071204285465901784658346380970244411912189013485829211387264268763285505686871458876702496885633961912628551161486242181111999077507088158501042729607732404504919382670231220842548054928459408118004727461017940927791043772988034498591732562560853772731843450086161943522145566509155923164488570900885304645362490329067449964262657207338719357955683737237517297347498157500884847928351383834340151181436665698534378643212501318975294676606048936826984549449281290491389720077780677434422991926626792189165582140595658523315260863618498993946938180712249031077213815328924735134236797907169438215116995157918864120749256750574675696393766959677423813372642664241471197849032521268170317352921780739604721260514830158097801355066098530227265804938064422002263053239360261769376676637652591600105216634829915503755849755630824115215963748775429656938450636098607471833930049917567865319414490993606506256139113371347948634920361812234542041908417542539531221485980619403845543552688333495907009166720543872788674345067410030187965445039432612408242928017022131794106536313379649632183713398428140340682024485904525106460586865329137222863690374310871102589704939043535863750817524744277582886622076259441887459752951647677393848829524162754050164550606007939152290789275001731864791643697700647652249129409553836746812513431380536855264709466589174349644925485128040255917934937241436259113631277576356480168961321530344175176149143071728640212840595534270073847584786994378262089688718797351506166577478180177551734196177999739773477274624964282432559839346984851172587497000305341316074563249228074506773728818839863524873001321329169693501202365125717601174328933386660380082539632653130775864381034979349496525525465797499051361148171245854262616672703918076008377719166309992311799413762914443590804211979870408972626935301966319926955005426199936128691542424790750484615892160433024767129931203592753279874821367621509968885652078594685432239926594681936333568997312276360324762053411874123827874649223265843725310758536562139490626334472871158454098588995477507928480900834406566302658967868107315843462804334080577095922452055672104757903307791538082653467511612687390336251879268725683186522957391653206995652784275023599489565522216759746917107154944356244044737278754920658047277605164090639901553645806552938719866529912035669556484972486186457139017103076212517831262006898590531817747994176956546897203488543387540393245412212304625404488194061167007026376651302760839236400228494307656155317935066115814858249451909648846972194633431524991670231312084400399384377107940256828977156546685000614860247997636209755302743238015522189880984211898482267933197628006544716914573506436808151686705346967683380979249096791990719502643902107888722660320395622404590931797806157281211840880862280260984433320801771518106172082524647583400643460216862553729476758026799821916209712478244995068320552722553174557299350709650045405886618969036144924447462206481308522481543602644120707748317428160308896487916020556368547153589768602092331551652970749668791359983120906283835694535214412395294241950204346329735040017511613711618448169847926215218106594519214719019299878288139159531740739650102211910111583024736352672543211682431435754964864727186984122155531156379569800532729328308048826745119631544876188033636492917810775599210810284659703589223562420381368101009461618488119368868398403271415830235271328356560421541801764847416495273025919892765686666052336704502255031642431130957071988960842107755882400140345018170311055532231845861963546474136109170150476422561970974607921493584637601691826801039699986749107859972030240025279583329987284914774864360180966367058410548267970319309649907700910153368350716768504224462883149550045060247838726109158806682349331389139359656033678779932896554553147278349152588811688620133417789847948207829973759556598830657766525995150833913918090653898696156218070167780337011469714258965551576410359365607203313721050794265684790642175992442290159676478117583788777518620947599586671027221834226072624845496661436513938859841861516629892939408084579243777297379309775732443608326990598985304417713627636691433742705165156197237305802839819852395695886360125486547926120372403841069875672558146150654201579837242025990459265744221571736846800905248958414840103590770238137768561300660589416829981919629772425834615038602745332130940305767969563038044559168807360859236114717173083527663213533608830375750956783225942304942082251264226700202730150242377970246682181970062518869466954389713935660514471981417641796103298875513152863755273608625768962557890150278939836946649580278679444531563212082523731016907259862719112113456006971974778200151725799617510084626678445276772122855747078994807462883553121185917643320935067256981063603570291895621443353439812297294670284697645279582197566375126300313543980604863103242771993676415065713352750424065766142240544490834062166552010881326755669849315786901985596104473239068732892547614511350819797658874888986515793874575117536707907523674905825379317653625806519070210451994753296047262589678337233212814685032652261084231174245805495755671969408573359095624140037172117532147377282283766000092889246795195583125758200253856414572192442230320755887542370840418969289832165137096249768996778180878316035053993312666106816511214432638284749960147929782553214733600525852970165316840128128969431841111981837925877461489670819782735839930610727850596350195980103956342119433784887178395263394529522095890506440095608807531674046178036120550153375909404324107437802416927532605290931281856047369025149368220241500421129775017078412422806614323018761368621559445109196782004088891474837149549624298725365158732954354951687800389590015306041002916582679660285441841131364090732858308535941465770010211093342501699748769103731960502643677731359594876778748615345149465951009424775965051088362275063435456838087402247400366429483698539099452194941688565650445153384685733792377336674368980189919589972465331860055519742704738610036139369142231105874346701794134849655933856783623726974003937120137020957464379751389851815904888713560899583259839032369353552427705663211698404569494158138479747644759594568935784350700066409854857652832532130667440833982282543612880932210623910133795293635873718242116802115788623886167018232314610301761921218122644881132254920279925988611037150120785411392547222480673936238303366483130059968425134523813455967985035317690143111727632096238966047809354908607599119578244726607107707199771983104476273073199661246222629258920171561358986749891085342274325312621623765131473662960237541445701490632397084220786343007476153092421005185142823820530373285427726754961926458807064318193379513573731578926150648806561719185751312791444485703305193530929141024168490809107856529311155169089037639057498242601766476423664919040602455272318181324206777816503146024907184904783127060563282967243409005775377835944188236470909527793452033342521192898360115135677294917649639747246078130797632017551671677319708684172643746415259806863188191224161863145615459700063810660061270681462149288588438996424526336351911299224582044516972894205879723080432888271589039928224700582935369260341271413900652466262643120530106496876445872274918431967880109736159643411906994368177609868959908340888295898119024183932707057272833311792615232609205720531446493088807835946809465200525478340331015580981606770407118498484302536212993093340895795982166565614145627318228185566292602277162250937753214339895267680498740966004931264093268579272490037771554245917799409074134816063859988636310442692695045101942698760393363607801737819441739263795518534796924963618815105290921235250968305632273407149860167909669036827937926423822327767549680866600890779769870690323684058964518723861590298813867060119241842885953450546950159874172819378448146793997485356868416618377150892688941746234283253764733311007652472012951941897772382674424458919214317242086157903464550385079768764513619249957426599049583142830762528761224297165834237994663238651257801771685645329998036645806454084901457485715129660259334575739397063758349582820081275253932759232703029594099461639909132337337415089476119039388935256123049697117246751885314685093192665571299072527539409365602209968350837724318759661991298032962480405285072951037082811905758700321627883889505096789600598807848326577392940948530837070048394659130929927895754982595108722804560796395856054213845421078341047905432340412165763634512954181076512226695516204779724550373330901903079958078392783975255751956520323969369470474726297390412792262619018321440661673884068100414275870857325526163687407977475305956300144353046893644228996748797077752443809794142348017143938942172458030342983990130476293442318540517884616721004440895051430903146312812047724477719209602359756950621288060924257596890369797311988055125473397323464383760929984452901007823494159032050192006274817521441501158826582170320549130894076249657807869290937669221163512909707457916092138401632289404451939644312477689332899086039935114219070029330858749496830726426144980633135244752518670546000106650526927820469033593515624238562874371609103682635545153898317496651215498654855213939719500069975179965268517772339942327491649491584051819801311270867053643064792230180721354206213238477090458978667694083684473042515910857974325272801004879486513930731603359195398431995481067334290845068345663159921797044843172885851779474606670843950712872647002078260634091902688337700756567903744462611275658629861224300859338263967341769621745703598491598987685090220721809390844703160861187790860615372748613620725257920027892067466544067229538807579272097986005600736019974426130060982501718012834128295569048342929019675572880834686914368652889502654437548965063648970377494127847681859880931118208210651384422920202462817205349508660345176056408464948406480004440899320189030609433216402474640882669535865512152558401893155348887376322008310009663992505723103794155791418890117714040819466015786380438118823570632412838682274101966210162954364859980863122993924996062961992448558761199084279829288610706510172592165818242092589174086048322890063026403687429043038368133525383531441747876202644581981959353661002670382265891431567105769231682411141331669266470144952194481094202918375962302060634259972298535472489163954723452469165595742169166816271935628479416879966501096867179898779866669747496529252790720487104158130773544177713881832239185707672438513566889995958511722746491726011118190790359928804179115842660235480850088802927877281625400518080906317007414212908359217666408705543693833614916528527717935053845648661033990890233585621468916064230735380267605832238645312609561818382213632048556074189234511458404380699776935110259980821094589620668968206207019325255798816817534740038393348199042881234894177577835166022147727798103388234849656582409355286828857277589317338540382027333581281916218948190251794176337880394641266310975716842845336136519699549237659550771928063333153407627023187854165392922507492726694376162417504929817211722985541434612563575165867905282030692021273302550812149576541907095033468343914232535262466446259221038772072525997471664740467523077225309416301449532026234372204884039712024416076910895395216303343922107618864662428584478628470528583168463225157803503284827176392762270823320952583923086191223293256063084445736308516749685767930915901804132479537203160163770383897829435665986580135246944802310024569351168049642377437534823995772314199320171993205154057219347120965876377868147220796196611870058241939766838789084002456228094888444933744382465341387463300900456707414070516407966936973300994949502681539521654089188230025387191323972498706693479385092627124081464533454614127771314985060712355180541492965959956765444966307433140976990871672655217844463369491670819403357129728738277488692061204635993264087672091839946490844095552191501943254503867786773474020584285524600581145972407122612578033943762972025933901613914291973481302510727055773392332837867297956316088654845885184571651334088115048405796542788382753253231191160007928659583612516295790482376729186677299968966953548525433447852070293069443177114055767226023810281394706227484784920387989970469447432183005384757667467639271294540895397186310369676766470698600861453283919108377518102270181642034342573159766048215206266204498998936347033118610581500984299210636245325339881350322432281326880319772330190605742143289510837949507234609355317517033172183271429328982661720718235990704315936988605511494355978294047424232591136496831047017068377350281037149528989882807094109607484494295095173269910161147612790894045624534088442681825753991938617807782944460345306746592304372584717616831986005037145546420326423580736198979491660596125288304003958425941439836206535017197209355185361426113783071728016980686338533028577411460951658255001529853036711185783825223819652070821850758345817491960800486006887887978205522161873970346426125227734580169495292588015965211768843358238346081247336976872582225775125635226628148807918565120338827002602833119506852408156895959602989735911688945888940371226229664318891999359761694888753527744277432349742290544242752597809874900361036260449035872388487209980414773299354835202425755729949047879688948254136041679733675459228660357490099026348929993398733074336238710967454095128964023942877143567700490063075291192237792809903559587523264199016344328524685458823912454181886503132343711845938239973142769759849126375521053230610683132987351652221275247457495989523368396421664989570129589693590793352400623162955820367308963545085639466603959027821844868683745170254170449888899173878777030106864495256083785916474516683034706799644993031749449619067000928111441166183945160244159085373915031448038022389879273015935513448225520214269385431361383983276641582962257457988700946279577489098057404252703429391819117465222206154915546712948200218168077316350365129824749689081771990035363647015124739139854043276819479879404373407951233931030377564240911385296146329495684775449519344822040855500260356523834302764531998005145867663601765325572488785863327510973850699112770158525314978693923469557884724138543429427021092489908899462357881587789483298996728167730412380419231935247267346783096724418245639102500878374533808187292269967207799140037920574659529160317364849589831012262416792632702661302542175858821742545178024287497718044625428496467970321407369906118844320885306500776043544681646054475394366272844750195133121158033110689350965906267082801816526293381690056754814180916562285590369292324812445028456384089878585177628480244480680964556835713005631588116405013194129678159777396308027845047688338429851124331072843725539280230741232876593237251692260375178260230665010012530698145431676927429801513192201476684568239245029827221227215882993783699300791337536841507356522724939263400991274463132799848177462210845607018880681116208435950300221799473081692835621111197436841176961578628639506486774953510755985708147883227320419735193617852784604279588161017515351621788707522688122148103603424025721247493343264437103948920903557494850607079889288839325501656736888587045241237884384015720050707418422894746940973786548990419333483568952361327596306692312587571908703153651864468655063456882061235310541773019067296658604962878509384690618156849898486305382644834518102608714584506739865237560459072160178571785757370578683025885809301055470609200300384818430077297773466077568379437976259353234283550602845097887516288146995821930917870698806558449655406635499018714745647148260275174579857701053218135075532542593901882499382079931173451680449300608607544967763676731708777716640118238797304444182711463057903110955540021187218069217874564107634513591291304142377086048576814674606144310044645362252686998379463618230738760371774423221693990292386478463463169752459120223551338493937481636289649633340530455662712121152603592393461478096010676550042453795171379295149738215780423925716776056071888183489607769191019657970685578789648626024100202717872296255366034072344740182760239592117089199789859994253864557819554440965754492877785317274328956700450952871473080802738922464671900064584628057368693503170147580616018069237687866275228843484337306164940608929541367523165600330393861899496533397182492327310073620069553919054468117964837720112819236440149378186213210172915319087581494664699041074156951271259552047072342293550544644065086733009495143939960829612154495366907695589662638918079627949535513189870241302781560176482224955495499726967158862075805006476451307681552966357340038444874229883715354256932100458771817186345083238304083669818136315081492186582065308390858908585605109215232545346518446308637649899788899794219730009531476351869231802404246566262595923195318288866655952786621359253194619835164477376091908185104071405123996368902464492720808208376110318070066812156744383407891319050569226625952331072507738162208560605588779507012569221888060150185339297028004098371212267810954543998943811442281950590808211930029582812683405712506964306610450798666515222411193174481844115824005827443242998223749451413423431315740096529039301646935251998962851776826925779839260896175136307786270447185781056163960539976405804707678427238172956472164897608015961526568851583861077634156608703580896888207856991190913901934639682288304167011543794774165961111463371560100898492783175924752618355171889720263531160311634115770385488468730644389688526225402184055108243970305090182927201317971012885648242072351995796821849211228651384844234088311261217748268790942560745469640750364563126103286526915727078826802414499061138180984762386997576732812555652207755135067151746919047872744083460558648579718764421327571265094640684145846009569988070434112084875060474406376789129832873279749775649145003715683806242136998025306474923534947636642392261228975778484743262973678516383436441185266002599834530287318151689636805369440449184104477653296669114679157196246656573433833571988605933763275760620216873003746935813314329068300841541108790908181308001821389382771389382077022576773763710623868843444719234063010191810477113491631001272601899765824185326052297778445874218224004717653991957623439307830557759655319103634210973186931744040802827230046779394262715645515051986152506770604102076710343001721131951007330374461673703146760180514215959252928766395666202849647207314047855666338954443092947307759693702878100312586916167105548412509720120545608024909768191344844824942447719701856072877964569662309053921258193284923589802288252912914681573900303978780813618810260717452884957363441674001361121450352766500198967833344945889304158228315090612865259166722218829613359820206898541771118700896754461618432529560275153996505855032162893448929101628319505375399819041315407880016815915570250896445698245231504975347814859168009719935467243934629836726423092253285207967478608557889912176412983948458371086587639368847272428988296403035981371579760500778988571616365408610305042663372942605032898044425008538733031239643702705189692654805347958063361207625670287499676549502272544005875311730336246083076324456482937377823335409423572651846923198420999578482151261600611508896263900478905806790275379473982067874881325596510570835268313314393384890314253562640241139005578007455897448612448808080142127021896835652874501549008402961875145166592817003860330241990706710593912462440612958161470561906966676999704982860832992405673837508945961813551827760996194637777956127637497351151457785138638725126208374687053449479053942404266234480501387936063394347361618868703677406344500735269987150658065246481849709912249661863044779838998955685363584509029836299308785004592611189933756533523702555401585335073366128007249629712309400868187606746180444595720634205616935605523369576096616810777094367761580683606262688172219739143481004603332230148712924908530464388372778363992633383071974182487662845411591753110176823257372808193528355205281099919506314893623766878185866967266753073871279416479606574899005038229364851921567246524048069912700835345283102028092505919957396052961691942105297099837395309691069505530410419302391754536505663561290236664296015529092120137904141485492135792282607567082233676488146098413010363438459382592935653871049577750913887180661116842246698871721229216149080179385489652503693492696160008571867507839929791013068178909901147868805926707072636732828137182586541163419882020403714680714969655419964779440702353455736046399014428871469401080248064733278754853472104514983044772577574853290604447049648873074155387137955228519654778046112196063869360315418877290636970566379250275570493429710827104088303861501778229392770480225785805245993924194361818871953597493253331685982299855446777355201684601829159695415162192096447099201145832179261288181432062372862116800065931406012994740257885802683261174804110489510854171007032626508549567805846464166550230528069389167970586308539572500260802691755464499009493395679234816289423400113172800818258618141971273963142688859484040362470433204895239436469930507525057618787865585551862909884864481659290472260150484208320779460238968044332966442968114133494642400532514587496718457476793440108270945100362530968477439090694038230890807312113444328203887482491444243019099907026961636071742017664785176316270379261887393499173588872716148449651377250951977162177319291984133264191292167875027859569831416126784071505759051728507277427193493320213930022057051394345058575577025286273871258205167242150666179324147820369346855061076097618965149445206885026233697245464533742405231889985229246948252944802016838944772315809958053523805672910852196309382404536502367773458001103255949531735847600620185091286277783933755976855356840248614055395025982074514254018901420445505063236472437370575761619866394009244012370094843257601185802224735566239576283238815214488677843973524246094743549879599559117344721493616451792223890031884045828291063722504140577012880670811202263191041754371085501753481579862962966099345736675709901936086828728626844607026735623452243448659369945416392754709398551645533028757405004667422960365757914393450815127993343327907045349415759945111609678895969574838879101914188676995032896599640779200845181023604224673791671878542018164423662256932809563887522908144558876942063101403944854931548518336882498422309934723762552787594894588875514256122563141836049502668397708077508688022426883191700597876676784335572104467158170128219812983376312961106216018735933925625595004735393158735117015011412405396042538832718165856894175391574114007705602295930720693257304526426226459082928343156262033616044453265890939851013163652065872759124973872571088019976796727155737151820940145234903830515183046474534401989532864682739023277785388304143720888028693695756937900288642921549443389589367787148788450684015228525467595009428894201789480776524499396921358805366162905044376509791473658761357137080153529382359661806486928277290463293177488247609709761961863605497123997273077187811117177561835552228297938757426158615272341141585414863533656240073336741561278716127868973986353456266484354402139885983310579973484199121972974848683012925683186192013461468851911891629232271753457434285943680433399929446941179018176323829818440779753392425335680062575967026801921092535225799089894920366726659037096488284869815185155629051065255690918074278030276756089900186195760062104675770274520812202545181833574721244712202074875003243820490371287740215158547072947601721761793470529003017083188096519901162325087820942827822505549962937131107266832618506719331747397720911469372515901078082792224551716635983617254235874083451266799315639998023217092922617487218284743577794954742344083680659156417080934931691039526650517569213073534664324915175364847083179784116321217764668216846332766156113756156141720442230801696101886854928665395659319666098564240964116004392568791499955235040657049888950371934637492749606170772900765680352885124968328948232659015359740625819889099289805196204062053447031561757101868787682976479948758623052160899089891974161883386612583029147307544476876770080308012474284698135347824145648769468767118130359027557754006658175924537740220657154002627529815664678691363702721479322893870312815808758826898586347859711587242184954284807497206055855070985841721847300993752955239188910845626155788477821978665946882340601391914647766146765135407227263358984709455015669276362842631369281709838876233808445534072506840812444988810693335303883493408552242099640902443387791472919481056923753909160978123600672079243609791851974274167717452215284774344989633200570860550464985371842182486034617846614803869445654252285946258065202910053115516794575490410173470594312736159965675745660194315133830552793859537551439976010783528848639895763332430512076419527584542006352136681426477193806461071903180801457009574228608332416342004804921514686575828032491552442385965228333184928210707994915086668455135754384333129656997011069920568030229760452401450566143072156977384787812113174346300375237624985402833284510892705786768083049803963584910977873614899095179855238299321951734506784834367870094743425902751880384557023849671445508530850113270531149203942399149103293813752773412173551088768658935492112408731328525055302083086959192853151880622103839002432983549527834067746547386219243612025318670748533785864588002437274993913052840963656309118628923431141776565987901271049564837371604254567091077230895432275444906598256118291735544637598019291575476513876602226349691965952119675205630256154633383631462842854805470713040372414079924734785728995195229304017021833412293098844329651719768245385485281903135223763471335748231556144446513825721742601941014590868756114779349838825659949512741055588074491480491700670219147031568822243889719028193269502880210381208223552624073204800341607625580364452375587065269645660090944035957658604740911290304841834087502772090105131298312830029065400822104903813763140066293633084829514491889254344690584114426721165136211880627945699990728103495258838919334953377635058444635220551368624120934269276081251844599548260266994415600255201493231920259774523079209634250808677098716021617727715063681489073395628374644696383487094292872088316564421731291515585710508136737262642460658864345860138188905809066147415674116910316376036925201696066101251662553384399992563356036869966067046175988988631533382094084118168317426687456091753840255993013874515876343583506350810080076330228244782366652345149059640916678137470265267612497762017772279736910468872467820219711539613562296388379153169728020630216941441375322850846822000982601420117293542175354323392846572052622574532874006243528695698211317530317505235781352942345574664469220204191978748699733467617519579575662752531896799124199676917737286379392341605448174345830837217418066389436022912612788033005006447126915103492042633783969298359473437287922569776603051333605473920997056684728374621443356410396176503441499218793101509624028525091046136245780050968603634453329679946474940324560274034878502446861571786283667213236800375390297541147370078646661673632199634283647673618100465698058181357535893095825301587069540252019369197673518181382283113092051049605109217597727275895921090925388481830678069967730544240612107577582334189366539982119344470311753188443723719967206463600004581356073881849201276823403284077000736986746734209137800361165307469935437549734500716829278330812178587585399698234259165196498252766779448557122210950462130122653545893119114311253541592802274714417519534233406563238110078321732029179287879106970447487187397868119258768412816165011238150978959047191674493939690440683234161285530794260393088264784545089795773022440472481851861053702947778228189102415009294516256315835799884926035906968063273140636761193847773492201220682373725235187192897077961321573186991609482114110227042326466681053172992598182626443037342467119671602957953096307002067335650656319086865935998348429317435957515444660323535800697097889506619060891461993878911245296415665453249936698603485083570638008179405657613018291348960500362142903840151615016965196340793973212391878674210503629026905204418957938830860580068288353495909372812926767058248264010578732984100227795968127623685065019958394227113224850580023348080772267753149222241490612391619581640342420487213175221449877510270609396471888851301945256360386614424443702435492911790602227772654238244672503862811770933067509614195960288428613662934653830681565778223429878117831137024605679452507606865669078489633503390358399342385945728144855233352433874689659461981457666098776227082237167062458007373514840025326630478863212627730834682454062333671984535366987056685668449200607438088236150141883318342554906316451644857763445790735235544974814516038567212583862996279335858804926580709274593775296772555603362492783059913213921567831909527691045404330333299187388943652838003512492221390847651136992520108133344016257086255089805026834939928201451195240319451142863677585810178028216134397748520243356901044040110302683917186867124458270617489831046182747944477495407405554399054350434768587759593509255617164732207583731085091737156014241389421077726017321959773154356624791270385048524543426174969227771668930615978347089237650920747971230437344549098910309666450860157057686379624115393554003782976706630465876364859600410662453126436781884022632130901495989589463272995186605935614197046564475047677585317724438684965414518713741111918964700626005300019319191344831273689429127000263136771793801225527366116683612552930814666665944534869100756296981185316306395655775094296615036814013107512778376586696357964862703067379452419841618014387404177383331253190854808793451877916056987146014800080926702028153910430183554247495749105738050159579847716797723011613519719064390069879054229874385764175759448879709289321286599323100366225711021717047973133425398673396403568537414782739044472723646107760002784855735783827448615724606002117218364455276227234694898435701261711633966395263055516369970856418924277217450116703959202600385397363356805414203652795791236790525304068900257537987397851107697438585678147244760518659893523844311212439484663540203057526259919119651331176000466996357993245332737497677218905312258878847948262813869994691442091895172400480445313909520361087046355156859136659536849756386137261198823496908136184443199790631122324215333283442884243791729746700811564874801087004212258280878174778273803430746345507183366365984994762984078358655547314112446389642285946597785139646440059457909079494244892188474504544994288482110257753169715929714071701439958633614769664749435894662281197318696177678597023752339493189741084633806445412461572870066639430320915160641617910625981211271077912345583399275154370769392159602681200585815391519232260686860906670130200307367802751596561118974139746130766022707082873692847000251791972119474493952755081073223497573287128070494739443471812755842421302645388362908074601264536007866898015894455836674632968183800970551813973505080181738194136623966322221725786407065826501629306182276671362830423213129404957669463926264507107319296892310257977919030608815794662689164036634349996117072353946754952098006666128054652061878306250567268780272865647434277843453634743849576082975443844027407267144439654529055221928624996885193735566918876793632208019417671927313149377612042367845784332992804031986120368295853975613499919588880286797619545422658552287359322356294612912590390432234432807770790609364082602976675553626433430172589348188815241074694125820799786391334994045333967121888870868438691341175193679113524437743256996623508914324480434503190499994677247517729339104459954719228355543182579687727001107420752386929598739054794180073150068584377046415509101082495768664231209497943585745099386457853084523779119125026199615095235100607905375001733656481502140754518142297070417567148165070620978231800823333224683531530688821875155644329089227209486834409597449532426932920771798996532875038569633354344077131115538782760150386145034861360957278208555378160204807468592680633724308788555209633035142360139133523044127562036200089367758987030721368174608706300301878466937212021403650074298889917998585268097468947702437074131246555230901479892145932056153226301418556226753665305123849628607544381270183897235975308611641217127720703373183195502544318314170032207607938149541147650681140819455024182738609761434776128198611512255119770726464735785928593868327023451994142985494678181395702178505050300538132786793965288997590382664782164779193153078895788800935040307125453860930128824618141555604528646787236378059343565822163501278236571900232264960062886874170939394761569844514403022549557614801934332881053099013066504122739812841571053510692399721300610421292927604837035695275946873249553329985043761119788056869929411747318123612595101951187308161927348538321995499506042523310656180024692657244407785020464086040905728608210895789087382165944755105208000486074354897626472859956959259398631403509713589811119926582557401098548616607162851519259281175534171592726785752990953297052439661410284686444721827158312964972319897188051977890369493303487925687611177648230012355604942594868224283996900677231637856787894913597507428275449162211767071642889587814324510818256955087441119654198923795450515222744103903718269116585015148080803017706604201890750107906685503711290443630751968841649947949820488706805631821207888897351920681216518926560840847763558013396188639536099742399719717015392184653251209624132906145436279730289272027800713563378964035160198026958569162662962528147564855690388974144962990705506141172653123098253565980110041556548375285823307503349610237436947407415853561690096197323709368657220831149320700931083926449987476225092131967159606276139672589769749884114510778129455673970510636085298755399761206888196671989231921182505191171203431280969772018054106737779460687365818800411688809409155166867595426472477503849977709041423426228354861078780372690773141082105417117887961659259183459508447719260072443867298691473787026282361743378944653069520558525415405046756315682939593917758690834232684148062141009727961199774879656303640605068774646077391523191201998304041925269454264402165089084658521542325553416141176825460540457860384311897939644339715325698415159060177073732399579246584633096935182436271246270705342534351341028528402392498744344147472097655556812652406319607232312023098935752269196793057887080203982727707376350526003582227148055316506985931760765516195277006280521047765498793630744320082634315681947560012828720939552468251361941594193990635391569400086609018096409868017930763785846195597967016387019419264125681126574513844156484201375381758494812369902007544960199988503428490882703242090872562291170953571005461711149401098570207122924760982885419141837650232438199182282181012354393411889097832971822719368484138947933103538958301492733362268825906149284762818275572474646445021689786001857273342792895592356984037629856140317160531909983843546831665145828096973792748057566251033368882734588808118827281424453572189266448159322063976915405998642035224665271015435901990348785859625387945323270646851027090467396640550448166205095778738511450153758330444839210720255394947784636271975965717080033072639994241335440462970320657848517195663613318200176056500012237905394665211628584114162323563717561767808745275206549840317058789760961586940583417923721879644054346079865717801960047741037938864316635098363378200958455347020103261329181726885014286639573241685422233809366315733497228076647708103814758700483339492634104448770912905477340482065915980547220006293313516679251347081865040938596967963067686633188776742771801451374851352941160036284398328713234720975787430614179674130342779796570564980039113546078845659181217855218101283138824155414619737802283802562217525159643249750418557195172973536728909409091622447435186110786129014200415297921815671927711617433956831425807664133879853797148467358484903782074036193175839751731076441251089590969878498399273841373812343901136464493080907941890314582877359911320476289096435002017769800477769745694434304198953044100968787479394655173423400265657275728536106884338473720098325157401030299649080325442930339263420670129788990737548767823550073360833698382522699982238150791590368509690881989697648857942056660888583556909951583746740759183012264032866676354919735101156575652027019016739223669760268975621775888696574422003679377891496347381459827432205883693910781844173148195833407108141505515504655243375763001199603448843307064526897264968940434497712930230886643096729208831639151094257351940683840948227383843275725074526703516323038698936540291108850373151825623072562748036256423733291970520206002888733101701637080114930437198977025842874825641225521798099644105027176086661518098644090507035706599409825222057559603490719005049682682544943976076087238417954419862123168711566658504482516739131182510051933414866259940320499626685340753134447721807027192950004151761213607364702933851350482685906903344308649361858992893368668044792048902169377749479009949742213735331027927564203534636093375198053346779526676653797961201897631051195234161476981312676743010892676274784352876188482652611769974303201334456918167069896358922272321715547405772486701671388247214248894667239677621275684998913400914237818738481903486700465981088963408694475365108706200776291850930205103294522544350289650977601792787900141675215331874055685031536853737776915154419639794537338957621456563783798248864432222827153137374372268161008003714051963681151776117062695608572139189419633067469090553699516706566173463330986470879474712176192002302265419311376501920184920401668444156787001220830705766549627320535382332537409200537617960885083503377280409056542797637891217845679235357630166016618605851234976172255102123207331931435385792398170920530559224785221682793185619194931407466430134544832525667701756151615804072307898150370983177609106753294443534545883638232543630772455676434723794895932180904731593867220075696258614506460651737651159168843148131807535187808835491546531797217229512942720692750088809180807033472448012326486363620287225736537992659894337415029998316513180561540205368899618161293071367451852573090656231718424974119006276019150384835563465918848182691074390354019883146254847901180143536163376286243884065457561598452514116485562669922443696806988776157613954740760190952405539850963859588595792833266613961246383753214729084703097968983991537722341832383522988502630736175543459587128538895580786518228321741829440377054710157919146260959629160445592571371285009050343156344535805095524594576991609903807468404522590138914594545460557675452217080414816410398912825537451872491779731563346970050794843521944698729814695413443097638087209889545589835717939542505938052358441309145245509629759866388469151904440356954594831739783439660685939702514783708661886958240020775110957292148149709076906681460693196972691754977819833405420391758312413020232261815295392270575376459358449175369227083277562523389503982961179031574740769344753353376745019478919758888039044297323446862724146766901734402013942712742251031879792665175964224894151307499646511050982127146010618880940385162985774387608160911904599876912610260485395286115308188870534281965613361968664745622185401782370142719932025208801526111181566530282194668536816839245698752532834843493915094042818115189711494578825382005448463694827671792323423437875011847495251003728152631776897344524003859303638231688575327253990370305376454162872562655050108162254249253641536132387248007395030685184729517647481209527033951507979695915672635045752561033299753471328386273953659365790241360242052013430434492457613868269222403630023484363746703541542778419137890180522171034828682810669018090637363758630655073232796270289577110648861137192077286251962246944334662990622646350659232483872719518417033501853118238511562735634126721404461055887383640706592418620451262432067811493926025382492683797347365925926243691662823163909948071183794420707402883167644885148631402135631517188553835778087352805584638648771702860715740260765617624905794918031952295186713830923345343902471952496102110930408453399563926830241219064428257644290492000777452196439717661220433680899026697343433750520012980820608041152751210986532882191259043709550879014817282405457061008907645622409938267994626640347185541946003321107365011943576249838695584555301059373990320452695830303863731642603224536903780594453219329775874476573883899664589774227828805888256345003260879454498880128098316559628964200276937801955786637545513342206434498661902272466363546446047376530267674801403474465275169119411751726354088155139559598642458989554529877983790064234495954462711531932391982017214763234694614754425284749923238186600769941195773820316122495272406636338265267173094735062404555586924325221643818958316884105634038256300589791983217777683131876871026423161354724318338385351892024627452620903190716577491091290271797078822094195829523823251808594825378119453245088984150921373733562054102547236068913602099931430881786398835911365231255681264688015187249617408009044447904530538571654452159524777131491833097158922829146012989124918982817324733224116683431514586485592372417317033914355606656305250864136706088118729668882658483272892478043075808412937972236377325381401635622606250052382481131616867948208288502101438574769832522429187567554187514814523557164869592752254776723682188338524227239414200839752919625230604222148231706623585995776763886673495798677484694544706165522137150579467795240839687772334779257334082634248619234678469301671622764215014983365947389210032926293672498988129849804681716150525716320120081279641562116646208185622079002236806111974412892409131556017641881093483091053056407317904488979865505465046646032028951367287618205478641568405337124757466181911503601015199940476432642994487361085376679371098095563472991067916981345646222492809170719278282146806887725225493856463118016423111650745334345636264256019754958075628777152773108146027618140740876499928940745750502634896140898614145903298057275437542714521347384421855599837838252111409760165282019469281043132952605460060879352839463744239623488744589584637885974795687123385606899520460167069892341348522364285645185864541025710026010477282201630877477448800263721674182261383293313488986302726721034798185861928247839732831366861151438464997615416164143532875235618527474322076590354442366593364167134818111957150672113510434965709802586402765446714981775219513561182581587640653649562374267201710890297269959740099075203973861704603774913330148181544424231231572130555289481930001737914036761837524867961003692196482765543110002295615305483854837636701301290028942452334973662159607529727291951892904868474425460437453023511564918197515484955998923021315722717116508941495397642868453081221793645957126348787442368954388597988024824278583965946747863542911660362480942946673219945612537268458933210765704537921387263636284177909303191604715990801226860199565844313417677202106253506578784618949248394097085092429632753299594991020386626065166195201232624237139560424976674507031505957219617877750325204622784308372461014474521981318914524645631860025736599312709623578731573272070673534075458203776820363890756852393173933752558695286311763420238542880018866065095306275811177892089827873833178167417886708937848695266633869789051002280459449245035872665675992413789363218497587767271421243952986617926261640497482583755058057459181968842664606578245713403715274335173495679333340669570638965031307429400450918862247155872909947571198580341344343247713733333337768082029696625869216387506105389298366692932650153147298938823844658439709165998267315530380261514546268446282761508120058217891542708532163442965143949944769505405161862571201457418360096751255406924930204032829351345715966329651870617755058836449076044176752663429733674037304664391792571893258349982147273905984080686919615506139893901533002097296043879525455928764066181474424770387645562974411858620368763339571528362774096378416247262566429567798679263150030298338980491050171687112313533430785038894492052710892564485680371476707112061908135734525014495284810332726343203483075456325794161030734709721005069277703557892197291864574787433703288726645493745817179111878765159308891588694546769394689542204893395529692643428154355737658880075928367719677158138952502589184538631079610769106128850184999900328791795614463231040719452688509244356911759866941305798529183765292198945642070451497217100938785693519628156814845393441490304924203557578253627023075412799734485418893871024627094796573462859351542958370735290669547308025176447941380723129436668023857330467945885835855683814068882860076971674619029050956619646554893553589707895149251022250087084958780956748639617550846792910216381100101900851773646438587949937553084868636181169902899466070561072451942686042905954978858792046554085495679794470751408293977996062251567555867697163419286695658716239882071279338531780468746801729893091964442108711862262351003200569509556239675484183580551091597201778118477971982971337562312196725160396183903234071163570231319564116622831513620642568462583904267428881970103059304902775348637646098437143296085153309037499827647047630138996805269839980317910535474987069430874275882881244206902389723333061861707876995346341936262159819194749035778867660561580132140831455270134206029888847993750339799531457892228286438279636143550942522497904571541834911887106899081968559207561687088332630388081430907353889996999779407169775063587764022822518755750383986161131932508816290132174297730141862951125081037186656615754718461492574299571735097141592931869472932024701398703674771616048710470835923485172738609117803779717939329335229650642969689486405714327784952724020435757243544572774097056333203991276699254084513068230799855742606715213024453901360854273037320847113941047826530467430485943853678767237971798026224764134556403125843918965581359912885079497637608961182962787873851052152731656763650117995167969009574209392447986783563102914107221437316643691935268156274666780118047714123865738941215863205157347488526889739355629594706445007775342681132795946248896017066086211933840500152439684872768597459445983275039580559243688765867557902420307389916815853890577347122516496206138967023001512950831842724130896725067470708462538208264900728220337371766510997919425539983950525912535598577218844156504007455564593119864413557867563611975159101498820148922744068317864920183988492946834968004977884079426376021037326281808841200187144199405476146555401420449517318358999414835354519753065767003630858555261102651152546794270915677525012453180691557059795797625200234229692189201608651960645768552388673876519934497343606437059132577555106154900094784472142896584187884058513959535776752642064422358410693356035517968026491116493804926408756661643248645402814070584984511187282254509083493170975147438921054022513520613542644420250391215195222010053234554238933101935452818907056143261367176877271428281721635720359569716864270924425439019494349481105508281085786422036636999132941071575306051523392392980190407427431364976563281676374626909222464143732535186506999080293201996113984218387618406121014947246142147557169751816926275169348773065732875570154716351998372484213200909247868256539088571499520864292495002411630011249804696050397925328806830181652077950556752352420408714068180931104896735895721767653224799961825311330962560177140773131174283342541931265439968816732647181746598014508757613831376182930946144560493535508532325801219970569025881603202967393957588444310220793649673112427538687801809605231833328581916524142859189103565975520090154423918195617183318345875652164991217314191167725896094021901660249832649838750274042546301410821225806344275864505609519911613721054482104134211503048316979652032041173353504455918174320442846219239683752647509310202216341509816231765857117984693156781311032849110985998516287226183468061348790941962436031093048181896469877109714240897668107801565303637727202196091241081675285605198740788172542227966631268651077097825862330346779788631223878688136238015598000427592444611128635926398122873311737566251424336316980505394337620932122063513696067448499105200087186350496160883121438084828837640962475419045781466366593805492601834229552360255319499803447696058214219569075344143180958976188772380789268823209092197985478375124191658179870088468910167777921529390916841496805687442982205900078344481000199379278195250590699869287663132078327892607178166628197414690965329602166917280416152578767065602774547007084062190005860383380869084886125406654454174690440602070590880476621590696789160847184276390661477669402836187359132858767323389256381156440792004472008059942234341795290410843039695040505075745891315409013561700728640246628975599255740825398377993105127570144856725927976767897395574735197395774580108669436709839585984284955021973213419962112821450962500999288814142235130339041655209958095878617586400316947721384224070406114419122556229583365144117934136705564672727751700362630818815328607963591966076703416977855098060812879374984396042763858407618495129255559875419334466867399655665559726236986869209590760775956897214549589732331813548293160549778190312609580683090232857310432768679487976118978318834507205400090569796921111300966410324562611767928244769367334609885957812328270314266503810429992404051692023789632911359826753152842288015614126048215831350935877821474611837771092220107756635177290987647685357704071318311318589591822486529115428146260125448324022031648473895020149644523144839879528393785497124009813985664757042518957644491345505830619427184420790915259310769065667413751032405392924478722793156984355009754950427364993483849298806276754027939836557019767034430016211811937156207837182044651147986123111295907328579977283098755540708505129104369702878375229763229638006474862942530293311650290045404249693290102502135999656997612608107717540781946134315999705765922881120152430761787831107219464853618521889726117008833017819215541540005750805814583263830628207306224478352292011867328225125989646998066086646727932999413538964089764856215307638100649784520981264779315254205171770786041211034161155396418176049274367143230666289558684827547782833545526710875529737832124179969010314243827888252439195671218097260950685595238430273458407243559848393182449302175690901602426001282315037015717877969601946782225496036098271226688756517326699499604182729613471581730661617880418358166122225202254397504676912349727688885095776078026012048852696295590994112575234746242643942098837090552027452976152362398386527265141283012725843580575523109002951149327991329731595023127806381055572529562158668742562638223520252432645780050399762940132664571668284094188665968991102666160917331837149720297522040823611038842987293389843804390823635377683017421417356830643380397728782686399889362945078273759307804082354320017550068235781983654306802478818426369617959271126900274979266983078185125637028558793062549810811026713221354671260271254932557487093230619180718829000756252923671849862480645639240619552987975075158231714935578600836541558056635943526252428500479184997172334069854333196124770934080200079786181323324902432847715116906578140466967968234042154246049592257804928585220099545475994786770406498970985685002087279603687048972167053176176366810611345747390058075009283760811628717102496688117182809139558721751170220663465750059713725149725541836762310594003624972842526528377931622650492757714479496194839942700279419672413283105690755735383471906017754387309415600054289313096482963437903309778619912055664765698101941487479359696031680651283312783884796117577959133054699289091796303821550917437513407588188396488097522301717437669612205174208705381195503043962864998728643667802615880951136200494335460621980170087095201797205516720693636152713716278501094867125387132374772624639720490473849858032719177316092252780541655397766240758782097444002074053618057053383980166282968057526444999010168284676262232610395882958302743339874098583815801371344321582250579268876055304365238895906149476441074257876957711083863874670443528044046735653686178290515490096163979998469421033224565165784180011973315882424210939944753967672993759205249896048472871284444768244544818155125669209983269203031068215359832759313692720374683527069569697674464406325385535075667436364500955471246857464524936325811786117653706135506376067917218246333278221924085052619987124491715769092519122707625912184603949819901141594952083814747972956861329839565014059804374511393886735695650104701134266098864839101154725027788515161703490500514737507248517565141923378465385408080756386315449242762821195799249844881547237932127483784541994009648171012456631703235373696781104359787570885617306901346124802609089335167248438195700149932656521864071731266086575430757566473925558576237382829355023415788698143307914209011219133592042196361098961614189186671690899191924465728032819023476372986943842377690504260381377039788805074017565721805970450238131735249730529122008179180736557470025879611411720638565899105916258047500555705148339097491020927750817352797135678379171110113780869945263781943192957811812339925653679465421468090130861085250103285882034483789881566586701202453706856361540968976576338868209417965360431138384162876008849787262787675026632762094403826507895054138211857353989064798344548089575756406279472892228890081686304777377161122729224248592464063600735571429629999694500758613914159036591283215136929574660702033717771885393566026103587796874225109744527618989974803536755607322814753513295157637946576433220338498097942606886395579930246769625791751140993005613134276587245017655628262389978562382146415001911853763816178188968515825810590650697177677189988473763450599643489727479721621319193563275040304537714738622493778427196774903817586897262770041063874433848760120225448969367742148914201756709891634417786282391001200397126157437138611491796818723854453414004601492773124925550976735798048027248261856296725376811237685455035276611181088073461448238424052735392814531427715832380776453626089685607350862301127341861454528761358222002566233722984128860926301466438031319757240597014296559456984273442795073154297226007147518865446773509841858833496801279242334154718161780204919861506148752733291016918219732547120927758401201301073944252782362102553709305437475153493894133932054954964945010367569590145216256938496646659746101251610972464091969235693615417072868188866574323553657419616035700471570634997891374458592747332456466679947711836706034585951367598422726428089547376979008773117366111537003797562768345181462441282653946944910231004446961493853375839784919680339041766282796443667158897217507362396307079201493161069995901420153435652474782320946254851179966989365467479934073791490822701292225201588581664577208980047860056565373527737095392907450373905061952146720584817035691109151860932626898335898930486663106327559481851785091899880395830855804197019952867046993996573650159551468083296030471644314302320375621126333664080410588473313025935411121361525331061760898954931921959976127252839520656422789293894631071390179020674933577088787354243611367458686159358653940973625355473076444839184130428250327501665342089623854850293810427520909155168840678403464065695804758199538073099045171562849196255147163510398017525974929022094832463801163305607140315208201999923327005147512876820320174580378703213653664138433852733430357533580491029070541004748998815282376625844586675065323846897392035718668522817713013691448809799251350666069105831862651739647690969710397777811375015636563712941759200659077408535286472949138801919706453735725343641398572179149765632829455029540589805152026942968232937695114689486997041159725410077037460851202976274471487812480645095179169653401913621781055532510570260766852940704934533707332127426526308943458277123976568185967329045640396134023530107736598342431178470689741178270873214978268533131923851132605364868682387411126886258696731391032338274862337301262802244461476327976072539493779706307664858340463698171182441561085811739278048421092317796320497414131792756548654792180134508155184786920243031016038812919741619430933076165817548241224323658910777128638077467954144337975817624234262473288432959772408026963634164271582608376878577276582471944911583560807158552915840279466609131981251796353109088302091806742686103889640423403773640327333501060478713120723580614713191236152868944195202817518203638103914054165348110731475952092073053797066410799382349120465420033292151955548985676768065264760708017403260163858150602462818618874483300428158068654965804216101512064923825438939769622200071102730843791350300298828296598350737738415493001327267191063733418470352464343031444107437781530538149012494746917885217221900827227972646355698111680723800844408514888408978072551983018103486932601641417793159259194824293757156393645736478559917043550266419719935135575347594873199612249609883619459190643601843630280267091429995994894205824006591469601843579775908084839069963218909303906742105757604558042673051701889079163662318077939640178909675613078717127333479462397432204699587702471432047424778885457712934163178769796663800552051671446472637410543446598793991578867199519767199802612417917598494903335780924448773177508247377749923914599748098048102083046179209120802321929494419577287052266202970332894793424903572986854060371245715219761745048611613269384747534995012845816933856265571561708726972452597393844648492049009255752128903366557680711901015869726844938913131052048843193129965533422896586945593369017883457340001170180530310015975379210144317588338418806400230106929638084732140593978057518474896456638097598358732999712646637596008602547832795572893160839302585850235880547202260372242986568354428546020626601370023438196687491383580993721611761382502586665300359582476426612741868799740584704134149470582108774241378883345557396021427559740938043801765627298874204899818382790564032599460536711934512498159622573630480063694687981456730808194400617682250685111780274351991209832678623637777427872680769947591739403547364431451534005511029933709517500053822873733911811009496744514063686582126473359309040352033993654424151693996795421218816916655915756015418678194634432086863136927219439180735410694169353695742600256655778049047661521171772892204824828654388419897807990339957240545892277094645600688597127741337639833758985946497933001449293453956315314245957754268219516466871145955052305667114406340098826787818041760108869697692743216718763120831383250442143871654924828170227465693537373575801596962957081090507770374669483484307354945532049712136145935015839455576178318102478118892464500443545249811561653818265647341945074517096310319055891402685887565060326469974261507604109211212115704277773073939461581807501480754182175982197833254597912558905978217107666853131174256348654610344388763770879509255735161460303378903406697079670889358442029398967766795478068753976864743598249111292049561922929199838243262177093085869025815784556486247030777973451231696066328846500023679814497639487382984359850714782143577546392668201303816050095448636975791598712003076029343712021411479291329637053697405639249729684425120813672909853348298304796917277074709919498141385499855189463686070803695064662112201993620842265822885953058812056032412006195556640580055896218271643014630417212274192699201201294999095356641955979349186542628445524708925696119332799452567419932208459989340169485290225269158899950203705328685689734915158730090870013103008583478648921894750562477849795190305186265741218625186981372909169615800307414267163629876943934870557363231910774904616452196371401391828761822817879489671527651116118393842028020455486356337387047601204348623141978133703600139338583766254011193130746097588074356988388888844812726802746913898455098317695883624801530810684434400001707466946213748084792510366126974341920417762918090559487646257038140844001889570519716788756797545592371863214056196133230951657861405648595615569874405911455778643727498590628101271492259379024745690299203493748667892580224088461920454502474280703700431370931414330214111535483445741756749314216305714743097078638913022463518004048354020313655358277064428757809843916898183639796369028421150666532094181949240164985212118234912737771941492599482187859905751140426532953981578485867402457794626454454436461022422686906248278219425215651044881273677982022650113862702235131122391866497182910651955354175561865876949171144698413771067087554703301922051860233451723000238935906286818184854300983604013419861789401213956379369159906279266979356931359900387456046939207748484155025645279902266218233408146289486926465001995713677755749434946051347610236499996697776627059134809049481715206210071200048358095859253419788942881470770614119822978387551594383841589245296768659792255476046871331437211818817827343063794647988229439901907102134461012654765076605716770841115520303608686947156778896300565075811507471877690641960293117309028520080636598454709029240530938923330059808373373612052235036598834947396336735011725120195419281865213893880908207833530915389171721353684406487466498074045916337725241039691306918057886992975767546468873518373718148593818261872989179012365885613588868921178055013813866190518320821540823648775950673669565000709398712484466676533893682670469433552320373831857318187676872616553294417653601700305849815476679842321319002657277224911309857111872425352755741257870705004261175127634546181377130869119535211864955647342414724685363471370446374357568956502637614375315634389729493901308992652575079586755204813405230031740962656504647266342894690876254069503709957791999107168315648815619826456747963373503557749480037758872667169690827430624972181290549860746412217600278790359522903669102775423123336340808634526374549931130095884345817400169723484232683663031700296784118634897068124746801779385001726462957135720928747137096700197916173800509314636999240797258088311152690774409564975181266268058200482757834471770364586133843696639956513203013855777146612843513913586082687253541577858400467402757331880662065925681647449089430314483248172447868194550805285300558212992093990394536722301513142355462803894241314219961409110598713741959423557193304482016270610588296880951663676042557928731855129875044529716664307546833590330432128046754853608804963882564801829668831280847574965631047632765345777846135955382297889212545845359676298359746524640072422690120160915444195370428091377671310442573315386057019317338948517428029168167562532592077486111217737250292031607227898082739494244640582998251376219261376793219168977556870783283801650734679911547588559184362498875960526241534375685790631950609333062417067232727184243347818246873714855387330618964474913247033739574300256458620852684857261531047499149454882795038218876293703459091388926480342964832192494693473673189061435109809610443902995146230464363196304930627217178811357515552962605038506104295107182659018693991821637460949038422963187378935343057374538631347882727834406001044002838524025682205081379662679489406861812137801040432904372529992878540218908793431630442359860399321302234385910286868408687580182593628329876242364586607537169381794111699933990459654097045701915803031310551915040540376156107300467973489390445943710202555965901716567383223501542112216848210277236523535475825877840273107949576050494815044682956896621115068536151455678121472048265287109060745019488510768334616106263611987533399134329115551772139938582595981569048606565905841837400287512083179639743618504745896370254204857315077797438297891646811869590831644181605696265781270390962134576170766972258698287493923784063379730759480115915860572604360712123330993985118058254646961607372458565413715671235358150145300918072810996013178142682064329286774283852631638018759437841879903661688455327695202583632950170195400324751567249609451002547511470426140956511635126391473194322201539731439638332563346171703056568174269597719938484508344304880222888336483108386767413736771664227973129001194495354086145911600439193797652691450411323560144556775364947094783728204190825051616393229911722679981698149446225109638271753058179401085516506493155520024142733338189875149424346652905091495245802798420622460929695246838898833786284172084962265436055854301898615001438171316094474025070978868091733969342864215697075850799814395845094902608690020124109145588539946564390842592205140228718093620376323610181504851282322899890183808937449015084457013804161829606463410393009129854807402499890083455340140775410051196807440881023928920882332602039294876722944512930396045438924207454709680975612343925238215644725806216074003868601662564931761374023316391373067957724942658205235482149569748141466178156479071886831154626612263989389609107599008328066393180926130115761171162856890825963305670672133122565954196142416213559722336730729929154249190971393950670283330996843778555581146641061945580831110522432094013860614831158342123519299091728757626771071241481644666973136539566231978371562097615710043188499723994311423465452539015791019163919070698034234723943328679676562816648125364531173558832149096352378307929866851032379718975249666777395706605633883181025106763173007034697611482761411841442632271301887796520074341550846694632588681940509247640363288007786954698880526847220383912858779342254042530079102989988529761563893958888189141590009051180078444572309839972205803611898220487817454833936496376848693026634099235534763115654832418265692966139261696268756122071602265979922337515084226747227114639833312982260358597029885949523485963042642445096821179552708248936737757706173107709092202135533332556108813606360708233109495665845700337277509570230727981729848697534685152824903606169926882374230363402134824983871069897515168652139589880459541950294033568061960968754218366820347233877025005699225046027937782055082445382017349727826883103257111789870547680740005584989583840658726352736914683957794342140357284343769240167943784070539066338401267349864521589406119420486487018916208916503899385815834666800551125763391008318325113603974310078848839485347646548264392907676479066473568144579800813638460546788266375551230697723936668475610984176660978489612771303324469789430625659715565387305349448142078032815654013272389044179382190868069962483507503734837618066584222322041646801890347853794660057453657986617259160939825273489564125715685656050627128212361506285367364577808251570244502321412151897949339985482640397314729437382012330350836699647438958727587198806504237646941075686762328631656133899699715384766470239849791229271570943700490574780220257065726389616860952107968284685898494450773113002777965158604368652603723904753458464894305967887577254661573874683358822429080571227926902866861245138284376769891898716970090081412955731009140472962671852764823433646321762325125704744081796729814510959010048605156854081353420485190773571049117552851127676371181299465069077784044683839722470702578760668193659432037272291172948066654214738590222122593241510015826211704892302288733213605231399391350151963533872236927141578738621733142123548585502425252507579976706903689880027689202737796916956197429225190271729639265980556551667170649905386334398298192618151737233408661979798495834139281081356269605747274548466018404456012849173249072183766079606874672706851204751084483113005514751336911378342451354150512142013344591531011794318325460648265507866602549848359377092296948772709228441990076750982700824486384987406345136717890673018589175209695843472907673993900646490513674079356079966963403330910881356047915102575918410984442892097390857175684631226262820884204654733259621222997967675958862533272373303849402290404732216011500358122511549284460225475641059610620313214851637694860928558864980149766375837631420612868844029477386536205195705331918874163841511129360385081326283305471349065895176728661210927306930725319073475095214533072440008105022151840500126725121521589586593937610657870568904455473699497868215865957937808569579251411970444472890893253308999797677446801271285914977386895117995513749086596010126195584914111452854156370902167312606709967073632807861862191542077610099404982160563506687013987445496579874169644232155851949862183172117679367804731502008615956468917989072993162092396913153982018173327056870829449267875719167432897127836892429036270796340920137287791300709900598719413550620578957486043829231706354313420170615759339136139358210153729560354761190666300623152326968601658715788906712236592942790171743873006529232714231757322304152151163217375078434858763603169616287192377251201113924395502055830883694173203688710370046372416065998504881259560643212419967662358503890772725846502259356423799657482250529289541444305764818459064862820910814604800709646738606810519391246911504504873021970175678681864077271480521973864342699080404268477633305741834339209605223743026194553655127711925743728193527684065267972498855625253626368194850457985524783396076298436885068263626570637750154582259260409062172511449929325948804010098541912090832645437626966856556595761253953997688038827310525637445634015083319504344146917160912673080987488732078070957370155080538304359503881238305735642144065495773308727863220941670334427642513230181920608662586546282916867972402604993269404376494275246679816256751996874713270168852687211464683052577710993295010793097221372118707697767858447392178462999021034668265506463469586218342030189069317064437822360946427005040931874445301590950738677450361798425645184849193822969110870224982251829482051252516032227380420630699382426295306178858696341356923551128387671142814555290914731838095475306623824822766557011463266023166571309971218265733765559911589683499493262059677241595325498588464612418698402394225610569526019099888926511335299426114165100147152011331637782515831459370720993709192098800504402868786951096157334682777931673177102419969285909409908311422505045958659596851438787277188510899623334533700331216347653384672846538144318110352868822659117082038765657299892494960120089524170834532531461258766293345803987299342495468533556803772601856739475341640033752291468995132176623320417313933811115727295470648767837961377433971547169841172953207916504079068653797078421398410911081686093646828021223287748158361653716388564600881348674017270688637202534975378549358578744975418113787502577915468246294470876448588189111375972232994577356842802611518898358111023917552124829011811108280762857045728578530586097199490937075424695443405519811799780902009057399850061135454055255918335041815627456934770884855604657095430936881033523378488974460749782975088445516275021021198830289361386035407664027634828515671443196691351442177241933901348440149611817468203929956476535925580773375530803191458693581507425076583569261677952593061523396071312949430972548561820599519902139736759294909930718635396874102321063736565257339688996261517277749797142799369762639534577331695190828519833156085312419305184573170111832973777722710336901393811153813223449999753373345710351295924608988762830825648149872049854566457598202727910847126730161918124967719761389057935842675684508659737074748247701450435880361134881640558498947543686596211303388412614651938741064576353337064111367652156725623396494355628332084738617801389008414933078972479232239221415805038160848439226818100783054969631967924807081502677663462445166128355619653551570771813558919761992984675429976296785938904914039778857466293593011924168065726312987150051164907285752621164514021062181423208098744371491983189068856093072891915758186100193344309719705670902131037853049955395675423871190881642820747708180813114646372895406086844795798385595649830925118940165451454429851701748759107934907295410311551323621491895709499778354464774715942527092590661262114512842696394924828325088338658710879771017065316946985844620053177871659385114041541168899709222141161830711709679635446928094932994798706948086953603853293619843775793000252708840294862664455693532502089567991881866259017913088736395496888356977385536078468535346652452669101519875476502961386973117964223101971488343211822905141877298532228875294965889790347857136253312045076165119902369135053408535477750556630229563688006551378226802580958565216543413976233169961656368667084056246250726552340320920094313149060189870761953544105666127663765820238969649930143374926143356450045209820182413118310465750404909148634791029022530231776099870262305374308078029923826225317542345016211031945150055276297025854287984067446919051227890832921178560079245852914164833528023087745068242433927654304203071618214876018741932563819110454601861014800450439529191397348026251607384268103424324316490254926009397626356468157036678150347319783487356702401961210283759785193636915374747337660448113502961808955905139484171597890620690160402758665551378170525706177440164191390005763039610394406955354934815944774945017982157904025425777237864458233118287552412597766962629186043290179992934694841074506125278534259513390214650456573006386888511774555240473287875048044543566055138295529805511571839833566538406029791466624623372544569662891927244907974206325371388009292775591225635432743646189585545785456560692905919796156578837477248943186794439098325928345121468437994124166034599563305711528691640999772540506206312708866702778192864894913813159387583819389780704313602968876316065929821319296749983013384157213987068177508556661017243049734374596718755288736801573769986747604152465103982432824563320166918502730500962574344013178620968368187831831011030952973648443747915775831675755677920178722676954395838065917481376735066740816672196673783984888324783941760453209152209527053044931266642380529243363746339294724960901453672006013769745362061992759803924839690037673620546865674695773430534074445017181339354973122649610812825842716580070705078230590140005544980469828655929137160277939782108407103827790378237522379008978427541891634912621371377956040928428343084780830798320887587327327181266149108243430755436182035113834530674718347198386358192258275642640722718410501906465802665828584223249782174300742631933506788339892180164931333050746402715186287439529281236530622346006401192002456636774118615957509518171092151673120482748624591019368847492022039553594682201418829871446989623435807311211300527038825700033084474711213574839232233151025163459485166538650067674223750316958891621815112814156932032556032904703553162235051139894017678070314490712028099530381550411710786487636656473972793307930746652345696093012080780174341829677649213967869120716546756966742496521524330227540277381054506758198645571824667511297618874489703018209173784629115878137058693749340973607821082415682616596037511916949662194004138092639928348781409958304723337125482580138150874491462356430550284093230517215022383210495884634262795834319615599635093360901147098839175713317163644200402033743841569389643455110281296222850766124699644021366608198128126904982940531171624754118902914335660046237304988937594218065275891964926072661160333598967116472630549136067365947767110501007610734324287848497498111518750733542035141413874555004124781350979100694296649401854896263555552921924381226218715026758977066888348523303297048000795566942401331982710826701233232877152773616896049805915849934571875457483828361774725646180365715748671543444238207401367900773896094791774222347073635255541987459937946740743716595505958584014764930379382391041779385350339202334791093742798284498732209390396998569544586897729064851064212294265335415074286749011214242882391257575381080467388575826094027063669336413413788385779354805726690260204204050524629633912033927379616581013840902169464852406880396528218728086834714601418876658538570825141655763717402404161984956397442821462031826892016773553422672936486441957898522185759603012152351949272059917975329842030767367478526583639252921680463840974074485571725202922600694727305720638770162498754674989596365834451680852192271961411689873429262044260240850173736495478046232285920921791785614296615100938834035747855773236775003602260764648145847364795768055737817244125874147720549883909836200613063655492913171020125868348587423845860705889890495589538879229432980847088665430021235001360911555675829473548514412559019871490818877284088050825194356269278326856315095215703833266688010285111221412890631739124580076372434433268764759098265733100052250368565436442852383310011769695026280753858203954950674547313801945846787138600133896176070353017016282842397849552816782075176635029507246767465606698041299607187409785966101471833551874919807806642596199321162905635210932955049793636648087513721675591080872485683564849141987779870056496081210619592225818849300185207259995876297924183606277120644838452257191545997683999401066246253207657367052287854605725090112128401554078289568539923021021496131129120239406756750666236103452958359554044730909679833070645871990432061745459049057165436119103225367289766471686593214153805690521438696479964405627412934119417950082081435743979820348425556192011628467509255076974902557995248571837208454281945909988767885775593617923575730331117867724057090322823491277015820840645659117820435200070098013493342220310512479625595793942412242300178328983956870298116840570863065356082891995385086994964285279214617890560464515465323256359691465974988855897400883588205025439466171878174718952411950945184325851528776142430360346832121326852677612441852104506030611173294731714969683073825144679119575633977530839086374106577292887425295467530819293437511285176292851322950779169660305862307576312332333353203131285308886233161880605889411040270628992741524063586229640417552121906901886855423016907400136923177495295003867437935306309610017092368529733885418185068817245258172584178763926296097620568915891690592070989644094267501146937579938230037689101004969428318103149491889463495138407376507759817560325280917302525113132414328610644079497516016985008159559125636749489443466296662268860142684411389729792240456669231470073320915548592698738895772374674501506078380043430440415229313958325461988497288004487871399136309813732922291599399144664979369513661251594954359653332681288845466207887279130004763865301939170618121469911521670285722616501071928875056162006767242431882625020980857418349374085395456673938566776783693615537092155490859723278522190965007056080904102349277710455947845063322597510763211300142779464669312624383698646260610643128179895996898671336615958964401382884888893580434156316770089090540485625592206948409230896808936427651202222025310516432194511042414792134368699344043267515689440726572786273908299949704940288345762180439647737243799704589733702928693301585001536875714298769044203232191475490981383887537538108586333684675531787278814070277617035046151803903003951425714801547582690334495712370189599597412356064750967091809330172958200525150464650728324988877325076004085751934824566019196384949679079190417063423428138131490788368901478327514853881481500922362307057437818355814398242872505359911400134146675727049420354379483518567463169313884727340565282549667549406129479951030361734376391015256337809718335107004066422180495674109903406734329185259808555748507812370172877829180007872023265768606306985718111549422186069425650311471293607455409907906814565764272341434725525999810646126716382922120704083853836313168013736162069413445678497736625127400261144526276325778806698815703304945401322403215329482217013356047776334854972994953607721985005206233312704037819977840479454811239103903212583463554489833808854024603975950511029975515090980110016247267202533622154971601880294705226973318598446553572068129313122002035675719971301248547961279739388503861310072754731229490590298541887871670683807912889775397217772695170016771258709009721372135611959810370997771531316817138493311186234886439691102176314915901804011198908916649858071045187919466005660835413412405779794267275668778889225349365228532342763273374650120116681199526269235245157517662862087160475788682728316187982427418545926360142799946087409300249726566080938272744497913001098281946215836711600754140850591572114503095697364735937756279318312354933940434013388288031700790451097533521001891035717383392394859487280095936560486327312684305390580997532733918929345171156513731775673189710317265622085011782639567411056524678393208114397274898328966766023154229237610878739993168382799263057407416363604564829707960797566440463483275261964107471953953221563190670972109868329916183336965329680033765738237647309494935428180577478981613892781330125531589434508381867009755853480438020193673543200131825275460270349411440285803242049061962165469555695675486917369782185813580913273109519411479943268440406168821925714352993993245312900883954414500310366406742977725539539535639991593663286056912037225589558388281850898216707335580197430441371988039695529742603505474608184539660172746252941577121619788299782969336452731395312346774618305060138332415545310379269422986761240804233289120872009962452154139931000101765994986225081507422492321643244426202144266791982618619945699890421450117002001836406203490496695105622261066690723271601256733698568653920149006307135120550449234350740680496371157404029110910675562455235546436472396493919673565225005992792723879136702445311459781446302976183689032158906463294949146177596793433802343508228964160118693954687175581967218164592434900808232670005272517552249411144634072031692001245810735350316604455821881079298455217316924637936210379706431080142527205302554931783934787101139149147865955594002259156318273545997773100357181652753950634433905279736251305023424244670970037233780002764690422645714213229396329454878088085031016564441592982950212928462000190963156079502794248566943032980883749444804797801493262743502613871401520132561691662358241217214184438628904631997318932085655632368392284436550121780200957849726069540758587216225038756638814490383983899090949553818615796971385725803225183277183575356966656988372212557199225549285052150683367249247387481632662349041810227759260731366604252722313238566632060977007364939809724474175569057524544399198677919282443359598189633649981254238727534544278650469591928995927199507360327652275038238097842204792132417033088189217732779711632086397285872295400549407728491938261516160434128880715034256381275338630102740978932349282253091534121405842167925347511270824100799494302228077601105890909282067664321713857877022481094834806528996934488301538029297277277223223936667545494093201085153058413435117241426342195384724679700952481522874870109743837762743373677674388054364474056254842696757398850897531132224478291241042470197864436176523672413800504867373470012541336553328795748771657403045657768782637026997596536046835484431104911840983453972266981463273483763664428138904456961504388162685844194983298291082042028345753569601936418585574704486769387379300493814837181458241718577551811903292227276427483570310327862727474316486189276351358423038892516098721406061207115101084505010857376442645439037208617702502228697761418730128295684738599471008404648199321008345143268530078083838161328518717584465101374958844854655377630280268379112650008476600737902921207150856132172375855503132275074021896550677177517970584601892794902999509246624589594110990768836391326579272980230098835555522467902706149099979044341448805816319249159948593126063448061235214613070329032656055126790502504050456448699728247627666825147615550569767413377173466797208770156592326223139799413587415558331461282876078766166474280507380154357932234767562004978081648274297497512986987141938565947651773520928379953168860588485740352993657237656571533879983866175943466641602869458895947491123091154624943101367072885309994684094204745564897598245767733607782271549332566312755361020471027858212480779543826625668581572421723797095316707426884570265477621934144572320965675352259005625980850321693401073923084548542834871328934366323247141235641217807707965320759928399632188347474900835586931971280212916268517976628214393592471837193083997045732005315992798012662437589676240361484738050861015945149711107685950359582100016348801052338539049828391064076743974349370716950340572805299802683793806778111720182297748863423685407856449526488793787605866462979533146011723501931720051102197022308063966527335905096826423039690229244319533338387236790618096913513135282726221686047859829022748234081577170735914641008565913850227997407408897000648737575377814050604955863484693248613979545434342424663503118409704740386871544336510959769393355062525255903342751139555747046951029909924078730909328983979465265882682188239273237172880793595855492496856775872333091379746569343000194024552119072398014160312901698146063562467821686858089514285167451531802067335651281072302875504300977009572486823692596206669635741432475132209526545706783552839156231953361772917303341498585479455725058871456425592873840306051466987873966125826274831612223990698871275306933954499752915606420994653525217645032494739866207404765399998291126713862173871017749768426922829932060362192704053749735709717854419644820458354059290887644786020663411516671975659294693789196471614326494840020807010504766979815992174765595817489094612174815526672584400066879150246310230642934680552367000941447129240340767050027311531628006570718614384398575442266786079810518269196145054977142989023193434609566766489172487699049715934375245666953415961360501008780648120156951566290885189284959500203195986666600507200103535805762191587928332949691495447316626101879202427528749360107732695126547289448854538069831219437910182849670641099430010326257078661007514043533715375951279622589776050636717612560421022304921936343915669567271342520876455529091386601083177230338845097915932689338365366635854441949428819763904953799405449327270850154539218651885172319001937150944818448447054892128530802370551210642580471202724186136610321755668012219080597991471200200792055530181026867390025837185865669325189447555446105101486662307607583561019844466789647175520835090479095150639142340581601424900721544418215601049717057514727868102388063334729844628068989767441651356784112440146466851823845925825986907769372602195273236729033882515234340414947291959078533215268513929450136622683570119594904487018714107728701607988613211085451088893796246390967050947160883159508024799718518365940396927161065528121536983818499459213572255551340140198612686449173220026163835918849020295053199963803405615595408059034665418740424646533453224855033491065266449623889506570762951442062255026089511633674589587760106268161712002139199926110992569716771053315925240592002729821361444848382712320214049330309850419950096293985408983510118701784182267019130762082690820571745429796596770585622098097514309710377634399281007437797016555042826454759909457677978122527253185398278767844115156093236251990159714871928432896290092774230433749133315859593662179804534190441273839583584688485052067167793105413327424879963595704895398732096787483457152237370722917150294851820369813064558100029457626791303140235062391861078096348430434235768241570655960954487007877000716953790402372040062747926824223033879904354390838789405541668628098192874685500631140718505439647701394538631646449323381918973371896409589165066621352011642104172798893418521895749944837014675310295170620069664771127902887988936444519739290161212479033603994838121639996388372953292133829723718798941077574818518318247414396280400686337913477336596135645153398148102189166078995111621340086765106613091595102907959968946450938828873730709672422891186129952024097575145685997401747222521420102382870316565678148459475366845099981850303757588467576125934500998841065849995199012239870881679138496862242828534776375617083261523091421393466930872798054384560920283609946448169144779286057611968363787876724852096557768420564810176050129165942591586796845165775537129183219068166138430727048006713742212850658171342235688748497600672916622508040540065706247618338877124484042523364209386808933737287242736480883694127836924637410764734286566838623166190481389367266489939068127769472774800641212215421090764352276472596880165137819081847755516162601486381476409263246926043848735323682166464882678254893467468319612013245859530554098418607640383620392266215745028461371714846689565813770587472941524611263196310213384514957095029770740271692597695594015666146615138559738341559652076702136454209180562022082436463750879853644232274660351660278163780550254243362072774352314728721995109230675992118112940696979133248182652607659910075753805087876342319227446238462550243968109162975207894310769726077259710709223017783253789103323727962663136576590648466077594775204932382138676630485642683950859664735547823550013978093855653208804361865840015821894570625391277833287043943690133777324440599685068865337750773947687626383917544945311827571314948162326494392739351759157497186205717229282736193011139500188452510070501394068787566314072464881755906536009518592788017437734031806398319791886660685273288232335887862615579284456564231429402969214883204317981074725971538381548873902203090301981193362029968376618389058445076456929680415281122267435784472196210448409811561854940843457909137331898646192278094080155407261843715088259340115558648565853727228445284124735636335222343300704367416807824386443945505913605292788574418808670428163377614335035906043364341745957966665779468698214222191983586005634059606293340943275894859909501161979873481145459871716553382300845809986587905524762219323633463787933799113016507839375882235650623462584287890041423078772523596692464713757670400085494849986645859574035970350064033133606602850917617672398607740019235355090673469150379054888541046318683517218389937548466947588028143396866848553158505417247176175168925698270769100691892840474138548796435831282169784471943162351828745714028377517072039352666509593894061092784343577890141281141585335961284552887814909464282703594422267461825422129165908118544833481131171312456272457791932309451765926504495211922187251697151943307077534804566751137015088463774573843857666693271285043175619844060024709171784642220610441735523686812481450831202152284240547932885999921395712045433073353222776953415000711602463297980635582498392238451038109524654639678182677596570183353236847301981560515049947353879291852086553234368848955961666996370174660442632226411983329403290150810458421010684322614170149467112393371943013660109844394754108685307837460474643477303534114965391827417170042160452337255058171112454704253856828035961593350129239273333745258316340127647961197294271801552114107495965878798577943276504667365812948279467594183326188986681697053860866467021052352974672825529486074893078960714939045047186650851507588536194375192220503245177578833119090026058976842263687891994824623201481087601141276182094637764225340867065243342713427911495552177824806341117567417623926827279264622545878662693061403417880249869859190504539453704326705940687980294853411583298079068282755830194916604571032199979584955279051365512058441806147046160390772450428141046216849221170286100580798788093257684238221885739837327997660817885677420711663447861949953977384514789615421416513435684836548376017058005047162807493954994689903606207633477238303239394217912867237553677029586350798008888214680082268633613666497809531070641597627371457466824478354518788629698457961423815049673052455368663373187454440900251124812151941292050059503929536444701333472575824834919520142971189810890411438579665567563486325682236366860744283386434677708731215977921692652088168546689672791044424541622992813587750559231562789780297424063328826557586249520171351000501834605038515007235067812969350749302271580020619039259398249073033879074779323281462182431344011513276383161216617561952461764925272962931503915948775032205749323424104642850759063599533104415401456726244131804669077015699020940996160940458582016816723647630840048029145550183104010345044403478121082383291945047899558677096902846280090118571548423836199815813317948976339197929019796448307740502104997344587100767169345362590616847901615777993889413310836567901944707563447825622085054271339439331471215794781404141888309810083869857967495795654570890783547879602219892449252703965193456715426911381546158513364421780986174791934190843395329656202944920309183769006545852638121354939541584218549421280385887606287938283099337354535647947301606640967371149667876163439714669188508943659152695263107436405719643226254697343592763531881971185874890289702717628126785444564338140718130065227089446102150176664131203868723652484217289422323735575061623066745329620041925696196942258326991405455576241544993974918094320025250817300615791136354920586020117305320719103388487533185580964511108044473539510876944068230546443505144964815304559952409079822599743913198125525116895319699888675115930519852748142551049007957624095323593222666123924548068849166480033577796097689326444028174814767469248106271454360570490198235869061289766480712911059329904221112865273378220488834713885659804233550607091490305862267897074306359392671829547274925246643766225942753943497884750478925827646638591061435539672606124535300765681867862264910707597402082614160159419358682072827641011546249812919229550385996685008841911098410853464591441669330840678498256182932975778581087848644102701612430775340864159463028354346348419749116483620815740271584162729423267108298567883115138826248869001835021269204499149801653630939596644799465108684046521280809300297996923321687544601226624187338646367377837808543222222620861722479785054400598225355847470957958641697410936617552766708482029913320974247247262124204291916844899604536915365498688119219232666577457155495968405241866027630556471654701332580717548554332015659553919860932663056489261328585676892913563342266251651254419563459378455045954959534521107932430927872075413093663032684297793408492600270101518488989164162119752920724806593995420712538059699853959485041468258104478506701524786949752719243417729834949576109530672096643524948291868518844791337996689064753687546134455321671215917175151059118615756565776062795711084035326924271531815807526318246648679741690155539787523918799020713371715012526437374106248399767797970709223719390267418936140526295115541960644627946922075015556880081708092638172394046185889730626122780220735698349694195583199945701942077769652211469505516713548822477284541067035969351514423366951814353685635185115228494983187612446997783108048311923985396764598634633425077788681005655879557370528091335766695661780304991497595014698186034147948382254574595447443835465581849314660719126435572026613796665237028235474362632932668390451736728873237771847324658935041934674231133035016652346410085922733506840362562184600746760151958413541560211250201062594763405249699212907613797339735921198904905275598432227254395404608966172771080704026394804751107015654790013577487825211524530576454123017780991783369291440169691984025395895353261257173919137335833257826485270953867979167448187074831112129445855928439849864009549847630958761375567553707844243674452321611449551542114006460552813490632194790612713811105848186568685033284819835839968986597878715551578461674504080948501975283919054115474599457361030097956529413330120227520772132118346790742219706058930402002216457062334310043443075935688347691532641337340297211501645807087787083844870799001881622489232118441797408612289471142539456761329384919832577000525583337050274340635761544089771089003715731803844241961552144478467255954876642696161436816623867243214368665623952895478996221170413311416820001542245051757934814798044447950436098356117699990351720207835969898537607473316262135699832594341076328231217488145547259291581553313611158019699256890195737894465475344730850477527133765592856260818466556653093688316878422221166470968714562166678300549590053050820884695343695328165847965351809314655245156208538067497572138756117209235010944566657263715074301020636384367585886655195136650085438306781607831740763197291360454131954780994172262442866553918477474502273832627326754665946408527039107061942220840030177562820400469627539358123436735622628171669576877477708723820846692176148964098012747690522529980935226824300369687309957163814291087542827428171605570885504507414174338384154865883473466517519456424462176110350364057163264081976852013003807765036869897254447559285249005732196679218238999706453788225478968916556833580577606233012335279379500389431842337678819019034803814382618541335095348651468654504504028654732421126759771254233267483160934596301783449342668495385184151930785982883521597882539148456628620606096743055130932643275417191007977693703047891643578225983707070425308684092652212163409342816525920874677764870520517184455782006373964824837285145160459536582538321466532207300613090134632742842936491319205122082835909363013825404733246815742336340418862565496288162843606200633870541238201853160338717997350464846189604116565144437760421615275956180259720256824293632540624602546587545045281597121231930972562747052162266771456382482870790805240043231549635657069325670039025841774249243340652764890513507253050919243329306196439418552022061165264092332348487017307910748627114174050759836564606598980650989891973343144478200721910388975103296054015558270492643086855865979256758624312827651604279239879827873496850857760417245825614412525299808029520249814177353686671414590402497601337275967098763704283585638703231889902080658456332618029961384166302343108871816734735664153045283671595465942250429007486895196607584947437756647988200488505027448057967989521973249026882864813797540681721199370022725480461152452635491161748122556097248893030937300899558328214858311079001312738139554636852241780005373163051874943692035690086518297318791642646078349261001041412523616842630419697812441196327992665413931192067081836231077178268831462091437308526457826550583136772322779710895660828091588494874140167306539994882756276674753971982273454070511580542935199234631058422822676929466958284581224124345261187429419987727846152946458340124117250737885322916557109638560672580831295229029793672663990522483361850176584509450773047859861273244717044813401865030369191084279464438885914511009292554662687812641333529142434538935917056640675802035978159810492115858340506966053037182346218166723930010724897751091994230384344484867134550821492958537438872047918716052597329318991901810304825412871717530275199231330933845821644423968840557170767684061025223877267337497544212183177391740679375327823659636976116166608688968170762321646247603695617137274236515578143661574139116015928288182238937372690363628556788021568763185219907767253300199956054192489924180704495054765069516018602222873002417396852396176215369365626912096795187302815303031397571280381111457928499996105351139422759854639968095069645488710851982032754492111461434788355587648309266302937341499468813933862616766637031412278626720033129298931969329419727351861191896572804470710282210709331105737244337584198995490852064235736880438214346473625511833694397773516790728488473850074614388933226333622381232744221994871274529607184444513875282473393979022348134301388857944961990865082859804948461304898194775040799866324757521231502321281340023037838681447997062391133580192710583498642390980966551601673598591022803427433912470292666259487487394828784554924214570403833896075824864023852482287571674235163688353272497563871393303827198836794573998274727241689671790224932782310035063772527211290710511956846259452060530967116389341946189204599984126605497422152744465135445394861424378112297185142429117476219277298476745333952651363218692837810007895804224593208496276937739280942609190354425295397320138800518070228434001354996503820703370038547282814309441948928714448210972267430848563080443937944570592069801347758374620183510038041848404287616161482758178887336711018904726964865822322013248911558507255915340107656905588847272751445602202350104573239111641256538563226159702214473833979190339695233860182583546958268088758944996140690084357219418065348056574695355054145673662211968135362059729338586344697496595368615933830243026073849983929969375701380450065778885695739774063935290260580295395409992670665939261671914469631373107131212969536359913081895192717430241487523323845848444216571236238952790524860843213609300277063958198146788186416151085503184948104645491005248462047417576599466713501462839667397417324143300886599856363972437791981195287310944697784442939276472855691392316487063463305461937172550400432514025850756419831333487908089759461127448786818254878122653153772979713006685302416302955832992191297326864052048132407609617963161630645997913727268426031358958326245749824430695808909348501225095219249031027452335986436267716063433325528430742754236408982016377852064899015935338808532366334990189902451113001807686584225603053526531221393066523411190233343040597777268826517209505508422828593053684644819100956913820255440508897293217418787969806506952863571499977746535916294820459106056965074458122229764802608307361645731630064482182161438970567181429228843574853293829961387496056078397606367178734168596905949403353805760954219851536141609772361767395238410568577345466771338024412029816186188463531783420853374979708371585594733615562987671294176133351112228453399593823502824190452707856312281158148662304739224543364950075933579013811807470504804720832532016131616339903904319079396398972853433951830448078588746152326764394030475213591085413167576106141533466693268224869655330626949705469694015822847407917775380699438238692475896263238005354130628015496016535476148366954849694632275594023120687994038665667175527239200140675387850402093171565214251011772562259705166897036838443661439463230215563356198364855850069939678130559419659781120788407310184613083178422488999842812370288886312173248385503794448380589358670582346445745332347491821370548236114096917983798394669262916602648771593109232253351917049183022153357388709835931594307496718709404135901752736601450705170369196312487564366741317827418828099010116645710715924463649979360529198463600619985254240760649097317355422507714625652255645265179398137001898688163828099017116586034277576157362577627293659945282923933373751462909567953865328529290842720386088788147936507852462559613635720581867687179880738681026385890957782931919933180390446376257257435850549921991515674262325628328820972949045174043299101736861473153066016183559663520147643120808563745858781310077244163508370837639013893515232902059125351163965248383405052116716963698113940369872573966090020806985393021842461625494009134457535156164051937285331274817496534076312758023492684004214901529189992004229084025088564108151627546785389007680453098137340311143362052379151276321124404745427428943444359567464129016531434417729664926700059045376066737269571368179042317719208501142829550031348086035795547757210605000231999047361306862277116272716694126660552073859322411931432389635474221523141405697456933581477115715994199252720080171881529478195216490890383687641148344258830304341780060326087927748158209699178765036350572561864348765593579150282830795299828561521956679269911268383517345725262434979205155275132313405588558602085739268902114905158307959547408479455112604575922104362861996401869539605744773720684628855545038459728565114609071109795285367307441481970764723565854515076736537018450320101425212607239105999334865355277566175707979528182397495819596448725823526716180570028431547371709603763119859434604806266916056066656747615851789079129702156254467295525672245956773843526343037942629129374410321076704342976502035003031500201724436317936212711171855526639325584595789233428325581390921950519531140182552692660035644276842320907898153387149734529409755373345116459799267671413490856360245343965532607600454893840958993532468153583619495220260485991852537145739742122474429408506211676307398115960443234842216619742107163666549558248177140484903033820263121749821930005722504308327793428134651808000942135393995519780713398580884030853167723636837379425870399068022173547075669842695276280406862218746830157879108322041053843242678446719800481128831057301083632091136032336557302333336110992128276008522447819001056619108771040323446329956248621826625296565985859825228355922495712574681435842230661477808269112672255279819267760438516608839201494661406402334373810442249222439194797382861877473996800175845688879429666575191611733163934887300987221449218756029970844345492927481776052646367769461820572750865060342848448172417333335193669913614130239119122292304625108091431942719006038583895232585186916079180552484782966132085561952151665081770687438507611306663268937800168918124150405030259248731563501662112634882416175358789597731148261982045457106177906854777212676340752067699019764651317930709753811691369235818701203373962111295907260848488617845486760043623214278492055406017097234109069945395215244888882112990656996520817884884201165127794250580505937701407967379441755643707159549857000959635900626511414486387879269219207067978287490947819749115596956821574393211741161609757869506174349745845811102193476505493291512246290683442348378995661703953518607412887190717808560881056671245711563681863504664685697311480974544218443647199951135685407841738947321936377937504799549272233875375412603246056946650460894390369373098833014093575771113556285846186164411416509049601850205108230516313248249251237477081351614812366716636248883461718483774492468719431741432789248283928697418782699042971586919519270534205800218590419483260350761460662844892621165529252940535157745747280380744165431246318516635297886301406731922695966692471004547089231933510924904204709251381946947991698995090032822194115982945119879195916381743188980332057599467556420770042867692163540986449570187721139641074367858517745714593944819978687246714507590423522612609891525338593339823599217046034185464205315721502431994894112675476230849570747494249124669930719000004898536293007518446568318123200970923113271871757010509436252533226301389351370669983226590817079151690056363952660375450803950030480523190450745063858886466067881803903671982612641238088318042879932117176301997371019531949163546905412610074291035523448706755042370404656333042728887571857432153638991672370932779938840007684480919257013628556984397295937692433252892652728685853440558417580116903019851029474832424772147323839248082042984856802399320865161317543673697342201554056725848790079158668214195246024958114848460813982572932650191025218356678907227282680493390283239771246792765465605822466292475358154265639741429551421197959662970211788567458950309484569613117612788269105642282271606671057444148002543507025380920791453226380084952493895346555607440565638628964108381003942878205426920996936407143878622807691509939985641816913949109912453850408937026464379555424948829652338806332524641495040488256988087168982624950536572918049466985570660392045984151984128995534814171730293369069133441352559449983135456309870091557335065983401657393568235833987760112810722042722898553003523609244624005486831759068911910829245490965255189242402316247012739367283466227288651059433771539336131566021537604690046645912380708739148144120721401081037064108853100793683657966210500951164079102149974982486474344073557189280772204479801293296833084492892287524353038114601356054201282510325523686367052214679581059433387348992366683335144284560493402106530802516506957104492028199754842708297351515725245307078998549506636482169381049389331077717802748167859766385345887411754227712839466289754533356732817476288097299893775441102721264668125043057613755418964952459430280429275688913014280263270393197976145945126252841128313381376827781732420845526126333083391772400516574648876371071223721366302750274020750763879071180926176600683440975902159571280934742930395548637097656033191613017553114862425314889964684972221454652165498946126577717990653730286146620661397414646225989919871047899840431569252785657965137874206998681634674419061717056112134805446098985878624938216660500744179618252389099409018882572708315993449301631891307531504235619445517346889705752486574714760410707127247683375959361705043707725670615438876316578501784391787655314585595641120830796767928911462497215944739283128914283873614338812875628329618555603888139701479822958766979158812987065918640625743610211986915579555999664300486469716187117654602687250815630307887626106256385351137890078306000260627957257815180830674798773050630714012468850423389521757142311178170170905972063025029334393248760049137135470474135578250270109758854317647845243641656447157849771191706611799349361028010416856256165194355993784685442581040374707712712534822876165343543060965558806295822005756144454790497512764351730593398538325629784013915294981952638864074507291288475743374996439281522535872037591292158701402926652059390656884980155379243238930145425957875586400917310464774027555083514866980814836834677358304347781873450268386853445290098528227892362098700137912886997999549411894840993622116081237388651333437380920150848004494045646291895770992523475643637023255719490911349111206685206608625898701499004766767096108807271913861601853157810946261675958188796001646417108527336669904448792524264717379946464598614397013623016442520641781858462569606356474359742250068075483116730234161466522202001350937233150226208736283336164034022039678299175045159454841364938863421092341170948011371404950010328974567060631884837800342872124887068508357508676588247146499907513174224023150123396806855880267150120116486388026452494367257593919218198042710188768115550876902590698474605979309937339802096081008748345256045224440474552453426093459641104062414103071837400037739518060202063062485040103214180981423295480096588723582109983854897493957428860979638312397448060951085853539274945113691182762610843689360722560146523597510235614517636359692819448092377106885609735623793851944620582759219916367458535998767560546566158877713555717635597022048852529601845306811060844758312920785425002157487326569154287708445029388306354864667400977987600459334355033872520337171157834338875259489593517012339190119622144411153543516250472623395307523221603750070449510472037250657280220677599887540703193926236172610177641971680823305282481491265447920722048184881714672583586555940268235833587237801987356430755672698061972192385113139625681985606411185518930305950495591212585170136755584980969041340560784922464122490564487438247689754618152300379891267186469580519716035299403746979794201258676945562047977769116620853921547568223916257385458998257974906808555027333425833366563064646751885140738906150260311835253207173669633175136873460674032936239867505409308066146736414900467864207535838100569990881915370925803730154787073908988888755835137223111379732252572584911685672768665090415893323217977995506331386282122687372822676159623327788092862665485833504982980702372894618185581505944213097237357616707422080308767696499628982297568125419973434065266502948378702295234541633251985674475255595853602664202300839670330723630124597086389221523529222105925736524562734476572089330825937681087893170170837401147549493995535430648335472040088526353831137342207976020432540719250102322560509198968010954280288503508147905808869446651460920770436317727034607933725395649554423618618434684199221163629487087022002578815770232142996337796857908592664677624834288024016781237101526929947661395166692979617788678140354033564018342838679796892734035876119571333017884761825129516616046158539908230704523630074583584009841269239620817525816618692968799066247759600168626985064636996154784448381169905018311851700087942472855438487936810229133443453266528467948882195289179166943675284207040239817330855255922548605523047291814406703795738217275667975099584393106526056366336720894413324844220658261840591830970908089974084870606746978059084370475029866639545270007283215208977262451953417766166741301052761127041533657656251772994042430513900601064625951876680737341929544417363440220339320518270001457550532578562984784839280772716800790460623225051418473549760232756307139494533040413520461261091037475060578986871132158865234847097972680782695573362677787845100233226048394078528498053681694579234772697079226923977258386471325907512427319716825129036435066167109932490977458213941343217438867379049255104411931806376017989871782378520910707121060686756144088699005977229818707578297539214316952640142698533055667984493415782129111469629202918274737736801443368927772020676121340876360403905506148232890557995525495696465148851610039546736751904112542423087060103397746782132959811030719835561078450113519908302738502331103903033399424182346148786597296223117373891877140776874804988045929759971350849827418987158734049765077786029385318853752061710133371201391266937606455935354399044494170563931361677195703761011981450577111303470467524337156049639767072223168791177285655072460007048513841023317983512722328458279595074198822382747386341286347053782199721442690231183707422442725898972012688120569376422561184932049286237899908534761357690520970071273507642667848001539982714494788066098746346841838956333932430489242301406551793098698065160495016952701618433651159697815978841134922243239381029440226887652861992546023475376889937912255920368185255251963537625027458837800837769871101219665030625697828239603097156418442229467451661162247177583047856128848538217649412173255671703371750284989867340122280186534074789508025199001961960329688278655266808992271438939560927268032208230582734784626689256222842308350655608865045046416760560041806208675575449018932469177563385199868104607830783419808190665309249172844796076236800632564423247331713432205735870651576644710244422377434188133130128035750864979891752511314709293946127140199285549011654455922992489449609735280817867218222935129076885299863935313753434072255180735683571390644401373189713636247105531493118891068999918220626557783037110714593650666168163679760371562508749258426180017550191544071430903901449053966983525202088132403026636209034754659923073612515348839143703516713891960184563537593087892740022860900404718121069629671070223003732528059825427516380646787441684285022106439102231737070608143439758719867813144396157545658726683395223635200150293406013035049375319791867365002473653370582152677653942795162497756277900186435961369634186153581101319782825923358585274307792276582664288780072767978215609382120615785826633801490113135968647788974155054897489003593098347347656185344914880081374389452370394218969692790653885418833559586166401885278935729139660623191895464498561929976185509656027114525341805995681912205398890220855047254127271512719135553291559258654242630375205005888014295538617956595628380766805753788101781208520069103418753726084538648733773513180639115382526909637339950163093771945337066400597233707252726075555856580196019822691405191193167406372416865883784548560652366989272235464662731712711836198987071482403552818535536104568914886184948095866231795525083345138152499364052482400327114641082870505611887448112015220934190941979693214208139819677616066559735834086976497294993808756728144134914666836260514604004945701425032819004080498918474845226751810935078074936588685285090817303748827607242888822075985692574950502845047285415077087665149831034778450175327962321560068527139034796491545796716689277525363094593130601457109833221960752331982885863927774208060854384500319091645870388179070254756146642774483417289154575529874170910710057319533921696745590854116074659439014361675054584729766639089143994502246459983693975987377684275996345572798205115805783747780728556096643640093611906056374783487456680041161095385706508185703903689775354924299933241110828022183898520683068801372804968740938078606089609203478816757260884735349397771594100517761813724503775189111588263161748222790018003287731876774724703506021400776367486780448968245296867080462122336531748210692790239872247389333395083958752199400526409438685192980791385561556813279008634420101748558492625332517581522891657827183036575577343071120869037108106193567114008883724669479484238895125549387567882164294498258733290412353482124736665488430216479019219281874650024846816646688932859721504740373569958476356143954663738727101330471335588583159244349819693516832450815369495064119932962854444721619171694283519554900027940089928161824406530747935045451414636201779755435746096359297001906894605411518991753457461724364631517005180022791763146002285776238474172880871526824987325648957956782204295846432258144996011890104030306202875912054613387822363233939285259138987356373606205717299744649586173086956112328999212054289638784004967048792614867039273027945118473007509086754114977312704743287182482246680663799467770828368909284674982233965103984242374205737682743078474665597638771741115165163126958903596610422786041188001800013604504032234395292793744629187124613809211110361064586532865991714893889596131982610795854849485035558437934592990927083779731632471753080879437928434529739798359372255927994183598964396925493793081858960015299679844305439833883749021894827248423722918247826417812140977215899950363065449160505210951148242019216775668788136389288724495035036366112081201410067737487953711260740015916789608079973800118263657009205762777199661106333468291952825610525201604008497838392043242382188653518552682545774042078620788785184822036304818633780129855826854491646190567161608900309812004507267934116269528222621047259881517577435282267310549357221533061549325310797532476522238714506580334699240651020365253104743036445751183895556728371740265272560464931648218895155424664263302836939090198223413340309287327016652697025718168531081784791713140986539763469082088620011114365180824421505997153956776533692981333867038858472807485087359926311242280475974901820252858886767559840690944770579011237156945325210898606364957615848583891243906110682922721914661054055426898123946877503344560752957580441148350616598663476271395128021973630575715872281661013269060545537153097595135851398844997335132994199667513275081083997734457537689588658390139481475216493527059845694989077914178490936212236065556724642101745066963141877731249219657394818272606416458500298366010018843646819846571145448604202814246252665287075720626058031226319420794044885661403844938707390898696964465734447108185823745738029461021110178415064850897641742099846175421413370724981465724791265496505302299323592369981472445724903658203660763021737679549450684270038772705708893351872293582045313595548139436104877631116086324853819984144230543930939896479557837435687996269472434074163231130264671041940396310042079669887187778157349447882859991832661703920809913265651799716247878309817046959267104028460686455485824660802356595308133513628689092658250059919433699993544456523017564430739236128611673252974787647770976963478739084439298025892292572473040417054060057654161701772287928098281800538763933975060451202316700632461838678557902354276490560260171708864431609236763939912855170656192852519316455657915182372635552575317612360945254544617671609607304695392091602766040923378972911942934369800739273149446006392881213903554851051407777008146575720235880695197883423663523086096270232712409794971726896921160831551936082547003595549556662046282446761430078794041515567481205054450600080134167107843708845306174745478544717796188564495961573666457747423138821383542529015577750318373027984829742681019739697218497989836510089240568249763082582915488745782304831086256245176878008247307188663002598744072307326550734554510460091761509699972542661736801441933909688049721979343352914947939135462649011941609791536633231059815666545654875718545442798070445511115074581511483729890764621836636463562012099139948894578096215953904186672270103070052631527288316471839067312321754823360673612264908526229073783194568350434613331745025175018540699589901921130098368493828691001611936215477706110829232283678376335250906217235783004427959489924607423133511282476177504194654666890407349825497252289083678321180847484953094202102784292662884581806275630962295181213518484549167537157890761345975311101023740554774948286332762541779808011256304947827110652313949157756515963922362252465175225674219195216886097887303213325157893625091497979882663598491239080274602903513494800760103194678917261981310299529200363533629538498540306897623816558652341010842226293789336268228407620259873259545356825978827564179136289479872570173725329563897161207493088725156349149281933613839307565561070290729769587487968802251119769723625257671154292337896663321275866172939748467261294096880094838743126384300600306963085521952346377939562037348493762903231788120674934909742405532001633048499308058481920339790096266601953584174023046362277532058276883558003068474225806022229482330299411997377822338303507186465954283717957478213885704568586319104589168678946901818999588215875912804094377670932614353042072429935822235778010990767630049162380827225574466091596867284648497505504618212643256644335479865796031083572124767745659085712480685081724012084873706553951982588674434796775524583302906893583294591028947043391792143237897898614732804031240916726690181384304178278596378451696279790449538261020524359451488617866916279703455332360529143070815901730464618990719792867676562221925355592725920336427615028295514213184695142709986792379384763191343957307410109374370414606104067839957174652775764801028528623533671970974476514392200651425777141826544599295799107753125822773686276927985103532643109240148258943797001168511524974024278842533703018852154996953708692915672813368043295983195987127019344659183040071279060668813372882569165889682919656331868455638668735955852675216479976377564088224530262113015388884782596768742061856423938362618509794449620897085282669079777544367386667377501090113313000388144490606371372698853905705969192005104523625553109826700975186786229485453695575386839508372513251453141887230986280786937078544346674933352490980691647641663888108785984768500272520997174436648173046514809994969161426010865134503996506500179785209063593796052851293055569172053082770026025170936109935982501205933568026014840815211191386789823327823065805185984739587782466391549313698242418681635626944421298747347399080463042371826744393213234067303452405767422639427021687292522540195065129669722687030144986747893112709834618612599404735201199524455634389709790121113991841414093084809989315940420383945049554394133487443633102043527371544579279733618129836117995758743191900890461709727699726305521255907850665311784665950519915744008764293601719995044293122765005028968652630313644052725714485215299609767696104414932789549881176689743677469307544140558764749120350575915895199504365859927979449956387990553611949619887415977047363055132378928071550636754401591556203237903632827124966167387325895800316657742244519172154398601834589883674710554713719247396363556803471601923866280269473118756055760775711774043194975390676463178806901792751583424743870214964782896326825179356276112043185426074543297969839676836345114642077529023761390354825171774169400198193911330593747891994004371002778294534522035269067646315967476650795468365435398945657839707506516176350807270678976300388403455428410760685802967752643017650152859654344569569356671863207074708601804998415403136413784002490081955995371278635545537492048353495719164357320761295574237724830475339972119753887313511111656946591439435065237239759869883335484130581939136686585043848390142327536833054097193829792433069418212666094075744473824866325343569691430171831598822180741663972039287125071625814740651276460396379719481206756056553979461788174276315686964022619156159211664998624804970612211316632174906562888670733093614601825968820946586294334926343478655697437728532604302491193106526173269961204159592212430280533615912405575263554616171073317231713439163538844568222153953865571923152746013829224920526514280748855111557925773925996874794797385220787284117228868652106632115289355702178220556112636423754419183627954469552731156781344819496789464744207463643424827727623596477698355946198047973098771247423359223056751434908945369950462612244568095785187656024534209862563663008068448276463962644342499460542024562622153902394739289965321147875133599034726315129608615913811004610538881829515977035197880486673724060703992971548955886535629803397968851085056178689899664750273444692008114963636691602672169906823166692831807066855548940536230822288938220435607493799790078873379921614974410875400757375808017885646914577330232036640067685009401394441200938338486755088157923668261884021782961517994198661217642800465803229936636642175378227993571648068398358332376408080086353920697081973195550106157924177349597917493131720692151689289683022778525512261802378476608012052407356599995251584534961346428429152545320754628641967753577184935944545881928693851407205712821102125173180250336054076081166262496970451770252341362899135247060660818636722390742949282136168182268215400215683587006389916490056935253618297895790629604604618039968427571660937953205872585546575896633034512209789437194813511703466806795625982391128314186195595502299969703721211014223508981714956573166075230535546381576506965122799176944205923426441857560929551734243140885087266321849378991837267820969661401231081341825990041330559453406551765470822455117753023416154632427147695800024563991104401028922302143292187801393647537368096865815543666690893005051192140006863299482801917337465597600387874662209589501126283397858952875628385996601124919049285828126140634568948039924989661856642490752984861100860821995187605945464755421878101169978990435164823217987381004648615888886405811679637090182327273348779138593972052426483930306347545607811318278071938485289027682062479106883728751896423191155718554988627525311864436170818484176545270883120096826580236538911055756907908390700849847315075836047426781557046813619677090429088229525405899106557481534125914235560741648170281804856700838182977945291176806775485488990655836783442791435583927395419875447109253589568924937260241379683675956325455528809235862680635643921812686694983756696523868802800108190100897628139511147571284595774926889742025753279401271002056838570577089039673558032509836367302840081266669855936745479173238982444171142298091377783701565134298699115776177034436397879873827584896330123964589673429507366317080340202084961280812720784013883340335106494053686602487028057599084971293316258725659098519027227508875622004791290868661505624065700476738686407692861762168163476489844999025260075273566927890281886920965216004151776774525602475529237375084076263995492055541059776357376534132614039628941315414344558231120272964516259266269961478465393977568156191895150586796966970200941066512848577023894610783180305752154474132698736634985988416566885841665172668556799974522795208771929462012275109018474727165374852281348797392650664592987934813780763629003206254770069192113159132931072260555019159349371593976633347504266497393142712129143303016273187287368192072885047547934584666141973052792712119598003669020713145820132230719152546485871892308807977732223587695772500625693838443120192819601142636556990625487022608608306372612876017509930601514178328571076371176275068688862951456782095808964591917408391396482296245135412510420001917351373176394865575735499690707249900046454106425827643060130999648556941547912120732435489305436106416776683103766370685191533050103225391731745321749835826970644923674688851044109007521813636826972104742085606403740888902910100969192629686936740535617125482424478104314421478030354165964159338065790835901894794845660091317041031152263265426353812196463932424458232226826420267476597070381520240120888451529056382740889795911322481781800371034759962262417580109667511345977915295872676546674509226113970414018989473993084916217571806401238173962584372586490533877026443979334130028822412330821538824276771359613427714463906377792511731124137721752417656875982961268082868387300467695990079636824843387164119843509774304331018887594375966676155576841288345105861821239303945234884716758106836292842632245775793678388418545820181353045567605987397156936455788389810169098777637198924760035981554019896090715582390094998754307952682174261558465159549354309425008463318728671198713591157838957172021698271006347604771382074728857806657861102696067029209979519999329127116494901957810520698035186357827457194105889080197654933763741948589929813212146647663563249010274594333422051339704909999706370393698286833089570861802527781339367304229185783430070047744542633068027083178789984726481732887042776021925504558525450820167230184230843986311162450545044662233167081576000816705858853764658316758611114079855819595726251659921957507707271313164490670623286423733501402747641819191520953331293310446287442795583685573896545525340272455546833699353498575732162084435293117421972708796551296979074127123771765861339596090917545077047326901332945356756107179159330648819312409605592811973908666177392313461065105518607441762584720848246989934520949024735734273978047589351538829940809389290243133596732099899375358568304089363251896211162883080348726527847914584185109617039212123199774073529540750290301979210479274221735867352543315731390010640437396490171654664274337859667905575583322607960490753796015206529975509233269734852959130141266485707375928714990666687550478946066313311143929800745786097836735711842368046774331126580781895927011033649395961011640653494978442360042727907695078058114309383852402213735357959505741151026388008193719312437238635068162347326993311754996835792354456087019954357019393955769580132793833482837382231093043607851077596127143559277496535924604072799711550352494058272085779792278576313529470627473403409695748250344941304671610804991789312772278184358708541567798900664875638365295636007649888581488296183593487758779865974584056118102780105108574495447695785559731120935786059324794797928454815423381752527260954564012034977100983668126365056619843386588116936328445085040933535503189134217493018760548613851640057935491520269364880241106597414939165153315419168753306131831161567191914912962301729535522331612341048280020613166783691011153879426241734941862291576723740440524862664604098939187347450973312104058605970706185948386614192774573539850036336774375996335756750609181029131952358264574187909581137357509498827954738736492050623434371985831908298305839461991046319224877622225767448278337468736187648833573398552682603444090936036615705839197253239985793406409032989143832886189104835290240793034650553097250118544256026489506529507759372158260075573753607974729623923693663168253683143607248690587429698816612338713704139195609680488768755987315155587671759575108190818926061604156971315909215131069162597525476039701736853162749721962331903292696593006334748657381368418131333146309138218857725024849020153607137159059833505814574800777089106371117738809725099573213645138365145267960717095759268241970447194972881034537773605778706934539673007054692672954534125277736132140036750561328413381819048722019465643714088245030097700789127081348923838309686957533432615479411325721787752197289067290707037236206253076131399638876823856927520787184435142107401818034887121059668169854308174811688277201294352420304379660572028352598257450888351418730591269486859610957932593307226939258498474329002874004124931524299452308585883139678220130904129740216510054538337473178395325564182176133024618200665198029046413832285092576791408026087532433624005408108826347801273992989332546374486714119977358205351281391718955899205339343390606482637064578030856378503953449119669998992634330130717930311176242182517275966836562032258041300622260917721217482858177800882157372773615081276879549945271543145646548030091454217611190088159331643136764757559128342829003473194634241367616323593532782083315287714700374644270653074719572589514798205942671858144416467413169241924692889550428693475227536921165082344790246753405160545612046360895069632116750549488414195098263787337946224876344850126112538346859718469840974479535169912470474859759097031211509408927410438827094503429091201394403116822709240854673813114292968198396348535569844644085992931090397535852214325587325653317117019403470133810488073690524883214602728651159924143040217353693333651777409943031739468378949459700468845313156418336836332415318810885707869882153607645796711003876040374254206588927570970410818360900030252553991635225219247994944595426922116471594770803118656449664031089542297904878936448172167606519884779031721572599205919234140743268601547999812638815257744841848603995471928462691789079900701586844754781207910869072779520252944336773713817475223795869942240169113871972740850962379728273162453461431033127479275340612071348711993301877190961908670735008663731269856409654267311807004157811445526809023648484287702076727637536455234285300799248904626182287079764453971244216739150762862186254285114274357171053878725242568624277056316087809789346239018892821453080387621889398686922439647404152848220599169557120802243782879360465881791631363236116407273513120270135275799548493879842211180624808649525758731353343896845437735907803342137242498549458485824322996170512101624614056784702845212326573915087407786090544913721694652100849880862528795300458475140903758795043413789015942494850544676716743419137508761470525689937252917768289589034294759190386832508762431958572912227617836677563602049593946082386630901777908061272341366836183298381002894091987039374425031154255531877033363731165727404549667207114754380400609135861287276873060663908438360721707206212203307888737153152713210906783892665084306670810165377109553135945409288073249084635051181902422526462929773496595841596665427160727481595537999735868366537134280243408865483009252273070418701046700002602468036962121770865565454391652896448578410813153446745283254524837989066225289823603112257834175456780916711615258459034829242162744216879267978375922856279651841931816168616269513193979637060039111741853514003019351960281087542650516067469026239931011799506154005095007740149023940413405433121570286863273279540576586998160650352089949339664481533276838447838635077033890343264876753113565999337785382795848386766538701885610200786698292050429226771974389908822266404988930737868630362173012705873471549137297223656040071546693004590145084254659675449980565835857842668608551567000927595809834233208351325450911341770692767311821121049901305668156759310345907187236416181483630260703915696019999554725716067749449820677154291839434564740091626447756683879853047113748748534861734883515081156401220086090289004428335684257451923814629159570832593704969867047045569167667442426952150543899476183523153752358749541883303656225599140609269775351458236569046446881390638470593514843007894237976784541665668977075144490675287946873925990161229220154625561604409951589556826861633768907674441472712450446526089137926306382013800021516520636632462649157448250714343490469421897404345633894300276275162094299326555525421739156513378227010846954975487995008390461664317100609854923031971327843066010583325740120419072320466150638530550766266655419078619328259598263507941705218597026747250056606940648520133147607002626198289334814148559262477393100272272449321513924724116155800139953122176046013307071408973801851068232707076617585182904826119826820615160476187021794941259738234201302322326440090573584508148571894374733924688017866561616355145185809576468721601317318363653348487185900118793287184054257959703900503279306210337387500787012647120776933266763684808982485824171924228558314642990918172375934914153069729493380454009456808836599815064865361528039917572595603872100018493586359624635667050067792196437501912126482144971870027062055716832954762089328663740226175221119877889177136410011851360328227441007566344688313400147823407578441490688326132344759606364778347333440937334200420455383497007483683454936396201535002594683393915441102613629867021588396774984832554375054651878986687429006983160094058662438550179241122090350382692066171980968020637876212524963942393142589637436829832387010615573312794185252988764859631245192399080776297872220213884691754752806139247181891757648016129497026527554226973261927897575751333416807540813860229817360441708709646782326530540668232286895121772884210394671971811316861668886546721064676522557535491466181724574582009713081184360911251589128437253553410055929312306111143352509426197060911182619379600728447641041301253792616231553844822073274671546040711940619144403772508505380858969177888249001734947069175985215356960949740946096014076283012133816812439125915723591531201550234753201816311287143238135897946570982316004212514071974262840464355067626147982804998925861118546547945338615444863080954429188598115074715725804872058640306437390656276821184801424548570782760051709095316361241937889835471231304495394858148326769962704503907605999906098112339120897951131660779015676627330000090140333023039385517800810559943922536111228220468285004947157130390031113591930816615830315868711583626957445176992485921809487855213005103448924569672053964263761457483350393188981337559521229224293674555790989520034744622346440715787439172852783627836025201608716219443377897708244436436665547996167075709724592929027423645856852835398313934797451378919720642696516811587678010799415760389284696004673164125983720038640730230936910834922389603955750330146591235159995201848871020232824118003059418397379566198821894782933789735144545869538403340909258777884686001603324259505453752368008415314986246580686599902961211427554422394544215352722815129565916186334919346777180903769719778391667538464254915153812390463042768822726243980345689443534593574235959445468929264962806622977971198932279045697210948683963843069576069849276053032582376944179712357290333887438246960740197251987288614461753768015327383777343290603230692783963721169064376735329163908063848254659364774289866810193174824698327676263736697017581964212263620233684111948823606298803700002768737079003469640295959104227074387246174979158804417642785537866116823701435062700768308537197349419429550324406077631963986391633078226933262903224667972798018061934290331417431828270325368415839248982487336331605600984996561782181776848968783650531084924408233691735826520880587964778253744593428284931097859390695017169748034122858490329540377950903807494843834553298121882287478841530624297759955896404783211874269333355280331624003001257092938846111598244363312652367160858080217320164730269661555618452137300662786047481955672890886853888820622602705852619345919841039303495134127660657998063203695330687876935358269266710904698358275075003752124265201655392514602446815361654115689825835077601900072781049988982098423015935417311260084440078441962284138338387147472548306572121087524738253890480147112931386051043482216075687119995066472242193282031026793022544878149403378308562325722808060517446033997199497234249101459728583545627826528055278607672683654076042612427054228972855953516503759663812602173160896381701530569353314701943755732103258432771198211658908202600344951785812156526158506975497279393765005325304972681605570712561351584912753059829663225246290320142052482031359536623230250520960994221279588500570361203027631030336612891741701317558538486346299644897438011337266720139504972722134784107938978034376210904290887346216670192286929811174153117647801579102814106986525358931975651424237192653055712017447501171977033261205709412102886029280503422278356727071233328712435562715584770358023422275315350771022561643956245942821914998194796225009305668414287500203357289568997289064773030536518706922002024174052976327507688489709466167123708410453185435584578367394873698907162295000748258734346637032816476111415386861103777298396481305618035854626280498585173886880170957756840461853486392970690481320399179806527002303913248007712217155825632443637869261074401751909227080759735099516935701064285045610957591705325977762782022316785444839435214612395185411128722336548440017129676197839076376457589800538440711262409021818913398619428527608540687708621501041152221278548813102083414329990911220869469385769612057846490618424652099709922064550047322679320143762468069373430117202707619371622919268396057186172696042619592705253195200077768756257194585860808585232862822256282115500522293025923557847007365682404325208015109946059756477852480261662414359351088391951223396206295066048049717117920121507446164260200713942746006890569676539142767584613704854154997015284236565046806398474401928778678582457630211032957236927637995539924106035411138207828707662877371638351429166382236900242704636363493184727884094837922324376550491441761797815076393829687609791187936829692095136770606826402293376604872294353111504588628728308225188032678277774470057368807790127031925012893017213111048036035475510335420662100938680902335716010754515082176772068451539358834017001177603046635502095423839810378623542600160416085368772207708863201903400370595466128170200909539420298490219794503300974461948529775555484180618707013677763086497744452864480506107381432082853586079315690973093651736416267822684393490608028869886683279309566701846145350440942339437567331628819472007694624272199689441702590238482888413594010049125486079486373166751743221161917872726148170763493992088443467707844794354653259148772059741777603060645278694865643253342215963962396788254467117362273176292923511319561652623416031202315632606933295991930227248678241811854538862699058286578080215409208421365841439975069331399412191944518266564312299141384490352314527012147542048627544472384317197230249478756909059538646435658989385953685855427948871308056961232458762221982621691964459442914927232094604230413256528043520337118645116474701325641552027522494741017494249283778839176951662477376766355784973513975905129502865293891431914944636810235050103286866149337698668445855797251203475440532981243613753494225888413518439148769034277924229031233896895485154438215200423591148133946091744980084876354282892117830359030586112581125023506394023521393380120829245266511775645225255014222291758075988482638101341690854030591962592508933741311094093889786065143369008770114698560490306186627418867259130696365458175266915546678362994901949136767032684052385441006319857155595562762221211292241459910439531195742787771977566458694348542834143087736836092274410723136134679060373539622380024993352830486329504933005693504999111817763620392367978441733593046297741106998084768968435313229457169037861131084386696145211808217406559032742390952338133941639535105870852066604507965163616983658402458843766028084544981554355869531858218594120677819062866743309438374510662958358688027569056044918369934879194230087672180968175811276353523192614719528730385127392571682767566454795535687668430880471640981955596981105625301418932461686779821212215471754094512770507944859896628129913833571173313139247898607951052495835631176033197439442314771718722883985879899309345222043447145260698665311285492111917383284158288086052414614188669029002923172052922374504198054731826912334666621516118663535135300440346656445046455579669155381718409570665057323911999100858857861699022702733372591748304364254563586982780629792414021712615859889541363107319806409672902765707529488147491195820466481722357796584858512135629681369325744259504723461810310722525241061291674327039158859655223681382663601598593205255063870920645106181813344648544448564569977069443335949563418957115593850794772846235880561148921809361726810606969860931171536847021636589460918755274460143646041118532683002369709022640735058515658242382639593951962623172757112259724740739133934971267364527632798658461666011453397505484226416726493746124337757023208065716300877492165645277107082035033254037504539933241528969106854348322748305945086202285368523349542276925868117596121131724249330304005881434236586021357679529319171180758414312211671356072408458867206643633665815485319697989817836548888008461102602457393769455967640243199346358831326996792052125730659413697658846388801027636521727356759915408242916048004918279656793450070100692472512421383539300526565459913204758098449327645661072878378841652388010368171043875279722903106923835931602499400816184734427528885564158279730160685934546391068370157882665724101028574298709717593741551646815831908157703496085455894745871028868910315440263302874745878638431995451486184558904234136557253337461144619409117382799801039665711410435890982888028554069946912696317316890013008536569385449955316517476522022976361796451775619358989452843127792683400095733731474579364374123507082931056952506615008990782114804118721155829224868380127036953709535675443719979872803948276539778282642794729776681044654279699198772641718913392956757811132516941626707393274460065953990658452211605435368037180819309547650473408064007333991183468743158562665379592618463840042806342438270206618043362490462858055323822385753610914230001533734489840257921992654971784427627876492344741316409072655575038613348778894459114968284627295173103606374209108264500632398211360740896186660730809180507765441724169368701013132432716309567647707386992139445204835713317551096989715557965280106170679326642767933933148078630567245256538537051583275105368967285475486169377468269053280154535240933485194580417083579058579519664733439671876900162389016564910341181345514331780781500016740511900353551592992481793610759117242338965190523528275589563383006960249200829943764968315031552099463595154512288335917661301003654044020057773031536205832357666918208852420702802504717139549541865492955193496630977775721307634818865670824542896611748088159898873388524457480452520858217356434380359953869890776733331387077422215760962024346241792998052193304967896598496743353145401522881060853800795572003298090030640973355517075774969183406510331672617355259512589708249309198611254616842160024987843181485700372515723031811002269137086562757073224090968007398946611857090190473974186586337209732276470913526953850543611306574807527658555655944181060122627441026496479254990590684172918492093066247727408289096610784525977952507512415664787560277504288699573870014705241224821462935323573216286892027696287077748969065187289025696432610845097501095762674910555249402833117514647085480318664225173829926110634128282697759057105814777082823363098039926916056074274041103874955283770290829922016208819840481354133988497216060575102368048048488213177679597068185198344422004107223468531796086416117373445537289781806352427749235561531863280894808540051031843813927423055905709690051294647668027119679734093423878466106458070933683502750255886475002421378023400959302359521999074743836415599593249160961457215324110807412584695773603074589878154681249144005668442116337681821413120517418551421069927918250438020526026647994166032276499118665016647915117745334078167513464615125763310957901751022734582008477489021532348277039245392474791033334083768295186374384272705051789382652002269981282941433966858649004468815206368761965668166996623835441177731486750214078100365010608074897291764865975143630850385547630030957230687646370798793413008851440769987750543388184069874785389270566593652706215664692560989946221494761333271444168978831842189675153980960835762519648187718848093969812170289207185520659409702669929673722070683607492131955602888146062981441386630733430617139841336162866083160150054521939557598824779786093692290119169362239303822630911416685138313754225392108738261637002286868341473755095655256869903508196107533943698124887476101379594175623406177453537826807476474485609530506305236700550318468174016752776864391395920391328688160876248904435702495749231141836754994248968070141969205353225751412500117872867096600438191678978720908598358943625460368669547743571998929325685599177285967127470577806043772990497858116837947835319410226419037597331318026418807965776699956255144271739928350532183117175271447573339998883302510011531661734536771307157330548418978575975192918825013382024870210134195401245996648581711062279166701701561336158201965440812598897572963034680066595886528269679202450710970438739151289404829682356013851634123156106847924410841245445497011758276658365327411640379603938625006944098609140670600785726243381514839466090845395949369349230543179550073294072763037124765007317720481146978231981456805401504745609929818661316566637600452738837325050434277143369533594261531902716914656365058359344088985867791930843694812982666831692708816422083823037225171024029941387530927894537243680942354938818855149235177533429617300976140128253265706301022911417051597103159161585397504606484802558640101846040027021116553834775871859317960337268051287239733586896524298034039868083894670581887665155880265504492340597894605772969935763787524024718053611601553742791006330696591220859778261498665399780964176798742985136453386952969196200708664670240925266405918108270949211729442114823111144176228944799377007193130859017851397588410307048270947090793967451224190543332595763761464377864753900519052562466672959321074446446799977225861061664209635697082729473111647598483298584636654565632217095664319242856066002088358776744003144442895027383653577049066311261236920585813359526664197358658385459522541411823683770638941320492756597927350090871588073807422649600217313785013118370342139573842089834844371990577739381271271599617429540087702830018084327635921457751431297695330881937671609741092498534814972892177392881714148085214403752792454150305887742594467831684466286707181697450807419234523475972036306453479922260742492237078773636092203526580542255695287284178116042355921673421396310503012065038744274299522783579211413907420638192367451457909876403262936567178461745805147887189682335810321648135287686698232260532735260180738382101081068321507973857055494090646034927381578855015871625700181008505820077080839546571975671557925276357922247070693284287318707851549581514982476771056071064050261304794971096327207979334546481003963622936282186535646860178874104271158235771769434418447995381444046993183089655674982451477182055143507055450382938096052704247704612989874485721837788344970684291156540092915449609567945728335868932775532208784214113718009612462324340799127292546381580617251311380263555387407194880633960630108584939810133034583372528605918555741862587695415701680818652059494685969184307388703376892083584122568937974784844388500554188406735705321194232423772378530913838434605278947322793167210656456820181861813921740612533424787470680365892837524137107832104328436469900498476453574800026733448534696634556949306745876339072317484711837671767897380131951825905123117416213240288746688616698362072135004442825510230565373743090812205615892337241966453786755819388312189117834394185662439711925802855212952829702487800022708044576624617929683453841976761428540337941479809580066512918016153422553699529849208039211782486929992844701406466280071572359577387113394406916244648985125430140134951428780723205289638137461284061265609207670581601382672489210707139398337207014391082389411564324733177501301109612320959005915346830832522660698048482002598201331072805393957453322663392385047930912718873990609700250227192716246354444893290092842451393093295602234346495481708301306257911823393720650646033158177063306675744088153581518572927525880180858032575154417510422144794649441040678728417558514531669269759104320406650786488884572658290416701248992686281195983674145440497758866953216642722419138421344201005101361651543212644101296952072415369729147089657721271338270000547973662238279813021840049274739743598575045979522801664892468401504316143721649191586917954106585174176558941873353290006743557205311436188689563016084794387535291008291835965220306694502055887014138961328118469801058759607051915501713434930502344339751038231238606657234436342157943971185518343266346211054716673585020898246451997393553959420295246445083905048483690647296143338902851257685519721928731487669148284423347598093943432729819900574226192371441853336985606214662159881256476408487127249503577999617341037942405360159150818427575850584797395893766358186368520106201317981713532961099656929455195868249549999547619663313600839168578792646108786533743220052265664722511353306202810305356402073327824426468928455639394421458774684365110090650621535769056533977991317497993327193025088676716756474244132257391773045662587895398809531131321926061972491706329344464820597966400920991208220894384066288436941787292730736652843375496787093485807371943415956657463446543856908989611964891254743306285845765827214535651018312684898510096662713485313932140583232746720141812386290050911160770041996163360769646699225131974642011103327337918267868984852412845504606471974710606174044742225108425925553073906526149147545783928736877757300504408706984955440773152194765346631365342288081052260089106128222743312201524368195333096729685442129618859692002294130216740532677163087648236145666216365139243841074807197869595110677609687177365602987074431889789428027837944161258223916415641135576054261125101451136128195488350474070753678843376868115724825174714149188664945375615153593608596003660685284847638379533970089213877251248350701438845683942283774210085439681170955621245469673712985462311616433894384009495313236575911318708864269754047306411440691779165881844537340045209503247964572414777082501074982229643597394601140996239961194029016692638119206582769656536139300635856572411183268558797917544538444565850654405769323111725306907378328107177865087267734199111697840552061382231696168455501118683020125451051947455507019925752544596830012567218229696448824358365380589864646940367725813577903261872021142184088986055096553323782982489993044732418098599297613805816250295601687662048876056756397273823242824477135484509088851214323650731741624451394650139881413817278687318716321354120136836108625361503153968449364186638784155601030233734568016205631839066152420314791187757854001674628481306923814107120876153519644730155261319933924189625815918479911517599804095421500561625407822148157492827567266787738878799675831570762037258119271706733820513000834791363866655613173007870084778664643871868871046670840437944406991537049586639786365884583724301822879573531382170770051227399581234771575640400759614890475538187126800429821044625924938771570627195909715159454387106304033505370426052830631366907772454287744336665160743578662801576111854344692231002892862617614074185953231803396068997928795062564798738214284635660619178935272794153131799636001817860140048714604740923602294134174552693377428908466962711012606148725251423202371645325382010204825284087332400511547278301087211770086450494084997685081683955755714049733440237211504061085657734446336910767601009753836543952080732767689592605923705360316832207782672061587586437098784541192837745249906115953816881900027622889084576957605040526017415720775964506769423481005262713908682678208509655121422278736197183133206994931149808187107972979179826336178312323415915510207906224666036879383143819432071856810593380607843298973034267290093499588624917847372462522431965279685513642951624170127523249199590302979873851095590244286816614063926729467010578358723200727271804530843047013951632985375175663460523751994590032384126161236899232671041057277077641875079792467385853889509586876557429531111134929562618200680651258396729914265032566149276109277376584781122047868304874791106843093559655203967714576610804936734976882654508476097096409411225126754004615279124296497295039200828374325886125460612927323804607258935726493482255468863383719547951072091483593197100098011477819503901659729179507094700157026576069656067088190938701767775268364380596319804387905991627561336726177281814026275918736468624114936012165674861074526516320596454328922021906584807929340168133867399393488839807422612894531955080374353089960158731079017204683157857134284057737236502931228533996416179696099737695921883057048185765353560949023655421053671929963630398468698921677502937083413878815786958325789315392494834571157084010276751057606871731874013981824199677619272733481999240162771243503234499132673220653958045206645410820046414406392707788307333541234651197699839347303689954098607815786477656156505406088226311484658362907653275679753630542608502140639829831197296442428423316568485580961511254492618026116435207499795314129453745735720665233167937600923824234331148843262003876085552115641403112188248101956640442043071922490792155793950934551796038779243830884640350282602626469180383923293035978175095904251924575370898258175923508798093346844817926498406910353390352221178768663335050384689954070054975522884579168123517324806323180224760606954870268466583403923049941321073078526040443505331838856599386275093574447920428041731380704188365892891477702682645223758328298908144313558651794721861208010458761739743371487960134594111549701387387647416021734128595741977206660907372850475764730417651030159478405359181627874113149599812665115406591356751361828170896418525960754236172632437734524555130616097563123718037770714704593471653312364718476302306434153478121472638851243164494080363119100347332871087189732950273884489229292419881581926345312062798341665880062211683029151034382934354104075648295898029696686273915637996439565650989207379817566479389857803119743345975440984798865512948303474889186038587734657783439835522824111176158247883308852968730281983532060109031562522952386459812848377663539233643560337471472992890420335508599522767438749395977372788141131837754382846177523791065809080761160117734307209742857488306142621886097601374829518718796290465769417926569610793695855929982729470437391015506270512938752764690456140863141529295093289176216380530643086723731346906183394667578408722920930046635136534397313556283319446149360517719422951832193048321310266842027592152213798607451419134081256960047396043039824603715523815395882506013499101360373858840704771223534834799425852494274737327311656105300511020263711086005465835406306192384602033648268821274288335857567773689267129892428331207539924995603626048360678442236886829587172321059382167156899275192453861696747424255802964044041580384034160000370379547730793326256718370404261212044863303032759843275123074561457389311781975659540772027279772620445959922333003110193062359834240502542099122505245134075554277420041863352979935934835637668715277937576792364553273309225541164327082371186321580355262455369459477566951525285910900629584303818907311851615514706849798068964796209583292091424113817421334295684294165244028880442745112327793455847024175147475889433583290371769456155419219953510132467738789489734941405573472703424814471723618480063303423692045711072684241927602124499341763566414676052909097611685899968903776128888876803807343110480078486887249976729076207504716964848665850138514308000740248769038129618704460563032660646902513074367026879060752750854228207263411189730770528153306246449964418751585941694268428017111449377480573740043491611507232106269245518426681270035403640734575790316357029139989685012276932335021961963405330091880839801181190636343289254714102901435892678646806599510597887579837419464967856026057399582915388914090845894309993685409195082778925846486413835302048342896041442853679266248802741395130406715056403426429375000241297188914444015205351029278286946095744197655032137796287630421655416826185946144811474211683145914427000974817165657616401759801349890924349155502239141088126495199704506433772461153726081580086711514999815247318705071109454722248400767880344762727385839536225575372419120124282166660047756422507402699249180973522072766035292342872224980793534192901952261912848599128862527922216762265456002400651916736617641726183307145911764397076910145938511458281582246423032632556267177743397303111620110064153437369115982222774159743685661394673475239266788842803638406684296240166199271662148447648957349414625371720200162720881123819470779608891685467244122836220837435810490957213907497464863210340580506386245022110423412559653140886287252062301013687733748877150095453037588359397470887277170536911204864421444402006469115166933539018567449302802785718601507624892044809748676454284269982710673833839151543683037166136993158683632807583498921532216854922335841500889959793328800255033462796381679972529007782338045762361266413164321874009499988574017491562603350408085033877208027557042009264542059584880191316280883186626358776979606286833024917830210595372345008372484276857651852501164851177506437682235910905034294440998183251285822409770260795479636240854203605607724832795895639103780369591581913089631510163768235268082554343037226774235108378687273272091265986954658415815963295959956173066828281859589341131050152472233631874869768582506558654821264866888840533440102099500097727876309595934869630173111518810093099155320075197967084777351672636385173885407242723725274405944046819173699668414454658641633238563433876741961534396076578443277059036674262565498352178330300389817730944145933983035781316516491350443291964628202756984074335220818780871367809831213127995879533836438651899363617005567782383796888568522892169495833532885801354280647822543451063462557350476567413267380218726904443257670431142351592563998113718882474002416347315417557629070936027382897858249479857861856968401663052875574754488572528110100309181707797053651470809209810928150919841126146720481776496724733791417578745774007002814313568240595151187325151109383780082718283257764172506091324632853520568752966288416845074684512097570303462662516070184451961842991857602716658838117487650067214334644930932666240824303755396105985314700645422343803416329363042319280394451152250917762041711537188002509457366031727598681861763295195684408164270003612746121940647494636260669310318678655287886339316868808955621852920972069296782590047560647709138223677596901884512554479648342236288257532731142070462718352948669784744677625548214214125489295740376861424810744950742501763635735193220302942255460971160322411794966021091829146929758659133191672829787096712108921229582824016025816221676743895751506281783673981906424502026776849736343075553742998900238836378145919525041928046074300998990603334319277001303985784891202678840186523485289660459053154974276607883089330316558098804740383811514793510851567515910719183701439376610688268912371975509979931226112144349248832222085963684025060342181197527555331638471625903183195382155997160426657038197587389800473034649396983682863975427034206413745025241980782398201319977775404685688621330646429488491539287876779454198310655521271251796336505107983099657990190107774828731854246786972290504261568263505837567043514596611748200046246419862845006062413885278212167908519142156796085837193229369473195413831360174467071290830392876807736347308345999640684169326287324452112731803120134340041270215076936698839738912652941179626267184217408379965070612890678105710642579025606788988236402469442699148150330376829485747627047661083624748927900073530648874632149696671850951311491771628197137219569842140570432081908544849471549249355895044357712451577607848740533691156792444608023469050628711833708627458808138192334223065732321066261329355477212741612396011021754028178385349701474735605374015684748910116096909266323971932313730787084022925703975982879322854843289572186417259504201714014438143535213120170916311178195443369263123195039136828838839121539006938468377381692753322210404654373161009677400193420435035783072896255580932717008638913890783582401610312211981017072433591164202191169800811638423936702314251286605978209417295038079327746467575353336306316771581297793114509311663921776117725809981508747512766441299310057268264294111247392696230551791237189884405091716224274232391658335397705739277684218058732810501645733376756399861672445244821749103068627610678173079142091823915612290111606554835476625512690533924999628820354215544722062051151844015952688894110310438989086597463680857178826414210844182786599723985277039861962903975191194883553714275759432584950178228823906172735269645443863041482379442672308979029213393508115218233699651548763380779489547414615503958272063709748493720071575844931955510083290032444802697330009395897750657061099427862716705219372794963793030937844795553444323609286770436259413340870924343841418065188699864278865991179310326220963310973939495771050952746541699309060473956585300147910983667662883694002884324757357497592577862786887622739787069799147597594851770449298824704620965499650443799333404421293686423784466601167042715707210618254543736012500190894612383603237323312415184338084481090328713790613419933276047829427913120810317995718742653548273566074497456996492690851599537671004770465076668382232800529588258147407115754544753917829533121234465959121105558755622833043982028435758692626567769604507687091727519936322368189074210711650775381219913427482225262078203436237863523736870566454946508255388987713331011699402852571858109509264803309857954194815475041992021503893576804748099025627237763768347401606787458732259725271077448110026370397399954077737959108423333140172440006240501173680067124582567678782767008553344566759729195317581512921187851497687993938249417657708872600061198962584004517704994706145880637078060433042282376510286894344084343970299623773843009431903703353658908569979980902582142038130176618152043763041826439829867768095665168617446189873400522781083351909106989807606884475392778856699765367568336473161143547008683262944610204540854406341154352449961891014846934718866420860372795036976385798236684344597135971599765143338010539721444090690550769796854868535465294085672581475156156003984865669986857073707103839737647427736175097633580622665508019296935005982747371936360555996077191384836587667252893685345243806227689877206928040638916830892059724841681219752274151077714566392943268414701286806837833850082180949212253050257892878590312021072943179016123464347386618860424001049497554643737998723739297527911882148114897054927738566401578918066141436350549373039289326825694384723074409534484942933709710338270762053090263672046180207647672394826490578590471841357279708475457283683254668707549262648890280201731681192982083121177014957597083117559494154429658727854785695315104318596707365962177035666651963119058096622109412363478331383519812792262180579621355889416658783892529226401990030147976781625975474830890667435645010074198380814186342810755107718784213874992969431772627580111669710384329211135283112017928389341537633493746205806568227090601762902686936803385864735832462511321187760188399992478493306354813890969258017393022360829828327864953665504321860610492674003662893893789284139870610370338844107074296781283820781722345076367472493885143141007924026926543486616734198077650746395854738140758108370055763975459577856483954486117952763618621142721591064879636961466176338120032300012024797454332893581384296475290493118326877690334319739051967461275504669420469384043881429341109179979929260567383659939390529025478424624033168348495759095240534217458343750591923890196589031279265426428084628838589641837948121988442167973455726322501633241265150280955222413201881909792076145659078697187874458378859714302779818548459583653743146664694902955715023012402944199930335291048830783003340256873312622969489384898835117801283544049424232701263974163384171784714373183491841938138065285053864997277822201195493199394442676006694017050501813413079802923415342968202096913875245842058935900797012469586890509912373855669189404627678719333680591295188826618327236033522008822645151043688122645632434540113112645292034711625909570476062607509224249112658798455909700486523282442779127893577243357143967684787122575965221296806274085013317803694709746388143756609980469121868740023512962009769643908548315794961629426109614151059809639545067846782488457048149030403260098046602113718901817100514239364542158945605472027809547453828050156229760576166291815284066377528216922477471565389172415860396628576535721923467108322024503021762301223174505252336688182337481787500545964155522544777307701384858743547416203578148817922991225429313225389071657623062776968411158719788223504117196587994991540037876295689277695664712843672485436538696616247280321496118495771943737936063068070992170689484447532212304407953326095049180788508004983946285553217697695071342991563248305386843006029557563902305240050945950716680324276582623268060473333531372139352957689395545937259671458296478809661042052029779811722483563831709206706048010547685921222337243420481020372049082129292300496844890686888055562636687264460122253511474594663189488852801473479700480408952577295917160910098292370006496778859671859484992574774335094685827124468983701227815700293017556920653765478288869148417222935046858917405592987298211699851790602206824179961971925922464774078996225270753310291256599009408355693906591369093329656621038915042388693878288600208795084488731349490059304337724063209666253733179092351280152443119970007534785121170902136292708742971886249903500082470666794740465109809411637150710395250884936057302837328741680350358977051610116893638797783891038557399069287265137170709885905389268999431880345567414260899310090178049361246325739758485268079785020316795783221037196698331129897372543745890461948072878118671592874977832848556723874617217995550147913678655958967796757880452806975830537213128004764561473066820215749969699844931796621502448818643552747858664628037071831732105510744760489794984052552531061776229688713150816992686855068452210509467479461154635189489928091386433377800270675872920570412317239490083893762500237619287509312681495229754261016947909560142714739545414449079327295797702423934575735250399727929664405811830948574864562198861712261362114967637655243372748977523402508149469781527550439360082500117893335149105814419564354997358878893049136542754669904002798816225861010060614508698677592561929437321916315187017634154866613002329495071606525874222998474396569426431079497139096178814179282432008755564847092026928796763833712151230637268952553876492746479588820036403814594904410803640047439802039940519577519946711411369639621198751946676837378260863640105436793648680701519911297316138161950461762553059824367049696119585069317660937615319103309447973768792094773414692779706346451490768726110683354343554250104916276558826287013056969245834211856570394681694265461019935922200237274527859323331824573260841170753403522662152795327657696519953740668575347174525943081170464679473735226175526643174159133302883660734267780685511064080626997337347949867508829524561147287686248006108364114329819144322469510480715641859676404496806258831289016035841611991049102221157705158384056837340791228662452484540901919782816791567866413113746597624937562008723570582827849281329790910874959971302776357320058151806128824045674077770111389093811552362337618958476622214099503826902379806528312403157979489012813757795585123869486464199062048037860343951113961945849484882483018096710266818937929622391146975263260179040483272622617288126848631695903189820688752571219927133620223713909109521240405541903301683130007067528868793679100299853177702479325355546628403991352296287235909693621232014615180075460691491711805507326925753756040992456766282538095814131420401133264378825123123363333585053248338581674965581380467238121448776722591774624216201482840757319057166721905844152985536387812439144631096791887358765881825490554726024981806329498584271413406790801657852149510101020060433616606057865414684728471683742650574494601821025138661632186650875630473630297542212746187216126884560700079867358625945640789727282552119486504543849590342308354128510905906424097444764980795071505463674893320003635985610294200586756054049988084187743277209711699310130313464238670826556638238378448540756023344897702433024918552396536025227617590444191031870317999429087173331023862522591007394243230204865589238084753934701491042380178776169880710780000907688442203925048431977006137397174279846520254337553592413741368042664637051213316288414515321772746844815873957828688413137404699286634269094323474636043301489872921138725593926927668196389386585602768275003683808554537568304193116160229705645349803206661801778039037713957406278152947939490012835723952569775074178328488962393489562770683668452510647280924753439980773288362786235225868924904138099488272522199235292700466908586902966532607440267819636444681736951084983006378546355768356593502441800586244313841454802124779232377846190618680529164589151637790951363577372063474214637925744288439040362584151552123333516375482030142781682757099816977487784830235914010938683880521000295190598037203953586975806089111679551322225026735108123125826654298162962857576729971354575507437264817900848195931055996445865123254576991801329914842611417322959806770832382414850388957281338167969821390685473258956551909953752326918296649583748312373663375138645721095875628808008070051553468630955732545731998766939820899876098962378510353734183337862110115111306656650605887765639193674200591580986120219708984226362037768021052904681183846928236533566866315857771455171892189528669875810425513965687016809521274951826660993060248199147217137648183725130799403755207684506887467344111829302073506771056804374456427208831595652232816779111068565044806465517382761043495815990400276055316361767278847134370472887165408272735193554961776931670227119839460361440291949190865671201067905457368594650244500738315438131657938516580873948670020959786156279555223330946167519266265190880673618170249437585938321993597042483060779965738197316662732214096358779845195729603153263909257744580113233504303387052003581097769368142984946551739149851678161638107821810359447174649188325105360561133674900623743737184475504269188707157837183254861459218044351551418517950416416779524406420934889849172347270331022306286441241214665278411137878318832426981300001995068670119213982729497773578854234175518912742193439286363278784552677901317347675708997933710885141659050436430922860409947269917875332413531902278354283054409074444787336427044786590400803125419556198466607537415189935828335160281571621848060936824158646960210747142795360822804455696330805242708422601931488331715765636225438886092366739826360167118997743230783476255898190766578601581548250083859868604435597995278306148795431191183734989831174074233009215067769495217740609004635958740110132520611753888996486045670530123319304387694178112284104594898484258316481603052871404375369971864197309247484325806255335153692970026083736051878772890639961289695885484447772074982764255019355824073200230358528127891594171841444387150886476059384685857582717151777648988889781319070052910307268160728998091959983972506574233761935807492646272061087365829976715377198409666812124086102227390698057966288053762840042507654353073255243703726923615243424992888337673538281817322033893670413882509367043423808799808935464486678188811172788639861295900925723859071187385124129515596817788246131734034500265851242349006697506094629597536586754599197491291325513150170961926036003166609935437346143820638581215166604514620952145516851225335014898037330248219924842409505965104334916137393179984817229372243490761282617618603895805072257013171579105429492323836169440764619490713744694834986193816195205151429088543613249319081467623286778284199487317663489838145749363810645708792383425514512106279477021450525307869921997989033889280839621774284661469713550178520182665595068499928423620872882118850612778012803503832600553807661217179095756867603788924463139962423999263093506293550420773394269805873572285448186723730186519916731491053467192212982500348871719679220369933758968077062734478711599333439859967679447431128337654571102697093643690753009869909488117525412048498846763004187137745611563989097950968881800532564429700137974673192302500371239149183684817002375003603780525122081496668569496755723631616770135945752076210749020438341741064335987220760648562330846922227716213958554213303255633011111512481680114119239661952019675036976760335139317594945043684811835656446715934818410387665752461332402989276536892363669698734282289762867025838938608531252392285702225208867230857249245590639590314230395035103338024291792813978320773482024917231813112323315121711581974930086329502757284764086717037662776304227358317583813439608360386975618614162260307210276510167030956062359413820607819487147313394361808781864416919849259060006963756778768127459820227870703124045013706029241719811173703329459893207406914229734382225939903634640373385748030407703571724379389613804822910490614135432138755595941044803043522228381491022230862045962891687067111381618085754304044072324646181231596253373564907009799450675802051560628612800935548443308615003894317989222197113332754427916890503498229673210752820880466268001772055167032765712175134928844132239661766939589099491806118331631121275884376242581034949107627106823562368096065680976064073510031356341161625999283297326902572274041518128580970226654510827072331365429121626563618193011058203144827476454561279730866381772896786423885105305955255903944147377826383235179364786420957725348389460614922221695877392879967109240325399163747099766466536739643762055712146160793559235938003790976974229266941361090291794466948173290265067733162464498244328723333085563050290539537518820766728515651573729043739981222151376321074157617246085568459227512187432413605837430800292085992064765668157085543975776117891656252491337583411897394532604000992345262951658491922912058817664973462099093034035592916467893377371230762278791557755112176785633332757055570939465797849256108368107794183218272313161036287902493222609599512814027764794013423590420023931713441961429619471783660954715724677428214799684774720109628191560876563111287024175943737059921662004396545333748982375995248558900882513426334008396476923812492216586706140848374407594444332753041724527519739692370471466110355434031216536369955320822784055320039630786352516608536234626750281030342215919689156056224716191958682631289831117936943983980854707705444013729061714464771983843927727689913380124738157643377829622549115822458982873813700239994831035853853420375441393494025127309172045051163180580887641806073029747237851527432534549956981796637328400385413315089472045750260622724530752349790571310367752181019809745534102920926968696979443910290655329595231341533118942494475643418201311202074478779100239091324611419993714934981852151854760206335095941432192974675043540959727973610831240965800108502366622078090247621624953260208374382498676433672621670758554080897450019568299892420340121084005201869566436020951778529186612302166686259638156773104046923287687236610447354179257348835850414990995511494269853470763511620559493605958866502717110307702364862729418268299032457657826565943106206365639115319859538269836495499897283072067015817422337406243791630290573827515911094298879953840661913352283116845030242313107235256255026934982077610716436950694486342328397891605762279698837970588704612376867743692733351247142789766282704363348416098898754571904229271995634663651624277573671498480295212514222271775501136406409154428666132423431174838731849839268916430750832153699703053703122234490241010122757100860946339078207945405382737482023905005466319942348709878486003153962603223224001250199105655935560030998271324441683972745991173187621214285154035282925342140916939775161062698751017585089657660754500976769455672508601923146923891695540204379998937298680497134554895546359198313992184599675402409231068084960604053383805039233477617926468608809675723616874496529220102130801426476044452034685763520983264688262184233786936894163356444627258486705131049236862676345825384758452999590269953851206158623962084636206289020750580503024965040252580177392601574275496470194581992608806124420246812752289214308705415084454051931025509086514432603710914265081687607249515064568088060088917299464307899994199808034878057341542370056575896926734201769699895310713102630779240269545734368148053862232175715681276499792050852138294742581424111654853347221064130000314088799523133656931002382637372231744650337139131199974103321267489955395046174658653031133407034742701963439669089185853273394638670499971122449913879651027074955868497760801283639259063083378838736751085132869028429034727377376920178042539441254269533708149970051458657841730529182318216146234805416392963395190084464720187255200255352190529517893466365919443441651414541751584638829503191286261708440907080753977116026090377297523583534715908348669289995011917432512476561496269938689511354061474884539737504699656318625182878444213430820614622036882791471088717212159087536469204210970463149490361994662867922483593466353796248095796897062790390388962699563700023627131954003630558457665061993198707898995129089694948276228864738389084690153352167612895183795904455681915054180168541727798782560549308506111154755279760021879481623167560002775211546088377515351702809930256918591130509001329560805983486805061015076203343510282580787846108569529179534625820530686403994583516053967247935545582896098208847968489790389944041489256354708010111733336468696853820132183105199214169324762409725040565981284036934441018750302222215316063101693172585917289260240628949959590580542056966750254206414901862731804560527954333102793088989156128054600879803056948911093650614758709085076032884693042189250066383792657725781965724601359012847148562647274382948164966950448738468244803307102585954899575169899940741416214515828047085872777236338491440592026118017724713043529419955687985938241679071482867569940488945479730940061244991395152753127932734157549392942541937849189382340649965875823374499552074173789470306955392187307324379360778575206493579905802462441118954969604056973632392584793827634351174159028877917124425646560910988319075683149821618339378608735115491364910179099161931560723608969822851031628634276836271182605065459249833895029224846355809517090039564179819752191327358864376035756900001869260793482631896414042872355344191352794827077746773068540863922397601902252208542296953384547174341541370390392058874706950682124884705969321696045822748928501256598099390992974003026522511960921338795325957097134951710132370595279898000407483804408543634854036975233871085059973275306891327729175131605812029662385914375652768854671509006471631083763017610427161239266820753026160189185846188923781277071262833761820931706376604529579900767893058010663000244161016648665106626580744132545845580559193313491810959838100843419496756454669465738641119743361132512506136052924789604229392824118848618646231054831026181954557040931979481209113152590811085913547251670392754959272730669421917784880967380261465920588947421710329872345975075318821362921306504398926463802986361278297558846088288726268087324666908809076674272278832452305606143184525019623428037457550042962187229976483877906388376841141699058842366315136721349488498489460483492645476400514827108421423219115855369786789569204214540817722539373392205262321235552335353071125419028623030337146119361034988700227475522804917554780662591151101611403590830821622616600258091682173156614122136014337281194191607568171473021293720428184949547820404976007074037916169978212691922572981882330235984976045906185569253431910015332576893989032639206082921280926057717019910384867830856726281846424016784819415130541997380565468117682387921271155463931266111247850752089481842395527478578260633018442690039970308582579409417269686227740198532145197482023111265873811833201714904417417785954573830785099504216436045396459492142482236400506649999110429818664573381725154526384984831086235132961279258090718683755300111967371690005745712210576356541351397417344510274617241743887464243039729591715812656570710894064070090788346956217658157922175603748168329376643563583290616634881299948262069580088066436867959958379675088058148786156166554769654054582689430463615450325000589151873247968362821449022825968867733335615609365653846524895691479765426568324687740491026194063981328767399748954944154502137426389328614585905990738490897257121503393376898456320816771884968436044960649392383190638288718397193279902527889687579487005880289704667329034006445033259498058453726226772315058342316265468854611018580913068081974049571749311682475446125370602338909060450584810069385818295605492774126656817557444053196681136050508257841393039763500663490497301062030147741591363673343040096941578794711984995419815242726468091105991920463964066165627211825294234331118214550032629381414782571188254659476433932705870908755678120648049856842367215257655486492206186933420991369045096837891205481835820811189999868286692286607845493396153126659115136116704842056029207825726322280068695492446535159665884487626804025324113112953896326615682761270631150821942360340141003162119866369126779497902008058314421608750140653983082306300097767630950741615005979282286285019846380739000653465228959897413218451720732995011728931080472862900457072551319058442147064289747898422433363618339905539479761394193846286975322429189564113699015099138953855877245884464108622230436623577355894821183992912722133611105529216603470520608091187509379171740635514863398748708627451545085576062009741074561181264961278725041852075153300546432616898332716027788746583474384039201146199428731201366234828850717873791497163654417661982194066585512201149544214286622426230182452051143016309788083136692954051783013346456890627398039133078642767811837212819905972931668063342262608226176750190187173100848912433617232830738774163052478824282431431261112544816680511090029129918163425355068801612231178105216277204908687608168880844791395192575018756878536091113038644308688934166318202008018241939641979754515418325660428796976456676846022249034828586148122508894466497781415437972042716695264926969274398284994965997699195308656993663798280966080790781158486517249000289634805452544209821959935889937052410686858947881436845985550532151777989093278773274002281505554245061116710245045438487717087718607668553114822928641772789933477040334954878217299004482419781122207394203880111563252903773598301605259890111419391222164269895330737123693445660215008047950442991097394816466961678676104900939995462081769685877663761827952130631531657002920217130279589271075477692239770043443207677729704216550017949021077381077593605752018647098254162683378017927109179612249757481666168317078400929010709027542428809038324324256084455581757673943697874898627411286133946256874069269411788055541787955939533503107071730942608300499610316070037531776029133603933592841730537015445712900973326569944195394624281155822281519408720586322566791196209088595058351709576125716628524404995916564443314676552167046498477555921842037952900321873470619117222918151197087567788944947051876955151345706788841452582316854861936360449961414925993625054706469860680018141457534234126160327570632979069355480363641542115465459471676033815114824903522822991906721836115378078417288741185469850628794256235141050889405575309286697861852851643795643859104725743026931755517479800638229155802567590070594420738487644499061488527961641653271200978197537465994527199174572857223471182627471147894107836000357126326320642156153913926222251122305378248099295832212930675267455383506566167053774063387255430937173968023488495182863819195416717750542904318697411890303008983819390754110959584238439957940077250227107354804810820534284849541308606738793300132569064138566181938502979517790036184714222017315747708037670208615585773278864938676842439071135475874927984429582823745314702594742935026164955711548684996603447649957427193938620117921569354785770965001983723002138819414843915417355541308768470425090886623276256265912712224018518123946308999572093299674231459009999049382115607269783653278859451920557393023440584028699425677760286087727463996321589700040796617198497143090935615478157256795406104616144355444447226435678504129031650921701837319513287790118884125549126290609296061370266495790394558533200922441894247077951692632235335214629554558778006960198934741563649578285107980271817707268203686964168830611550067866976577590336139013401307038138798846862336397874357053973579023164972977012636508298128467882088358739130236100636115377574921700923679845708468875750675835759553618198595440887338435228527020048925526962196077077087009246392695901026348142388586327335699667045794992095309713494808205118048264434275685707793365218926137769050387922398111497932582997905568047903146177778027908617382251224303651426180329690804683189790165154822043167309910186338218028045140594079434691005067475316691888541277272359864455417072807777843319169227514522969520931302280507103740785938659111558636309360663060806517000230510484198447760806617339839022717303747263025909003252582461057130179868958994115077048570660319077040268691355834375271137616931444633301138327748644833535636720408509244877994501578525386136095707216675329316764712145933009664136091385131347376187714910555498370488467954690888467574742230362779192461801183109384526636776815937383622309729297718741890309663759103514810115085425073823903089577079041827091505145022405333557172660132444092326433737452110913024311921741302992655732436423707140974907814792459526091386276370215384134819441150477473168870696664688091354932531492474194431444142290450191387579361412303189497778086968774220245351774380017817420848970949946658986221454341776248342032830313906624606812968436273927753247949663148460195639409308264164197367314898416394056350608868934641321834276696392490964124758474474348581081601689015760142704509251942603087678893582094526570307779023200846410062590482514422972557607243377715721524894227327471316699298261887724212606057756729992158435848722605283993479394750471782176696050014638611716463019643997286629390429064148822993158341398539463965074180780428780804372562517111633761048175363175998641656031709044730838560025414120009584152602137598315877388043707931294554875610128188115021533753765214065477522653283065383397630125486574679076377768578987224415578205544625392072923661231116114921905301795392997522114040513767678294994150320563426589719530013545349782598245728946847966119797243296947514379723426127647455228000038542858103446012423137627823430550336954483089087623932375238880226343983785703618837372826009394988583499428914611266570215402451863629220626165813006618529615885242674687647972365736598220541162433759366131512036956660332242429621233866657610325036833970785755742357626728405998287974743649753637142455918050009414760020938883998847612010077838629722065498983168345802749505800690431756411109133990313464197841578781878247742580953038413037380438838737130315053979068533215655547073333254168331786861474864880622493004866403526233280004656701947446722542828889887060390555049296602607295908891395401265019522794878169180659524657529847342370642790771663302204379625200814635216334548885771996861142917551368519085349298235566269230438886424902703741319157224805019375661284699168369028647917679805104615436758036463954707182888168725063423152935661810942351262003139957013175635164401975324904982556194901246538960962141279539379001435037883797266165038648821528992759036157783333311849806274038571575564756032021511061905295544705285891474012923472661957041063561358750707981373986312542397821428018590465420198447058503161547913944961717428528331165620248571947248485089160454809624601672437468328141973312555440296982935975903745540570945557438346187153178373670217991818565829634530315986008420068832434948922290132951586359124654894939651002899910111726158157758433347049953254541664442938115796391940656246749856373259740145186650807518858530374468916208835593368659719871108071861670748835055017519063276526940398148643521232860227570711827680990549410941487534497249814438771910182134008114559286574961599614438909242317076862825310858605759122869246223703211421622933602823040165888450280974665304522265567444326764009866217362425719815982037808893142563496030770494220268944995363420712493961265266375659531626527209559015117361948804041593249880594711619196711955429267008407770862138982175377003662318192276793588731303326808245054975440228881269163057194179070792851094880852468806592928742235897614085852968936474881269980773825984805110729715633492485202103692137335653841612244089247268429456587402232381966040496780541864836490743856241829271452749613117595393377368163616925979573093695771792387700701750691910210119145015378191999839078867775262681590265941473538069841147078913024578355416537399637653237939519784422145204627299829600446735369259847757967755236675114443713141011693644174831562890094670168436988461582459065680566852090908485747738360755331171459479433420076335641935542004470835033163180872905852936257123796070144876767684845177979328387444101536228116910273926583851380117664077700315808016676821150210901322994953904612589948647712279451952744600429553435000166492294854277266246145121177818867439386789308012896519169821524669889872057597114249157805314515390764520240132648063062341716345445208159405461198664646473555221631059721294186810122587784674945015359647206675891390895386500668313803285776314316370930731833530005402448011796371887320186119921597618811017981708427310229109780052746085235369334933898351107903067981867395305941139612801256969852071053385713990902815778283145950621769928105227542871944080355106480800920745185620761523853836527168004100286778218907172685153724846726803666784585373272519752345115563417509013013250560128379491586351821272959352632753987897105858735988082890352980353488620160389911435283420656718085296947192596299243758713417320712857202237421707632630734532594488048066940928935984864131818051108021345270671938300231651705380516404873305746335809143012728864363968443882067724888091684379034039030803392431490196484366104946942280664877483693616343312556689348473733725250453074459823809115239350170457349286429495643835621149442234379468292864735393987242879435850865613631870435268530419399489609673302385868314470743902745546811262298616797709703468776977361199065767533216717841194336755546588359008855025766299696977513334668861070404863089406479057740577937426687371855820262442249022174869471550393198113903012367876649577182550417267158918202966449583808182789069072162760081230064572967902735355007221120756624315588008733153516187971895565706554104283648051973059121236819737519444008748853385014231125392916821662493702548727928010902255034066678786902133966679180550646240534969282347517078283792377145607856074484590366195311160639667116538963045862139826106894840611537245252152278387801948631655048087786108962143910756079473781335522908540073144260755201411313345994025549614407879151510941957214837839305992932194500792899440500441051758065105518369595848580943603137697162845491864883149785079647365491835942899754603137146630093141213315520458451934938244447527941584285212474861877762789785727480172976688977868806140723530497627284752264434267591171811874548186583571206456943865761750570493953742481782534926439277848597313791792058101400133847282287993094344385705024909911729773102059223509546547280227488742037650193745178256505099985824926371644528282247146787558165726411113991531478063374663481904244242034929828842573727970252790160575294900906381240424159304895718161347815777338540520070904527544994148248707029370398709332387993560601438053837765920688419438853383802769853420837622111156544635009446643335153023496160690663120605168900519386964114774249730297244046196805996720520782014281996754007209975810306556313323034012734155710622022033372280406447870398158904205247585712147837327887517074600527220587535093811456592069484213801477369259677745373644277209822675346264781285270968292592642958553630964032276967263643336495210612568023190212431831744776114073710377823794397419082953802940939270772266681210584428383614871268370246706937377711731984715921617425511341680586673292238837518848958795975488641934508510793609873488473072781629827834807188962028036482926020240708905768788379176027044950110734326064374781812306113782264580188931630807326535817754284740527884489210587454736177329229655592911498769611562912830359608354736352848334179078490134912386896978882565801777529091896817007694328619023897126947076481444014820550131287942058073309462411484512671764792879915722618140905381823617810541015517808526954885866926979147658214467871498886911191394895562198301274536589159111023340000873272286400764242755379433814692395218754902056047642288317017082842910451514894597319483267054838437983882056589272173664538194234239245978034596465826512537959672101637629817108295836770070382234874191310024005865871854160984215364959523054372743382489162788718212909383933056455644036866389646177418531860362343397895610245861382895940922670452824172759581993013469204796916978181300218489872548090568720146148726949185949730983741110743881641151961401566388080652791846268569993085739160108198735880167257126302513315845532375424075067721997201002950598558162001603220363299391660575366008653785928727727262381629421549034395840699936325800598917826079146346949736146878415629344776183812766132117975295790372520341850840194644140244941312859484097013208059404949725233705778367211296366358484097628198975086854900849941282187943544769483896647564613261205314627533294702285191315735709334710802982216309829440885803733261837563903254074079379731555475944690388933480539815196033231994460450627669380107058096047527768730992987746034948446909720434262779371100356059517608757943308781383302646766128432881810621352032202805004253237862068626830612914389728653662087707480462148599284662336306378381977917060668175097757004817191591901839403871817585984675678591809843512895469207108518013703913116504118134070485939690957252937273223432065315660494455610747819904936586967075442804360916305695080424995720617511957941054589797037053211985237497787920712363594608538048832755696537469502446281417571015782551593161686575918443696554078815595122637872057304443853238450494558706088947923200924181491267037901149391130683921758964740933577531269403443573840150950183440463400664698788458844342723726150633078125487262246425736149626044029359376361778753900010619626496743127031907775745369990497005533400872039426536651655124088214545610128138159819941588692843991522377104207006647511267043023600541022442757777762421292104574704599002928611134166391796621053065668918856782794385881385452738996483894389577286889970985699108831041112850311001035780168028977472014007020798698320671938678890251748638757234884259624709865569484502851913498788896582390665537525085140994749520418534439463527961386873923659886404400768750375773555171969449657525559890676463839737042242738515124952691501945205253072670647209050794395302001142772016585871844594181658947934094500939293462125213120346225877386942148545153403288398499357155564486102655193589705030879944771321268895530631233790419510324175044149751979047000767052179491678747234428034912195872316905487464690901218695012209095543625064477720144388617309931716064819113888751154701013236587729483397003293686491430890082999645316149952386385601337489605987860444274521045034445735694112816855656910164804018754240907461043781728326881917792684870997278053071100351605536576900677396653024720515845814331875977517909749531475313617882118248244167447622763428534724211145670849457291970660582064222376400984805391128725850758465720484775634279661073897528411373969254669308563372603010626403808584513815326485862896375398987590584984224460796962092008149516446473583700564041763301366072186196701609394108154432197157783716912843989942540264951304831870026624977548393219428759713841772504387517140674497768090512464323442859672973566358069961336045463159251802326021076397582305491297527746196224541776144388797572049195363088266769716995126108103079249577758521178117420228070402991934939637812420069322288835516299470857522807990194875858577125341511441360678133148842934546227122535555742836306491550792776209581408491115106267903794062811557450370646095890934303703870177953518756635172981367132537070975984420227595508336490300035748352592406904310688669175286245375697555286635590073331178382334940858233431354340991752658645339096632354383052813955360538386855811441404269549143752018375190206374936438511024795560704574957121303002496038741808172447658216207793657781803148597199935843887571198184835746504040770772957338668338420881821728558116369575305520718807104996551600398836160096109929357970838049882831843430718454791943501969465824673697834923862014271524198473436418919901015264386524419186309253421273030672762882941650088151436504992349271461160646017401019616018616291452051731976446883959667266657213060909285419219179754772721846185027104613840923391950762752507805163634712297172933284835769772979871787711864823562228205547713723312484985951957632279285167128841190793324150703171720986717962085028242889665721984791585994119152342671174145646183205310383693513344269428737933944157486507891906599692755387395854619235615679282165886800530457823620537585114192446834300769213556361859573693180531649253706305839205513071411347785926330148407312126394708797926887019062058038668558446538260530482581362336426739006068837737393038627298252535554185064072445667395458341337556788769246357155077458336350184890063918148762837846969730892496450215026101180947756739148903034979861401626742261300248063632001808560532243831268525123768971104441906786903098928042157261577347502150988357668337141713905497263120163212514516212093015961885238653860587662332300001212586669036278291215918059193696892844312154074587211607860150463580151535939059697870198375235810984292540590926466000130273819268492149430025322056974021797608942979980563265113505349256472198027866714847368313372524641158653016806603207248121423551373504887352381241346974529605753956462377914593410111895505778003517422217917587841790929764054502821636955240486289574447920737630446629904579042543878879512310120952835183219455099747910899702205294492281412480382767288066961819682189670183501663452818120096337369165966869490522837908031489164697101525939418617291428019444346961465577403456466978760564419145514617006846692218029469363287296343285493591567454479269878521870441387589128817729722524883073991308028775135259120080482813929409627738102760450375873435826668908798885906001810812446632692687598573410269984627056017975758530952147610833052853162950032382691960146873588127145019517889930883045160133810878386246602651432544449693979343489979843911073606909888556107590198259377865051010966740258400476693363135053527259541858544806476382671073855498505883995099114513289075301808224983173269150272857925861662063914340457126751694553429444026842423781808111165887315119776051064131961571235729774782108396263082729265071654295721961152040491043323005220242508854330533040777023025823903930857832478773163713997011264954424243339273220744646271452961810276030622670105400028704725240169571299441177799325936253602824067020695754900498028696545853550374001898328509838019672339295541866240050091785684681014140847646389107093421852567120713797150560275718794795352622550840439708587140734846191640861412615238428381840791668189201613754799138387664595150075898033226265873106205615859279164695507785291437572378423025699141246330611930701430784194872350204432820895980630957137181216473676953750523073004607455449555717023207266983556884784229044961469857360802820246750386650379823295095390276649844016237070287212832079527494131120753830514228010288756454724652707634465422663545400794164916415848315342277355722286035015569200050558722789122840566865281135556703904238425152020219492629557587909332595325225339829561503163984546672553834376965506861804541557567210074992351922653831099587704772901617602602580985393019849437925363391521166893280553464315385991485219726881568912574834783148055870682173832417801986424639956439347307220828653450874768559098856197243823367914249943604062396867870893089062742282460772034450803146212328094785852354730197174415664933775584729870390464905052121729458362752586974578166548712386604441514374101207901671501796792039723826550258837005556661696320485946580807479604134023761268429333353937021173052337189714846018243108993722763100626408549569404598590613639850049228694896149032895703254490225602999400439871749925968192045816512055278500128624614531732299167106962917518644477906738866660729626362590170720850837552542898617896485448280879344450083324418218988897952920063635582478161083945868860893640850578117144279107626303917030224433738435014512164399091165408798870538590889171193888528639759040793415211613470509994196788710299111891836503925198924919900597476566901971510487023637350641178309161629426802325515735592636797786703287451217779897204723308212068326633687203480210200985522888308507272091874882341209478797589762018974866642640221148522572551458043872747283846021924912665999121671325704233004977048070283465262601374558626714916840911934850727804740201229947179845099776347015849631294244217119711069329473569431336564223398814948401648181893906889931354094688562638281419205027038597359330207688095235678161451718792690198029526660677766180843816446384844389281459210082626105758877803246688011838920988660208474955688202792277583317796506938588785043850635200794373514139600225909673812806707480714342344580652341869105951081470770647685853880866929229171662730173959088999589792384463922152557453199407005811534619048345522430605184979310583628263517872986247292050123638624051445015786707518855390226145332925885654941982601364743524384932182379058675889832371750584935397717538218168608465363759089759422123000563633557050444968390761624377298402889537182413801947483079163605589924137963891235260655125478751945925563281396021313536429020658152943977158956390170119254397097921624536260587525303392014534940143467188006462843710280051881668404098627479682372231217344502987835968375715133813016616733150077090257780987207251191704727732235742126484139275264005441843226000609318100328831488238833311096277507271172676649303930746324290711324151913576647705877502638366368125855468211298494367489092587558685037740637410527892916980565254723375231619722800748686301883351745920442775988813454131763083044426875145319106443201891394597081388501046320164232855474959395417218376031406636553553200790072713829971899602664278504841232598571440666939624113837959625296462275195327292918960184544979782578302289213761465169652661733875730421583029385306348633360662897064012478867413325196815204344848742069181731785878856246098861053237532482691734413626059820339009754584747119350196461127451192547689015770547671081354107707099089845602809256726718708350930705108264729798403882243422225691517370760742194954500340404879546747934245816572021806093571729726919294732506135159430651280282237500761685234690706992678800415753080694370578831578673654718832268945820020620828977431153220446370449433246832985627430486196514659640590602491929195882394742312290053607738107742727563202544790206615775323043334684601475121666163793274470417940128504498042224639696138666275069386518186961984144507046229685817494186773956315243725661802777978478734367952049525174540233724113360067147178965981173066068748904273966672899833390695414828940750887378949985772678490491396782850731608808043358465945741162590258444563414534217090355768730656636396573984014629720073429464734489691961475421486006736180851640059888888443776275207327777672777799628555324062113178563926037398096330933158264742322736658218022125469291245927808308125221064174844662718162819364655240795008700570568263669433313120937900518716884354335933171032612625495510093324504558684754674459928802488347244914625297592577606440831605059443216057826305067788729617787653636907038869551682526512346591902556803413289404074438541805991318574785218537897645592387794768582628174149433740824976063001290760969460373982080165293120584739488548198402206084152164993319200200123843872576541788179508716207603049124272453267540568900763572819996540232765634945317959734670063635703272454507716352425929077299000904481056452779311695207737373832402893863179376167963341489116405673755528819368147877553044741355373079617543509608195038420954347693073655894267762409706747529905533136095971267788568501364284947439866224757661290187350326183106882327199756561136705960471719738790761835534113947026367857994751185627099324211256730733072058246036025774399603047789097766233237749242884100666761418373343622219230847352098058914694091456110396403973455201460720654275579211820410791094569086863063978581345498859335511473038628220018857360742390875827204827754198439282505980462047442152232608919799658235600744616929143872637595761598898057487758560103332005810886154982051996745856522331313524708730283681780813334915937012206559630824214139384241919673277060201291248184065166239368983845858125573414634979378549157024728161288842504482806673803917886679347810591090243155180213674585292359315978871034245637039443876356887131351628093097482646739269045341989994708581680634573101361861770486125522498270439735598552670999567386399655585138019578051592068529964654407208234642146742223405979151115613707989865119963433651638552882609818675573935089523702957996554264627728433505765252114203255786813536535029871582578792896475217648354910215952547592426654419968733392742056307252547348360666904646922257791918808296430824774584620333441131031157646510569503890240611047546613009768413961413062202318516289650544208234669903811105607695951278349548095618018366407914163432311777115885367401368842882274220569089427714341716893415413734702997976630379816709505343156596616731900305144446709326867901551965204278949668394181952657209906593354866068590101094078835434553358934439512436697853085934699887867315819264636409240919398323490777151634367024072747574527911908206460757240845607620097489432411641536000193620236630525186041532197649241082410820255695881207742566448602194263220524285570674759303644085673592143013019467624030479422961606830598219625604087901631838836308399103041742802514868460090842818339565794406752243281669739961885906397462405794567574711546863182067955342519284481697616967306107549682661385337027385878207002926201166593323905582612713162489782732307443296180111758426472336699111871365978403961470053755976345553956238901780190586572588014877125609780302188560928083696084088056955142523435571751481965548823090261746459072133607215551487968964546080433930237705358322431701972056975970458596179171299875703018274786793187526255321003463306658402442154107952025815463988600531614112495012786522569351396026893756220751332373195338065606332010198189322597199676916829078788616878776005049832170767987931743186762442385294808556150058320346170775392054838725609901408896406247418529061585133070607120690398714782098584166333588357898128704089622715263585339054094760370947548930296676572145335976030383286587650418399831615298768904390524872672107343313422551468700211280585899320568783502337175214865885667510889786550961580277293356631882468368496208331969910003322902935203081686291483237371896252232711275252797323463981466045605032819845046175956502491077211850135685598399833905594795935159119371289909332163046860368327210488856896628999173318132601935150470830949327756618434935045694314204286339391498553157659302160469773752005540747506027316945725255318905449659984695733836577450444181212237562860300526057583380603069072422655904702408823850039188786942672903444420746198751559113501712944087372866338386650906393765763885279252713497256809824544019481647781089616318059627907305966631648462586212721541389280945852997609044659046296077104214026343738235602606048285287167068142608164073502398260315100715644651531556796378228631366566001091612192483626710222911839768139661649313927178770590500998318444441935600481103835128805893635775903463946818138484928879921355200167851554848247693150891563864471211290014977052344771368314442582257589624587089751081648257244387728527052570806349738814715509933676092534839731372163990266587774704407334541234276875152432149966467229795676918908163684985709563147501410486928069795915929301357786138716480673245802023064529358651786349894115951206355770559187976370250555210257011319167450433021865708845732384319034596701641839294851833265957073678298957252561475294745449617383702053312392950951320248250376551399058070417471037783710838994498077614339198349846578976983906670193428349298133023688424803118989409706810414326769412175930889219461510368477897105462815964245773642573426837993287994724002485632607675001315084861272091280786618929329582385996179598277964694082133655640539209618448884003673391411470530063053031659148939811949381421760939716326637705498599615195298262815953460852660845973670645543388151827605739331413553756982287229357301726697270944339357648766846524659476035423120509604335705217813985544201128437243294365982564896868480809014647884745027002986031139849462372656533394790691523928072502080536392770391905747347709021270521464044405364774879782742290848749653497712992044051774506476393350341521215768253184524047009830704876958055912353489047281958318682724573552425399052874187452226192440134429234835063212300992923509541771835878118294524536687791089397999445652088156480664410084968729613649796491463747211400540424228051679530517884030341471060923099199371667284844424613000418575104645201178852651031586060322643900791538069409397104422927737175852388903341144766271677735921221930735367705592801153932791211139772360495893118452619834252377487022498328935190957691172932812408521016413709980250748572708947719222770235585232208248667798625462145589997123778465064051615499086655594953741943729590918166264591621760389706912419516475955478935748033098398036237703073185814595486296276054162657812467189075811430314339237959527157923251080562895440010497549423860573692590325349716766342559608315411049957472846013035821747107446954809013150735670172395974923101115525942851495385459839226720877426777326081442935910095709801903537592660852267086145768452253228832779678665618081452033912289203689394776875510192542343135361307376206956302387136824862633722119840678987436791575694180555616646243246314293613529910096892577487454656006910578019556098304840617497688933332405852571996880348909843314931058998916013754748664873999535199336814867956473257991560871387671813022727522014230833643449552537328210713796047834238719796652661247601562601919574048462676898722403150135980178638875499680106255607579406381291685339602751884807188952532456971770168351964053513750454272382507785159840988067597679531468080419332012091184869438782777523460364314971385172426779760599419752500719241648684231792607529096476349205367826308794803402423845737621152767585518750702700309021875408544683312731490343203905246470617288467958101315379394082437806979175876458171141775361285268656085774754311927475276992548504234131062359062999901423746503610265774010048147936680825194297663347000032467892518531187199730122568060661540302064561003190584147201682928285236302407479893812295513394700682381143548013404017257343043866175455838051970241258415630163873032673174852632812901352782634011761727059762418468610200788250198871907467131822338224085474675660836575420082697443796525177463945119949708810686988743721798222446285353520188055980671125241333573809546044879862745309380636788276881567701702550974354585241816924430557551117691160883603723763838828908661640404649332343967515568660370434758893496564863270384978972258849831827425003233315473019823598280503834971155931512734185080867734039470827599491713447076731146376165093511247457380590886802592113887233596905818120739735918561444362029226622892675978963981972146521426718356668559205003709909206351295041431443762347027826778350430818271162372451541702464992763778302407045957947721810668951126107242258575750901206731874450143631922055574143946867072197920652527702321254433851602602635242215538294482546678517517508244236970864096987130179079349621505151510461217654213744616255970349035836788084176174246956187343193548432544642086359586451699429829059653587145520667014413337650079668585163588071082021528811747951375941870807711226547030750315369782596733105332855899126681585584328039009751635916752440460562286181231040916523687660467227370041440842350802375775620479909639085467431101105990893608414211890240698551265890025250052082382020726902673278595376842303094976200279213616510574064447130285341581623097851142121956108293965897968544558444587456185006124133898441231899561222046551547633907605929606556044815537238867977111814718275886434378798679701397618060681671921270737145856585444614047215540551801789165177862291057672721936584519198652420436853221529792405405660604249653735954505269795416574555825477458750366283099985620146889187329335224878385834010606784361099671247855219876164558044765529926710650026694361488895786993710001277427836850461743480432546639926556878595176504693813623426305884512502322814540314669853615934620361152009293112134355076004828102015183034672762237070888124785178005738776146527771626932916583739438834634571941439288922334337594376174545912097283914095867632506548776972749903400983379179379977115664118280219321332414548120693620885514938528147866270093923594235276990393038633621665300458073889685023856618272771566221097226811765436577189002912431937031127758473448044671234057639774875974919165794788393538199277329464299647842273724576263426504818401069151012404131973531866149321509785440085608615539027899475785203304152755156908621146620328251331844586097188113358441711855128981104860686913275652040260701086793177591180099117609077746002176944032416380768023518393354560611293252258092406422339438598939180363704311140704257618408340016558390683886570583940305118593610837376710230615145865699859966146737536126488544917748327102948669984388723952557190688212175668879856583090798080852521874618225941510064739416445831536056484602648454704912171422148104118602504948272315486632794457155812020475033926040812407300650195063942029264160947778368939667428818426829207192887399681016356615144056031134051796251079124912529113323366592964313364808561258196866155429137760279732131048172171009913757631411925980709655494551053453701616084933040986332856844752379236069144376482920704273418149446457143035821542754238039578400776508249221867901806385283644878700023708716227877004008486352830703526910585380634701036556939316280915264280564259716741965261489364205742164702847138710004560893768625030156975091562397640997924838366725690182766647469289789376003484846734105195773116868199152094360828650685535719692301292679504363179421606088938944684780802217599606281322267141470397124949678634496283649393209141445918231706311496162698933478613800495971453958766084895607218495483680200929139988356358197457281851039669410276617092729155120041016016184515041679537400384489519449368047580435101215268036499821890473129663420175773547180563803784554929508803827664757491935750216453273095442002389115782937177997091986882364042432315301263013869295096442014554445114096197850232802279400099020118068023759461419971536203918791019510402244021197592884169038761223204086037427614369729623638233207977386067965144420637063424458022966722408411434136840525816236490026161609426379262284975996805408647579054847966070448660255078982199973077031358952700508203122163518204453699490503598445691723239572778109344908052023105898611919585364056420287625263730689329100759858567748894444918234079422200611403162176984025346035562220513108496939206819191612964142913850754027255202556810296830719878563642053785046811622171979891618723411381560018858272450556857931155317835015031794379727537424723132331260760216037431786576140935252304181181883794690642627652442319041691205933420411460211411099114440148129368510222937500383555428524411496789035664742973016447666552517963959623580786919123444183159689978203587299643215741439932115811776460410213560449135233183927796341937249202999197569659073498691759178471587529984153028905337570390290470243239145070192946493123874889184184376651841159761428502485923444682359653311700055004540518555294257283956541004422087509896597829322642135398780984019198198633931616345375970379046160140713009657099285516070546315845372439464421742768178054991430393711673330168244913188118043433473039530454202220217374398706705446485312658257730458336300504505060005999002136180599697598130396044690948536295018496089055928018161710207078187317087128867121354408944458922319212041161542076812436335170798334725989695871077509504404440660273104951922179795670842998523821115173463432258046231328592642133452490508836002301387197933385171459739052333993589135546530539889624921858174942281893215418685887699674862244691933915573314221795148098063218602886360391036586938226214019730278081929411012250076052271958794241670933435827629231633287448315287541972800596358972337510218249185281103196111138081000822772111415645520452741059977005498333729014970445849798171880822974230647010636488870702506357224937007109392410667934226219504987521342516092654707800351973962754309807688011946010326411472240663660078504741287362490828699580210264859652193312276389318618827046420210636138110464531109960277752841745901301661750860000322913749415832030684222888200971645829657955074195114888747151768351647815990457280232651963769650920870953200629743344748656531323551592508789459822066190989681330933973276349214437864194775634118861995788111017046261073082030427807269324200014427190290973303475890864584892653751746679024842700163279839538021283451080191535241630045641164161550522378441068338458558296244709040101414814201450064383067466292269328021020927468537978203026323839569495822458428983451922422590245508785823486951781400760143737350001101402411081500793765470969511383779760915781196923805341721342640214154746123732546722878206502452933427326708444324250726022078243826485626216428490556856359177095103982829620561845681887248480594062344006726870201326597017579833608826945899005356574132117982894431706480073193197843438300440967461413254039518671340538563547576634439995161787728425477749258975081471271549121739044567358466762853507461864583202411355933998201800990265958574308880225686261532577858244642867604881079694279509695527731687710203256390904285591335836630153839523697928945861417493234337385354017748119672885358768563525874802522827370837206602667085364788398168290110007869633736007376459765437827997533555885790111005233437609503839192936240653478860956387174132913307114614477582479415267731910793214877199721770245151094038247892557449247678677504135555251736385882369863429109908831502116749575095242248392760840654707944572894211928738570413873101616081993958674334998217909520922831889450413715584764501219135602654444041621330281200135847639743730136891825136878436709320495422716119649922254760688609329280609053933831203690878617589856968347770475644274668919990951451089734796095224001925152591426770704758205198725718365683345509058169966936195393236567621260363260965866357860676806986372492948883926284387246921769131401168303994800074457231354868329890192398551874788328713853611511844779954403576450045248098385116872919118001645981480010490802606752706878507732588592405412449434999870384538518129430239462053031667569414005811731312843489306701447572605578603939456992418157648927423228268006075553041023010831316675187067299385072833115377869767667907155734786405836835061664978956097482620625873236707685587375261354316660930049898050351695639331006008393406677647470853675607205887414496782412996825781477209243286340237710652744788144172902221430271746086878891460519730303080293418294390054929450808559829576161877268966799691080795161589034091332676884941051884647217378795356094510615724176867975386033959206259555266395318814289675858661146430395761963970708001442002808907918938993660520549098899058764019618164775646423802023680984536809247458238886089861388913593690270156323584843250973705640022322480437771142429700811489565870671447316243801375238420612822852976173440349664154146118358507636958957155102069569452705579540032528996720108492386848486267561259870430875843866052558247214775070162323226443242526656133331396157595552895486478435666653818268174627122130483972679140086388171182752030776895862322068582186955281754673462583436920211147873074279153633251710045981110544171983844875240453464081050195321047577349068849733243187577885733516917096412342788073349406419491336118021636814853283654846641120281857659258080613174148642223113363509952621240137612755004347514784329119663805779183006235918492092385477521952337077491370580147443894301072945147964492504031237386814923357640960176211377249882603994640647803795478366981670339175606979821633345966249332589432921539190866759970397162310102463645666169336436294851658521162136818972643292913351452148153223710675620999167551625949685280593266500147986836476888264573904479816253161763078205378062980805471791175997604589694090103425095941995245756745504923260700790045414149670245905439207595725489391905827572925156423094450823922371445617327118202785053058987294875109450554958472416464400158469948209707734926447625065604433504313369758098000564365193523325621863634672210923320098653368227659557976566585227522570242300182701324844440158009421809308987566280079798097855933068179618495331171637032695142656403380512909015315793283664213158167499580120786278233161927776526581292896484296471677781547045692116756567721020906269092413250424823410485720549771814669030921952451908775740497687981648457524638085644478010287901872184169890824936056424457782089354948981805611600386918903483129391500986743019837104530015535274387816707848967984699397493131036890103701150192739246236257850000880301034269153679472398084991592519557622137582889486995796560961781943393003245749316123563276700143987553068255317136249505889956820417200016119001672293945925804774735731241525206522681914028812370593444810208394720024266106498523418426363966630942470399439395113906825582307553501839611272966978144360228837614799855319552550226603798335595471602157849320467147541658513036840968634709586083034662723158139439520365178422617721782930130944328057278656140256968643609143613584246953178439125234003402310504658280660146427140035572314538045038312313772965336498167565925209396403024810197736022320807529451390801360757881959203435216798711321273176547502375433663181723008314639101266641844659037831527651404374180279864828927507808846049046702934929100442681790992846173124265472222366127826264350219722001116688622344454441907299436610727674290550403644371196058251081706449672761951333872912286937052302870813164911283464121087424847691928363398229749932661540054642846475484179363910701938628978283163426962047507007512670206529022979407423301664469958473095456863671759872991260393487139185987951324602033904600303121019016761970186508930536657484040378441957379774896244525506876145444602256360245914717048637616823431186763303382713889493116196024735945874816238693650683007707065094375334070074560937215420851909270294292867630436976450055670415840459798582148969842377795491841747540676764384455207240624897779477949250621739532256839894381256953779990264794035256353192391603838554751351569573207702131770937195084409622853319791577002042390054637572839532011233550101676366848150049789849715473313639741481205364624640059132070752365329337683303583512087819080922343818470171435900780523213146107733724164810641765772950849440090618769289379631143517080250662525423095156618033595622828438816467259983586888045188274798275054939703278471187579945168869760811109847218052449318449658418089261661786684221867299336306513831626639974948962898373729134487318147348527172831184115330868083186420579766747854970827137240106427103125954865469072601897757288426340242567224866982129011571198296395847765844389574825635445802865449133072286228987796766838249761701799555245233405826627524001406853801564132478155432282235410839389198783274754649266880043240693326328039232687812990586637140164980093298638953431851380116483693057814328748740531683414626055100636488377224717280690739912124292451559645624982322836132273591712721224998693613981005568638591211538292397816887220370995725827987327617780100522926548420609827002065404505514983729762112643784875542999396064741853883737314736817903344966350259936259575225623620219722175895179416137684839772483174770879579127137857342381151340639946273702267794810410396332502088473920620471789014200806633644520258511272866628886335811653629412655605507700328772693765890305663571146578336760388676249788734004883411047263531641000893809691870659464469028878409890130813547881260541112483130443664748919885844672337790682638882760344711349810317775515356867009765889943226637328670837025592163360528202785105791140427815679321779952467379646802178396130945794010719434794207195289576900527901604842539407807594968110697391502809064837391330875884144206153191036187360082134712953614693072568285161165327829191749866504645592651709404747117481033659017229571380656178777594679842730671042117083624517480423527850873575528256097124842582881908830463876137818596803549854009674589880031760907882958753696612603705776889529023046565644309665655191967759934507445700675442239589819724049819805798902522306464059180938039679781590171300863720476121814248319697793581496477794925920369162872551070585384337519192184226481544908631462402364338850276091660190424565562874041501980384551282967216901727813982786330374769795788680889340251031131059967995742628637948449098105338916433129868792277455508053626350281262383093390707510653991641817637002352374511482697487740039151815257491484177176440060836595070043220946018665924488863560488289260681879702407727196816543720661834439468105287073929808303849151288951765262534150646751679493452819851818774654200175977187904610470582995459281784607470217676237734351132575699494951414180054104994092952541635276699568300802241536520083052722792987203094776689063981905126901908046632774754622087493608005540050889722211224988927334710931899572532709536215784307826936630395851446722173442626555554514300446864061918933546586244305090930855057729631811557339137315789765414691986198415875582749163650121959879619344881742913488530094453476215269212537348523634021431576092209260385088612997934053597932226807821934758610465339682549765481519025521696183570627129833422592105257525108781194920029692722858325653834972525414760951219772833302942601307054596970100331030344379232319722112888226238758682986434515044088644349759573993002885886243549118090625387573572484349462750094638100137992721354333174605153905923331216742644641747808396815794430914459775843322273151125383226244967360287815049830227785991241963098426438362402115752027213668613575356094448438878090706238495669847405502228315687956917743641722604027168166409726488831144746102963314584419484832560768803778146905946465021034854394314579385653415378343560089170051273259831400227243461452750672976429644402065888295266908314402229905311674967699235905940529977065562002615871698383500870530582047050766153466506893536824321043103952625591221926130813629630342266312216694216399136463603414326815462970501282539431601414731211548876916409334273808846561080581465181688204488643708442242676634714468237213565467267376537646313833382966800879060382834573839577523387200470711935866111726527323721295375385365316640674470841650701045922386543668976174498857747791297513058135573725693882598252347012171886060525792881788102930515476980192904888424613377465980713265482505174794796110855681459824899769777971907977174455895595738636784032253363542577473148190790202087222554316309095559536457242490703390111444246083580286978835184332066477686201232819594675224839746063183002634720434987039567266135410500132463400753617037146035832010062472851555384379947683592479393587422193020020702788412427058039228656782314543821475440604656734030024705471044917620116289102171718696640633655537530353851681151341152222512424099667966250068408841637940710462066188904827311111988195444488346665926654643869715682494939104372483943013656327973870331429910142726498716795779885879811687278905157354311987463988174964919574364559122100815718011732929942547124545855163857063738927464463596487254915063681803009498898166323857843999154127904141835958213102866304459886485364655356523701401388447014279511651371642915167644928761356783402487018500994868383137539951411748089124423856119586891050912857315140367727305228523742502715263835137703243882995431455615295435947884330461130086074376970912588731424668037504765143743635818499310249072490692397006530638301326258145355024714337357906442989740316382530630636296872750148627236415252221383378382564380431282511282767556204903287121764841568509917532475137898520590339115089467548803374111442195096528156833085956271916261775102341674256661301494488378623997276797538097126195834486951949075684266018597542331153771604231303148196712785626438904295880764203615812608124828002573348868297594001815373876058935425644178508681352896606257095879747375246484709455859962489502838278444232755129210277314039349922967114265459016600402523455430102135912884163502414037120833985772135221641222762446639897098986445157554736134206767266311178816248982092264424090014994798471590210201830641084493584142418150202105145292326491990778776125402458800501032970162698916820484843260048553914902668265357819624340517753664745815542063858851321935531809253471351147673014352503790896390332763969900537305607131997666190540125264537100784622328411217475636310862862800502462851844586050032072375321657040027794524171232949970687810777676925406619772009278093425636568531329543525198427998240807458781537265501782695771685256342221723030575209124892834032071269262997441855704553385219555248921012949695660796620591245628271762237621593777393954260029658328074269970290645243646379953298701367500535182956692208762775711889945714105095653160943405566834576647199498571144979915262267670719843618671696665461487459999278447742292037449949845134551294084139262874673116946239953314227110711346416963847405757728953111819306849980306397811153510425878389079165699072869189930313458441817858590502000598086403581817718266318592351497591373248196218520202395764274445291959797599660966358415472680963595040926083132315987643454957992689469949156490460727099221584647765561135451503490471742236429904260182167357732644393766948874743121588428668240040182265194950831072068252351534468966977470462620782828437506537386626947868819040617399655357479476019160618621786231636431942693530517247943457167044557260119948505348943886615685415192557567942137859069901124303443165313822279247469354506128601174998559210071435758187084933190512692260115430657276603807729442424374050178796667102200434736367088240377252879744843729858518071146106272982145601382287574859125280081379625140518833930579169547933956878209774053989858968775873883696858555217417969007587029480870122519829420392335003323784977551922709118620708923485729914917753060428500903814192475834292916069403952660215302455325548313275543264761798283618226645526054691840978195772355796937965527613084292773519433971164115633151170479912366823871341234272027066688305405871017898122316935250158227954509870479803708399229614033808061974128542036948466002247643127156719718855659528044569718137583879502985431197062106925128610903988545215698481529046943036035416603101071916309075996144991193404846118329759602303912514117007759402204654249650949112980109037727588954716488499798459323963639226797649233647150318107969441852828096766564446312994258152291644701408901264037964164228527832083928512011496238497684389084797499349267587895522778979053524948782735423964215571617192559993336540826319324685036534875949858922758998687508535759774021849051289697578181859017633796978689298623801450876741558699888220898207215801563333695675339922389735145280080628747280049283336911399815921868576780207303407537193731310314352115985579037392515602847031755111563963368321200306226294047091615181098276185144720342605509432025228044446978300417456046999136922812614656836742315829936712588222534689903116626361194361240217878485413207602055602559523815613223313399956483423475539592870506478223835320282165610518420872611775870175100238536637132380238304425277605588148432114451160628028673772234856401432180705836025017833222812377327133789452270689202957442964005957774534777532700912501582061039778355227172272055669004873854729074369672901470754759347672199097957175559202325489295348198699818091819756983030918071522785335837937680879756161744770092214528875355265378688287594315382895649350283675782474313742984317413161095801102387908638846658944092264610506692424307644166342988147617095624909250151407831532057657441541533657721929224826459592900688685249225363014942681366854673808682841947556380484000610369422110503089896163886437393289828050663489089320589399086367153678395211039106098215922143673342773344768652202042339116476407535029240723186024253040621809393140828055355872468281768628299040082153098183110145269714244928269301159036515372713922501240391960370143431819125154605070862206478034055219305383685622580983135077694574441913418362445982609015429715040840582782659435101690519127245015536502091664467718210404498365376618886866772382487573884772026015667316364110757957072172769446515725499232583209575468863494864855343839982661774838212168269742389566580110418366052697235388902583356529059794784756073584207080601922508886034480640492781768746331549819581272950291357749747453400458456668181102434803636697581427069039392552575881302628288030670079649862420805462562106484815351721619951745236082122340516095303403534037225515567059691075160235974099640976911638138162372582815128106227430488723842145192291653396849261685428922089791616601113414583473256248046173816460680457314512349891054238322986860059786762982008212137710174845748770364539267873842817205476794501364667440522782163521134599235059341749728210613337524541035401197784960302715736874416951838547961658940100928692003907266414202050927275683887603894118480334794813565468332669225589571115297246041379493938437630197745045305422738934567781234873140954609869721366566724391798976413254917073679948592393903342887730361873404061576788110838402179505152600886877265964219428312898979730318569092162942266273965454213523412152642106872074711235474940221830499162875131903582405145236556600638453325786727170618146125220925390018465793150120756314616585927751872933018550634677048424173933131738905691020013847671491738539803347083777970822318550117578184819147255727184200844693993940333572921918765026677664885981684406615833976385074030422963769455297679227206808844599540999861347762290832652489182863914835176958985855718999047959854027043714596348410309479196910685749292715601240355543228960920849912593341855850247146459926399983392708561777016254841607301154254394589742281676345592274045027464174833434919902965756927457822469252068189591454561933160852962951396502531535261495386131245815144656654716293305817640642807365120969429797657470863842640750664638041735817643178905333403862114071674774989391244789795784610550484361021868193443217962518788204185256626299259222976263366930041159680847903802116411405903836482768368450413977837556879300079124912280096515171065592767414458346920855652366308925391259989941889704297271006209854427548156172419685275179284907139100647332694986018783754991794663878125061977613779291031857488413493814547599018532462212376851943713613299536834581011139051663066036607189143418880776285556226672226433205732203773484947901620428938411288459475719926763324996309234535002301192347232759254479053423297005488400296098824492781579775021213754604255749549888088959231923330472034595868647536017512052560458722717243456299230570780250760019997779081540256783347371369544386855292416974252600954172954140975800294118319651885408332443046017928403037902041211057014572974106162984624372627577145174465124626065079661319105674915732201386068165676477116574375998425151041919152015473898257624218216855011025920421660479704644900096411334608989029236944445772399722880108128081858091851944245680864756869322252505230052408941863143382697842148939414772273892586429894628948182324531254672314303464051736610712206906201587452184944931424946670923823422596774798652557057169344976259135522502923351914890278596224933610190713117646072010831950521424679384989203960204934292872455422981524191042045376045574962571300525644703360766901193283140469284648500606320224360987457545845207468473092953789164996171316149167254602403209984193818731904878451387865332776971304402901260862620188345006086167118421890326930195430748648995451969756491821879534670651819892738150734094449416521718427384294477509866858238683553991212156109384115424176215360366013121534571538919458181925870290660092036812249543823078786213523231637215971946618938372381837940711807248706919282675199055243749837214459456055099857742384566759271819587306379454804331682486312985216049198103630366795526989619090611595486867741512429101387864343858801263117439371806307673625679402457528025186075965283854538758524264209551848517513457426565577477069728904676876966461554189478014384945530988355234108476280906002360376159344347802249081359702092517387225412227330695189650216336092552658487219558716138549746438843253379668200496224647721932584840395618570075216736058911116180435206027207812977095613142586247857806348860017625927002882231013037994444494815594632716674813893263306649157105041249833830743763953667113626162558395194155430749942993347506331033590176928211009200239734432081481579037215419155221406617574658842439243479535710724137316604932712825706317665281010213465503335756457221391549138660836633165112769456847773661109418596488843065726337242080389973501709069577962943472360441482397819210089693299436022368148181321888962234219193386038909678940771454723616006710397499323988889127887464280902809411991354050620472210179813233494778199505633553623902834734160526145157000189903872427832491821030556108580321786210328309413747094346214930170670308807997871333741304663193436517354640236048881659096515598935665677004025968192286333246307294271272402470744716366357220662288470636126105907524375683501246779655381950915616223565722649341977914113893264559915447559236126355528409137549571682847285770237172720450299929061920915518928173628073165628382453267712149283472596270473392267982330973026907751158226276093425612691195684314490962577634382681310299152906430836353020262323002296338827377559993396071265926429912309290192266920408101975369414848929226907798361494495923336871268945281656636681115593560540165892725996394575338339524646049078709407615979105544406804688118658781058316279671662567873123005657577571368396092577874724160322871711962233604177644194153331777016372169448070287341120048429381935291336397611782975346563538193347606653605385571387296380691584086598848163428485438930026614284823068869151394017556706729618163661510921405891718916156626912822964342253102282229627298420404538404558450195183692052411803232906089820881767355238095857635233002585353892503408828930077800987871332548953338959328636784404278614999424322151886734360580801433109990080658753207384506272373177513723317114263055554011009179690952148700059326488501124235927752070404257803323222427255949137533217188547682924023209043061117507883664499785141659755024240389813767128847188241532085802671865110312468003269658447813677981235037101682696507653695203168651316807744082037198583666886501618002087710581519287251270024940333954776844880150831775778388525396208240691746034316979466084837548423950978047888429225674828066859359912175564841427741123639788588028959682815891897387043695321637264526745236643806550082580659365240937937166537203607882503325327616021721827877155868571142009240159841639169560379381278961947354238435867189692097477527482602122782976747262525148783559345114119746830830816066094503344252593663964763162263186349965365396106166985614744416460762684098913062289541654532583122712239693183114724045314480603194826469261422490305827006669105955125765497411041513479235110718471188774676734138007009905520359603622395647977548420983166953535109340568046403051543289898057447265706673955153881179991027716468934473521028838124189707647682471877597210628612383882160614494655620658973052874951707126403480854971976511778892132544588841656652800679306699035611548107179865793247346393476732032003540453608083162240611849191925005984538473618759829279225246268510198085016801323371576261851144641284039929003603664267307136432302055199967534088834764522376640678953183006463628280352680633177856086136096061360536031491360249751375562972135168901933901828368600784329586433504426743365084081124254648043760793509785953297766553610384003174292518319724447920468510011833644893122027822058929399872398343110696655006486878916018731010283020730677735998254311494002095433355910328709824810849828737232441186932929023837682066220909500569457674707576942214917627532807024648111291252325613076373287669915567162906213282701576813489693637970464320148040471123370503992568892896273272892742921328014705792036058895264911099802740134069600663935651258074090447236548633792480298976811439568272098836843186118328326553081469979081087403655809411601098590375706888364964508539019209860096067484543649136977359797380716374950375167230278878024817184289498974573618265319628563679810097795569746851783557127681985373643051164705149567077936605761294759590032433300409747633409544843944359792939443737003460646038237412254858228125358505731703183163005324642364872328114165412471228060773116950649892215921452466392640620794432458685599695447854210396296345533246508970181336836947414204208159503910095200255421536270762617742870670214128568285817542205209952767650247606303570429734859241781505935067884651039716753058696888839292769809145539421756240809290647532603392690872661496259046888090818942707179499917744579764863141465913479137983289682275879291506541304685934485243589457106012681985278277692531275675391982923155136076682927697449078493818717518583310944665205039920136152244805394524231958253370837446890179722658686659303565180054407665549615900646380765724996690928523248977109083699082658406470995713874596310097364308512353870764859582352764126082545760989842061975384690989588613849688094569393338132761165974110100096370974047285662107140700870276044164780128729579618025385454684668866771155026881960772566493093440586750031178973428420079857788064702186624298866412128071704215429624505238611353690006679532389177755013672115320210769496943940829083196349638869575220027749790449004937884871977938895161308298999343074947805122703940766108748885458676739763650346316221123493568264917596984482955266604854696261425663101779478690809036077117509538414060680775044818778401780983538656036053018474147206955724175256393372074598230012469359010089412223772007245679753147415426366132871460705292923262049413584535923828689913321933608946152947863524010580433857090391813771686961934188781818625196923259720741333781008468887356347146613232883138820466296944229678936937772680548326957642515611049747973024330125751066759225238161130974038491868576485320914244747127946018792836071684813763004847138323503058079470819542394985617643191751483901854661983179830849222800215263401097278359609150343548601216146851246560544528904002884678017611000366955378632777514440078015063954682536468760337344710138236562577349860117637728630981811677493594614301995497586610109830467640145183184207821039076190176407117483133172135196570580236417507747971705700431465883682914510880519253966929770828196787456369270729684304269477299439337106689341523360453106813675885680466747654732792771179074942343986850597303544884858967398789558857830126149651406635424069563650344564850325832645212307158320372617659471038816619378099382326368335808216673994421005198500282313577335885053738681518828147764062234457420426375673752833382039489631918929173409443533841963100578840729563631154774078898743879682079369796168760245221061260293486351203445282889357838979693466174159357251151779495284805091381597403861300761193339453017072786731529730612828284678088372860506600640214039137271727493706990044959001877829515547475930227755370226527475012711158829823133025468705566083578592577186282702422052726702848794652919551273811100585037661639145930496359008436223282891626616851000485254758508057929849661038705579414464249876644369191250511348410188185136930573410004179124731297717535284051882879872930670228339357248822841732056722553759767338059544056630183129994127838293253159504923931921250017759072828680964286661440070641998809761200440969695250381281629360317450079688076516321218471080448914508522260526742604190494063168588091199209900063581832484500422482173806971106796964600868140623336239332623065718166301869533819478486273567249532699007833574120731405692574196827757361062958816748949214812994701370426585486921433950659296922373576186911853935568867490847660445281980281397840360911247028373503013902018208390299612701964884076791563889879557138884155483513724839601118735056058310076364296443557882278828152107447955885349892473773282660176586511570957092635134597877334859136921696230296350810376345533713306993711110027223391326142152657585358920821713591164164339408657888851991914211127086218949986710201975522273149770852016556585625976310995517348607784445270039932258640372375884339441129047266738582908674776348590156698959143359468573645677909762061805306561118881205193480140502147746872734761220948544683394864849578643935536282165336237014176274865431890386128864562433782511937899647052468428215196829139711278889214803192986980257143259314136611893868429119019459154143865238807603985036702676618989904974213400892187769042130852601570714797046047470170139457103742762365689823237938826503959253884172671273891572731554816179040252499850135311934044227898079780447093594847969116466211944804667830511859338325448101076218741566583520157547159713003961264381448307483471877261714710335499300355980078566560887101992655742314283016446396666603698816731800781894845863420040255274595949523735928348589745149910688153711624706831122027325150309966715668407176809252764658111315466381392443977414354996927536261245879959944126875498283481164892529374894983194001816156641600666843128588944074756927385111016944776472128822126737260192815875459950297491385544993423250198887565018441453228454249083366954356669551962925866495767208528501792565424451308450042574345354059699749741160506917539146691468806881133111659037446199218019612845802562825932293598035840400006727496333708783791791488311339201804126081112022468033713040061877542454638726774354847985148934926102082387967450677865199786959978716421813648832529569332170159128716809343300516598480606629960197387482775630179644819132766508671000286684734089364623679095840560051700927209889167641192778168558831422557675273047614589316663169086801519905594311855958406961120467063315373592553227938844687655689324082894895822836303752749001189786638640376322542602592804186645843576901546985360769376679724422316282512888763564341150659061182534518165921714236420399118415004649533332627704260442393831553451958517529498236695134597058089651120348335179357765460558879424975723061429903629917770722052814223798471535070305911142721159729557356823792573724018534816138697762330618850496173581034490337987783689982554147877141131827850376214633339969137960884591274008971162911168346849655307148331443329566620064642571009651458088386663255915606000992808050532265023590000391269218360525826190675843892346298734916120893705561800218009818290059048210270894381346206726066592446083131317060279632248183836578197867266220162398665551360422350464362616659938132947084918987353294980035068966061636788413796296485553855801596548482063122224584317253378706905425804609187300641741021975846254044960261820730906053716535090142842574940806446968726150501135684877914067186399277012141269284930504764423126583379380067271837010724322771792841415518349297086329179285793455693217180128568204709201210088839603376090090445541062883280880506027921761097927813171958141526556791621625130296843174327973737963691079079509251821320727819306912571808633814058235182773345963242204249804480003950686110761586092707647559427180237009974993005408220204452397155556470213624300030288887263993553993344469476227115752939068006334180566641901349720289910162138431869280149409421958792576135288473414141402582539324783749359706911590110201542453013819606383683650519743109168010414518848827774726763062538086981594915897444306700830122154097352264203122911347206737169161607933314754908340578925921636928209858129016810729806595597201331988415579185995552106570664620579818245593515667565384589931022755162107634959488717204530596539933741345369972336497439429595046818073914386827477397550439832181142345060969282774194942703209707503466937314340814301098986105542179395362242283819232391354262681414805998561551724863582760072352717873879532211887352160483017792903278547057400663200010549695839136618726119524816941642235232026727302417995336832562369680713913553349600896951666966334880643656576548100588458685068496223241752796840081735646913519263312688452709111513500284660626222088736332029391497734137266199629388971120849421431344605927411949896900914652978744776903201971407784780603779312332318560874882454236657036061727064071904258614383914047873712472411458792294923285302110431983113039619944288850471967914546268511549794821617737313610253976424687482634475309573690902960748980210287560227495472746118315412514642044861335922149520789777205616572180034934639067876663178759683484629178253784302321116950258684573525459135097690339567579003830407456977137366621876342289900134207719634768130398877764375301052140198626585863961475748214613736628080616977052739664732811382892068140052933091473476453384105179151258510003689740637399685418237497429965709763852232719591768748735971721269528955361803056310766419607125421623866922400873888954432111713633501003098149911085655515807246009983453891491525709005120795560028330997649330895809344347829392853295177481295971475270934127935296782660745303931107014687574872118132113423948035724435166012353046486299539521140641985477894363874878963393104374566585969962586557147729656210706018347384261992423074158655959820578965444221993558101773734539723355824129214912038836511828535089991842017412968049292141713336450695441302293039935233565941588260031476409798205899426528227890758100538584321232162447193133664505459857739271109684711242946094037489396731493684529920988760871613303404813554995743338927966691457862653236307665616945363658418046529639875977568626377397751415332212367743649229057821352326794016034904819305803828158683738041716916026418243474292382869829062219514698933031343638416546496583663699408330338071225737616560949988037126022068829044536983501413691511605566727139508574838010895381733385976143790123698359327311887503762825121565967062465709806488863679417602785779909199329685273163937901215218989823091510279495572794433096477216463966039356998414006823299856645740393409602486738218322911444792107322111886082368190230324579609619849742250712178514338796446154440986411501372462804806989976816492471032848140126463161471707724630275536567065352963777844401002124040641704548914577447030892075503573453002967853269683812557295353557396429370334852963421058681225707471040877431958505923212249173118839624071660073731243149947414108077753321505124551200889875554551917683342631253767253975022259158709602284403682368162682528219431017217846083269504170482262073606900863297187980013955291264652258244390894242583760352129340815282913036869555847332885262133162765785260241315602628758113298354309596653762813199319368369171916714212787629980489902544253474268246601589521047257739261149721326751700436622978490085473568038436540022544196774742197371294049433123144586160320059257069141884043376790431919145756197547016976345946319929359908466048041044992204535845512062434855256922198106070723872502821639402726800914179602367532767319547750000938903326957101779527970983160817055358464062549190850768528003973172606070994460973796456603178511890832565189166308559102595125192092303873614614167517542796469558229734991368758994342701488053952867729720129522443159361783726431879520454548701206152431949229385941546033703462162432617339880677711810805635518152799922014244992930870919118393340165685978244391154058128754972984429593636201740039581740519000448966348155927151425463262847092007610318399556825351162705975475688330570492495457799394515695396463408637168313786369894736942132454200731264116176312162602456298884216075831177603796772594150088235212670067642393220970776374965748248209951098953393825500219612348524910656881105577794174966039493924473889868303902558138935999307287879509041354035716996260760591186565267836425979031085825091586052217867352107325883318549551235435396783941160993963375841482921582856401767983414153005511382269063038172567135120371924028203993660237325371957954926522201242222379887886872022477693742466381171145090683782692468795405072715490524139379239903012554140448613854941253556048328998460695577371849808603578502357494684410773487880313941753168400221395031000686721932908807806437921718749275376144358827812850591234977739891610301886896841387564775962011401604614106656395716533920144935101901072969006896728509184138611941328345041345454192384949411450080012882638039095749914684061213068712313580973615015019913069974391870783508104640250467434138868194471533240599782300771678515896535475802849100769963759387053242286301576247913846775337536033790693951436916540319145339892560358605276205915499192137039177957584272384012415551011006862605995958235367242531620761638611772408409441517308931735286873166478347176899760392043463085456468481630024026441109800585548779081714731600951845323967289380122921313378745561828588387099725122818970561186209378040490093711385314999322598728135522107653220700340763388384175610840022163068873500084525388110853024664246457700887323538629326229790688209228689064538835324321774823513329906143530124929155442250005053980743590246182934693836099115129045278272970856916088117873924096176304236952588615748452910007282725801769186530767651625075351254480691457411845782113899843494646876193788842784980398554583162718032365394880536681324113890575253929246445085172933395933623369519124466182352779025097659772219315443447441662524024586120452380118468530858221860454797586906598850925640866637183061301085785503552146965899702608863649274665641598606309735086107911290826538602034383612794652585916159823674078512467926894762344676729360098340626743517207434160485459314189388488576595506761930923185771374732048747120275391563528151664543667494985335560702619178363577671654584749603221961773521253085764141026817450231286191197750620101332629054456666762437155107925990540783434074384618542541890875649589729555427087871613210835764725083499008423095772425517231770341091827617153207553418770539829524680638602805891570833901035900490802827266414650093679192286725779724611426077512868966996335793276122037978005239171940791645844344099874796279548220888933380062713276134706045304161533665368648012911740027171676127205859718407324071565179060478304880069928483503781065270688227948488270390974603375414335196257630106536273345016167378342473406775241164606897974636829167465658368377202068719083450611610736780690264887745417524612669550418980712905466995448484235406665142918563423694383282819967577104307223865946040036065016783011833051964496817607874416278560843519183615779122041312311441283401651805290233016095012896824814473121560100253632126735881448726334471021073614436315185520468756242358462539096572628484539574703761040010976896651789265447906747445058147299918898773959871274313006489669737977140668306517896713621239507020895530847027305138642777596510452938093686341548656526995358644225151747384597418638269343754621510259769357812527992087021672597728191177785687704867953966818890428890315184170450079337283319517111140399543982006274234704647600940506445472672451417385146692407915294551670427684357651849800216163736529383804611024772994395535586300867257894906986541938498522723318886180809681772940561083347205507378473375039327127173402483975348307385427121227150103315105900683940302180967743287036288976697118122508862990709405327058543872083927669202171219705972477568575766858700177983175533087924359225638096990299350961395765915058767353335814974419313170739517636810798902189426807178375224328723386119054207180843555156184858017601032252048374250589698439335890110355764473289882190026616575623704328481360211250407178071482992653051071790201459956745724309667743244669005500703228632715803950334423914194623765445727618479527068109646355637594174005277170268831426331052561019956925559835513993835781452869526039283032316785487021649480482564116337925919814697655844493235207266225575577124272104839011921551804712525845353496835479187162831025137922216694094439352955752361651973138498059550917827602525064092392024951136541107913690883339601561364537832051810007074924291368343083434883547817583764544558927030621818227688864867363864008523700590451394727719661571953572580078427408305230649989288001465809751204449740639605601120689552373861677562849044389614662382712878913233697839480134988734225505469537775888619809663727925991747619798707004908687856772027914107965688551424171255619776290944419065579757558165312321144376164418773581074196084701169406896324098100782638042283514964534681363525770121585996854488716103378160204746181443365035494800543761138775020620314520607928321631896749002198364964481046941290360413033522367822371104620012318333207305487367067950437739520900671494748942775608989095365186320395709474630786128350034431102648656119134503529311493634791483837559396866706298599752308810599385550184470262690262926410166497356247690094087474631157777324530424356156163609366713855348153772079911864089668302602281100008799528769520006012761015734436307947807050735223516706491994375171027255047326445372205380870994440061427225941621179952789742069111048644517610256732202879256142637590666511461561519062438689032815067680082957965180955448047152524288287610105452600910542907551689435248431104329615763749435065020728651479162217746388957478919863782537706397647897261881281883963321678191044598193402782046335008453490637524804110902690117799100460928542710697367190431138117017584095472993104650424744909189474336056578643042106379974944366089788576800517475993685449477169526428588272691540227328595767246130217480254265163959966692504417256315839946464005778771036649996611190464039728871275632482181177455638221367572959500394223295771264974197019027717992141808926604990958129841678457787132795398560214072103248192364251444022336544909983994129374349308825560492664943522294404857163012420702076628456533757119730410434360589437541103938179686115873344572364088097143364748792591020070290228519977530215215848033936286557329545497087419908141768804145435318749797843728682968477644270439271439199859379315929787540793534236003867542401536110954001773967612358451287052175322590259406027183587710146243212006050726721095714565442411353085021620394223679091740781426116556899628403107048500381303736027711721631673801308235103113865471273571396138882493761107780571628201335292779614742940811096712149827096411187609676427043097520724196310781179511320666253535712995776482967300868664446727965693195346659092543000776150563822613782308721864709024874096285650033204205595796586169281092092520430834982742233588602712458143655888796959058569145807219838297614366801797161632215841246369837699858971939360608926684122016746727793078304723556300432137204717467873462951669036998301707936974756864339111391899442231772859874409662728617886166534629044636230086199582723216829497232890601421312897498883152415579541553876468454096480042250166665023899781185036627832534650192956215708712908559008623834074142480326687986946085241692346717922124182050119260567852933781669773222271780857585024815614307078279749370513700553255549190918868012699819417114215284942303902801954761833757616786191272285765195095850444315543542424404395556304137426399890404422630934918550051622267880181266894500951804409044226807794710053600870199355538499466585499471720625519236062048553661801435257015692591851317811267304328791048638727056189726703937395755038637202067060802640368199298442524778686834004577981274925263348448923426639500797606610890662275971046249823232781828898784547880365076329314961451905430454864330288921991132761671284259376871141890407996597974098366444080727457321102698397175909943748569689050775709564929783248524297733938267540063092981764442923903629987320983880557640372394591335948214204892529439968739844435453411457190729501913027749441806191258696845464979891097948102660780758720325125680614911060548914701757612520209483787469727500618805480556823235842494008736386011146509548961721809729971890862869513184658391405638540572570382050054473454762152411502634705757497322384932167058853537658492812252909750931028262821290083087335632197143891643525461008076022449969202046265677720011513121335929619058101353681234576313197066525039586960181937186089728395465526052986492028994944550845331368696545434436884458670332819571514827219218577094731300253288201286654491122945509025608609858342474863393218755836946516959337198855353751770637565680828737064888425665331627982801993261029290103817239083872350480965621862039078284988403799995564217664792755222138803873110624870705779282841672603929622494205950909922280358911371775667963271439850333187256557954853936389348450510246934584788283433900304700637200836042110727709587329418956391169007500763421620836767598597400400308657823054519838740031893159180857926951565463230062183223674955498987003668889151458114999606837264517687372755002792575025724565833174162972400500348643912625833793494229867672281182091512512379286522265805523260978490032702035684380788299512348076647055161276935817938093866548819449780426419593362571020544989749356025082460096185439407302525398358437950523889691848670987271923241560490101161161612641604141195387474266574605976216510311170259412110069917743143933222904677939145817291251696897526298177006093553350270124448337526191805547568371523543147819274913326076865253946116683446182277807464288059350509652911520094212533941706474215091809330521144388621922967624742050750859596312670904659246908844520603712419023877732491913335384758163836456131365129682638295259374794117269417850087710155173488482705657525432162777986770725093009728186005491250907322825671707226772021268452474073766585245316506159873209036254578168114590533192346564146485666789150166483343769205589463899954853916890002392600747013343468594492440918328338477704394774073770252398728764871695938979197085732457172382328763127139183604551829689216375789824459078036901272491396975970145715637609469575943933409972639067714965965311418888929273413256744303897191792532823356985840969347687146613358494449624711675092813616510188984633272352634547186229684421442652336479834128169480182539117400832498347113549275253175674751506808492282770837654902990851384899754941588225605514053803911740049609687972703406687910775395892663974473639656776673522781923836881120179363704177068411327766879512408940147000546340155461346776187487545200091067917163877586562248873715323851461447584007728907652080708573400245435619660660554084159776539295922280132459951395586902233891147544881010954968235683699800990841144983106659708106413625508638642902203985734784049440723534693302301715415669435107239519244414870898837164476455836796931433887089737885302419154944058276636353526016148467470476749105632888955026593130309859395379804413178254768795667785231722782282761952076429044256475895434935435839839035893915824862823101536381708893924153302155494496042973181323879797248313197312100177044758663982039796053379563773143110099861722993666671234212019551193642881694085563855835870893164340157165505231163007740440066555262730085685049089359714873089359931051116943491386904687169683674492234630556579141420689565546964596171788950376694775944954531087418285203472426133672752824191594813752806118724912094889171326124406773743160665947659104787686976640318383646903270912357147518371735128622477156663418751638339348265677317922988898220602909295857560353275299000964963239544265499246271651374835620455660178938964710946079971281256600842486821700762688811683224648198662751408063792353927965554123184446608013656996672951379669285655040460272152839930735438014755549816290342940482659857997432337827389416401452942488105653919940677283567967723624406227504990419538603073024820553065336519079567645366232399412487318539763576124485147181582310243347368595841110211037590200502836376658121310378501547027313727070349900995679044433554521079030758939727427331715910412096750207320797689581759111590672392967532037315896932241870174826536073915231792936068785641908641474667736936169397401647117905032325399440365532150213678866097542261373945432402067245093390634116954502123042434659338638891993062030497498222456919466361553838404399824115486060019397516955658740004212054737032184689776331435395178815271040416214649545309923554454084212334470899619180702189928022522111477828445691100619798180126843293796491755336052250043593549135700968359558768263176496108432642425327845673482653863905990681691946597463561216746556074067023397107594592997087802987137349803074456024551061724262255743873388123020225971705137636966765817210571691739092975654442288225087844622427537534237243196784385596350912274707533935906865468567496797599878868703422066774251785018049660031894051239630025774458562708162895931991336599344974035995284123283773704443472254663639843294538964117090547388396152188390264554525951466355997965077691224739655433205477228439642039549109585542682245667872040143114016998032769203395586688980940991885361099901234606386673560988165598856932634986442899229346040619686132170444945941636924564123263880322542887830454559087364909382905495186978426621324929016627972294604685185670451051430520848166061685666713157097962505717882089697378126854768947711067464052914099961456043383793607547184564556385508001988318680695673609164746510887546454036206244703712519679986671747101611535082438459672337521390254411030263783211936872140986816032878766307440898854033431397232463595359564672621264753677115952715378327107261350840594163607690422899944690876696754853504288058049047266187865263929857184946484249833541501209083222265483148030016905762339194390703101201758630850034344447783172205923018257231775486823806006061698817347018612043938932850273785780205377798633836294339882159820981425317076999088552306524470458810877642085146629684440571582114484339021571036149818561970563222302612901441375908332264276511832582911560402855776707416254844176091759392210773754070215345451235611740887934608780395743627675397727179426468165931358270399041474613404126681554944097651433835990090522652828935649668685519908077334521633820972398849357842368743266790635315239867591028686043212906668835456965305312686283098592078761694894378760795921549524613395809166773798475970512340617538303319174525783509745934058481520736642648482458133820112632100050085927290583205324105381487513674180167190825164627800509749331682622716752838686386611578710663381045440086697895770042670767349995626617491437935586334396321246379834294352075909092803098018831535097932718150635927395191414927017878447414527447786410616873518983686569478180009764020449516644778317534673679406602086351091794892300906094360929761136347494817843377152369514273934411459300588812613786147572710273891864093393469673193925908599178011990800797939550256190674257923794020177857528460848443002225538721663593603630075322868562459584494645854944533366300934114792116305692127175466050503386010244355561895881715522668092187205673442830499729926054727474212773485988956258178967145060729783979713857007909535012618798517893760759176286534533647411245984256677429092669850412958090930735362076361310754623025010147255967421718765432994379290313733025506143353224130573726048370684165200031695222206860767262531449542307025476267736504297725213697276276970743265457825205746709851422602375533196750341104842562895655419995728825469525414025939871368599042921847990830337544655381761308867897089798435457457688325989369877149927653004895858159226143038131700912113670149316438996430482417974663273281227566135784593666142395307777772609077824245705884128693447663022330122084014424723413895232380789164396812275030031487149536196669651292690903123748826189102752076254293931119074243788982100935927617230085664655827490036697754025088007365058117583436588269110511075117750643243231819221311097162327061350422739222118688027345411475502084339205369890097469038997146410263488549913320023850482046266545394980485724421978280371165465962215700416486836941945099250361974056176378966122424522289664733042510455072356631614171526545201138019668967080664433894612360332519016985285730807791137465164824558847798930522639704014186282965494552440412438085702694008957703869572941782602956936787474419938266315852374598425205816977952783596229322088070322792926714035431625886137409093803190669748581770852680452685825891519415853765995545986131858657935972264060290918407509419406622535968683802648821253876723718976050041494207769871433872825909239138456341137247139421222730610295016064385561267161543737661000356073196651575536902057431971962021398038141369462186866389318905311532297247205941801474529301753920490321185399332401485358523066008345975407681923341750560295271059483012135134113273375309582751982854488884929511156572493969457255244627397091356304484891068647069529943331873354662575549042476024400263508093325202501423539358696201688044528194856101872814354375008366705126705385599266095114750530908403099380595190587870343866611160652534005265898775411726083720089476083021725290689470121721220278301758991502953357652996807042637915475141400838485709204970617664442435252258644814352950330635280617322093638633764341599152360550645627485032333123700832159862689066253944550476619234432546164429173798573376786760997251261563130169303565203437122674555195891758690795408895947484212639771400379636789042757643482003434720832292740670021927339286054576541597745378204522469484107643546792218468185550954844290371479656552276634891309893287404699864709018826108261571691226607028016580838523790216331532334398533463655320472506819756579599309378502685461299415703999674313364285872659309430308817829680188262125326683122143783473236426230176343274252544557641928086115459190361676236535498014301944972070219466412521514572704374028127531614526608280357129829934946147049867333468488375769406003494011686000045967151336939811452811659755631123688322418240831957731871254939545537747361507191072001578022993960895298034290561289966792233525737170589868462305380158094630315690559551376894579878987376061306660581648875414186062580624124684128200309444118787950537618866482665743764463800030670744405966709215846771454502303465244481635851841154153148829529117004622932877257898521554923625419956201100891930936185289137549015447004414659296042632482635582094683948164576452943392660129394976333980985739593486674011220155464306847526014924531027309464684144767646543558796361740459486570808731415937113213278010401415481454785194210667124360494233718372453037236147321339537798675836777923881268237011932515530436713657939698767515776920895771600246732826949913036843474483874167025182359625488041088852540034020249215255144126208953732166578686832172243827756346830160936658799113300764412468034564381569892320050369846445609129589836235109215943411631533323197215996175937080718158906696925143463353932080691636443176722863809897252737919382787243988308881746815295793482696905112672958960272810811006347874596904887167833464575649689761931558513602390671570739621260266664567910519620851034184265309591885385029603895142861721973917299249649223489206238745584968676507871419473417725345218302066733180781457198568350247521287776229681104056453419011804453900967318011011420070645220170857494822851302562142328355418128090228424216291363786758711183503661338684856658445545245758064949526856505120079015014030375348296895417834528738324820808533248045533188496530875556520284614126156739223632419964168574820616475773654011048223294883682239285813557957518854015075796671625471370051851484001289184747168203122635160436239364891759797756638620081489102043888260750199972009295072959820833398591491179449117817694863828919683866928673269213549444583380553602471248462648676324462100967434624737375999049354732217670389182111299214708840636909876085349833589233936882067478919505213027804732729526366690695739811621776686485326590975320661042949102128891481806082494369727150876163060865407045658773792392764324103369543178423850630726988818289505345000292076949929713566392421053995378080891786632100042327885399647475524047361981246893014952168075282979335102441377268126853109653025457828390631955242627158667133042758442697934432187134393343354554403940125788492100087454446630964918425331045222394154274470403314640770976522368465336202099505698178456949759508910588711629124344328960950312340936936706966719788502798939059164109688286832293090382735757330294542106877833932873568244874026891937867986435515642886461415827143632405459398637777839994890608349910323718687398835140522207472289813307973068994609025931522801180171820363354249210451901093610505746531935146216131286130075737400621263541366784811708461739482352692825938486908740263068578329906066629713039806873754610097502054168153954903113337522884779417810592187333372144972457553583030462497740940945388153300097914928943052142256216953855865229519545299850065667614980979567492129404727943472108633465216267092614587712793580795868533741281199033230040380949258375580335592915188570166611362570301287120028304602151501948598277461189705349672021449497758244576693973061729451978557816198293137304875711037359053092772939211608414215177246667107723919206291989450024149960018604994914751515056211436954254608460224153034527981550067038573816936708970121870179145277778988506788505677194247747083776277692572522501074341402480209492844209164594187740360625618746712758486062885091696946814066228250663137134221893102082402656466655404725161086370679879596307152720813587898870115004463867169398734687016749330605468807182496507129703027553846801294828322943966234830792736662510213346159516902827421396703135103099851912258317094037858540704026210713106911509729453707439144259323054994715751340799432329573184959217476389834708396595151427516586653079010686991841058262041562440454589169005246582993661277971890929803387534457969303014161274197190890636774593879851663027505711717691558043560297286359551654625500362475438639495734045572872554220786163857902074146294694442386939853525639840893840717251054422407348609346174307277739007988040098369640616646012166378925828941966375230955303040987672984609458765688736467483344548402836982608980882993422100140020174907815573468473203028763234860978418820165511486898876415857900434660263715692514129570534538335061202178749254591728217311290229049770544763644245620944944627201072749219554724805383295207481323861671323286002933324284142210359061166234781401472033130196961381921264443364096146055109228182989817939616012499518509469681001926388540384538110669815313059772644017545897962617764207061716536082777857155429633687963079369520587148547992151959451376118963096280766857459046403109679014174302791309072185900460557134625792369065563779098078182994564537729369848558484133725786113120728184580022513322170797641777993018341326877995025971447808265186055187871354068715450417930345736540889529724394392668371028413660803102559163498962073335941261079877330807847291596264634798909486773849067822947800328322093797229170885587346066094867194312003418508968991123965162380439100719779819282387787160569651828292007093585169163445749590635522062071456930235560069733018954460284744348662567381157044755056963842465981297392267882274812873339538754794028276833731718621553621450540300656756906782605706778538920084912643703053764683638051120364875537743935328999466292593463801044315219620181829054183810917534503805672484930123203699254918549091762531995778342973667724344001106295075266235754646744477669485639773369066962987440856299314353165654774131134744033782915999166990147829495731687184006511311233406231424275573201964413343602093886993302155096505157904263745734371272270778714587630299422121897990487479082991247609714262173494954830831845034827889186540621579535465751629108005859911222309391545838368949913225360623869119097844265273950693455831704716733701037112920004695118862536241405220679573837058677784368943821921233860546281187037296367092406318718737083190750742438199811867955211737227516544641135817435786870795484147608823053503217451368292955907729734114527295420662801666502595373958236163194291149077928753469598234127755273593578988175552494664362136021472352860245064551239689598006821525940600119840014509899458415392363389634668431716213184481100890757004189040274088742802141830983061155330858545457243731865260366883937402753145601305774889926749946602245238017903472353862018792778808707111253482532122536029737239879337107572092182782139113877613606811596110982278236942455605460765696816725801954727404105501900150436959260058868814725647984996362398586861224507384590227341328500921170064900760710972173277490108284690394790644538067580407951026891249105024222559832629612176146589345248836916635191191952639021058036023988588457153354878347804468695342378276830523792567453023133399041933990955074891211984802397588374602105561864078052944620991005021375446389064670740599996642772714904313133763115633092683980894192591836343605830770466720938602021786479614087968160825245977266373836958518852532807475370568357927776221650759554749914936794251589227573635076033237630081065061111857886432196183193259052861338712412027621401938768694968312994380329037910060357218205418755975399178012309130013636409809933466434358586979112051378217773783471196482887523772363561461778004868816160940885186118006187211009225125330693907668682789707281963893162808212534394260235344967927715869001307789167963573319321533916779821004771571193233979402743037027350765360490156393757880366920043375101375374574289702611320074481767520874537696431626857436793040772443863081468240057573720871264328447524795579744560127958073666709880094629462672715412290079802223336398364984595318011241163826168269464944936198869179904743423993545243357562801621888589353133419040724942122637361303629633140485409371006838651440182773064678909507992387199959495866692663685703274236798122902854732779930482669071318651808250686344460744020852033762989570648074871843421167683850761911822169696050580022573405683025485680133772112422034230834528313189003479578744678610527275525276782545998181999153862589659833048094162328409482307689695131066252983946691749305229914156652698893111084277924227732238290002626759564157531844999812469859584802329901429800553573703680401833995692479506509484849513474817633282658538541223678699173421389218566748474902716482346588094788535606745234070235032784572219633875450062328467217534722479818623857483765894165379155180207847733845946106174647191419665431848101322122538526046858220439452678614231669818224936443933199441862579952570698009421408731425720962896336110994610023362519047299637798001445992658686223444689086026830136331069183385624820785184849900141250763004811662717444060571433521687942487784039402270338093965016267113694029619062201054206070011792304317185230556815775773541291646284729828565052686158716451202345218661306681696235584283128530626487573139148648858895025427839096901796752902320803924345940445468086065330974723236704955459143719755808749478690998726373646697644914863797487667808818026970912295212537952000091978028660880940721623672570913077580884554227559389826091117479881636778979748960472003195202646456253044370339467939106270108079918677159723379048068850792050187743027298004857468575565516568488903474243092282110666292092027690143360324531774225616738750781741290248351629713916843225048162648409734445787268396339492909298737259525227929091235263554419137104553214061978644787593170711710574476270817756437236865523811116272963399493459608703657611847103688165782081268536199129192010629917078905953892796419689966192346193569918861778979160921093184098895172653733244064007211259112103290657584221323829967323218258899266365591301086456388841599524492393872896091046670081460827305424730681881822403821556172059316411908161108773876989734220887422006977953178907377800279002906071695148257825692998501785681810068805099475352083334642730479658638228691146121960058209714771897296267785683696183679990316679218271291629820254048243251829520863825654693455402319291141629107070266706847739299491101981048942002675026171364784361201768422002195973647355044640315090745471862725471721556245122197241819700165198679222431139950861552211639687301228198027535167156817483657152246491382953586679578858350739692034505899505491000010097776144422644454877396958833636360162357089907162378450583492946432936806177045882695398346875439218846371222748629964918265333715321791262379877759659825221718657689278449421272869805078168410428557642991161886638659717580780510424916562273319601571756879845079973890724573308430103815034749028631926191504415327253268611989684982667345716085938441385128139880638599866826036184944508132457097052484007710770001358339054286863785578065284568722250959190308907205724103083998207441455349546236066800736541927743639747767803988859045516435233269797249407928438884274625666349787520036292923117123702127581199858453539951813136226325481867351855615211540950830762220911482463127204514040729048891913555995550562012388377241770232131713383300773237519883630965692266998467949939185244697125938538191773427345553308298379176428225860340503406824058783126191720960291321586194443435297816685053945015397705416450981302700012235524421386122376446071124318816877545193626077147697592927461420567108148240424070402670054104756948337486390438187513959259483483592018214388686460289151959803510702382766091403747813368085754732223300389155214192688093858019980380389618475851438158203562896125227701940903026092735390376403713124926670924131996058814488520724532731372806121705132867835389031628012732720206817581230347079195684369498934472035060217093883235756265511637830933573241516438228230391945790347769894157859455981175109324548426435474052282821705514995718917297772437789131562440393343847237484345945650569396070552352740346849208212668753086282591007849449785414919483257342932909325104881605213907525476016632183541562057211022260390190160498482956952801204515682373508203561647538307402715549355760732905091497639736644215372563869088095493672175945967345974678314776295130201064307424364216486819888871618702141708641020285023474387347879928581036092923121996855297546368623324925208100332431172825903553623599298619756358397043583285096410644645876884738262953230553554158615682445540638583215971793520562456564795727479343997579231164902292780470684563293987512142571872005764786993503698009536576755592103240682016646059728245733035910135855113323803334793749202194865277908310736073405162360000890077198302719976402998629494682895908738838482608159518618922329106723599491866530311509574522037280286354094709116362445407352352393381206145236125397270808879572233538179770813428239844420455641782081949297892071741169354642104203977162300736636786280701916890642180003521055726495052113624423717043104584153818485334746977828461357271505463218118292574876611495518211420708284618282275039296672185538088838198285553088469547540870300127974947392536010577365868922981154195796204091736071463206673401341369956871722787962062245150836878567868440293699115640357596637053190677547135435438316427741449370268854625652105324537324285544176126781593007606746000810454795319186657616509972919086851026479057919310032862033108433374836830901214206458394847668311387253091399699740032022898173574522265934245539885703639969919190642850040336799161461437062315937676921849638031897008488276839126789986158376579132501369929348211025462377468492667754084380896367950132113212384431063213827781611280374049849777699430240763334049185828609908122134403073069617037851702951773677634168522808280131288621778167390334856732456272548087041701821657827489853964012619664292494173402446041132979701444592596271299887390283439746656101735152047466153297543172777991731664424766608428031604016535136609252529267166111608894693444137718599003686158308725298606914797478372538327449322627669264161259818472262332503800408518014358041610316397649637351722516989633986279093745264396697100683909978436249994913877711280548315380680274240405341653969968808049923292398411784413620904456820211045129442292644508266197486320562399663225446016844344589089461051100038619139507139855570065110831909703650006273021055764733853233299670086647681981330198321337952237010361649297786663012404353391586780131241961298755360622508002757142571475775784798699773037050887802532690647089953188896836304563279183267262232579001982518144959289534473181135072097211050777444605933385874061451604114242476761541144849933063921323021215838239569808714083846536326740540175392127149233857822912571785268099433158003812243043605776285080535084424098629540255443375409660603564197958401101115441742083800568901961110260805000199919265274662094453028197593072205098454151067601889675304148217619075515346881662848643684553918356839712994841609664594291342659674955492272716382254828990427024075613954800303959833241495351024228229826187427002491033698894416977912098043341963662371071676575242238664469306220196270758250046917343256163168946183574827047644471407255945259139431177673693562076463778153399616949668268773327710340249687408602657763313755995591122873712997666434028085575123549024592010612570913178881150994226468810420818442148021091302084678306420705199375635985963258335481602565940750666186172194426597917861464291411050137374887012595288999492668355356069121366574170308633777984393534578637338019731198827118396154511227513779853163239253000213683526742141059991184086296965037368918983261621988344393782154048635009242281227704244205861030311790548734770271585079627190770455308620737602375406337908003885046218175041618736278530678590101329810213690598094536379314061835936608132339797311455445730432318020754446851602888160798615997589326387135377223515387994258352429845238079747854542697643957687203606920880181574665408804987109385572323991601552372889337028550806804850317785309595784883516161735910658509932194956429319631265988832984215989938430982476177972706157847871350312560287620296644910337870399164920355700045421498162851285011248411302358727565055103364699670877215341562639233404151866001687575964664851897141018789321457229945387543525096523830041583911366067391917125023078393287405910234018595733218238373041037257621751059377467503348042134738396091493542215186654953143082413352221770145530526678551921610927690526008588379725925417772064107211074205949418830959041994724000975689257671060462581567809896472726819842186920000123816365411156274011370409621143834828890646255754128124825109231877579943742309696346209016653063472903735808698946754375446423360992008274543908953824375832316559461445497999778212527584296820441836253711133881356658348165704700122569692458008500794156309304774957190996166956116694815102703586107938139380095729994663529545222859939064867460314622920814952002261678097463394147064273449929502941421299199742077598422386137290653187466689029010546841651116626188745524323954874040230897810527410070019727545258169590898603576884195646266637188912035913651140676389571120894475332661664078144626929154517946856885842014700075421266857742092169164257994163897928999526703047987633320597527453501507980834445810550325308103346537919323730740818565337563405666486621214306893373174598099169829075413046070916695583534657002817632944224401506360985935870927188635944715174355797074240963611694682763792832286436499746846652113800757636086881554871512222536957105256316221604238635600751041408624052123001302678586433054889198892926366958100556819753408540823873233467983645216197399835877739283072236456006422880675002215184641816965209132696625792648812487290353555995372271350287269275223440439331612030332917871400169118905580537675078160657153789225931545304813900735707582356593365215908091229274033489773581967553016705578003382706968623681435946290909089031478842430183749214409685960300725841084940305162769851139339483397723319092886270815086901610452431568683004235695904434657563400574967859181399298285170609483626749840024211786276343387810384153239038269489080499697447882875121682211461446328997499789355069770984795573646257744910797267489039158889495805323685139333984868957975805845104898358957078802680379892170775913117122769447788339161334197194210345683972925014270234301358308590038032893838782954934476873931892336545747062887813885156674243730568214951325836825556693627477998701084921845679947913647789784909579945354812827649003570656168714184975372832695680774860114366801134087405723308580329726661935324404129785699108469191586650133303572034816986539285853808553019374305921314172877217090047380256825145283783984885761303450437439005283799964256884392515511157724717108054315980350185704803220144653223613273046347213614108718261984485751996576701673006510719863690725778435713452757805183868303915062247800476992348526193157780081784982313933882767338961845118380498140066002056314431160368800452066454010521987386964776450009619849623934871336032470935737923284540860891763966547484917782775449990415286011072879317304658891779345028573331849582496186478325985869878119448908551305641167573151284924797705084057236094520456428736994441570099832197022711247064222022914167639995089351555992457223093459442530730788730676367832796656994361786083125623112225193122809894605393700394819358230991214259750178169286472444143029464818556640355216276223835893717499039095306056777006329565949811213589346527456038904642415018419858926141499796660991972716679656668588885619956154260159709564432995732435925419686330571961457997478952310675284672354982368080471510395597912343495913526182277912818421161253928099611202309626377456255869608591682671534641119169521129672503454112553385540641361585729112912810050655321845847902590313383221511795849284086654891383734663276008835871098162924126927008401157560124209971149163251972745415748097329095552854999564802102995699338381452018385751864215362230109627859052436425677679016193660008862712515878060670551620363491731314151480026122843613841681369246987442499786440433401771744625658841455916360032266279781579820719267476729515582903638099175839498430354920164663805603886537775329124448373282549171823626912093683234230166546617912252464334027852571185628574938541690380098477209376336575985509707631778425947400150868267594085545498020692863726449488561736248707289778490904268641508416529425382202154844016899967137003706695614845659311715799275397011015960587747833178431492163707664022723448746022472168023478388860424478951480651306325264797499729949350317531525034246659261938748550674750996429594811731732954315577309874121478202470984124668694770737522931703855807800958796882766947776229858546379841603059917738626843505592194447939561762227583243072687851226766518132942596475697685235282637304624732939980690840670282927331005067311306612217825795987795158810501388080200866850514995617157227600897616026466292375141602897441200524980691849245026470694276927633443456558696603349905187520743798335045935000815087783967919055475405833697865107717573427724638483922235657719577696504134003953210489931499858253169834909936081334415770362966274571410678972018005333346689746543484295431949924225222225713590445552814860163772421515217436574399162681317124884148606230143419992142956933346369607332320210283298204388862083383159745334133079949476671436088522146003128440309329924123960663976817847212734128230506416281921060330533349994796816462426434883846441418646503146879978275494552006938602254554979109351863906921904574515596580763124919035716273851103883784220183128414334514452508726401627612867590589652539218310270421625632490119291031317941984745617029540323092421937088884696067976403500637396393817954378905202284511974996332509671747933823652387037936794286468291698082721644131018648771740155752467286407192176748378149597350575638837237912187605677549523892911436209671679246512747212407440062369416175833024738982144379158084397349814198784744979871563058591810898149418938973959357108148880496141501290041664392286300664691453890865506565719974892667352594307935664262085802013153666080145046980071437069373907828934238737755746129802738521638778887451107020274873522410438479290166333991442756535728310291848776797926863866458536277851110252270251082555058088568043372534424818491046137626187934170668258545204734054594859850974776938458761839120375334893446868440011142978895391879433771065904641445750874040429321470206561510707687683769775010335105549459920070669347631208547627276779296056937592059827884898260393140908266712102594321212726238952215500662975118221844040938210633661436041803833910971692323662957556165754962400084096433410377553465670871291182224605549914589138406834191232631315157494617422793535504461003110156305783228014074446115922435205702267338668709801702671852971193749854033661327357331052751312846743716247058890106216538235314447732965244745550715515657229626393202525729134438881742996146066208127283874429719366208698620904050644786599963270282734776895709115778710027964373293784170739390724347201811882866515135606041431635618019035431737043441222119584755408670236896038929262733393831470610761286573688084051123275990545204525729351535082941513145791759406673543173701652032602923021108094853971227082265732951093752428175968734662353178830933247373665719305167379322331358021636304038814835688501070055218814915109177787609317253383792496396347012592028455314963173750215731166584365989379729354130840303447478675479532462234194700104719683339926215181468418677320730226811903078711760615318767349034043437983796295792501154720886333762774035431175111352531772246938516741119806658742170708545596738163829063383150560562802621694537721414168315637689805340513630050185291673436337125044650892212951683061151094324068900016263439271570803377255895283287367146235080863574282592503953547463296397821988694515385699048300423342059184935778723532945561325071815533437463605565069403832123088109871448309842502197126510348363985888528086265345999471580565531856033945446136882510366174814272317692237030038897258358229078216842548086134694369770522541226447169055918238742132773644403243087587749376680898688134335999132996950527331183151199606299886079890641139901801268832234495842283072943813054466179163359941759470223233082008487031724251747252678173441859595928405104897118045760631821643128992732286410398226202155554811532642973254462656709579014013455713155341498806308176277557856034765535906573593660932731220831932350599505193296407994149562049399446775133613551599548905016307999649290067094745231850517817080737617294709604559629946504165181367386199867199117257064370206102718589739088076899986008803529428481707868528997886400297722983606663804296784883574355898606970018018824177243703389725359781982827550780796905856818600344326255928772928140826852312367405812752391803073867956850196619450883559050189121846575355168721306589928507388293547421797749000674179243053904208934348101735633627575081186086668158675074678447395798289930406007473521234668381326141112968554599375958335855508721323582322324572172291860652494792917362018710124958262534131364816510415834071772270537834905772668639203304035041741462148809203229749623377315503650424962175394123050611425370671451247769727112595512265437576108538556299334122855338423675678869746511528399970370542460341263695687497611509546456359097126920092237020033901474217426004296142431689622605077683279586496415512988961565152274597650477672176008356553634167540088758839000042728501354073635522060462399366636205748673174256985206144136303426557803880077244606599524170043591703576664343844435318122083786443154143198119548815326940847509452300080541678064295762218611784483448066583332726075637339629349079928442064351032634572041208312420760331555072395459644552316193750949739018670556918422507753511701754355003315817347103109150473883564958873517644186779464289992509886137904573962454879557921883055053652320383815060872524207545410906421222126638824040163254189267856859154407600864579343010592195873678995024911114205392480474762212516604261271811517383763619188884677566482338783559074923801094050678192294081668761836929364676499776828125673376861152540460034700706772565732389708472487588723659760446398207426963612140423672528390462922449285526277048614269447829870145857884152229604801224000673369364318632339687216254266120378672466405230641011438172565552975101553149788649483267610510158049870105060095234441300173549801260670188798832372501309502632594741885232204969117196622630927991472391047614655989020596697280616859367428376460400249606474751706173665949908392089570605437098955738313249411976942401252615509248841521551442446425909529017847440335736757296390250298869680949222849209367236686907246236406934541635055621835429975437738799961134570566441426236740786396042827145594276210472747906298857050817066068455474082850303518646088922880629630184479111928974631662385950992591559861014933722244470968279364300933318962953069606477958491153925039767039196050809465354149535465908985751891377287126666251456596170603569769378910050217425939271005798532245789277085219517127604243333353046795212972933777614527437464316561736373378321893402703692391542334311066808367239696165911465444889670351066152796880401242791583025262746360139345358028589906431081409811150992085370808019542104252265351480858234840702508052832267427939452945157294363029300868573290405199219697149615511498549913686070098097906277129084228861047153192729054664196627749891050518365399034540678097096942850933574969453547302005921275321055315337019020236134153996699881932469253461270918758436835860557125209108597226789340389763480541894420260478504205878193475701375535443535084794354846169901602448921991968878755349687673268693329769625230223064724266548091004143680741742142505600911575341792524440767429814745845851486305943206871825967017895755261849871275703304935525128488747985113414182974952685433247681015984053984638330198099785558257672552475478828047371042107023492802363025420188332057900230707644951274901277698937803892828995233343281814706763224892252999782193830049320986512127729497224155748120503500916319353382414783450948671546362788316387646097287389419440456813611442767297498773466063477068840294335844893112309984883471484701501588198543633737160106453548889939729569738550025752940015241740834364648445071324290957386719358962784298382767933125840148911448285288184744413981102853724336551443573329777858759225347258738934984763970920135082854280232905018713020407117640592905056085758588358396585756514317443789667361689632705802073231901980085074259688469109257094851518827545799202307284381789871360861369990350996567210573331491744793219587487306342027445788940395102642437941759915065953721297902172140102950970956304896936668095662479866933944162338069807575715173267818107317496201652130955704666556540067197373390882858993580121661380401012486828559995698323330236327207508851860885541158092153252521233398207743007159883488029273525017678398992951068081692354018866346803795179382474194057002434380376680138820946398982394869963832151282116272338685939965537236161865901830051863825873826112321911068760373357698396580819186987810035145039174879946466923910459911535545054458352284913054562831260454789436192795778992677410821027345209491953340717062204875894695938553197122935823184484132580085440751455397401786882436540064642198085514369666045893698876765496394567200880260642012936767397700994594756416221874242611130440776927840518271527335407243975180087611497622545337637976693264348782297397406017146884101175636062642779688536440703338060097223613297620818424739827582574556439957025687074004772704219205381472401750512831323354844937689482539804089563655506108695135012792582151566660839992716148146321461303711963033511611370666259247303357487297331743469002634321727184781715187054000087704772426324465817189411056315422255954809081919470724960254200030766874103182058176570487923558257657120378466109982278648735253100896885924247720503019568078451950073250837959009544004839007648883136131205688320544005774972770036872564311817519123650505426841419228976271705484021670432793144080905289493714971278116694095590748087668630148296034214810614280048341494973628102601861584834781127399807336687773604468403718881046050397688724145823660463187030976644030054151789896658657695107893820055264897228894008577135304508618806135512843155556010939158501880217023863142480648105014857499158243655081873836834747087127477209505512051225161135766325911415431989879199018821220887268294806599616672135154879947862453885520468816675880316824297223802560409351679627920138589043176992987206330138008270507781566308549529717959543703528119916121526422241427348658218307107613297272530911007519927672815133696370026734422989194123987247635649840703358861420363306090949275248050643955751659275112378397747324290220179455784898388126066464086811137525495215443878330198654919693770815022548339731112122243574455786084573321652389743612926881501787936700369612822487326625259577549552504991336116076017589774090381593522291554740211176327160249634353777192180331492467165036668852864727423583014693666051912070193624261608739188901409372918025007194181668627620194621455437750659384714419958742067167584652481541404991951083256718672243481991254614585956232205646173160714014634571554603543408413453090968967983379377987682878826612786890467112683345417560967904816085441300940670256275436801400145687568029537963113598978989672971595464333048988424156731196434924855602400253675194653374553061855894145918393751225423711859863640965087014449174999734913325998836494006415792549682136509122203727360683070359321708027799004121650931692805560052507997885043729158991146587070522583592892728277525502803975872289511264530970298345891124356236350253882569307388084365005023669943401395527650916203888045496947774846719968833555859893837669466160548617670897976233421482166151964471416616799168644842445701897384036300207352587209364890993999933929883447306712868373461699842498555292323154115455248588036778960828634448281210343168340953296883113811176529702542263555509136167896864062710111656959388528292738482930019277809144444416230280817907075963506980777404389978847084753188730051823062915109178982581177507790936362522562004696615364719928663940236830430876032491126658847249466428720911410614863208619392356662135606276105248467405152766610788170127917697497845550784208007388479834918527183429118947442225946704173383838068205881337206505956021528118867046400344323242948991199072498253539337453519960777216538995028725304318643661457414748854108644153828094936320321489821450237232828785769224416951448678729501800543440254978692698766609775960510306121437472656934745961112851850148540851778071874587270996344908086834334641473619294869707595541281058433262886945804333594947863647909731494207978409656703636518632962804621444300669671781943555930446814080805500299998709937131086750282374559675552012856798408616233130555923346115604590312566873869973173937266673337362418069393097689716556828624967191201487431569126866190770521362482577159690921458603856558502062767071475945652316412904198816311800101356306008319325501159595680202436154793329177838753796465524110088939089251229687517353660672062705836922242339889037871317812181918130589608657070879223797151987142718375988609052436009064906181866300500030194972693882374883061523270357339453509085407448081106126822233040631642558434039387582058920560441193598066706023398289864109479758370592221275674296554350022292190137481869152489253467452633545810787414373497516439035178200337756497558184493090320412350694340785357287860914604061296402307697420731918880316340613205042379027995461536701977335911635124211680522062676148715488963926199439993258296357993769202994506170541602106358467810369615885395693209753274639112296397884976116639912800550626989781860784529493716340953288007331615325257882434363697919513415051399693446888034963679834820977707364117147198759895896778226781385305960833893684161844661817113161383305829069393945496803563181772946966799245490681419927407091325563909600212636753131167720379334967674611064202957906282475891616876379097948165201481637620004287975444897787826830742390194741351133654642295180534789225613022461044496860446562279031064753235287808154719451203497148308417066842741521394195671376915743401635669426838199385510723689886737079075816670270219157385863670096457602207222591990806403016793192888170624954313541280648749466056276961341572196983661031620615504921292373442664312435597498707770870766476089043016702316545419546772618046555281910625131919945092827338278343695048415377686465081176720305970626540635125402390954001861981979108090143975718904228577443108683934989865640617482526097064033006908964668392616929879283817691445417778337209615283053780922294869650991009312281606430647538827937842649913846881288016691071937662684684639072927269355456918511457022898504457623938310240196504404808687783729597989172063196255634876156607913053862895404242328262327027224840575385471750477783725170013324210090261116717611044896312604904525157866017467291713696442571538092752982381653200252046030844916964543083596051159075387822032403392279124530423163740347968225170433768346873687810433660061863965736458261667541280589820178466322896079780931657622967010095360842500999352931584235054673554833253118106238575528295087920692509574529633702575275261489047899946812528617486015276531715608096731791309195690147540891075423306578883026659982036125252666707972658355843527816739517507922247568894930452216556502565661800463203407409439985555618529162232798360001107036241375471429187942699589328560838951304707243175038916571197161735077045331100901879324610358278032801407748409826019023022490676982448678812283301756544351631319133920730360266581162759700769707901226911986027423194292647527288853043191939753198973933450189352066297881103430393055770205345937798997361780055085606014004341668791122564024381006075016445067779823256743230063759140691427660114367719249185991771464793295694764271575686474801120413681344360026313179811984389645144977808110631604999645558895473380929171543088927250468909792259535227334564835521612586098606306196506610126015955532666080840580155719257813419100247321380778898685521726132704367678434853986807736835055766334725270796074763549329503432812435652434401759488905803978309952495816751820283290283299416340451203353282028041571864343556072256653022248578645840702665806416582704044228645774174981626651850203552217924368803011007343262580368139904736854408392333482444241325876634996233028383689251317732013150226470159761061953553362057599850536956880528999149730801924816851902376692693603976046241029958007349343896283269621049298275496694877655967927705673667051367782605450951966812234185031999840168550771981689915364783632929390428797949511198211178146916866821620038103242239727734778046377356430196756767078399670600675234813395749782358740564784792721808163103065929097825902861179279723050902652166899418552131245351742049000297191600939251561727224402312320370061215081123634601238178407081862203701307047051241242256099490838297004852274670985208627603248401849765364947629395988187914812167043498589064669814079857046518022504185462921603109331226798417376014270804518261234104255861997465334087658657003061155036583877749338946414763315318416872909752389842990483845884423042118548491393749289515718803590823513321417114665989551128434183129063374860513468174599050231318353923730600709723585286939395641375888706310433343247871664217601044580540297660558340152462847885855823874024192039563206063358683131752650476719638669931394248418047925162741981602823031577674291244323439853472131088290757475496881146516619061652162025678318681853164462331517328165623519615528002084705719188344415747394331557041813353820246162582673359763978917070515645624008341746068574881396015733689967044915819247911540245767330779307203471323360152850761726258775487378028577477714445147819104914585575246963769548872547640357502715426440412059650039935993401194770726904363102423872255698816928374430381478481655443084302278153992951065956918200555962069104282383727488290481185567111948178160725260094256863399021882053117825756144043302973965424844374705846984133542582469590755614565406954053586156908384487316820250542109026383123022868933584694127008874969518897281763109301765198000856342595429153698653228771539348903963070083640155307236580394153260423394018117669635923745066856747966100683612524072061142721274243768586948411190031469611645842518719340362787899027974275136819212201750248483116562703619237072916213077072854816760909375754576542964987340101980513972872672495069743103695230885158783774756992705009802872240082441111304643043499807012058796908453223701979625421958487868344893188892632912736221851128419223709532138495707120367852835372734984154611279269954788227315784288094091081894851058134872052640750790187100710550454494216886795571851791196456712823760285970151334481721246572493634782260170188936465477867313516712598912324701633467164405594595368047484429708463632604202635422897898662030371019894403406661807688277057537741951531816320269803212219751512467841303229361631122712139459035876957403235414755560632018706665214856364515633220887532795168740116697018795887987772411207157801235735600974164093585571439759908140529826130633900736312074839930517359654020626176023571053023036554291300009839987997491112988864026673711934996654426915737898379227082562128969334490973773945671983733758023576953349737928903089220590349733185988853232521332258256624789856780923011339042334641866682079963388704977586257473803867028469463609775103527100787488822618454181530320145373156104911081714973129324960805417721150365592996025894547761993584494496828285955041381496647234955756464239875199567245333483752123326473192361561880500940823937268329168416623150149748817380546336468775485774311235973747711058360980992238585967502983624172069983573045765169364051889021902042188978468753247567538277002952841615533032672271067396761561394632748731115816970359175720602161513786683189311928969347276449190032993083234896676849997807132878320799903679153693097811867104576623491337112664936101776357269545143758335101229475228461662513444557205411380000684100509582768579704399333778066764603809730281858055059145307100739180016983457386507793174756625280570450346944297614550768984007334384144266445169616779936520025916218481527804837405880846314371449529154324174400005517760604933106472082959435915476986401831356603084814943804278297263177682998114865264336377030371488666750287807843463686065445961170854342645538885206511132450372379689716407587977108246358497518852689692913574061569419274279320065756253746064863209964780412037002903435831107830217977737577063937818943653502839815964613357443993247293656085103617141790186124032192438789560187959595194093019886858340845538321981025051896858424053982040805520149447044896458036944609802615683366973181233285990766123044498618887290714648050520515134853970574992578549693116348550652264986740665213898087259454390795787424486519721147697208624302379228240947122172243766168946780127089542287908829784139468767534485221601685569628315620334778337374780391708644351715475478930905388415345878593213571045029210416784755151860615462835503426581296447869153960181529188927369347963032823477737831314437624863414173038898891381630572703427669377095471195668645619640027561620460516648392795027474675950596267034536464230210879303404071018070405912439050591416142178422730248716013601964570013896686349518819618849691400309237745306375418790942755581975078208647122432128828185619699656276869599237382932353768429687486557605379633805444955509186012933212131926237610374931414923909356711385322212347339653667410643244858094188145333581276392535404184667061739130337759986257082354500591116022994692476086403846346346997240602556279540894527490516974477084739280817793122766825486624251644983054702929019153594104383463463630210131041095864545684134825460239844382768787383690320930348369233886696323140795780824918979485615781055881309278010498534396936050319278737209465877243297501989893786562711568115871820316469369148091615427386750398984044523172003440723018269583640197163186585017970247720303019067567094006482644783179265187350789795322969034438989400384427727724201667775742833110444913700793550068134862496151146238599530755380609152539394442778544891535143134084968304055680076446834612350211736622100313504020188302072486542648712330409901490012834490698621738038355575522693618105019037274510892097584113270284210089315213731152105649715681876725392659264679487508403722338467887887177488681284372275854771888260632655301466502736766936129435645549340601469077147751042982704630813656923163847630346948925636245813039488014469895826933009315220611139298662004868327010642629100469778087871285808069441323575066515079855423242412465908974365901725505498412399400930154941006153558934120229512105496278918603997810045822241028785173103639898038928098602211825527052567444260913166456360412806016923732872121128269064783139157587920097571946789615752504088486910086865118962332374450491443980660143768959680325432776545732402600889028667189871736783342526633065677067957879679626154463845481197068163441247508921980237006933487231709962166538439797090169008245567926863033858584891011828567385224525708704944827198315633872278968173161389694597212412263507719369513252733533692957822414961215022818726176049089187286733022023136578062821829266113920974780187577147289072539052478569251182105137160387214924536565642558964887358973357429341803238890589975271109739492117419333134038202559116257217551160034564692478077942762702923842305605184872650066577942063465078658252106038796937086926192670835237989251608945204995723708139594171474100151263762517945767039479018950536934936331063121339672485451574069196635201003385606702653316269426722913491903322663953374129127647376479488059240854757612347439199224858738420529507366480342379268883414389910898556106688460538857279156192393070462117177358722799083218190403479264067702880584068974793812908226784056707931467897621887277603813558755108396827687296109687248573762726952542855176686417157868659684840361897799379564893379188383983519357858665519636218079374999581949927209343690765096608291806921253789375718596423270358773598025618242843391207716122074541383698357717718107672721576519404667744957597489494298781990347741147329766177662125125724779415522675512969877343267919547243197315188395156103220370333313865198064720176790221806909991888932361031273723589596381621937609250315904520675515771339003170722906226557720212587691147484164041423971027543249812798207281972061162682556623508820878635314090852742695203770115318755915065338925115596903666652677018831270987844760903751908842247836119996593089293865022170115919991305401770888727163484193641037268490342744172805208514663302304659413030146936970044900168358976036329474124911693308583644224139338978455227472246542687153178370012764064166511155437554285020918057925060797351766470359231300165457957722156939635468433832080204245104314329045677658237432229824403452309310310340868649484543387620820298530377648957746254470384463764468646973190408888792479392207415428757401661090304413591783867676365468915105007905915039889039898967535772856942920615646747652638816108887056930123942965904914422851756141341435504537987003218424202160328790636455775570725984010364676993676584089719169449308348840864986995373422089977391794468405481198960207305845380758235341021242044925687039603426884020889400535323932605021678524725759354967408395594594179293653788745821605731056471812749905604918312669424444933577412722676901729200649114834179876421616645373530336657891878511239091705463539617059838799853365953527070802526879138420811047810933656935838856177993586144782419419011312662993294799751082533715119933972035111213514380408121847019002742811973817335779341123055535191171027129876798028083371921493862056411612537240577025548383904674994940061592626422613495408724729951160244068391548474500497398385951462503366990044222575190969595046472254235358389765357170574741779940421061717218395282779417016010283821649502299354776673492707822461346876238034743614236677164343264641255184031603110856755889352488816683532133596046271920335864377171275211957631482413890485037075203389345980626858770557055401428869576202505526041583075325966592503644665156454219783632244057156935275889290587259534787655832264371919331023159953167222751622834024862420849371590944445893623005615678722603132173923062133953023220964177310674064230944265157476747759855405349504305641524927601694665544520098851750519522804964283460988500422642209439814537745823129597474761109079498870800071916901186131608217853493068279847731201517767516754311939629743904957370823493949300922893030231072118424093872604798770848923288588641673456841656836081425257644500006219507007652496677305550743415664619419605220609956393274433077051967943600348045226495155218936551502849475200280832893017119404199898040791887643164558206840015640774501407905192061083232408326325910899618125253016348843292135134636065115340685024554769275343547694142573428343413820322402819993395483427505972459861202507046426825069377930857985143656818964469708854524957607861883009280487284691802279054242107981698396085707624537007838950425815821876310365718044767973385740593033981142035715150834864609673505338835539180605274393601507076893361077945731123190258396737463576563135485003056383039985465910206620160058008386002104255723196014362751726876944547729136495671590787296874709597485060240489419479624996910249553352352066623672433519044981935674044348553071408489592314614549282178200453442687881817775733492822208855096232481495414810238517915652866016027750871361790323853068493684920355093999256639949144834915116111436411386847236574489691502717678344416472702724996145793729257271468152777728807498929293001427047785410415435338705972604090012847150474526772322738786904631685387201841190413761482761012587315395935798700481210306144312747997307089007357568695226646921941269732141861899766081882290960856667668691127719764859894151811232185186403932141359714855632439939932453858123219851058818890112569044467680074730293562973516465498213807794394975011663345813093715221205289088060526577652121134162992188970542198280012442819281193288900906010979801946404158592875155001576894305188296379363980959654651521003782208715486881402472697646264824920841098407845386436408929742124834722506370238305504019702390580735177194113534703069275095372199181075418360096995434298457474870153568374240997858886388408372262888785354346101937415349135966430353226396733809006399417178516587401335197876287200321352773349423805275956892150589215914563910714024338328617609843136794421613997970906628509520321790840964610208047673350781144066192051868256681724325471316908406467235185629673162749925600330648406746948451694558163767350463314557843209166762049318637765657673586590301899700813137309598136612585704075654323010990456613892003296021144548061609526793754584215239217397301564430977669342339318722759286438618455403938104603107325977479272165909777693444704138201174105080765982312712102836450274946518165481392964093652903631669670561998695824962466717495094970028623816918130785645999594203981176879978189272924571707382144827191273432174684731710567436490877192300351461803295327884273553416979003761486931287630609068283003990764718332205247701038149708967499730637649012130308948705746563645048829336649040396509786911045798157739700337474965780111865648391011836140624858751852072815015521485290115991468850198458100219005085682429462761630947620198001489242996491890630765185064536552086071523308169861649398661817766089214730325557810927955866479663955207513366311308267442284532036850771140635100117861632184897601778723826395918417785840935316841225020762751312185870271456331564320509664034029515275552968063167876770452652252984512534420090188350398693257288922161361255468564385976347735345997162428455704657707504840123296759992719508167940258099281531312480532060767493424115150848191239282173151144910634125249889115169681485198675399679694477841042869826053434984457289695372903516268815729242310739951120136120211486011913795934414942380230008471240560391636173602093884101290388012869569545546019419715481984799207066330671495747081750386654430695410544754256611179562940991167521782831530299160191371240949885970091148885848764414317201138462751701930014939490980279594576282100252680977941624972399080312024156824798422607563647989435760413328306749235188162969863643495327184892476098907160798658971740615957381438446182700755062939429461096515643446211523425861839178298870385097798119629214829401445401247514866179423414283438698003622875007198520004376039504742477663768420043461619279556114588351083148796124322789108351030557484022803762370226191206446287505182928200721455102675998516500494138897651471053436991518286350030223477821347593819787375147981125571368960627280488220353928863867230756883709838408496650848326062932661672772926492819271485313107514845278513769665833035935715181693494668020234234668033921972660968736001749640109121913465867255670708761090717355553102367179973096548228656548872051735691336003037236620846112272567262334425061039453773034433527836671787697497346497818412645007653215410459990632195801791195271971265782522216041510234892038589486549390634226347324490846184813227246947359879075583215927952366274236458176801668614306296571712476729043985597932943128884203745475619587444688448278994124463146777734075299134444230789935413536083930706090138711015097964030597951443586728037054192877375078572600300325359154967817694843813835149474198570419017435688175760132074304363657016684141386734845031432113528825504022508076470637096814305395826640193312344606950909918343255686096135830238952765321878867980133816698551886336368242973665968156943839541828739689494693410580234689246748777635787691887158197904928506663335154708581281682832392963405173341170878666460402883323854465398753578620560134039494538818621745099902584878763677736269823821993821613382220752028147090130602301246773838159513254467173696404618897898253618619994108478538770873776777079454748816974157788300285326707761400555299060373482519444472556303023872325359324692659155838638771989799108781868595856591157643947878794372300763257871060621193961976809029504240131528736251420587822360043615627566090732916882875781597488828207974333248172032335551404843784486491776390384356044042272991770335147845227594729277333935416710243203671503929649964205424046509880157465282361793742755801960913565753349042688152453364265182030107791097131549911442974328191399760073347314174564465831512444954890056868471254478903693714409431031680681264768131431644006078319289462900058675360425461778662597822002345168423654047081720361572109825230838312857334954384011011391828464244898402712043486547291816869612854097362442233675867389788110269812702066828106428594697240507581847309991023193473092404047111228710007684521341521584807953888833521581019817463194457494882127380993223859643974109922129860029880893867362411681882697319645343993484357767210060543897792243203801239841092771964344782245869499587471024602382096371453863365621266541551648979943903503768237178719535544037527332459383994806446269238027292857153683086944292546791275584515130690654779693587524658059604034156735308141978806182803617682749301152380052577036542755764826785372352614294262124518005237143128119463829546712769634225530409319770780735334652433984798084030893516289264846918601009723496160425034577672196674486116652292968445019935330941271734737609076904909990748109373880089830245450576532750746325999776479103463910714349337598229944986013386430766312745623035971492850132896545345881387221783108441208721545012117764219043454783797868434931865497081531663626303739149389771975354734419332196388298858942944859261828908381046100485592663196680344330733342528868180355973648113823672270386453766855849586666202579483698314372960995453191164653835018838881440964249267078479373895117372088623543458336872239388141671480631170777837752301189164127253918371052860101148871000691172145514539575341970916601805326118868272353479331233603329914462535857826344243823506192917678255064966854567793991083309418578555504735198973583808392878222977127895417695795827048621342417763076909583060134072528293999094163962040834716199308458869135776211420903869978185945257505117394315927117621036065657988544500232145591619792900657217838420204364609060692447401904986044817310177644206314547194968903514950965371841622490731434535370862057617576932979535471629018531560532076323599315374769933437692543976167099414850301388394244265958895300949834823642798330948224848391432941476088131648410223043201333763789703047195317072705846057477509426678196439194437943625719108582410009622505819383427252252749568670910067640860773092571858600633192855650108948027259556476073047373112608421099473561219172212761635401154259935428359119500018905518614119592409031600139952525642638644116308879680548533402016797553223110105605874967796643043440562351504076547212402273974002229184104114761445558504186083568311439340851192270697642056666526120543837186039180253450546919211467350757475371395917519216176748734753962115616331951042615594577541994620713277897907418466891693512939955687218487327399758043481173350287466308255137586543228927520223342947670720450149485611124525063822287449332616977039451026760169240317018482741651224593283548466354956279361250600322122436827605846474019014105415902562572010760691501246397037633127086466258940579355048013473684107707345610726981906672998778440134521653002850662570604283726901947625764750113908632368968720281198274949729090548960855811560117455134998145146976008371262070108685368924948564383535179890675705698485054806346669369654122121955223087280299175015634599270183909560927554329323905547343138739881125371594988347872162366304799262055341651693620190587000780070715575727831199105534063978287318077084234723751874262997657806806270319607414886081033385548604424298200475961884986825210723707826589994891190582243905983698878644184501554950555733280441218362624191908303952098524534962332517894418757479579290773101146655065550460150170457620764956442424092295736640723966025012226230238863335125378960714138228627708740125525237620908236893087936883833758105725584202307419153666053920145712794067266109335256973152586044506013187164506733704852456727847064586834489757370403584235416298125676885191631353591509452215299794699871369098753829158337446433747777956679800947230326492861838244729014744110915527616745125823550149633305722686854835094173921873325437724937433874053200948919593899158223559896026745321811098306109503715696309546809254586514452755463487718610114399301714997642045601992016672980771732344445364313792377938476083721540170923050477593667049391084063552749025514681147977604793031202672847951318732633917730588218745322750628502054174210635251309781844440092721214798337995299806971595174339190831419867133156537858103736123944961464439253999202224034044648255030699688560837575463177502180138124370287875332377818511321567852685176087835901499363823240179820231929752498685572327630253994773037940017865151880091171993403906643299848912172351586888902881649848620648408433834766649854674168571110610267120703970931133922304853901805266244553211601576846886601473040502065381193576463406615657366566651833987568857857897696979989009666178010736543904845048306681181402442059389844165849403667009779123221068729424520483352251771265008403550161587942439534358182130538906529676539286865196793528498263735837385672053777559196586343295600532016333109505508535171777233517746695491836021580030107815853874405365154124207462865692118147101710597030925767477084918190487589781018290352405964154636481048930144999274584679714758962421619526149724977571577619674812789220338557437582388672120790134264862402617602625334495773461653138616473010969798452377311502925196026891587700847697578388780144207571088695906901750115670626239944955381451691812075485559260331919837826055412927543910681001255712192449631792596076759720426483811525435858810595586666105542277483375262235109834868130906007771381572724030622270665016847647526304849856262780248662944508953284968376483692961193046945382283917136299242015304450955097082841721860117481280526350612888033478632033247856381913491185622108083294618785740460365224338966096960089589865353906626530746914688995940410552811503932839170532012839165957517238155909361628179264709727457428141775687313853624385971921307928212232377207668144678674344963659528494746967076774219590025074607743190358499546169249621427548664419580537912509399886178046053988544423287083117917296135531940557857354283467069510258748078401670796613549810043468158665316735675337499083576896275624356588818896438683449512141276664648067479015156946826509979248518996948571406251719574556889303485801684445264514216238362305744860032978795255875851032252922368263184286597667401984243922556577216691577254414319997413518680893285064897805769869650139316341475804043366580074914600649793242497092832684329911274663378000886721537365591963812282928961957974494136281438788187014921479971375413647775213692114950178409939779752172854857884664557051702477667479747494366473245406882432947520756756664997360636785471292908924036937571280530480134047708501754634371556873527630008571989266754312063208251684572827350092097029668476239101349313170881824569704777776392122765603034560373496725979121414708789256913725892226699560953828470884571818929878707273588169363683063754694058165549856499236659351114242222350357323099171957545427793687549805365394995956434474412727624566668755173920920090314110344783155111116677756873627839605691529772890367290274699345349934511715026963998353562414911793235792671441087959700324520296682248461878646655454860862394716344573137530890226512684140533823226140208564462938515444165097464247093338199578219527293232479223734324947691254168800806114097850874407645729504762515595278899905603869326398068464193665273238798388945072329185959434238497164357481418920291412485411659306084546651447390660614958476810262480442777158172933535693933447098597901780099842635872514530531216592387230120372082294328009580216168438481858288311861315116268899881996972066369293170048702925744418591433658206869442372564665468427275729285806824461177666266834827508243632594113945874210391963359368767611650981264909225027038990063480138224375910018321348961350713842669762986563170198295642287796064645074281786781826901309623652658949629723796615342669497140604164025900161539395893609015849047717937026826253300379840269726131160406327600311877997311125338890760469927260188309558704149024167735187074328946927363407664927651965439064858220532438941079926529520222802193425156141789122497192777478053998602324019447435636556572303519650839859353034592199442950177901755070039107068248416142553938210876185725103336065563053214228763005169957763452816899231915233085767931684432293298441173196022292971604369061039383841924713287334136418186164557184804629396632939417887873890694127158996722643137806495327792682279026154659356575196506722980690093214227863828036307363364706959403754324955444515100370211480408168840412196275331297788650740196449169603143874691392507696690387029082706062852875054906674540124232519191005841982370997149996727577139398599306241184046416679077296605841613841181811812888245562288632384203813430831216107359289550343850104761276907767491789160574132115238765934411136074329317666351481653378183857570776485785164842964392981684586180594050629262139387525774830623558804597551354554416761244022636761387519014695963287328202243688499408973990479544222164584291289170591724907548498909995488751212793615146795988845528687290444467252990201097110510716536628843471296413337315979871961585953782658143991219496218454425254540668399377067197535368208937088412949797015127999848069602794633913191215537949028265771974351309478296346879434457232019364273661189928308436163607066497516114070884567158419537212441832683748017212364327770177055095375699885271310846095048665651621455712292517417196956519843522635327763638829757937532171924785957071870713248100547920167413696409433778076594867833848916535530239549705618759683075847473726195031127814567375054655297431757932183214447919268039265605920325037416445149055235870137947212348558220559241533018253665346008190579456073508387555204780677432366879018695117515089506107820185551687459057029213587081788432602034125966274106504419961619563512651871462962504772431343705782704249832326713475844793870684327481290085438277192780443698651650460644710041667204920112605044417667920203435731420683948998121398214436777181669412355693256931723076908829240075743698694378247626981693568153486761540257496276107047263390551455337770924442749187601695193547667079884375634626770783220258054579394707829818944692754591735020264925526135827663636950283947136653286500056822361689946087731828388316850384612834732895958733878161534300579967060750470993678497402023740613929076851352095850056847010986246285156645226864392326303653525200434642966370986655255507448659628568296844261299104118421702552504120747614379836667516891142386311226253292778989195738900134100307974320316941988553119375381975814844209766326080007431666024348268066868313748115388121161206848431669626067728861831336373960248391682711143672193512903412275585105380617385069135183854186582302534644552632847904345198844885931417229271026488493434645311047353905323337775246527883450108575315580230152014222183237846018568929315870585536381123975588257399579978987137338507062145766004652450543415294613071558016651822092708463590758960629060692847832987471114903924427056175355918793436929633017002193205728155752805036470586675349775370326514774582257263985206452259756458894865613737628808492909277091470838666797465627510977860262496723141899898153249616984866480459770456269795218785363843317855737387049345759293543400289056166231682137913842574193106959227143663996876811241896591520064126122022325212918926594787664638716091996198740451392584514130610096311975558726780044255417984364846020722697101785186846208337529626444319923637657183467750392318732489304474911070816164145057547230501649971715535178855755480014882721829610428385784478326890312223638540000544666253600648256217279858843105637943761242011234666830768879781159727464785259590276823872829859953194748310651245824589107917058265166571804244415260505202850588705765578942622888526177788560072087300175527437661112179076644712501041688016153156361062886858262206337776220399714567147718068209395662109214614952252441283187979111162488541331448126437970570961855264078878603638030807345398766715948513712602332047502078805048193134064022036534000803758638637215511161208093285918286034969738325142319364665952433589997202165968713265985469610467367821268672965814076669944280321415857081269185907273053477231725752457092713228329352252033632080632289793573818049286216543258586944242370809687757281114741669256682179778788636381429016415746308325225022910007288605766127457510541651363996196393392414389013084016199584642161439460546461598443192536636369506239951797627666945999409878110168126723974487300037517453488213057598937048159095849904900102082286980825432341821412135874887706881019096168464584847595043672795578041513282522252276038788933963316915085136659943848497376687548683188589969679108175225587316212035488513819035838161121224815571760117301473365715435185359504988954655895661915777024848446399426840006397224092229897647478141856394291882390777628734906841060701833624359086477669601244451271785605218284498788803522662253990511021905930628728518437904776598401997965738683882704047374835004632815929625067714082177043267481819526210831362268177493424784083063010411641101681667177672480418696158597522990899721188479675283646099568002842557154798150686435257587711310562511085713428395286671286853702154572703951401147899590084380445154820711600368896841076217209030600163768017445427105009926434398385819784530421844975414403731623554644235265878647156224144924549828643413231510423261079461416337560438307486973822765689539396820375268789558448821890802986529581261726317587947166431777626799470183813838818522966861526672430995026513244188162352651067172176382840658056912243823487383982198181097706372688691165127499752762719253754356566903754709920105621299836606599359455894639105238637581796632059241177400040826439445223841221170935685543592581379830203548955817107992790701897706077177471409692619829634879363124118438086499124627100949081057017255237145456957633709815049876925501276553604110545052725781896742776774766709692312911055560675141675229487982463448070930935767605896293045081496456008194641076793411070324843380213101068289521611657241339973699747397266557145650848869506413040210600930538644336287604776619521146001632114158795783172630401870778199635141435635316622543342402118828926829609991285381976144113449194279758205685801256426093501619920799128520469297366158974226757638259022085075603555084182317543906691151805199905307935093171569597722517184596919180216935788937630159416805401445646681200809927883604842367894696119449661740572555608909613610751905753239211736607356334855680258438512706668412687074116423820389596780432317875270763387230153618827387755792756214623006959331163293080986485129240489892707593355699904114017329423843204298613694350100836741989602437977856703897850165063131972145239126593606433423425063195522445762168618657128614499625338700562774403451471593366674139534839653435137144041704383101993190088345902948133180166944936767038947812615101126049073038773550527935187687116785362675935062937876018702764014041518526002962339769946982396901779355385688738750409341597560799314859820551151157550584401234879614504154741624812234321548665195732537271681656496549472073844479372579004910689653836652094154336334925467345195910174298512589947096408276305271001134529731345733270455952592340198604522415762007746919238468367535053088349762617750793406780720241971126410735924230883078203609439981945185040114385278473988623396707866850005295600757191921909946261878837960817071078149768879573535012201765418389006666216443067721409552483614443352998885816581970647452575790477820924804385662164315787067204639550488651229946480521875714123584960407338518602853515275872924316953760069419978069121642840509524876784394957740073601815019712089160971137004861271272399731006709580054856522303577912449009953139491231754216597532355485197973733318929395521160274624912578078653831024375039099644454078622702611965685886160756786431270830512630022128453558336764836190887333720584395061964658735555086577188186615856473637921934830091186299011066064722476826361986203151701822515515399580355549134832245909888701363677831750749789565307999494990505721367674351803566988200594647783453698934702339944914795855294377422255313899422553638010201668018629341279988224875271722442053214153532909578806082981896092907503363710854849824594728053576161314533713375705486408871457743957392439783113840023994493500183400886570897667955343679475522866688910963504924332559044115972389996323409520064046496661451926428298060529915183868299313389192676035987059472767155438075077780823460275046046002600627249973467780306077768671811745356242573918042353380113831079645566610025317046468251250567254465325973340232601808238286694701678319116532613337418130269968936682958637375978358331562508006639008605703439391274526391247219213567387970996368809306015631514336451468614499116168657221451099588585080721164458052473750900235002696368343104820383711206449072405826631426854070505889486854631136274460643551263883094341940928140467823565060178133474685289443027065714116490273764477285198912734908644226819747799818806765198044442658591837788715252160765026853935225510239330123910345999211583970056839895776708054619348211853035774811729161660562671946424806994701288120654925499303469794265521169407048002066753425316463548067381045210491110180730149640123391651480939948305530841238257396701903135706747589372973056447659078616011131590813691900098708898802449212644519227748287929984002690300610382128446447416566826992003406052661221329558699223600551452033089495466889065552949815819367805698865100920867930891653412662814820211186961003984069791885193206281926376921865940217494542882814528544897534021711393681240101334842665922449751518823239824781324178807585057115424918873163468422553817488368481816975490222484307721917578943004256702962278225001057009002002021786962948416314219191747631369728397836683877462236657077772519192176719056390834158769807871539988164885778790983457438705714364856276691914469828653694791137379010618018337033826688748400868622206012966497400487269814329914174743531939177122941485673855385813746611942475197083966803003520002924433835632455974449351726041854112979568138324815143261418853808278894296681388238336919606251862435723098561002760493490467158410735391680417594542213389747826016464871018021539404217663953910683735990437898437653346282866209080038656022250668349334257478842322791136879877523312526650869496463450026288858617444616343793950614284911190963535754085840933096234888528052894710210427972321538743122442448022257706886168472362471646915957063908237691751484833809534032266114149682654432820405662945807998535846480780434763367224934094625681300292497361187986958877888267891516957292631256701838093234149027106774350587334734343746252279388631172461322061339136641344835366371516056216393993371313858802082796122141602439357854737369646529472274219415667060053840698718250916999888830644296377279681772423234224207252054810136583731556201431980775146696000595997501286676142000964023855458383635391519782089675833211631251024742860988330321293668708315916042573136774704503536924128919181216160021711244027367176641720689469661123746527003716575173787351713171460500912763663965287313638299528863262667466208947830452458050427957539484041735350264161470301832915528012119527313255492342445068696681354661911730160313460915635744989162446521951565408770451756481493760528087569613572312004424774349335001522680424779112455262877191256648941614158675831319146636544067908695416828365568076190336113983667702515183667983497466768086102112013467546819652058243259102651390441227410914794259816966092820322500291561931643642061087784681348615615070534616547589914858126958994899795330748712925462172041155557060795050276981077006989107355263365912631171017165845134136682963843466536690385439080985989291498162393155261730480527274309710469134270212515471263216942063990555896544795309506033950954297166912830655368195293715345410386690501948933971247497771109796558838531588938827874056405563963267958180220362599455530511631925705482428302850381383967233029388888328743313710245838786916678322354613476217301972151632229963436128922467213860239637649198713329176430923560437098944306047518802469240006065889268864123511128336853998267894723624039690894246560704320479399692359354265474195925479015816844013937324802701654870637591610508376464899610679183449106799786226719512439074601802635489782249828623771408016218778198335592602482481626655232455390971781723103943719852738789123906094282508567272364223743141450640518249801496778491682267359828025128546556124004040089069925859287485477710728768445172800335935951648543900542133678691097771685099094822702379514545615508734781263640456145121295613164522224268639233477375789693808899010121983984392611741945541069597120332063388786870976038681793272613541576743434823613240083227788736454666609697193694371793141251513375129283196531581553837640838373838267573980375175491417528370240351873841754619188490325849333233991629741336309080768646684788441913467620636161030297831765338223070552068830299241443592911896759251390892369638177514465075730555553150507856046150233621297181372988322997341718276923317288400182563138094313110732915168951691243970643234352093749408289799782561335126632289128462731498699591224225682698084366137265839056207017174168454230199680677525383282029423179052910612316190119042163723656116888799171694527397886877306147519702282070406135708534635957489275007369626941414050945357763939130573863755062262285592131164583310478455389325177737931871367072015000066414610213367522168183815951481703364195651258054478540492274796906706548737455331904434130536632580310222828613487620253183543283017923913288837229048206799707556848380550007176546778721437291773371932740273233266928575335278119576546567523042284001279428089413275091168082082107565252794429600586664580976440480637335692895947137337727919394809728573366711887017861767435645665577335889821769257410259659607188889219590831773332469269333739600648067927451214799979585051496469697937060189171783178956121383845410646545467899651739518881724043159100705178102901922132144717885670526577939875752131760434717697959204303174329679371993166853683322513136871803871778860130749462107821295310449482597366729734917324501871044304348791120115196307490770020905591941572840925772279597326420488178187225628090892427066379680019322202082890350024273128190480830903763375888199536929724313005166074492292130751732985910712490925709897201950488071022747217443201500271095182390057738320842049442452060253716831472214175086195385691962251974062582866688501771567332383492775769377422189738006047954029109430665188019200835984630062443837398506177701159123109018306466685500498787435897330104764485744089184849142898136513841196907502913034429569176458777833491932386188722658971209074189390738281074424161383983106602438893821794194436488163131351787254805926826223932580021464005905568615618896436012550599953988370791113280424736739054560037772488403339636941683683021974544696998444010136005307290901989746083577620423969260443987228112250971388742008243776480514519297368216608298303963256931581426243425111290070187541108534340005050712418535103929343536113775672587376839458888073691456114613155000722923204622471866883115995536524822627892707718790659521841490087654244353445645093898001576270056272333679772990478137393627367345448288899765446820374799326956633343791887795424390120266109992004895629682817482036131978766328472635436370450983071659833380169473302647342622790340565341253867064706537597747746017784628113747748784015198560578586722736877383486482294665163933168847439120419629475430700047830226101641787354890682009951454144331433677571862621387869144452517728891344197095999793002624001971540268535156148541667096624969441298077901107856669497975807612170593623393990706846470498151535777458795891883532437541592056551250852913318186420323679928995043903002917673589744227750786396959936237567138534821160330651948181226340406623886108682639317176464511782511458816558791396548241167930601380230517049861709879820093180470587119791697001090442213339241006458349805802901170220892502435453599233478040187252056225909836013669241303281657299103290128650722668140282461628643873932530819020408881933699805765943387021796159967742519090708327389050000296762121006507132827102987813408730104939388341395176093294098258374886291366094417669493240846573583266162679019631564122115629670936441281091611265653626316305245850473400861688020199421655765894453607503421802769064494545785810137752292692447158310897371072830275368125377602184041818971157601065458782661859281862711080458025143453683065879940745060387160601909609619199156688776542947657643652048177007837375311245286889438643912287554106530702783748615481565819651695059642834345325862767815997004103907036274255817783114569552075762330649323199173371683651609562571851117728094950902816320681203532521484320691687595479501249707517317223080603531397298258015767109428667770208392170576177584479343346069920495644036896059670407334354933552300038422250536270711029019335546592216856348678870236412170170239455845546761830148425291416467326812722662345709773776730967408213514460637730307085081662040896409599117471379920640488837765658060208503864844877075767520901698249068787661875598995842694624707783478834966279195379015575754027898614418646254393374448020688115305667406754044447204674592140662534390780605715169726501375259893952467524050895895326230408187102816499736927613028995442069703166999230945618020093023832400198397742722293147968103718482594301188849722010152046564378273994230861634007676037613038839549155804854136358098591780921347625759092826310836750879555436517509179817736953479303072840190101427797682017080401750947123472292802056766477261917799490529423987807477626634941514917320602332622567149388900595064581271246348645239145302679037587204920514265512202970032158811529823503440680148745739430012517840502753788056328507054847293783187238656887515575914759187202805783485632261044616653392358309498251381282564674776528587662346030332806651798220022618981814328224141211587227772669601117569554362991478498033045520259671123233317342963229213505266602400536178183887334978317628067045888469919460872455717630883111158071721761639706773773846405957364505442248423022298120278095803495167960391734078581410840502381125073069661307104983845001071441335449276259941858816622552465304922793924609990336600932693812328616238934109185489075551355467166226944202772512551757526593669069855870430303226107564280322541588855944340280756671457621864827393719887333846241718570975729451859606008690004778261585118398703849975910004389679246555749929812332643880276396213911521796818549032207970856766605615819412861948699340092358482116170548166834337688864295573180677227936358070511581152300859957738219531870287896765677079548813404003473310923222945835237264450391152956534824358466393677088048964563208427101208477678792010279588001037236481272589444598372604683482403565724100330034343147340325712488056702525511875677397740021375241712608175818272671226503338383661676020601968721441935427959690026027991893012017911399710831762259092116401161183184503850227135516114319943004156039830255646717066971762150257695963321747436503400517764816353743019670270408009283533739056948448831516658277487749269612415870465114393850069888602128828181053548256550602894958081209934732869225911289460126040144674825865227028938059914526358732333081420044638221223329101928569095275018862380770390039418207291467714619412489540207895453125543364525759452634590388897567883331301026493862373855451115132525392372324186759359146680765646238955552320632603062917763166991564951333873876514350118840947867011740850042211799159261043023422903490255660929741903057745623708286693151494693829766425974666342480533649735266230633019615555064272487490326852012085098570789483384483946960409360605306652395374560626425721944477702044267488053777450616774662254661326625380819045706097251422158533016374651110490071306223348425622633539422206899084303734762780930700851580446968652402222145165692668994030334375955566170367273322934278012486644528777401641271097222822164944347263017375308959401376559678471507957487310844928768057314341774043594904746823532675103806168288288330938267548706855135963356745192083408201072581387163549752213766575567637152288906217848501153160621438043106720162386600843486129941367368927138394352217692252033049595854920376619895152238668609100285488053444301811816390738268292833075628246489317265618953467801926925137459843562132298167922655376339263707016109791978931224486472539320192578049830162242740094833378804120416574797780412035339883115872889087973565937041021521199955908033207863471812863941734259587351913298746616010087622711903046074359708063051852338716943670318745294386247623054143332126457956430084576539958009813120990268089264021096820740019578810980787380063507846941774528543361261571201672136494218433637207271752472304690189894618629058785507917399928525674286340135174366268850763891102420525299051828408753541176173741603914438293912290997067250792832036792033706032904380734966644039963488597718390227249025861634356307210607944514997796646724337524048839146963440808884369890627296007485267663227580347127268684481180274328521370137581294465019144132797103013899953964097234997753131499913121131570901217453673887208012015142441237303793219801283783899905527133264348271176839285028599418364334453954800968360712720629532028768058280944161528233206244136155969206391253120021448558601366479977775067702760975522997200313108082967637215382761415965784057336322228993735273452388785994324990068222090298251431550792331584672624042347231271933786996626888760241611653627435150663531702817967989385143483920195386760027724872875136032653717049409233496222241099684007679979534929162702228756818802833048872936605965426308222697807464267291261231709945781820998549867140325481502287193352449579112703226622710892012151650858824752169525570828677554308930756961375326977763109962154483880291646435906299614856512331294868428640469967283357216833443864555731517038304446567815976147353318743966161436213861799411428536338501491951516213187182678663481559103039867107388759829824597898618342401361608351579367374860971355766693129667797630043105306641479306281874649265268262386294687197175100277684972565306581194310688450946135437519417600320074286982791978012035778867133691292374376467865204490434745263192517413709622355986158310303162776693607414580496626523925386478161835597855918388551839082115619315745690968632829297321938171004438651792260178797793761299919742205087637387811618210099883791692961525576843208978644690196555731459520014463661409066541827854724358933852238675170227501627210550303911102620268684039251762996793268993158388594755988924766751430426232352582703714028710673450105256009346224916411313724573336204045178769191216013187159708415992989965220899263426342343595633320003204105990022075866614788586748670877885410123128575924598517619375644991837730469700211459865809445232215562265816323967978844109057684309106521447679818539206222739260112999533096227422197276786449634717317129323790916997970731218671783051855407254955549097512135048294892408498344951699688501750890429160368831774088294272832630160484893128830021444940193946944229218358353115019403169933937444273743170086254515797886130983602959946116140874771936681223739727010757410171271983080302982551902926016244547902021104065054992744966837123583141777078261629412286988987633633129338629821250408422858767874200983491620847420175844543387504227588423417241678849259529077337915951899642451810950803553629204121832682831711499702552520721812458018582390329915305686955752714571283145175736912492694967553978228177789220045395035074590203851376865681834456836141242359515846589643701837517349449936705346521587297093238181991166327055680354881439282275940441273506488229768802692567758860217016109560398016132710762464332438424381355732119742356540345617181327503265651970017865533731534820641835485867086392032056041183425890158903641019599625671951299492412744681285578437541267001685426685557353954137311775737621182678484575836909818652887500491739343731202107193949617155945021244401602453700451139192662235062959093828051742824306028639112591451832290688235424411705939532495294202999736001173465475960640712835995851356463750365170751410666654607755544678782615519018538946301547929893615943383500737691032908268327027783516834485803906802853238681556704594978276999631886936774566384572213085671835674505590561578618586155051782078806757306537393438420336312558277942678851737778459347672958856110988661352566623319076171454666067708181041315586322595768165394973701274385217025863892530569189109260952412654572707602954169841198163893765363136227223343864805902018252584474252181255078307608564081399415329457914615989148984845627759351877047595796353974729144615188732661558377112587189484032243860286264823509913724572493184549205721158310136689411562670260360542782085403043695028316580409835009906523084448274572350482686630112975034031733570625163053745229981651714484145030530556340765215332007616772490731014778000732297486587014102627708118753864117494071263104134892849168744208310464604446559214004148608625449896041768965312126488808418349786507791236945689922447496733101887127438946515308320266029465635196972773519062086181973425521141309836040866769638268427511255111796535806949208659781620024954529103557513108243995952222077421114580656434275490491600670429676874111445495268586593488636744373254101203322168578080335947796594946046838673126498435716765146471855034811222606922526938057855241475680287232823970020411434314325859304492901917159751307754282433944506235484283740839092171157047962040391533220830585166639887559797944763098454213239777043468691411883507012826980397366465680607950778339922095862563164153189545275234949977274486599459410950600338398073895852701537645820353092878785095318584854272024754327175154824273143628248446079851721240978497599762558513608214711351837135366036918588029517480186155261546553113118968679566415331158578418511930789827630387219503625988618748066439009825756402048726618797600884895262006325379525903518663867219196800351507220381960645991539231439747876411952642879017222758641069232926533097249670610226562947959454007401478411177437523166931689915129027532146448498863094437465921382375237033167237116763279720222604991926008459531776780500864130858766279536029377775853949512645636765565645070545380455036983284240452695247228398971875593802991454401244742871194278221090076790021921587799323164756711986249474741199738513011846654259863530124608326124429046381821686654520278179627581181644253544096426377125928757201687108303768509317884749553885520642371210304172366899160928299480829295061958928855797456475802012119077537945651841696166402411510288463305400902548524767015318984723461452267854532918797217356155963406106927093578244067790747927287176555400199515795997879436134486147429304776843030912443678069285576365764810035333221739910277058270530485603716666911025656821058488152993619978482337484996340478198772603617207824397017221717395270438314247544435650349103239397614276698803791684869189048862998471261132659665538534417502038522008248475152412613176540384310044437103097077959235621666590890616874653699533866508309461365603880598857685556705322679945636074579618746154383903505014130136777880299448499298613754148830978955648184326339587557588099536755671291336049664749184020796112121392537661441479290453815135254812557181684469771684537569862876357094566139305823567274801693334247653508547487125662778317467778891137944899368087385394673755165640824342300629781598732514689866162262053961417474710847456907476719564372736175256505523499221135754307024235873970401397352097537331917577322368351180692698863651863883357845215677523077163063605317741658591380483561800618144951553060925863106800431149247020436845490981485927026367792736949671096917380125018047741567738686598173318110225821321179176545218158570381107139176916684525425762018475842479751262389363165960110221528171990356330613708387295958043235252520788461187048011549041472039422728669806140110219450705422573064816200770581448678407446569337229120247058668049534340492253982427824330957176966723269469342061162210426375034983025701772825334164304104070995555574012748715277949036031174688142283600634321620417928492974647469432395575317413235491945690847455768351240331030400231799669329091053954672100222423051590689697430419915318219224714574847034649894154120189332851757329701154255899182267186488418815437163722550767654348726828999140274387863132342285274154254822154996148925447627619141682218728793669043686333787835706790321371343127245034241181191193913379418422046016247158197661519526267899589640271762199203562043222930930111866814608273838611186625302849882608081849928843331027068059121610519587880725800841454509721373955421056198261727030211612734572660886165395113873513335751064971391083633809638697372242308891721807594179547074207621975461010537619849136283927337451864792233222730844191648645238869366484571365248389142630887518966129033036588493544835840972003178281323366534234888556607451080016934191568220602951259517599836555964298144707652744062710943740497708448589526876664271829523328122722176109079361863366401903235405742446063833699661331859637873698241560626325394026571382170999565565694667363121270853738824629846396987678104098358798100618148428783922086835027315653318968138130622904890280283865160241211017894111112132237831575887073440308679708490421515225157705563162085075650233712103485520908055759826681518516391433312363510459127810745515321628057588646712120361758414597192077400675918536227647999812865716818521866970241377189195159506924575165417535911187767566096553215345489078633606922275224107922770871649641373359886939682616764835329551181164328084191261682612281066736385911548759209974505512599641314028032796576846449538907822622152374725690401440173569910801174194349886824342657961169286197604983983696008263807153426364445124006913041117918052983393567790862285690109082454729200809872805542255391314075446683933119896593300038701367966210267709984870907369226687659400809819230950209189060560574370238510722245426750347760253655379003755327684732171150202022300346037092462160267687540701054836909994841987362262919709328573975454125486099548359450966337201826222273838755112480520570195894301403428867649358514216946690380977674154507593392217233546700996627592524231088498485864837275531180141251828134740164812606347310800121961688098026078345631241129773626000300612039574888553772588696812531852472187744168800965351029228891768152023807417984258118662220711101723782308127266626380820031265462661216152916402401075316529254390748748606761868475682048243524374443965597300309692459343786348962943149280632879576748348870593425326813130137890592339372015869154720269287184206834498930292146145204623771942130072427463167019325447315816887903522364171710679585997419029300352624929080107623336845633668442701933526434290202212422981177468629676379271093183248530891618772848057670031784545749595157613419362650783197719941985779596968852651254690644455367889117839264209990933872642735511191389498211376954796924035207809178014587404521595767241175858202756293759252558953265129641388751390573653466264938976163593690538891038002622341589347384352229438867639584276032266944869774280855622308337651042525285393790328115754664843648245083608800937902128375537873722483774865224256146618796661204572439816220650706920458423678967730921969907214335765938910359180146444345668788697012629876912532895190945009851626178979775539540336690578806132272857114393735898615703454670176405152303370890761962885186299402117224068291616490464314952052761031398979907715150580023863180109416352796290706771509022610447771578424215335946882256071513855896726175244337209943247950064574395537309769578099930232690861430293717400976356314156131450270607128817547024256754162227890307659299803399109430729574168566798864626854080545866015214628142875318487090672511408911545124188076674923628922217368705337603851169435928499218728732454884882524239810016087291844044616573033918058591970087855415536361907994545760928045059933494354622516264160651064030677221882266489824131166052845756798690960451410364620478057493168392631149671493365297238031047083037222507507907414431749928404278753038310926287584666588919641409294599941567072371451561997615515683052355319534741354937078286617995389467781567720395875620383885021154508762423098648113415000993079005839493287247432276766694571611441622878076292716865103957327383495513887298777802755433380796678856152762881973032854077483039221407996903263089735171307159186597279756459828287357511315773721890236336444244663212181082335487263180457576634054128904326841117421406767853108521403107298709062820215070132183439259313104943957043472974033580119351852300701731475107383726580679611920288740128432035610476020843161503681747721461061404251480686552949774439241708915081642766505825547992346818456112831320716705390556678825017578980666920500055378891738124594926679450621921438248065314542275622494909541903780570948855849025168640117304668356759379346340345511065503425807583975835247190311564296728854479385741882584918040303463517339622290683676993063773731555104104765912020536071558811195750532754032458809785120926764581328704017883313153267646797463071342256841841750749254349823347733822907303797692865546528046986088421930234717250509784286276740773959593760947344956348381478186265456871269261230429935994277464348991911128589648623541832989337529379235422346351850845227847367135265515944894055866005012344262601864864773045722959114891603150729139136595100524883775530664813694825633118796110020762783737197989976278524984347225423158046612947684025668314829317614587545183865526920091201882936533425237420013692423188901041594476438369904371878623990797759433021742892829062463569899088419005167678060969113777728238685941379778113336070120806125333320007146869320831082369645079765171558063041513850613028578998954956258066086735134412319349091176950709916386996776037583958080036914298953604290039165009753294852354514920965679936058467482907140433223865002863524923185126337024607050632415915121921958989349402681058218231119854852126374453491539342390279408176768686175375258376109002247192239482924236245106977150039839965210114402575435673632996627036645923196127048879538259707260691455528873670184042993765615895205119383851947311001710934966612599748404912502871955387811967075726841342510712345021018596587306174273684257288456511450029636696159579046277265928211876261279356044717849850961946234312345605851267467414517423948608721276102479501085006474855845302075032926950272183133048316202534854774114791486095098067120142641678431788898886928378531460445304416946296622741035967287851735746301017599157178420814849470455969962421897343289151648873466779232600404675578376873818171808597860729824230478853541490372144837260717935007738145005669647601670806005140253592257674378413977973578875716678066544874614809796685412077193821884624274751932060315545783972855125556962502079678680241007269316052846844350968696848037375324420496291497113224064107476757680110989204399928707141609590241424426380614514315757012109389662613432542134247873393579403905188539229539865443893182273441768650162626321329574147948123914317067636859261892688030180434872051683222756118577502259881980732053121704665649880303434054281786862930968977486705763824768804981480824285246223999230526266920855292775595316460190652066666668772933642663946252488650241573934651405884528060571515209525556428328129123920942626845029857051169511607218409336290782902158373253609565653295761921339476711148112670787471465808558741424295488312438031534991801658340303949837282663255876664528748875403915520078660712939538278713760108940405230773558485004057594347443276512355228013621450468318306036420887016901289384421259579462897772926395960638875978711128775975308288419397847770722504633525081853987889160933527605540052668089925534702029451739540554036557978545757294616710841050482237465905167618339847033064018571435219040020027962005118531434093410234154971349421046530568179516558920909324466535152191989762083121569845946143667961704412211606609774698308204047735128770403591622903347472152438876004840931579121168269878786546042579310859413143367152418014250804457020745668966399659732186900881935714731423074605540565395628192002856701890754996605937957228687397624524625078972212525923191936859443897886131364568805667957085060553489156059663756997482762229346995710419200502533731996282868112429696549886314864639510078551745628167607184328542390671036486588861862048334953800371285393749381060433201920952424392514383291570628409429508661820976337450177371096731892310468305146730424671770607743320780176155512447627246370830045449388734586795900553240678788001861047453281203517754928901567122959872377595901659153384587604517235607225310512100894591971056809266531051751231348492744491408450169244801267126504827927156008202512311050604974946276734817346333329662268888354890512626496123739820474192826388449321923976503931073084740987770992262331533911877842029459191782474936418601889204096336064616698493231810878315499257529297620633266292943921910185901903092349261775353670165725079555109432116421167260411225241632223896693762856565529594361041323318034636014116884232119685798896394167562741266780091644157267332773219799165621154011231507814637417195764707759562748862444806471392881868928973175180516979032727617568542754122490884752226396968994355092554519911088864617204254813204156861551380592532135977075689167219053028463603937783604617221999421963250171266834378570194810825825608777432705618232261462620459630267822935185259618638487347664186533031993821062372205684692663303284807816894648746418182977958637953175641478028648835903587819158226397836280720248149163052925586674220620192013984391159938277498679652938889309404504904634785795876681088011825683120706918385952765328081549273838094778449582851819768593656932363733362207085879739566703697999491781262562924421419830300878529003724630347281404935569969097058063985464530151601416678583846121784703518597966031627557648948993767868019125092111739998419257868402315709632009029704415304342221004044461331764581705639276411077266199012533729043675164651601550049707637716216844239380852321135898687056350296505079308827756099292383857600521793238176009326172720700427463722988908504917529826154446887868449347976649169867279858874534104063669376682665186879152048675273378713029743760877858657270255251718553263105014272090415379834860766788947805321469342237789285340294527170279587901608560677032730148830125038565363627580179844524608262374201835296216413918195779840624600029937815889826487145473211243662628165436467742843186270426750213971645046507851153355281363681470061059281729972948240954491819692776559465491242059910305805654883030690108832758707139473663697302238865265384929482538450681268194094762757358120555840965162066480398471956758029039930171148868859550609113753018731725262062232708230966737759153276406834551883855100991821786600758426837460477977860634756769272885468481494856913568501878520026781120399763349807088083795395130916874027231633452420637294809974830808590374983036743228584185556822599319410491916746808852860607704564830302403293079743580325202380036424242859845276557887534567229399233400743273925384466134384226910245121737255994723732894942507517467148035542225087070350523355435755820396396943925868314279267222679643261146669295274072255391697012166915283269431235461209882873526334111445045900913895433753825134387675637433409994928132660147533666028579994740377631954235644213918095409805607166370385312817032021383276045527756371836320577559078260653662332162825270331606437138679372463483207030704801629463943630668535148654424353489502071589783143833983617199546063592229698847659838850276737969732857347966497967467214017390357910957708642278656988509710929963561828821758461344357049414635641739783633027876971853232457401894173045612087955445759564760657945415602040113092283333959797332936236905206343662643978691357007080780047337177090317378333621149680230479503401286486338645176560716772111090070581342535124584997393424121205372202038566112500970898542656002998713960677687148116241377431508158649762039559440973887165603207812664953811187015021464764988733900979601644901726126448341922382074123655387054490354164582985671965006991062165648069142211322613808044892438613584489310440967556126529980999514272637126292431905634820157662992891935878944120795742555974335790393237765020857707230039381557854430956369800131534270786104911548070798618530727567353177078558853487760917598806461326947292532697077639936226657189247596326510353023871083961721947452181153566933506327275931520036436787251339911957145269649053474915941971297664997859996335426858743270810483025460296386477419015553775163461529170365932700987258999011589677290919057222870231147735476321295263372024589829014532001060394753000183288873981640259191358743497322183654172365285249088148398676463717484613191717046113353048665418097544852837475896450016856566718171378590561128233534636835952807351325694088787664486941973908175738965845775213080396782225574803226352616454520392940972432304842750746045735528004350551393081357795956543815288451159143636583034421880879834119878015156542524134221455614893927932456556376417213795426522137561846301974372097697775643833678258614397251445588006977964826575441815603706776361254320021537996146246647864626187499976476568045894911334772330052517318497686003737523973516606830442417388520334437458914974417689401899441821608557487821263187965899127117352799794724268632661943831765812542927658868614165941011770015979571300884102656724026774150672380950040774837926580962221884271386460678593267415201487341759503302471059855413047400623648286592229146012950378307739595638850194779200200510477884800500057895824551892883739712621312994707947328118591599341546188697814782388570215001393206636087975579401017933895339786455555934973901939839005979489319463730731897195416407224901809972168433609186152857335081754776322388319292751014001300444676508498308105190075414637587890310542722863984315920014122666036449979219117368027918048042179702701855105823278297523191532750070162592070886486249106397382663378568838460268531601638444720669694726490365626799684400247262741358334860035957950018280825723117540577453453353148661559640914789626218991391013927855329507702166621641815632394644559678759956354349952721584817360351681668792228455690791311486036128550339555441222524609571380355789058994936167603224470755546516391651604204685680270570414984177096468951524674677937685877924299975707969972668082552918164954834597974193300042756703925238611181836850813356795854998495661272547151770911980750990747035281341551746731809294467615218820440165158624188937884793864387249859421761592958932400381743934222240221868749714101476363308094259809546275006765834774608960979794752132636304947100332152971030836983873028179660819797501437990494362850656499640774546930642521064543351908543728718651307062490207897868523287226615408830709783312144400466890655972466231129158502261337479957139528672980981412883134685074120714445549957078681197364898389088461706778471092486356937448352682416874953896076899881356986657038357250278970877698184984579123980232758811056248850870735517475532274827730139663468285613916351695786008046768428432271164018859897974421248634351431257670620075387882324754323142971746963563230022569974330667738297659354947084750117627811506659351859323470435788717838172153870842137803415123887924682426960793217437614237006506603793793706768655502321168561041023233268142425008905161541277813064005106524555159892464252815740001379825735262412377222296210280610725717558893880201581395759276837887707747368820237459835400710071564812704492136016686253306339775580805941951923777286083204746382526280685742292968636592576372782580225196184102089555613924237006643231912175622682196303585480940431387379701832540838626711321465162789969189797345195650907945276870283405738618032089120692206786610721501732979723097782770940942230831742002318867393422549656858657804138054902230073548457206809166554941930805448309100821701662863868168197975847470086097344928786293234511768365796877263148445784598791107715605812666868220671950516389238101750189107409283068308428438993712788718536634712166175653824835107060147252276454798936347324443226284094800555194481007469177658506882556383683123088768367366242911650168532332493615357397018795834017431455562217592326718353232153754166655149063379151177451817141812293112615407360843496839335453658385343520006547785551890835173452192409062564553927214855726875801121766006102718409662317195473206707853974524011044487377543839226655356741897522558867729637350644083927071979894923956517035884196095833924278843982048533500206416084998640516740021216668927263937018876122699910916920728881686999485985590470605669904929175784290873373048834483163788988351342967939929302211086133417797092480463994559975140990406108499995795865883594881570827080815989791492937194212543429661832299712225218263988560992660331176866880098468523894675916726842601437486437518993880676216012272762279686989117265006589900168666809002784363608086069938291335585846871931746597270293086885626398382933923491500650502768877728540388284584594280947470504425619408300285637098079085074214381917177300365197757027977295142406265766070140744202699742452646354018192574837055626201695834935173364183449862060097512890542291696913896010421148546831097090288216408295426364755970588758394716292876449783532578464245426227327821456898557187000254649532137950988203476473454463214431392708668337463378727045112653809956349489940244333810834937175428857386814435834076404929471337823573362923488590433577362776603366427589975840629145244129120477630729968556344200408826988882962481612803351975772925864289656320000609995667308880379111700295434384403201930778923435411628359127287297214769617813123533558540705500406171760012752791284313178462443027922182738376346052279591701339193643798680561719380047166027890773890720311778347428150730192433449116334280035694380203241998532803551285769356950143177052701849974432352939327888964561588095293787050186996613844976588404640578395842162178879262004627162880758794000227444416804010189311202227900388720496723027389891095832362870750710991998294326671449715379383908503981847296730994938360732745952995295970583505344314907330675242552543813722133116332668930216035651722496620832041196671583949729250260006506173023785963875826954203022323023315778600717682348599183040056557145110982732845541239100188277479706789896661988208841024056919924313646914033521343186046322190818768285491328075394569568437210390906440979144395302949469943667122429089220951567170305430829104497307186819289332839286366756534300003630577063809536533054760226738178065621443702121633944442582868984575524581841938524509262803427734092923671656870236420305706486688542209799637555605860964831657288526534025875253797120526517893040305512941772751051954327458047347226779425578917293077764438164588038553144197433497914180371522275750981458487873754279792457505347270474622228569865532845662311487330360112507472031347428003446152132311960386168606099455203847120893604677941003584889375539468824283106030023962764774106519411671322236941342060950958824551786339191968281041680709896512529369029075905134024991656885391603166260867717619086274165064229944292607942694862715489914570563830662124098923462357119810911549410676189880188416939305251156004662446736152004506982876060471127377764329315102897469501069174325702767024093165634113344027446236088233450235103401888622887693287374263882618152490246923628324256176202818946364835142318604972996103064966402744703767237433348340559652228049159395181023429395790379924628286860563929080989730555333919871058884914162719017224341911477061014779077499478650258494944650710593505928215798046477265558528652602584575928347704953535823506577393011981706696179680560937260040931116992963178510871214228578055736547282338772988213734873772594185792899096440557555221466310742310374298022364483857325240874990614855628319892360482895376924452354381509379817002406021946255163871258555366714355662539803006301373603835738009570151121003662609932568825522190425194332917927411313672307057343049092936877917492097677016548107788266419297798488612140814999518752490189124092042572741713693943205970711122001935879974905355377170286054660650256725696458018877817769690997888003844064781808495915916199506203001057575099830573461390905290559874970663204903330286053709168188105017593359375114902135536922827287365651911767940121810820743934522211529717293340857796472993942090706044323704054674383922911167005345351523170455702433158126383891787486776083691690928055174012767041918328487222612083944405429580618713502596305142354795850571637671811055888032219239000158460527277922416439734714780213621864527208269366449631898014867264947877572403890659336769633029927118647144541021064544559596985274041537234551850571095266905879543163742526395120773865061044351407527953057028501891182687967400140704893874825207124430269501596201242719998860479446194047492318304833511765950367375223111341707446656252184499358656932040223487875155851398602211326517848035626250374077889640845608294045356083517349628661894572076891396531071590320576954427654069225266803283766138365038128138874607723434459348624824662714155690112055767838108462498159308940480604590100502774707184936189904325793418000260670136929318625400856782811589059667976492843957474697276948113035818769143659715299836793012028249398725610750303643469499822988525274436119300768549877221971778750191013067325282341664328570336943433642056175112535019450071673126601483151732562162374061602988964281164533132916477254023758139899128438233952927131205124734013504416536309912636486886033693170232405530432979965754326900414052148034741599213891537242723971867781884216289494888837330292272233152846239047856057383692056928951311528533268401790214463068767982141613595960820949364652200788462445789394506556027952481427030079709378908657951121739770158465571270794812048457181262179419464454838865651612208515793703553544503138688830957319731080275960651656183659047657750000855657462511370941096101796446593130279046375306476553644770614119490231407787228407250414124266915059969796426272305342628071795661064916769521779910752962324764279038060454193964188036815660763117583744293054416895867860987657772276518240970624738726069319596260851842320571893767812318682747338780611455092385724025820328821706904267957198094450097441613472483300693309112666624479119421122925457527270323791199495695045639736789378669127843966788775469807605251954722035660748180183048479553078800696275623399868672286544662408445261366989272312359133074240608606426218418864235812645124593895872856527128343823669769392938022588309890159873456274877685306591403956517406462020555236319824946089570876167964831297988932908527385591402762713939074704051248446750303581633356787529741117066064138924650488201425138845945463118924770824046153310750316605874389409136787783585267615962417774147214104169068874260169714251312398699804421863948001096800638038143004353362620789026729714075577189827669463768732388753239360036533309007154446205006386830184813038681973292336802433948985418404800906485809943331641798291628374525025444279281192092949096768433930070653729050284238673922846106876570760211732145907505039727692636288501531082576280466381293701699456901961074446506982240143680490045471018566404609470353455347656893655168653084323747582656661349282245370418682292258260967475294942035145223442594210336013853844290061910435742766374560489497360803803886409213201562593599302314405253999642968546697862012928957526698894003431225813116551444883957334177267238692822407823923408376591594186635423682435543229172358310798712653476431098486739208417509643568213513449904725383377896810308331145893074573701074506172083161773420260984019157362987602185055713892122864099987923771674657850258894553179661939502667625083797081640672206466626746980795469085590524936459556535469270580618232086108172168883782182637086765392278136100786894018840653239364920646731356323218789894754867900560741400705464130490233027124359865268671110635380768478241379306937909538532937640917692211751418299334974101575352997341386630442006336341023669340016545486663726912332524067020131473700781016369036694956382544837250475700630234890446143111134767114533419707088652844604050072762886745363002691381972372603834658123680645103252489569265258191166355495637770865851800130516278741896296265006180401479200542949345824149765534218120072962157788430163396854152535218423315478907534046920404293256637294971817022837972996267396953231527258124379795650486610657179123017333778845220194391635630398402359113391690340841916408301692499143538933852329117963597666820242466735245933304521215521585409270228273053219105180695685664991433390479687332072641112013754089106492148895240981118310290167139379259440747352710027309039152118829852418264230723629639326521385857362178068709974112840177879826168171143171138338694072492866172875929121987103517647964875828614007234529244532537540863224511843448966209741113816444620664170273833474515338989232839731384316611213208092692992418781660639020126252171961504572722358867874272018391141328280140786513321920766351108855737979663066667132894419641664213794150801495991820326468935599416476817234507887104415748018359829285162283059531697960018660696901699739440269665429491017682888504415499065481703329680236093067161688140087012781620955350880615068986196390657869741628163401495027204229862328417760965780244555965549338767168690891827487109625358637910556488366405811195523505744427058674192457036074859840449662952497993189593302755515534804795578066741879049934140222703914075150179044324270177893775721734647829752523215438782292667970067678443822787397568957695033996342648067708159395952553230405505111073929530787260228693496088539175522474230794006790277851509227353297956869877016337550142716633553168328724140616311147863941989095800577967688039607766681766892617272464975667504036026684856670129888638198502071319639696154901077534554416880507428017261768263231368354748703207934012463054843353558870369465900487584202232822698865695585128370360885191071899282954403222742002946165735048594728146762768021278255397396230202253397705892140711915100826529084106954815184923029399756641304544526457109672731777625054736908536296823369445623888952122830102069932514955939825949522721570171073953288259870004601355662649896613575984976063802311485092363733057104265002781730922182240064418471769746819524341916497311478594136754727661355131016663045441969495740986268454425099040678230993805532506088370446688819919131798473153612255518352527228881329889052567874501326231833469714276720271165189873123070169685398298285218306006708728313809664289263231710526302663269755936058808818938660444397468389536462729296352375242226199259178075847575770737851114506971508204605894956739605921226484784091890380134122913873598636850908079327366078547683807542153177393770433044630014124655707892909579034322373467764549993227091754391426758540845407845181099492058029791838028385075223639713848455024661772652677236290388897876455705948704973516155594661875925426695625649977603061943916808259668563035149865648102680993010454687345424668306580550583845490378063819426308159170766416687305806824792120972357580177522286179646869353950600316774044103314065344953025566854293806244447245862346022891535946575832852766194585668388789613791969325756632199506397452352947528368858781345571897341999137968809385118927950265480056539792875638094721133232156048092821638635663834580436140242124958668023945402099357166947850659379293446367618148993933700115006092562158960910625240276024730168562325153486698409005515284813043703942495085646423521293298055625869419206083075435311567516678728815790722806862694930875510001764077657165103843303205203831441806810280947664254568042447356711389594557808479546446593707147452352994305273119864947262064779648161425716537421992749646868901251477226524010740756030757644940671856942785802688407228647403580840376328459441664656594958430924144966051841108347630093634051602743242061455055655757196085801827596218891206140745981068722503291732245013761016125841324162323934973563216290094830179802944875391729372949494817193518239830455127382087583147177435038980563785023804816090942597513848272146192359560713381584926398823137094895203444148479098825295993596551624387765901090703992350433181472334751731058923405798893737442423002307774095582302425755045527175800799645740482163343600060692684551934992164154189603987168734857851790101440839153587899201924277064828048446054099475785427716464578195638101013964623075704139389436078402602276853157715328485709231472436837882811570837412422873256609892832146936694800062328112037164524567441795362620846832663296046674599453526169319918178621629466356227247042164426074308176873351295367542781230934676187751050676967991104661027061255255956865685648255343269199030949133028862534650488084147822193804836123501477870922784692760986299303283699477505279178504448804700890584729198332008981174675199231884997997275575528264548503740680487739802387528990576558017165646678104797510909989408276914316147149273094872628933232985309300119471418381632221044036058640728960285660455394501723814465991409940312030335013080071289365359363236126639589050819792708944831746913412970668040788881339786632255328652416252418603968654130249123068405837407483891145159354127280479498512647282788961565839934105027427707432121512781787129636752121952440032830020388285703677582856501746365179903107378829469426649133980838705538125623178137121341779435187571820762052555348897970824604476998451914890770562305647599540277198407847509485376986263271414584479712003272357726679365965408988379905843978410408942184562181181014711222991937077226222240499182926523127485510134187556450961545313315675482155953315935691885683395777899995887711391600956825544903868240895031737750358554565945252261552169493964960276697033597817227900664993514377902553389169427376259179547668207535473514035385586640155051867019508380902023099820727437893840298287746406748231032574797039676021645192680161906845293239968185696005678138421219917276301435176505172017408997288535600433579996220247629738857407324704866032232768904150173215916455102085506018259119648830355103396228754324744840044992467172611508930253796341622202572539198687765649261769293543141851600659797578643820960988753905432936138030985469611848018302523542101349548441726023293752565023068195667641493747180674040933031892504550811359116931007380956148324940218949748152113773078802966746785618240330763900885533089990788487927314590333405835834321602945343400577822878377144330134969717849446847807933883391726548215414952318921571347366331896264886524135275754873092094284541576752337522534786987024865583469547462492052178577507991680207739876646609480633356378415700384733040042857510479261329038132067660736472346556388411132813459056687682228358505604076387803848773215901381851956769857193491644337605512953502459110952755360929005838516421372915638486010765959206012692208706699461051244395031619937004597693013834422953665978021965801378941770737450583298589309268405650646765197776846964336537927682485290161642219274923704558616414486284084456498818196910207777269864355210838414983876147485641019389892033612584639774138027125438772192484079279680572483254836537329517360744066031984386001042643364252204576689665249838734906752978414196313991787001642422435450338766478348304520086831142730542573985586005132664838705760604629492559042451420571918131069590287945352805746223690982240659244250631476171255875112283074156885972878666326744802671863294182447630835048203383869775888444533574319932915435316291785109102252472875961267236375010193770886315591266434406263110775245607774891541559921162341120116489316193678295693262320040293554761947255998012425560064375554041293550287298387778804103174720676171667802909613327732439344602750161846510580059117519163554242054517465335373369154929438356746093728646986253582289257781859018639466902945482810212976742773104249054035051805833179637473880565802024464879295748568399385697991251811017382307310707859009156299424400497277638436035865741325191317740506240682108227587921068076697577909782326463722137962748201954973427345445991199933353043706559568826310478430376149787128346703708960239544958276575495214653808947916083892926015169311303797644459669602825778450595954823671098021175864946307618243898242794177486872016826762050759606089310270571740164636072711811638096156904261425019172692552486749677393063948279326841053109268496663214717023484230854682422414970522799349850973812415338180614840018504229143455453521551016611567385364963586922626536611750801330455828847810498941021263407735485025620829389667365841416894752371726318374443900336444446879737967044893574405134645193386544689810310360787388677243956499561144112762746017916131329326119222248927780278073111751565601716484007887746995427155108758670836915424739663690671946567235050852669913802586998689192088679347427700949522546222955564281317314972547219350235779059620805901162162977685467021794470530437262798990138103948818359830053119032699123017794690996219866907064522922376393148217364917363603209691042975835344628797363081656604862792152120131925897301516169713055605164739288160617518529004729900238465982556477942977803488553295239049486000781417770323623752843060394004752182049856256520732121115900448009500026231262968691183159075856687753550011863473277923010979773514506608513924367264343036051471909108258084216151472702854041240458916123570918650586910551851649876666826901070236217995911790039671049660583906941396058623602520362225380055697559203922990431871137710288485273547343950341824610059355899568124982871832227752385406841883856832043993167889777010870156215146735955485547501197245778717763845869789515784966812213954327948993165649700407767895503538095670254586277727094201953527715700363720196471844116010641644063824492957485105125517344069950115700803278661526477011511377583727978593858317287876765126170846391286189576969220302277325044233952073507229814797834436852046157727022409233897527320908610979405792188230489864450349090908380684486170288872486855748041763457671498065418659727465994480631063053751351411130174831474521883267086809577965635493358145896324978928294035319509884785883160570451248943744941812387339870261773259350377180486914962626848915546743245164313756358398957140148219299187565079736278290436217567783937978947111886732075480027761317285779378571331087465552292435493369785446358957667564283114753013742887826777455872435471940323195793674609504782836041625397255752127750224787180285674551992078602466355284270812866155406869868424855481170004562939294649882169146605407249074125160421148023393926722582727240323444321647487708544411643986392316773130560922405243091151192182851066179054869957198091500739192754980796576074102491293690395209266934744977437520438065854189138879930603761488628720151657943072296031437918621162764802002448765738578974163928640425042291855755881562008503005539237821702540881372030281465068124774314748295700085179465991143605568104508275224166824572895870414710694362670777189045644921468730892976621158655596074028295794922549638475769057387720150336059412895085620513502015340998293420867345441092487823953085665002478673383048572214732033900140400696311148786100014082006792432792975751519076207721397200034216012904355127341149384470145538467625903958165321753903896041152770028709977652164346322456119870058031170620334560579077319889060724423508306116242063768769467536972543340550815450672283475891865012761841841144617474182257249425214396920439938672039674277166808823385531991642963415427028646311383066601727455138756551835058149428221193586324253336137420275565985694388175930441547456749764804779776801644250662569047004230372046272750494392987069947033404341592650315581264749832784758002110414651982910843589279936344548886556296940078800369564754497825903359344232998220552960377816442392340050059048131490346972872988759803363268393201673518752113617218739245572388795074345041586862663293227567978649281084310032381309482507925562173937841799962815297099720988579555128763539647207810572914350883178727016408911609213086164043052543579557717287184060721853826985043740786623994119790038082996695742358856285332604857563059820409906612891806864117736635942995433616469224082592274786588872929467706857206023931354840491437570543328519937961329190727194863128525824597989367630403883813912204307854585134672553795916652359406828213832773452401395400113482375537819643395212753789278059801797536845627800793991038275241328665771299412915826232141016146318074473390702832518638637752548197746320013892328772830927596310797524768499102075126358383990216869244513556576273198549605363575251300505536836304987797145945460533040650635376165961330111373258849706509794533320973177236274534430761156498728626766817863355300809671413548865455222402629099749409060230285146998679832377814859726281316066183815544332454578627551826670062173585129082569797641135243534706815417458722278129451572077520022680989218164108478235053868616384676549176399433721647374185793169548622458008845565911865442624351034801982787720476992881159793109826503436051114208616486641254364063110167867347289254200092106207176274325462552166312330913992614455921737092792459390355170107739035650734243647459275312943920936538747496263608208186794478824237013207595374774653873681294520235339788818234450149890336991168503475674666894999378632074137611078874310525580943346712104843895297182463577835580500886533520471257113856322499541665200578315606594527552637319739317051075483204623975808429505919068960168094638775402931437127901329415607802423862259810696263906424475259408073838527564142147464879248630155776494320889254487593227235846294248294357165789222759597315286781111143470699970167782019918338854488617137081271216625144888599997115110532964199610180236396239494174261129453221117039941448845921925493794292605139095155486926476859654890039560269187375182880535350778027773653328032018336146254916096062708952516288010564101192626889765671193232501273521789797991700076634113063249805861031855944013501742526685570368017602592690042476575623171235961359455498709908512046229350055868186560496129285182023129435978248632786461548675965639730463647683450275019369950845862007088098785465343854365288626580750064333888896929019640216244676789951465576282691258019725184816818499511701996819170831030422980662829354082315686865647265351479126153985733494415351717966928564922122662292291987497501568256740209038333433856379036656591056784958298254520562005523828088456762819952802364230872246502019555470341158655611605170552684939953371370209494996979398358314990964290326409469141700783376470455967147201204703741205365574282612295469965629530113301951074282876367993322137295387292465960889791129348946543730084036421573988408044736143281876050603501670830449704213826594256120524609679698775607441924624707296320229184707073083455092218612937323424385427338536799720413579250317009803467190242510243858992364854787600407037753756700535552305190000186517980787407907579738030266104061271418704433972531899297640234826805947042180950090308143812681630171070566243581149188803608089520857550481772982977362328256521726084745277628386369144279345406713054887291880767098364110953686876549628216211744408182463205651103445519600564167940772901366188723242250342207612015201462852809366962272687923000560705490751512955495953000783908647527084088237448624486358423903753498169451623445403074943285789260286200070377360521160901307495175919944546532580059565821444373930199716365989146075129527679684850552971356251734233526909160775260011954787838054988784919431304730994210665137443643778088100540202348163277157774099478675287847094804765005466989125293701308371136206996020955920327453211325796479937648711493253348818728300958671525725318670572870298088593541865340877112803745716836156576085415712235361708626803895665940412452607850686986850465340077215801958640520454870455440366085528596518971918422684634026275752230371221388493744542417640788421293506143029229611158393225793590646411958069472933933751143308865919373832857716267364984024210981565635048250897590506168056075329369133774260332439812882936658613247019371651940701638962500200264168135914195647736083876418917393488828892402647187119074238979756968835059076913492964192138726548840262419031395373468777936152183438707809923155048065408349477261794682534563595547444694941022918720598758347486987848463724396350386396937965385763659971894943689734116035848442778545402088622487683437726524060883281861251825104375822817217786005598562843381728146348191425718669381112344628975633017374498488220673287369033032086893991397003665184016303229177164267826541408237864697469272439378175535337431908782919098379327110902562423129935115634782851949989795039896604849429346976288043544775665995524652801044541663592721497900858582647327539007286560317938087448089244316766279027323044638353557528325951913419256905894266188665585358295831387882107191491869936731030425839956686127632820940772057106486445081536508680940643761840211332467068113139331871069680814657224266475948648379337833221750875442554224387745559561556925911941108030313276270476983655495958397152344681541277826975209227256347942162574038804235225427085223846319129968651593101760105878671816178328706139879596605246659493710817969824954056090334867430797587447614641001836920358509489981062268693538695810477263873070825946357508755132822284917295278993717121424128182845615156187479613682491140362670871103569473220860367406853499498885662113481327727869498159530933618127908281901672712723875664273384508086172846966704411838575625733848241479079776502596364272768111878130998423156680761098890584415765847851562759631058440928258160195402592250031667993069243574198248220995328692961796495466579946493529778511786766941055815561170720228610988532399729394175727865116970622825358632659970453570797243224337556510604745215749079513572861334455314806332583645796472338582219498858645842400791406048265419221986469639153739860907285397827114422539714734842564034184719118521070029478740402708076416166126912305972982038579866943209000241987478087921458898822619570949319196484931815980089497217722461114057967583082369258652828732962525760877359343303826088768968342853242461234398099303979658358966278819185587714344820853182561591059122230873958139687366819032092752276531510769504631245026987552188325801230356253257454909192315498455989541215445877498853554721120816844479526283108142887218606655968188467357467422341970822582265688114105110884587870211588251759765853338953617737322749953098529167437293121548990519205879501368601607304538616868407980002876529507652913296572211211043148616649403807751342332066177889568664389987587673226461867915398947208476186538489732259654354687015799463547501255712952625061697262875577896411435060899996157376115269504415163902241957150788035506883615379787811438872938653493756394054219119922344146890010426836846130667244018129233553298313843644926313724433412381297265956832803026911968787053146652696325426704634667258218405664569950707612136214253802477444723894506534782131855054274774868390197907268616260582738830166093876264286369585908155615154619037267589335271331873223403070827887011517466460999692667943739451769752079502373532596747353188496925081196576961556460128955611770354406205955609212708505612722824487951004776227527468843074916910498770607751875546326630387123882142639876862880622159587362652763271567898232087586445714083297249821827213448103234759530264063965836630338030387153883843701771189610751073438083251346664798616195100720352750455473384508598641829612779306906586960588254076091051855117045922732793742416891369133222217265192714438197487801737882662629989029626735270823415939578308212953020397048731501572500833917080049344182658567274958146756151022071643867827561184934890215800399691210801942162422612159930050436781927784121438628365144521358890888026678886455857023007785419035028390700924861144517643645126757804639595319648277010405135431102906678515017945025810615215173322776159011949725185738564217720257689707025185688775211840868759417702956342881274628113489210793343996780717479779140762999204411699726052272051571169052968085584670065780698432800666231785620829417150163480963386008452060936123806140723229195227933322710490011701571536129076850042833940079922604296800989689351720794702366039441708628668484931179512326614837650793902657348802007082770653549090292684797915038359290407637804586049498709717965080788459595790765477965528146093044362463840815399688056157251224456266354719819223825632217453990146498932209353535210950133263601325031929814799488675547212981811893795028483771645914444761040820405370643025680025701306735873596936643029905194947805882053337401830831304588225109583199931823578258054584531294133974428996630734852500892642851936122238716948259805881278299932930502439545408708897904842183835489312471447486134439853478147053612748702485083424930687069047048424400758564247345597263682970077505309381570926463554759213719763239300228034235106694817576337460935892585895593922658982691385044725575194863340255675098267763746540357700507809339275622165663287286181642228432286033045900115440193891073726767503687649742578077017500895265790466108241279258380195081020416490328658997004483760134372187591576630941332049489588428328072544578219203780962503597462129177240943166903197935804871584391065727269956377824107896197500961069020474387990130796609189652039854213025717188401030501114277663164739233271759299169141429644523751096853828430248832218526778081695137704639822980506136709150851554302614867788954423916349916231803430649346127938354660033366331179514940505725848561123084339543044949336145343765247120243555172060187432597177851934762384244157088994156021895584824733294606274082484374458868147184386994376767225353523413290460533260097627649299786007742938173131559586694552490528523212146908656938951204412191584588255308046448744650646154947148280999613996023620439682666845136936705085705376530408868571062117141621651120295846335666171663894391501398573779392528271474873666145183970232276693238845188159940118431641520282474746726704577493698919524728876353487008658813006765238404977297513180555657069592051942335605286187067516706551336558647535299128310159804933927947854619195241555640872654152890965637554900716315930068661698995145002838697145085349575051828345431707723195183999200405786245996103539498365471415113166472049462358271612604757488757874482153095174568797498341645361101437025159508707490515476270967039284745960136760236987447139495660582733543056131703321992162910118203013789063913277669062297477587357408930365153513455764961805286367702694799518626597275331212900140984424340829887129300572932049888023799594287449547473119204223382772171128781783759079470293153538735769332504321285363223196571233121977679005136333762108128078712350735339214485791775782152057115987541816861918340730748027456365483495067612298332226776292875160184590621285452135308427728215022502289234916292691184519292101095490733660726078162193531484532683814515502052927316270483422445796998480859363583054689064553219680209782246369043522874394427580090587161726899514627868974366324963525324368438073405097362767900630851851252771290459127770981835276068833943527019486043730759693193374018503116136516467609100478315725917115875363151000570615009264403037957856493221341343971363038990733710603678109242550839185205048971965543841292348203401016952251647760201024204825560093404150819744618960605990058131622568205201008420981401879813820292932385281320551323384599360365861840555400518577688967485163255499555291983351760738683140774070743724200620200445895367150722536311206600808239264882797878480910374790777966071651729018358388234558604612945494396615538532400496480589894880188269930684105785626532202188569882651509444464404922030009370653165515875458965893295471544204891216870636413354021154670495281338160179411138135020264966387625048884329343660074065578125172693642918767540320554620405763892639866713922147814031490274771943976246985104313278321262400639185668789325527462730661207593412076032947857690796393133431828287450306559336611343852335022840177564033705844570922029988101608165197859753888386583882334758167456193097776599445933128709523518590853136462329212964366821844367048094094850933571216343987442601875959805929758611384820178172634832900322760061646884454990842662260010948644346622307699686465620335703231305821438045408185370372749526833049942206082689999655138666620873280694835294593510462195616985861004044911118861175674119378783361293183242911681123255511349889487025631672230548603654228777626349233334853494562804832733679060666691163957242339735767676092899587655701996975620260594983188312621915155439604972168582703309975325621283713342647807958273869496494456683779630853778150108494203736531767440022806566770093360560406414170724685076683130718593215113893562231875345425950235353242015456334428310632869246574265129779468096595803614903112571899645428294540397408267704042121100158305065187692053055905757849856310231661792142716588145415103866140610314958356171492498067036052358035553356813881610934183242421186631840226968103848953760594651004990500640462899799810916191204167798250712614302151797830208330602994789252320834413847792881252069385167068799550646025078726104460963161735145192172144856785040814928225378626151064354640678547884215192171359608757086280962336292016927558419484781749298812790897625873370670853626071106428910455662973181832273774118434374475664457515894382115388082463116139738814928915423059701907532402767716008145142476597838987357086142620386837360403308458154565548924057523875718403350925231844099402335441752303963732614006724686613762222363185244264817776112920524466055661363944389797471828830293190128581978892385693285456080506862014589061005362703879945380712953784838742819552592754446796115600949998389554624687212578537099367595914879093713761907830289983724002187840633026975223000377994287038789811979662502264786828147264425668960315135291565135387790399989884627714556744811410888084095331955131197620666462252317883250789063024652516007296928809644481468938504610961477861028626387202880582397535863159345684718355362470997444338075389426193283120015653567796625248086567617781208470831938035508681423906052025438390533235262161156800422084417985525265719407422080375214297547326187467431687264915949762356696024127423137149726232970532307072378159672139144745882775131821774733949546977419922488218532903199200114912463595000144020121017259323959657845140415310826861690951437108543907623883102849224146045981359627370853157057664133199103069481636225381975034148376471460269109500838929721361592244463059147250658690395529337336098144163484959566404646188205915560794566122525951939710461043012761747581468858790744971332014410851029679541382495290761979376649670007033913761913921200154734707644877839481173214970171158435793832955341407313625309913809816884993425337203057556345228000804926247230132040493620388090495922798255484504038310409918783252717228578794659126950176152688710944798532857859468907348351391742455612589477560880166917828997335720449491311793641885526862003531691139685348103980566705421430744734730145172099154286890004963387691832822704847597810930987174112858480491482601631968026219196537401751837770691215681692346053286159704801716027548167188566654189601473930952058002851593411661631811989920248048928768305382441365218248482394586497410588096870444845227024637268191926570761643235191402140314589914372051810592451417853204730596650883182249596200072462106336613888931506778297923068092239810427876373610871837862477846048075983834015612020740571698892463676107723855505808907123895250297795424153766413470713194102903332764951800082898633245676956574301234465034070348151213818760060663356126328048252344231193008597896876883468154282442613391304171186320711360324175738281707707050759022774959981320391224067872362583689962446830461961489006237366151219705813921261535253948404410250753790817545921575805170971308444780721124380217270834159538522832468171753375904883942416867926499500775493422945597777192115888749772548303126074224635395462554282199238004982432782175604749211297936461172819627713813847770495090016424078593506526757834835248550322969498062129054833938305870197358184594029486063295461433266854001239769173801348507852278295294717270280581356977084751702436242362602068433273212070021442872299283526705363218107177699122123384355655756048856082948830810348623020194020701214435361013210233165588926936141026688990961684861502891884591404877350342539411429835868935663555211914145654810850343973647197891398523664990711911889580402090834949195461214712244532684483781213918574764900869261120858342036885946645829698211537774865217258002071421234244938011784254896761739286203670990717927379250474595031125303392462168885894276610796957281840166448266184565191164203701475085509722162244633813755176014301912790420582015035065108202627769280724860293707922903095822946430135700230685370279419258746894897927538405764193578361628515230889273930758795177768283300428709396844295616357474783683989678242666030056489729914583584348273743454353064615585509627554233379944235661249372335458337431506477675682098688233505664076202707912764936193844194714011418178211229633166182103412842869416221905124601711398829493051745024819390454820826187508664218085567211404367628889791020902994438773984139613048516317621353372836866616702786833770815631719150137442466839779077413005983656243402040281502964151364979055953320114383692685350320003831111173365692629159773117767385865221593697539016230856122214407027159037150220293828806104637268006174951190363404388075318498109998917358932841324971973877983617326432480063237997914154381008063782704851188346726617851257371720937381627571672699904688930178031822821537995415710276082737082260535033121760302676959834835241090944992068743444475044926923509855556855924321960255625454317113664587110783667585744187337514003834704621775921280303777125301878688273920647868698377132992089815453538285790494898624853647138229503941879530497392726490557282473560016926214668186035535236183182969955257044784785585717987227003810853206664342241725536392125991543885443783696320087759817947048465415982886543759865647554840522970930658686047783440065192979362683099965260500286366196165682340654821741702102531022894308249368827347120434425937716424266870194208253648316596944158177707655157325270923186317036412700004030507470818418771157809634369031397822031151705972862274796873431597862759479459158531858203489504661118986105024707166979817814819559973228768441683345475158734054831005748900999467087765159003645609319511248877390368235723286155301446287170654427220434966216568142718070556449139406302770340998837807759711974949888725973332367434794113260917052304375589109545222127847733032583096629853825760661748960444125908763250124818494776392200969360762038758694493943670841811154988453253870349743941677435354503092789458812767160109310226735944097520191430137159743792545365451036651179459778133943482560402333847793146984794529937429179984876663111420790514270116030301116741308565126694828390857198705386662897606197172277464751713960478974150104064088157081744701719238677656069772823469227889797776907432060209905034371635755573519714120191391555250225946221240182664458182286265311519052241882541329499588784583871537932075614243223810271258102698702433686145130803264151061233331245404077241989986480440800024570693926400578082342191015522961334029096743306713422953773902889846566962220153296668717072541036198557422240391168299343336250915208355672735697289539835725572189272787771645699730781124443348274601279225689004353042933333002132437146611644192486804113877593732287508779037453254083128942949087333369173606323806127984406434898332517204697802700630387453573957931122045481010415725253426456009771827338093806028846935781166159492152466616995971643680828568705726099075886452402155596964758068678798004616664217801527858069669679436957838221358279290938303740597783054676458048095689583876593397180670971505273793131075827727072745829820581358506321336427566157279365749590925145305662069121809116972820593136828857456764321714829463940648812302186614565392066075264491190227301687507369397424367259199962067804204725342525194545941510049354378611136050923042641542343752035972908299938101655540369715954937743930000049620081661035759548050305399400096543783107283330333705597930474678480099915645165244157421316554053053664468918443484717314615544058691522521065546206105422341878828501506480848569575356414409179734573541779981652160496789674770264177638730633422970134329732913263293739642139531683999878268888717048296664745053713311141264247562917216751455853873747738748663525808799999196056544221662420535883758476121635351067604636092950506188571376006979145230398944061864350921929990751845991391644336736768815951096539954747628995293704500751520426973425383131249985122466231256133666854595046053504725791093152232279966476749836305716652087701888944084917492603286506714775874170877197895924109739522363107015964416667429211961338088648596396579934879404040365991801587545609158358903670958808755440747770771361324543297136698890231306084063909548626961111668199030612906535585417571757649078381662358059730673229327696324184216245296049538578210524218595733608654299455866840644996837975327884219095558976285162468247582328741936184345796087786347667858886141644202122815067055912934483796698257629536765126005882789401861098212034462704242558463799862912397638886382485666676042917413727999453403716625948812051605439356833052353544927509481365265191125657757790169802106336801876641762734081188921697382826231544126002064254092108597708676487985406709353293788082601016482434822962447264811209597695478734330983772496112185773277432805501902793289591231364931227969461966191757816647221141304077284132906482287646313035990798384502745819218310697439744889188660918378159793571026579033776837949378834583282454053129417729005805527365051183098606420075287018467347813785660924035632958796358507511989864698723539805169948127921243257850889120274335255009435494563155703625919285988158115083975966576936525577464667028986739056615380325554264971793801677694263808846714175039869309600021444987492164185676373914058400234675663238483095959011849146686134924491331893938063254903939920239872694152722030142457123803403501827232559054529240347648447091896652074364523857221875022663343063985345036952887705269038876567972023721869267580150057168298038037390025537036300718709261132626022192688033529020030840091252197153649921948960450563642645915769914877870392018094758643447982328814196678465607884780559199266833768107754640402942885652186106131960629863402964837725325870826409932566295925722296383392219527238135169688938293206162135465853683348711321114330755482553678923973783059819180690292049435908559806158709425183210139604847379726765893079977928364501555791611948961184531142654871563246013993913398794038030466644238443417012469239827715715730794685230699284215440460418986867909974028770909007507298659164243907487705788692727823060405022186684637167373847715179031157472659719441868805528834098059045839887336314714823657429541392992344835876219671077901977660608315666236744322770449314272524631685612785441932540978874347624822994533231813159121349380006576773557167761361230554020048653290635861603245559880473885921305865270225799336169169860576962031273344252717990522754030392129124597717164537503289591845333484844348118722128299209350627880422202549795194871292085657697741575332153933582683871209928816590683298845715766049480205033690802833373806915403741041948745259125836623311219532018813835752178383765578364934764712666284616886886147740515849363174752257221728218183789686258439894140961634002832943730272986016320542007573353016615738355449173786455976490490539894006291751284001025099906850771694894248287124804596236077401702951216210970009987967678511381847765525165610797809003891859732151428069954469789614503494578546585383745705746509302230002415955355510250432143533946870543235243103390758503508256047468870076293656938665995115003299598581445126906094781143382570039566701882753208966111598269030167985118400187572320485811387998717604084550003421297911513818846472410682154534557158671640016282488509958590508001450931790715213168571031295033383800558877428205079957682069328725952601680789923947279327819036255545108715057643140423993183286143004522159264433809781610222957896101322188184711778037132032433917490678572985979474052487721902251891620310062447693156462085217533007820891706134424954526918448824486690689268693515083918926270137810183258815046751526568334855519679153422214697954318474762874617421280898384951890162607893738122242581483016631427085266050492723467757855457955376257343217205030600690588382425072414099959600774057665430872882651794937073217052888320133834335504145848727986437584093834238671051996064650223905071555218486517937163015159105948802751621765409357951789758458143835131547481090685109232952610045904201247901977989505251032380383649187561863337065931686971876235056708263343781681240502831817098434225787443110307999898401495246388965427798568013135599946258447257139841567123724560249090912597416901521683016640995267798347692126593106644620573915173895720776125051116162937546250304338863876447346000613754736491813956282344706437538967078417644983814908957149108352565316842574589770195162835972866542100308742510948160053105114689061022409024834141117039677792941484971792005511407690175439200038528781964732315428641424025419118294947049466423181305621792622397373590839631983000414206118083921595172311403046723255381570669242863002139392609956969586052467803398749710808437708331916352388414199146527105347738856478304573362879731656680589600358112411637367078347233820840830931872420855192442281564500191251871673709648597560432710421699123183588237651732461283986539275533826356391879077531110925125294026393282099523641560040822723432429625006862835836733798008003785186434778332781790007701497307380363228242966814886321642211068410627711534361140021742677374119333817828095303598758198289709102161184799268030684974855639110622475631230241797231176423171112561133546586282243301109469978260313610048207727744321363991341445243648137736022214083907699063077702466178004384825172718140790211729556176001735404663442427104045784631162684533432572991661274772586223127431299192021043642942617879448517376472203960154848701999894082025409016058507628243029145919559127549771882716502793371317070136559474873435557579705069713452712331246997920507013354099450171710386432696974013985367942537536048870732329741038916542326517706554691152647299438179808458017185976536733202524243366649642551369343462965591109503315758325788877660668562679748746259810447860153600904066050812036744957800161322270838993679267991907289152098665527834573607684812052999065690670720966152233635771124786922529816813337564133893305581245451680553835388697188081077535953155844501667929244788816108475011980063331431561891560694481484224247634302596011809198853960776292581353818083144637262576343019917773576802583165671707614305247362279139169768865499805244254469146312240197986469936246401338664792737012881242302469448629888855088131221732019091113862560552128356536261822765888003817044023880977121060907096560921676279287828567903257728792531347131509666006228442345638029112010241997502004767520900952267134996945616249874400109939846577818901405424060532395181162197533960526472821952514365413106106144878415631602928338804398211173299905768070630539287958983578603266382001779744974048375556000692952946815419964661919910795822831512788338426490083342520780496133426622316851640451531590023955617566112896255464692493123393717168282465718238130507856152413723658913246348549450167380331952036334172509765803523297841408245185437326944283494456765353754859954912145500746308703543770893219006601811574283818773580162334143217502764331989345466657588292945877406290326410444605522030996941891311082182595675768255303038035410230506576947339499902585443278837524953268346911090293402726731550592703359293029652821823295683516598951862290090476774247486715979213554949258262610169412237785831553185805163829079605703248454795810184520378314623918485507320335246671075749510795603539757499367432693638219165454323220949684534509739079975907899067041633534863385773930536045963700264020148306455672344515374378663970364294568047622174306638911755824784344753503811855075906132843789592064504579008805886426621555534032698050239853949529019421619223260230259771834649772783205617683621293025765561742626821474597663586745895438825392969462272346924165227258649886814339568695143910263613607378893842669110380111614459418769150797794346774999697277402448213142489473783624851487544418937450253671971948926657059613435946124190693565733178438628295273471196135900885709780478443185447074285477039866516623401047626772975174015908206763263860914067164938467120883614807669146569414493264878399646001988530413551559449011145394478087085006108572546358791168392337361234135672246209194011802800255371480058561814439978181777775442479897220234861632309953132902015598574389052743302490133012367330465429062483754181412664505250313297029293485380203164390658434541273334787025175899541802776399277935725821213529818200810292459255765388779606287639840833803700942486734910032268607213386628941316866220379380098069241285505156232376260843107476923040814867251025287563843717635831207642085849783699724614803286799541546759880480386669228968339276962079071624856117523580210098986394066899502561205096890273002513480077015741894739201331682799627243277979555254032957869400460506109145512913561533268002656875429617269972558756215094682460966882186118042369123303016156156329087686881072333086974465372025848577810774216557552272301155894595528674812063499867790014038597220172270132671085737681201913692523396446035330712774671800962815926738309826416615072576083722384362715770510054133820842748468256951483197869265543359913055318368085791710384814404222428593257041248444864285292830796489937242663548100869532214783551508787968860128073479755009947960953446896736374254805081021027712599344593411995890288075300215514503923403100832468264770015722581286106808862523509575341357471513623762854108231171760352783307384725567422138077708371835153706592195089753198788109763989995124586210766404306246681993351700643328223973226065722190940156416657734213261831741049015973523953965252108254914505490533007066820772809043611349553093572205338898001735435317772180490094219737773374395117804620776585696462845783810453278722960483258641878979450836681282984355006835317355536670008959726702162404914413449585318870613114393604907531351722734623391150827120564939625446551726456474513077125350254924535776497325539828003729949952612192331215228909449466136963074153870370043744902340620402445897800085742444870506647360139515344380628606010492171737236628877558190997251487788521553310020843928099912589869760933896508004288037124270708179123686828243356664502407086938236280757412800433620127627163042838260806747657521189886415952011838430204936526642437955248027725506615088237820212755265849838635986139592507641300273394576854685955612266127428691711605523152095558826526985957588812276415682784192566328896286639993543948936790208457066382126778194049936008312167122828336029984960264398800917377634902786341084989378507601603264651306795184651950148069122770393782956291073530531495129474347275482074739877632595122781963493463321202771890945409695820135229114919415815801269272894910754301580075946218047328525045158037155737697006142260888641085931081919967390562435836350896379729857575386525290668774774114661103261694461157150002924888656855597073181676071942509832982017811644827123397310409445919490216366868529653743586342387775687453474626580565430610654833455303247361300619202040954395161531217312519039502475289275399922745595993191209864294597661931258689421362714960382668766824442694230370391765961698654121627781005119891362568014719760430116510068058769484412966967976861714420036209448049954365826770695694863537338417799939828512866317489361940137977712138687933017667585020920442382782750034158649749678614977058706213787855516596902704403442390886579604791205075260694399691915901666388561055623324005705709252502446972924149999383175462496927459708838333346917209360329588857938723200763305521305460305671188724478671562470078675624023674151993176614823462249425205407962517772435102481473453793209978451870830187910209611017067042303362366786446419319795319015391201028163500946385294592162134536862166490182089857850575696709097541226158803330457526715199140192423938149397819082986522006956747022531828598932163658103823394548801318259456335278374582568810796319243098528142039644237559591632122866490727138667952555435358695865024440461683096299464425822949023047805577644633449912451857426425235735063171692108789845023322217116175502494487000807329045525766480836838935748633647016952415706832294777718988026622506481068475349590866605124563113832166968755615837875975990705686916908202373601674113376972274719646489411717040335237265494129422866416762639071550556419178471813959367840534590248732456369014344053236038558895377544980848186331500846562060180592650912274945826712887853087345228662654766208703511484193609418551155420337480812997574329526184555926361924979571835706337397079774209378599559127322542437452208692037411987777394979207869281807423893841229155216485997263699030128007045342876522346414975904131904192963944547526725819568104280759201748602002555521929828876957134171574840897921858493783339216626535605277275166146960067169920534798256455141525289481475254778099150666431220145301270519576356128863215701303750505128410536105665370809807107992763158451538708423841029406834927425701982304506021388611736959641785093139588774649620070579827985897316096129069920676816138322736773359338907340078022817022484135327174810773223139454207278043845860168454039985850198876826531061535645096342763411043971398439267458259177880675558515016848102785188920690070980981876623624372040513713342762983111754921332850715600603043080257871425923062639040601306809087290218640553463057927452792705420784764390883692006453629719273059247028977364698381512715707265008637407576219775617420433893452766141621818085993967410465030305806924219215974630147342302812193627810368646153699691856862356598871851332319780602206453140169923304215512913895841581346561812396759457412050792024947426855722061320911700806393530825079800738188345085687419918276745851288809600255750685811571605994007278291251642483572219834986603441342229537756573391205016786411113370212168987654396676836943752039412871440658298222608580882294070527936993491567671768697435462360777669498359975954059302234422163226342192998443876466576848003745734505915284179998444822304585773327111166495590354558934726856829164144263376671608697346841974777623642893353420327781430631618211370160039680553187440965814761653352475790964678391323257448928143926547703891757451933542888449466381292522376135502575114504916844559624443961821505757467942010310535422388407083675640318897655445136993321280897216614021661271060201978569530413654871872530100291579268756085688325552383779583859067694885094012973424417201110467422902839877591749704263787668050869395846839845727518616039508949225425129420596205781810604894552814661791087678297682470624802332872939548844591352987839161169306130202167920733373457675104013706291043364350419312885469584982194792807891989937049155532880322310399856755437805298227249745354496712997441717715596179220534050471151370056759183488519205827553652570327541003247186821225658333147524260356374877898432272480329517508679994828502691705921731949428865158013778255263427341078370812447670311643204346774412900159917892874512935950823295866275502915732047807913834113380546616233830618192771184271874876412228888438624705089120744416272207980381619622836207462631023517919155930525817201440043102015497184734266019611026791355105575963282812323568114790434308962936331787089470443713793810228196394927230494745301553526553051920535798445186936184862227546607682644440864086318362424250789103077317717230476131332157141321501843402252338914401457371779432019230945329389059312418473484213916196964810492020352257737066062658477783686442278071259777485022969830472612389394625815496021822750046355737177847620612142511597982601440030918294415068401606185695992271592078667199208257646913370671121293767508358683838145397413496633603163717052489658503452714443659399311660618676162446130165938472353903875213874008793873989764475877218709422347644188472629975084525290490129366462968900797976371639975475414591541654224134607380599335706906734459519003040486682553767986309587253799011989759971435495927970009134956777653393411756393557389670672481232358055738158561109209298748281534359399721275431194426455517133650324255426889890624815675812583093514852598805744523446681972050619105342786590375731778255466013186925315753690730436585285268720500973789235579835438893185382207119861153819551165464833469345907565008836515443578740729578225211302435467080464655580619281605257463479272506823376373582502548309426935330304808211646374667283677813048507799357093104152706507974118974235677445950273712601059985159927156944056448715837786672409489635824796541313712344131313264904362433469414506689794369406158652046419170268434852687138562031208173273378330571773691372494928322809460732778681793221013010855874748976577299017062563318822715376559633224452124801627691516394864924781768082498567277624647617305406184081570582091933304991220114032041168781695127322615459880197280391686694749239444474033849068868512806162764257375155090696742054587845066233796897826707298488189272758365079981033151928786604473777944691465132878344501732797137657960537336857395589045392134109551031598822279029723477535553117838943792198095566171667031486032123628935859423863355690783455326488726374734162391625296500752378235338387314049523001078300516622426790289817422662451690845137324923544629477715652068553590381362795775998330475755200338007797067641355886426109952410026974120626010828510349081078471829781002240620812660941223988071474935705121993183361323136549617510398955396958603585309478674053061896222076152451926097914597694842023223052280131711026492188354624438204688559201339767855389141475865724446643085820952337542340419293970832566848962210643813694240075342189967787789859029938391728878391602689455069420849159830881290070798958893529669882196611014919717206457064435965728244237770966319552550974248791185897788761215681529967939114177020819857392185988245654777669478009463638593183195013478055049822463466371036077709023161694415402048312345927056190656039664961941932491041009337127273467165020339183996358509838125751360792241938679369897995507639613362429317466058207589033788992679860887307828487951623969129833368226946161179320645716895824732376869603268617982641703562750962089263467137796523777879878006563883108733091646601440851338507253952319296293154837393970192019941398320521258597416859286278437971623707922617334791925282969549353491568200030946385307183034944547307905459387180028663993643122377632154883855713893157373959353922513944352528062512467498060201771283097125893251593903238859862088184147417030008117491062307173237530490857422065490441662430158945126266196012352259676740472652271601760597578677405301099903189068925252254266191357556971080406392704337558463148456106499066709271198651739909641492858978107464929549690784346179430072920693208604350663860377101555384918181868043012233593087066314763732641804204682571547992614902619571606889262507131255219324848239949098356604870824442343579550205584041486727085612260684834231870165688322522847627361858062300216574909924618603911155903248872315503172536334765489603978567141823795819771409618813794621794294838148166607915947320114252867197059880355806763390833108986248954675567967626922868478498645041024850401475319855179731951529365587623136028958655274427692174360638518001665135968064319495830468474272916870229355008659192979317378948553367966761681206851161137326467740395043660033151176146087108229651505693569678130639465386230557246092695402210752020008896703210412205696404451260724144915678792971542270843384556318424735136220075111817337578244870448157044338550680036521186946926850409892002474047627678350254876796345785049588701340887552548714458178894018469209458997471170877162209490727959249525039577789446795303372580229434128980475730453056594315947407918809072417458048169730179997340986236428538805035085085906652441130727545527757834873527898362043909876190745949060430419148806197608777951494040051062471742778321395433691182158719567663772928912915883108441468713269017934151524747875442989755017916332243103834535469924386263085654040158505519610134383715487484043304903408738968791174843959511332306719553882779569991718107748285570646285600566014887752590210294872945786832509322324927788791554631283772659620462467201372931018520925108750396055678019893142104701573114287985563630157478027161905703703780792018751411584605818822929305504451459088795379882362638309925365080341293740840890200546109700440296143137952431861738017788695641308537015318599357251454206148057930260099234238829674802617116739225361150302509603482687985760658832770499678152208405649735205474138621412852382050567878246303186487826589047982637360892246427374859761054037323155453014323673064459722387057977345884214419342251414412475848179983713492399427592616855558319606609050344732514994510574298443557481954427207263003918524917027907433274019101602999920426693305739564672280875661734667845679901204276708947894637001322526513262025453676142106279309810619532028914106782886764087739749413405703673899515404449625809157965311928468005059937516714162398637790190122144256571021946512534092532447394714741726189463833573106938938192752099094983307684027295567909161075106550979264233968188704392862098187149494579317685724190808612514578808030846898022135509876241481667593433336537379141962317167787270517547491072107341298442436697954178474221674117945837916419119839153110145100294193837524604253461537548179455121780411683132312600076848935213764975716103377103899208239831114696145316285360262876964943124601105767190008477694431152798008420269429537227032568815872655504753845240779537051874773642904485515121885738981448118756472344534820651671666358108690482443789901495957759039485737001436642823032711880191968664136638543266270324532260228155037970658017782493118096040002281889078145938447948378047648127053882594863944440436766680324703299930386518750808747596684898862563855645352239472305226624271065053516243205776556733900057271342213957301736799441794852131431509133227814388020515442600352443831782334316064870989860399768348898031856319255102442799169469162775283000663379773783736564480386082218064671847913356223377786645153999999456725326251823687447213949742740280163939848160321475817947924409240586703464489028537419078714058022967387068858046362032368437211876058041004432255139808525147478707468045198883451433562252940290727751559946109118506462387330374738032359222356408962768383551243898037398338512041161527031895116310094996542512152591358240375021858750846173793450378228416602643778095307613915956897486457485153262499094843565804561109713674478843551987640590698170921490849257999085257196096687951563782752118751879210281408102903867392600287905796328938220648952763897820011371157055685564580986439650248242472688862558737705578459098310744325976758728837051775157652037861434874301048879036684191082193973988447995791360539978551967384797247233407404677665996548383615031689878646496093151042002215702441520206105865191313884431002541409542832239525040601389516948897809910466959069964594285033946832897628183922152329629667381259398417570802894047711756802009956044973445101355357927127114987272623152781727655341611088346684743749532994371090810274938896314472575817174060286533159559546097910846698175359494472298834015962609481807475951768116040741211588540209687776695690854315121093461539184801501665615524915926010227982385591272340482333018720342410333827082543586482220971545309546742135283152520838440979875682096074074200166659639886714209566421087153402610274006507217552877577692956397409786004238237874162748725857831276981300982026907598298845087609472724751474410128858391312469847495745132357257274658455135635958078583908350937628615975647389914465277353519820884158240001822576455565148147322036312089714355957959586267887224696135557062223877007005005677798590498605091267391027583125609880828711944321260134228083986419642634949032934266953822482638242087119262874022857678557078771642850729936403409239179310563470682779732200679586303304701107947862349709029746502869698106771657062147200650876290103219988636986796448413506333068194492701144989118153722077766867535416530492487075442577223554496926832395000860025335208192047725095088929829149194407676813228822364493439027920539472704163015498525206421267499619365166897647143832369525107513201980787422021017116929120021353219431164592032368444916681361169364855904696596745608251953948637536245637377802368318224379092379342204847729594782489407247659178688053490661391966209809819083861235757543425709203442026419862185855784176013553518865233040944516790751638838572543658064129707918039775633562409177373778844973662912206424651636308618778760989309055801896645245474404734490330211435671122369454903799586168049224371548768122131928504335764892376224553298080013255725065485891289224191415562661968553924151863144357277402901114493064681512421634678751394525190575135817724336193662173985581021155723758349032408134018825796657640574008390967146887009674163488589618487919590643740003976640418068426334996401863852634848045241021985300051654515754274301297032947275834821680819264220670993065173104084692834645223091785192203666979882064734460165917635852295137142829958919872532444725771596886218352102899281701704119450791796508743356451571613693751144826561793123771277522109822373090685243257384290807896464825381504109852917438825138494057596448961041712564419565335849285064722666154106122799041356935515227472961876288120528843484722847271107004473178169177019627302344944987549714818625409834898781761545157040889550287206678964101314716895546354171551972275772627324076470395345721532756266356306350024631551294733219580650741018155114774722811020385368975251215344010953243297345109226624610340884533753397148742246712491656628925597066567948611324073981202338220232312559094428218744213014132032484608884585795843527262920855493302880931719553882597481638077505733151717772035027851364592291295261284189932569087839885930679817129272957049283605261461433829039371478521665166172641719567947231607793104848104368193678748113190810068916769104533895544764930220382399889665652126023845594705088428295448408081851003034323475143785807512552442825174479672710629089025189386606929521128289871237766724150049216429534524345135104319999136991171299005230679709555627379345352404736193034168855359202498075892173749008655688578144789723883907007967359073039035905808897396604371716738112990285809150393840479022597441479806258972761546120446607036793024473718956733118727370633722870889620515872253616852063959957694184224626828293959518791543797623590367308660541769447487709611195085302566559713896244306422148377455163064737333044747050356628428276962855163426660641142213221609543839066936270200852892458511656133100972171821356839094673068572155587902340291680934771373063189883476881847972178429815305398709691937750456114977417361478945578561221035426585364915716287947240908322748537082169808434913640885744038723635248232206302104674438551492531522482987928624128731414589354357043898234666028665740422152278727446538990998352736922596551949885627654026368063327980399268873401324697690343205962249287418607881639641762333425807700025760489920437504747191127063153792343198484069470537177528259926916750844740918280900964776156192460366638486441831184646858271017571168545470960936431737856069379186288829844718398614096182715444516981994714526994120300804870133606010839058354987800755650996863939997253255297878105045621546476883391361340300129590383445505997534138056868440015101026239537205990378088896806241265034332569260093864762660036461079607691097570950850287465517983475866179138430502238550328818742593462349610938141522385330284745632883750525506889608793271990976579029232209892672504407071109945354891134249281180195180615795965157164473982775088730480221414127719868035846080603233448023474821786243244372281286140440030556041341622979353568096920926275804912938085333773145174333045887959812103583827957845508975099850867340826714037560192423220757064218974563076830932414821193827758192784062915946479753671111328454318994023296615857805623254182464367609032339310593619201658705702767177453907763293566314281201495133023530337587856936176513308774562408970969570746127321662327634310894045126330875279591712335912986807334048707701560603908207198427375568531866509844435538976298823646624944546274272016889330294559730747530719270462992067008132272790346525834385289554214605271075110722871036837281909380200374990014404020120564769972614886658067708341622540230103213841560975082332760400039505177299814962546116071776500623824729536055348018997727194651508973703262328904249429286068634552749554068084031973588940328514690489109632972638279183542834177901708495070837051408120231331256206706062444336815605296750035249062007585692700540823780357128567748328281200561115652518191653947999545695870685148079670496967521606074302547811190721825557421937998073411445341156797622349527879415636686402470380601602155810895794415358440273452111522818113016421707898005765172960932500036913728013839954114538349892755576830836413926985158805009046973354667848095085165659413734503707443894067303392099202020160753662161713718091470074885398266325365660361523063231567128865435844515426232651884120059103491448391177103656193494994135921277599691038524125474957222481583007574542274711033107943986139912797060167865288506470001984960155560512299005610776758085774480880704490170104263073379497674061491841653364742930498118763812669433485135778812999548171409714874809452107934387640191680404654837751571140711684532377010201249343838130927031099386862787828862798344437769058426672351328022553726666814762433586507136550761616744575897536690168113531536420721710613885475164063665245523881595443651554869624967150513825194707698629238210711433108044722851371829571168181702004167737472761906105579096906362133250948186405137846543703622510199708432325501680066329544421367785122941981228663234023148161270383747425976263629192709967443727088420270341825772353666142636860481257344281360661415809335292231374873396770434247729949458783887560857767174546325938221686603595211796565595651135643279832896346463750955695048178361488583269972597761586898419945471023004132624541132874835447571377804547164426347677056119234977518625149111506917603336089844969778824244318294623070228344059450719820309307409118831134666101866799751463069080350878001812886377433673100815706543461026388867456872135227533386636259729624145550371355323152715898654215998824416583857725050327715985962167553321313053774145199315448222565365424654526055086301820280671035217189032398106097302165009627387178889452153940545242748923220536259336670430537614033645799083220217332243410463138838577515042220944501578364071878790188617228234323814988551957129735174854351539699988157823435836293050890928854581933538321783206307182325140709935228165896079205641524944540303845449708507576016660321353836970490082049107553807219254859646161709145592074537626465411094359881511698630623177098927363730520500844485598381669503284809199146679029606750222870406413321035928717940866099814664443128538123461322288636684700170682493055069684012183630362359444333126909103146793619343576902704646296404131689180852223589565910525990802894706288103609696682040333648891463226530379058466992338317631654611707723861855093160843788755107137659359112287735181609137084755979648958395700798814926033121408492764847047342394774575390828651856752963202227004411139806478731386947571311995423772794047510916216049469316733360297709653316064204041525115684711801580448006402444489243609868414204526151036903037497937761349316837154720889057007477543144406764464792279884446419059497825246322907443953308713199679288586141204198885739158598705376895898093612508250377947048013380845829146707005470689748488814645723803694321130253426623441985255328188875783091223692602684579799270214649157601159948170035596656398131420605293135992343382060468763777925625507838749502761127055948582243103618254647906290454937044951400671849651797286625176237882818349421493001954630412970439211526910185452933395142460771256729322978973736273417524715591789056427544946590075415207213995984144704798638457859661011346449482127060623726314823833986927435042790773999511346365699914929141969070481581521561151415771742181031742542234038231800899056147166227483383071632999769591696954556716461789089004065502958589098826009946093797205055392859909564821189955816667645796018711054919769300713012204324531915802486458459521123833346960799553668529232804039023341035233043614406854671852419276421729888046076364093078716720102937927832718236332292660485734493885283139652519585214598007210365702003944676646923030475523206805133112899596632509122568659330130664416806615602709334053537169492976034359000060806827789457810251565167119173770561803929465887276019762504246822688334168232906186037554973721411018124288496611555014589305463169150431933474777151620528024957399365144791455634256487680989703813603467699034369195770819147369704260534370095159390114101511917741153695031908295440670767823810483531221488529916481727942521626290327471782689392169466474248743713707284631352978609234613442355418089646575485035575005337220600444491572185334165205760454250987625447387369113943511072559871498145744322935946645181711125916074609345834941229027397813075515693819910342707828584479245480010565240371850694176892942359486702312911768702659446916580666406060896433571545707612759411978665549204728337848621907462877122491409064186066189421741840807516095017339985139637857365893080863161867292285867807014814899617979113904243810457289919097874153412799129190103808194774981052197390754855560195081768576547633073508703829604503557945819002894487799295186046175405773429275881679988828147214550397122654505469886961741514918167154497421108800529381962971691558736170318600261099924847788093189227215226484371560826442372736596095893293278968089419380647323544490600431909211942969589905263278152549653293857984820690471085890485958432111271673337910889548769969970730507864842907960299514571098118817541402595481938883143054467627846917398280305802789824104110489319821661884422747771562706583391820350562764608619604549641212252956701738530888909270001756738689484551372239929730693272263124471178478718634116685283808926524953221869612285260920047876449886383479799510725535161128176474138677287130934005757013801690546076852202171486976391938530232723616178036585046717610664017826482620289304397148363568773833787542416552532552541589420770216379336971979059032912888345762587548612879128808718977323391698222187674618599856053745307774036595526486124309737237512563176409647864389532626055853223875918665649891513738583227387298941389683070980347439651108188640619400065910109871410263977326193967446831961725952462312649890775383578835661687298579985174412289885090567359341014715375077264198562322057370756272376614140016359605722832460866437566783841222035420944752984129784622876396883238691043125451180902267350455922144619757615012605103992114228956305403828475704333029210565607983996571606978393531287026702638748765137028255871159656083691192489960614034142792294769907762400236283156529110204006199301585187896271795814594031089140882236528898798311789417914416069453254621620726547673599868399160094419061107284960666000129803740830119121043387391904116210438304139999102493960773026961316409632572383585277351698839565272629186114988271608856149683653103384318463344261367675253570437157558812070510165024707299599598706680323861661427144486691551108318107394747136722384284987942395945376407641692147704505319999231318944477638343891793032348470116661010273254603885684204320404641229798283390570583138576680699912218263640755509012539267091820913997634296042303535402699065457793340341970794041602572718855715504304652866157832979123210786761432685108268706763606695286871278463894811754284061408083370156433645881425546454207443601923613478037339893682746974271304168267151779647837458062795309583223160186782609639283377305548835675525746670908627802182329824058446084532092224188539267959530044826108808612421961521208021859263831180480056305301890338295838625710999732601599174246212182808145045878126876376016100462050471474826482095165376073616021663830858668148220820041947294541319943311003431433068580838751399330426981599506954035157976816777714652124119417392954778027733901536284331257192510598474622173079420916884209328237515800522202996589136300468602418110365592097947024230724961452809969213501998612068625432315469096694731482882234980013857757601327983660492366442000615370579385633844902242754705123091760467939898592837120619535630126637389714520802832707535134601504680524982076032029650872257365500971709531742859959788587117688725715544550381696633240109975000578840861097064269277005150663539646851655180977366509678105521715275157075679210365816500561434047003165390202881225151565737350098947469735546067954334795780037165204452016923389427302224636639622940565706811886443626337832789608538679998187437931227469960905246374274431889932230881813475637892548184656277577626921667301191240469588218100646217323978899723855056378083804865321610432612779318679461286303354847607084478512288376872362183385344302051311414307342537979160773157619045961514808675075961460368658413477160409063267479628258633254341227811399203977165759678911890312604819679115631187281038929633377170543461730136306965648424844851485035532105463127261184568554323928654928597827437099149498826098165525860388475322461275918028466136544928081561091673791371459390362466201336198976568789359098608872751868984261200185149636421287445990625095039080095393521303965877632042513153938683203235328482859754985000393112649851210378124366963143713878344760029033263386727499093032953094961429116055027330864918352425326528748317440346410894598910237894367663916239826687818443110588263296657620284524399064145903433960888668300283433498579390709867931748466389533851845746650549757586558607152335582881125890729967913739452967322886680641854850763953736995018078151006029063703719120256356279317605789830779215761388140662009251883449608706006406112230896984790168706396558789842558751722046923299176438276479073432322970991060803763126384454767566244391309047057013133076802061564341905364423550279846520281409191010812336932445436297103665143848531759322482120961427556462554089512795046975611550433648216753205232161950604398970355779027111077809922020482246965903009125894889085272113253582322003433056797149442425192713625292301699531013934557579471896666547660497529384343613635314446485940745901359543228731462087731684751624829944107846008296744549000590452950427685845104937931486891751723081342924420155924357489838982569186669652314262459610528666161744719422375829987569471975381207777747618410437314674252174843142161687264796791359234296419180216387796046082644452584816565288252937778072529638256212793809244845718369226748941850991205317838054301796726975233072394478937443244849610285429046678948025272556812262915464389012449397160574340042181835290462882044343826848193384333251227302876526698990603667107805549502541921315374396456816464157519531589843708484213960360581443597045111048504398949855088814220454412304012711547147537556488125838916572428495664428791889961739550627036493110059331802745452556446252674752119422204995264232144773280701700826417756917058308598161974259848394612985070698921568069111172038918683001334054922849204906909571198281655510028598947934769198406446987255509814081609743653030247203071784212054163990588139730197283036477232079708837995852064439098047404199622149341766153227926423498596731746031501865950404838247831196249289682915864806379780181221424154603424908407445734415074468829020093410022241621570854139710234680911694104318706570733110992129575711079089106132885678475003959669042968472400233250249333038510476853816834890822097630370275221076913978776617084382263112978060546662076647304819035082928917185353004312234074471411499837634212002558873751585706837550737543121484570838848798723490549942670885445000256735298223376381479096831714817973700523920169043016732938430557821944306934934450436979916866233774200049161699856152822609935238878923233226514902185711047701772540225697046535318642251585932420923280081017524852243810452762988534461199173732076734360857222298667077967195559392191038537974292134985488353509604442072858710521023493697609297320448553060833293589526895020412597873759789440920417305600147734162721220069877965948115994987628861674839691868168262327055164066742657846519128244593163684662437151163110752301439122683282823225822925284732872082518955676124197673652098045395341613855404682708802644566146561484842821700422042803656165842089327863234875902961201171188683282852896624182355057058657102408065498949075720925933542164743726393131320804223567926111417731300750270601446879727294441107826894255854418863620385735255015740797541033479730934036171654379801801150335721794751254032635023760583671991253573678662218226807722439156256618576656275983231003830320552089864233964051144741935864183962845634140751960910844374629257695516396712927312706649600355488056367746826137524518459930706279477819521019717854741310571267327635493270340695897698756260887570473752912656598487488804645738598876072435757682316880696620515459903282592148983645114219191355361036849999577290191867285811853275226307421324323860381039417448467095373016426245209111430449057970466492070650331343944935526337277900624861021537107160967293821417345982858489427943586600274131462004666494942328356034053406914599922663384441914496989922357144458856924904010886831145916175439106311877769002581951502931307806595303208854825335505011863866647541175369603241088778265589535751606031206833297827099774981534572222765929271601033896151152189060403205396770810146210588435172495934703658192363144145437709462660251937079077878539116134294781389592222463915922343567633068629668439832662741867247805710659759441290233555618236622763381790518786497793909459036521653858310741917889792721442949993240884040294883183420025914162979394871186198993600374542167308782244261496165764331287685352129526231315673857885016838240484895460437649073253475860656284882623502070087306417332148718043812042099689416614615283188641032466661383903754455356690946853264711835092822922892467709716298104885227612396789006608550734231593851129765588546027342838283124414683859100739848713978161709733548257206539446156910594063790063042824167645893509043310321041250182451554083109683959099329861434897862135000982017559824419656743920305766670024362911060535275865801551349186873168094106232122919014753627238076344023770538132515797289277753044556871864038887351557187864999193950179269330165716330201328609483291359403510604573392945009244279667589729856193666127730154890319854836504687327947217052754925228852819307774430933863872170314514847993075756129438240888807023111158339052318950373085627615925169602500879784208863192539328326504782714763185654215079838400976841730735071646530004086252288952741252843568873643571771568373746103743916225448866827118270867953553132249062766703691628036802897801118238341794695118522343440702408736156011171920017223582926331542125917997438952737192926849439468378915791434425063479142372305074692466172671190594342283220113565361492793847072635875029195593118055176371859370061078126339214117632859578434101410246178324001151172816575740837935092465968686541244252299947227791164141998336100284848414945407466651092658415752186804376759764813585778605348685050871452510930795822876231886626578252158879009273482845397018263322686314999041984471737467304457825394716417272198114769318067206512742799542320624362348610869543901517743894611634531881745574372960278732800169989450968663979261961395928122340288811471538788553913834818764999597474890563743469163361975960002963713328981159706482200678637656207762367844304720990939262445045037353604491858294607669398168137204478691890036089818843024369928938031193849653224224304798700897431108913037961841285158969972651326196473320904384462031351107254148132316071927058939548075732255472723466900150439488906709102802262417676341883325862935632547246512281202713099358889756461495488015619457028988855547846727563412986275569337432594388762317115978978932671167478780884307414039847016259306247488964725305552798007939936053042888423462427977702000920553793802657061348007716427826357740834622676350914067147404718470126572899248924684019182234720884287461961336248101004784366911660854335462349060074280164576292224579699136981563837052910689838296844882776069325484933931536235633242696341992557020682671512889518165801123330234359109897539143958472263504009678822597493053522599724061015521119632145352054327272923474188420200124963670464143123471145512675292859259211421081476240271626855484043902682927050852260569926300413201382046215796230982149249028919618576966513286467175788912791129863591609682981986647613238326264494551109335823485474774824149846327096688879868627969911583600302900449566333009626108135272665953710627500020719210342887189050755575262723130292039610581597962725370219785754797020528379324066984461689430605019726157479226495533918928514066201434962528657982513359600751403240881486129177124098963700148042473211584209100320416576950499478165925920361913577629854906279006124918707641959769719088502078498893206903082781725800470870933059944203018896783879798824096841607677092545711585131128978117703546197771100001711499507621955166058389929110446859945757602572605329497779702471379093453852816430126889834179684556490853904762298194152212173624971170756254861932107800102011830286790542150068239999056812057892640928698198947709948218038234609141030570537759135903416541192968152919042749806516748249646484426422716954143906781912829164231385757681698744647977404073320690930792807950850293269253197932522897821673808633302398803546469372242157741208694347583710736088159439503650513368466382405000154616306398250258184190291668577688790170951540152355356123734086547238374714647553286977293229749920942204769731138612779871580957402677716997048671330096124715169770323762334929862652643104334621828962044135374447499280147989385043558572275602910926330604074931238995889203031862338594145098294289849425835805226832036649614194538746390127595581307597233809150779747609199088683583521708747605737102594499033338691375295664957955357300558930177573957931740671760172612000069476160240292251888761497376493844757736489275725383159029037241556619501932414109106907843750238704219917248674165799937632597923400420297757184047607408297300260966598791225057081496359985815585262343935899215659400872948406944857447306315355918055657101472553804263189901062709388168229260160127306541756831164526522552161682099852579034822060545549711911042136786846555338802320058627635604488416827194410869651608252324681932253504495036940451118202342590878990603353565238814819960288581646614458482356625376850879365058663707982358842277027443508386696970817190954879322598430942585153045991747418255766192390064580950934349775816767516909449396180844422903245703981516522103133416836910178631846512908340079095034577867591660725628672952636718735571185046119009581690748711317979259920356476587966499122419116575132333099260855876080309464826530328257514368384695171581064107016518397248137766313848075431750106618757111127001993416216493540237578362451425339128088039079215704929337632259549857074612557735144771196792426673441200644699579320562639085370708941808821268097813048493291499846828744915414779166525390968668828935648505833304997781308249416770996139264028524535403875835549761343906017143416200942824708911243849577863805971056707852824979093194721934757748639997289296601453719049518088609937778693058524425627708297237993135590996690892224133628367996516150681717909716330571533017818532491591271451907173169895889769282881480701472101584566875423402609004583506206411087698827395433015237491768311849646687510589687807148181003925752941872094887755626476386040640230537980130746054449814073894777006650661612124903803350697033769513539886370296050379180271902623819070780199334132533805046903686150120999594995701371093347880084774947372703230467501262466917318602095119908134590144433544566177968356625547736338722890488854950989743761990834113820031491650418172298070756559993190322531634659260679742640182047830024722207430942083910070702533560363737372511314497431238862329849858812261354406226873946965052977445570937729767465212679473184664850469531476728873821164668224214879719183775016986837296054380102069966083820972463523628216539164796560354485730372853750466135592806819426234020323911557252627507497464838627338987533038543521989742812756899413466589217876012715648213708130461191370763477094905165995103086689060809970982144160454680994342538568405152342261518596608396080390727412706323561163080836809572474599932514379370756309038788376883299956315184736645599922596248546670468445331372272805858043667495933178845610565929356120318892839312241603989185610986835786116858005116583881329870553094257000648205638202162351357234551844258786510883057595191526956953597437940949484222687809455326608120888842501220880387713699029343663055803608107275759081314520272985212692148775783806384996126885310599636469656445322309421014389304591100533380049640463340005608083107039887302030285030045593350870436634965767885035112553662145281149655560791240683774372420975096636575999572733266633409831748808394739966723638605928630600149802816550044184750668192665099803944824617502020888198910258299552035260368514630141946920643863977769460774395400334892264896863603468375673335794953287374058149388620500055530020154748592196103796169273801138652575500352952516315447613802395300881161424329847649131478832595542423346021531496766135719185789459732814453732592042608546268886834311280357907733551316897474101202269744081794977103901024956457163144655139265272114325927176680194079057734146133768668822337281305880517980153041903933235592453539694395909088847201293538664285585697333845081054942384902273388832190241622425299562736640500899211635584284336986992052265415889840465138061405834170144562759816024277212265069994258777698919316089884954706841241195066048594282588970510640216730694396528675838346058146796536423327482776204172161340668234555239283334337206224369106785395585696658413010680740944902934049337987842179376353643158048987150693921171251874926677045773627399719398979760744121466048345048137182862432723484731474003825476484038861486993294251249728554136253397446166651136293744099835102694045924758370535092913042674324244829815148595584114982233105056518947731772411493675585165561459599395440615754397977805718701864779776176849276979135532871760886641168198735124577673445223940512057314074597145257507371914555235923889490539933261409202506809483867183067484944340898396724821036219503014518144868319021979089066450278663334618709204276918700570715380696438161835478091338563294357690375868007440531598627897989152484848697745872394856367717176811662363655210004709691163547650466058254135218890072161138725902913798174124128668896805768579882246339091800699696112018707092826407062963770477137492141853013092528522972116976556948858095530267876221923549280195848752977123561812876136313437436951473058322231488434804584546983050856778014133209620108622464773625211833513233177520565965350125675107897314994790139456748669925579987590834985052567596682131486122425624580225522159489482502045482823292795936431878497782156069740438774361886985585214239685314605657495019784307671137874532940362778122436481532615298027848813086193741495581396563698565470563245794520557670920661154128910375797323546049729126749107318793330741022177650719223659773860743576708473701761661256933687385664265971273916641981800128750326527605457255524384665972396602970967641887273782594841617510938892686926233170004473358856124132598825066787695624923417262469324575779641281400050108377419192377101972519713291460052276235696529195582027172371574244298668859281705923582694494743546141830260539000945664715097459583612164699845212042103075732899882098758982274418995460553489306651359014901239429070878893012192624957898806134429114424022781839946956164560595487752644957564809835013190348199188971488944384421475278919853642590044274811436024482346889063465064565689940302576181534872662177706867911080261257797551392001108684604948937408808290893550219354585171269356663418023135397225606780543476040548650290863719031854215379570820175685300148891998017682337609138595260216356322830984303366832505615555811475460815421605270068100215443766904337293585761140525494181100014070082678871553655110462718762500915109962279700116113952259945367884446385971833065084302425059155672399457715210075084756266569199603141127101866930702135644878100434430890554189786246625526956258192538099456683315435009174504818631743403363204942772773452932251613756648419986703314589113431989350849298958881132562508384851037491631370785657461826168117544488709634981382404631590405993971069819607769639396017303947474939074947943741144121621307275363697699835976367425642100425903915931986075843084409944225332869287332019540850435043795614989291552019795649108787144866707098632039894912620907267284130671412968084221324107026105223512762938837653212906909347158793097689537885121424594747559889679560184182336607955732105086661694239752296800547454757915681376625023657426535060022756040738764026969575655624030337833872028702484918924697730973564693463054130643309498111724096128647448398281974262042452096994988266384878387126367356358171681882352899743430313711853578256693950283194982627423286903243133665465838473870845786622298432038466552349622607337394269235415414591180819506313914483676562926687282196442988190623770377947362893901884787568876072199993610862815277888886703863035098030255940172107185369881025073344821153610201103696510785183557535487629368686741674351209971964154701515062441630743792452525221025981359110417401157285856623142505782878929526706544366055022218600268902809525270325524366260882787136540039717617932341318115153002455978543563239119533109891542590775449656094298391805752688539143858700502812457581657090748038940603943660655388287451152999599714438873213678632520755230772222159763963682355511125630983108853625740962339373692866196258819906555108066994033767168552531971046517861099775577904708328533354893819331231217147403985076816653812275577223038506540153663634601790855647619564283212305030229232706125404921834138894104303692998059823588501262155887773864325275923813813218367118384280180417098091111092591171194004099083427807875756332718666311842794059270890200573567537793630893333511481840099340742080539711728857004308694420105346027108243365938150746788605636807837063856741415049998338439834645030873882240363170757300072215526713116077475453903199163662210156202601012844488788733698224222148552978086274064224252500616080600941097088985644484445440063616020572805085125042907129079687389025118410173976338112048015289420563199222392064503874259941142737817360381075590532231648963564234845000398279318146759430526816038255461869771982642713555816953879514553978701012860291138759806813708558888912858400785137396808712662727631017529377011651501817350611788583813390702943029737182363835637336040856296171980638042019543133144228077268447771390308772647025540924236838980984956935156038156505789905057473583452096510922617755889499207266264644575244890642453439198900039495454836021958196146738789579516966073767797165977023213377106975478217766091427883408713139964887514877636636688396007465283111904574517560609796076765881204033956967853512880414016145649474202793474857181799287058346101358143869834326875508049740779018148413616088695305735816706189193414721480299802371020314927435838657736003919037015236260266610378602946362635654553111227995271718850644896813941076621949588369093170815887099944470089180585517368208933457064347014903641777761452791750957986038994440426663618011020955939171894969456269216329570130528348190982076416536876413828646565946042237913954686163154954664007455108985593641815192898605675989778316305405748215395501700418807896150046787095211558136738702334806686676435218587267289575815383302789152570665490995109723234113491853896496181069591571841429387604122799990511578624597389508926158164458162913561419987872862431998997694042033547148177870439582580568829720945669770079402765829614681986183687244787023277679581467739587401131546061717064318084745320322854032881533581283830442183292194591357361170808774824601009424665264817501282572078442863916620140468809558568026636151799546836444492440248368330083316342365530002344539976270689381582022568300568779377815419567768463612599873897460815569919831588526367997267308147285929695876456108510772312580557489412240128826819574340303089576412432724687985122210033152933863438705677791382405165971610928065790056396832504082406536305099145616819410332526615045749475609258041704322016009104057556904333946826063420650462958239165294388177672697922054418601793975718253958536971402207946988952914121771785982352784817878756727416428220096947488501365518485638802540978663450125137137841701664788004511043349247617873281048724790440306273055389883029641058847879141117956611063616007594121466357403136179220367464386511251644651069782107947261221685170016840569348957848885842574855276427283358370816483594654901023388787733147917018222454105962673545902970791465594512043735059810154484657649575117564809976084971427303566798262650889047497399128683785255882987589339513358884771782555349015777563085484924481700178898155113799567599541968341025112059025746581489779005577226972836546619662518912038893836083888570227353918905754286829447398214459629982132490124675721894825662623476106765105272960493372839741954579545906709798991201216696013393685367315589516407463213144642872618433385374797274338434835722612738887473328636872225508336519694129317154826403232896459536438658916899173031715461741879374548741822232147495979088234691337068918069847593492763149883259550194553712699839675247511031562083147875178927539871332679965298718044199280052180676538041044530755923446191866018849754162468927791798663242058664836670442426868745350396105672694616310548773248532984203732773116553195350354435526937800330827177212537478051281666466360764370277005727082714557904972882907772462374914927530832049845731602920905276453447792614688717833805692546395461690065883055226747624825105831629509632158293223901565045619877951863089517504648935793457478764175959754497125837026785314207646539228908617784856198393811085895044403407564091052718471894577449942265615809934441906364337253345969920051049936916220937212486552726407915379625370281933258417160602427727254699962578291755589348845448137312691096953237301961124983849617611740437871499078076262614227792776599746391785653184034365215541194003635090632316279814257477367685882801762849977669158899754359897051918174429151217045739799406496175819207930668139687138976079207641744115493356737418791277640428291186437416308200364035621915364217353460702176217333388093634698559909320108831501373062250589590578964379467392402831151971568975058624122837397062467643147689213214305698791228470552828140957900113930020643331847766544743798118816069615468504327517425614432374307356337418590055344263195641591400588446932787513759642931821958210189715789812112749938406618635160027300559627080496020828788299518775347297222758763919813188689205035778030593018490819396786487496017340567027613741153064918509052413199598989447636598499905420317052964447751609845248471303881487614070546950967987648404199098852178200487912214638659165260300419084236035707849926497812784982438640202588186942325740777710531049574813677194184344833044188684883662556195874246035630164856822208059440372476653359856575972000475293927613632470597298222946654312652475469020790280968586182298997659478746927325677770332148561823936460240596235408741838610752870741352747281273515156578478914320795650624463280564679910186281196788035839780309106989702114680873642185955014633459451643121074375862909982924925547433899502314897561424877161605178015089229889264004482452294068701219601354971410807703651136681222797987692542899664663305276718875034808871932244447168660776756953763850235847238381527346720309190150149277464477808443167735431575202499419331771134198089498636977232718357275717691116402739050351053589393825581733570850271182522369056974786540246234959963577384177015876608270144782234568418348987844402980131873971097912061982538869901043267148777280973878391748047506222761197878181814154372082644502186611562560523732950914994838051642107965007379888866761701849773529866927988615694135112361271255120500633350269230830263355467466077684985129156938432893501482392281348567563019194862532978096882460116905499253651133469716700262269647046772328850649357966307738926379587448218986964056692337038773855521939860004174440080601829436508014428035770739011063340930305052763085951120446609584621629395126098340652496719913743236510533300758211430437571351770457222704115404461098916446851405397694262706320376381431593061126979256634069321976488375585246043784429715701617137588913050535242454149761197179954182171604276722966201929002794307438725431168128481872151120987413992112872458754927780846630419510468995074441024944245202311092271702331705841056856790006768466796946660813688094048568724870759048455786702212446654495354063567452595297802767600522225815542996412098615044281581067168370266977195028431378552910937347077317654556304479637885975404215724339065841380748142341202016112630798665600403320590650992223742393857757120079005708275247965237309218601752676250571983327090202182576474837915285581188242281613596383385632272524505243495750843874324939992291308217209648065652499285090065311701613492659723983095211783748107629168928319515214123848454494034912147344365754034865346667876026232947760495788496995576352735115302603007349464987185275531855060186361050185424424008794094946837345888395579378077149562453063225785610372759706118969663449038943235482511487358483449445866517959519677071941315990103596772281092009085593263190350793019430550382091213880063298178237258386260918134189750445880126880458276154283014742153021912398461371075032221450235377496371645777980896192588175771147751919910823577132098010523620555967268290258669897883461245981902321777709672712629181908859971682592327002667221320969280184264341742500740695397674774772337169140539222374212767895012348203186177351233539142699915854239636788883163511689693167641426616576412782708265380420869369163018007962057549355067620184723620476905155044184155607189356599855350586063862400816014487934304322490602489352244679758731634496074749256084891375274001111664513870166753630009230743591083877416657710629350848876517526176012294171294697910418451720638357179462987953369418540932360486647325940915953266582533757372723476914519017088463592097341834063738357950756087638154801357587713686275100224851373547111281250458286266222220603484107706005256681028953463405736681960415351686289934550380528022563321902606380678551091147791784549455346212227296831235747730818058221552156809735142343881231810357440932165179340453629491322210119162331672960284024828474091177646693074380189506233700996106004652934890209377021796727967503022399802870193276754328314243553113513167888567976883842073266429021627877569287890189635921191664143489603067017943664847715234269400187419118634480176232496431901488331977449183799721726876194878516757385183131770176258331110190400192335701767547052798003600281229871444017291743518581981246173787740981752673356075798079535532868812538234172932950496456647404828190888424186935217646012492742244691917247006620711902814618422293211168678015543677257830301954876972296872383583654331933750111134540797965242243746796885696255443204092689744241518500063629459797553966103241184163023362740550193635411239129122239192444892381741568954856916083356420838349307735022957896299028066557450853258397977949423783598425801158930664706548725289537863337800698742762631499051779946163046169314605559933780292423072964461854922941675083786948959996116560973598812550683790977577039191791642377912968060799924453133702280119718864054366406518194416319837234364140729574822734138442650885023681785269510298886206454428051262748359957022864213149287664892036455695231921529323227021284295836266485011676468845637464406723307176726397601589528990237973381098597812012414608034103029964020636106361575474899279429684780699333009214032092453046033308039793956223633450119161359882670222318403757444024344797494566828511990834719346618284365627178133569111952606045188311511055629379347830728505538641975307805720592153904754685857860469522554166101468114328574037482655754022473189774323951920355143450395258172318339999335356079390203274610457341381180957635886074090875601978737546288619012814065885020879426368650422086769922591354446616793225951770291203116374675425218321257709079399162805475722750133187600522275664427434825090965171077387284915581341988872297402789796235932094250182375341777373674847410732279333273480269330644036569718624998314401528338010277902425819509778585083177365664262639811033608245474610493847893231917480565124886309772325492536202469728273870810699152123740245951800662797415800557301120847607752946633492332937303909219954534832606505451590879543696310574166332826241307565821508742531958161505368270544201853408310728788373195347223424213723200227815143359892801815984143901624363894251849554266607602747606132822756084604696316450690379156580456689718372896174818545053539559294333416114837195506706322506876156340550467034089192028069470967611397084223071566009795934101522716152399572912313663849969392514669017722221208142409592796149015103668131670816597435202252693588807847897324834915669660388257114841817335569792031819820233710301396034552639363276800518369248872439111265822254599378723259225014909851109564073594674287526471622656605303975192754112016905335174735716054741148088478073819714082156723363462359115442132203913055090023141009766996345977475358979195220446330189284587262455093743482297931332838687064384444433663847460245677193512634809895473818518440343223843879198215038067711869689552459771826681638833810302212291709939033957042186226153602021312547542805139193449736723713064060188849773978810716133741932108827023194333228646179561187889124336400711516520508324719978376389469506375376297009911844250921655329237793900662551209624300695867464349892999455920832629777406092571287384066751042129760546740848153804950963352868643819246263892549109545828683864915202607471731357873631072008664561543063310678210467112950188203756463267992203545701102372372428026449887839382508454594506052653836651709136297875954558815403629042264556963076343939151865990449083067836168115281873393457903858476942643924040160124737374833608688099052887173359600119332771645617920639647941894024700564348682740394750478056301523695165013141356267204995804250767175361124090833391215353822385051723528646139713830692722914058826105900437057763894457809191008361331516593267967416654142033675275854143891455937413330842550225893926504845067558240242808554293315870993554260866483670268561714786597034362173206034266260811158021439977403732155167950312773529622052433790375066296674383300585664636895622798649624690923482320328046929771145589288264979462793885201539748972358494482256839589626376943017221465262238286703406388024198688701911022630659910365933063020085023520485289973333623337169978204935802322620661112051622393706984003886455086317262330351761145284719909224369506787574590736273339941771240386684117382037147158822851729189007935837542771465968054558022702702282283687716006264465172447519896639650271821404033838413919352045272295557590640501943158288501480465847347696021988540343322159160545384277954308020517738963493424324103312851527556033105199873539490857689981622338729622605019415393855739959794571684491060317880476027470841383544500287913959910229753212780445370465861224382419594990618088923589307847827618208171039503527377894517192341557570427060533563149758929781109677788767791423987208911576893633583525756744689055086342303986596904823127334283193942662903878034771674633654997369133360372798509383551790981406209747240724374506949180531400524574773273319918284999307501781244898663125437283277528124186542361222717576561753247839045193133142732088369687676175594905055297517269164732351086346844585281423832951177084520558596680390212406047945429497483530111635964539309697432186782901858450554850922518111489257259969021961170251138866126507197120165692779373057971051765497192382606474083319072095354569229984379817305536650193696182850720816580230485792073409404673535765689490110157916724341246502263563578166573543844298412870894081142686363457538509637500073489448995031274755752401531907159438965495398741308840540814977039462159889722177327045080838777044967816731336387033455093793508450318514138750626184631748296784136714988845999868576105110737372315193306292239497444009997204903815377400711752524776663026262901834037071195172473900621944555553653196867183576308143245378517435746571461820853722911087769117176074982742695297383702770072517793233864705040313152605831557267290903482454679104764175218433020663174746703074771789107064913249904137467815731154472636921734013181343843040106743806583655860031369976454058554510249087585363262581980346067070178378982830651118499901478103009416306674279060949646038981487668111259515759302394141138583259782225030147107083070075827947956129158443265376377229739346564697222501685758109562716069622098892148051520399356559714053494351425080784019944007937296632040023115717626959374092014019873565147276932660219517130579343644736515231443604367988078579736232276116325094891735225424926012057974759284395737131593110040649742693539647331196263430304258457986041974855833370591047594217795428714501162658645403306922832003834451259258108725742224652993751176777417834589657478416366090037894715816260446155316649755641923716978061067819632469078419274071298190334941802096715513346762753719036938925584646507040997216290003624913277123258417149865527569795169271855654783764258527991756555180412497551722913171677658676910061638105967914394677051565148750261522794660030593297977308272536325665729654209653375286140638892549080920031307262148916276391865721651564027111014571496648306689214104813767954356444738731103086959095604597955057839250879003191251288070526170069998700146281060257314252809436410608484573337281203936944201757012028901164151737052738065762592318351821765399636415614656890267781528400685774192772596465368490061947522371944488117466466899156060937024264214085914017299787391955298471460279093498956553708044744158761924428248116356279343600523738591735610272043128261317404328594299792704491397857530694194629520515646120045729036348718930480254800779158804978186050339076293002076369557771707320226751797201220779127500058369256093535876528434751291834961588818880817097439293623071851972167936559674902479356833363519749962237208753541792077788921267239764834201735596058843285026758121119936713041629666195039811079327209536498958403544529424018643815629094316218677036404264641508835904706374426051635918537649348832909145071722225894517862385538441173577309684056221440599456139906905937930997789674099145353414949190723472296118185819525639467044479138500517729722719616220473266464839249096523537153690869128969158423904870754467364244656169590303803058096002366250935083387984204833279156193329694035725482482889129610411243358657639479317058282735053602387209096533395613768881097126213556269262679526482653224162870534030238221523113118685136759033695744378647846873210084280414313364512993683768962420123216150385034974398900636981356701735981848958766028990649575062535184355304443245989812821075837597578530755595032665886177268250662305410998308178714767719081510335680141467175962388730179595660321257553365592858052391843907039658352533852467104839333192359527940473056764680289791013605274176120853234760541774636359353057954921487928267728486778300626652812290643052976072082153863781010583702434579092855018155080236074403712398796017826015923530226638142927449624628028754446191104371915390606663403739002296347402692509309547021011551315811747872818145936473406679439457655563570463760742546355656730698049511046101775839526718453778209303789779658209088987805096349508083241301315356400093858707813287635035610394330209105414292693400249559503070966795577446658096261669625118208324087007193807510680985335238667802376622961082305911736431810323487280861495230417038490460677622797992009014257765554519890736554891859565020059941547859371033931852072444695744607980688655741214675960342399599215613825889870070747878479351442252877970762880924834421734215343472903003445196545005692274495453962006480897496571046504833051553987920370596770795760961328402472576551437091657636205798752994009461484816256169661218073745136192669030809500248418254642154676797241478587381009267841253684568340415386710049019964978913401620350133371822337008344504371628795522550825557366413197230918709302079295438225564979857214348712354950215005039538835879236787754716294352892586471153635382289186106914556748095166149513661097498266203867268987821827013476279644261918728616192260389312552888038844669954482258495155602652408615630798375539018772978008106927953962731114936497667035718571627900764446355972512223626827650670637652714317570660724875857865945936095063993812836098302741933810984549804720547413368032135722381588238210382539275819748857715019891254467586121211638604062942533392459764295347145367394807009557666932217167895152331776625811107510238770696792746992245211757421462732433840322685669839708188889321132809862581171647829596941012298130618716294181012442308215196071847319970256574020269587905978129518152560081790821159838676285166667375901179167279438569317572968432089642312290466706525600834469007754251423501021765251879886763643137496128791449572169276680620350902398396906970454611870325490221319277932217984824368512629169574828216535230856531227303754799912130729720629450402620095599773903252555635442249253996358684414995362001472829303646253706373506232639776306568347236783283046000523239408792027557667518626039570252181400352973102525944751077730632661963654657737654873004088553669661879959643922315980452871430641615878628275585205454447626354726095089420114772645549449779355208339708437505684476710258985206666647498031110211206824050392547630772877181846080207884241993794885735617054819386010834350302774455963944654846725373821305851026094453537465138386977156221875744756859773133127872803651353186131144429348231704254499716499130615878186609314410418893069207431629600056541754202091677113946027675202986296110573279399960564302926498826611106819413872904323720735010325170041523517057352066877942954982622693442215531260969675012326996780736995522010080537766070952821546440310169006403019159462292333368127517987832210241525193904844067582313185471409719230834875258875148046998732462050367949177847220567656291909683402457305000447664270249469580060872604982821854921946704586141973161486297064996344378002631428734996281096903898006471127396182903217134137405965260789870424167519394979748527943490023598229823404847788878675547431884832549645012891690946199717821002891489781148959016630344767977780100128901383909514431208090826292103104334231317589184884815945232956096252133996490032031595101039033750595672424449612640550292753050104298204302144094576315842121093054909478279289424451680122042916216003825399070979116462769731819132818139905518318675405173440922664167111365107241133965562527151529683559959291899556216164384910589293353809118351850146528721194895682968344811425827581792582833897322395501301605051895187352363728393705008483657860547773640682349334303559439275729226485742435472518923433858467582928283653531718555170225372413733187607040200297677075124748149717676391443563801768139417482272639632430130700576494747926348188184960367618417715265083746278206967232167288879524454469916020948622495791265968431321748192674215967307438098406207313661198280693449576192044376473725928934642996857576465001153323131536194359320534554705166772239441634317573236794741824345884523961707844756866902394420719548652720394916859051929421212980418536238051763923288331229267366075477918490579653555725032418324182415462563682457620258029926262556032465681432408818824839117375505737393263313771656895971739341106097745926311181514412670611905041829760511173828009913084497978021785740339926720187642225447178148347798873147970880743367289284514733659224841828402158157401560496502775485073041058417525997778333184963979567357062681771037863377910680717739421053866689880215846667805169507874644525174421464116465326470339053849533358115531826523897696861483634001617060118954984159999184108140700090813323702500531347364875817985684200451703294163347646167364444866612428325678777526179267355592408064469094480607527892046212605849496615167640457526462907462280645647623733000872644537690395091237688722173961076121415119484900676945764376520933263798014381904049044628129199817967944053972818063965983526186147992027384428579443397418668840990168779253203496893761655362748124807008436821199542405754118576181672346894241989458980206937835952834815998800646811947162760607257776063121215945163612750182251348889704202827518298543600917195808712831134443946740195699703872934021697918418016500179589128475455271697621683346720836273191689317153119827490543213476677842649311891144259276146964878858600209227516002791639099182419954305564434703487668613142429463505695095721622686100834234688000686540400468164057822561269955951561039853554296158842193693649824926558269789778103305682888473633107079111909076077129433085238105543122794519744676128582161309526054738593474995977603369398223354979232072216438129108162405868485232665926634133091700290274082143316527081780292136381604682965849515235460533253037905848108687127565088206144980877491087533599197972534235522334377656350185395264182611015447463147475339488228285419707174889188416827914189780753911370275691242410036730151409473181716082531078181621287353976056789820055051582892978747833253584395599124987818707300878251249181112811938531033388223215073446839932978081269370282773607226252582867841082892548453014259682035200706563817698706789657119229041691762115608730430328329086445769923719554455018326715189862254302188963447050973084128638681429383693238109142944212126542312711315727875905802109232743708871128116265018031590478788083682532061179013930002421505365526786472932204434811749728558663171275352122068197806434143751431804415552723921412249306962171224030614976543288010301127390030299204921357762359535907413240618639286911320565297043358157474617245465354778014583803814744158938833308352498080427003671068212401647807434570114949416255693206563568388924834027320379878781821696207560350848695089836355021002734131517382057083398397801592248764751432707521641665804746293650363512379931189218398204122062514802781874872035758018852098495714942414161990176049981012083454848392040454675798158416504192214458358645006876572848347496088762727778233171408767728879147469112196193859145399345151999975174661550419631700932048544105438894819733090938669906609969159041331264349106725767194651210668675169860238497439911562182012398628950998466115788602588528680372364009936652452177192888045763274910160241136885367673835258051821561188898194767277694955578217913379944400641101442946606523004318190234119567064236674520541318161353614927609845877068271276443262968647851720413374865158335974781219902292519000297088361815234077414536581222559796248448333253188513434755103772309272092991614097043400287723538121167023177850050671969243177757839184823442202464006180827871076202443459199089805394188597244339201625751287250825686059268251974480338686366593359596580109122339651169173883033456661751933854839948993835781960923954623992534248469074746631467988143058798724792848061176401901674828382405711182559600258547048820798247187730991099566015096326756580791050959515625004053027852365984714111932786803878614640203306546190123826643601555501582439141796130789895998768303350345555055248494742813232057730328527621767031691317528603287337617664045157986547676594224590190525506916648401840544202972018759491490699019949078536833116594640826010210483406724494996255233750957048109022750619248469529564805464656954644846228168135812097218026780114275555016443196170227246836526672041150701872511990877483670530408096585031751005756500020634651158012101324053996040086925001760006696244417547093336451053785236306437513680768696198934634424756438362861999392632317511145509363485534606594776957874071113214542350077908593028358966955016040560421694715426187835502588994971911993752494417828023813189595858870546193668816426103287376229965608113183028614881324365496283213361558634902980668021066344125611231691965324598945661017418496799223978180321491732828865153778987968922636654653471649444294683153938274069064126638547849348801241420488193335554034921373335078349307435142430207434279433354210598618904209855291771062705265143639563295832224391232899122786745712730839688751577971967234375086151138538974752102909761510582625975378533700529767980535516806877661685055269608278711896691770173780056708858334766871931012974630231203763214339887546427586664920868891321366119025479395732982071750980965815587024739902616107277488313315124075703174303280908429399198146484100958190174037844657710319723785162632675256255578508277720171279099191092574000373914516895296471273364630930470364053251037448128518195788321213069404670988495538739880144601850103418659540020297145439758255154920038703126387701772105579950653254567586169381325658344328931167522603895416418577605903612921920216974458527207332627579965779443810736515254986687649875340418551946868926328038322964788575844520192031834263143568823292780233421279736664258213190461249772259646212944354734210657977667789911557309564132116081959149717317399019318179058092197538332024937966906242908415437551831173329036857401065422527482444325317003356576982545703864091253682797142521807255808687367230289200663402938154859407118053977659831433572141939793106310216423759617922923389335689783818989635217456328113269569897233863989460844738732206811756803681627612016936453294243715807037346078559890062778152529724345914936535208618269402392126547439094958398168715932193761920569498693492635886058937504861165452693473844753227652543154678749428712539300354416050902051694055294353046192835497984695987268121598172773664024709215163066510719619750453995955611360082648150639471472120461227927137048400451977024074308580521431632964819385192833817851003843169341442677589264300239037408423749218658984015661025581178535317787824584169047098686394940039352286532218949816611841312837801886378106998077919470481465721673409577277313325435573837632602240476044514448859229875969020023003662869632040013848601955694884035060870480548395103672708989509376823458350291245421912622005772181119731578963037686962931223206212505781550173275439332245857431679197131540973332630222372862269174941966099608434764751297943277388877993968177285800630195004697380849332984955177863053447876088299063069572919301505279795973237921174542756536632249458971319032639403118036658990511149861231956056829923104075272526584261102633460755312861910818119416935737552100299227751943491260814369360378274838740997449269991410053300870704884704370339014697728763808117064712360068798050896821108348512250449582870059824624902144584495010146129532710187695272056606667619670676361330054060558951554654246861553869432321754343983330386782019306803003203398099627085235362479886174347763276714916250108394032921250490379333351291023806059247882335639945360270765605480822789673095580032479152722213221803429816169623938120733546844178285455265612173306423588501367055667140649030074686870008160506303372946923203635452351357833021715340345742472726729238398923657418625645471438310472802088575730185397263643854117807010092443134340213531986679619701145231862338952632256684843902731284474250826217760713142503516110991151292063125911240324233956717093427783000006462994526815624895990782534474800211614176881246091596458980034959235112693675916315351615477336166152982565564443305552000540726299158041148033373876460077185890892606415713734138993480986878579317055911448052920023730196734513260996669606188098433375423978387425727977722526227071321113485943707111195141999271642889256372762025552263916258935359942103774119066314720820827650133105061614822650656520092938902673024036555032606795830531589770262250508380695149549679196562489669198559182132403393799537917070474644320106411928501925728224174839392339244797586139973148850123761578418514432709607389976147266441328500469606463387525480963987713462520479108429173002031710957247205652832217328604518562924747738335687007082118204981522541607839138961351470715174710932970744503228424127437973001330944786684588133984959833677244623885335193132967721390462455998716633678165994835637716272825328438218256263032809687187867804653922406009066283123022517367787421832175167228477604749498160111439163587909781618591788333165675296058719833106457456346453767962281251240047693935495220712690785612131292633339286401114153778595997373286592573589634875677656051111343191439538476630077426932805213215443380180254174305199442944388476269451577864375315841144035958043089566062765395537469829575675258512000561485866763603528253136064525569337667338542252831745139358961928039069677553902387231666032139245677344928297909018394172293228945547937970828096007494432380544186489403796830823197088244851499594301689961475151478067574284126652399936047801745605792122074034481058813992227286812128074344206576879775776451109632089931215689903978200585345060993584513444576965159849115791432735609808389183374160281412977806771063442761861680368568047293808772587223183875058475270265456303062282007182345132197997392019497232987470073094244059342643395870137511123174961664390508171294650065455208160595073879959021596093524772413212507017266522119547060432567525893285599957495994704663155708397642332011338404107126884911923175927839184983889114519761314059804611559314150476042258231194061450082601361736807780409787920031589320412399505691137873827689135911267584338588772094531037604962892893928593533079008188653568830647101745509169349611288699967674211511806882749421918815827718175797272508653400136806550906266678907776730836578708201603485353806308423115502982774053598138767033635619449404618811863649012459524166927628834374796713889708385863458361959898513724476210181689541977019258812401292835766706389485620822984772389743557267912037035510858715003514422182129939234133001227654815618008974670585869909643849890062064652101964921926106372292337821175743651906800660325151483097965007986994989944554908488791943572475503763524216740019260711435275039178084051179100937527507039669660153089878092129370580932139021545537596090509755346518130347125659747602686587604817312148656695882026860852149746437650648658828045790393382393247607162176134220711540090752468575264104635293368548608036831980227649965844342556743640357674870572629543612288770205813685925441485116818867755091932874425330696862357912038565026290328123702089767565240228943285665654850861885030234265115447511720310245131471123139516660535089912936875715886505093198618797586256739342755011782667029804480248536349186165617268973161837996140817421497865378018682746658770914370668521996642579849935660309726499420565802879324328647194556542303906731094596773020270301051310895533065493691304097501398341441668520473190683586229188150428456375561516578543346976026003045575387967533028341293549236422500268348780242962982793169597770117118162444738921614119372606025061431743558349824231381817983900233720300533897717861150495934775170253926974413778322782668174854757757023040274980379678853175809224073337720509881683018338926539199857641978545257444590366838442748983111935849724799402306024559838879712689384092404965516532359602281122193532958829317339469524528899699834866322338135760377528617268994110099600091475436581868559908353164225650154265192301543627796878806085729496350171460440714190119358963596605500876620005085808713688635320108362250186496693716321011734292776547683997600043134226416424838408249663074235120496461451263797530862987559755433017740478758851167762059805822701509568497230613884247248918223384838425077070664971550171155490361782259296821802035657204121607298903748214858847664498796223995266334834984950491880489240026840331567733921194902949023380223680010039029415863820219513378843410127469495911922776111723042524522228119284423272476625563945639270939192376999462225067310900075248344787089905069034311561724881290217556087805619215287761683696840352644300343341213030817594366580091844041072335799826248555004386342667590478813878261406300384789660563304759556435817197033166423571524620378776839011609985169574380383707599697921313250069379405259497334727852223286045986652591744401714194697406666143693188552051311838001828078955456413814302067393990464405641441726429744287743264326944238920592005907027356340882176670423798179790751888688750408397249649874549824774927892414122148468246232503120816175172916559872455447909415449812491446984744394175927632507118926686010031935378890608165577424554091851895608499060003423087740886268688248216566236513383648550268103510766655669076294408313551934369771064200056477072963712474503145068388183929440143665400123179255385616870173743155124081162839880436279067890709747632456879386388055410835681100587090951243300262676709608096139389882281650943879370042764708184520934355354955016002572985598858696840282563784195378863380150074059122050972022212952919621691081926287043350503753606590619975245238477355666313276872549333215502524679115500164275335138353077900778889080043577099033490957970482608354313890412723961633336279585156121172149829403725150624821478051239533162649588576038881557287345878825274257528150436664876330882735544809780328235199983223551208106812329894792036602318647298383826241732043675704503554884718409259974763275073748616141724701184079065532787063866734030198574098864898780563115409247310674106110298161455469343062596405684265181003496646864607601452148951363128705122622679088320093145251067441749097478270971595710524169392753918605965263875370171728289734875440663005577770258772562699787710499348059594138284547714468497893522661308670950402920544773829770488512141436017260337791109782553942061404164691622090766848545288246668566292139536587098147416411924301141291251807455647224346715857130496423524980303773731227098537687891295685942038762112071636619341246562215153573843300476362098487986053177319423728759042910760802112422573086835937990952655748914985144767429008098558750136660717160185183264487521610795431059001307981028179242230360809851967031604919151899237825109268686319988166482656659795264710535278106228639055176177708393847511631251087883928683150087403017914636610692931248599082211905124730711307938057922712462652496165973517230460164178733597961200084969572198929984599283000010209818052041451346058112782603837160470970967418897295444312831408908500469986283542489857299554431420346219988586326636567704424366382413951123322851815754855883835176577198255535537967229043451417553898040805420455710421774482544387629047314306157236587501423172784690349233808834527012294232232348317914303931723160975234338198423173420744855656013239459789102809697086067495289843671362179795062863924408822298700050863468622029074348989523011443891664311670341878151982173784954405867306179576813050796427162349954674669772960971048488040605498736250608283128533513718269675263243861511514838716792220274329452255961267531005515748151047680610614952265067337299328499379171055861667192496454088052079580166146811684416237764293353223061253620717790326775881132947819986122836323645074881148321831300237698066709496998969043250133552376663919451978392861926222046129986838270219363992844273829089636869390531291931081764334412657236991895261781153691586983078599671499082559563164160507779792282058200503117770772960118226650482045175588467779487882045444476058344776125582759111181745303702660324145207753307741512758490849598065614071733829085331536025952443117518793546242326866472495727659277280867674164004385973630632800908486053470470146456443747133972521992943843168263964153353953306364437930272230627112509152408936843259018913153068737222047071111566306962237421167152519379752543918730737287685176709822227684925874696060558718998217191603001650302294956349254447988650060370846997633253518815479219100851574226328710691509503727280695401061396199401478102359939028969628998953202534097886684012533797663811350407724378989626092172764088968933037078171038636932716200993982213006582613870762431071086674044001142962218085807868760811516472367792805749953522295918159811431792618303504630793753779603564387505917624617109174578305131220298196520651108050632447617491644625539430505870705026001947487852044930602895704955956857631202326471832781705493466893386672485837183047973350619838367121829277057773397737044498553778445322625507962245639849139234166483946860454173042380055344326019828017568732149903639279471257326158731370675158098359981054742177893511847665327536741989264270633486660861030198089180624382347465047078813129418648280575207642666508703560834007960991906237881414909682705500870470278686399852672381442533802061307229719253405615343643344047315594500364997124736189248890154786107126762438947366657547091032525446427242764470948462114349858033610019436100925289776262246626915270074125151744476993617817422477783718168226998110172904606675395505569759013804204787572589182851366775643129928433980210354085650722322450304246476372439559161481710059301056143544860397638492424646967365233617678926211149822036601295416008267082220775244568514271600947888368198868565135795909460013833086559130992518690529294284926536917203006969210603060462479810272316476777782551961604131818087543724390661823938326011576581192467939354939721206463241642308097013915753360038173693893749989808789192908020729820779198372298796632940677307066094601882781921977978772698042501379050409205252395675148723353176047962851299044514459237686680105167841412726007079998488723106367329998929073090804304020349522363490588423046315543141408291657526216830287321782750087569662793524607794873457016855023443810273655608780296824384836210016425316736589481229286051616820401942646117726209019560232135458320594389329560870679031578532830656174957829969517981211541686163512206297760752698275924880760637063182708335804557245318925565897103861194154609678238087547789926856262714775295763436332665044445340875049705464670603077177596405212743017000131304243912006035448293194848173865818092795564530911014572747733584058380702419990563510364806993045614098508070813556983433282245991649832493182737410012395683237859354670871192579594052790157783769260177148616956131876244798262231523555671166007727640567976085307576136508738166614591559688942143343174726155899781996106051428292537373071759758449436155926670400285650759739187773213123350319689559410223557591236554021179549416606033339646062582750261605400281513242861306530559026347257088487453061456454543834926059399540325705974877611578396915282298334206417637687791208739780456802709497278201559044853618200720660286237077710271510130128381211655017941539169976145257477910083520331627736140362593267978598036609255704239754300274222384587614707352756268889001043359543706195294044689027758838293699215587874035935977757698898741702694004399920829957221241522398006064208661920579320029967897686667873872273399115840429245143907906187433127305264088108656722197007617640248678786871475011986045029616242978699221987321848718752957132833045497602518078119701008869134872723682914352518649578136328687939412852072110638549844219784063207838293648483269995927030671930887994936744909308990198345815138491580105266674034951147351805574693204628641061003553408859197728142372795270534074480123147063473984218935706934357195040976871570698495507558089282551895881476176217540279678630814712632843064113481306865121198096788115836725744824443534567601063366606695671033248596674200589034037250477897345726933963648053481836091913413598059631895683493061418280830359369119251371757824405319538961040036616978791095179800599547859724286807712889204201186517463434610407410165091964505496661945708834208114646612069661073651035495019098849409869402834924983937518260487985064982438701939913247336276179556131491706470846432607246926799786521197882492540698428561693748522629912417266724962375241140147052507498833759120189509691909543469701505008136630044969160277482960114288601869063688982430762935812604090321572972824891526468426897474588274519743798962802709065442634891021110691054966407678796454176433739801657938489013193709983016259963548218822815942196641052396273681722162781741328749467024746194402449565775480956157462111177844720670122617159650754149401202461419623956103617269680691818821183355266738622170648002339591851111198819004973149295198883836697184460066476855232643463702794057967975709684247800635469724261867835493355110256024386162317325749396988197798726973533570985067782927472879516505730616424652599663233662444346660697947878328498339369727488602131566488583448457032738168098397234883000155303020544610379857590624447866544350764606818877600377073016949322831296913956166551433069717394557347430840194117738252604071866780581497645180037747129072686215366313953825053451917754407796324246410277623708774599257608403682066801941336930448070446876814472029399579238828829599317403785946959627728654869327249555978631788397263001104059958159695899286814659877519080082720707274234829222462025895424469843898814172169795704107709834265899123477401721059671704374622602836265125431742240631141306619343935826444405628912676102151890958790445604115135509333726787663135706934754659309697803364721763106974474247677327778881379150675283704425826829448291208725824325267118372931425837463630023801526272529489013744377650538917327583699753962650402508623931009041699818228734719376444651124092346069925400131007536590736811725133638224057145913095618549162896839522453286408582127414963382828370013337616116357490482151005271482809379363401465424064810055116573892614101052897464811325425011367161249031832970855381630984461916524046308223194820974531624316380715845492565330428111444441518119596561759716507432953032079494189667465329899928876147613077834094737680242246052675222454446684232336950135818239993317984275211186199512835081954170821882341923909562083187419381113116496406628831934184788499852445149649009553289241442003470434410550042832423199849416639626606868822804934173942991975507228528687573625065990861146768528151795033743747531733613942180597579927077038672063047100891677437302683884642747420548772693488890336603701190928550015775355514469008582509788755808424941036721709424250106875064368098966203304975720922010396719267014241338470300693092685309846325074690577045697893749107126486553027546310907068263164799034734296521937396438939614507989195928095166753514041713131068336289209910229301822429096940150252051319982008618705327997918548662154221674234666127660836343118168412823832941538467012834641490300118386453328429051802317360006001913368332789387332928842784269425250888182100357303687882112247382842259907670430535820410234913678428031276693755677487422996530655974554683845140506980754764483568200464827323412448311373632070859941883778572403185461987114583712860995275175420763119346757081258372814382331487319793736927403242029989720220004586579121696089192543055986709023431148194734401364369732967993463366623968129577717999864811699460143276011860995885837926490074064618236752131779884788211967704922183378957486936538320384628674134534637875938510896660494017794675212798628865717267609164592102110240582349753887358239728771310091134058056776525546003032715820608863908159672870130423864776414376621535512400151103637210801597703595667135174213895578337853134745730516027351803245261143584268623440919699853791821742955713699412253112655306704790979204180016566718422690087194661534950536147000392512235210365784162654844292182396795644029076977715611941897616654443002690559502645583593280764985558332313020185252448797590207344288509143387424076457929339250059656641440389337301946166793594620743208963132300608731249051459559539838439610642090716213963227689490288462894297740271119958324160915928712302540495794336099198656674811475962780673305222158873280199642205826217184610495539514211763960021717804296566909970529309553651941626257803793458330015055319063096728795227220427703400689594646282324714104468277989655276942782853270628267038170664312241370894035533192510913573160647261180098292995810953486366479497116679747382859495629914678615334304530244783147228899237642581585465667770825882176404046067749699950098287128524918668636983991281023904370454570909338209652036257197108863081326730147957928916130119471227487139482821444899781094997233671726035484922181268802337671941839722949585520569070676547407158630398580749709571459673338730205003391993664027238439591659947749452409183196984572048177392579637384129240062800942808489891515150813018829113260724682333392053210663763452587648135165633702090702492058218222974653723355532187096709720787088982881600838958239377028578871037071910969579363056846022767895945944031934223997918792460455130339450843908846978633271406571100185195261163565467177308288403599753381990937876026490061572083807765164769925273902061897943934988360790704218402564723247097920502135905723400635173012749313003327455195981787963226764094420887733285278021971130815720035179750046904482305898586559265737375725145910487885987332695087618508293256263483131809573568945046239719554866407577409214659646512559872059698923922872209910137877963654874209898629165721904880455121493655392760560574660376722385577292011498189508220537212646188726969789653775466782042248926466372897162754243279139538494641175461167559961096348999534191206919854353860301831171991221347397907762190092308019572510354255273432236965270736401771323608815989024310846492253382388084983851320461589366749346339540869098549319716929790979762247537661346869524583294848955624986697805026889446732974232699620622316894724086425902177072326320472111533355749410948993343256369307413912245358847421978279920027943808706272931209626110076193196319347054677887092896704745363521901202677511288062876430419135714830189730408137246170969226062875101905601580320878641995330358094899790936673474700822776239906192707331074452728675180445584438008688116663966239765870980789532090753290452971191329848882973586172493480246436094092742847971133867166243153144601721854402221089873286038135648834338640432291195995015971934758226185929510896316578251222276890617259669555026476952437600976868726662011538387955899876400623195855861243913801914263805686546475587561366467385606935376543519385990750285750211241461732589029606885833366834950643101959604652318254908906237495018474645967114070258659966686699162731003832888117544090526007778352058208752596019459422141571400077867397923330668058860643645650708464173410433997662785207650396389444575768863414213878020116477636298205453631218511229212040044111680655051753811776112110771566956234791514149630989117939072200926341220836206627960648760800992718401810525200451538569390214477057833962818275469531446288285463871364147756162339780629774116548096768499226178155673952123381790716354615839362424820546654833489197946070826133158391361187655105607968372231542389417766144827329765164951135190043238976777691758437996545135775231313650980732810770309917969737061594954021570629153432375837933798086168227050176908855269246858056015706071598693306982188168622566359450857685558047994132833513174514490857284810789033139763888697617542890746002926286782903703769767198069860997020667163594141790242734402633133849799851166875336620458810923128662157165766162696526562401619995729909234681479793967339293405630984771123226204224213947402581556780156644436105115194982542252300764924109738916218283147990704307674318840017956501596953411995699888912468983668266016461775074228887872843303302187640655572064267740859583588831827140858784741268051082737695006802823013940037251288371771400661024008558568670274893307923605194348912855890971290551493440028795878145705001116928320296924536034420281488147325673979364594799187717818313299573459406558192190524821417448371411034486914728167969839652752998743186545331309319012310094135222419677306355774733788723753666088708407868027204999696418960167119049919960163554091588229339647893714763004082382370715715650366749609226966390061053435611517971349660147495332683847418411114755672712307617690610856408239110470749443409791343873659987717507245202021976671462999807815218463174394516850990025893709665868973075974925571283330313772434003830735432851316202193594014199577266673908524459058492932766303317138576702285010680163166827682842031797832105503265025767022214749386722733257711059942156184644196253558984952076603521516532335541258115160877455960537980848012066391239444783094199414669445299737214876803243635698421637291279250214802932037591416141957284604732340851122893856951457098671713363385696637583983809434850850235321056450237641426961303181353241375439793124417903154972539925027282775459956486580933328895345265520146548951142675145154389359709523282688242114862108465235914648477774228516862136074824207149259161396412926842856783646778184211859965698396006334641905407174031621980911641579677967731901974660453569149026218361285589750332182885131095699584319802605167359629754350107381057930674375352714479464793303391176970037683361751928831543030683249954416258419758013404203225160171934500802051873467916689909924846517618654904689327725428450251493778706063675622853913860189537260048038073617256200170978780228061595112687367959889571008919932575756891948154449474928331708127263710390129073818735473238642197012402934845679387896341070272958573817293181177595080783695480851592670685084429357534121784786571100077661764348120389008218839172529021922835390459597898882809848087934655773344044129511761553559797459272227814666352638345446932305425471724236854561943495428844635192746535132474483734280495863579766113555318713012146361405000126896817967007140093819653172677398193006091493969685384679232334676362762650792165055222979456052468026061111400261777817901892325033747681345885011977157560180828273010235038370748434429593919537096809761132773142407168870407155664047310590992229253327593179026098939284723875224873059682913881368295590592089227844619238193171145238010524696051201349005765786726207285110068546975157418586715865489519935418366593779470749790474091245823460661016170875578588877151616948680175213960822697554845633324092851830847228174336703705953612060189207986983180255751461459566969560076751831683191999324639647703232357609468074537762402639244973178624709544792693789620641818630314765594234597138770467207748933326030355988719341618313306345864718799491818583453254592257313597616496456082539191232733732384596172635224861409731714196081368029266090607972725913323099864782526692578786729189697097815364694362532209406982049446931892967803005163229410153037435480300265576614145419763486711928363099013149881157478399193070008167413884626272103035817353672409877405487645689636815842009692261109879195791508578128944215087443345417350581271500022135228108195010577713321027631137515345829484912772620244504251034424644151625186438035709353686113494579832452258449066542712260690429287475693662747366694714094227123626845518843461324969221111817801863913532337461684593475640581892286232052104829790075597301372021301256904082975891988465237120191126057904372972013764242941439196704216461287359597017238566403631030158135453762685383896093779226713253006953051742511271362757732204363929527015725191668129148614200597978177203952535352510209324449563650849427981817034817344339513093428788054455209269550385520883761294730199428409768849369455929739907481474049577492274007924475227616859663476318642853958576265173040877616049530066907168522360880264777658881251370013660194362941089085198764130152806603294273542472632389346446429754695056317179914190478461450858355725105044989472894659915663729341765215898181824025277456042814713704243745569238127377379944566928156592445250095961286176999704576599471463125580489509810285409763288586100333581661537860489079656291075804710348031894124236070116511587800658165804666514643301772178194579960208522934142993059555266346201057628225984156893791588862535860433587751984349307396038177162581864129115242457867452223080432561647716306535771503702197038875179158236564226116338037294345617974565354046256236614486074709661742657530698392408367312460716491078511236446123646969221127519985286534681861858656059515208204460874410556612191677732621290757676504605028756083474627664417900712725082991023775710653328682456890325755119100462856677461992706270656535269754992335243993298731947096517684673882544047926160882943539222481422511445081954041289454635306414588158017654684644722243802961839924016546878004305045884538725249545651686889216791170299827499710197058358301430119167627140447404821604419946076809914851471308726863509871336421936220599934901227232573965214702654688712501522745235503993654886502148765493442851561168073903519429538780182750038341982220699949223152649572366618928155739094153680690545913205886524312889424198171066110683482784728288254386743192433722173844389971237067562048529426791682791590529643017483108842963794058547068560400736774470421907827237011483113958341380717915959957436811144599832501283920965742791470109117586214400049163790059154496366662086582232446180139007160955829300111875770155488433678278232924428835184502737583588642804104662682733569633746300634347917553855399863928281969377749331913169038473870363044202018713504165236853482124476630166918020273937586808293157059906612687340882292043858530256819711683046532799958505153915835475594861461867117791735440974473607800524541516436014654686533563170870366795068124730301052469108678074030210426567859425028144924238425368987899614515825094900921359029191228225669341355412818895638201897625952054031395560232695305189372483128121354222578759519050593482527141850710187147668666250667048361291779665708516964692311320083644807666317777630390390360708876025329211330561860004465664067333682528501770384732802626578761414347967070467263438617829490999917290008472304050516391004769947571442278914174988327417878452353423092184091992174215468736217736593226045072971142008957287256612790738365861439566967515167561716009264804421211494183432428383294613366274316998806497921765051839805492893889858417909015254586716772505003430665741058448287538034628878157564910570081592925071807318112771620816645056319229526452423771491556097460510525294079818792712640877391076106816530262333032908396388700582777606439262554792580212442748723734378322238701064040728858358753551439691015827557274153008884419860083027073097565878847857923158021369171059381636211816394601363646756642571811334692025476298798051652835127023638026188928962455229609731565571661716752041613142491327109973870010992933585665765595240171248589323972123477755215327401397317391065265320288417731910897678122708325621192948166506084766969247720929025256663670920079772466182647848734768991693025829964840782592362858994899370748682041429212812718621032835224738625401263985800867111518499132834771725131501410123542350973711778240025478616857241304866096888741383560508644969952210250380650002579510751341428570547111324435615928729953142427941500282253426467156531372262915021176981959529153612994265543150308272366407752582641140771382397706504708131174580639295729159139907113994122245176588738947464453706087922228519603841447962856730121754800198428903587198864905459410297049067666778156278723225571277608957842552114219945700574331143343690526956196149082268529323964251461587975103101678284953740492193008129158227913365914048478717226921873382862544777192786318941443436004771520476223661389826701967229029273004243466446241221372574088578818936363522729738679180561549383867433296824361114045608698218063260257080172137882667178048131657548001395075217878879595234162322862620199876350176827011862983774989367103881040862611724092588365835355958127795656301265860754417127363720073470998143718775871871230167387000848925126599146191322325332865535992307712057412035332375390430581589342618266949684004630157670288570793833229946778359223550037284920221190393269380416683913010450498461124322017207199982488539399058786250266030629563630084938689755913879693563138043633303816499298679598072754204711576703969913142949512585833413604999456765662697616921509057252701817089441886065140605954456013732266756566359424824825645656741903144966606293709192056521625869422688475325563225576850499535392625023485765109951835003622052774615585830562735919270325363854801406896325535427706996201320525617877886172602631305718374278889194758350628022799959049628157424713530834999322675684266520711458259174927367444979689278655484720904888011441015368519539305426982439091616670729190150299354284022458206274402311219682359520326222329167467288822522081596429995622189913318446845552084659342361924028281544386284222014429700649615353498504492154798247434102317978609643932777352108637200308195007157792903672938383700667209719223998391047926226475552507174614140029448026885046213858594979340775643841769503249969068820369721385294861555630701539590536828452647349878628077933488667402138574714227049712331756480963875378637189591711930998029928924018052921967389171583652043434337552193427000581572617818386747575458253097910255030157243074895050457452576816750782971014583573838800054800624942759279326719489367952130355615115195342196208025590815283860318631114944224589373848408605123182343514381855581674299458767101072269083763648497562638092946690783187064478187979584175010222434730916579111653014744365468105990635310632487724307355557551078590349796015906114344983757745009032318014117507745797735033879274683040078980672001890457343518559179076685920429618108887200349145199466015001791346835784284444240953530057566879467940899522171292546860142366650672657008930100069451250734612172516213176453028845792265358247634824777803268808100787115957751528011133192475954391628616197384164459200382797427633289494700278937997614223806263195553528945426927509092432980525148880858611264192912843964454060555540496909448343654948110947364564035438094752963789542866584270659673056808044593632799665667479256270837287919300296160632602637403185659042352396000793279652062508331359035090446787891085328585072077072060540778736752028381133811957069399654399856363748205339129703967433817127652579676627572324236813746030931330332775846774495667257390149765788574607294985086341366434309516504138709125418245550956224124972057004626339388225927113476196011332830226620004169735956426721468635293729065938442663993020965722703883922639947324539865061043748104082543035425579105704771907308906905592710153702343311806786536433516317085487532999771643534758234834442373406420320593106255291675458124013346002138049007069829028794757769777679030040692484208438428596005139103925078596250140274798095230656716324440792788509701385640603745325199604128383409894815857773538196215994646534769743601365948998673919594792307781631060043594872826382498826243884539773632622247164735434220509321090214676154513595222809556918547964308918678584809890151986647666058979399682431632807045319398363086368041117314585479321813628089021213420810676659296939601073090179390605818875548178239162495652605406523704862147139265424846309557572964126227285510481781937102296131794683520994400658569157364021090308815268217745103371224777216496309465967048942008862675659883977366471389305969077871786135208764751861535602485319356702928232740226718082455093696915142737613559496694336396102977920759166337670592962307982408597974873261664217564940777487668490827534922451461351188562480701431911007406831809240183114530981972912370203409174689167798143249913799183844412406596129844036966234529948548073839702619608698264159803112527441495364170440621975063074079309306749054254192312949864426346922538404603115774722325667058901076681822902443628420123891288350421449096069836224769383978482726580944474217330766921104236236967951236500032639722582748692545506130250602295937505938183182699792077967493661843102020526693599764974043039959282837941381382380835891735594880498068381051273212595227752125655364443558653474128491105733232596469886440710778455966383632206221285975603787972317325305885832372297211182393513832170702383265342335662644691174946504859481306060185188945833283616505626504824119159771202539098197040943940230743235352241111766823750586671773104788592072040911330646869642886296494162164676431029508753899627035214311926515295624628706515613235378482711512625831610090305359499469066413013045726135451811122641041905646394550816563143392541479552926991037153095703721901877623850486923430850229929758139811158923987658466968701833361272880832099829624422709471962726299498203741685547384173090263314574114029537284807728931030882991069033507975149990147608133053691793309623551918205694862505466398018575829647424472748345497974314863123351178395830193205025094297871026879455627110274176175194484493318904172616850770889583235146957048505824637951504120621368956218609449615221008827932297761693978229296552201866840777041038847935066586652279300947212274434189251948200423076400011919805339971800281841204776139477462341904497656714441421108159908942592843494442816691864890185673192643195754576083740119824077711289815966283618430876854300391323293408987859290685887944000619769244368752433869577726407755865238319320872118348258407699783678516902135389590758793759996023639856719564237442143021776825143981510168633453495826813865785104130823907597380014764976624158499311806970067482889470572131323130944459903411542693502432093539949779691267180650815160867606001644481459583133771421038681798164461289438648992385077051838569693830002182244781588091827666371928830041420900330333846355091872879915006935894153022968176384779425027657632422784958279491108199332074176907994223179457023714144169446959953387759556693528452247995408117739940304312750117027621603458022655904282360614724654527724114058643031820299364848401822060306017055525426831792780151417133131384516458960866849845234081906349502029543907174097832932860567567995239868899794543574613230625161997341549987429572611259062253469970942415310759364071745923275325388364697007035645136112593835659029815934911726214342486007618967912035078326230356069717191460801575881299665168249717836629770853232300655384240534005133994506673758319626572585913053723989591085710621665970750767146613279341310494196697987495475579979473842254987173114775024884734944976056660383694944031189919355476619954545286736098089891894194668907350750917970433530192075634686769063831566228702329498575449212251107353210473829741708762057845861527777846203905808140492765834104342079280595629485221890961996948547722193086078058047399992764450360189917401382293322479700759258715472953787972499853923190048957300402869095332942657106442929367934337426325911932120507478266841409780034447638696189917312997580825912021302945516450798958085067590713532620890420014676719975034904132779714678975431335612980611806667607709726000746185529906532078561284443632472338079837706633569870862217213411667219348741479672090998517668273389481243436085406383758169369091428295981314675493347916535881817910675734243184667478630454614334816399082862493840303261359936330355848408756377968151509669806350906496030326435392545547875183158843246112803965305406521471453465065106699770870441204095409194853502406047850213449199221339795584423455843223311525679905330538750780421911407313664164577438640689727772857348051209559759103022679574202050106049748946702625088815005568610304970890571170639666570679192178010329647427473354500092797082918994629018078081019537976689602115860461278861326934836160032967664405212608008824408140554784079221896687814936358554254365509150960347927654280224868210300117115223072443976141202643833559116764128916640250337856490007400424151438092022806086649994284033063194975263662941514320611394316878354729716513192340119792856264927016778385308112495992515628482954909400365139607799388308241847552660637516031573639271478168934194486479841550496958228778721339061948592400009713442299247019892422580874288332253961658890882023910527600686957071394753680739010285101404842908323780752846783800235543299778313671856011857133380287868919879454893281063671871491774288893640283301694747645877617753323325242688902167508706083429024273493458786652238103391235523277169401066850415008870873342242978977176472781713494418186843623516433153366114708452107528715476510880435198020952461317290656767013827413590739125034134439436816616173560121833304605187141047234339350965447678504638161855877695098791417412093778291317036347698542361699783201463617179684337864588745566942854162698354509760651715568178700294322447087422322374482503228907304010919582179681226335913427650376882568843478927026101022983613731613704648683846992261825960522220920278788922561915601243911985188799040951174335852365676631547132759982140612609079195112755170487158843557194087780507817530207210733358384275122585254488655475520740884443587334510364601414802230259762280171969232412568962028729971594264779166620831906580398642970442572797964250787359591216775900061412083601344849808736396657428806924731498972136015241855399308691628937090166024215419517534488933383773469737161702587006986867722017579843262188249483032810091047867976178449877789907269678695253975340395970495138585599183169680426228808200771006926261435640358646930953312074531526493940016802369271076884697230582180040884100605552883187484766820360592991598717607972390473978013100255548039178598370333982752345277588239297069092288512234291817468407900450694357704080266660339581465594520424433840296719000038680683090738514172827496221337103733335466991089255799051605095584906255982775499525209269170926709900968963172809544654165556575895060615441403975937327643580760849918456482893513365260922583245978784431657478481069601891735882481735969720708042455924425308977938111239370021880669521598280076711026306867109669500498681781291816404102853681612149837626251871724962258540858157330914004236790627830342929819985972159398742265118305700848809301832592619453927708909366503943343042109175119397128441270286853123770523617371211981389365763547532950162470572116325434942671857774154959819622648725675889951426186401665432762646767261512929877720469216308174243368683042220244043494322277435061699924602493999936881652044450151787499690620430298143760983219816614937606928762731140188740941439024529513237786883036550413655567219469513067434253805922068334091115417837851043476076168842412518724165193171147479499198293200227077495225671289795588664783287600059982048279726544491178103410795452230460554054003466498974740341914989490375124354356611295524322971198584343175464547150246930715553718797493786609389008612444353331978458309576006708681527088996034475111999032788022275719674121474205978127748225867487209270977031292720600523352214188874449792304314286892738593899529897649776981178890177708187688009370198777708022821441860675073242183981857771413255929952680143819029269643809151793645267493662200773814614871733085754196692153340540175559949662619884376848898061553197572561339080243466200604913695700149215891690540597681251280111760730332254060241823808062194127341041002040721199129481849317921601721501273655249011403327810161833329776157834069898759763130371677240810037761248345773309859733764579326411289179950251186911683466647574172697328088517132707530043291200895966545613317260991994643931741739025111815352579154390124487720740727313153897605062127090732716020364959806576915031246061440918453616118040965794227016637458158752296368665691048507516369286993393954177117553195861977672654613929969948780205489910472761087338023917343452610364853417250223710439240338486960895584039985853866812958954449646726658286760739346528828319288242834712719700239548416610588744345632220623537008918315376196386962747090706330480322550514007844109303730667517675932714336508773738012198239175180288862887424051541248297768948214902193323561823887050733446230586667028562933920382195118960866036608945999545973387790594437974586416896686985406013755880979840414260350907629877923631651217321361497072841620137277650424860203809506808106641680175050881946602636693460889105442128483116498947821074668863499975159436272845206026965966310333932922806585499430747657198389716759374685957399681848360387911023715380931448941779702664718211864293331939692107135096258487552468554499600214720675996071176966093507877219256615912616067824625789152509307576143632155610175373339586961600758074672811927776816943103375381427780201066203688087949821271699071100060407867310731542718120263971711046115125544127399418437235240729163270663559367468401938752859690070743415453974531778344169581097509435173524377458477800827481006974056273073088786152302269658978597373697533103550644825043338383771447062624814287399848578558410128850073890999837234261485273849024949028921395714608135665162740461904225458687047563833723865748595442210564611604284954908337362538284175175825410216201780683045286844349685883895658408259963485409438364264433846476408731596842016742902474431704777120009743588771334762336858636362069621823035099969361407560150769968511291799970573124250101746942518243717534701919384828443358950043139350123217004321986349869730702427193599732588881990301843090117465549838473729482542506225312756048652307798343247408661576813765709473423889746963742809280733235197177179394872362429610637909335504448828126231095760118360060151992774664132915713606843668545742373508007413052314131301146612401909338197999530258982611715541933385930834011613174738676962416581256715802517688730308811041920908802074739148239328699099360820292655873325744419235118214591864721814236235956021612194742586859333142343211537723216145676808972117551220855765559122677310075872590271899888551334000444601853146515480809082290228306187514739077693983596249013870570419793763487492893273996249311827390062998209055166132161503780131258483734840766421320437470179408432916875415092385966561305308350759370564903826368859133381483126533091808248355129638701376829738490519292731381239775312619001534703472810203159138489169311805314324003741068819011075043951253973726896114224993149888230920950170202062216962551103077067969311070228248765313790081506515294570368958835816178046697313650425885407283035220334164167843679775043925219660752775536365080310767131022625864061187178470160319329127587070761361368698828598017062434813505732993510154399093036731913231849264786493344881767948419538131616454134018794601475446173637810430046550796988465875840030071871577402954274527845573199086401007374011227983545367813807283852213622669498800446569578829932433951303838371824657318507490705357664410765551423800628739917378494199427781224682534413069129581732352794083260785677432110108494037881833695001993497905006059373595567579385308722025074246058142785954300833797691247318966334394100037330271502370403300656020611561702396213709865987239456548780009002285660818618990840094247007025342809512989874625246391903733525831942726595095149491785216566738464721044003910656218537927687347309392339494866232648178069015647540200068191036651588917296572140806245146082576308098079508577434948288381153984594244784015812375773930143082139133167575063756203764842746267088474746862248445494642445207909673003383695565875486219775833446343688556436106187405165552148578749151207240788286906441507410798638427293678158809107126983050717413323830562680348065074930997717695747652799753395480462066523664475236652531501290704650653483427781385335654859588884370763016962180247496736143991196047269092366956589295268120107990603651017524189196285706257295975796499105394941465513945193480750608098442921624906683249962632932494537502963529900897875262064650467315156868526817241046675291295143782998629367188177451068532409030641069154751681683416955110801691162434087289490805097482467530973171228529293638989606551529275277379306300350748977391365442812693004180863937530534376647420737283957069152859092869526686084541839922922793843921331843452553744671239621853686674288762176869518903982077918470920001054379827642172260992691491611585361863557857984683536827698683734879562554077238305361850603772484746759832399645443153447664993172914595243348443334419663355515243436964621101183677455044884667952559398909032682914721353764609916637993639868277081386698649202337205771014951948313511370837287393854046136028869543064064204672525059177461821189978287571029644140687035566556903384924090415302403730880580776861047861719623755158637712793643930755946857507296884877668452218234055458237311986132341182909032288148644640963071010417970293557565711250529260368807809151163947710737763875141766518311458006757633712029343108257105328021669078215396139632044910377653913492998112768995092849268429683904829095267766582534725350735915296961402096256051316834195136188154601465530219348569976607641911674237464368295104622877550204254608873144099102701050688231553841949461244935684002817917371994388852636209827198691505036809807162485178774164671502873538869251982879932167265913651535169436578438001218101061621727726251155141509679306129506132145514430111436335370354405375229561440601860981475058065618288823955092813995134575499965053040543496281174437879734357134224459254411984241645990922581911183101232963008461973092554173060068490717199689120429962340603130260059877698884653410451718399852884775623925190047088449662197545861091184865826970092255236045551495028898439842861995962536982681904053774628686518843543700387673640264764002601945751544875693039187054073974065554589760207701241405967208599245168648025760209744833163965621140299329868110563819767882807566457999111704098258361743995629920867839544399883856692702337104515867568011822865250867734544892529942939792496556428067335041695856552635673268279601710288126408277872201155328758098343126271199347284637979760560883918736888555403565709583319509559639683761276023791399156824826108593655595439741281512796063888469223005223592555119190859100611254508204984356382935042967873838403209255983097198851953623807011304342299028501598542721654521556152382381050150985340988897572902465682402251426496091320909291125025506596930708845773880020298059274566848738576693024300590429151397360879751913243416888528359829138972328600072165425146072618777655851334561549080986840768795449734051442557114152039717062395313841778246025186814239376640598359724660853258877436836876831894411560214546042629623237167458928867506554057703822691974474477085908252832220036579182255175707981157342355149226002216283914682556801621345762715738416591930621770789137471597418063949328796561103481886955060860275291046000460821054496826692333052384091655416228221196485758860290738600731582695638843175468543073439144262712373703609248990318274562806590354049677522564382293867870518042412910234792068782315479429446750493337071087091000383768390654391535415607076001092631030585892652166154345010105684199849773992894409479998807951486821022485588695724593319487700679524966066365054784740640631376724772215802934603022807088602116206138545884959705075788211132396733786347724912188639184465015927096132104546615929849752812643963349182662102582001992772699502523363666975019907287491971018714754814580702692529492891886338658694085942949613713843412379641519823642652244036369571088807455722824367864220652347449738845621510006511588967184822252502179908820067961641101262219312298370247388230685092890513926071360545127952198589116336019698219840650652165833997443225163135517338936044677070704879746829421842723187235602595394022477816973840110306967408928989769243995004211789829425316366578513349163741532153654659396997424502117133266458183859685583349593702907421384470253063892938083831813517160399997250043901143299965983193613546696110665207993719368197830464772161854642848550867621482498519253018387341706786338364145705890817885270586156269101784557816496075694547417991382644823979788247605705857604533701446283541884853700773443641919127668790536748338822066333163399024057575718807858636446515475278558360148378442369397074971998151238648768242686209015070353537316020844500745286288785960529390805444773807048209804731127088442703168339518576622505336128590331086365368923789335310785902274301936472475966329204418920430056333831974343881905133402695921962318568610864467525337339315741649108204607353604006503250273480209513887066773490090762015887845299326610478891047168212757267536600665025050075311197656160756199027341270101861264440316717554957261871315281619413227022459606687920155155118990497712840127283937548144510815664169239322032375442555804801037605481700397236335273368867957488179649023604416047654148344444720355244691409909258640122481539557035797315531946806212783256671776018326570827398629130660878662226642737444876134277014975135621074794381014509643076424636915738833079371354211106835080612555958250198167186828396544684669056179579623753639046036806302364475675062211067784013089574687153074019457857092979535136536694785105675620587322346052457196537429633182193451282087705062030839779064798647698246279295531985086302380713640881460974178227394678328756022820095887268404831309882110893878469553051295646902767402132396766669318748366553853373447790890158446973837641288083424342286283041592077035992349463420090030759241506639484089082648396654109882098278567500417560168156537641796941990813775199774031404401892675892450268264036647674134579148559410909357324270287802433135155344519265329903069722085693690261916467421360910356308455030761019026686940111773590029006370256871991999522923824687760395436055877142004921164431588024008849389114908560017938905471549451052397486043342064963328048889144961731639865284610122268465797655084545558041805772014622400202515542529717917138361726443155945880187932008382980063364741881128931146512544334376468872225165001395973893766888089328076702849754379870213952382014684645606803433327191590794296056747707638877155283458059663746920486657887486695335285090121770603268734897236574232516889534957217924398842422262110088535150549408224047220347299495963873126991844647045284627091738525313265853085882659684638255790944300519374360824505011760828351003861398069973126243157405495885783554524827068333027343658458821995737979492392443196416764456613931929364740053294920278832280356945030482128290234455971621817985356229077304185108767639996776060842118464043225187956258518208860729287404904607093474754630314378054213955173104915994572690960645208915611572717049267577245630644186655638093514185913793768112269469754022066301548026925889403934002994543387551064890756188570607340978565755367486422407865435320725829791186612699811538909880116406991939810958953945996165835991139281943040866855715172061199859653419994995556660325337874921821274901154270097346869604956692959714657901583665164254341210736526867119234270632315799203732443225431807333366648309315247411348478441073457219767473099366912131442685931310236235941222600785119495403387048441617932990777207631652371879415894106213463493806551774988241785470484974622564334302458103324493376401188868428789677446232402208295032725972984747333592855220913914810109847967531600730280587372336953579303317601253037864845430969078963968854116952543222004475974461913181759232832056340101609605897062910594974302903329418047572314179971999104177636088468754186815127748152067812686950442773834957447520895089004714806852231820408378898794068812285391255702577867720363084495778855420943192843338638882852240761124525404327862913496754127556788233521902641700028839713318868803375498831662006865314877247407311802486326567922974852972318083525106553279849191208520008329356132509498133950451954473970862550569186063053095521259665740735944530499719960423087874209035972415147858110710306752298980249428242379599565118327788620193262067933933811093242675643723436177929735365345332092517811201336823660784905481811293963991361542437410816183470496819438063921808108182720331549814431491684290758365023805578445709673433969827791482618928703944521725839233723703512824053044320572468750360513365782012704206421082455011764183155466721052299839855221165267946893243465726117402589605798929850484142169365432639587514335462291511790300760509269692871180993193398184492014236691428250878239436953257787660597596177129286905254753293711012226433515949706090271862637409560101890092525682723637881126532189645486634950850319141778933463147755790509906519707315037430510608882363861937974457729580564681429966624527637629854018732666480488328102344829616732772841304980731621917686193522397651268286110642494665015000033638222881675701610553507428226056073725598410588735183553029384677334723193525558047905877204864359024444984742760443062598957058253477154628214457710524808723786481164052615820784630185650802228785335681322813634682371649380427046099222098067269420760690890643079080943061825902222389570852650524867566137733095070501398106635940738722895219877693371416313597805760020476018944099837118820442197557707386320985424558482274189931456882785498268006944963321614974252235894216977672528176661416850320183918234763521714919684700626960745016495334947895087366475151176939177901158127828684414143608286757807012241937749722202104960176762636714821530791484857747136349449064159695495401093294014647538329422702154107296715122495779952956174944772626374458658562519307785898189497832814834381979881268662684106727102068659394295621475982269079171491938498730326615570116742656244094026598468059175763616209597337446652766734242081391444039853930914720264383743635439431848923131470476996997798250315239201522536109776574150875088599462957963762368437912975979234485355664577354481456938826662557328768500073698248604669690685212309163307161419146965309915454427040647169565184962966018392535544765020551522692338587260660514189209657616169833356982122474490308455627221450092097393240557125787834521458590922547931066852152568410888840190327728618238021027908648835255211269582260624713321835042293449923438547428762176399113520701222530628677609330395971431711266403234310949404448579633883120012158050454793770390987213823898877534903188579585881177290235301257576234991726310961455162003912953805139105917655748797413652797225247000862630815200397156821981236571276762782395391935389837911197603688180531567150643174811070986741663484453452493742657116258075532291715318855421890456791998997400886352550112734601522485722181172660693768951769657149927504762218107616303739972854598328316601491501151879925670315475935408050110580458168735750554726598096947782578910661177235460207427268716890710982405107568296747288991768419957690192910773310309682317489603971801317772391973207372769676913273280967374894486233497152466385951532795054119709571471780160643301673114542077968864421563623683331570925422943675400005706699680746671777496915029854032237167431845147190946332128407038240197459085646570290425923352758294727027815243554230603082537924471114803453737963042089694549347866257595212911983142040939755611773402989422403282239341853737206532936373018809179288849719370925531631047515031543691097698616644055444453395549286979803303201625256322431207554861993342407591637386798618692586669356404503957796585408421144115957322974824291948219906866970726227220042587793744598363462498958458877386436096252750766674179169436383974204893544786883512793177571811038208739417656671359972697244674122460313567425094059703401104259768815472171931556292242138297752344753714071451482038183100660356242849026333037829739178720429407320797836997485448009123372701184637281253244533937661798298555680862070248556357321303440221992995135773024733431501400012368030100446523790796675831967610884068794235108402449923236181664329458431823747339671946490446961030606163524583964707795175778667065856803474371762206333859790466521599177140432842564396346581978913239717382086490403897504109693006349235622164288336001756320700873245440913384280223422656181321257853932052635955547827635259440072407703358766660602561840068182978704953781778964647500416263046136803050527914030266237394837123377893167233173375437408302528427501061783029641661479484491506519630343958567691605088113577785897396344049467349513250006832998713131692444744066036925324010484256465183929351475790808982640902392827037377423535069195974184332289419988310047141422122555651173561422439836627584739071969284737511423362110920480367363972018755907516300089400924999175096309860457321444233028247924431579304232743737645419939566197653278571476197855338455993567959981292653324736581422967368510702491816944452260855888531612362127019305747674671776730782153085487849570255237402020095097547383728836616690906949453084922959656386634338976418148365273540238849243487026644551604534288621670353590961377962962274831634443751186072727831387925794526482499446349138969832007351669678021785865089921305002631713372850384979578787026018242980426510018987274064909772782598395331453743077438616946426148633283445226158169169563059881801089073041058307520435587476437794087780472773126353735083860414332899230167240731074582027002537398015106956524990044628056890545192239725107655512837496839309020812216405251075581178197313452499241498936201811056976190401661676711605560619078819569010719875838211065155054865541977529081222267445264035422445489757021818238044054839410047823882471068987847469109115215039931552401098432900652578744309145703067954256168849215754344773316951032787016503881325178376687245897464018664575449559967740713030952791355791458505408501282262008343545130949432534954141360838024967830088635614047164773458480698875845330157566346503633475744807173344569060234713704243366020717748396860022391540071322409945935966984693889134471851558910671399056060966629938716229309915586691086239674208246433947120942549291055778074667032106650716809240594048637770456318204040608938557472877608839097758377979372844320581256864103450213598199139080699110432625051128224473413081365078386847144228244983458883207824224556494948038949504150341599739419034530470505919842958958067356675748756180104591429131652776975820168933782751181616673498580174704363003686909003145451687257606186113459956697577165584010857849676153357846820938244100216187705467003345512795785134183990616315881003857373122806560097374207914634714119962893904659609497488845347472062407625504173716340939078532301058992417983993747467257974302287508837515157702580025707662530153560896466411232183695355514764478202733068710102652705052041216499021206777916857629726499579388200860220531703995877095502999649272250568992689592094057893092901531547476433699035529353497984278966861763581510536274346767688133633554867314643001062213980853939147240059875411184225263644439851627834308105693455513365172252403035217891390479135101608020957762483874629222009571535023821519412312167354071685167803853991904022931291987608276441115732597989125532178776276889995070786131230794401757187128096274832613304818566196448801703309926666545738043887984120829654418779829653141221862032005105644181677657603340802625860140358305314637401261275072818150184747679099281095935449822896954276182046356337926125501130169013142281399227074112631642565840300514138962692297005001192910997325152931655471298739686925333112767119001328058702482521760074266161959190084436661725478929990100991777853843265528279931862187688992780050624488550358423465887266458195344160797124325342597087841359558187264352546585331123282508414845080859800025081769993280185127860640906414778189997676234568699341319075507914817894212838563840998231145066818890277722612783558595961148118735702564778939193075502079569797965181588702971506163052648819350578559364386651440616314119066942053404784371581444757863307422407403851461781686542612816381474210724799728440597375432983322263454918128019666157504532529051065226560971131868430199980693381518835242257379535119789522725926982715729263800629092291077338749601615321060359942212256115599656749056088770107290259667786766790722113653801064883740725949790444239961722006969631847641280150070561959608280041481707912865052371556820535201420417293000747354338185165743279040131132582657256087215980539778351698638044114646527251128904674565348372405530560272600978653400741841635161347192837434351685726286066145411278919715188039371566153103418203030768420950120314933342519544180034321059634437827691038883340072455645395568562992242035645713404185975150080510231950886497897265494048643434333757087305681290212553167033003446219982935722527795006560924776752036656066993837511952996342979606371967068936656857124398103195785195542915896204461379430075828679168249156442027601763529388802439731064139956790438069430647430717683991728956643949217427144179865582541887587904194539897687693982088306662325080442875875658363064010827160764602050553448111371798048505192545008466438276023362648497858861441639532379655883712012947678804545971361119722645498480024343805908860131008646857006671960363300376724752016870585661587952297498110862010885921249308947986356939874749370177114354774871447004238116885980097252193372835985648344648829949250747218088555467059750542376267835667388155965579540582811146182951903004734330836605809581101109895549108008518987735236322159757447642277519178818887912414645130823085344405302501191273994127580000877098415703274759456228736853076979409642964145127890871292914889906762077090302312985269655225858722375697291555782383347543115273280893410929525640760879916200811203259656825024418467945906231734951257656199883270974082149860626270769879752474343613483971039561401427539874208203699822551374501595486589008775291756862393214462258402207775581076515249055907885016052991108387740991184949433038786324865070573746907927955972885524795170051924135216762427268398399638017796837713509900070873876442910691226767258707686539777074289317271365055548737595492460970709901545853633967206729086951552877945200277012441094529129973287376727643072043666931761578156894900138257010738466138062478104288694455026262559929667335343083266708954541616776990098386822859743406789457480741630305400854405599146687562147305662527846488675882857465333334681809734561228475459931012350508631212373700162499577156781548206793853427367509432297696597495906591746026842437243681883344089512314834963865233137695992085126556878014532890341943898192390306173990324751855698711730115488342348784039710749234430686119843619708633789560317676885074303436708383925422240328075319555591253556434188101248626199513553041077575855582780344629027079879955673984550855495432840222786436478219384801587409737365283109846002615598915854691807010193444699195432294350813363342967817207037332466899091944321520449423522794602066670684464449836133916396134982620350469814297858706996060731692479597554112417604913618050474347704846172037231194792154789806311828268165547172121249681595195194618843179766007965338014511659089560770157719587839745899997925744652395552630608586936862257628157480265691987815571970694862951935392455410960655712878450683450577216174159999779783273062149070642539775535318378576984390883213915087361894764006191212787238880363896176322646966170585976531371050461317267129405670443459352469682845950822315179971040544870211803696621816342239146836089350305512753161803614920052932597141788330500412586286284496287672835836716113334953433878352188268208339270821829167748662784461234047647052862587838796835041295114517406276716827869108020549248988624648249525372093716361512035573817288324650557083263045364221387292472133837463038025202054382988808675796466193118020355710318778107317402135422239290943226934975584177172056285999288625036584122144571553935571357864247905012361825411234689671991398081424535260333013122588485702324460764127382860599143002591355209574004846475638652593172159261480442897485306050486294109278266621421541258257040055963845883418086161972945444141977878731815226227608896961105236662065196445055899016518913670847428358346851481498602368332271758744946691631474178731799947078244427583406610380269146342150228139879287175908456964005171014075540645352939107802833978856866576391864357264841371603267929649446681930205721303353236357666608095225482878781599251702691304518019327583699092018734017942698995258806986757725051368533027209531173097004233908157194003945143403966737073809268645087844043817672447099277118987885312590578677974583298026201105063059896424033505669655250460038679186751312152481640256324806361143065461747652027043145873855334503426077976885234137134330388580268265093004220736071735068421136858639540527764198594725006977204042158161659590252377768565774698615740537518864727408768643051727271898038032426966666953007852159582946380770987454928905886368582345836725801559611187705389406707980719461325376239340518209184229953398343424283667822669255023925660307631020621470014007137897228734367083488137162921906980949486872059031155492832970500856164328463897702903345413883440567855272581299553589259123695531126919160635082536563024353144127234104899712438310945858412390732098986985842151041194604740987894168555911448460693228914681018206950840110470298070793006161934077978102811328318690438685347020969480562254611128545729525798814396621345234558891544702911349620308320995430602452057285919602428989855954046482184635200701713456384258723749681365284030903880188343719056633817184376952745415604366165052640489001052439759689191003240241152128002076795962366074519003228784913459944324679015554589426440195918522462429751002790355769256556282909146345665732333425825471673120948839569701750853605004536344123020570347166769052445434225569421052378076100888280851557758992505861535102790062073152180388590151853725558727993256153898832892160282389160746028680602941193381427951116243981238959522003495230167017394161201753449693585538472074914508463237043619523543079444803358292359920093936328722427786933508954409869144711999927515189170332033899039632527252051556933803370618600181714197115885684232138666957517756159024228305112716713380672280614127353404410907865223072625901598977940191202562272942625228815712774238178174038624623211641386609701537628235557051510056485941216299190912135975122451436186285770880349579136878819474167928553283905796748538501852472249180827242614368949270216821207494913763338887773465848357754132706747197411041661965407396272631209922732112621361487143167228323516009913765231761364934305618653114622392149725025780660770349149481375972918675008242857002917529962523923559940466331342782346096189444982186182377976323549634797704748325194851714321499323577830817032947674660533779663035074786089378364514568179020553079406042424027979196941958013197972215132274463894228773620860006488228629630963876924479634074793152164248408310832101067210028262679733003186968636024708740697269351160358513684325081768306643413253626116498151317653476544910118939694600985636697693335308325736235983107612860826975611475764447741969556292601960221550339780112705113276946219714106445543776186193603979578572775810972526143494226608388565480411227758725158931487526644526253208611975881059672815790845413633617329365661390226552192499062132971643300715440314810272151319632625575077546640170824653585971520737765154789161714701339919702760162061541111208450055074201856887686547784428737879859457224512072496678379377237022356371264023165246565001705124166029208505106474839339565341722936295805557066941872140447997536036447036521621419383776546964863117860626524323718272298114906044876814559584946495514391687047936134542242247454823470851745805949269491715670275805821171498839400448349813880113547800376156527433989503613639616030575247909357531452822743665660281544943693333255990715387525542442757465509870684493568689539752238734683092735417879336358409415355812858059638037673279189739580696532931297699471115256601414723989101016067745017803824145928015504490836922586311160786615512136611083829866745074615207317897488314280024416720056299637978907108457478516335611891572447188250954300664293210683821416852428931955558288087816486782791833175004349556837514739990281797779769125837490721178483185140527032450339283939011849257129153299606673744232187097522754917700967313184714945022214766192306193548625690878981560914158583431888856313025499072329539359511651880458082120728163060669785876400664432709653305019719420073746886095781645279407267202484834288701588091872109928780144337185060545859723839247598812006454672664374635492507374383588427099920937041777699533857475357266632123063527635102995956904952882675062033369091021687699935381144131812909284265570827804606529451667608286730352600475687606213572749137793953320531861284545483292752539678818982267013895874316332198347898698001029527378622647203189904585415890115472887740895911263059106714487800184871490019873947535060140565698614436986281839336123413482971206138588958187138756539332761695677111883264805944495554692181197105871646556259168429818768332017438919797802039961696977612765484950697007212587902736490301366623256035761461701521267378840699411078442914458288976555958019620917889428714758828754922967445004800943984696274578009590445110591208549166029019555200716507497749512338448498433105359796403032224476084367046570583952867059005193784014589608936089115853652506778065211592476496507001001798880332580386152422811595842055200221604465361683246940995118723285640814663349080077095872934956706917175879999730632243091986362346494373378717780894399683977254002404638063405468994581993382968804828982061171433376335340953970386350365402646672794383235842611781840905667150973467155077780108106722066788188654567859124191193596761141382466248598813744408283835432911334757148255355096603638630213705830603815174666804299300317780803347640795034394986991509789671300830047511081877484342899817840582610373281867498682483731935488550847411998464962936049634758357993454926485415588683730848810750867182118864356338784017815435107837667483534495353593767024624933608787768623640080815606236931069844676824496249634443274095484189664667133331699850398007848241534737233778441647257308103929218575694698941777456964353282508845411313989880884785842581719315165479355823391195939775873276681347282474384460452102610126193104278319592698551275792931086359216943055766758244665350565322814143536157950196039097692713581604118040370853919607377971771520203678944656928444751965375289556078605526069271609629639015020697378119731977326731012128931139292237868339070822322786381271495746987621777279974130241703925245008290933346058672789003312160974365739523925784470241676126132840506122542644167526026518237616811337793682816535500945908203809948596986812223494372317209897121827925184165299064988163585344381303528113478077965048343338606046290779079042205109114610532806156083114861765804561286772957271354091257951554378757765573110775143921800963516443994630733019527162465442265859720239461607171134397057847586263911608024219288718257365793048274985705284227625776786767825127618457153778379166844791327353844473787031182242475350736843073481411774102210944516361236702360547853829108316169206379241410741398610983724264721140773413535203540554164969621024841849745055957180326025993962937756233452757421991302001011457801040915616372925339773663457247599038747091944677746249858871174173861771474232957136275256034784140855902039181536105478956556760202574028112248218231872202347116452497996059608812435963325056130573435635108888016579529030659353138342742838746344877028284121477014260865334045839344868468833671437202856013619268041821108979661294146232182236086342301062296778512672153092545040513620407877924991738178463277208413236048498914858634672936275686290113085173848114051019085254659476567110404992174444366749693361350269974072647246715424859561663279223651595095772531455205303846086321563297400847127701428801606637984641223574447612976466423872295292994809979484058289944242351541923470420760901339515817601406442703066310350389336303852781513357982209216763979967035508246578070439909804109865446515718891857030737149712985255772761148437467007707995320284238159026470053673619583267065352171252140176121565632946686192518582142869342947623002962065556083316059447926002487276612295174851804523082148650114622979044036488901820592072219362450848384865541537049334679184842017786334900780754746605195941627073344312782095671212040957712139352278764919041120728789560102180552984344337704715615590045074195740136121810016130258718424766934051804119286100781312688975178763451150099850058047143226039703824301047444326221075507871189426921491364938413298143309900714265410793376192612243483405421400736164137908747859856604708428020899796854502951214375123847679738646026069796025070007978126528192095929883385957580292960574077905038207017615775993551309097170702260068034467266127370826532805273677103206154021714756028427090086345623572921248527617949151035546409165578034001796108698592592907995513503714168501039440303818022291560433899038113535858101459378961145304912925505034655231147266263341999978300827670481899570824739246617932701091010163402143352430714784334339151353752128859819814733962310485885957393047809984984534140351041694886549946931768129128297798455520229705257423488264720936146932738286433587900045327533627771261210728362483424839091310630926092031790306282889742215868176109055704066330644015134829563007471828243044684505006849632593706631188631164021517920879239530616226319469205289868951599672476352171281493483252481512950426651156167016702416939802919675470804531030714568995856364206757231391098282550355094197001668143957259831388212901585730101659934472092669646334474905173384047882748955585238823548766711932449256642225780114129445036147269286168842352297971201044607140613644546453097914892133667381049908407177906904806767298509383147064177336939001758918223949567995580619390047329046296333371044353236525187402407823937891114797224652044989971686047535038631151954253674028704046673957310367630193265481926977342098342894544764079287305976582790830386241382922544730660637166006737528147124738519437447058654611197525541719267379300567094661778490213742492733023075131083504586631002977429786553048954076830250041831913601599901559784444922802321299006739209580752908021884745735059299423831723422252138339143926697885554072420113959902920113687305183376353509327711212320846288838959568629284368391031961860812285114620094192183782828277640439260760926899931572604422037729214092867419541398914628501972787236017910998021877538794302812507392876078479685681594995116278236260605795902742057600906404026433757975813144259616746959110412416023301894998029479007003415155317467440601265683688366388161792889081882432630527739528854183802871407838645628276798759142463884464905392781245690700523265356771985879532927825202166346962841548078236433595274121227043196209071092934197428653374986030005142237709972832556989305099264018930760545961621550124800090513891057259898430250182965020959353265857518936395833467544800671232053987442875308837635863749983760382307282006029225698225590298574254779629501499558357363405273259708134606500270947037849620196608897948716919716054739847335594434536427257849274643914327229926721711714823732053479399129878704190161408862447305606098435043830590148206149939484517755068468681009471838178144757779036356156174963819288700690219100179794851819619316948796546828992466402898271112170007820135271070038127827150438711839474034557657887092140094566281474491254721969032168438801963250165854320715683264229652276305109498163186651048057131352765602853530369900000525554317949432449466590802965212007346631780039799750557984765027311552736072120138791816893204958330588977515024906404091861512478064414006881585092941344826531614864105453754716023736001663153085285962374740666940558326231972074628095177834092467310362765386746621607667704156955567544273312201664070997271142787816025800787097431224973880085722130417689195976297553372515804874321772455335639861768170095387856614205245480317589234002915377371148192860324107330729273283194184619262566844605205007338986199124079886223782003539601116864614581233861096130150194147386622835184128895956400357065339052516460620493424940665681251590639238380078408534850968797397706248543806188539086380583130956714698654971186361676174998768349563261780581248754485570530953784373449736708437250858033566754970462728470056036294120717198775383186217420369203699998384784633058761330656999499762731689741612658029687075514458198135777911098364883699252768025832433321269316123204457919638472657982186851934763791424340133038880420495273022226111330183659974515906359615161851867264339536683659757099785405243914289829505147065966412994449415735046179417501188141462075030983350869068299223613455399059941791319934519256305852453091474732873033498933601745185883972282232070923170849409008305397476141825098467608062367004345911997375785230451872025777043012197110373851639242616287607705234993244954252410046316053885651120926395471582246520765514395506540611882489385865886244435488119800826312791572977068352505378075867571509842486049876596490943449877470314799371646781885886554511119964391819868438051920436144378395941600581222967473398039979087110387483231464324734571167655224860502087115101027125484049357429116928733453281963564009272599462016502512086202946209005652041556333976311047715677834734248495346247276478663247867829134762819431146304781592102361633815557946821778654920445773822524096837549475056953881509980161495996223552287072220410137899837479594935473603588507714662164736782502977749133608367828524129397294166662192849396794578296035058722980068301400734483237283372542682158564961552745913149372287431783948165699720444451359936444856443121041443212859090800871870602579101374440981113864807418141466183335247775875870346310588714737020514680790579386450614860377210369001203538236699058781147088017253714767006702907004988401463354514986588929840577508767474080276852628321324767200537590267536850460859384525927301568016009702955429657395919309462798411529805864851053163565830807432130549631291045672533772975498386412413195495592830837558478097046877319051165388168579703894478105744870363649830320850312996330560578572958136325626059738371417274454236876072031730797998359751749385534160829865223510659382684706176533928466029853449756060340855556925954714278278796490140128276977093924434995904511914051806735917088068463747380985993283209122098582687145907743354937054176100822903555116878495971399638212535280369248191377564247223570452803215473323850304198651658847691387189122442704887153380641367754730297840474864427049810604103337814297358346399672658475424377988499490158437145956809269225912556249077558760350079407071496563317939195336656488105647872643731670399566632742330679084694684323828260632596376532034654907995986916015021617991920005661647643652099958751917280185961947922744832724677929605954393524978017931729102860861229738696689817884477181394412208592809551277091837306820070118714119624872250063086655385267102321293685133056474746459244045584705693086638928821326022360256569315900756222498655132393389914015012116059865140443985905213741610259490940293900565058012838852673327394905848909880630863359854094866760583374005300413357469735246636594547578279728618634864651350663346581165537316206261336320168796464176641496656917187795215988724088088949529777106552517198419758815699677173190321439741349271293050091101584051070452733259480172773631335631254288801283959180048612794877977129896110150308792689240100222498767850798386550994700979157485657212722687023117879179268079685742313357039270553769034990977324869009111253331545782057189549230823341300247867686385092816275506883782637056374442255824217050125436091049838619803167694319952798803700601238142362329036793537267706565939814120299934178601189927402195175581660134422832568749831103316594920715775957450414127888793873437415130483767346003450010054191043576013414524630878683855405888871813421095343031976041862829544806118865883273863975915386004501555081123703433829013153299478680187411796357164647371919744890625807647682841019892694450918686783759308250701549122767929027434030068340837667909645021278407256168899827893447209018802262060274382485824453193788241340102040267924149538026946379433785637617725205448140028469819193168849752968668750409795971684188594686787520529988543078459058363334807606874608117901973139544441485076492538174459935826336478447466963992893004239712899045940742678474262231750314021427511335516608577293219519730802872222994558252640399160783828552682279913453014286766717104463610027473303541143954243157132448941785111932305109521014936231442308866202187803849600646290766205138734362175552175282761105311992668234655777838328885856151664025130938280688498441155882731835770925416058448103250189737407188118270327865556453659719143688965406132553819718716174632455967309448831068535741184405557453978396285839796009828780617666998492582396962761292876665353612660833163859208564049568277190914581292941470806309631027939270217787598322704910071775681308812881704509377125969189042017664052526997203288248002678131719065974939485869714401568270860363043677620271974291036038465848135005916042714024040091974229282377623091653554217727705621792068768181833156534398806862064801994396615234021227388144377188607113614176246766165947288921597739850366474979645660254591000573736892903647879672048938500751389796750690533107054041376598455953798508822556894385924273804171085739681536290807310747139831216208747711616842144832574177723018140552332072494335732891296457725121395066798443199865256115528491027588874048197510042335549020550863229019604058968142785411945200319275590500803817612445065851159934631847686650164683252014923958903342812248561265010357210019336457942554615125792416148683820348195269330263798657035142900694685231170612577715653019924061033604767912636480970215141535446371776959510443144421377797475861472584308690692047479457588606697492167360382286754826000713289236108794782313130126545928624925268579585352189585746099022536303570084933821233433572648877277955585429829968919480006311326224649000475922978253687413558123358570245137433305930548800360203480041451591899710813038698136284669032122658113192440542742793663186522989449089693711272478174351113116442742592454597678151584809900398372193377487069069002730958343188595051210660919280527071181123466186425773103675842397618361091883061674967120022872643007140501877066676535382640168996337324083413005249649841045618389037720890449688286660492607246271789788708718356616760707727555391640007866630529510415892105048139983587970590827632519029849657555790701944045616541198601363230087687637299852843216513176163394992328640338994488362573169749863466547734455498808837029242361227357930566327260561326081725921882720228224867899723365391147997227839823264719296161126658847456761262010022057560590198354492610125908876686070744037032626283399816830465420457293485982501688779348790223737975549903695594797861563468911859052943758858800991344211542321552698576527533729559311866860461409671800455802113999874501286679200907711721071391366237225922557613927275333302038670205645546357229029895536182414085004869340183042211900238182120315104774257972459305510845418582989314204043983788867734883677405308373201722045090539528559952853315016720962372733962704844744868707923363834317146239410126641766896353193686205127601558592528903914026748544878159221042111565326937640260240355850409531648241498192623647409230963848670941094826302649963067365387330603597048758100391758319634271395313085664574495483365852577297148598723834710250286395320435812803859917039506475035762363206363794867499135742512846836762246638458456081035320628301299085547705258646118110657165884102562373754682005026607107016727527610573071863069215677309518408823420701569386789315965783959112340089566445071763535381240423844306384050788896801429382174492253929015861433635766907810662314689229426807624716003665198896206978755109414701488970866635202279369741813195004720115571784162878748925905274648288084896684683634543789187393161301418433761098475286820924580799177004075719075972073845946711366919769991456879967185643866107865800758587792768283431559587927251512372382041319320945096619104870748404652866455932772278824927060845237298699721669526027621494456231235640506040983431878456646923374872566719441861307043227734206190288017144933346081971028297957181633365310382683267244597315699864434373920777598058726803287908599083374656844092654724578218479258003544668038530560221918636158432483636860089598175887756909106361595543201553240797689446488700734705175556307401399465413562065553513641572846287898375409243569903380221746849697746379911176215622483749710451138441968875077768035855827539858930644286413061112954779897230562458170207075273165551767692481563158614116826068049955387481660738918845299214066999627550605585542285629654948471545724744570498191661428495940725605222730097827339599321648037468113301245050891020586425838324091491637159917071708346547813281706891550036351486406045911305857961866535929210884038184618817144944918208625070616340967584787411599168821289453012500382968405645026779680719815381267835482672678609692812923735632715796493343607106522719220533211261401330241745168321685288714187868552332798609335782732530628752750190821712550274885482126949065364336279339895391185941372308834696907132992420611075791743324659076719496960287056115275019518311461795635986530763820821755724471495466291575211665631176589761098840885791676896596963149343785890333581792004587602686104195310946483690546187108794293760277124584325536744893181596824420504521148927773754447032304433112080074884739039820268769771795195955145144560600401471672099543923413387100993955846154381317714566870593851224086637685971483921823796266659722247512145684933877470243571485621495007460287971982402143229862852687907514620148483075958065614492820597729851788752168144359738108364367592946707931940051215041150996756125788121678527797756273488544281397250005010569364155103895497319143413308907341473065319605311028517954206180692354916179531771543531448974802402380163274995249364522760595627713554374196428480469373623516261947175890175967693922575121142986070750222158080887278897435642131867181177146827482903898138595094487424452079103943088669075978698346246575527301050953973931058860353204300392304878134341405411844348211086960986827262385243636825237076301218032392082752800669312118602087990076490578098214475661521323986162913333359957451631974514749502306722459513282125480161111292117991720400213653053094650477519366358542441676769855377443307040051583232359652186602081132154135074564739765648063043370363089143409522993673323855753957912584680064399623330450269850229385623598049533650129328590469807504421296301389917204275013196825959654186658084325698961073224047026214343486453884290538635278539760520660777212182164829176138956276054731632968869241780640920246281357041139940262707161085568958625647659928564454972063003123650795943185398376307165962060610978699146627713664339447238565224263367307506911237385780820672264051932800570604886257613974005921891853254884658996458494319532378761626275213069427205554376073436269058265694323369577419633378942287636528344840749909472144584179682993910767274112787703520490463889603362892307518753856940063874428359622060115924300695378499198187223140323673874740123108453338874143956172435024566398155436562195412447044334358183259889962252139142349325765522636615239001324019050751052733709179907458199809002788919569780980186216408919914735136171249133524737718397257879587968592234338664967721413399216847313189181796480060151528041977574840665466331514494879678400682074397774712580150905637068807570386611682912033924460916095450348550927922920395878693128374072980678374518083080431752334027189846894230554387947777047554049882956838098555958149813751608939713615145426201286288443520800347661294503935664290234557357584239657794771498222803262790350569519601324615395690279336575745717039392489460585786109057401652157845494859490120168323969109451083512501114264283721225566756051388400308976731638026879108251672911100907088261560140821590376219901887953181241149339705551694961896874273984889639838083796652067364790324784808609422244698102224583803161683061828704860249957363030996603277001445331283508536041321582913301756975935253210106378401081969215753565268017078016757587173841975889332950088140277235946772627241156007534653411794388044928691604165184799389551132928438109530505186219932191753391962676284296065242235414656917108248571993270001661897863078740706722980405065623620683772497574991539716390740196581638958351102674556631039065035520482061855648713351609190018764688063301381223422489589056794075400753114923331218783316017170747961242643952516884886669921552447057659591298635686081657789138513405945803915404916156969171228167152370140271041461320057945301593038215531110110121104619270672307049155188754164668167217761738354309802309390475266488315327503911445618369223777134753679208317706890701996865817265863647691790045595745328133692958012372469520447731318409424637147657880060421553661229936605432549357309850925239150844573105210289390917867386529543575572519180531386218221680737250781767769784659714246600077416603943093384821877661751276751796023027659678132638524950061779336716912765925180708450984811632024605923526180826043277499368192110881525913294866949717547146695414113813558566284500082561230779408657951052207767830953986583565903661720512748822207925561636689510796625522017335435132560901188064435864063162770935141115106710882230142278515111390755258269909353019891179502871199372406162830982726894807054183509019059044948481973755752817580610740238378742973069728939094369019687052204834547124808956256015643512696310450703240841541814415017654283858127593701235413890028300198042298965806024834262945336250138037741662869229253617267343203777356497267618866650640808974255023383887724652426060341228449432533098012509814925183076740731703210577958028562882159436143529086054414890101199314018718063203345515783719155875504498773860441638127179910112503904120566376953371559019828166442221517558257932844860842750200524014124663142873496920345688295533953286368043649566026901369045401401212038950739928268804548976581589073082287779438333201218045195725056373441418013659676240791905103264486515618152977818815611128605566565369496084692796210361724473714329577100364095579747477166196844972089594486391668851100299758904460292380213257813716458292764136815760737748253450844300170126614411401707116542090886854094281532469569748873860530009444449892260851097894525973187860710662590090953945515883807839027625492140277516126249875193038773672256313352421081842880366326539572609874114277400204020488690262437908186176025500774819205068307742045167454619971022029524672240894122002286985643342102166308536433128357915683864350486708246947038240238978975454371521985255903867565546390874600324494680498847631071703563959068850704030589701751941602140532894195276251271194596225040451202478268640041463693027667482208072422519173357084618094876532612080852816689465434312441265214978160995887581535524530232111785494211877883556755725551892619737298430646348222252551884811297040006740086535426109638264554408441317261397848543984474240570068265117568692262440131865624558739051727175807884381924758533138071749317059188974219079338368877939721990030933734730480611010103864394439453289182000873148203323847320314307454963580643239358491461559567773743520587884869866426903422677986419348944821723242997301344986865253020415201172635368517250417635397467524640889335282008049221475933798148175950688452331004930730055147062289094547886627426072583060397617472488467008405537744111605860135494217190024850054559301219659942990401603612930981283383480414382113792234751968309153182949721890080843924461161089369900465850622753362103274979284130731571176522380155897288340388556184951005170580493430230378867371242197830566930221773476877310912705201951581594469217572403584038997491714889543668069778610182925269876213917154853018845784447145067756722108191241248916522351354110128685780374395666740110062793559810684788280340095568072970224147167230318412621876463885525181031716353408819288287808553596072780701871175941726114190375477755366352157399217475096391090403125171869586436990058199915425326700173771536236538520889238124019109689946464996215536200201359745389973176505957023896017208454222344982184831577147782976742365891170080663473362664971932911041387716741167103171331145603957318825695919517690463198176652256164680498541187567782075523238648450940327772705488799301420899528340045802767367481605858772511561016622994196821969073008005800017399685196635172371075182489122904857227681733569188081112696587924071784458908119799874367500125577088253341803868832932545903563288808505706771695825110435366004662170755826378564246709198500334965707101758429839241447743939877890548937284529467679495927308771770049699557424365748742646383876184882169525787922176969607483321599708574238209923766851192733321951387211262761620031773092002494695024183727192293039728729661701387659838500502883153850147952203213347555125523174744352866669794691952555149611631526883847835728812118437868036613368281589090447286144347384816188426385239756693824938048721051491597850574601112678576376460605920868925292884904755758161063316725221957488380514285893616850261962316866777998388342904998941523430109091664713497067091058923921415857834952795931367310960043221822606028150346042028643388917522421284561788289764801542904525771220758974190858960424529980733184586237059544326476414509557613218949233506033844956949097064778015481078038203458622158341717903755804196288844322123887012580034998496561620658055041136695094178713637710873628069790828774881941359381963744855979007864370873872747860058996422084965143109467002730821374526445570048583592685706174598678925176668708369126864897119956180089405023808373612405722532759563765238080769941159824612318375133487509071089246960826157452327591940739433263215948168713178350113415903671786120634630604108760158285041407135750060061328179597156650070286009489050583720724485455050643849216892751932798486158679518081421069108657409267351839810759261985945446118676931344247234862283641379903697325209111620438354727491872071294098243491306172539628830896376414292700353641134696401156639674326867458828824675237166047072451237857626405174431801613445170973642090922072186618976587301681981171846338824118042197146962333785493890396735797117260380940305738371926557642457548494857591857289045820157867516703154092868612002266704893392090929801851533486512636355447137303140336602011017862264825111567140220091114659664473134084098521958946721838871761514401950713111930301765724291535843061895235946409342600058145040483963479347596632445026296832266938728644408298423273259036946658202761751393867401967002921457327848450592002522897545064390890267627343987295067312777342517471907478872570816416463430159729041467626927789598105310215090449706009032863339866926617141316168660361392403041844778821889614245818859703408907316183708800301783185630685604474774769736133611787383880432184558712476077664280640860134565910862399799882418638494347004593605016773118791829884765418648766967533951675081482670930342790277500549976367364982907263248954084447814549713827545058942958840014651251541071924328825774569851533116006779906743655602891534471575008034517831652873798614002805849504460181702545850751987505283634491465693640758950596094387817396196584930844687479296905579443906914843593023098683864963288090418826803102397342951956518415445275477923773581263821014651551709444273690213066905226633150787500253837566641222425873155445001441368264289730381133102007712123987761060483485554528012266273660268269555718295024780520421690138759464467228713805443832242438491340294959798909516183896732896484518675465921244923255880825193262147476813802982652073487440487185040028245166602166697780945900347731837745060974325789946002949249898381310408546581234392558337243366055275907062386367549324681046782143657193204373182542403412772948969339202975835163210613229637853212587649257687630656705205873617317024382180665245539219797107904316255434866557006996445125945333891209898408143809097961245165274050798125010138694405159765560633697386786465305842948219723509118575017149692296835096464789370621702145850584419347531037201960503884368303900209754606589588107908279083886868938045610836228732986319565316152094304369281916703359151719758626978627172359776562060536369335224320002176660217001686179374801071333400334835385815489253462770465074245639466219322712157015338060798322422257249476186884428554393912776299339682016445253879686751844042700932172797230633358155225930579549559621356312046011638376030966070868443409996269675532136324018892643802512047042606960707805326256535113377329801953893557601376552278606552705352822037933966828451121291091024076153847096798719386023857972917977577085430755063666853757590179173482162947275970695708530069645445674418766172432959622817892977997149879004300136855586164856028608635998584781857332791574775750568790719636832305897571986805876818743682931737251775242608172081946220564801367751892069764602844125187311286334456664596228640337736960530262542492982304928526565766058074593278484227951555177268472843559007799438498632036714113224649930477227565913594458363485173595045125539437441191887480782274066362961081490221406417828739203235505340192855292271483990352753593139118235191599984521117667068772079629738409564432337362474787966371583338073761857196252341499395723562715903267167821621196876257325088849759831625166221185854197039861255482001876058409268343638584308297488253584732538433114315613288444437235379963519678834442722341277786967717059893846342593602585298533926352882833832563952167518091943193343650548154607938889743082175286756848493894955611441865622867439689131429020617591376387673863854781413542482981993396664256777877688574065947227448146531832892077526775235379023923374677289322522766923005395535018211091449692860470433247290559511239190178393247811196443949772554850052898126723651889454790817048032921792793975632746677419447688951759475868994399335494429460941111002765491344789776763883600322363539088687830804424327293036933128801131932101457618241281475195053298106915205208624809632285403675091802857376136239740920647238689466983099945835136924292152721190327803058495163781132302663634468484500090256112596139997500752027103417204312237640354724687136581147516687351535005583807181762804029066807862399828247495177496589574328522112520481967950994324524297480658890936925355887499907722657485036641586819111592089766893572836935764672219651933124957236715765309675580696788514947203056517233765938985802764100129129079656714294624030491076092346354476990823371257428751904056664083159077842618267701396834918702400097726443437081113730722239967759152186841810069840267619570111461129995133883544449189730881688255862261326998347354665132098555743633683642692667847047986270210576940110292705355399083717243691367574267258759882262107420023175775238977529909176856030344770064968335019497010841318972353831792849652915180630579402146468997591922511516630482239323581149415273794288139908854041216731609308308983774026658707457624305104923972074461308738960337770445631335419896950400670162462308602692468695590528498864041923700814880507262850121915560930714495761613011190664826504087675648767719896603664974418130241661269050652409786880127425235014125979161822173366268585532653030388587510960077007528745939011103124628293583055501295198811041067036170717537194606350056918342345115906183650312612199430549262702823760049991873055232045760971106062928657997281466109539688187957884511277180147919938773999346612443417900194095071887765936037058812425437638200960097373367617920713900465603981895069688424003099684447129275237056677101045483722215556082209912889665014389487949180187615168004292455277922532740621006190641093431943562085454527924975166120002005619429876055213453313034618751883786679211866463676016636141990869303513503214155312182932120632591637920244490401708131694611295261718699388400338743111561361997536187486935059133089196808845913517246171542587813610302966119982052136227534918834558347743325586281621990767128202409469879744697837467801227022407866601206973272342334165561070709374000454270357403880328042192223885093478719550544668532724556063843886615501925964227253912425046230501149251252233576551362491196208037945380720509943355800010087046455978419375597124321668978602618643769041036963508272740594299820881232493969485236080553093565188826700740630498400450171172233695726486149139785862678114323657611360870507167810940275280241578045169552886223594485934795533114431675511958952212522671534404281948653442242670839045202016064461276616514843543127087105987081899277384478016570799478285610439649118431608131331445425534641250066405843893778551304948794447925632251875632975053544418998812674304721615938786654364634981089691666210436551686093670935189667246247529429206658816696295634752575342523965431769796433927075488424883575211406502127430263960343178441198816289802553364873829901281012559207099163605628841454176854772389980222859679978366436841318392749709063723807481449484153480621361337730167446772801347063886089547742354544979457748799705656094484193608600119437953712846103925300677285000790836602282804944088785611658466229850890115916814991020286362420666307802026192856921050420965931917103447439096820431322031447625605424116220413073556478593076559303505103442203123756019929983495099910238929068987641594856202505965318620114081479888396190837696972227306606104305858390403563121533172818144067317337887040393232608753202412427338405991234228287535395216771786212361582398918048438378505874053785909233889776353202325866838558419513359275838771798559293554475193912807934619129759192449221301231446467922785844750429970525104940373526454128693800854769073008641966600600066705406028821104842662429089253987845837277952447003427054198791130436736414741483986683613490810480366991613978710696580778594618248623616694937948271005066770903680492153720090600558924615614053243258031323336856115065629826764523027751980745095539039627807526701949496836651960015875164783904713137587176659497188430889427239491761864766442030518035202698408826470830301072761121370496177314712597294222334374399178305782231845534008153300141015853270125215394583551349880081572946830540006824401837667998136649105355392605567873902223065896476551390939892444683353737358456605754581972141235985917470623145397442026004683526401574691201171601476549466084045967401349199542867092422492458452530379489922251934130592428674607458548412894302715674636027839937786174309059623677050584175446911598470126320929830885527794229775057122962569518396783491646694256759921549617582019758123385772245722197144378731494421592462118447291672493530816090738283115170459666264922677021226075912012282635270110449101948636838391088586822912127794587928646750260741683658062176362779223271938952431765272874611660077735766463704612118794122443867658360817519146163580062300011768193045614697212718882309203845845498435097825573727333252888452921772674599746446098069250953847564633347705700182488574105837594208627371866062400481326253686255346332550921384648281954695295982059997553913834747411030143754778042772076494854992654914120376557557266293533826040289838899064008161798905662903126644927132454736341018801073919206353017147244776387336160951477308217689180027008090373284369786171761699636066690869288181753410328935128462679766592266167197809874912817466242785236117801731780636483304666902441846618814481261895027417510388878295709361725019699843541409056270048343585576103319382449763771044075547823071649344559715451483952542828997625306660746149870552579879678824790616137694969754838862394509867207437425243112695903132797493966420597238236221878192373704412087945291379336253712719014478612033529171247187233774344012374648190546036271845877560136565560955767512012572786607790077425604734067797302612776302229828187206829515820098239773071262134435064409081837534486254332491329599984413158765994895048459139976348315764447138265962188549124741056034765874675192103082700674521944816862376176501035032420771530767938479718135912079720320532181559715098491523192521381854187243017982964212270683795829779956677077944399698249235877260916437506143864445889307523754368731491920076414875641088617674441506327387567530652936295084465873185986967588350508875778810122458536093975746600235664337758403392633065143103116781441491296843911709805173325875844365541814476557252441458587546481654653958244614245174451933814174034484271828302500759312701936393732527852383450221259745442308046001784374233793805093971681080337949847588456617533886062415910265873902112566393057543113253185002472688074876114646217524604690743400557769725635356350333799947670010922714270767185199161892022654200948127606921494358845877658047745559854227588790184359956175601363338103269513120811527620728049250328921567940463888450789590740521507318852473734922487124946448384598731167689612215773750532651441282004332700073260096553735695711891186624166590431302553832628095576326627701347087468831808612155601877201386757150967125069611903560752679875875328223226708385675894387703702581973873440167025091295022907871503453478348323748704153570138331469408823925160622528553675366614780320351073582441629140653598782480266564403461499001572054800406832429785524971972740797736905817638287007921304877183603302217411442132428600204534116333631603409925047816144924642451321365303098267923593485226129686132196977772817139789085826160698379409594653365567846436883219234967202365538968042944317486434497248927031813869161033410874876598416840304166947590304633487212402465117343753481755897952821254581932578835504009441753916675484218242473364613198345539922928290924243127645205107017567344125581004054715392813385472523101496928312552268180289690479102242138077124329028438308565806896551737216834224849102193874178130158950115817949771701241581327760615501456792203068174071942210474074418895323761410136465418232106941767480904994841034469191048120044290307492818919791178122832714310820884049692476414460270989602018409798050054478491393965903372544968160413004059254998367392748995517930059666668571960200780201721645421043537941794842552109485962822405677842959595408805564295981746016734150523399153495109863912348943961561285697903034566780663826489786884326569385650030533005502626421506918490221509916563385822476443919045482783159344688578538316951924598113866042045374237195235153894852149883051889895139207344636257140863511659330826198310768219395934874384939856162246069837684307658101527723703500222650823081448790032385878591782566614526677567130020903657213048377795322269860592167010937769849537221576862370297993475712717842267519506438766120434177759780741089662671135646929283605006593527793500747120738772147485129675681029688232111830679392636211204123622561592046359464034169875794465595449727149894956946485824563921805675779342393732942277084944350916704042887951402173376467987241538356874218620984314675385508943711123704194336760442789450837031120507400719214594784524187161596467465397423445696033148826060986479438760542616355567167387705531522592478198309576791410342146237566240149088222107001772295122475864022842257097125133586386490220286183426114296559579393047788051983536272429830906134619804871721275449740168085566055900036163980784678403143233744647672966626886333305190129635038051684525539238173413203269801151261876695162024792613710256412412278550599264780330795626912857661837861973701643250207300229990180077341050898326879783425954542291309689125141973728613189186068774672129581540043983706406788125582578601136453475885694820494135519307824485009380617750634634945248401648230632275865778202478914959778050789945727103748824536515847209678198080879486726835204888942037833441690440315287701976880015014102878776912329400270213611400617773059037558867092788357953873059147153752804820875107264095596399788030449105752875745803920542179181301357828611372200049531303551790795722873265241921645259772489743637723986000560878005158173051608669267122625615653812357776120876757507503170702263608324997019779901731737057664129333171230606772399874324695846513301994651917684148904780190773497912368049579578235173987680576062441253775524731268935154668025077987053339441730576642824467838595438185434684308647855199944433364147425436559061093813811621126894113622331609994684556999075317659888186477338373168335540152196987396074474828773612437781940755081403699602760975293394890365997804422270550134019289988597293396938208385715945548295695673039166289246306093014396006004623200384048403349444165496181080114560016713047806045096141411382672049628922023123389219101867384392094450956130825791444650933777741988194001875799516316299941649432597508532872083048952126292663643259238954909471456266266544694759545911386404114031128565307983910440767374360091381876693940728805535196032231781710166466847063530196869072283309438049846541532500953031535652126314639582066116706670963976333087486363457169252809249567458830804591479159709694800097274948685183424167660682409590478616926523795165942222686751213980931866960489924572641203629031396983919592702092030988197654271226519741675714445751069615149835122747114398004704118908584400808189667435116441430438914927246119762265589406389651687405929494115383686970746148946875065756828715296787971833363383366675148042136014314295750025797236271904540747527267395016907537905124998068167055733857524007513170607265074869019431395343049559572716946209121428118303671012626920289342431463085443388184714622504309312195496770393263746623635231079920042216378574743228871499806446589443770705933666104633121271331503086334184105370237852491740767002597339042196128345299947333749115429959798356567677864821192225221743755518440067591893256148077566698188619950799552439115146459977641061815554263394524934975734661110349749214831123381242566252213195563686226264866712669367389481958132937432021336615795194570377376828951779624269381282412993914976995330998387681916102541296814345208612064477744338738637017879545909453309344962496978626962471479619734032268511202946326651282491503088864838281689124952490852894157356265956230271301112492460644798511285567374319710591305932912856038776527217795667613834990482066881774358169608566541588612349838569677021870178648868614000784369226461574038396732435852684813981919362370749708806848896828793176033071246654246575069145909626222449974013906871860884368613228898773858169705007892840711755016693257865244308997773767359391566450290561910970682474077368072772149651156186324010377660607750831148994478897695665987124829018393456006463235836783897269658935569501491529130974485867166218841063295929802243296752991967478630368333664771431290712170193755105001971190694474717618528678132157262074455068639727022309807214648051426403923317146413474277973483005534799070855424963726787867823656544729571922562562054520775999284535119676137943258266118056145196888028963593598834215849272850538217772509734853957153894714257286542527402985039241363226846209754712852621383677345216756013145604338568854485345147344707305634311393356308112080524687398895274477787360384985455481435139070157899972723970029919154262927163098915281216997489521077821254339112096275469072321593630259698390569809232173512267738112272166240472432150697525898787789526691635773625788108384552101408828844113825734293287485240450763989712482720704804637396806745664665569511739836841579606106988417895862141312825449953780983542616483517327414867077216388110540388316959765992474768589386737677679052579440930070127371006813090507400500732687297109682570697568413664391658955738177208265979985648224936516034610142555725234879700307393449654453456238286911115994303016415005565827550541445274568450418591197117636659291669551900059197949113874062054996172091590449026876880541779391481097472359056171300737076101956156103722831660781431010283616078637466549686258834146858866687217081570219457346567153121968608705783923902898618625457289539499687415047574544063213604937671328483459982856665266687068409139275712890601174219693951070727123512233136543269148567104279757775585211951494828232278201381861259270728268379861354846298132420417457275085533476707274445399908862508594069215668345688353325634038035794340532968408217643243277505434119995145769507636015679696240471817713071706266550243538595299283815290200619617791359361609816150594002419452838444290130517677715516088074978031091603851162180939879468489146250532674036178434708678104319404280298738752398242897117096843239648242068628747395084597544756558590296686630847364547792408463287727237412646863734941380817807879521182942593139168318111195682463785143551447148783530158914497644860688841366483077551344770704347383046434260723697202607340432037508662801760581833153548621936397390678101222428217998434310672687635996640282256818249955084842176775456885448720052205545848872655466062567708445891107062160686123095062110429496399211364321152482361132742555290485181203088442343724231463428687903866539777998110980803899568386550125950719668684911051141828991955853427739063428427403357203179780142750978178190453580259361746221104104825935675788759499916203607540900149363797753510804921069278718654679682257044339716886055609350570931847260547210200571246310432405107322763089768897706016786580108826863861896817912408322285383939161767745379127137115550377296200004814901005231478050258929309342260515242805970478865593635605751963426928682585094478151305189599454937937466899700902681720546779726162342402759903436350100859993680189485829969669593256028964011238692604923520197862658375671604568020219051568416840486603428933255218688668576556902698697224399774819805846353562409880720982630329359351434624834357909456872135590090916416148906763121274812552145016610635976839513670067708615626672882253138528770879783010634057273992932976968314511357658271560785799696093766638711368974526707256927867262341960520002731648988849773184179341184202135043365151085410370505319666751752366377201459836207090465738278215500274932934282516775382455912659382683844347699866754051502556645803657730082776293425789220280673687345814256605878682852372319396402731042020057147772124459738018381186287569261066450099817149486376602442092376749342969309309143189567252696719332348027178201072430964650202027476183801660691705113533266176246954748819817359392924850727435928539664356706791014145391783228025758623424133481441649631096190067026303436442918901468709658274180794999770594581314667896873353096436515872189249195391538484539881048648621567847408742627285434350693498696122726314974530908366371734988017546961179429513776532094595468628407834215132228452203532084476276343974660746040915167381606044643633811184182196228909416637485370987373228004342631075180228040265425904096541913304366128674336160520927028518214004834415464735068142297095932831906498363543331169373914516835678815399461743221409054694095303422025042680342021821761391923508385401753816939921047538599087025758437601979329914557168708986808934970394894091060340525635302024083035753935005719101199091118055580006733555332366801758522488298324556970118770147053967000010023951839034174720403877877652852099458545832242653706082654919182683788521834350505797034254382941522814445584051784090241012062781816869072865560035924044058114586253996434539966238445581020136267358859335205787394217026631581659492242438485797571609835311264285218802235121429949969203795088973117572947094201237936301560722914362330799479819111731031612937699325051416222700069079837957253001939284016905270319947039295926707732821058439195783876300160905555057810299109803114027772727803439130283479946943705211279352990701446913746378488063543628867885970920249046772977050888551328610592565553391109298638512002885408387559714231990235814088323476902527411048663684281543686103445613226434740592015101108590926416171593272479923640203761471361311821124319972304963353316902398121689953340065445272708134257959522844964962914470520685300078987274413456114547309071879819550671003405873973527484812573335729730533821548097193821788221957356981320287704664904066991114708797578224956600343717162609280883725040704102983163263869429405367515748346539296639605834861395941118300020041068901498224013416330865540947642395497472738505705947499071004201891087301703621421585838863885601191379161210381355126257127363320912478945362856413054558081909084374659700978895682457185505249573486138875779052606099367622600787112145248206114578454458764292119285044620101369913731162206795306824774433352013407073221417029293352612408164778698871725086269137391297808126972847728578659513882309745913945667572814778501457419504067144572240028379133860544394441180087939081013513395590744666845672473894465719922519124789531331035544212925204923542754562118355794872204661186156469364246211341610277135489335047334920109961104559517477273683281489938629435560565016176280421463658210518699519867423247692951057325239290447411350033035846912232125820317232376814182057090448642468164147115776686455787089126914136282070794559357142203164025982414506762539321463420424484700558627616169520499092455191505587305684146409527573366241530989451962490048340716908666303684152313364249112790116312896391605605319480587426458470184667209124223236901989167927271519374189265856302136170154198023283572385981934883145715894209226797423580688623835394960958035712822830839727076084479909234321972489554806453856220069361910162009269667837391563758607275367933958096295872787956227364472650614425865250798882714629717824928404529869506651544056926740169986668510673063547945406840067741588196760362705244231140321898571174269096968026885346488094185159804184091619765569713236510972895420393640997057063925657308983059517150014083875463206010408808383558184741143467990770519400761329116502997975258088015413609485115905171745443137414021329994299925803773117219459777577089491056257412079753401780604034277016919428179741965586434049327828008547770835751810119522447916284912085962125225751040728894771931757449081756304286449085692370470408036977516959381287347701310796122568656341184547824717149301312737376346805609431657236560203319053854915801768460306240367517526202670193614252193605765200333155415659793968847626027598776698984827815477774440200427541960747120778903374693133063324883609536554660736597089323509062763824284052576286009749100110797728885741678488775689868810678486107347498534195951298441663682320766669411314413514688878764246209181925772882610731593228581937454820072307206698403125884491601118127051300684442628081861316210732341172828216871533234919834200294868431638389103329161670836823152237413403589659548287662270088542234167579691904386789858278263877078186007160719589002008422261278524629754056362611650804455354055198300809684152205269381386265370440469417782919679797990894667398849571710490760333630712446098616410441459671085077872344312344007470413648373210875726734169917018366456499623113686894877335713104444081555914751774807613586828809881796466120443956632143723253113041240895929044717018877313168560873952898264884969009688685262161193953787076501448205653650440528254383308810685002145087961573997557157730838561341844158299883746590507272744714624890230839128784609334132984802080189011275437150276744118792481702470788731904456855411572687153604117038774298362907497051310085890509759770040941400742805208778455308548654893913140308460765106036959169724939878854477177238683964921234562739018594471815112659481334779268265992630631659745906065971132286998477720552917592501427645987135626991862030567596941732490585621696903825151073864023365569384377051338579773128289412766204265097176476106351224700586448059903859297381616777637437468735447243596050959268784422320798314478093864134162264491656229736229402959262418739850968129559771693392109119391827975022570409114048280502871451843762782314876161722220645804978075435825741198016933300903519139418067729566193025523502011091383273818530563620309862482163122563856511943121829759735916543888083915984997819783746359759073304739789219145806998338622025398133575124494404442418642556056373356694942526615240421651924056882206183412926515870297829217250925969756470165066111805595835464748857965468694279678271248471484915199929401572865513900961566930285820916794209756053971097170985907669864183267788235462417703677184030058800017744118404339247047011203392082398650966715096241759786334845784116237276024382560978622768504725413377421164099202780717116247081830372342456071256135905876789541308421359769691970129482059764058422069931527206326778280491271745994177495412887565911612487964304306739962094084315679586448252123770451552787033807035676208280716196286947011478322447413536316673267349760927792667504596316711727827500295727911822353121842819971412432299401824645604280322920654524995639438556196469223627990740911276721064108478038525251770711930099157414448948755030638518264314913086932892858062222314564916038933111726035077558464053626206935739161974493134009823735836493690891961276139586153065645227066020998029301486202270666760227302045087711597876563889418538783075056840545783484251701304164803578022415287091855757275575636673939691985115356055603984848581614724691783011683376134921171917198440904206772135608450855583117313341019996416386222220646586204091485002821571820771941129223761771955447423603825084860018233725007297969786870421286562799041749205064092409573138445161860973909664646641154622702011439681752902877865339781866111616376408910535851623199054930107157209256238810345760808480400730675438630027489337903939126635684885436326271944035223593655733948829809917898007622790144518611047269515876856882260377583904540547836970920122626775183419463610911299997322564851437645696586955288097320141876335632634435793823096398557041568948339021697610065203304821013452766390589678085893562526214371811372269609425055715638716859505885181174164677791021272852663569981703045557904595983804635719221360647354163992675760215030455617939094636785982336379277855509657723883244915252285750002786878066696550517887915150043577754943231391806959520731857839517637207716441283370237046900085840722289260958649671382750601730348057144930359227037447278043523776729080038805330855165814441096086915670284346871495698672244635085918182520928156977515995726078149787442599090006874939816864299371996471898298270835722736098038469847560452959892707529215285956072462839082410543211611307292792104208934872182991142655237457886104149953230831798242635105276258996618053647318565586320102701012082705329417327234044907331288868602272167527106553498509794614217358658571385953745462412105215203670830296609530920439088205575352601964133629339636996121085185763871853468227557888652266806823371722443221108840148285257407519126703446728088594915216367720637025645278080307550479072896870887788147197696618191729251556117833943316270938512962677053588523123775908690165708144591053078961446466231749257557293866510084178600187553915962146210456780662256437772685831676140825904893422316461411061462299451544361223224710794857119626593656062464053480905695786535309531747610516432179478544751951475968909194118410570414638362099640744229505585810798811029183312616380518668160202853743997568039983492309710938579659370810518587918581907566440439267151052895205934988292919061567587242555004086947452620562077869169140949725872154287384338884363081685432852277848004632554078717976191266396055048618945936176338499085230978471844626299657103957669940042918620851729015925922418602871581101381935222938603445853865025899957103341968768555445652180402181516499680818739264362696359858486735159860923266671967030735473394256353144328744241068252259483503942959406298258834038513042172292440497394503443272011822112850776814542095770996523119163200909393815304017089213716629390518683067788383856479515591695415055285438784304769942873952193584454369045015924312477071655894086467233332882781080547458591106465917733077680378620748787874363219265954050450026054780630687932725282511815289571888427274813003472993282198512439544424884332815898759113782314822077240905288092104783040835357615115760568329727468516456653101416649898899330730019773184555570280274458197974240223062904113303812218921664571341512007866903151567177046974969017156182025513912941128731810173894676504925220517349021953847260552506560417756433191373948601484210075288045073339550761371703444770315246619351973196022726930231666946896352471415699071323119109284051788284883225402500988964608686903020998660451268752205482647126477600532808923380300367014584544043423947930612285380546134796278446949870779907569336303639363934408693255204374280761230250170224792325539553759679281452881078997785528615914809265352675050685671408476132581643944144554405577602266249016222861438030583790892942637183980498596257295219287787434159413152278391759958265230574268628873959015787076045084066611271162041396693398491656672198988786487598696030932422868291591182491223571796522506891212302395102618123782782483875842775485474336945759119329509498456229180106820968458650971610154094746877293664338424603248133668415140389342470604356834089199815059156300927660770858827619238776298569677582921361748013462193356486285347871743085930623092513274200316867324217673823035712421884827539095898307995516423481223265107264940306472963123301220785206582439828273635849490290536096067080388729291663595952956332835770482435249254524740690272478456196242155783389962806369159599464092474910776937321488247576014720960469581191412948300796821436296040143572865031590912624466624778801421785353702645658165293612557124588248435842697537422738736112135552511887175350161709238596710934740448579035840516691059052073771757849341464194434060139372558921214949545592676841476918139356550926246741427580295212158106338755455529041859030088599225812842707750676127288558939343840819978142762101366757937490345123391586007205053511522980544892574914208355533421414459960570268222600154848289990411541553712621989891162994126537290683848006995382729277891250681407691034171583851959745508176401528240171695125142584186176246830146050962829003492318172892649164071768676255072306964010169110313580470580222716167185771634017857930264685269852112518992082324325158562505247009976224761193583199973082520295395639508188011693103021100671797723945201062067031312859855142531463135286758367798352235231215909735737579073331439783126518133792599637888840000620355619890490598116326030149497983990039870217896236740193598494986103767088187563914785834643740612975205579770202480739306038130617113805383313581234728069374542426629976878832511392261734142190916179352964664660364850092391272808729720278556087633438695156300192951317876979620875175821122912043157752921329407283219853127808771628600593191007556346810132808030114162688410237083681443400531204146397042912675389670091010449445273931908124075289597632723736483182842922509086048423103996010493073491155663421253381918401957842554536521305749514637517059543124633593421975201317051439243293277509700906125853643858250352310487528231306824403665098589939651414203577982085389268441433115637704979271344819130840164382891295692796928202821410499446405378722839638131973918698103156390488648469283715123003718627336788393713463936893294633750833565441012742083200680229575016743502081162652348351891899939846832453731137724758691817667903385256869043082498709736962838442325918726781236326862311102573607719423404312276636286217614856062874567363155231941996872726815079409837594767281322250831989464531127370026120524910409564908461355303249657134954237594447047149149786783463878519346243255970449141584393451011881575355494257014026882438415171621457407696574984024799047730249794368434859533998011730000242964400378394742270912404940251934828582467983487688315016288257318654464588340686563251844059373089832969428963872848427642313265902199831667754812948658180678008423104584149639420884660850562194422252700636824245620020589907403292617613094526314390254127850332218650503306745423942337027651876815747070436809605350297420721556749308379192994355760938149963718916268983952114596062985957605345229606569154281513070606624253941294981161172561268341729561409076303322679253079750179075271648305839694351185389938868506682638047944791581424485197541885745888808328875635298796175654407448617642023717287182010764399073716773235238868004118540451696776338140004327224886847918168636605915385898871114927746232967647574202566623958469204515221108483986624858972185813127386208199670801292007033977746356655582410312627393827493239899352688229394115600871219686277518988489216227394692740505624244732976666736672392782956506752061851895456248583252036021379025798703791736494829308485776164372213985361922010405924934798486391792360516471278098634371810797710026975404522056856885391170890116348331631722588386311652707135544597480230285827769290584681345472506190157166624653512222293278608773740504480265332825599601263798996906037375527717682399223229422534663602190273216107649909075910382046697112772568255151013758421667934112990781021050691956099797783604147568807699536205616056546667663781327237401244019207998107690984240290311213420899872799863465193358560763766383610857853031043913620995985839932552720182477853260093989024411699963983464075522705469683509915251626745406539706350443200272092141926808199161157016460731111959891053188529102579900969687752828008673719079081270566765178167100725501861125881853562322102192537748039762113078120009299551074453567326681752610844845842238003736253534173530534243691843404554445542621819063266369494940110135878926133154725701467454892397515464304333258753135839298061262745616172511689549508064316290896510089351574703383303369008101866090012770152397629321277620039559547544928769304866676749283928843436184281065735613265812936258229926588658332329033225344188755540396061809928077696211867750944271351353823232101716191339784753806098116944629837961994007124712551403056826903989759088498116763235308663657554824065308672624029244449125236417026100074232108762778728223500693428275915784782615798912291530230577545638843186524696281362258434857253604887807928854624008965785093220159390113891939066246985965270062777211635875645737649513825195100647418197718701312936916226222008117895562280856470581169695431005993569567023401095003377462291799011053416814404657920983829672588509994299486734366147268588154319645068152189304766121362810468239686084068708633845660473575404602910054237146765869516658490703189886609857125307587414555267605438839666059906754310166860678093034036165221288756866100049370621226661851012743866507559217345399515059223579776084819879892177579841491978296682916732911596911213346746925104305524941493642512071334767185991856310553954102795480716177648817227266930293894764516608706500435067929386422430998700013132661242479249392688682451155186370065957510272367188002478831456362555529892035772870978550155175279630095290715035325440674616904877664764467672805091006043514839707224338626944466020039824402979414414125408621199906771086641923872187138442484633044963915154152138552934217586802921622030030082002365395626492027083127315959245284588766721768451423547241103437471275125093085989302266267341252781933481449000976985312423779907042750021949115604491572736647145693506466171305503387024924873918565535299571821756367461407518536828813164862982785836013264162307175751945497711597978316885172077549126522853232808901736066569451502150588608617678613885789533807450851834877523685673020456494461215580949542985262769365311477947730452216229140297458890623857109748133260256912158959563750268822722260681503681958959151716070834232439310013832074171061325318074930937885778160498277072610100991156651030885355617230652648222876409402261073696807957048088123256854328992674568755628235835561616404359645315330169310736171414501539286640368074208501708832888607248221812628373028053484447265256056070241541392120180815421356415293893977844869851835836681462974105903125108340371087091208519318302640465276368788585271332449888228892842280928631300799088589216461767962816989471051316974458538714305049451405075535089309186407061301388220628992719555945558776107962270024700565919074134797733530966584109876162102751736287792822714625658828665581383647343222344244101571396677960429919423188145715552718323637507380339220821341987055367577182652198167555667719979727373686214366543058757768359970780596809150300570478534108977887709277058873733824833492685953673755866774277502490634902240112411197528087278260739502823597424816875516636662985383486879146417215221608677838147990126647203469513384578257072335539796422550810768664374279393885033425262103648954984816917498792378279778367585233590701661645751729009132546958754982955529445344206967134229240350449873941951924868276282954989927729200011563584767011491331586958203025203571643954254949071830362073244656006353973548875213457021890119610951379939260594357388515463733720767391305082200743770994285531945321609519816348967997563240474403937333454364007137320393222893783212724044702551771853753538518626756688911684540834058502899002668023422680777872153092497399204428725662525890106217328155907183961356754757291458712095723400173745628377143419689443932410626684339575952863162260298214842868024865297699421313801122583866817045628942097632249798320283782072360931469870692779070866800728022228880650319580391450081088889827047071501412516253237473014876316354904156260054970400163039504795115601152188114354238617589793856802186271259647121272004226620891846508761481787214083936871612135085587831854780832541716718822861760637613485578401296756571321099541631559163221679750329303158133314533513810695799156948271461348017932375313833611123763641785656647022602515434081991419116623344777867537782424793870302445933723456351143857443494488822544930410774701122313134316737880771173257655594966833215172989357236116278628115213766453212272404661362209673274099247504923649490452413860075112350162915656808241275721201403384884980883049502238271299518268270897980712812918501113809132247590517092140253767044040982156168757225865862567288042346495294059541883185597279541450704048210165108042800523814591459863091952894256410814514958646272523737450371021353577628144576461207479733812896864786204779295298382054500945080779355671673443693576751299003481698835900385771620628650964320722052321225456054971667480058304197524127536798599505177682467763939083602632606755179701540618690696413990323098110819388319750000949021550375587926263207282684171758318240968874372089801878738189863330740612227448120607741372741247725043412948771470257751591860278816099157866224407081819948159116543738519190326919148427738598027266626023764535873654042950682401681210616937325710925604191036895085572468540894811137779292976177114812063714226865270473076029317144753221417478367179133473579010910559170306486496148728024880886444512673237997416353312962174814903048676521493375957555836570880624201999743321083395010688682573938572547496673053484426126196137207505888745553333073076667896452592560176995970819326456198521909808523394482854157245214775159050759294635490493184145147155138781924870618954395589552118621741574407058659972785838824463251601175111045453247591322748787239753068414488852161295882913026156877408760809066352300216304136345060936814270037786035108093326857559315163015369135017657582739828746016643727988141916298194479038484375354801458169460785107896314323864456402173782053868284160947111842289240775224203690119464319937940658993668601215895303853879287303513957577908055263372788145473630626171294963524287738830333745184410712865389849338263996784655709038434953571082706942288925149806312870850268988892931857813634623143047633575240485838193674731099599274435307295443055238852718384497698745550384794996258928438076154477010882022981000181076934015428230115559390365507601329945069412391173104229568447379012978204035244650960910496954303586265513870067910019250216524582052508840515629167857493483035229991569599418131125580911878920144318175706115139517359946256532406492745248823654775461580536109560964623994668210090339080901475165860132813902945758585940705743160539075050459476462383019502694924084778872551852580573888439977836953537371333386548333391375752859825289554341302279597564910793793013094712272346972322878405669789948680814775116829663290919884760868667647679214026941662211093865008966036802797664992647545424186066343884487092991615610691051942035206728310078325141086500014491885214272619289575948651988494473228502163324777059714873362727787677088490048098499465718766486882470359893027225263782903366911186830983077148592438568054494278505459068810925640198388398648587203569283147542103349736734690378915368579667934085669778155960841745260274249032980228475181699301233511511291806737711057800416604820150494249219283225162188338135694502592284420772369343140988647112490453997605442860042393379015534345183532600725100839025335920217578844118048898652754543007744009526641686187447042791388619607466665289971457001454477533398591419641559792114976044779095584200570602911563021067003887351529750212001136744813254601558519086368621186602485580741149887747382689313885629360098544566709444350057987985709820549024971836482510926879217447967139761883186837224894794174270178443229018601897805645597019043724708836174618641417632275380136112316429565445584296393210071163217870671551585896184022371167824878646014512171910796422455861753821542650210116831117358866942593997533913601155101591983509089196052348347957518391591686956321465842100794095829753288823465976985883748514016074689417962976502993328961966766868024898286172328837473714389681622330696876753692748224138759057672297905301174573328704793534965183739903083350744893929511279621577463287907787883252484152818216239078948329864048701017866886503991495237220555795122254444468909790297834553989326471392675367402591085191964156939623720733640107135205949277927365800274719666906386871285464272159185927837966461281251114822310742826149083990583714180037093370203537089897632975977363539390988972477428077476264859589736362266230156415058997452985498030718529591564545404365670226557493000119006046588898699220620113246939972365609312560318210839448049605132849775363347013845453045146184820597907973116923669435911899690169820437672339553343178565961886801540958678985388094956590204309895027898861475134428714893214401440978474492915345710006356977104531298826182991727107273804944050169630478211852428070602775608205945604252614437149071256313038669784569506896449047442630357931712363700744547173628159241444403315611036174216039517594730876785803132612052029269762820334117980808478371868505528806714352337604567781490396698138041578774602136158435465928415044380836051444363445734791238690432323317136204760129222619232539385317900472590638618946483176298064900340764618716128282863868769070005783945794794806463820594271129967255288490938201771238459272555890646620186369953090619578088091067336539248203561627950612836769739422944256479202414914908956927530405460435010927065464307325528139800273036093654662999394562205681107197280893822084525017585026156677254560179485174430527522586846608975954441009655115452512699318161427546664328080180322168680440411673523351490015296108469266794847400116309096040374437983892319173942857739193303985608824393620194482859399331234186208292380714970426256216848485236833467240749729647567745387401113019754886955750769660523655709864892627445415540778013743936466696288547777222818759469537881019837091556734454792946413941017037063906059811693176622941411447360813890898174972680692183169372146180080009087261908497224075154174569435437414745497515555280198569385077469824852033473818834307353420290832386575572901343457041859795412400416116339074394878654053491903076703387366142044563721559781454190170611776503305152828531236971450307473318644129730229829051108675712714848814139850490625471677319175141127064689126978927136352346593210764147426132304947036689257919318232243474122494247247778641329027410486611863505280586705393809370503812873001308859236133632267364414441342189189985512219815632530730975665283333209748801174100761000683251893199397168163337718617154822442367877973297049587924322647070272889264384846992197363944229163855412381755415422871070637852771413617384738286822581313239698600933717553644182580490371008247734758300274500551412953281990351102054972650834982216852775146454705539986601048531081371590809314161582850898354642220932952852554451956418302041413872720331182762613413927061035855128789903016003010547364841090989486915762438199428625458072983247532367466423979425837092746394055803351544407867549524979868500482669062847922807591171932855436483463682627785668982357082574512218398473742600272459927131084655181037176148868117765034897573573770213058870304717762324993787959503317424124947277621286719838290024530220534726711978277908715814788720500387910933403005740021158986927338217128125926899789492951584744229232695582795631398831742478675221832355895455170175173442965020758853070020758782466735434988038686879410977858297129539508858247804416040302423975529717125274250407114394880295309413052116783678616661891037459175138851457927729969035693202382849449717612730368866093243039562649468767811626243116521986090361342053001737082788463840343965445256639344486109078578072667979139033034457394762917784399218350211096498793543474909472234842998915012290037618764218138053539946847807782788081477682461888845581365836715028704215597424664447063304407447288129671285660786839939751168263378384011516901343815874446409999301060159088448392686213004352951085609936080440383371936631480576834311113457345101392830750392509351095151049621598682536786144626903872382853731105682233045449620761416896522618922720138601346766138586827233864005348673891225162340567304528097990357498135876584088165980033949397925062335216823238594883665996162858403917531412117241527573751705325187934432110493256137944107053412677340555816511560217962761231941513165748091562235525805763613394069156923593228153430215086264802101460530410569322862746341014862675282597221293318091130058285080269363497532076337756019017790830189452319019445598847775166633990409844342083420040400335916074138385875458273412934711507252228313746016999183680860365599285763212813089140599691192088001013759817324653337789108712569284960808496226609225742799324834712362477541538632275489048994643284973425239619570399874443518909056512308672186150501108116189902298418080729893468053686951269907543400337518473297386321848246321743857914075494769786007934901824808142716910474346756909448939603206933023588087143757273819415443434083246255468559614381715368021710320455926830772213945120021239426393904022979107653384708100262244558342715029487889322579679216690454811332124823078831159712603413935400075331054798249859659797323526748563682521730510921284082621612177145982924865183305978335057863081609259149361337951779559705700109032096847107584631042706898715594164220958729819249418651696865221589034897140755705658110368906597430047382078522275135625401560750073093563678735330330437487987242994503148898059177112075415117983707422224302771529787113840319478112970599932342731284783065855276527717280604166189160669945671090939279667407945765836040547855972208698698525673895760853379282843404149193287770849271516837128107599329036801670138561636532626990475967029988924043593936086571585680353226940927968682996020020174360141497750797815078948575146521492798421587296698999871419627043625915308919218703748256564533677721732706455605576908724586961594909520279242967566625314413136536673820186381611176092827973076753070083131589659098810289272501176946306534103453492300217302428285344138024955235677782077755175149610445810306323415261691706070162643302344553732907797366582799195383680926878458209682574540985677459626798856987603183169456896960237038428201316170167358797145123450172402336533366512574169926230713630597792131191217903712927796655242104956267464892817847288256439025780775403291391564493773249295494839917903352479354339024342259035959217795032301205040760364115006275805604987246329588744170927491315444005453291216222341765028653548259916075080818768158352373097497988016735859155595823210357316789633644684055279332209575852583806368046261233727226662157287574380967922845073694110104997832856265981486096966847691372914598058051624410350024469398286081814406460879170226949207280473412947525787880294002758080662025202111296100559127940688580334168660494000913883769580516777126123466366219822957028100855473315368651069089249742433846859427070249470823200469272585441305884994669334654630725626562901456079560902239561246142490151774501629175580308956560585720407334407969206946221870235755155179788136808890549787385187162308262328070931337093861474735526152675714188787455967650090070387012511693934023841862594381545221683239364616748504302837532603052395395853732625185890459861612335722866065398410004560543711788948519433715857475385455099589030281777802684274908860169814948762322863659454743917968396376474915406687088002441269659635571565763446501697795180485079773235809419172445633118432980596904313519192426059383573004895505241186948258597751843579186629710878013575840472606220098815322161336682650967167026575656572402848046303857112609619695366491182781020815801981179608621378776293255913827743760100249708379687381976170183402041649216737094061818389783466236794824991768128713657969017070626591962545792272283627863107887491441226112394743765221522328148532007609153914410312768040615627190878690342759721082083234254697725073230959640179690070273876998837104675491962677631188428500218914127043885182231846730268140472965980905750371226843823126277286434195356031986995105237676431914844775684166794463687181190193008333811204446708158048833256738965467946008025310779838865823692101332691072636770909043502082450193759424973799272696850663350823679868277397161147725651477566119049933048218794165436867140266425266179255581761607938766627252945438916247686837947255806849536140476058022752397840492108581721530729542720725262799769102683720727713155927815375130382907391171027718808716883380392469571274188703141102211048208403470497351093970462104108784488757502738479198289481849227565257731529934419809189328942805397392710938331380099465495075935113285952889113619594846698734043712919880181942450096883129629949239806901839358335281058412779698563868451679849811203541040460299684071908164354245912205195980596565134010333193128570689893549700430673967272452253879209607964117986983204336747107936730162650112405330973653710353350401877884705558331303035261737776759115053813317780357499919226507089705027709492271403519932395189823836903334282104974450846852612660508129646974636947623753539131386009382091867201704675681152632711519454542957401408924576391409137693230981592419467462132088949679290828969721018049926257280698306771455513591744573518405833217392241171515938065559582548343684349950191254470732235246687964558627148276118773175883913086996182445354226404835843060147558500515583223016823970458562140625207726975785320408011466540273268946185350281242763121373842956735218826287970926747495362985969280324831617367770292714325106686848361578571905063656494925252173829614356980682734357520080170036471069934805415514280489449428319280492971649024819714815803915953774538930751337656354645846701645475797394354185014326588770614020292008806659558174492761803263319843791298110894818155790702967502193705130848030359645591258679575449554455043982123425978428365267011655332359521660122325511372561718161140095226871170003882282686631616127088873064428331856172300899634619580074766102733519961932554435381782911908041975674677023505427735036465468034019945830520514599853835599037786843799282318379832721881941416316579919803739239741454309938525237817905418204870692725955919171585814057631037853677862182655945305140595694456945801453555399589196010209133794047886931706450869104021578309519714977505767895558515463873353335855201058160043979782018102614720237154719014456688957834035418172176462626414726474503120291702130268200654269025747390393335049212059643627066899942695484343820189175389990260367832463198251972360477110567550753217282212912178374627325886373657517570864098035422286980148580677830510819082981563421256551789198804852789166488740799477924474389280538097707634165955654454955297849470250570360257006136680190288882905950667321408689572915076292310533009733253217953796729502622117480690104236816618782972595033677120099794536766791112806440862903324280078176966534735184502289039008211826069524318110908561984548951387135099032216014504768361241084471564453116015754390814339754598243880020029900207997125699111636549412365292225000884195453903419393642049315076087558223506410091442528848897502003605510717019223938651017931079965088988293494658052056926418522834561037242114896005582699227762599295517281022797493728514931170741086360892365476382961471950876638165272993056290579967460558676598714349598192912490387661960534155711327734800496416667641428870871172344179721247362759998487362823251573252406682789930514170832497714560650755683446915347271301027818687877195978697150741932812981517810686403576014809623449384070868294171656455752708976708119417830625850285554935216029753520192221609918799947523254667754172805491071289141440831764111640694531158489861654623774135722244600085005046655115114726943326341286454598950717578639037003257982364244496851429516697988978734754620377806717827590839238171461444639886519803151423449665498220984760818440495317172373762732556776481328690316312996684878953948565178942302272832924345608745550797177165305908425118822146958735958966368348896573067201518301084060301699344540865238075076812587296507928701371333679953899184153979852298763588144315688022860417421791937572904569758281166089099587292713698272283178545335380742490611769949585029862540677339401391319058447611747239190825349813962844473669426053396540158251741594695749210870740360713095596792516243829776365106178610898421552190234150865329008813422242121976908693580741905731777421007678476347354078407059067366526501988434734576881060732324622762643062833635080507222725214083631708976407247972395198848795786045778124037725506794927657874579504708126806997474909226177144830981484843405033217656334781946429843360547386956740580126949592974521233629884786567876767022416253766778849198044089149207869140433914330698985678897113991064266803729605588092621352865221321384296663795555809885394152559314737332311163155407962792076075990563538912412875164445993040027386751006717856988448990225894882641537498523713552726399081884874754345993316986633057718235946037729983228542225111263899498554129709244583808440807609757169671758489024111597950817648009278729681309207786422076152776888712832397578515203535661741154464599807286847046106042583057922955603797226354471643183740507171031718857861482580169789059780956654570181904013144445487083176413121730387115277039484851490460827031497125172479956897991526663922880738744150235830198526365771434712968023793763957913862728875466366381781105490186193631448248322620426686802121029953974984462215756459720303319062630010503406992343530362699826741014254347759673077960332064062374184659340278486055027998064962299006066397345596905562824703743527752353156574108188080565481745865746040474476660589348282168952234250640352106755800023638607256208642870390387982961608685038411908527728262695145857783088846784153499334862766854153408402648802367315200926246468306537286893228601416447694528579400426624240176491926827712207790483331465658956051007175364097859466481848769281378441669060580423627530316491504127444075247942717107156200992642331362681391334574563056687009058324628658304963046478115838318137506747581011796104000717423491384134126623072539434525570535083435637123686529643497353846481551587563554779745745117053860136375720002690811627512989825787383591770882298109884560647762932219063163579335762046312979196250103196524331810151089267453335979117008877650454710897769466633109242912670054206871876108622628099091162095941181453597465199162259200603603304952015789064033139743795162336644302952206301473237410796732719718895751002935658126181763975619382057319705872568967265317612670828054928166174492473557817774245699767275413936521197683711212791380416595848370437716284699274599457251035948897174283323931729937042273173106211364383781382117888395771019586703835270478163890806186126549055191448623762635461794370540647273590370754456334636479912394563201501546242835907201456129802881378727712647118899392855428335573452350557526259629986547353323752039879459483323549151472600159367218227063665218479832466162057298738416799095150017797089925830040753899252107157726204469416647319317920448870356219443565457133590325458012770655986261590026186293108903010969823702703564437226244314460564152226596481933928445226060640047026344471494408941867842437493933447069876629256835668937779711143248081093681858378719467195580106929556041585473190826405403988270376205972474124433891416747125581707023769746144951174029683423555496124172828760125219644041918123500122838198445416953525310172540575469261048765289098718533189842540735528304868429538939222014267792560752904336179098160803095501924165010285793559557628533588454513671908739056823059126547392994696854973401798926998095893314111499227150915854368059580240378307843825366011223684742917132429463169528785466800675547918793500160661582720106694850526285660721811192821748947100444309473880351432670092519004259465677805945124001520854264855181498741671147915081319283052644763485411308743878147959511699239926778572384288522185811098522117716866299950207966604520131945744295381282182843068093494011528565486562019614997058729892525977637487629740180223214173118447968852263443863655232397088670539626751628450900448947445484724092816736915311341437257144463904356975579020000933450565099709108833484577382151092949123739917667154535353574359434372652227064161818722379089108020325681211386408687154061721542733156966702247928738304830786874234479780600610984010039534110513586992692632130243615117911397031295154558215691237964769044581615307971264666112134241944003394266148049546603080277371492428982630696169419974568375996147895295265264141122836910731290401749574116225369439293242956173927882769393677342648533925618401520080793450795731650401213537068573019481673472698907102446202917021565704637325068212064963895907615102680347868600702452971372046674822844486397657553436494019440084890423121304941276006313591727413484638651837534162597266040820515150576739892452557907274168581446791953512163832555833591600881756881140839837690562440464747062000014178198648058178595021497464348215267670366593774378402146557279886664643883838416142399648052750000531088227924232445256696459582431145835612027093019406628885059195384154517337356308088944634509018804113280015151353812696501656458502277952827131560512792200173686485380531493200245753938130871616295678014189319423236805273487819109067010090116705404714029301591283891835079798918886075193836988605005577519943488228171918101020415469742514172267909208741365093878191174874700021372264820600152167900662308500244099910467217473827862947843674839519828766034460125903672189033110899219873698211840466112535061669484841867974079979562672753044180891998806280108701001321048941295332699466771715380457941478902858800671893637142103727648333001470166147947857085223040501474499660972958778160396690748227218996929759607842124401830293972013677165088208430053918184167411163587995876659300064005147341249820189156738104791909581454185432909954348293012241851461665907893446756749134492532793703203167896390763422869386338248722769531880195899810031819751461230543084103391425106511215489358526178959642595371131344982051764675651026821648783925716527419397514877554728320097667213817426288850078117781571908687084477168163432089595495625623723617374945812863958220770391121137681848237204563252265787019075719106054131531683939901712194167069098430342971762506640686913250613173020877174640185762120805028615349025666955537152458953400901302249429517425403886691428881548150778153048395386445429689976586437692245549814805899775508748169351469073306762868188592054775704033496365023818647228374135213605216586843412184246946157461812469794041844408906960260461298719940812219499959793549766242397256299514521009061345113272753731346126650900862629018660585872267554702595124454753827770975870549751535413538225184681240660029924494409796256434967091879922773099133510411327744449598778643870611066557909543548271601597608743316066084419732029975951206120190588757209017347797699624599748925999439179330622726766631555285546133920492679492891627249838104792867764482360571788965868375402460782112272868390028630312535104613170128701271284018196111004453208202771030142052386859926705072122162601299917750048081710765469610772870580280781474913371339754386464800698464564744794898662767964147620627465325736121902088163161577516029818087149870818407008214444417706178910740951259653545852860892084659071794277175522775551566394942328542387197251864660506067132171331347325073963711786010630069223844325559887970160080280182145699201118346227697523269329970804264943131782702808345964052296633808174215732076348209166840977120932018024967944897324874531323960987209414720622965735084804190343238978231234173200106113446241583748550687403352829578626995942336743211729847711324503697637496450072303759388497424487775891819375788175114393981634602344268854169386617520374245626928211606267723469968566454532336213665559051857998515173890209521786096525380744855278475031985410429926534853194500895825654727693309749274986336312951263599549907384120203685429575389618006368201775285429884845549272125109693411856868991882579211668113218407184730519366156671784012033896259617590967024024378823824036846283478630423421042942839549993271051450133183055307019289917822542190837916368430055582129393203804895267155721458381037460108072393396814912157713922619454325556642237011159578519325259548069832324416302336416949503257881898193280245756704644371854549524264701014593101936536596527064081873621655213727119657895163894499753174790899822387091994025412472498066423756671527236475858544612835840898862984688027635218842985367953044627921121142271613195224073315735759622411098807738823358311314618178487502555578925897806302382861063413256268721083769981531838062639069599017501895245470678693704672050007481786577441822095676505963907285332163719731429418472740241422490208690721531061325950949483049909126007652909417497144095332824364489826677681671412036074662985534118740950901111084203717527439130821315088219236987036675822635421456638032747651281480918058521426158718093730405407617863765871946457805825829438512289751921875812015578783615097392974237737343801761413639827864169650305142827272100455152171195405820917900471476768918995785201810207951293398343570658168567590482761789272004481766679937688737720525405317219804814975626726789750100673291293399749854102743217227383775533759380880061827382677203677641438101982202538913123221951811777470646385364975333842417788177956502840538421118909320044703138058236190081744120963336056904287765647169934216942526474001023657231021298306805306738912786912873851818555983767197486472238917387149917302900147471132264981191914880548396487306668310933832162435441302920368597112210327278445710478437580194336599124985981095310814249916649677377163139743890378863564900800269259920462704865159078850349025168436502921514554569691258447185247500960034714000950878647536109941094481589641150645349654845686978374352799950249032846230248191588880485301228146859675887886830856567796898720814789601962357679082412629520267012974720343242411485244999348137028016715575595456440562198776866267655206396918447732517722400769628698938553028981520781414006330048743711449034873027180424674525135098493285576595268978403408690611512533130456167970017462775619887951642666528277502197550948031856465051428331427851788174148890864309813166737615194463660591389161235956244557559977055075443897485863212199393135726088467498900361397428694065662504160570974481548939337568530884400681838544247499478038194231784060679203031002239514383352615995736930100962451994330887052262241086196810618212882399973976275828206051518174205213314347226674291089457305574379875693364444053506513701415764110616337482510840597962633372251888643883472009900934371511371623664076922726289737570542591920632735069213064850473361793542771602912512541306370329841066147273698970456337407820234855836438196843271711174808664198256729563461032243461391297450021385621522880803302412164413852628972371542963888546140903899729164330593069352061944436393058738934688195089254849021740732695741930421666523170054646606580744935163115813115163834350061094504266916046192898253283286430593312527521223988438276467050333271960728096590179725069144289325642391209995004626768306044208733500171661190259912008548309302425953704915281465808851780740182886146643863926092548435765243617599888236161287679433390825843462773228210130190074438573824980422231628943163527875751374030622670890394633978615532145748273007407125182608779417307858439527875312091585148587881631238558606102831805534483464409118551677792647244271462617577033074215328207834499378855916214075459714616274539078158167762794735681912446951324663532899086642070719717203097613358174874097164407574678413753385428440316410588177148944687875504867824996091847570391002212354730478045787564441644422422577378671925658788194260515563583697561813709246244131190390478399197566082490250750657393845133856130044747734316043235645839168502248369843536306497265694210760651537025135326531151618181564142877156334913613435330763015320947908839080708325902132911543208749126986676792911712138295057822494456040104502128100095681697483794595280376078130909085208417252194635754663273257048572811482043536652342902670784728461577269688561468229326657789492752696420595283968316860314354014886933561525170881159809538576431681270676985590622530348459130388934993860295796146162953708000118253474035543724742991729111697735694150434135632784956460481966203216396170221064883891813860438029032179292378661432770710941727174182286874817761311389142669928857497115473224299505864187546866938735355816363794549872614184339414092843849383115108244635511332995128121105709345595104768891806964044203413081043102480639710011086705404878564787870912341318456396418988655000826846178305292374704947154319496154102206633738129057185583238312203914000434606662800114274631266959411242897382768543010893341432282777297384097455793044493813800414165405529161168165183841845965614021989202672061630061473003558297635028433413813435567611730647584427326712846801414710373374441473258703133331949828267072254079939536884273946401686380345343717146848799953445721846175626884719397107873966350896974516431436293956765897397574843914674874474112512184794151517884466366774569081258924239089351334869408228788949121560401330714566888127976186103090984021153664368261290193461592627346900674618121618615005274175415863629371233786048323963420316120805349323067221353320171341030835416290207285715124155075156575089836839582393119846027366327952693965458805347034318137383441872441435211831425813000258691250833520469158140731304469740486099845749370085684948974408506185758903555277948648922229689144730300101018422127097764597102459729017787122981947459880955374899679542594025099090960844545677314341076840551070659537692621990489528687794456387784510882361039162445175676834789207913247260018179301218231958948891114801634538399552533758456955875825440126372055159589082906371545142326603337838821863352164089869650284472977451923596012304197224249583262814903149957502233447455765127218869108797277958666556460831165552998511291688913105443749532256898925220526636040737482260443863320041292850527669572833671295808629036152990011172629531051694425681418218368136314437526351826165707715598601872893765914369684043127315257148734753217334481848951006903795181973963235946913206203820467753228181653058002833194489222693064775121168819565597895616603380420577024714871221149407383724398413474889580870991316415113764265867588219858225081381217518445654693360275228331170682333328736348006428190771234925726897025571833156980751110581489193134962273029200808701339063702898397000057046505036398363003103430426165785520538761192865550473878327603838384028980034920524865077782282771293390919645865861392678410226028286168192817127190036370022593733533849106936378436846502383186276894618331988185426173330647121294214508456924083559098411433120468995724630266580903688428218522597197212603453597042311906325693379150296746786885708519037859598359640134461698941515916959602339872105837543906412867075260364256534260528661510783562266627633981814944256219101775401249572489463399867182287444454351932961980813533371416570039349718879414004598569586471876314567478127004477608673713484167717795455261823312779065542302413295635338689311904388709051311577385360823667101323581811213938967080843617090775229822296563468131514317455343080291805053401554547901273667203817594796909495975856415502752072923769582884126942778640929037392081675531453504294304078529434967805330803797756522193851224600346122097600799065508152734010356539221606255736365191727196684573371117046434389094880320941576691905261700992767410019568002311844693083929202351342725740907562678227569334266210699276361089186551875016015463741197657134597192513623836089434109748581192986039365829762548879326983123567519544705870367346980763014035102226506556759286852593101901951449991221661417690986599106256204029098193901700495851191061868488174155722933207837194657293244515962398554153388596975437989298772331082059208603770709822345864413330474176688712277922110310704065956972199365461405348635527199648656771779391472303232623836392246295664963126250746582729980802201138566154062140052637646598567658902433104676929354064442823929834307604825029307262584478081383012465681109190750553724369805622995510960984498155297422505846743004093990725220448796952668972661214910674335758248845701337815177172230962808081721420307646916057471381785581482682434351383972921839257279296505238379005983568104817716158821156226991946136948168373532035808276544226733235141973770485724014277570266259257428886066231502836459319567828557125833616785137299343269634661141268966285408783449046295671770480928110700772823207519782546385733100174045500233081234822019381804001120610115517385833830948558395590453741654034326338637527301247689648919312364896634895662185428112457660410055654497320778412119602123188281629012343536990856881910357551630636764648884768768588482079516565588597635892493702926492671366315783612797362537690117232110387722848521964746867386509905409623538658778975500555607608683804513536232205716578610163634886117367855078010694814977843624775055830917735420282354440358381101320690876264177451146399100932141505831806701647969184077748786146007119490716850990356359587125792231862898147038276685060890971372907338176088855336112025285948313534831551835686320085729041855007955745995823129456319896925619029653244601659457643337433018181255711588838752308722844462205066831720689771340904641057354865929426519221288356616557835472483131334604407743154741939155199909260982029275269354446296411073191252959622104158744505995685043477950474792819378842009181987543249619348103553835173293058145829349486869721880732732896031958026042691006597028673876713245829187262102873710436811456826201364377278239262725143325381583882764528347544726959614533976464960158749976214404140800113443088551367049940088658157131694764037838734121080864629521483342037726865583427321761297787597734126735583229195843099881157646883564752156364933258366124622677370462057605897581574730781985356692468188994486377284577797511562504142664828039619176257267624510487090634888901503701558590010567919680498447104116136460902749619884667357842006533948727402107945429510081984595383366375177660037227831771524996208089968177974359127676169665254160880180456517089237870837157822533395797724623422226194541422712181931028248735164012233104510390682486652461289383693395813653341752021849684016117797937901658813609560585635422676920249653333062700080398539581446653976020585898519328235983129406720327106003851010872995386026147064225076873755609596654836071722009983542209003205718086262156953062295103923615860059979908238237657073849824946207571116269164111614016394128842310307308413408275909005424958193288549017310110079242710688085848903947427175349672625938462250401324963629622571789576560880832448309741691014416957598566069976563960232811228759686668219550893267572144634497897774769110046600682332008492939152306888698882077539315862998835766365840104415417570141014496645486591129967942807083895246515234324521066187044175546205892013101887428459343154485140767304867653658361879546888390765637546212529380564437812829843819122421855004097425363941777278670798920963011066213171385076981773689252630441869400081630641427007029565911640012475315774031887703967861694568095317098737462914651344725179775225227573937381523095990796750953142802299825199472489102164807177824078640078174640723154658477429393270641912272394535898021179631123784118414357353785543197089154525028392039003557570522061882091092446192535612850505124109045712940315948687456433308107173129634418965092528770892831068375242634593851840115575916967952348430731048717859626706326710951615176703298534820357067303535022797074885925540562524288453767517699782426232290221169355650882656925533728585767463269676818022741797514455463562963808198656721381477964947310694302825750656114560184591731589635127966266854714477031810298209055472443474106441647448297620366051430675535685679425449637547231165156566489850689359658809973339374615194120697955502579029882546818292343400306222292783072999965194661857023844799946928015694174379380211138224537384562579503858600545964067658737613813511374528936369743536267880003048682223142272209422174698657171105663930554454576716193634529202657137045039969627036531077866488589488559147690496887153561729312609624169628847223302137987511927534809745677684635650352715261630958362906606055303545564842180721088777515000108256915436096446585631670135457951232660162170092571035820176111969320590059243787119370935060149432354701054249922572451224898969542554016997627889138810557528573836707765847709171071955405018773074347434550200528907399603281110476193524836282994162600491262516264292584253817380581135715732307526800944165679722855551098903952319290159226257927332283728607055347422207271042725274288885123331234405571330204723199825665477018114847480195882771122517474374669280590064047153407296379075517935730605502567159934296164905280355321212521314896256345631598930644911492157368081653337373365137824354625356431817118753031788162331483046996321439102143199624630864687472814719502440843963121300628340020809062210031735161414471351984174169341066188544775215483324250427175196871044868574306833802369196806090130756166388223215948769263753922651393865864288048463903879095122265130394477676625591976244125526716937780126315617367658337552980880706339925211699594966858343958262881791234224660154624392147397234802126653796430317482836800515210249902756074994973842107790655223905948257876077719074603051557680072806654920216910926290425168753992468979258717874922258395503500056887772130259804308445613608468648967657924298216287227556468697421747576815733984787277504745692184230448202123227756021757962480149949859052211898541791384978145693878379111243672037889282360803913496903866057048117822283182560917117021578679151111988669338084816626055112232936441643193964954966989513805198254671225855886641508536569082993539353649315066494279544235453383138189574193549155302621881803509568096435093122068099084394895014224950764785223530763053789516832647544012907070130008232281566656056330942494705207908343230737641644186347652805425364576004841294133370792139156826098364965646438447343613567353702747822571576651630551878589040208427061332483321038266785911659393626591955193114426306330618140836838544310878131015321664947307051976830911261033790073484408516149745792562647962299088848343844807021555762348427262034309591764789187916340322545305951037771426889259168608871776815903244725181725974911142714815152396095622592441487697151396798240762160881057121756199553729855716925094361516462305111890177018447434186909472587352270162373445393456153676134319993451470580898950209770705808026888766873592589940254180841886734145888644845090091411709943270501998277676073342382874184489914364339887630403040472552649945078073246913137004041621355461973580752506567741443576311567116332213451110005727310320627953084533035578375147055747142161748019885690890639565302843017605241243504982341240248803480426829696626174681283683247741930952628786351932122881857235115063501661541108142738281331150158343979435617174794543191225852684683601070330088262513288404849354858458122081843042343322431436962109711090151562565407230704407856036131663575864266515145775470594867811002761737275041468624264559576656658646577019019253056069503488757615711430290750558675657955324293345654571579553555410813657760436367696795848872663607776890802772038418974585627329760414157834213890799855235499012617761014556876722631922157615926362400148208841830600674679577967714381115782924425375901057704877023403246119499730512875025760609517107037540281220006873915909710128957780319313267517160846143913459394586728313223257317385683663121248232613157595626685339320027904981281032429705755308706248977110453230221941644911808497270881226685431847371131746615233181941118792455831986263723678136172541141860678838327264926801322646382683896903517511512873814164276920452579028752136261672429600373332775744950215273228838440914669406075157857367067635945497438580659894111140995988208748910820895457380483502699885440585184523171527401057557909797806585234865425656178098038661065647739198996129487389857822280888918276898322860885353598180586215539081552305386725312370807544479039616976782258175013310331879537259769881486141977777970190948711551670991059145358601910755678498221868240534618390071390164830169697174533029419558212313305576872676809004015798191543769913748929896995885156189769243187143762076179407326575650849313449285400787461101931820295749964668420255624991437356062342345508607575177464431549797671661034083101489262328129780789055218282175009665132361989361547882585307001929416882518016266476782416213440392785922231057671953869849481509943802052938627093516319015314899231854182175866749804467779747820048907418851353059735053617246670788051053127027262617557248016040557350037789073848608682318069751955938405439904486197130667611296663508788926490755198107665105413430180367877626518214636626745032539380156239331213066618934900190460553049040056405130705124379476643294404773980956099696064496600905210246375891984476697009632157622442401071568961592438657590588944456967975111138837588064745342604633112710965769797901060766328312150085116948897808216632670865281529717134713064768036882151792382682377595790298299787710396099450864424030774944239543714788940165496640028695688804579867526063682060987417086215650567057039732013942852580486991648667374775422268617316347670393159785886251341983530305102643322670318988556308920257013961705917520984029782569609769016892326394982010933000957150373752460933631670019277009646178743738443674596801981005105527255614056811186786937871026780295727541269663016003157598936400202310940392783536978692978517836994942401401397492038446702501640456427899746318972691435877130425218887642953966388882265583212186286934984813595428415015958969291931776164499934358960064597593051201305709182583683115159255312629570340646498905244328882949470470488436089883415264470902886041175741280415116236765707453911519564347619149075942800118173526197215597687835665060954224790618266362567642352227625698972960218692006997564433670463219921976032559010517294686053475437294397607419851783805459707409266709715719776733124574667408654930797683906230989965823716025643884083318455304977077183188264559394976837549851382576733273554276608542612711028976442982503022687668243682297907314465929803836582836306748888264001788437280537083315385017051161389760750231543457877758089017249012287941396565329145401389838416760063554477755716765188002255834386185804752686433160694122447294803836945215910530143692280927044327086406634628158156964707237185037089662612689783782080219404769529296306254243910497735872669347180551712254331330017963989121960669274940522790317503457458945920740946895549039030328067059070814079148048977420451888952785621759800880701581548909245399593805795703108229809900503171902006970057843130249607466152291841809467863526956088838436981803234696346985381913058627005054712739085419388179926100962465976103008981968983598804406672364286845947102644687325679087561394504620485457428272046448335150855910044933187746985099583041179033046501953224755787436373369867571376948932353878457570335062457670778080525323624821373332626458946002587013886360624879473242098584132887865400354785864954018360705214025640020192189557156583079499612898404288537630251001373480607807393841235235208589436682115822489941227417700607364332262522367401960105455831029883534964305606185086900097920660690294426335487702428088348965257004587044617869895786278761580730098598028491987581817976234456147061480957743113833516722812428039751746709333451624587603135874461401733190349956141122067113667132042556317819659016382076647618898168372049334740660087484501297451303067753674904907532169559699046921842186288520541381906238320011632255408863836435540893859159111550984798848030001024176497067964616114959687358287366104054044190137703232947723773782889568880285842371927937486324763250584711404286243962843333798276888204878746105634633410108484693953828123145596556634027442217580039711131226382579907710934322341039064555926413853984779611416971344960732997754968323852146526690695613645414000490072248962845332102370480358214196730196691488194676802636926298483451101759506920489291504463204302272790810126204273542329451171975574541869385879964844911195287502954079882460800063932413878452785871149750070709757077705028522291920426436764875929238988188226034172353930400865638596655577427002977489897914126348877853390463450257112561216870096633604856953755812201071277019904880447802232721259023687920981139494201506469344736153213792265063557763899762135913131403268255711211943430471049936692597989489042726251060330683210833064057505379898290719359877631094336288019836026423706224775786253232924339329709723294427475221028156220429436876933465607628991349637874548625277720057726797690634895770906129961232550456811262951067095761967390320026956482129917189114395245198410193991871829608965963752220163858749242228943834309244548683706585664781358294265326697911580024494436161916085107466529739249165431130659179329117887620107367925887810393406582544675841260917645997102662080081544567880227926998160829068650953691563534250055354449569999380076887349059753037638536802182618238348630782751773064952369411163810577650593465575575238508390717514183151931339766391305195938342582228218742370156017399303906777124283710081408288671731979184761621174153063735174562614813769880028347952134515601569071758167426974710588067734878810117961110966471822745350008241851592032576852776597380691959568247728544780426350411499271246133028047598268579827369556986610565691586127620055957315183911851038979772892132335702631938681428150115356080950959824268735134250130207059669983258792910542619546464200959978674000619269850744114991766962046957050823506486654139580237118577186829917665703478922969978395907374466245542146980014178563078218940078986774898688939222842764674150759405481911805836194613660291539129118717272841150387824853357537873812432643388214121093858706957718554098179489427160798326056765053713482055064644114392046340428703900111970352507246286648228741122018264120400445650423682894423421488707169353716361148923735800374362282666940651640294237489662227493579373944941014459632596144418990252971520463430616961683952725573948740671240274564457758089023706300070366534019421252112353908462118486233842676103379735514613988422113556751572973080415620908915943558372001211845250774203308290762014715111558622532145090196893160347613316561698969148368457249224456960947981463077904244460853795452276771694083384953894112062750297472242072375255314706408074530515530114468056389936204721562602157521038950537316038574539960677125533713404150520315929610196193077011809773522464273899713648024848603489103068890051210431013173554660830366097684044160493379536402729288281484619839812835446363891791955834700977027991948150636545262871535215160909056855472170189597564415578380702966605133137992877970955872417304481004955612977725969858494189235910313905860307780361251534155772268372814407261593163662585893601296386293300497553269792621207521424041465648408143154240838874102251102592919964787906394047207256914135714587891973247177437505545598020401643560807416014432266095254218718954134464489703777396309177824233972570862244541431048314740697209417958063256125776992217195114282562619526065574842581358170190347944167468450151537138204634779908549295464861680930377019309067123300891896873340259041332746793843203684206182368120073043977211608325729393840044079920146235923822039765065594782680356485113390215788966604584499155481276365539399413072292977315378404232223449634870665514591576906014272575465227739337787532131289154616929948230745009845119013185316270047061957986316164736830081583228622539286561947432192945868286651323952722125319656460390862880418095995288899186763817076902138582418150107704086501772834678990726173452852791411599555953944348378477480544234750216234563634334033731012077937889717997192882652878419420437702002251733092493035899882028647976232876931713543822540777070815929225223938336298851690806375169380165200092102854347664410830516317041934076493807068881015150196343597165921191656807061019093170872041135639806333736330754874921387240392589891397970322886100475834407052211760464932756709918795164010124417202532214332097123592754712724066525643245333114283820717411917263955380726945815328746397293599890052335563220636449446846747488762204694985190117680212872144101660786695820299107495030031077183555193704374059347697929518802338940155799530117096764622613435887758327513481198721844358965373330515951117713021487109418042318781151747368849618881132738480316102619230736599218310714186482716547066587042641412130460886810402103784067477381042663807899663357810660263801135806502583410312510489435105477808240902434428145726618250153495162513156328220920732625358418281061298455483968198570903148771597720411263906467967663293170517084896190104096602947654895069726343366889985101003878699477471959852066322489397062547700797591302831270186387838353169031449042920163257274172114954709156455709378944025002887954771108033676819867838511109299323508550286763094038742487192209952689533906104478962812681981793351340482588930363137474102896107305665801209218430377554097925846066303605281505227618183256527374635652042526027010501417280698260649515746525729447638474190353276214947082122191466213090519857837829804894414204594097424278475141232930863486230623893481007827456045883302934799398001044107335880337299019150762573870792606835453749737290754742503091798056455553218783686708253991958684517287285947796185541259817950773264312257146645660308738002965166656450803099938222969880004279006266889626990341188518311439670220112840956470206714784488252711215467487415659210818904517489552091582783403191101966666159086920230691106746583971294292963287155827580753199994453241026222662983584804224708447232632896619500529017274769869754744524371329995357142672372771250999114489297891681280701847305284206333061372328906851999656559826963682373131994573169079411851214203400986472691972940685454777310539179980204529626066004330175198626860125545850149964047277379658348138919709218297423727783519848597827490634160324360655156100829873574738694890146154785391742844331578788148707666881145485078881402775495977675241134951008239410011996136318651714342221039676272660309854303858622153411073407228572853969937808779869653791991598511474003391636240599069480976879437089303498215421417155127088606137513019840647195186658252606363527690915564779644024250425703031032246844878765375015045653273933888960864053020927650790211833526792671062048062654528062088531005091283285863305897986759621433639312873682156976009063481821421912611042734779239007394004851825817164584493001006956274581827165441019231848271581435665739094905406931244968693711949667744450871443903488736005081678309433702108153816282395735957932154310803159133805725355165750206165908805917893383222803613433431476552431438451821309555795475125573259353241217339742035270515910746131873490706501595636969933671558514152694355390323397378037349237936831077848637260592281886393948845760653436354360967110601992406867770542897102593720017702760379759508535014281001894823377613896332541182391230320432919521123712030841033883167151061853738125618282517924376298524097448399428307449144442639022498020416755650035652893252289945266609638686075674744348533545582104150353899104194308502137418086951832604224057730493026418026306569927808675538051102153229957701960121757860993917247074693407579220851954214204892198589822534405434402289070355164241351520058907371200717514239608472688147569300244290309213711696792840018779551313314109975347012307221709174618085131989806892706591478643218674853950098218802068757524335088632344567972319666006145933265802306556850041858687698845583452984136030721610796797349635386990494613183417276151620907083758608344892488854120622724182281210580737536267063655375019755173153269109414583754935320260967216501214775478619224099376618889699111111390692784136037457445751112790244969669778322147619721422823548577138696280520455079587062001501319695914758236594417068789306085149645793355443001416283256568198178774029003712599884978036984799353356003817633232277673298364369496898992820113394034955590708985121435506691177026012005195612150841934205428531853845888864623603551159077617386338073508091028853339249597994714653930707366625695975183216220665364134896137057451634790767911826891988413238994512958637628026862777154401052962685643815544078428537715433894474456174792158797893525178385863908134973785362080754442661397829097062380632402592561659258664411894336045312101253656130039539306322505490181609714877582551412963782362475589848951687256747631604593338017451296351413727932108974859309678174566271657367943076048771585427764583089506104934130164189421488353485542254912722658313887815350739825443366749940884725128407062139977066087194994882298354175727036338050674903354891572306265001882017830813221805985095538230089185260995414578070469757258464857196929960865851086445590052274253106876759837857882998210225296837164857572952119595432000356306480619189044099212171921900278744105350611749672474955296972186958584155614785839008014090149131272758792688060710816841712504988991837171915897767578673261080076734973243625962036143757378474237852126867973490002280285812324843111491498071462772605955205091844500001228475180259269074661665705560949207618534801416282932677668695004519904086649977338595585078575885044348208630129130347103759658627511510963852569991481581606819531190892471432403185650312695955909902541260292601759912096389299869909354419439617898859803117725025341981534549768654113000682078486668368727567337970451621186267173633344906885800727233472018675872779519182612020110099693330167321084012410805327008823113386081359639221429559691208899974437907345495399196426707873496070240576132173651733987005915675967360394276997263928687181024276184889845879116609774476579166981293666166012234933880687981152396967245721321865167308237968566075819907892759802610550669146181708598670790169599521692760640757838751483943080444438111437358109382863660943569650885953707920349099949755519342739204995963692361783397329503381136802508730901003419669198252551548564618798911876957894877286830672746917327558916184999065890303620052632201089247495754940894792769533928487147593202159071288493637240499248081837073640584801567355066418823797597790272893926667329702214094758428131933712777704642532839848116785512597021389474620360195333867505638113286649504634329978153630075076956343982904090089638868821883159003117456118773112549634310407983984874550505537314957364932333283002566609010900157405306219072424366501063218358789247148432584801946140655014603822799905921738614190360871895469918213993101863386926134486331113173418326853982731281781514657639210990165652155705576463814546722184235419111567840846952351083126846715658523587308277929087988637460830896003670972189947218272595660131789075993920675901646172740263616668763141847166853885659075000151168538426937746666847270482623293458231758924157776995296050284542117086572820189815010051191821382437612752105554412967622578111679727298550230517221205718478735985444341986256257166331212435941774851426540484401179892691703121677168729810871931568397754881823485268612294914337339325773576197999463256288033529132462663147340833052974912309175410335145605442765103568003209882370906477653474191051146107778667073052307883291401043813951340446164251996544708345070378657392205060096308436005390732403459927329233740044266193153535679344466396901519392906457725542363263749490586896305326292086590305807514647639060106461236305056438647029845244950404266524374582737077248216490805641038651048281561286500730384660129394760138100459652568525026455989575555764438912043640554436892703279911032879816552405854961268303002296218001725764659274140847284244494131212833383841226103252700616666363298955812677676178853346443571573827859214791014551730112186261667282725039389925879055537263592949920993089006803781941308884030745443944260850535037714915058013803983765186316447293406683035957563825951331920660098105064528352701225850358684542101405757116924302632548358441358051626087889584023362986916882369030481620087666555337246515572361525244760509232102817471761591541510121833076909384054184839957260029774300347604153877583944718001014788367964841361272277482799476343095170092731315511130559548659997317194703876795540845387836311722234580784147682534303244788635614622850620509860111952257390904232682301285515933863178449375523784886111508969466007630387050241234441936530223128063784717887078690090255011085873417280479069634142234012998942415243925104139831278178726829973705056286223870873763255874835988987991622461491191466679509578257565048981210337710678040806873710932047444159101241344173225678167047180495106836974462227727286765233379198608279587154790993892741990815358408532990972250186195419234339297680219545232957529987365523092553916282601512667906807807157291359595178269498376597971945247221642960363359608306421630731647750648701832996339362516948542578982397825377991731607889137040334833017352392631564227399579184059435721316646636456905800325258632664519052363844253882317818547078383842256697517794502507989106205569019389337171002701519982739690685489076180680824686440063433947815830216039342111676505931254620692608412942247852019141252919736328597172960277020196767922332737712992932366014755248149272986941954454671039862275289318280557461171083316184658256815282682222416173445554343006142170273155953876436971075130913292327790583112188799243422591274955704276934244348064725118357866176180065478653380007397010840592095653922644829355890419232164819204904527032400841852515350578920810587278590085870861668454006949666988912066362876940782800289627511270714341384321388431304137786826432132613503542938126982283871813482501483080292395846652731820207591484945494022860354608684247027044546771639075626343486796741946497994015793807642509618458104705902022366377340255903937118456588034222771815979740595981465926809411737546919208229267739759780015569084116195205530934790021578573983059408354315297445712719486522991822713521846537669183565977420401733360220987755624226213339640986263705334684889910493100173449585855307138897962325632603241114647636536661872981309410454017957915220759362931831575700393493406750508789775495830580112187689588681591218717029809095646086234689768629403307970904834689740833605536543341707133930501058202359877283571789295001307147479980089236844347790112683440048830052442623250058866941773278851534542290267377819829041942334133499091220988533647610313945958369163311000131945645058036488878263650218718742076416433149591633762037807012439414914186418493825396956533918657512322037064681324400367384037609171947595518546698219856055593322574013363520801645270189664581718026052838053156486950493433352854341242498650157227827328188303861315067778068214137807909372987112633015736924660105235753271196083460416458895266096312244232079250913821245278855562136122889534892600432170398133183249890331070358310064350031846517206475661936721509760491589102996689310627400944197841961668987698415797682769042434945629896724616065471771291507138771188762946754531198164036548709624734719999361059931642123940270273606913231968860738958552039843270126885170478816165306238234017284205117381717613062243484293527334030633283277165143940537879588355186264012142289716612064774715366629172595103418510367781224543156355222851305259461073032563995038120107129569699957734602869509044289354758879428061754656970372201094026167372267030313776926320401416991196774355212230581510541345985825055837392275095227384443609605494822120580107712307457296807284248566875409826994146087688598545516149400734035195486033231516021104715545820577434543953675326778734974918182842783042317213547874147708912878721989241579708438830737834546209160774802268179326972047676285436374746414071363900235928511281294636792858912016019694642417224554718810552641626189049356474482032441916617396849517600929380648522038811346177245860461559095430150918036386906027446949819603221632577862611056021397999119722794266149516476614798073826489151557005039149618036953112333584462644021724909216186720753395288882471625204001976568726036001172206737786392149362308204673451204848216731177614145425509987546997863559720892958058112112484910214027809669650648892950243831269266374178564831349047777191975894933409501480969153408135042491191619838780030202083967092476274636402715014365572946855586184648328231251129384871572172489394048564684749948097712845026203773565600486317620630882670048432043921324409161567109717424908347052391245233039914240488104757192126308225747970882482969004295788503939053626706749881962932572716886616377616917313005099066138909259895370798072429566593991127807071505345800645874679811280673402194199155954100319607388620888446116405054187198686441001043093416697695647649087611382772048235596674008002762962907220680381647271303494778692740427848610600022645356508851018959310891852574057109893252940123847304030724177580532850373985696895724882085091649307747178848257320174629543681140389979896882168685292657261513865832348988390786039657500718110434971702084687697016544968977324861466535923593824598294241461874056948098132075548507315601614162830877082131832316369011288549614253428221087405021805736731534557986375714632656457129835296874443596826128968806321319391414601443577252943696724867758408089768244408067014657909721757700414588767813151470444789008924577890467306598384775953051372210679107608752400399091025041800778399296280327903598290541803610842629766392833059928043382080799822118648339306632627362221688996288369477449612207542858234879084232830308151413305260979764515688421973035185017519560620996393681805301450970488333775948152139779956086959516640882729992272608951565931107087796344889506547549686641823624051022080024028027622435923327436712740504590394803243466059606250082457975995466894308893949610399621844958857333253273635886999475323282689621069792094892797789337989204173527628105357835235184121090281933991455628930854471068732384243763743822559766726095416555181144204685940722619708738776387705389405349718806064829813116540471774327803572790471782923978157897003286714311908022350723187395722365730444912843740829224241378540111783030479937758509751185286273777161837411707621657451508671146953559771667686239485886100349884160804805882322967842111481950381656503599184989095462687677733854120050609603613086193009076070148644825800047621370576075682465006940085877061378433155646416560225202898342055546444875776316813881501960085013820427675813270080371211546002769732650941277165681637862422634461246164431144689199237813501402561641138002753628344778947976348312943852422828919333544797685606935846486346556481959844165897537930284014101819719972579180121853859104201006431196252477122473635934630906252895385849500658584947707098681406550589352287394536713980495102185484192643498634891090468972619815363175427916925414513792164654247978141492315485036251456440157071851333876692723047149402347364382537937910926606558825050236096073722728127192470916341094761046495868982195680344304881218803408677288407461319570093568102904874194783362627631281311353550267173031332376615259833385490047952610322648664784639387557027877418375606043206668776030309179020454561059333812779176194239575323631967894737111919373621023441327874676336278186454334871627831771474285325613220649203664963768850808471258355496145058751881777344706229641397117389353705979965342004266495525097151915805249427447963526390884973640577634400995265363785285759868387175741288656257477458590526914669135094063031820354074911411118190815969305401610824698134868075783536902291293896069691707710388864538141346300980588836444629640319407489084775380065221271052451812896382223273774993289022914184653853812179047250164204865360369445874169501181663329706433060893122206601358583146419664767761497318692887352801958096641913001906431327006561351895438426124760720512872613284586778202224196870028266638492890185471242693463788373290380446040430438130549890560606887510848835356872706386283538093912959565730900575153975378652387177214816866209980534558436209253326123792258723791226764726967262182868179967261235218235090430687365043007229057310680180658086592343883719967142635952219994455804820821979827400012478255531666056830103671549386739245794711369894322637844044163671729966723287101635509721726117875393855827625633111741287915077201998592781480182766818583092942007457944635723124061654879053968189066966514000902145516191988398724822370324271656374002949945670249410642902317264639850128021103622878980831214270895446300229985460713833304583331983159461026914468645185489388379239407268754617451519302636956736675172868264438012602376523053690906524087387425280646321543842096988379329341289529067003410027848307697510748331403246022519993014517384709534281951705779609363000841065453678109465615505904725747037348131295139421972503113504053126909202517813046272363712874420819641589060534280713462285200682676878027266296312414936284239077652487252708730485537867672827103942782704473556784684838856163125493795996264679419651955268628014260454765273406996663446130438537898796697354789402539588659692935689647182947025631901132109227984771778705686115170799278200841684032322072288611292145910964742965211874529668522817501797183928045907944595333900870803154401584323561498677244573410083973887279687378178882762172500030090090071876519876226524857834138408470502952078996322253387408747131297351724669607092467583620861889474470606035122764983171955241867162513299304357558402251562452857279740238485080238950322370767791973645822439327645521739274521755510496528055579132418388805937986115957404155919534061146458849218182301661520788079588681882821319102594520950219346670884961708618754968473573153154713468973553446846409819336516827068446525093078648964021588706112990499898585016230667936948247618762454383579399209756941102638302286621095364617239572910582401138337685016044376803990672693143381119161033834584124270669829498297497266619906619322874487953439680663837592002773681653494710597164436791616680492236332282129745750535037534654153743623810527412293952828860678985619928704545272531194000829198864281346983137257803363017580336888894972936533170993097945016846212974421216080322025526455790756331122636656044211939277081384006623136253189087275844053312667123567213660019207551045564478220745428275684129529244852922867431497950121686529483921400594441520071857209036512573763261834736836229813397161633105773806416167379619201281946144548919630297335884456932384765740527995060240562534654573211583340455256230780958174951354640540113454545031031095627836403258681261613623736450052086515471853145725865995914090886737811824745714649748903330316441305858053297507623362894402301968406913626970978122938390624845078204916511191365684276103894212575157656175260107188769324100028995502155974336142836165460340223683629111029884113537649045366646855116715533623823949989033419267866933473178954965600425433703824234038015138386616536217683107322067605638068053594639222144019368415404705592915713099104060750905151491142923358123707140351048787818477287803376760605885583103031583118569365601190948801935328947950280383212100932673249830835977096750818745603704248098939210549117271583530374336175960128858659029775734295794152448100951289542590275498829461276041161767063041202250189696805004597383096603546197387653359655703258365496212637330922674364981582936999052185341779407971770064678646143764529857286155348317453179081355977537165481880356505769187274795461088530166168148448489537322617708375165791000287032623974269583153209364053005540707314677218399850949842195341773883681912658243168888549455269475781406444594297053804969623500740908820719032240173585440027918412354986056927443216624922001838881734701007494187379013641449585949159975558228564405033057318957795903270565714894570570470033386245290086487161415084544517940346118448302176239587058487055278558607677079280256894332794762851501691006493976655033465279996529307909689482461832518992976412930683037975995624226608561099222850997670790198991942616917115457907773439313896641940220836522561321931916648762157158150300929343180543384339009690500076330476565215932861019007057650620544787467497284058240474324614220162859387545104728096311865549662485709109855979652687763879273662095902553285560231258109965468056292937947707000583272368319366200211479021086635829083126663327767854939442558519410062606442346089147553922019832468956177471150449392559690919701863182705243777811661673707464326359130698425932484349861024768147818721813966891667142917811461528971344426188532020373044393665956745259935930527312178354420119581072151739078746309483351229070187584157772690165942800929252808747690750860580238066918350376870961571584518981144259170557196642708086932648124629611062243575562403899248970552231759475927067336032181213032491820478647915304386782755060246454981476006164031841580489648609714312091571580402521173900814606511571576291998689515517681620043414108222857433167331987930963218678966749810679807667888162219693242005319870627892290687641358991707185645201088665653797632054127597585154850618584041821294308737533656926601600258037833100770876937803667139814601353209420410635722735090528046731301170016675653298583471411742604374225506346566726408652530673588986056080891732989042595925773712486149250819592794559373271871552879937938188477092671033705513551386654226778941229137649192731075560946497739197995665437357900774264204207311450968684328739928950011593285535777948758511220089134795217000595730350738698871915074396891951144186036619668515132500597619276153553006392705633816288308870233786571078912066878225786903016494931222960888967745236054272665368014492214548058433950468493244502294414177169463172864535364586214340449761163048707260291879671433781648659092799621009301671086491262929055899893794513364580408398488160367800265490920701260533038325062507173039209037945256918306313700926113325211767456405316253608559723973071393194008008857929754692718766600419246119756544069612443089904712292149397111644783674857869282543593133555248790322565959665127341522170998615951384496803386459505542503990219881292347946465553173125454606734901163385265423789104378098134135187727023548851134308046440850765925640569668161801410181417086590890960484263951248844315261622977857893124764620739763026684497405903592791228396500420675408769433972124024799744001794789849574469334072506610674978265576644054043498335786850277728480756700254889278782225192367685051575791790627876569649875223369707858974092917430864621241856420932352120956975846199237615759889861033399394895217277361403051798096982635321045142231285645996853841251573816797804916271117379946843060742303135201584839501210895613937555398935381910284958226614852773935117392242116898053449280107393629073236188469062402815264035899614171496148829089368035377752748837055701280106814926829934136009487972752905002251703050547392193096557658998758869625902704402707224983481000858157361097849207456118729216967736171821866029384072244500237659996430863524695413486090825837058330420096268056392100263884633465616739351275003350327276963918048216875344532805414501864570776856799019009453362465694950187735351612722297839621661769298247581090183946615964161309829686531904064559009241876565685077577300211075303301888933645897851883603273547619198141113473425479264531119739155845260936933287269201118427870690877669326554084221167893168840787328187009806556978435987151457588266446776436382213217544410900773538975189144022682558369913106906619173104228863322722421066877406914467725391038735154306786689633135394953892089981432245468908811087128533586005699141876097506895585109007191728606371719740484421364754721176882829282689884015245876968298661194005772115823470752965177011264833930737418846830566756474083751031513173608182740411670750099681410139967278233488749344386538158334476502728605493071208533317110726706825562160783315690045824614814413632720949305546519371897916079153175376297370826884357143533161267490365392683759049130636166596408693507064010465277288564880058836355918764273348494229053846055775608105162999052739998668368112238298947037527753689588523107936132468789639793227144578239476266657984213018890469695173768558000368193723232984014805647667000690855024325763021596694019051025076066261906404944561141737613519931607746965030595658307669821380141674683822380098090103729932822713090073706050652594942609208285779609543379309617148620441435129670292308898154148526036236982136729371067204890728733440849707973782023066693740211549830290673824799930216040280981082355612460437961394425840903379797858148787095357154473184283129894145081661004491120720197725138364752709394588990864527114832515997438468611741566796072123734642408979198853123995615682263838877441879587990883416809758064878784901201806168073271382007689460222279628489788016499769185026134842391936496917923783948164432528307202247276772704082416792972424570867294088255461395512656723592585474875324247776367689636152959197032433298311898457250904539221464253864548068626605881015763559980062291127694362787886162680293547688666422852659337546562987140998850199325763363075183360581214583813856652989585657940632345528836023027145768081568689485953811960977506987068397309191909289419389278878021433008983577040657878449324441298083222801683830411814187039676229844252921446774742682939138143602757845488023505123354541171318244178765234792574710396669025356737228366403692971305011262474504398771270406507159985119172211157432386891633644215323696120853565932572090840691648713481318005066211893977150107282016157135184340684839559053356202843331696069587451291497543968655470321052745889686736988512329099837061530217343150146831782076815624361789262408399254056296603245465362845551128326047574335017366085813713996890896107576471549036158661382364222629403881461846920468185304803361758178076392366963674245686299790856342317980755411559515279352362219331794082982051804746539758078141331760643848506850487140754624042407500796060878555766980585092079956581511276402882664942217980282642708497325213061636405168060785449677039889550537586216577007444372289160450107753076593246011141831880451096021070641781929415072086656070635637617211958750120723490118821690436594445668211442177285491382991305633919428136100025929193065261932653520455271815880084099511064862588496333226893959131300018197507218164560737747870776309207146496983347624649498914617149714432963238614452195910970174566602088270012832684785272877372722439360395767264436998016533656193356080514364232125536400381376556871034546342561615534766256336622521190456079444319929898994660957785988939562340252616736044067723228479440534780171067484267479802894341091740836045014580114268292826699631976306726492807429215128938613057880405216237799442349896223693725811376013094992433678652877704053536358626841004374063735205266816118874144213362172457159329920918479831769813275119167030180308741921648568352111652228456803994214570802960250683332688833976853515443240756857705079803732966485063328589432538729598491845215253284182864025079987076099342638587859996730670498592557600080394672071978167015708442865527849580144614558199687534431031345346399064813399910508596398942357491794410370978430772290501824154341494232279359216990748471525757891068655964968179776056266925616249018723557774158116381397979400674221276704941517045277043248379274800531475028825686221727863773922417400278234585186704701735841112340373852300836032357768088264523456174186930512169650343634537663451009422046564079256394377660268856463119513693693812482655433037591881491127682398168821819302488637526789668892637285661190893132267530036600509766785173585998713324010907808290880792987882054804357251009562717239668015529398804120245782430756023477890680253553482419600511241423990307286607178782328908469708407801587396096865819935259981036047442107793629144779205464280534141807726643026926251559178869068321126592950867404449958403823790071825055486019083959086131970485418896626812264125468442081644988329466523200770528890737110711629051796617675846800840598396735084559289206195814191112419434184915752754565090786335920867998054186444147963590425357306003721188179607388419722825252613018089763136860727562002107532034933240631292375981339430870463452890895655217372055481022590266876782898424516456976552811995007024990986673064328381336774882844454062508969334921895344960027287152955190247603670412892920340303935852498493345284479194016434040074204340133477226461110633325268251069767426019260439818889409257308367628989133761916371270205912338210308651540949577676005281882724590089131355114410280101039657730659817445047243172651711979152164312935506369014586445009547208663336450624489761820903475964107405856777133545064480169435221726181861848169959944734279569736566462220550939848337062505049347285470902978532777929440885897364053918125445891438313871551770282930553817540131518832429200523249909746619267209376712986778708652779313269797027922287371360815554770839572876866148328799786570813209950118711985760085476148273425064542498414530879903765232842448453846563506684004153896458357160876984242713248160744548795059330425826367853645983707435559128764029114779653946178440210245911454403926230113864954498956557251918398377211232335731133355475649549029754999358945746926600714588643820928276638861788215730872280754205405523900395831477183573634865877963341527530813705303079121091451259287224636060187752850700544387442363897403659078436413229310614572110391786375975094320952965248511297004876510292409941275593510163640062865854148777987042647923308627035052085856595883429320414102878018449199915018651643806876192248990819746181578525233193871669205464246121876940686089567991244946543372692903819438658850758033098614784279825540220105495069043651336500914145821820510500257919988772070129655056821556225172578368710592818961299398373022265280836298736876134298726137957372972935393186550667954678588029680813623026139481289677347307340606686580585889412884922780630791375722065410401566497028979032987562651910438396814657054317098621664183408370235545291805992851249827188286143984268638060247700355907883292452506140485613175557479325924977133051169329900039791557343514748489447925689448137313476298764776636314784926616298823181156647610396145440019382782185251356991646403054491459230313408868762932819659445851263862658551712682791560012591875866817915466327862858475546902460348531439456833388540435556116031187058152683790940136665193868048193054302094564499834981314769535155051369917837837069328832666955761965436153610994591901218309869940603282660486133700559554884781081453148994443999872811874807895354897591919056158003552423914670223349877061114946451821088642897493464555292694471320591350202525879105097594517766804098803916446544317629605603077630114891301322373146253238421495281404230123291077718088533296308819927531813112298716360253773226994646905412619018879164920119232495594442444521119061832718534595182622167381641799291064092556926511024903479386952851440184578466597488170830611454060894133102121335698409991444663732866037544994230128357575688487626832588501756563616398674546115558364831460481343420109602569732463054940184795772128315533276392330770910410237346242831431498036653451653634207101383115766331841278686791852041777299394732603068898851698249049185907853893316935832492864537872374174814768228432932743299401430601195129602842040435341918652614554949710219561282512052491336304127959801859387595887425640732109980042165630801724065919346179835326942886091537460706057046222901600361857066297410893363859472098325093332727605790728778191192872652263717978804813035097619496991085092385047835148558414929987331300375165149129051584685465288406446856962616526631749689005268322680250709467958229276803434889975017877674542850298796767840330248543038133121440394935996568501689814499510527759267570246729474309984966910284535509877962669480118517686179590515783485989510040463588535631536990524749122788847385552639585784094876123382534799525121722119220211328624193431068624819499975567506811089018449424231868949995135855217076662538482113494620443511929797297898638794330612246563396143262260276837543346782637402528421792692755985406325195985074739211390067955226183217018876086663008539434034880126217666149153994626562186583261392906286604196804029926147581019852492184270086526976889819333491618354138895927840473624670351526720751261985636922600836107381512700356624961909208981570569383335555338955412042148496067831617283025846382149694824596190383942587203612322518760855165319794979063196911764549644219393576947667297983075086706908654832209369862978625890328847364833577748377608904086483422887054043301100791964529630767995649450151167351781747107389265467509039588128336682729889216221019835033121159223737688152964104934008372171187688800163231747723170150424990603472218299562468016637426895994999203861488080233872245272920173036900596815192777906707535123452634336815680546953804411372494792527177810402371322989753176978315498558030662205009842214044053233583173563294321409920377927165436940627164576919083329450059012354921090086983870931478822662733946407543810620587881421224806688298777024929385289305585083576141812659905757397931306468732099762865347107376339190855265678831765110006279705421203909738010663510958429274549807194640445831862010739019159607683099685608266241289340762658270293633415977039015374905786396763690247137468594775661153177104156572193857732445316941872440505374808703935992792143817985275929971276361287205381283837089653685002181527100043660567441720209127951950807233082226000780134857558293844179934656415471293683559326197643997560277847190776161237055686987771973476161204804017631156918976866238250245009157681984138967810453866633223724242698168569730596823078853515776539550353494033424866693429496076893164976977754843232905553208988025355310394267078059931898965671906692183961129470242352749788076296844798181513828256525998987036457988402167159988731284389445824723417880224384210204851526844998390057283764734934578575309135448944019145160708825620593941035577451615521897020341833464113942620487126412977372144255612525691754164741436239203397129442615108540133177835713732196903684439047326733658651650105160225379735897910044171757895050741891611142345222342916187307176788178238543918381533662699234219303588912090563190691350450892524864395798895053065230392014266973528754145777670114034357140405591253427620269920389039671121748345984149573198558686550236239543695865913206409657900647141524150279773555842811169344791985570920292278334122071896747166069817996532131707685768723162643360434166415663494271755393554458392378863345049549452116201045313925448407082402646091365058427039708661281952265988241014788723713661299083055515492781376042266388839404983983710247823625094954176226292412344585321858385600958362458394178779555029048444994613867126275079922694904044143011240500852738923792536245378423733005137495302783551874231309794548780108589035876409290497360357053050264914735533591963683736603250995007689720841150512432635387656928978422402850648965230790020315508365895353752947718675211752000433865615646493439630117316579005194359709016636873301533757472834162152001488744505242512454298081527692240471077598671538381467241404271568904736522346517472136180499637407331825031597448638449323612216779742265816497179078708578418346647490666256387024660207104636830252613358122201405472241710727685672848053850976127034060015893052136335555583348564540191050461738302884101725269552455023217228159401707427787790793616279794068321671433488848022875900946929973999445838740729652351560778700381282434802477522611399455945582730987214529514175973107034708518880429414564430383813652141181011749462258263973329298587891031640510607183114896539153790334270030947963946482945312525664779859176598349289682427289924252308602325145502791165506635938810079759643112320513615634071759912987704964916835970346904976139142973956883638653324384401512485293709822672009868174937855904544943946359737632632053106433416396603873647008465134294221445235667120165923175562072921232611336504922419700942830604313432149512649015018885365275152359300966828706154516078679114997539201625221048030285686769638928093907773953720715565040187999243882333926602050635661278670416494789794815550923556289963025690886961723718929884079638858120652781009050449802128507759739517969794624131882307867699357543610684240049547146752373432345271860697436066423603078253627288603740488755287577173165549536490898931169820162073541217472117335147345322341722637416454036652735222959215444687651850091089146437101953515319409627390849227584028147822191428885306721901979061906758384210777758386074690718749016965596029598366851658822955166313666942952361978708518878334851544952007753974468955429766598472246015319626998307269640929329397456243685693026672886271710218118761449036927971259180143999256291292476490555035710252963735197884288265263327994405257654513908562212106074972468488252155557502998847370113319420906778349825374235794454436350618278439700494396600647538718719742152953599907699114432953180428766392175436444909507207396574256966434111933850210369680117512168908474694368802642229316117617683929394680354558762736083537300846449610259367117970258836279172851714825328303573976873277778814908294972990102453526928631838767678488207891581940880352574190532695857500331773491180962109114430804931220579414661210599755831652282009571755072505176067218838193184624709913993567634157190742747635901906121733540957216204473499555523527464801806337022891924529529975933514857748750140208508345317563484639294771215719433586048662178673280737720974264760460686574782647169735405181625974167472745616038186564012711312267560517841348213010948102514850020538687850878734656809810015361576334235749694329028696122441202615900341099931899612298200590942577600724267982673558358337952030897587840678872162555254099759820970664293628461081850628297773348270929886775641989275071513147546943427911288877338164499872610142055984315862907821179261794818027195641569059895346499236343938657294701297589857974674559153109957642583187918249926726444369906131967320798992894920632305156210189420307149513090026448631993925085867381839700181617272612279960194228419534090253816054828470363084817869091480071009008789748506828064407127264314482720848000758708877115297905149018596247875278103228514815845980862511499853189813123254810176209289339333308798895067870123019645916685308613867673340688175204498061464258618581409281565451618985595139280552540280797147790085315907005312322553827242013139665682883132566331813334885459634615885889186823070930405031539547184922928915091851945165210270416836044796971363946421326675873150115842670382144704717089050255216453943243671504603852409492429226348565322432539335809564841650433758179990813126794893574368851634922859158201072013848526956285094261760289265089927137564193205726185399653997907020645413876404295661574699745815133154296210078302821154440114372550515922539330084980040337536189544505140504284030799938602694488129724325572386949107905706440130786669143285883754355129724198676747553176497656160754963046712870250957144015111008140765191491625368618189598396198034009067297718137219910193579158049704010431926373391655703823557327591827437646954465388568782228072988024169375175300801001232437419728313716080303923215096056074795110114602041535194342634782619153452691113960136354155684317200972829033197219521170520747824501319558585422250933521038994968255145426026602865462573202081178302287333645460584976401465874305553830825603905079048682752530906252647300500652773022758029286120031922796601560387223072259930460009818850382781994914321601657575005657146233315187487337260593279190510717203718252188867208785596855398211115668976997572947144500213300495268305185467746717710692592769689762020483328803280380844411716993480498109871003515618733948904666374505571056772982040761439073017828679591378429850525263232308051508266312727743157472037436296623598237522837370267772696527878305211908168709570045503324380129311081682486857082601728532710184365346195559662795702131725334530353724923855813740225782325832728643101834045337463536226122014031976724331559341294495244469317289637528927567925126277345951976323565467668536300185582360650643613284133710611414052227780824680453373297803549990056851469810067868270299677983907525254577298271072346896004297307021725142557649792506110641928831367498646676687681166770420401784897943042867933574891141829961516182262093918874239489407954209776004933852682630795627787849424155652924359655963562026035099561317949346784722389039530225705688747905150059729851838833321519365049517172682450468475006147425838844856652876542423647122928751554758986975749653570129907988811789734533007002931910149577810387356702169593415529803724683811247438686730761121398271969682062926350403571711351544106237775970470051208076104689977529300585848236979475356858063728074769693690625809625963828149148862337839905471728414307225396962154200398290125915312933633965101164716899794013552395371844738721711807930219272110606527104466923835390191577837213249098043008723990642773456126820254885009950763893977436989048853827010830071287913059991568906807294828926641944413051278695844138973130213395579247491137775559791834544007542485006964906128042157457850839386410763700975957218174632084600523722049432549663189927327782440305193669133104290369832045554531923095596362490399559952351235809438467927116807424902289125937129256760677399848572968012772548340719408144092053706419703375562338812889473790857535981986559474822555443301371347127556649129604372822854413518863749901659512481934449174903276056393166850228106908334713962489276100391324602188080383419841871020154203766837912176931999608258593426176174798708253447404852912792294606503568024731459059774075752450700497910783560657600439179558875279710995589574439828635344085085255396121709711997995576400413085258984618071587122146547598963188572003436531117451903615417206385427105014712211375233745283992553004494450396050998280768733388602920102333142256056167853902734838714442427736757333087263680130154421603800877438268623327039646846400957472516586764801184563826325402058249253738644240855482961557089050303758748528960867098438954974924985714458029405312207071082264921512978311006574201036566561287959909901382700844716382175499410602936432855110834066002303400021480373079632560206133541848726861564218748179126120802519194402629865079055060734740162084257893663003529880600549865856886138224487170725147430326955448367086369021204274262579133188500073550401588948109044742745153798032215424892948959147236473046653163115153936615678167753062555461427281382645498175141245885364199572770310848811126135790746440185895390561604427182570901434221765858615069696428976937897129161127218283102618252387668706427796033615989412153891596710605929732753622362550744019224748507079958469921905407322013218359175747595319793073578605853218128623279956718924045657478832267082587471287901036353668146962549314093843932519149917393509227944137061082445272365496053986192734599115533578537265252406197522676536357869752289975888427207895118632115681198226963821778668692730522405966106962275702948944536786583476850075676964259191832137685949140256573446822662979808796124968982374433991298068495881558337584542538279195176881577026410383927961886277899543498294567450487581073890387338143743847673959368896137071721316607633005939085224175976543905061861646754511142399269796651431020056432708203894885024042656399733059524516167571526671242582422570995169076691053774583171746388774380323230196392101263942287535025126164021713310078969689654536187173840153420545413678681263040758710739065036641397839805045532181483531892492274523060266306076944268524698981427356868457664249227321131857104615272061877763369584891766664579581317092378795284655624341151773450005831312640620532163239699654170837604905103076042948666110070101308571608697629735643839046818363662142404503693408551626974971277135552315797022593544273505144606273797709851051568699970286699912577405147729267353393668543557606081122257552912961234975569971878600356347411225482435239819392989249666735034550309987278974292406554294480165985926088808429182836146357548060163340441598803800297097097842103443810590044635381176310691936306701939111221913383066438122639413392787990367026738621191101953199137304218251540044428646115677774644451147958386451830187878953942146034851446063137244311249777031141765573996422353506142024671650708012120909780132392233887306633647189210498271988953414831470842888389223145885387430116049456232021288470850436460680571079386168845944471962632339566105875140297985117410552702466735281016035728916717403572733969321369968844171282738655126250770208195298706804722745710196501235457545826245991221756300858112009711685757646883931562952237595162116130730083304469820540480525890471548608203239548652948109820079956746631477501042470609957198796908542714142993352617515201925632926897253423276855979020814225490308224743113169281032163178102823567600679412700005558687910280973575944413568765737215221471679523640578047040697097906726295682759472151357619507133787985003875629998052774392269912123029328125069782167270293346358728769833170799128358448835087749970383635862440702062338831249087157666850734223268328911812808257735202281766784701777435838421917436621670744910583236482142294748985419018166281095244157811670290512947335589815861983789111786171217039529424954273327996722339360823481196945080333325041154269557735617681439617428411566406614077556288032256603450960883223438810476645892032059122343924410308775416502553261057379436469201700225952367214912203473468465138904123563696433514949354076055844682441011507155168012056502710896053255000342582877561357152813533131979660867626678964954596333352877922278634273389005875508987827329071565990354980134850700127446977680337121759221395093829952914240672638363831494903360443759610542876163939965645900509280274789248652049556423422215410791331709260723530825679662898013136628951728528814102352344821798059673581557223931934633929890993434072656817538137156783409351054794430011656645548647323219238760563080417366127986156297654896050278878850419124754411805080221537471047410330954941884402031724670426899298831726650483862532316437044958601943949350355720634344651468486199491469294514328315266692978809207107184677005615565138246030830365111057216015275818855687952971685729869016668661549489898456814286188962536614117214480276171775421043545713628384066995138162802776331352158730351347979069380347730142240961140138387152156564841458826936538485290775792944789942395536464383398700072202033792005741583815829065680220806104553470409419850638564557249739815655193337609134811859770279512656299552423928546377124610633061430219234722014349188537020293292734468511757620509571712333880048388620842252241955834037785390595168306844364542401265030298089919886035520135597384359949201759401478784909175994818125539191798406542819346341597145577693554952531083219147556353192953751042833878719845346797997793325748299584110502768257915724599524209933070273638958963100218541550349515143476050341010129905773138358910895532148394525270483686386168755161881898875913820424199689600494947340727678609361896744999707995419010276845877018793822923409487657477303247347003944970608090310195375760976118499806201250735124554589169618387685340811073058174712100523490159953805823953514692608267124731463300913365514978532249946256189788885196482661982178593315292745362703112378904685553656431858166747608069527950828616715631724756526159008134473371875303807190056047444947207907235268511785704877343604992060580925609698169994832622172668694185819530635675297826781148884042105400529024563385477447466931756893647024351127773321149554211050964787428645375921790351083408126960470063554909351427451692331339299470065612180627192714877283961206399957567857680346091059246052377086832877537165272573376885523417523528757205854197348444182529774253047473953048228050143518285358517120616238860235069217172808918372658551409996398515285684443560604640929622809593431399834252647831373587076547760902085409682785335348574434570387757425016753526544151348887030706818293729644066198800948200816628745725874573826274701165061674455339973046741360457056616748371701117879094558798305975305451474361636723149546899177709588148433290943555825575453296051609688732715321906466034334706101535456557096413045101659274035675543544094591493427986059242981633621608329261027416872089900562145184438665660909860221794967972865929653993368107165802332521298236936108359667378977838568800745628292587590374838961320323822842509008623023741938690250812148320273614321602844289266839853502102224270613574866682230406787561001732146601328558086151471686312019464015649702155681113496369148038027442436838515518740789347434958960904457534450865217315826064521425977258087073623146089944938901647428579647418124596964333645897956248821128649360790807395004066424962324867089281059899912140157393115821204930103852696588860447572231217922285983492406983751994972095390969087233472283925459569468543382557485561805084206923359530397953853706101144687550658895042296830629280966553924670198796526493358884567117235016101764653187712762323683809472688662529950168035820254357072730085141091093463906382464797825135107108929426372633075576162623115322151535278910562731593696063107967506277456766659022229602640313585168224012563487789686870009003157170023120963350200946879439899510452681577627886709261269154609717989004115458682294156148692209282390991046950895912676524422884119170130109575184718030570144982222187497210941450509578370469612530906578108905203940262629025674686377574297544170217036350492602377753038529555258571167872938781103907353673012822531824243110611816073447620825043547796531436221911671538557458835810646834376592071906360941679348995691291230331794315856996794758870316362627049787563931583965808208034798858345263163447538021507644632476022864027043719169231195405093232248431439602342962440438643266317774597295487763541365819570391389852397904669174760704630786756729040860091653031719229165857480623832144073145697387005985786907099665641967579132199524431993577385820197499235448497346880293706312424671804179889728959064001333209515889904901074392079993037776732068573673949711573360997552578766360268736479390322748515286946043170190514486756844828914180718351281217283234062865672733739752183789359508026461233427800628376004277900545758141218013931159487432759019985028287318013264045307746502817532050160137413986999633741838521470257345613890027626341615051471637662315901906366405818947170252655266205832503857435152300136227221712278824583926848704027794448257410636727871692781741072746928444914945680815844594714830671444468787857308761849186159259388188945427866545524971276251972515320645731429787475626774151162306970760212701968703863365133911074460225659847635050457664860612440585693707474951167666544217897326389029834435094379433859089259170607490572174067444797340116887836483567877954516715546102347572640643763458350234926021486860221356372668803763717084762665926139746006895703417223742790920953027416429335946847139951729501972902008460749194881104588682876822431948596143851132763993871499823552983932653571045973845819512940832457804394715114096970990825919955585867253809717155430790206824790263078730613740496850127191825609074274513783606315040799406129309702132512113017756365404144886794356762608105515941319939988377616921644077506720188398656539232451783974771085127954956531663781030327600217161067059015997401955805094608165410476031092874125456690205415728025830336878787483588998490875575704557966387555213199120457014897222019225431701401251143344731191131613319470412519424190851802775975267019855387065139948129457900813410409283123490677523726352513410675486030999847423223736199502742296700057792137886409135119382499436045918451625197894438626582917320386058135041546789636029518497954378469299951021671879388588850398976780707671507016513838155971520416116709477223467417209033469098422937417611648801948737134338631170541264090509520983773969136468550665475500666229484403875783700454470577723263849254420312112217406989219644590382997816114863104221219398964487208792105481552413777971254787333795240128210967599435963072731683059666794329389822272169449924534312470906437013807943490619813092569580596248886234504169254031573307699209820984275900274638780845267824499813816074959439804125070544808179252702499876789895514960621644569736596691257954051989792213632728098789163822034682389274105930354355945896552264963017514984926562801082104898243435125983426620646758225005730104055335432123462130303075469553160688473404545652739848075527531014268365064544523701702386809091664294591993906210732293198733931357492047298512072683537021235744065113159791731032175317555959049707743226149524263032463927781664751808374671575644301244193233914132372944848059723648166208133357736631012982849618528147427844802936491371898561997345448743328448787215623763435974514226933363346101674194089076384411634177449242706148088377597124030221326118163270822610804074503812386531580733818093545018047153783816952411518127625172107321069609644645864178485400261824104027172155768203185060630456168101964751596772100894635403685435626710067982974675610184584958340472931546754117891974332371846640346108304873099917243541081915696205330349632336172501991971203163402497227592559331063863614249455713498812347267135911282084518226394524510658530394764559494542064784618894442993398459127138524870408102566974619434470931500546475982111753822091540909751314200169219050895828357894200537992986011099664503096565712937902139552430579564462108988641385277716390456616976591607417801446892593802860947950113714659729012605284995412500609212876228715501487185086018185323720053362919465146447014580135182073536985027919166301628942114602703178971736794757836845000948146643104189791577532957358854729314688072253386761508225659737223623172862285554517410158725575049534894377870982189528182076606155009795837282051555530106502648276743004297515262914400397697218586720802383388824652311084912565705755370063768325836242519578462217396913888531500947095127417462013833060251719835871594364205147429663562395971142062701363211989155107586394275830704173104354573286836740697468827896640880181550532983454761432173407698977504863050870147017449224732149339593605157317203253604084752444655629594962134196509815829694864794931097691404977987040431985722200946934934371652293121531718126482666553533228475828950613555440695105552889648699590239114011400598791886113745624308262251370758935451961822705327815192545740339151090714373557113441832686851172081734684885795634565167370261609063428493242635079802086712893824197090307295730210877213709163623472021480770567240054991734110895771106529084131555847024589755803709987127365220236196127745726651424548394957341622073006586199036355491492421442571337914709867396057995265873488869264653824806197008788293952932522849568464655551742173103721842315619112160435564236180452102995960887286512303755320746104141408005696635036484781534158896353788375152779223044533874312264217015025407388435702564175715268075497076818797131132886273159999680540422312820669077249706162523675768009912775638740978644056293294391812688713854703180935665195808109509462940097269702940512406692030584043573465615863324084577839900969089129042195518804538571087866792333244094015025734139904259995095018046827499519356800009620385877936225647245504311262898603213156286527944781254778414285634200198708091181227346517693047009030283244901032259218939654084157106998201728064584544991711979839357023819237251963550691760523799289406582631477696096602220968642075087967509585016490952580920793009478602533289790640276279853065676208908615296653017477189432548930443749112823442003862678277668821392787357468314098117086383636421993522041505677990235471854364862853537490804397057867804574659345801070844343355559917196915736805253481463836254795537710817625222296425168594058416845240929146500298626824809167785573328626274358368298125850489676536553295388507691828737364369964617717445066547556201935873642901641369094230159924374323186958683617596130593650237207457898727678523092185793081622815517202782677215509379409986435073085864570980117361109794091353876601366359191284381013550308445529714486743976529940226765951622348365995719871940237053328863636691807150967557100061388569773330331980276731791231028503659849709170149650421392721494230570054280645997597483347761907631441354565770649711766866381431605792738370697238799560630455288890518100300211875274097288424083284692516181384659100024466817979940112200853520067152121181217050218701381082248117196714217527679423846378414017240941923868072017707487851244003943854976053559105985590075402162671609214560395432491145388677895535460966659799000680221942616483350112242734320227203737725982911890565518031200125364242818782294235194352890794654258447717928278869241830115880874505671241241890004452435693363432801685622453759569161303050531099368247258864700030441142832048304946841712171763573271285064184145669121949925118275312850584733607365313415742244217103459745878513893221592193793109803268968287746393248737214428688776247112576639510175204165492364450650406937598438438956920978810318549779700732646992747789649838718798664519129855114050938487613723814051800239309718598140732785990886153941105232468220468253069234395132215971679090944058588892089243878880634696000009569646389932528016398097432010483305026696727279268410603753800328910228284395153229442313378285606605656955941126304738798220564861532336278914189463528831441464355417693532738893995274617497904966722506201505591259792428171090845231657069254928345220579165444046772548724034368693209855365903441164546677089771911749538331200227951425799389600303223362224153970753598571083991335002260714270275277860535091420108548173679729665361731303126323991607616235828158841531492150611793891660629433735297663993238028520242349673346859664636352759600738182036570214501309709831271947386259136595195798865407837638230948968047462932419392612915664032907611161072132195183673502517749728132467230477753331644383969832301576859044980184971490817461583616402212814336672712109333140407393967225186561549781199144344742654146358019648602415479655098019886704564779152357539835969002351426403301616381931400214716526990710760014092150825688329891203023515671678403905148487896954001254705115024543203213537433374324352860638565584591445636879631490840051245883671970686747327604709414956092159896654138803565980102066459971088271751457674288509843930365870851523439996757578816965302153160294918243508670725248596598093431255734341424653174307291835796516536258284286027028540339647424272857060406381221436081054122379183560061748283994017922231414168600057840231883848001062155887508989554303243413686820852894039840134740053871380180995889035920064264873153773643465427331673200401976336396463154867034807209467184362967784518541526802702141915606245342628804942925973271319626278825655437287168345560848992608151476621708438022676623148668177910587401656943924389700767885794646991756395521731217892443419608316472259768528673369265924850825968413000817441827724509998323169519701661342441206795651389841735789815489084713580184994485002719029306004076696702991748592085347296006301281247683574208746018823150723582504247541342847949258753589304074906729801011557594985265344156792164967056939720203561081936322907267370700197525192177439878923570299911688808776996014621643387513548655721673030379489793548983059856899197543168118579008554362886282926022319504154662774861032799242275991773502126723268969138554372487390864194366174294805717666748954860212407621182624632056709341738770752364089496189282479018851688567044336108474261374903928784681528675065914130411754112523031215731710859375304951568291034599034244477123398741404045374762526958185826179086203448337178806369607267452637358581740778338432974628291028342517781125831393310076719240418710053865897068958604096360542780319034991659879905918206525472048490447963294570339528616474018374521975291696270035688572089253590399752411329489640502786385226142978833470001051147495312089407443834105431189508481719197342339866082314508059520939508084127135933058223525758141899218685005261968834957534327724906128024213869362254670671644686327381243997024496994329417671792613813137544428974755444055016302678616030688818913510289746309454169734845053064803625091847738460551236963304442441590512561237027059170785274900095024717363764180016859713391101970086811410706601394187850825954705417340031873056638204992534485637128454771651867034894358390519994522226866239683035444334728475237397488235175777351436249948872540481608966088259201777859212098008008450731533161926601881213489066235083512489420683569237969023373211423079255614103232602101675371027645223675360409480667907730347095592661845020506684230241399196964953549493301648303599943180137257593466817885354503622310257644334371834804745982078205215212825232590647023085601798731996073357124308545250309213577975030888780781524527373912039426223802225326707308147427710563308859775064431838642575571280247991089474853550010111076347742223484461497735284599978823518613215603299346514904813630024727838918765668915565344604734440474396269086568858175131058702739340134386338564493974168774589787769044579581822551389434270385127260934114698822764204721587076324578235350679664081968767354203045109063028065074342274627904331334469640586327327419522514328042308519243021587015875255097137545703263758555772082475239514495895476995280617314847492316640610952979010038027624546919154031172228324606318662264102730178306168898840080904681463846603329458267537806721721087956995179253706997701658433368437754735642842508027788261035268268962211328742971325198232534477011357086626815076490062325272876693431505776671021754451564257430529448827112179026415245650610530976186878525932886558968609209978348177467320309419828964786945647686288280398683839646128332207659102534518869243905833327925411428855034796129106974214556538837704745260943817476178027495777493591201867441495619570841963075672095278263752461300100605241674735583505129827329614193760925431466509054275525546611897577934306595063700953413552384000184343952651937865231043495474010254524451274578195696692933163865363989855621467365969102922899309860812038015234879465065365136348539418106265265423976259777855535683181009423170978532831837806432107370251544658943695778303311476399237193088922932104215585989672780107710965466575375673325458812576317788040353177457493006957133196729117198068783448586674941413137150154332362394405063264723550256918848476420392497670670607497500720639556086843600924715176590091128767278695145981082408447740680527126218351079614121347692749959902163622257370124951897973099364313460691563860186102868109115086897504291358054394416465804083675343162037710836548156878160271998045394842836147685376278891168040246549779311980566922359394615918410497789669459926788376376889224979400299621843792585236336743581888344468612669150330342726318480903022059642798587227324521661991782680211040309383911409782689547575774457794702296367164152262265347602886162169764761602183878432877271543190854726165057285922709913222401583269896944617328719667288593608500786124729469794520849974683566230500760954313194021639282930673164364802323537032880224104445028730279805038622231967802646404857401943384245105067695222028991606519918113923506727869717923184461712294190934523084122488356738158200445787642838139430097986032241568760094814134923706815613334795940061331064089560943564028454518544423895503127502552824032845605694458787154175687734559705724343223198719979723955540151999817379096171275197984761647757757316197842229537992595286559619561879131499252099023849556371692820821696981768477123831523049051237714095535254290540574452077085700140156176290303005630342913004751212248396993531284190052396375031935912019731933226890590838153070272276784597494340198158888867984867445403608609676573508540688774556795389106577392198210920642075272445379179465393253075221491504818758997944222336859925149543902097854073904716165487538857862110380266468271788655063615899681561617764343631187067441679818413380864313650236455336270876945416675470941899347543924621618710001543856960449301660574912566143936401298047098108284899352796480313416865697761193147285160804448498832207836540248121089417736684121244798877913394164939210924306245916750826845601358480657431405378033415357973797121139055432499660298543839145778378719578858085026282171612291971411725024820811146684402521362785676668835375564479793142016942343213546239545075098504289239078937632745999979187779597099132306148254958552265583760584495016760732082765121057363572698124568322753172549425636712501736970100908928788752077462552208967338981906132900176275328691865373094870521332478352467321421387697145607232081334005328154995168578283966159308932921517167680700956253009566474706053434532937995346010177271649086519395148161741880931643915212449559785504910142388902407527296961304288050462008566986252080752098537483671944445590827009824173798238900757007203049082425376566671798437608593509277703807105119464721421503354977906663984764813265841027400429098920642069835068490943700698398481746827298261303416790124177988927968403870848735362332716820225200033208348082175886649419105126488820201090749323683070767795670209727954415848432588383937885108930572177561597828659534303859286361394961540837292552155021014533984242912886006698800404800853236751477623132520688630238529608481943299234701423625295499406040614352145481369529683055261194830649965696730002470213714629723432897021949426042128294144171674957235445284747864744497880375764325121775767070924370767647667514083949466730910408896095781031672941328429614949752631596884726814664677716556958895624244367565512288013002458294173016712962670852795820896374724173594477337406811607876190538921977691120013331421528157463260974808991478724966037599771403663607513561737343377134703432062566902916952595440110702697964103747873367437000094948805538269826880010468249341141863513866864474676649816205921312018817156148017682994178458473172459289577000922191516571133572255763870097400353693390938134670340996870438913812109740598805475660638413977507275352488667868055269077141613680914214386533831810223822574731308560118453621339196841716670714569640646426580841105774448491589186666882244364061975953082210328284039873383494285428560884522245766498734619587129393585366243679025418574894482370684373546294322144336190973496096231646027788902776761169759306985504799034730222333113414003167335399279716745173257128000015584950687722420877303263740276574189355776246554820054788030279319613924693840415442278454979223307401010094319918575436726892239820743965102881565771169062909222518317942005618718309464155069890466680053257486435241274926866387172995581449559133749460026536826712605581862202710723097407839838296321610808286148667320115936396715467763251859705137690002183443072053598423823310402136767676818816858979470713384205225874473959947094188804098598997044186799541663367798452622457773103847450857550862754955363817166580777312027789558702264373098050857525939884918383124613603773701673314996989740030549896862823501072672634634081079635752794824502165504898743870802862037884743552880075758909103096860909470687647638417813619496987115754288320287906565689222296616799890135646749332871786933516736692810088157985791944983585323366178260979884922273419159037979266872000437574965945765747350514228529935381707842917096182366213313394493246183017230376618283122172375220958244204422194112173045473000496604143952218327835119011160085933890647138985533455795356073122539849217181749723977426718216378651197138103405519238247203136544076032948980185539436383153816510450090910181323561175080600627094094643981178275604737914427951670571101794075675246734229216308717875512331630082143414360132189176054014949691723755030629160317975495812751180420399283507510749791741529568506165962018509735903375819675907582621750845099491180825778212532165533079920381807025591675500530939049066086183786979308504319096780066521688495361116014847740771917490350733535603727642758931211382428650251763350636737714381483314255144295198654140833646234295072999792647011304708795878470376371305739162577748346325850169535484866408328152371831698174423523662914849037251963452928771629269287474470827390674285815372369996802793325655013604884224015877890567071486253093174491398786267710898971555863712279291524462822857266799182061725374630249106121118726092461709940357465586919649681914344063166016633954150640842262743483596298976012917795835918263589240294665305138060496529083238561193697493758809811265298081696512251260205377338850932850185439037385073467549334428334403472290626957642610325194098861839868169295010684006482890310529672593772429374598042557533984587581518694654640482684734616513545476099154146364188057091863032265291239162196641533212854617707755690434846390619532472136687378716168170541774448491254860427585052056529336756614854678591429823187404029452578387399111343537509339837890156321241089014572227624268750580471188561341259762849071448262036629870993912979710944802175229049609742623256018948997477559998191337812725712470775602239576058320501536262174490997845623661808088338681556460997422447377993316510362034385934001274428954587151487606371502349721011343691619632645550222176409106325329251080175472724032433563205970937576959368583326937536032437408316665703787048676235439012298543177215846965944537902715798557196936132373357200609950859380242216972158703740001317280388149270987458429553243284518799040345622916401298607694752482331114058998170343682033787525476722770821403550539601923060712143595665657912344386092752536301540789580062231318171003774768725566720823068296770821271812455802385301452882334800528309093492839965140885202097565020206055513552191433101703610851786517218773442243890731345301293394518441435651226605104210068310750581811988535901075349084341844643073123236282597375528979939472237732003072569885760770831706034507950826228525105432786196668418122977840305415758687814855150669546173917025635578354076431956892537361838614836459259484364590944350382655041246935648840112341712369032454048612344519997603930578524999211474562311883472109923194399281992464634207291803927412564529318703529456489783263078661997470064870029559785248487913973245421971830336508409804546240948608523065140090160325350788494974167029921323150993669483328149376033375434434432973077136009351633820154048903971881995924612219740997808077368346505306758293792954064220258787706156086159040634509812958221119337577404733733250149379547601085264811714251263097057665097155162729913415008223589633849530840094541650370548185924402599017727891534124994001462024961314744102985935290149583860589195571905474026055688483117899550170255796593736950915196899091016667768736895330048256287824105797879226853326170705008956587652609235130368914474269920011478508153876672236168889362051361990392297764327642971306312880751926515097590458901810416523443108534895761938631913002592521355914629825251776602975379645351957671835409182168361209944381157421701257303329479595705213631345126049150178195935945745551670542810929703623224810902282972931837688667559755486114530656448984919047831593756390180937379407786716036669247149472013693407734404631004806176192244461901694768108799108119777128965627721505661447915979185549886971930682666356136126686813299926449388397401420304599979018004185094969102947680291707241937977048134677474954283076178581865075090970749244483681588117029862995674575381740030097746694093635736522324355786304565842018827452581718654723218731663350491721288162066606710366152588407863722765670474545024367899513629407581275031440049451373237426923216042697939297339618835962955374863492075669610607545366152574553337669424896227759174063414557264595922890934054866310117209968771555069769531138540296822994530648214949380501661644642999321110138990215145889707725811384731206027581049606338337184178884296775950029103211208562044400760697600100060175660515364225699165234889868262067444475717075140759346539076495528915987257818775870060453910401450590905226463606294954419869154258121668224074775430949310015292874035860012796959630162078028149258948277223024127528669020718451662187772812524617312481364147077717571377149880236217165507786328728207254506215070021830943486116824752756978301475641420858787134709035482714642824628796773633682280762178471854419214455668051266733732095186763898840088039294165536261126351911657442621766674862706031387189789056318926032317239737674311080930889640330509210212582649699869719279499714379808585138613144385135806205845132632563822104630717492665904830272325890821918000712160316012134589487131304437849280525803236855637409119568406947049149271700006073871238875740235787267031125686690224757081046827490909578699501885440239858920064830847649813347255180125987909763100726257855230733625030516352641287864306579374349412145187694071880364834269020093158827729591671719880592995972276749033788366856405936735107420905721215598331265765623527068189258308968218511367169129186328764689832633995375152746729703441132742609422177738967151710617183892832025817631477608955234604546457886236670534290535527670378416260225897471152572269994852189212847444784695543597854023455457821085704272678405735017349682892112091089661991304923634193414408364202041095114722414863310548620496883604574695556114273813525364011005884262413425113357450203323487311665605895415296415366388797832862017661947692795331293796892321835918754480581631299871461792450680591728514162741845247810462451913002287131467293194967964180359168818048654042385499059366367915100972001175791298531706671592514965007855915588296612765580156811055149947835957405358852938731036686291375946696374008016994603250183078700842932787459561722300505972102716980487506073054372850354993444172326511098377628669515318455327576278728960843147697235560218970664327701455086812798004152798988689679090431244479887158871423609670827214493811493097316299583201084266462420969804420692329570486354631496680173284281260238222939151506997750256908420128018998476786676514894488417787030633531052891833095363911950638640875595121691471460236897683933216354000598993602904173935364692493401230508943418066913694912075586449342811017856256118331233397038852554852796129857980423085427624186450414870984356619855714307563424906630650114265206183670914286448508655158017642029282796947721719606278917929283778661420586639782536719819664534802433965586363868257572866233227152776167873011550022836844975013942999715789929688465373378859220853825550015374010069938841769085480887742674662166883356131515524005308386623123491657399211755664366999118877678445533261179802975544087038535371015345524075796575335379377261840352848308428274039505334370244251619838402211216344670082898605698660429995641654693296943443068741392961796062936089026036854106935926006593447593741069170210869859566269530219033474290512273941542242207528885247234852269812749259121777785177852939538120990870918566560158297822541797447350508458326759342969707587191063338345528805309946280551182253926459074205392326376003534250761046512797465318838949870788296037284101492210118440726749038707196286240213847728786775321547442668734508740395667234740888577890719937460839991986004364735680736343119349570818264999823726618255007591386841133346577975673782902569692711787357430603145288668768444627688742298502877958281243522984232223859671318487675608079661379501185468541722493539848998015141052985137323872290671052939992355403346374310209311166651712519423486744605931490501764051319062680881201476946246925679703618374310526848525924559364560910068487515369068184380931982810590606825704766020074001976074789628738143572231943809703685485746978454209874364437757798276849805979541571423160232697230326260015276805278892749548815844785334900664435684709233297483877195049339772495822036407189358709006481611879909986333444393226850712803969087489499739761012284360257783595183103681396553547186986547026465984197992237568959669027918393924408510088734812690459865940653514930111671806473807912365286180178185037044470314583389754998908299124180106993054213232033588714710868333553815907504294354341487114910342970660625348206402499509497334950176986434385299566658129349636177715603783681450685626926126751583495985511937768982591524802741069984590841936148500643448178626483120356228002859504001351505586010427549909966044946799155387876728401864800650861500931743963328327567461201600110001716693822792902155877675618705599656620029323820222807377411130238611187739393881272656338441966130712252340254683497288651077846264033772989900639522657065308773380334272528440943997908025413658860039015845821949698538218017376021875728130759702757284301107926080018040421836818323000069903932497789167542019569659231670377630649966551757263016779323225931266052952568335458525296574201592472794444911995535036286095805533321242452189338317444109667563201277724533513599579356074970410909377008820166537446857770857756073789724956866207926419723737243093599308972384717328870812591012139298137522207523316207856806275643777565603959930479995900060510228400029372277254534017608061487438526489329848778652148247884089863800438485182631883009443217195806410948620240172405393685884685710781428202159397617955711487002557394247956034452426271733467170566642875927827182946343207830184551875201922479995671770137551853399560908727596973439626846189269494556109979632995402259288956084123755272940274149131123273994223378194817858404623788555565378975975768938182398264600083539560168982538126742461424189845185337274278874245501067882763289529850132732863588748371446934250296516696230771445173163888551973826253269555565425768990700562198058492587180778562501899258219225909065822030660433767200253925238120661833813553098707344591370184344708403407783334527264683514115739417463054718337265957346579803519841163306796958859698768810892578158650894400377078143240808266819458004945792563522215691530179498913960012176860801273945516367932185365900159296559626348278876687347287485785241558739791978690482216187596350009822217491977470563170144194109430061831608087460582131137889564533108521950227254548823082719630113499362961621956579577367339063969145033123158664730118541520628451476762283795444346704398905690112905197232965448075899731406278027747411539124546482246638407517567981840166664604592674432873029029430405070353227688786781508753250024619947560914745159214974091916609945049834408375034567216906485291883437599974534523033675761447598418701630453201923484412673550713581397364078319625686107043519868498847195991733856762267979025476638754380964408556058021929902501805764801919180911031993007619572864449154150123401970714924896036791618642130367421200294836788614674378015217426759591595942782054217637331416322914944731347455192776612011965219435595495158446470203778313215833176757943285241420601192830236811696878897417551002359055852188861588214623511544751317787996146782349733814110923689487335632297010156246444996493955706231702620387585161320464579858585772060645543432332652134037837292005701483090982407843918987780147899192673019389136447783452260112066756373020952497669075920934533363660555370840090367820129938063335552732238596203922867600673120672568520093544321636674160974873433816956849575313768006537074846312373808598765837046957123143910819816845619005290018767381915268615582623303983181028349899566561276397985268195357315036644777843936247731784356534753778688512434215018279576227200335445565511483198017207969929327364553166471837389190320304955124072753766712458700860939886905126717511629603213707448721207204001285305656898137879699581300591150042954814048668813785803416073250496395471378205594563949814832478158603137680291610911747830158594319450458149107064457112114042458433819534554475081092473593024124367746152199092208342117114853999246379647187452175124513801333242094475856162721383150127293435714941536524773253129271992868446715706483074253111972714754771153362247392146052563060429920295222969813107125468935825769785205344794259253237277018410593613481877354810146284740974672369055932699461689451204316307606000678070221165153014875652693138802108363990883635047592094827228598890327381719917531766462830720383172772663871197763485346406450911030801636437294740202193079892218672978788951836036558152384323764289617616831162228213689775641134813150889079091050592733329609294882429645787849939531685504952574394579352816130281387057801170623407099906212751017974377532642584624258613352315186032154914857099129176387238611813343929900018290632118224786203800143534702610608573104035787619654768871521944410542517717471269616855736433176611245884004851085638383953872773443327512528470414216077660978579620722078604125150719619866973224794313020160365702452986201362178923100219468583486660524820187664094106894857458507626760952597881928608536008780231488236142255950952977636579997941043418627900803973225880606582113875106705337531816528236623348866945816165439921130739077821893319751088210696042248056663623039053011492361994693843132519776686634148234313791098130772212288036068712173834102529608559877637790364519220217290109666151718909353246098541926347605433420929185843789556803625197730399699857424800884496115893453118412794338641304374475896112578062464978055227421423764128806229547201347178479594545087104181308068513849335517005621695899448963725448253123254709398933626616495422456344878153962274609309358182521693370663535902657707068965162050766160380048934061153593734047239808420994997768651695260808519148703720989237324361928127224745542411469641951675020061852686518599610454556676333042213959445210962367866541346906050760397019193728599114812454773369256505906957569892733253241844653771080268568442372590990899903961639996760732170261541553671765744488764377603475502821996037658566951743218738134765061604228781035230083522357249910309164738134830969811328121115602391705002178877420725845724205870409823314212963118132835842128461587229054813554210257471189345437733064982033906352174684710786078694529146768486673699746283345212874976578966163407962992041730261124665187520528241012010537630496043101870233247326343263810846868232581904237112578751257238766302411225036825897462513629223016422519685418110100198526573320476250032072617581266495512201434106318789453485943268009775754813963864728852557229710741998869621591385059620703751285784195745084511116837296465924461031998908192220680257645497342318961583980414675533092550972019272662023734562989713653993427910458670655118533488778798447823857994427362694783336683409319017124769557011076788696560545966675080058246981803617410347055307669818608562438696130559439380351342199390356009699981161024489592268986604576155708747773479532655621150050436203298355964825085938475415378577345768084046873715569045500823422880142681976079874555313630985862362618110327930797747160616422363906688269278801557421897289416112603950519208810529963209647160752309971827967205747538039918838277995057831607984913720807880614889576595445783388948785578716889167646718146346067234343439707197986240838260333716295507362090946006050856420685725588455672039063506221895971754536972471038366776226208213813284989350786801708640938807712595050148982384720930028367461124293334896387993139148147410287563990669207074285922789609227419151432547830899066812711473987346219639509399737508202695339009060248999263998179796660863083354044731497431321471066214922515192678211375348271307189822752698966109376525938709326000584997009559910790774609832479362665794904483527440698208501769087540067670438497472522198201393824431484305220059399341628173349703195013086718311242514197978885743306046394856508813291553459377987179537945643386801112260878896028059534678651226543462069801897868939918258345788706483839347651511341391764617636368568560880447133186090023525279278980896699173962484531292590590411914719063401835222564750486050532008940384232784973948662439336964657463185093613633805978684336650519468469527012423791841935113751473452215772302287730612817189422164203036260444269598044248331002373624120284539229116927151897429462524248757504662700617551570703751513238924505167342784861482680962010988660761018678454993481671860002653963874266770073814068784506271692411403837140963213141541607557290143189008273384307098208448162137089905371125183363562176123082627295118828313716440338414595666065604113525979847243512637729823477686259641002669331960711729432000759011667046459463635733267865564892014938829734759577368638976688372103091056232702001388649901630339274385731393569379031325278895378511972800151411004439635756488867788353559921446843389253679703713695688939844890233754672128190793038858694600363659242542785452731836881362409033374571526291243511670306799778534357946470641215162294743440679961427031958936450706294987870635844779854243862734850213373726421842912771541724994311254180370574702674052448426660373328644480092874201153113194196798019935463171907770046797325486075503477523285552443116064821867029271825669828978288907089671551049765426012011058144616792235019737422969061201321625930961133982974263371349826000409912939556646660508091576861443850055340898631197555769185870221136870650013507244957684542348849903692500146270679250261954210363908634202015190191609175126921779545143180466726580934571577338026784783659095123651381317869777592105671590292772021232173594954881038883653740927590590159363813969782309734224035205121716561015831333010335388299557959416746618055705298458376325793405794405638441636674862360664191625806275370956757509310916894027162183551994031877342505947565083647353520217812488904075516493876682984958800454976560689831717859022632022357877393991201930156736105027844661989616893215329076588393915335954887819309696020277377969190807606713009980045509506312697590572853649242285127919544055210902409499981130479633826952837071961231413128033447024803553003162413349895366720371529195433395722787714438337212433071848912467082581135319534463060774311173337599294800539236543505852285428378851506812451323141357975640094433142419445118132677900795518080631618486711260843646087403357809390748318002066983029917768720400383574032675514213603602289876494262765163444201679631376669049403119261773100531056320007803217443092350787971849377146282748009574691135474427446488748957651258697630893202082069033130430233623018618138378015564919616391846602803760750107047918689087667194887116304440210867652987743464879209470379961091100758003791701164391233361674206928924405330147341290622906155259954677939584013810804549003311071761346836201403821343771200578822038691276001745147738161770420140444088256347830330429213186844911943130519299542909675368112209368835438328132931663891695228170911568931051787256696362334597732080839652777644531726812723077921903048046798562365870810690982410529194167126020225371863916524263815847216403181255984308215449073095351369237644266213534221507318997423921558631933825451311584948148742634719920117333556916199235564369578513061398326438389733022308591222575455873211274872715594217595044715150584719190099640718228140915155899574464754269565373944697416407494708089162265245702029369874219026052736208812963094768952748601251649534723790612602225747068849013582046897059522950703972703994940128885629608330312533825326064560628461695813458652895460651309121117454458428665208805226190037738517206658928509118765320215622379684622908764295778885463762890332584454071068872666017687230272324569150712575070518458179056583872688471989100231654420423244202259080157409821905818527315434749626875792300848015169832133045924094300295202232996753195527188431109182814206986700447939533368410803152957913494375868922327556538733152364665649190289453135888081182961735599298210830701097579143427635872773545199669359481178556848686176344134442278400033034828804105892207975367915233418148143544824564246449472535599374369140137216807353054099043553321750284938522185401433023650681489756669623190242813331065919113014037292053868814395313143466508889513596450818105417593740583544260531664872190381568486689688007681405572074132981749964635656510456705301768041287345445548554139261361020830454360037096916612045823187766829762119336620983492527132185089536612109870452652188537421406400555842605657264763149650394038294663133389993575976827642093147544697104068993480172430461939780861471407895233310140752150122247627666414404516200772478369670477916228054706654014394586890852279973819532467127582960513051135724320505414809799260576395774457688536255926142440272480246672777027286697038692685949571482530695049462429765301874337104564279385923489015767978643871295698738994449576976084493880628024613761689939677446434886330957398396173001733841472597893355078972481922625091522756090494846101258508722453981659990024376645655415900401750712250967992427488605248656772492124160957502104010348690582600149761927539703533029182776427848014664791547726765679745817341172527696595361296107381200896243279124772624969214907419509848551749565784829340486908730558732533862365730844226819804894060580916552308084422843764276416438558024487903084933095910842309740823443941373572733707075939611215968813860298607812770858538320979000575440028664224644818935470883665855506503455150978530694584789809462421650948269219725275252130162989716842144166212250686710134789185873565749529928624624540669665650691027206166200492198953305907409610044014592960281931227416726962455477419833916598335537707197828489300040406536065605582384608688293801565145877321444622730435196750892369162087761517312568186026344200864392754204961047608687117363454875159201001096856614083716228784031622821467271227636752153540500938363334581364849003189269854509981724914475887230428847471148990936028867957456722919708600478494121993170885768634548223234685101468136280483173427033329730219653774892332644298850626560879690468815966267667253323652924629185610580144549832365549925698774277581593196287468178852398270561307357072155388373572156361330147231404024092970663492179607292534506086938210777657829469521796723432545990493224042697351731844489792077409407201684499158363139430347945836911128454940171219442725035810427291162308103961763515658408443816188885475214083727854647842190066347210279161828735532583413699822979061503371247957343195885867400185812411514537789510012668789260228636025857500663403886671757134301560624610965379202450806450029129016907829615590621796828409860336450926363730450676379994646238659224444768583511521006199731281542695696360953245703757918306045681758384812503089425051074324436430274700933562508663524773965240011233759075281730696407919282619788431338548541869212396598935882712931148828803559514218536028263716875272441062215936879174851054176396892738703456098861592988775528226473734015858660528729316069039434072945910724564684345856584385477722217623306612352939622609117497714296034421115790108667008436863392830390318835531124670322301868317129319494302060325587372361058004404736049109291417439245033292132190340893019336294927703464656748765101379974357598000787952877984574622320645927112395449688114906953050690993008652956900832716826784394836200209983974727496930309061716232858246530583657833851469062311742795653805170209054493158756380573232238163822432992445184481763800759484538357279295139550733929805459697379616043175648407189233981963390029106421356173799139894053833444085767148740641314881242260911304304041650560901548398237592304397810557146525469730695157876035120320434041702731033858363436592844686947250364017348092026475117162633608201995407238398855335402765904823032720629395187924098140855898210211540272745699047131158325636879925686227720351450409582316974550389305566967476721393110586796549433416934128232811678327281787868423843382554232721649606196282164790019105368537687998348694155547902133637914649639266844000392277145653257972054561081427957872087878375884618285228656045782507072287751992531770672795048001048337668155160365282518547927417879715774273820398786135548300971832733339591860240273813668550760073941500145932039460731763010104044335338576985583666854208746568013320462276214338980492140185207976593301622661220752251253911984831185498003846989386513811037079341019121786165876602283387749319210394700125172213710292592957245465409763141298683740673098943582510751767981077403798708059922357018127837067919950288276351960203349622335229060371653557750976871895304751168453469486162946155414338967891505756931994289364255750916990468710027488034221182688402669879147290009633109059311313631074083912692562875733090049840886454951675179980879594255281625701731706411171986594303968127536464214072500365479922725845165628734191825612467690882204308697072605493530430906439359318083013792380978740703798805710728956983742817903180389612922207472417004031726906510847147885974105825067689402373539446767227873254805512044450363522837393997632192599176784849770084772088886863968450426451263266490017952594609669148840768344463795537593308434564708673336439091392509651949460125055563411982215880801777315502755205477500625675666733479546772532639997516364479023751165372218787188441156876607547155113290790150850043049586865202872222321354463373846913881160729961038506253383646174503917240173882789796079261804410739427891962711757994901054582751883035837578927611095593956590479294425841582137562421718935622977932218652270515059646187950065024104086568328064301159576480990642013788591992258598471098146557202987396250220320281090323112139996964179336437412597244474043128378437083438680358777120423025746455791476814117947428318309706809610539337753926133395237669712871599071991256343962254870079804460340914024296953571488136181812975781204760421876790915988862219624799332263303842712275492289165099424040531904029093592089593614199518405053451830708651389010667750017261174152282708044484039070390844694874809142413976756237793528282421551423238480145302083659686757279460857544900447888482298571495422253438471964754122139146203405623066494439034750050045262957635662127489389606975866454423443408334073730286111539494383312365668230754829339896131850789443959242343274829618990137551119949495539433495543397814837208671831417797001175886835406217929603491750573359562920556618312663407775779659410436770593201239126211225843809251939750101495939691083780841165722921230856238521545231285356242057111368925484297054004856923326627801347632802561797495682790132869232597444230047498896459069357559559395580814497205487428849370407617536331400162509070491497110306707484042625021667158425411413973214784646225701059423446262290361595481015920658033085047841561612048703082219436611407304856535606105884538358590426796820849206187364791238489241071617650917727241961584540710919767649442621378562442181799578874987950708037513149751988598444458670021938442848732206848058047122349700385922469425561489277518855689104573379783219144431420674380337470894229220625096945804554107408904482937114813462187211714669312207177804340700752554906432349782181295910069598827669379244057258870016784033856683750359762135690745087351101269109012641214186169211939759753115640490037126987912614094438657601817443820363864920871881886579483921204910901417949839306914384243683433220235163739103086430501518000433836121258501638950706667404173603790968359889888951719782398180884979091248232704420402508361442380366121982166616033009540464304303709535755302161909644452443964557898492674682913304599151570436308746935188299698357291240928990149832285103500809872532999834039034194520889030387161891359349337501245351178519022504806290614492685153786675413803961962263469578484529012736975492213189111363126661996263170385626958256573240179599345631878797792588626734759918610580544106456205110934999768574205806239092868335773128074458896303456826540973897334846932693786490349611767896483883884218832361356358934572682743784260882260922145204677002708564914792059883508907665759368816804556556375739288624336637788423605614412973647258839982190667409134449851241750509263685849825992174686984128453678425070360732485729750269243610695641147848303802293942587460426625597679736360320230032321323220781791421185545709416912929615626052656698643621872540124043273468702849428354620622379690354403027853397998928836984247254154067098236083916868248331465697486916334211903273617796213359091572802736179429527048351875888763923803029426427529116095427655519800043803714931362106216584828978740518610580951223688830183295315647035378557343218816119727211250818673985329137860807544384073319941058173486298831768654510814276485329153751402048112006016546327651553583706756102272845464970378983968321014634410308024578423172923820313530647139233712213420421395162710495350998529400404602710113866199814248128793715045633316312287617036573499328994422317559150335007952714341677406008546705188859004982317035707260485851858786293300330565502309334017664230192137837330225608682010473789888836930260014964387249283591171139049122028531644682781185350116460833239440940258375634626973113024828800460704016910499332394434352991728241615222157783080733503859392685195922517364317456347341808611025108106820358346146231524768914227111306623009071174887523441344472664378300643339690488276663025372844366565950812380713353069745483879060014650500743964088336199548148969654707273166133140620409079416281876270407984680997609839907830843123338236491305543854319324138967387790196426917145320606283427698818574173609509996334566664728283446184759514848482146551039334533082999758203196469831658937800994334651726107769849090425178843091224328795174539201774900887288040328356292915340484923364372757062987398965646260317531326140061476669127531203660957777248098594417754593507251742550283448800758042604785502480993116640248457885645011029058485921836330882591253814261352432672272046842157072268348079913899570997923228361921721313245132647136466187722604925779706800548794497218856979232961751426506854057123922240577388073060580099119044131398831530477357600221114634168594773623554752858248705002294965957673797380714807371637986866466801971721168556447453122451703985478522143499839575785553753459725868268584050122413655610282368321379604760501833015654654794782672193279200187554981344011252746747643194902023232336356760212072757204347424453045932043376542894867782483766420167952970992837461400838234046658777022163841718170039976115799686119198153322305396237127869062692443959338648550059661756671021674749427425679569784465457527575727561090628150524931038904131476971516893467937835206679956578213817591111967680659196015062237759918048944507282814480109131735268703537208633328353726301120221272912498629625092234269002381386779155943400787221549536101037431125292723403719440754574256445890503932848752456189556852264424551483025654663386450852553166877568819107125184145492579525520631965393408360090334474730417777214362688176318332027112650465134084396743045263266902136767005332086092062623376167225475201840397060711537936552512749014042822943105680599171380254419133927192221885050597962036152209309387336400918459563051211245045203679867224661410239483585361798043199023559968577694328146149670328616822866817830094533359926314745741780776106385384002916142701102503615653701333085939584782586994100749824816934365040026018153280274175926425008770109733009850509147824909833463352012080821879006224509790555827860330859216223259456858131790072444326062015075126450547454154165083107119791569803817682659807376172554759887583862850168920433408596728114340050840919897614246323737237296767967353940799919770974907165938620120610317458908119909147618763094167704326144700432067319473870019761641614383733296701633548523299352166863097254266079639055133468661392748109309287069514825015806468375828844939701709102164958048381209342424871322737980114981919588899452046292896570424956316122805742972287246051602579473037920270224099149695535189748206494778191164864407428315928799142813136857130848698224659820024074216568052266855272362341066351907542915958411520498934121510059682743789889120139358610806938437959371280170371006305315168867955207163471853149199182272461604045122989395743754387317328968919085827383832738584040318071318776408814861736364998895005628477866397637386400338979573304115518999160629717784606654250051855016788119763186899493445930745984314279122726656720525845674962243076259575033325813314876519374563487464174702916094098776991236933223443502532283104965835091466069053674552418723222526665781908605077578757186680946125344908450604567700835569945384267405586354467771555338441688698033120681387016625705072532440336985925951450775985187696700600579037498032829243171805473076776731268986090170557227124212207457535929665457541771008746561619669386153637589865696804311168955770873535219481001264700335798838618850119474293761170423162081042816215368055316810865097827100088887057971145364908726703983420854614669645661849081430525807385608944723312315859846818835804669174981256183350018670082644122310068493561949636862750813920771361039936912441331043995501990660755868906702706670511287490756903913532760866151464976932049754364619797439012069849188694456765911002511938974620834646410361501752030282566786021434156216420356308534731611120513117055495784430694164577455721952291586168703859823488921850997397769785002380943111968974737678310892357237928139779715295577568925098165497810093106401033463523392232369176005464470983129282021158911620044806502929415937652824933420211614188407030952617070052941428477413852875092045079011482037153634796126783440963168260838324629531924184541825058337634578528928060841540450737856177165773261741205149777920430901094945341293561105335506806141818379029335885237026401331352616621176214640134937085698501607189785298305928597254440054322351170782312365354730055701671848141395280963573712841710566079718540200009062295097743048260531529861043726894156389355527617488959253631860424190390352075878624148989103635000036505458383096038371377638802619510169896291848026178125236128564799575781352714608080670873193737778676280260089754663398529545860769907663150242375651758610761779417720297166974039707085962679547833156567676877282663490384419734654378242173805711068342088274538338875699417837911979333188196022491363304971696065217843896350388453217867476446913640052179180617652184730953742342116605610006655991816549040674037524545008481807498707574793993518748050446312139479466719092960443406957083645532472279688876622476379851330402574165303792404061388322154660215452259919231499436797965142689071507013768781331944448743233677659114961946683623165443687358341529366138434639235127305827290003664136194961016474883616478520939695548275967121505265890828083290554484095729532348241000053493787609315159351730611225079578567923544984052511126667109341782604022016020734638440667113146347795629923063643805624459138225497809452982456792464417619545818695846068829412114804363948863962866087239208664254031702444500353244286273872863672382646174711069455852201776918792226043117898102066415576605109530691458323189632344905111893097025030229461809483297645448897993475221342267824982860359352613349405816914958237899577078149161376527791097484268633060862765661080071896368721992598860227808760970245401937962046493795756327990886806562757160237445896656239309022281102323637514950767774199081072171370150019792887562135321550410750909292915644853072590454340991335116668538441337731382819187369260964431426440036788148648073648806587475055068510523002167112179828068864530639117798648805226363259864352726350123090720475655909986202985167405395760765235591051995645587381746777860480635551454463314784719931480627197646230895552306713566255827953548602388411010025649521424155795855175235496848667911176386050222187893382894273580724637563958281027194711785619494829878226117618117150339242851558997003745795012157688785956068293903035363091233756145309294667167277308442249632500893592017218717068356201196097587958570388237433157186966598313924752053671991964612814636104476017843074151425005757494426310197334238811940930306564127804827122491053849193771909190498139451276549782082552700404652373905142609295288881576950773906172830316623710979298551193606855830387799205741102708908033818525134128855395301541371526158941769099481669745362536011739236556143502742997786230128457399440948692933532775142355568360335827744188002490296113372941585127568479853757729198974076079710149984632332145652987025501361824726253236198554040969079078983685517388155636409756133518744371256543514185335363043738307845415226641518237997982896187916267031744665999689052077208449536051809953053966346090948365057533304276291957341662547685511405198691402165652925365013909095004441595668843728784842067096076482807180396601481369436272533540099286751491251654040333886660039314343891341980314512741562788161844887803864233002689006099098036781287951264095811926890310762715952971227952873261089616157987921105695030464244964169264355488030060901298941790024457143949762015698461524008682988554092807158495376330894272005980350541148738168391164827254451296611101725939775775859540600063257561264499938353595971857908295448713078611609477820966513134162526705516557633742886379012624325497108189554958961300890232311050348250708863799098626017211160049686053202111932790284942333619970309393162471730260866792802806400939365100222351125800740880542326523263727493028395675989086831854456666479848947097796372784232775317764964444418350657397084896024325357412727671751897575137522292270242576455721025694569921231443924484251263712616364799343387736319828316692165133826370001698669553234360753076306986574411265713303386153642938430197971698065751809174109454097259842236556800911015061531832387570445917608075098485493215078978622153107442188170072611464751797175887280046736004781522485951048088304572972483628407112288480651346176993393087819555574096492440705482051154740029821059327247555989958929336859764634903106957757496219546309990668601029644255765551910466716986417115421850085108831061900443411142972513599760895697633680699185361905754926599781210292143633491490204564275166458771981369837365902399053387793830451850352480430131936452985127031992492951131706958855904455566958966746051399130493253355146138884354025756111874793818283217051916941136814541438511720822268882163204509019415372179881336453290538590955779725974106046745898679018176683788664503310311920149700159549865564072062208246361932507043770749406170923034799627779134184227310565995739182778923866914780043021357386133200430125377300750445741128804708695085231313895500819028980181700747907448936196657165742455689082852669597335489799475595359392540045156042365596328331994397478818170328227196821370654588816095235301163114895861222340631177992248991556413242525780446852025807498906452887464184382854743770331676822610900529387833850814960568325794137348823352910777471726343699836583178665078868880803406418329726858673570358410291303512468807743870757175206744590052755938921677596269363141536361597500931814537139784532108506640452649242586934766865525391725290397603728292933902811910107240652713201336546933120998090768256130440281315789805920407863930894644596786156796291886091375407112431539269218253708181361522533240490285512289805738134809085196895876031893040786395202094630043434211771823990818785864648385840725557534386606762866492402111870870999613012395735362888311100722080199457658395736746727201076795734948911242173376602960854012663042474322303054982810348162135648454230406631796946466040974325695795212861680330379229120650042111375812407054708323130277609396603272300405529475664068827283521027398847593384982957682251810315631834933911887756557484631936629702908568716717488412613955859137302478750262949491458480343055624598222122649695256277677667676841917012523716681421198591408161894273880308990877678124104937818191346854333446482928936448858437101792701548995591003917322311187786781261851739453651143906260301804452823705075158386723853609134158205150565280833887014844918590585832593622937616761291924731099147154104126679938567391279629805389896074266795970795629123954530563065957539991847676977198787616244982719313655338057222180910929489260566615664815441189200568232908573632882016698071685834362134795080098079014817039762108222843276642326077067813454050396872819838494752735769586433555733917165631510134492615980178546979143947100776435603630892913641830234829785988683612705207004453891120992610938968697075557690600881913679663636476380391465768596722748638712095806862177509694900642841033609415585591780971948589697382964875579142174914653621471939009573058224346543150740500752610254943497451424449738473520950773647909777681662415533709942615242457683359367425388058454256679789346545153124240293791545099851211559761513721250286540291920670615632995086047524928498435510929209613161321509300988440767734532814399137465725928976862572902908440065851504828205967174725566382419298406629832697712739276376856983775100894078216531662002277098881825101748292525334344165892388115603528120720098486921059277216826829032173877403751924385855265721508664619386211306649775673899166990692025650750468139500979179583044800149601306366116603971909798827803264704703491519775147822699092765972655367877561404521676408672449913234370090766163130258273583936601072467206362032281397193241357351457249526711004263878102054356547462360844538362927036482551744565746299974076952490510245160042601132170964482910574087688539508058530052416156852727974445065345021446960738936539118917598657582216551492088422249314404698472059418057778756524945862922144849705716227400863360766369265489516148218738716655968119244328141183340751205407869431306011679205070042321195983090536081898844607901446902589462423834763994564882567029993974520419376532696466668410834079926208840784714987442390626723621575138929217487390788963397217507740334035959521187634947099920239998898834528554363178985264412318372224316730898749757916030625962400879366289025421126503572302425613794314721472487069635734789413493655607643684232503153885882850168279482643466839047728375629758385279737516737818365888409683902680581121583233193445993993254136153491170930007357113900432951960231182090645911137675067956983098536630943757426261738235394445370976391813609582140910199454150538857917170847403752098526034569897880752792705349389152525238500598536550519781573606175313155642314983898729438484086271402579772293837006591199377039379801756564812754609103018404124933885060600692393459642193402899353897895655331706178784090884536336758378022770908965827459169536582159964762950200818975769414011042614687349260142661946658137128261884047371284289881577525268280255101367063570631376445616968735076513292934465571229753532998552971548853421183659366409281385443234342868451685405963378408941271965562353423173612468239164642960792551972110886338510537550412890061711857685557694488963713887105898686170447610135613064872878499622495238569052805246798500036337304454298424485838388710877885718159927660992949059762859276280243485813489998658364213369423546241467696274087730939904656376313593757486895447803081467310540239020687456772943992656505634330180853043801284772301121435221060825296728760764226723237175984997753567042715083902130515397633789691740331024247166622741009463359727964685240914999445543047744930357866848508411224615467192503593295386702782320648265337646744852932591553098551922161071172756556085378846597301073729375306969370792703616855314227564295947485059994219064723322807299568676058811426377537594652463754017950860132515734516463029402873884229006313846794429350666217803452398972136464818917587149078551323006644730023472592272728604924787188051821324658152415451026759186691533755060176997360662511627353884405979646641299836941131600723022357765373476694432950730890303423571541871486022566611504291621182603669784372146924366162476154515950932494958543934322349316623528732681647278242299505286323673311089156827197966361312879522078682365167369723954366849163789519511799155405845202495984648373866871807522468862113979597326066493689039708508252097617865385139308799119908306067476156651282475336958154133737905432007292034543247163677971402292873544700853556284306930601548985209306629100949364879438277995125960562885256839606543411439208016836693325082440669298222126659562315458771873222513515610139174744413191581343251972888441903172441178768209296915555724038454527042730926736502084989684435368944383043767965649043392134130237429087031965218753768507190761742373483332689258582606769051757711779946284316634419652593892883895358639616073177881609727799827025652614680478659331229304310647060187043912435695008527213996111206421335406930611686128360987195106264037955033659738624130410246625721588991091622641349600046210557854591816431405465197715260137845810187568530314648349750228579368240034269831520713116520287431252732546797718519899771729377962927851256793548855391973156751499057921044373171362524825940431528179714826788243117999722155023258263291193199164803003895074771639530687042313908803181933922758622416556327861444703253917018374446392476064038100616265676540578827206027560069059154969635730158913123726003438417338544170570197345573574733538025458775861836905041585962752483047940373103579426631504129473673605378674495077704965069115984530755439534531926149898206174182832669620581876566271569994394200646885040018153777190891391721844399622647400127672281522471909726561492674879002619841158560768692824951372146089083447108820874177149275686953673844163611372408591708621511904750377046139130279468712521098428887534180474090788651238263597573080804008548283573334809709403233510355365790824499841642925859477523904351187841694314194501085841945636731652571626289091709201250387021450263876982777823809225023572024897511552156594648526990928705606929831993303541941566945833823674516877409959034493739246192518661277067664171556923735594673379676303522627385588590254128090264965544519280349611287507961802566953409000464265209444689548814852512049105892153783752308636221955481588753453088019072357563953869854431429338407408189132078393415269086353241219087631263555477095522568090777270006624488417971848972537756550059884652405098465850417102208167831555992349869647968648121912058839826884897271949215867063083431329449394253247407396741475924949229996682409093266669562572550833137635320742827929166873890234307220088075756304915906032121831268825521441257228731293423018887372652575424625180987147458074459630485859360396288413895428023899623084809351560876485910229469809452915431948689297510310930877830659203558076847495563101936612245110664798417578196801813827529054035885886285719530829482689780587097796770149726871729561419295792598510232851348049284356815656897614166003700502556145461513343063867318952394946034998014283641550633292024249722843311528265680571180568994542192872918477919076261666054050145427995270132639079046335619568537162155980013005016192298357901149258733662836968096055150448778117124510465070581764566220521150429360890138137378220786786021612349291861667922145238672618146732103341048673142878949929814348900348086604295696997334567357955545173171906879583935244143286819148283818701241259126496352503315304019289960129537860729809193740069665419536962554473845624680051474871000367939307214325495728652277442940669324552444460996544683054706263977586003301055330824622500086636415386022290797905743947909552996084713242744920781550572355648024249965960619894129135869031251255932980499827197303194852332568160833188473949768630613515175953542802703176391229302708921668274066703874008672493487555202773344724267224539455429380488042862559529737467873855236064678926112523060029303143784969817918338996896911819017676175022394455601098811028493303602323322339784743327798585285961921301016688601243747348082432784035351696248924110555804065600017440427122490814909093782827674689510524060056779262297252445464760836660847252363802589242303249317498911743715672201376894897275008203611565046448651382516292399846771892340450368489369477686662677740282395376805000027471271340472317296860213050594861004454945800299522701812782063695236326349419759719085748472497003258361659153905640655494625805653647120175819501872200537254084631111269777679306606532070847560474725698060821375747334667827089831104859770940630868743176414967318370492796284304287174626359900995733398314892063999116587270246091816959458477079663190147907298942801063550207048153900469164376157873139186960224300352334646514481165918667533562628645645814939646458432444540414713911464181675409879700781280430023209564218283884272396668602590800502459961879291069969154243945024752024021755955591213463066862020845028165495842579968505520456102935476090533677527293493486546718253190468696209884786615002122228334782686208176065333537379273500093667977235326265126541770351342290852174913333447560442082998405588478735112031583072920410220040391272660741416293010381152224039083937434181701775573085761530072681322262252518792878260077206302777050927768337328963086632151730545600756511627847625330064862322024398533717098504035107306651951754087464311602983324048825351583566438818347061121625044338239891801809861612330029368805858788023106874805430607554723505754095875446467227326189269988733154592332579323359970393343728643597462470631500343016281533611881731369339210621388559606333653106381411832058636191746911162284089283293007675747112764413421834664647809075092305341267765131992634156218067065122192227994567481530288259003422402683438024432961800964651677386343506424808659969069323125917018955765479135666359904802283609813661215937946961670012069477260271792064006068415606405948317051910540936250561144626053265745565290666188809506486415200856665562541721987997872506020102976765940807789750961191300815419514008065331390497376225681279229556942619094615079104595936959514035888355011452710123484383452175224706068223567997950199671062724739362690935358174852369583393801726451324328641165717770666394989525558245208864576482630946555961308790006347863184964009805558557349861893905293741704490502032996090550702018653815691793362859149495784236957265013595429574593977122085769324055461371930182853949935804805513269716850540975761837016613693299376287724934642367864859161251826578702682535220243299279767521633730170091891078704453680059499192373490042574557360634654366861587243767956050572555028325115966938605603388820417768723729475934726221050365023238853850501748607140695069408528150616190570669777976750341035309576626729906667830686329943448935531626487696914738508945417650060830968842539493850678047295093124583084023405113888529075261537123571437157570345397267684387879661754244078509718411900450095789311299896595404489933577529425285914828779553644290916378135158512465018262311407301304723380394186433586969544959425074144685440270755135523685618854148507641146646552769157076197448777277932153619902773288615114091778762727648467477696030046649051121249588558744810968146338490377619644633498633316648455563294344494857543831951981764011874624631412907743261541901186959471816592388588136253070777029467970756676161867122864719905083235533087887721962618956345368061500754858124934911291140747785705828489293270158178384526794850027886194659771706791842796525121825224544282929776318138078916390413190532212862250432648362515430021992534118143825980721654349982331843113417666519541278690972926229637366615578815982243025801194735490855681256504919923301598327625214041996991932119943757798164338863204017788384000943591574591722007340427850512219122358470535108322252337999198359704355079094618390669647407591405423874043820998400906600533179996343160918344411211396034842952109708438461123232027816778067523462891825721980326923162336830142149213747944509677591083243069760520891082710203318137105373766788670464586015517783202087521407047406170899653624151431256469368942112163217276099816399233065755074214254669736506772261035576532818678123898183236595187057519162268356093798908627747811248109031555932238602909157309473363831808907560700874915554585881253906927036279150718438411219679232930046023473796291337633874201779423681896246617533412774655020756835715699806358981055911738336900630495032577035616718652813027308147555457041220113914800893391192134958280778726067095758187998209451166251002399341533936770850820622250843203066510845596208323741941300261881283292656364065290418428320558442860785565249270209956256835587127680883761282308921777188395107576670820030324189628518793975255112454097604703906572284325685132449766321093625726368768551509324827892898726961168196538915358550789689395848210906558386326635904718185743864733006562437171246929460319041763144663956387284276755992875474827824793309823019764372148170273056005803888881632799742112411734120228966323777054441111825264534320699667077773733988649330007044918384378986707454559189590538801153689835929202062349669436538631652119601006655254828825873437630929901617302243744167507530738999713056706914857820975283052927339363629125720032671152394663061154820599349438394946888742584478489324203718416282766915576772606031272742693394361401584936990109999654633900144873073073995741418590915472146714223572688581778994854706895051514155751764544993319166558628675852963174739010776213091257716248154282702346220153808320420924386407431252927323576979487745929763880986928565897188630122420430552240888148879948830462772809557099601413625090632570326450178144423135342200718737346859330185489631718974461473375825397572738028076849756347332274204492433927375484831847065759930909193605216248691022801496682559476871861836291678643916704969223582307015168248466158607914652268295967490477556216046457260187067982364572292329776599406596787922439607063798736538549977380602513340770126518649483818659487824899463582071073536458448215243725374776032805585503190477229575112222261124289038702767523199495670294001157598222513499890374484411722701790950148341097681936728832727100679525564893263857045965496302789735983711082051445943078680325946478428603413075124140818788815272154518889253523799469058588641479727298226437121464093425927168956238617290887856730435858698549725271041712791994036227370370968166800844855814405398557678955029380261434325058367429117732569917801301512536883032574772276544323798495197520938039491834040178503956532258715988896302937357947170270319145903913082066926507413890312570986565922151714257372347806819285557381218382218340278329642665457768536821139196984804040007447648270683456768994752979169512834206527575907845493192460646578512715630638944448371154550017812170210768036698999911500971999059155833866459019067715773635741503597249221976756416659220081456298384566352488694314253356508971417686250582009925288688838854007785480787808957804663074123079100129351190790899984033777093114084618045077140552697809871592202497217861204078234194534387400094574341611945046884293753710893292912693011414015149490830911743384519609992335518146741666852520431042127436700739285369094517983838887756499849500546428863917107420195475603122662529765725034755203323030725902934543589092130155561590146425609989118626584209410892838490139570618142189696508582632456448426100073983835103535272852945281232362298935958373129487679811206593602226556749407100739698693035517503204047512711251449365616726875028162337274766525826868307720541968943495344222537052601777288257506606106284047877220245890287961070076019090479153834975306242267565573682697485975960468850007134680743910472730283608731822008669262720221506099946734439777582694383070314634056341515448246109172515185039145424477817261748602405444721283675213319709622489561449747115479036414711154870757544381555949561775719011500332936846684328223723782537313976312165135681367976647354562379259031860945053721572919277271585083318958377968222716174758347952472728979692967529803767552104430743968712325726454619566304979621245183957601539166645206361881656087623756092296958266871592081100111984500966891680682753652944955165169890410988542442332067619295429641816584452747155930081242307291761043159037060652359827815531954112589797729991889391921664293796726444021134307622303198819235992839470860237694737777505338533352114710479483494569167972593074017513972053439389885283463830814989533420348171379347569584908247244697178422613680644084343497469518316084682976980240170439639068363363723230316124101951281528614510836476587212681485178912703629656748424759978856700404847301653285773461970626158953353095157500976108590294889488142787025948288896461840578550770918947364557556265055759687759195917405051407189495921384267764346901300427504407414718123379936945517985495798295343277088183427812315252095946426029771709622949579583786895338874422759613198939573655290695104312087259914749707840978754370958340530033339017391793235087875733694926966314768472917097689322202047094712745790880016051335511954191151316764100527539443771925633183537189052318733133027552850106021687560426356544572899075929242555856730348673338128111501547232098955565672355843694502177547249654717446348129038723366178983196689007374328504690785182424629749021980533049922941609224096197027717769409318434296156419141176838625450390744838988007687372354744789777175089926625442151130833932586444419480966564061162183024023776291692949179047362473264335152148516772453150472440466463425607913445826537240576999224971635922711423012569694030181739449298431171758937450309266407542793966175078746537381436385219820475246047045580620819871330732689388799179943098665102871539766942055754466905472423497448109052658294656985072888738706827406462885032558528333679528459110672205755063304214135716668958234781094628770337024645106236105874766011221627832857744126070497671341245034297448541251363480128872138767257499618494040863963169525119717024267755367436525485824524645603487543483243025566824517841960821520824626453140623624120004782963449262407169443738646085019037258045045847972844395345445862583749845854702644263562549908247122926495376365135273164452354747227184406055131380452140741305219815210093039185756136476820461227423476523741357844931066362360875779647817272572052816558278664800448716241045922472152592690838528486277585854119426296023697285973556459860808665509935952486317811186326240889826354012046916654526735552989975195375672705445227835681648935624951767788834086689898945933439562776294396172699490031416092295940119069249171184484352785664465308417021752448563102294575499340791454128792455579073763983473186723575752655031859062712957312517693364218335224144034401041318917448661066322543857328335408085491184708514756063515033660684536870750120278975860229897955082588907877507626877285759145161042261651471569749966576259711695144454597368523753753394407879996489701365615326760434841202399574523746653330527496837532340054042494503008864489860356178099493958555186978468367157142534324396567600129172886633251258742605616288568129395586767709265357131092293437123208166118119065783780020876712894969204600693140002759841980240854067437462354010539478195056688229993651810507385369933094599549092665129261219780471130692123847248920987585693495088233722418651280530068822519784796565247933652698389384221086316056660486904504599618994057728434150482828120305415260770554356398242433227902096450549379754148111840903634193518216831829844564701988821665552489721885970653240490474228854211656618533813085881754759965104290522399601805586368202511674054635551913879778922066820199272475540354624655237597140937014110244733402481404539876031498779428737151125169689386432731896998191252106800780839700144097335526882474413218137552781668074602661671033611227684933170550638141895749750595331138423540132720255664537618260300759642654761881083582413956309433555005078923767272732282285182413703535082095006696418357909344433411357934549812089317255660888777864776659196222201495651383032513272112647586079673203863088705736167399679391955575538378022225412802819198048444437919256443342579204894552429499052961879878032388448330909491223689652097984657313438014495610733808102048580139530512693947040000903208383951958389599710796058016613851045060781563998782053186126015342042282556258892240459299415926018539503784526294921395940858247067897428925566794950783909360423991333577083135495013984699388547288884041167911460563349572942694038885394939772699698165729799109291524549498226967980481983009584396153988604027983044511766692193883735400302698472033210732039236148175052891302121109386951696292016554180176769413959945989524275021867652291927353814825436821420604882354028033740772665966073669680628745545545855632666324506150970975724196742274630435275017094280976725799030069960066794034849595803664468467936663180242862191432882010803527839354431117932532441698944765489657779927714209151962347131948052875649077304817968898370261314040834864421235651263646633225436027558318849539896660234642444587866079318070552402834298891925041220718462100123059361605129197654090875417420077330383483525485492333894681952120712036195963631336116119975359104880099605973103908720863304831645360303732597911443696657436641508836375187050218877290098257270073279437050748710036203774225231126684732016990122280801806653437525940417364897093989163956320490513320741656239499775989952325279916281048720767339748852899361751397410036795192955731008865497657760215366460999393854979986360250121489361588705786840246049219538016297854011223079296485612017465882919912411759020043757141687192946227222034985151423894981378719121410487749483554528730511185824430396735554250095030250759949196193022167462769729814900831266982827001166157020945089626253233362508045923739615543286271896622493943633444938048066653920891204191037107298775851413735017823125606440869451381047381780016872615365028733388773477795526473031087867821064963700990571855226445904925575223764975841111707907496074543812311067180235024418981198160341594182086233338910237241787169106627604639053589708363986488603547475556082364434787061682678582836311429260068626603997343454857503199419776024225260610182956557738788801812300204963216569545283322452960358684736620360002495196801395803052402402445554670359895702164628844980894089634171540936530171951365748470434516642632634110992428645665051126102385683306142903021513987562564370995893447513971774040140220947261252885107191014105992057086429469299451141597452049466351937228633481886122362662571402398210503553849719968641923543913309976913845329788431699930568271391007960613040485185687141937286072136983613396788615522271028457315374602822035347033864524103882990677349744088222150789674428161339028027697375836800509679082260269499233900420040614701183884725536137488459061436367252815657353131356383774160145637097352260477618493891613721742271329216889268716011258514224469855367241709652346732356675817367657594426359801695674591492412422037619196222587769262064139814902051289055224411966158214846638641527646302657227647843801773192982384959838767374752539225261422873879548392652632557485567670779811581362428322130336816703026111092070181862305342087875522952765868337834516140436112826506987227784028235084063890871529121408709290328594337129356323629142298937874379266037236899460984461993524838162632962373326842045573204011627461447564868478362535682542624825114070287031502466524404146727066006532622358991033154208971523492683309942591198217397293277501847492609788117424414613874084220315579422121975029339691971292831782290103315455045280290578280946443327628554643897814881435645933800191192866362147823327022680310234164299709079154400249967431936274420385861112703140444142264534295402107380547455340566591873598109490631721293094925156445220700842753985780901964636543257704443537954239622846102599769822045170334897224712234843920493165506073403000933103752856641205768320172014919212988254061928838324115625058055013887117296884118332568073591245247313110757246226448063935247088308824696662664233886621766585624830657487021120854034864892758983918253191896203347708838405366360753607902602409972955573097778227118437968350887411621686360185352418878715752325586312099355538385636696654332064304828984193482752473840572326555450729097202216237429163502107713526624771719622412867212725086748871911486930485144810242565077373812427934738925519765600379908235307076077517826506398894124847433032466530642847510462383283211836485543766069650729739086437619583443578406681310768338245023891895282869765804571470742855189914228764516901520763698253100598408952738926894015413269104530819545119537316563771885686230124127108950454267427544778190408211347720399278310341920551393206672082447738618240378795069960888080725898733786897036402003311194466264256099529677593636899867681181248560438724195465999681139923180804251536069677037816885524090680803165008819335073254065558829647974848035161083779366446138542570081837229758912113361405729890306060911333170008873243800135867263708430265177633642776100831363998515754407180554516132927115311971336727855715483516482592723788862635316203108155115000789767954422989734165132345425699973909899296372210053964803871917121614164677919633737241072033641397361992926755364451419636942097922295738698046518630677731880491902807446973735589843589251921916228501454378143515565622389212254763959194435583193002874019125472346728839258647799425298088952027335235953657251728121485796761349826948004108123468938737582725756894004115664306936559564276726249772271983120890181944675601525855583949757092587814934653335341086920962098261381369416139950891468426187943524621844675371169543710376581918457998041604516382588342847709398394680408050651340642124690651624481511394150591091589497831631851002117721109751406646384321493651755513428697033036466458939078499107616103597361837382553423032010334087791280398917102061467742636657921549069012896770047827262763220524084025297605624992821290769631386052392902595089334659059670117967753217026321067673677705703029143850349874775693194448402903140609873005164097129061605201144171063440651190671565206819325586988798356030620927753319459663101654692370127376177803788861835627694766334441973989231567467687915345560751996525032150389792014944358525206733876642434433155154830032575234363149337933066067783983236963169431452558064260686620969490845793644329134791438278124781167646862809611598195850718351390598294457209182488325765894709478975819484897651118495221726557774003803268905462590265115210905995006153452324698208214862834365257342966009172739169425326713871230049927523554122917448973583305057960418157998476988281323384929959533845278456528397125103351881748178836050061622880408980599041912531486686440645602263382825470357579239801222410684958696730782533737273944301890592996271885566567504626823036164966190124131520373640048574396263656311856996665262424415076801800743926950508876960056543433248554385999915335059762342773105915283315527229687884911394519908160846057635797698738645018614312501750829257769907345013536843283852688465535709957444379916823866421040939935677868000888939351955335074134860663278667554978988384272121142139354256655862064300304954997215281302351017652796891185493875496731114846444434414153263859321906196741548039899689826135771074958560615769903525722543900519177020781329601519418400335941754277181363996338535030609550995842557475997835801432733143463860506051964248438036218222657315198657924184382162725276410616272745792347776271347645040938483778307880137899720707676998171177826621926566392916310460877590061084847769056295706945234074632684505384608072531006075288195040862477291180422434798670103093328481190239029574662317524727346868653558271133957972334476962050851722958460606789259842785587137490779945347958503482226022108332042336033270645852822308779690712933685669038460910833712307853915274069409255303443962194329652202026721599026486457439779231018890719338241345854226696978364253444633214911552778998837311397656928543530408807030145545157248804518479148067708353713483693601302842491592589283480933899699263767031458566698428115541321006259924931353712677655114209509160544245785978675697097782727294213270441518660213794565218479503424052443855976988272593392717518567710519226690196185588191413228701460408020717190616414365713877730307285406545933334132161902113344521494783157491300051454260982435538802594067164357425975743894426187488060441132176673770999789961867170940170611384995518246246410519489853360439626785822099151669746421951371269157948672853570645229512738941432416902803541819603951514549593930129184427328207989895145597124096328984542380485709164812869226288353460947435652562609648493650819774114419824558066500312995035353106251003771952926779095299584997388956403030558978753327867772349488743496775342865730963401456912034800043486343925726269765304978009999661360751075465605302360996781514509958730248758617032655772246383154935285111477108006085840084661210822385543323161445196811398280835562332459262732120689165873170049963401566539139075999820358498542921529822449881531193500367343615976282323560834397010806736909794052105425450392926610400024436186808479233625720618849840073642280585192291605350987437691665585917416884964928264224101932997198883035066243973627959361193220383663255591603125271722128654511771183690987120722304875121635545300822867407483835136522773093604748428064246784632741914209165475122686368945991499145797870869262708342896633862631204245902173556256416865831032314576448474656373506682661965084901498290874288785413153530311896708114611027942779588373693847849649835107958560886674132006497341922802280825988058240306722311977424025373555903006252038923238167803348160139567552881093270766836553953633751740402268203603004700361525553200044864799515062767528685576078585742696690977593642382629279655470974567830892941340953372496608948375595295261659724532231452792735981241505000499574096750348669220777317018792012546309463827215660266424823901699579783040626316036972388072916625003387204689737618524703116605727783372770531872827318984892409458714919790232028012786625080709755428104972473768462890359645713646376056744704780538543486262865239766063836404094312145258623048622174998237257340044286515245882155519977422675553969740146580122739137011550088649478755852505884081165770165697161538439072631277571659842489435131293840990518504251836730777984509545803851265942641988918394501795084216388372620012315931581404305341322837828042127617497060537535112114225671618640546182010625252013005792997827898828399488120164710861992419299681318590048075520557822049355748550203704880224156062953644845870534207009468128876568084693959265075970151794968356843811244093789313406888722658000101989862330024568499378727700300032949502174208956593951843031049490538173698920361086627284016852810361689858825595155372774475255547716824243966450763776130844517526224223577724941742742330253862666570643731265759266887793218366443178471311130277023120563309261122881017464880036180184854322950744733567243871040967100985840474098874317484834473652789683115181290304819546598148857080235482227933728303676692098113678272761439585525726089048249706336367857435779179662188610308768222363061020976876304666119684767928436897063738480944724130733457711502184726693148938823724737093459501137714721130592972915393057853524025443415167479724954391802374147506620862879418690615553947870330799320180233848630028896788706364530478403854101684488102083301204400880600600231651029758191108565032835648641967409088631988788549575188112928450305520540412077621372304793522817859670890016694292186782652191782419744517007923879884178752952087513657247329206195498450284242288412964447002355874550427265921453436182580838881565262365679448600039983503253756268191908737855635420995030328025035812351251131989440491393677672995418264441396809896996996179884574680141303621425706974349246250068833814225324588954939674106748407055743764416783814143399941211797512798686238878343829890831087739885726608791009865638046491033961351290255845753217777312202828208048381486467743260462474657189036519223411586341176126032127137304592624704451059190811906807549216301576471296773385724114184711852366950440710526807151460286575061016874030422568886114294484172960967793214231163521993056900294734504169053788096107185596908340954334763387178608570347127341229456413972119606523388123623235885209302768099675281519305024727394436168855145594084078576789713875137089639494050471687634225323945502436284141646720033262620334895868098699328439209476472898190614986232653839609963233908347407653269649301401438208235563275930459838283735782848233361646368871419478960934926976885016240439363920423261524458122244216740487479435669259012586242527436653484115247756491280201499331707065847416885358532974171164956502479103404134670795848195870303749378006547573378483277376876895756063086489395814123616265436798289559259578533009472824762847995571029631294195299397454774884927686559744585691365440862980772340170107179681211985434026144634041836296938852691820724488690206166700461485513651911907663160412116799454235618202944938825471472271589634190148174408973302080852283898865163991636112339087528369189518045380011756764510420762050499647917577105912751114519866368807857475503052239657598249161504331754873658841358702647227963131178277366567199331701301800227321502035575086936651440237213610197313813497248086351203956444707784081317608669950031533961048906635370728573563369268187317854603367925568022102264119953635519138664936677543634840277870545568692954802386234789823196050317688048663700054213032396017471764837535238321363317025870206041593087101860978718699094104552233527535590253654261162665480522567290074398679761964018901118415668918132273735777253731470197899973473648491701219761387672193850720866506814799628122005215687383140580634767156873438710353747908585173908862145385649649682981028904572817686598247362459886195667813031294773507641078685226074417897933648710543434868271953957400898983377006861734109304476949824702169277277081539603745948537454106203383556630798968547540966124311282933235898225365649248440062464521163109323630112644386765309563864400740979857020648744525589935600719234434639589641134665017803134219880169478591246782264871181004244135245878630753433044964466598945089140036239911992337628643412403441556261715893509764040912883970545539382008836290401740942512113226433882655889519583836643360800504265543625848569471410555298893679885161895153049163950588209362576281011531280402303093642302128621768673871171657246961023589267564376865433526474576119191227839068323771615279634643456848674144127558228772425099710801028266409167177883748312228547380202869716137828759564503289771157579025633680994554179139105466931949928280241579630545562640345733338271517332621838180445389082607033299674743853929186857228720677806505960032594328788660867627205594981461396266183419780396240696985341711156595484990342991026687376618242152431405002773365351812812171736641440924571414174309889002272066735094751600340325588991441519964897812304755526559775566143128260637129848907422328045985992895281058840911419932852540098305248438727698527093938554719225742869509521655575562329644121657900553045307252498789080138676138533967924944911212969143620479351480660897874334877688642665029110871507058985805745533703109067239905931355417581936791382618329412996933808855329479778044539689828793365458535204134988509462376721186584106029896808499043741376316091241896817087098122666141796233140695614482732759707660891467559235820050182621467470486757412742702051258967030323804928869569979729426940977514954376329813787703934735438439740083960660467798314085397580249714515875836697354443785435167901291184729749900393413908437480522387058326321135809937364180900269477845067399908098361640654609634963513464954697561241215312821922255815476220045556066905787227788160102936736557336710052348314704854654001361817817777952834069284532359198866681804102751340795835917182922990170816963625519955569361314051973490598421125915118962953983050231012285600411159836588570199589662180907290401329177682847483907204773721704598040772846251907608580320119362847727190271727764057018113804267158881202380884006288079116700833868209621248819124648153146785364153913422399433474635166969013202103380465441371002948717538339346308507940495361238093789149455396060095422670364133252865354126194788168467072051019893583650765742532307705724228829854967892212226918002247134398104534393965412397288359061258516185630356653915655099752584722885399990342667358947679161199890661758032730905606521226002881628221945521227242423632523101055411624565608359408021385049936942022169836379520785357259721572549306653007067961518321078117644513399211176559658760459520808982468359148192787084279754297026035663804390442739804233508273806432762283853359730230654921100775748405011919027865491202064855541606639996569950910731570843697222466366350822471775278550653074435021881363888159258657931186780857400164733207427511712675936582500439769969298454311844737150187010006025478782384690481959005292166428400025944971167361214999819353343357881180060923634116215486103338581428105217980439134720883719392369802518973748071175431757199164434835995499871874210712687095442936076370561081121288907729321160184324691405367029608734245776448048839876265759760222006883779161364016243465925667390508980846317304161902000476488844139755263538148785238201633173350541814723533111843978619415502421270030341497136317447557902044098185282660697292437196321535678131058649851664634094801378050486652667788321703010473642150756713082711332033332311423629602281407672547611301512727467023267371559883832852540015165876195037509123635788196683819475092373206978058780881831762961886774446800537944054516593147935620379624936549545235695567153934932247138695970588339982807859096468005973446106145049965681379003406755852655022770868297198865822903467670506336361403518816165490210263215149895947170380288537693068311650920225902520788278512054742032504049040943296147226993696811440000895201795891187557569826221896135640575678213240035999749816053455273047038289960605824213195992330268463916286269441478732532830041053514552519994560012678028417071170613224683206694057788473658500972430543033801859991914212832787087367356108119057235712237493570226356068775209030579436883331434925437234309391551313969248223362959695943631289535617933131031549535058665531936658009325853311163927448428346014409168460814203314836027180309173080113644920441544374243743482484301937357016472713272391361437317536550466290814934874179999892307632623436095654843349280931743208294998782876280990211173340078106948598422387483046115998113367817068329391461998254828710392162104287617551312411761867101752719812517724565548700033188661458833946824056543935888811101643680169302586174477298966823227878660625415538063757989570990003653198360125567856643810468179216584873136217720985481833159895274669806531312902527653006134795152631814745109862462712705259973002112976888248436815649687092157294545719095487381130817771637300506889065807864867303458861393480468566962642391499081338921297481899880326415284079811159290534256678944939021917938992834644414512090041842374020639412175238299329329713664000286338570638786993307737534785593677020351114054597790068503616844645767890187548503095044317676418523850629088801608036882582161147317881014111908790759341639145388525731435830313571909794342543492296274117763702743725926483027989982681348286413768897085047567326837962927360190085139609678034988725379881589818323407325230808140190907185593704468094423354810815809031246632790666390351817698466674568571167976199166068218340570325631506390744600985603906565061122626845026631436842559844018025582989151132494604605605827665734153519289812331630548458925931435042049950397524933093836382599821762057825854843161997151812139030692640577710712751746658400228962963675430644434641593023885077020284045419945901134077741365115918930220247992597363542404751985776169166160329152337749957692979943443018119220873414487163882705010099758811065534154821252953608244387930820927589739299061658807808142081087466647723731133791750176802187079621406385543408876314417042690905949193997495675381362916188666698864909506878357698919750320127091260614901919419684211653555043632137556890374416015545542688956611749259568496877055603765567425185541285009749535678776640803529272399949774303206223951010535805421911354347674559802426570817462320853419236327391638892512544956755450249017206155475134413111880906020503438829944800662264086690337518099316073321241661271985291992138858195968071311724501848978688859262899301607626084378201044581818983741689219123902037011322533032155976303304328356481914423069593921843476391137574203515652323598820730435339000196970787199367218359468627993168048048728741449183798541281244024346713124151113785001120886823075240464888524870978927066054647528676544118773587775250511952532141603879309200196806656953339533234468149523535824774403559781734651275759236930913233960749265790019507835134670331547641050960067469220058765000253535264906848917833683066182761762824617497363589829321517866219575363312662566382113855780429422674431842247560201059056615252928707433255306029310476029638256157903329552811822991972012531279418608422262321457807578218268827212900322925144287770342082603278749570482877280471746472945895702840073853445537081619451711639649833054150618980147448492573166716446795830113345844905580745864289445474380017504623242624875703075149302038434948504650455462519615471104767386227639961507993682358563528747461329469108744845274077864160000421008054324547591759583166422698277322871037760282627927031701532440067954106985905534574108409858062541492626901682657057455674261907935554193358106481328415280466031252389931297371616092430783220512087839802563960034532657124154331186569215952220777557755420191585010210275680586464775665619298420777733864178334778830771585490389426870524052240553443267287827615457041127600768443843584869927765085281194041737868825844399748971125527593414484112040907685626214160965733806215779875181991071988188316084446909620606241874794606331975763146783369960260424316537623142308140465077166229991179781460574967795487246919904469828776935714730676397387201088566896021993589570416798097167111161062395043324524015321117314699108808354339100796462955034554325759839003667823075587908864740024063950844340524848007059544439564693575591833192745847572593484748583624032008186842338564952152462268911299096762919986360053384062181253814005990427387871095822827543322085498701191931772009293882717178757493721757920321249084673027579097364929627657652328445825760315848564031318693147153467448941987874341505769747757346949282911984254302303399942923030460510109770637738471696902734768254455767578888706270998345384481919474760550368258727236494891959208231453443008916628870682704058801997248339774852173561266528324833518905482075492477342404473278442457104134141499036840546934067667211287358537925619014667447496911518414163766968508450792751772952226157860484103665838161088949930791663907033517258877317289763401211294223283246065524212302878830175054077098419615438968910860922781838468620691860386080794520681273894866865625500777819092750892588510544071717459442386478755950135089035663965223624185978203576246706868779034020602353708609021041871156492973458506601557010437016544434626978015129196721921553236218336582470407344952455884886596283463528530155670673316742592006102728400056936384636277426125112935638896303849375626036346621051039059043198521698565862386744019602430141790201414144352226617068119112357426067163489189292035433315340780902967330581337771480103956133467181698644501770629535945564534465955172305734064091957061598978865533971066077327028938479320626379949982596620579778814015391072227200926478875759490320634353351411919481110266163380876112155842130551144664724424319366343991923501220815903665317503694061966914958695200703535197138918212727849334509559676780710186920729448473286545623314806693709326370859661209340240618695522685037823896688116584220422441911042929408633369440716434183068083555075494475740694816865834218131653068069433187000308000605121056134075667494284457635627689138226552420831131513285722783026154853759768765357898378697492622275784298507063380904629110636221819570890830263152265038474163614217110188360754063270154332237957061789463056036560384468801036811190279515445012241495458654561136015271730227994425907109521601719875796511552747222393629022588101009708846708937776197661161540967886519320842350297034164569601045745041674165868407759325458845894564789387858374700563605732333657154106884951007478963434403347989190276018514415602159310659450115028937486241772979999931591966719617326696783278762194686495350263722713981585702869091424664188938670204700485250363723394140612260823165258528212435630723053419144873111613335947629048440667038268353338330374043623041687085684192148686912692902034426632790291002947827122409317169235739918608673105962753816936189201827363549099125052050463348861711043796594933732084326154889684443457232614162719959182955562826522606029152764658347546907309089528466641614582684479155192677142485495730883864173116532538265456591571944686399911055328691777452150086871580384949696007475118764395135964128306898732049156394223773650801594837128906533995969038209515712368063233618486689682847626299048476655636515375760362058522647685379083959560891143509779449186228418932010769648873477813178038551783551410388168403276774389544657280677173867743550667550731533053296401846268793067366991284413689499707907561036187209731078658811861158399392285930259529689081560905455462225761620444586067687684216790903276168660960192965853694360963759779601529932469015041219925927776724161963133325633439409257212921542829473120138342806440302052919147214554674692451952003276464819525854758200912406852512945218407902321443956055826902158366425353618455563827860530419862873754869520531763464378115623978757904169965637757572100595946135938535899077597672245606300108924808936272832193613293485775164576623299521464007815630865265210186549247485533737473017109717601869196117871067199294196645773737078941876207952597531846378821705550446526454874933448622883429635372555114453272053408455772954563716819054185189382692811784373201353527519992043020781442241969157186825238431919242758186566404989683985333857052282491932184334802223870434440893191087591431826726520414141530583239455774146953523435809791618676230720679647054863986324522232638641261100930796784350208105584296684383552219108241935528352681087134880899653350321076079962237498568466402248643082902001325707082572607253965347996260260518083985796494988923958756922185769284384107301474935621157022880336537389267796405053711459192764486313747730540125577128616133697443603927965239891867633259390807608055263152173433242100570389528996626739199290242771414370810250715214423951550691169214974479008929984163976571982642396917686303189979261562772088578621765511580667146287698329932521811792764138411449598237283564787603091145384753643583166307479674443193930650395619364364322815840585872925630729005738543067887537604876428411971112542454564065119188143843602701519007873027491862093559873011629461902439154621608992345485379468811811105800820160516082296932453535299584687917388233229252537424972449556520926935694537694804284765069382597523258833956063179609150023505455935586353954135197391189484656302159037475799453568435820173697509997111782259847665109903661938400991268945353533576009981912064123124920714979021352871792826916625449575635352478372056871631988564362284106601379652984861615610502672109643166875853052572250261409671812017486542114800894391322969107375328008550526740553937787383394129051701547027019871432238905699390394247895792404512998517503102447417168947388093420564261974422877038011292017687044282221050387366678453326624412218118816372652778224781603001360073990873952933101510617666348738066569345601644690822383121734110962939463987353653881341972983934997932105527930979044834362988566539634472787982349613860122244724056604281215128336165027677305877200139255352757956792938319454753241900241798077966780762182504688280584901594236138573869604321155391890763180403415531780777419431958820296878450551000981230552656147754757086614401318937710035411662738519681995185394834846752705858477339651214557429886538569481140104780416138119954525407096254695098374249487131374460706245685133854297288467211280842229442708525760360324861753558637403757976960916468108232572427054356379767316904237292993676544657527943695259555291990294724502736357735781192876307784800802009112484607600230592580242219959619605069286133191893985675970730853955075046023103727138160889770529898755900601211253293299707241133205330717849159516631119138417643274572599126396373709077798299120980102232851975750285980891400073757891137428905806974094666240588089917462081112775530493443412393665402242082273982273444124216392841775662754732059365138292829727664872897521015196015021276334337660116722781470486775985748241649163627119396504052298640362441135990119026227221245870131222565039031155319948745551864518705193287021146759102098812683654603087568733975301984110336264154620677558868721253683263395874942545093313411039722701850491499389040475520508351066597002392929006658222687049252270363044587003573512014158104554775037527114011993503508736277648394014237517932475455606620342663337015965117157189312921358124950338082818804774003702726212743671691458818283619387042314238277996417620083159399044967847852754592379229365111456853343362754158442459693310750394416776590141285447799111463154416171332263911435856156136952299797950425040784349628644040142831594462857315497375803873868251811762410386346568663294621172545240850934390006132279974995592652675089832906584844984803813754610122695315921514889425007441664217781700120591800475174749957899706053900209940333448225327118199271426326033370443413347111611492559299879924123013910895138036141497688975957047054786034130504663334982183506652173216204124024114343646948182130384255576221921590738329943341027843181583244469027291276982905740501481241722947313936634990103763109254809690412040711355226425282192476238901707231550676999847632191439986444129949441098379834736749521795421276631411939934924888019699587147930737554092816444817845144843956696268350436891806686298102171459894294517362461155031114470423085218900449290625222350350121282256612802100215587775202923929916647667369303438263098690412162810537715707152991283351844809901231087735662327714074747849707872209766489249099138497948487411351075339026428628921493163211992260592671918034907813367286780952839353174577008489192636340849730507577205801217726326046011418766342782763581793283445275969961358049072292760248866453844663191944086869078420530119229419662006475227401402810606186147136920305367336819474701229771960539001890306258684524225383750147159675249756059399531512234989637498939500432589502393023395046275171948704527640238340648742407138143711381066450111129702082095319977906190209573091781824541772081224466667995754998589811405931799946248283539072397956393639796632442053327745325273961592956533965152739613108568687112093865852995581007045977335844835090315666145147213889529469572887869462714995750297530242176262040398712761897163203705211358582296511261880782145107017293702667894306831483343469377176336119882205602547465288205697687671021365100452119549429239930188705382757219066452188458240746326068290621185560255477621736166525493612100205554228841782272921116119111772883224406396647855838897499239478015864518282570858026374755252553583758173881554262124803338476959558821904857845064615602054796869495034709381222531616312956618449254757353289644375781931574216433388320219014614354904485401112113332063323127963511810505280232440703196759931864156112895671677254245164568537782785366132150748986536862632548547420489800564031411061790668634293587728750666122484357311445888268176823448471506371181944812033399121195817903689440896514156653134693024862202716958585704314175318919617940013243152410903700421682918411257452652614083797200820137663529486101664096389559678308200247387204344891421673300673676994539912933919724986458214981736849076607530780482137381871153376065207661605854719908777544382886595800864772423216014880392094218147613597290098545844504022677495509592584539503690317677718487800429910049032283483615590618159088982867998862169041555339126651228983907581654307213619758381777684746470750397496104740105774757282595452060506069053439811384879474588985665403650279644696327116510469214149688062292693703421610136482499379351152402900200811384468640227755577408462211609603497303341874169778732693673403697028474258033832201486470257702338664297824680356952966141504888516968308512031751414946823323701996112211680545050236893068753132387382715965397712399137191464212828884498585960553934121423475838282594290329984998775197169094150932286502955123656078227230093330670530272993595693728905025510623188130326126706778167169492221639422412198174746580784652873272083528311179787281399329669298831866022412768528648626389831302920264023153698742071701151842338702268673363747952234358899239188806727397356811022340020474773758870268549741605349412627760787376881831511857132400049715201686555548793220222394986454451646474804729122339739178928713252052000953839653123918138369667798527174464001405624211993090029897751574139326988355150682461778139062629276919145228886049355166491979674677774050847584488285700289444453453810688764084798256162596061386005573619570956955074279514027583655712412854548472684746656727171607689608737205862944270616782638579881391245785082841926052884761859011727324317536380291572609897214256509027544702635147930681755186143590389876539706567580510591302919891534272522736287471095044172870974925908595312191044731742439819103385249980067850893171095686550030545585277125181202391813048668435937078863649796709709104697271801295916983299434528774992093207525769477699988642310337032246926965096368955265546960187219271264797708635301479547466559510064144403810461284416313817079853061352033575608810067039720616126733732337802451506748679814831691483272553629046770209638194180782174186403059980724010940716993950561666183380362724849638970681894971801558609292757125228415694152314099950835325534230780889880050227030448687816326458358372473703096923143370343476717873588341567750961443607230599844213685825998100185569342237081350642925522187454385303912150150525245628514850941789076989977574190269724205613270071137905690925477420222022242329761477724536316207128235315124260101160858648708992330561401006027402492085957412313260628441264044816985971362637820904123531657501496647308369784025971109367101690548123473122420557880183893546726761384191355659513592441188480888378018046215330889281338607288389260240893620624458258959368164408502834056080496330363521425333431420028433120264086938731886407047738747113577532880378809457768143206209510383674945973486368154627457001405302807193708817656249740341761398238816538837249109094848420779729824035793268087384787807504006763980616191175921758597623047454000132904584124126004249922950688610274789694606263957778811671798177603959068857364200560751635961595967615728548692803806131592600844126397672922069618178182716938178827228341507730955121097157585211906956652619561014066316856499962411336635126616966332554256640149272963785981987592136496074537123274261312000399595849623645657652998954525135884886580556573327764015761418026688254319765902236223185392694037647447484605717390596961036230523372026341701976498507544500317071506572450461614649447193811649195243814292794370074662641998423772484662688033949027916572266847155808954948079464471842930438304117185342822342292431114819322879335225165200630466051917746549908768148379452768539437616945903164056073273924150073242740751821749174142759700844221595574947352048576484266195762515322748584413277114280043401198546369142436670420106634080776166102370465368995058916825569228604328940175339021232604551993850605539530361988358436491114594117446622713469073458163392890619648655338357517934573642988012197731973670328899001578649754236703761822474738098653039644145343952890119214615946908183286759116560227809464880248930750387955390370372250355133796610222608368889900556348658789403555519816785990382109820194558384770019864049800382505136519139522211584587626998421473883863704006193978905263104142801026913932276477248688265051724166452059704899451535642784222354015368145552361975205043754913359739521919761428123111638029782162443691701886348153599568273909710751905382558862968582270024226126237183570330878456218916924138509161569752543872032093150433626308506582990232604871502663069330919524250057139197372322952748999276774092044592430446731674945853194191486887491905178070049227292092921316381815736277572372723809045956563286915222700407947302895158846247267194059488498329736543673327557953699092032017027899966759742091188778326212525695906631630646004058067363470236303109286533622531061171230741898307114644504320483729964865140739228814050836077790792264647956040850664286396690204668458031857635138437604866254403656759588667258796189268984379588680698715577968181987317228150605698227778331388807386873298515859263186016936308051137431720190427139545456563457742535029320244500795293641039914437549555899271367294882229923623572266969662461676516634456215941983754788457215094834190185630588914556167691316425219614973303734022175868078921760800332206353634463807388047636455024049319606935893433983704063596148021066976370844369287589313411910967018192366637060246112312379344509646941327736965135778189882565831046007040940677928484475709943193658148544939054535528081374373451968854845066612289041196117306060035971511671674440041737169946953038351357292967666181935504431409660660595059925255055304828984579647938708273922307459210572247765648410199383474132689933364040611192061106730605714514433344731615846885581314796945594821764936710506809508927810104627098653849454540512742637077472199281447549863879656206229371775362397901738199572214162638594846490753595536208073689803529258881039065831487890155801645255649241002303221991091494343560083077905903650346878522098974877791993849437519309370199585956476395180750228332509922433794752406685916431497997097893346081225425207402429546283734163918322784114617396685312802379834198764781620311098390835554124963498089752074426754916505879107786325835335895125416968089232645009284558846626684478201679854546560392294351398063644957565884286207838252561267145095839380690158414862161883853515003145654342381756894702092900450460769080177512143894067390605703690980780227583595825791906551876776144422537827978923941350949339442223116251092030919475515783557720228704153868150354272746560645364352233708043885478319042029902737289480663323997020103653199012992726417468986035929631769011978676393052900813149128992420656497380894286499790064157726528315295854130250649518065038940425440536808996426988710292425181170523401607219352342299999577377039893837736764919086943185137231356408537388356033789237927040832160540055776462680753790411272121372973414555144111285694794090393914500920317382956234963618273215179536808840059939096726087447957271069793731053379681954386160371487353938782813931748773148325893601524682366575309727274810687048060263668673331490583055481784548317897748368010285006926268583251670296565204547159835823530234985066579613227924720105601511699233802621152267198015025331348854711867641707526335300655959400241048547736874363601168084481006707098108417444401023354133125722715399267759000104498266341565449077487964004439060328640935720941950849467756640559766351092143325928985115312041139174990339414996404059816457386722548206687718099942294748828768762462540556048316891559073248907388476796277137772793754493579652553798433980085468090120563809950881554723895380995055076870813936320548647905423427305146082267109393505484254428672112847297986936028382452078387529057389430108591127992057863141145991177081287777244146959859382164696634888686705040856395879258377727937845976375745522727847586522161707812043173377468059862229031914763904566364558684499821930237866279450356158055931964203993347047849317459395207672741922716648636849979651018745149421000691602678146714886117949918982804984195340461684194124359390507233308487946758835540004341637339281666386416823148062250899471056979494956442298004974047392490355171384096263907185561573148806496772609745451371418768631483390030457167942613799603627537106737994856965258411487385431093283755516574499261357410810185562035085666028801896054306702096989752813232413259959981411028563107808872037680668292548041950404450667170565759172829028585279973460037753418236255075492683259704258391909795722294069156469664665561775644512448887639756464391329814085323376640256066669257646896029105638362756389085942913541209636620123705068582362460230077670170885667106190321590058090824089263582648213188634405801696443081901338320481394132369770397650882713378606729613018550169366321665461368475584768351254988895783850890842923467139178210065395156682213298907343576293539258752429951541585092232323124982336677998122922781512332467545778989160682921711176741883935377058061493090392725375303486010312641566611895081717621216277853723599108775809637681811773023308009903126257102686112024768376832086650829852016806580773947111093628122565096306387953322895897116136296264601952799330564827345650654673819152165933133212717877467488483044875118823820472674904333530125337644337196430615215065212365357309062640558033549875420567532874264207676273383030278622310717010664063608415614261303836918245361508622939669305388801590308881221066748402001533892158354542783998200028168030456344342476539747819377071302400441503297958254414118844323639425171366688047025299287232156916430922816049359708888875673962150000149768576441051590021395543065735931601597620468061777759262590482526146379450385075980262093081456794287282748600654972282783129190743598826890782224156109381119417353708707237197072746178389441520621163456004811418175693472771304514954969241270681953173742638254674520983614295068958423935711577018871587830920185971433638516735988034857406319354459118066936693089459761750017868552671767906959589708138895378762523978287661163806861707868876414634391786294665845908735118366520171988985797724507034535148516974579677674490335185684751053860801543097431803824852457082469578828671158142329912182314071327661658599647129108803075263453138531657883504241793856945380247040425843447890226140173702966181734302327426565215784976358623999275101399683078536450120281507904764487354777474645127481716533320960618436667176125712147597429956848691669899649401433432006832918466971762296888913427975607320304215110739786077566463763903746704287372322130642436075838538981884380871034608281879362682190937997389347970182452872902597700641353573555335752177683337858273438743191767248774413606785276198925108078877192903946944164473830858971234481043508308895675685613502346051366606340637787259715836412250087626035699923983937368020873285340646346067062566694358656836137219527661228252534951795090554470610955060867610508070386851258123227801553149247687004545300620715500073327223719483580033736777910051994670356252991925735181022010116599071206736992680170347260062286412944583871577671711148517453166745748010380181397438539141028649604738884615395780238423401533214750968335504208027966592115213449356701869755390684374257979734789736997546670463478524300518768427330729834867191798475854719962651922555441409379302162153272189647382051844362180414493955355041020041091131433376492453461563959538157357375896150567354326665917501416930307392128854213316514734390589642830526870937764024844523735326856051388428299927652967051029429937506814188282512595342938299314947094629594602285938767961677533235025795558616112067948634977799361151282776307194705513846018436199119804786792607396933357375526176960030413211287031848258497507973020294833799428170856298355323584062504739519122989039778203511447145233762417195955823218185063092445458098281529215758003116848565705253330786834593521855259870429126493334064671079489565186610327722745219110257139829944348016860215575677935615925199599082388695811228518307817266505777456015922585734957624291516827803396408730990073473987461629428053295256992013417177795926636724061465010908546183624404314458415857932551216621466556168526884044796739506312772939650388832619208445075038151888991687251575947222243235682491001696478136044057430096192230591559276243951960956296466186931180566077904597534412670891590460147537562036731240822229955792173981337656112098309090604110452531189750715158922154055230370759699628595845929533629020648532127638942001245760174478990545267258766888713451628416859559082699885923900296851998868055226577566874794218130912023190750639159290111465943426921393749340872748546029332765107082892684262564160255329329764693431465873704945980372483923906959759216769493100168721386691082429961746026728390888500012760562132531087214768734772827820643080875883994401941280555532107961104900829719064507930507776410432201203898076868154009592960351686837167434253331001994198796825989186666270243268645261115640482176848045885235422960187901442456106169780885376762356862872938283062536926770507709047469820397199784813189717956594235096389665962244478673332323772763579651210482937546326249511271490474094523711639121238311189776773878212432173748171981084268270618849731059305684927807297316462615710871505390157951004048605547516876864226626749525154541588134145894108671670075824440682352697528691776104347274628895472962972354607044549405952301274804519069607765045950196025907252406156521645142092617707638514575509368723945208384127398236562031511983948086519283433136514955768059747424100745478328597029163172865570575500044000204743823330155503228530838333053019231987081496386491190805274850355740518751835000545548067136051624974852495129401309773515069889509262398555583259673546865114766737185192900775748552165270729837147226182869618371464850740744592369078221688607198734588680411760869702041013992830929300225036367191275989803659978616338510147043681201343059002661985166576658288069931464097186993391471658336380332984887782356858415405028930019970666427666622203469286007587243225333956460061027978339697231830647261992708357225967545594524028558172040349343759693806432606965826613503464596176488380496004549480168066406811512202163145921087675934064363648304619952984878252494742446459645217201881306693460915702741221883117103998171937415108092565334793181408941578749150636598560573767956471615933938435125535074588292921927390608169029139293370869757534588209477628853755161701400181530868261210435646099049713847590508513405814584838016409385376769467095875368702442396907118623202143866836968692741218987720684714394669486074051721791694044452263795824580033600924564822888695222233024763856505436766750629462635636709989747987562173847521065651277131116346336287749998655431971784870083739011431689072736957639399355236898659981837639104880711740950143420500562705921345019509152051056875507526573379245191325360897949802313223530197097647816386998409285849662562015925518061494450792617282324048677227613300759523639867491002260837700350873083801730177615505365610117087432300925112790383564634172822490339026898307729806579426603158469025888843634095153076291412613451053537187235632575002420004415845488069329811361255426376362848651043508105941259718731054168247269261427432636377053948563232965828829247342385510958768877681067583264489474841160297410727754335789968777551794054685304448399748761225556065424115114306799289035594844365504292340730271063237437900315360638727979446462947292271271459515258124000887986812593297419630701691970788503171000992420460291001969827101327213988307262464183380938147414207039781922260791878833571309944614134624598926421238705859869958794452748333570888703376692023019470739190281760622586934205840590361976173579966995468071850962029405546810863864938146221135601641276177143133811423984358228620263380670982797417596711078295343408761452566639364927228725269230253050769236169842468888054773090211833839017227060144105334852524074406989340754666500704386437483946032365607466461030090239903122245658326817539466190669594347725132060546202361083326025224346822843023023041960796484055734818468550962201726544633225000193311268472720916151773959374608946090306036095926253125941392286206834809311547123321975188670422493577602591525461986568687749106683568917513774839032566369402135824818012594650319181931013691630896848130510561567654824455653282567627657165127575264256615227780229477703332527992217860617504997897319284227892561303289277547480687228842108784347531907250873033859699035947047528576257900835008648745399346492219481531957158875814303216163631412798374499376248962172570593408370667348718158341501022169136947285891250778579923934490131605338501310447934784213643955921363154309591634992080617787192022602213618778167993178468572998789540141421651637069132292171956688342092239296693102483073785880824558590017476072275744648512504980971814248628894474696366958347943692690266795415729550960321272905893202056181784969063625796568525759781103833398099028301507080787095906621767054271413261490618048295655923792076163886967131349662303716387302249174193864330082367605746092059545806703644687278052623315780934459381205949428770459825050664482305943105713604877996797860751134991254317963738045863453495711763668121882663095735172390719832120473315609057028971719815229069025116210380679766726411756808972407482260115644894585911948817059273493817901290482774796343823923417756547799806829702746494479370869051773759683567760237402857182237126492664133045883770102596305380100953299558240182292909346192626065380329976296402407103363706706655747978279333217388154588852397674253879893838515705345936383244840125676921802126151543249497427552189016037426093641008750331305840158086779706208553156066457055944717058733181442548845940434516859388282050975293133841228133885275707814167261772500021099628824709639496677658236996987958034490279718812550085378582326029084999406727933986519575095940823937051892237102041025931664671021851516698124319691524659085715494506114664155584159649138259483226704170990443710654653623962215034181967400478618773001499954939428046037523271255919411309145308875133756865760796807729145180721035504659830426339617344173979642694428580462968663619382216541948402186628147598602631475357241410098227983601017823382977740062516547175487167364303130437360814989634684987029530400522715112343793695488935155906033917566496678377086796034201559174058031690358159159526245495856930506044177253003535260117571353882809181226644358831462690646971172737927996740684287331424741655177396728588347310463796943474376933097655144743486183995582368095525031017101527395492646622309104178813356788955786635019618400901260500575893820132516581988950290774546757222286611738917997758351479221124741495991032861379282152568537426204399160762706183501397671715923786127414324888007440736813897215403713809232547769815337568098353206141502024926811684356491740009224989887276932998064358638461759167303176754499135336395653179175075351256612574957749736351920800905151572070350092504256093392660119462581412408200061910953919352998953579878979750989687206153038008118334179588936820313554565219869908848341368253079984294293194692077899625973790056804617121626575264204592063822317940139571228066437271950422177509066876056565645412533886073619351213545122645708759655121917251088677485037218450524558175922812748183479335746048659593983338854228659185547453580090067452372384575692806352705968161515620895415312325650746107102569932909477827003324185608183926768199010577679260831566212766792651388057690215898379035497760925985064694365461325588940324101884313881920697618716172101870291503524401537362435239256337549324104111761066837926899417148787025295827885257007079377161405976357907790657743960620360030387490053968282089864933399445632752059336099412430581103715252170059457295075302819693009064719807312192036221195253866693824421246396782708171102047629266449205932842458014324871497022450951268354380794337811405674199095845529488596621975671421358515071503422303293827801496209214270195640627147572550470409279235806935730137327402830008765908722929943720983345276510393039969586260318021022027909520551811592207656851046385802619193860980764217016606919968406841536389996702374853798942126213468073952644324715324142720685898074566185352688182336413057569429902072713605330252042687124920615317167020600521004779606283923783665749577581953590348017317382161328661874018946564115869116159237263112329572769026467371492715164479469978701803503846699262499035731083605806414368835082724692177334734147303347397294018541225677180245559737073982040557402417339679936974368247631036336505407573684482155763725060567231500212580315119960646533042696318639536622770801365263143723194819164740313788166775845316320523637969172234424552748351434142717736736799641713792757678618299001547078156263292108084640054691725219280974042359429609896261191247076512132562391384893731013232765386053235345540194271274044576728258731478895258191240991700549080664433583849960762662213340895621637150836254336661502264594619897145177172781353992753839117498597362234518962109456811450050198015036626170971902094710806777219017659182547109686072241731816274851358022764755616199288624570517508517187359111674596617475135772653169131216910681052849106776110172466772536178684332111753502213015120059021394939799319038447845117701746010255543875893632194678209903781475883222499738858509260520896615735348282998541400357612122463686080438299214776502151076623162009049784435162131397715341057642050730810689261156703126004575150900293841013087317466078557069943141456558314686508468031065283320337076819442624399148188800032565635908395853000908447642241959294202333386928527916750671962498162605006824262832185511447959647246257081778309528249296011612390607421722023001881519327337037029650733839105451196237389339706325720633441027774098822163310722864409733827778085966362495196156408485304969565367853901677651805206147912333993141513969339162806495511410105857214980374362630334979162675997695721841946929177727254829612858367881461209279835947546130223293972746175483271102807693924260404372825972957791547397092930090703543740615200167309371151205377252797541951493137453361831001149780939166665424320484196494800574224066258975948441527887978575641945562097286815382690788230740151558367759846491506963595025045417818266979698916680667991490532288885011116018080042561331885272387304700625818056101076848402743836125624130439994090300408854433881979112267550167932162700604801601083327571718697652680408446998338797545805596890638319912017733350543763740335296773884000862128748299226718800166326852848776311954617191332888390720961240904231038063610035699407025700903968670874025710254447342843335511497894575649861826970908268009824258675998652601684384435386022530698689606311408259288937825889017106206884338677041734076716282186917702181869293801955940111214182562099258112161357615610007701960258789272611841526006028496315730569031627767367858591801296476538974872181098629254558339148049691404648124670229961877271766614305099678026713712329755785888765138160600958540614351389249129617334885401908656402872759509293182396245671055752045856825638885175281428387953953134785033088183595529965716672032345102710816266806941179638813858862147327940465272256748152267260512025546190632226501786734971989524770999266172848855114283577448545796825388179379510783905104417003419807155074948371793626174878624766504779413229636059635073892323282450294707600881349847775557940772930702558126414122236633134578080590593723342757615656422190214798414577967759319302301855433946758854466556278469213149222695656123060204867979024956587318339006890790828479358614647319815593263063098997638623674938642886715391550237723115407041941380005919519390350311648894437222768093738020532247171836706032964112692676935105294727937029555497894848243086441220941942099244319850157603944289859170646310847487653102034876107068952792246442824727352303678277915494622643805990567256950167686063814195782103237419331679181404966414881652030812955427898082715027222474185870629799866943794121671539760263899612129268593958773661514539724753902806410144143483402267751507198502820812748613133287626891515746521520522081102726818630199344735707729275912320338707507744436866318493014071654325477488300526244851917718711581930228892089925147816970497075321891886953535017758815802533029151592174742142079699257786378290760417420056738733784606380937112408220519297130893122750727580147622133493896569693888006436804801961310264249560416320006806656344899227785097244425353964133240370682395130930508837784304185302187878458748825020846162633210356184821507354582792903935773907435011843096007693986068464456793834594736774590413469726541418101199560870116068978980836534680911926764882244416635059084998717887627100751894766097851643376518881331068423551967262493224594215737530382304598938688695381433351866897953218177749729073739891999901115972916829534234593769839544834665170271938171191810468214420055488681479481999941519996433478177669953362759651089497103060664675996647918607218942191318084648793527386037683072563687767910948316965070787171844551636655610513238058911941874737797696524588835719777990451177480055363118295823630223974992080369911542352570295063909432827868429400886127155735767391488623570570190678619466750769182790383413465459013024687750494806637703919565275519306882719343607616495817720188148550887569382661709472574726381307347634608635386488377353522068011862920869828514618749775340970141680614353037927907005184579526846479887536221229002584436517848086563615868414346463574269076311285834008153982526178940357378583573253292223031895434742950323798061533948391339350088033264698518325258485552358755932689273489597726698046026398642843997775847865625470478019897828274611592621504978578387005538719881870811214285709444111386647560974920556140076180618606454349885537184791694211362366433705924011921879291082283915591507185616683449327772839513070410097271020017393413276738788855879169904885939718116508762031146607836188328559198489129806534816603698526228992691810540548637148983844931221627957193323522279133403157622742856870406684520607480621851004636750641306548918906889222699589868798871147119482147146214390843441648225486248214763077904269408465952826729446612074489643768713295238692797471373544314715017176617545398120957006104867455859068643527083747162914313977563445643315404654863832285887367312852471444201740151559808384177891123261602544917050317091248707048448442846367427917889286648504866444519054823630880666322223233837765078209061407316128667677807279267003891705836429733019245186055004060143152324374786219712103403753676449845313734508468601157901667985841393592749715785483428180206307136204031699825492415776511593281027865667907243315264598265920722868593072998417955708035977073971386372810446241355685600224676427948710388700168062509841423044370447747094383768646496211908311043673385453624198874721944102747655446928812941301951841204979585577459689344527696078573044014796204590856651130824551580107357395362319677242390835639496754078819596250084199052454944620214477610847902419395701554817047575399750047329953969101784125098883885441238896110218310164520998360030747832765509282516911045549757912207141245579787234831954452460170805901146800944850664154148305959102289758741868386976209622237377413455226675571985940774657995623093755652687201550390473267671326491103449270999432786273906671765708729756753523575898092996110694493022913111682657398291363983466768451360012257070212985881036732801313241235017278490541185731226142874868676560476052295810518785647321793391248206350157156821561634256289154990975104941931037152411428514304383857946002368855241789731418294435977991462718597695760670031808995118860673898257718789746483416950083737462018687488412254233999068966031039708154869068948430827351122654580447073609294712592613939706174020467684740248931174022114675204951315133251789700168989884134678509813144265233065716127798165628981386303349381484577696134227265037121501631713223777475243815141322161352324073022426246117973813534435591960611571898459030437569253317338875264000757543540189815223308743862880550282665408825888149200973144876648241886652020179673251945726183035159459255844404245285436048068905478644205926373969074017761189886040318356314847251050971168727028349681069508325373805524870668617203228582473128220077524316329995135608773825705591583676684139416167376093236072169174740696412341740139031228123477328529123680792345512437856069056201693738404816818897044978568950860946952452595216108133901783843367942779487689590598488845571318811645812311989521678582543368612528466585743589356113716945454046288934648809103835182987266259551604417856134359622183287915675063307325309862741792871511349633718205704823137839884239538419596918002933009275948879995273618336858944996066038045397966488548499034695534988775965690727102474273743754217886270849164579582034155560640734653926730869750301374558436877793585786624169491939242115103296053106852391240187120409585601617483753447347913829943907786256939972221006325744421766675822261385283558107758308046916875452506045844844593381651725890530795922436364886857116009757543052434949498692526366773594926928656535291031687212531370571047534871690686848490076408526174235720983640593759143907437843368306944870535029758063395262883597426866538067511236705069993460525532347543865158933203087078623507492998006870712334744759808226977137055413250038301385270754467735452315010301030986849924129360885456186407947541683969083756047888186816084031499077386725416081948259602120943460303234270184819033368192309368665621806848589881672759689873804718870067362774030436372100108291217279127171681479367603727222596733224731059885705622028881136523455723228280825555035777798754575368581171803153246012879114421136185257838629599275010531362191100011956998402410675783704482218585138831542014131723799164855597155290821456549788670678658810618200115868389961852225227477744760995104600690790798457143585062900871159290538698417678459770334895315984983592167318149290720745150812685851742754246256959840958465121660689043078655794235344366102692392915680472719332862208020868554062484925464969131810954152467226160747096883978138459893923161117772880167126419380864199263273957946321158250841099782544872369936371408678924407622995361453151648675228548121289526681183921578302367947784855419464013056817256769744179594473232819204671713218369746752982847088694823447865874232572882629920885122520875909100244674877491202589426509209997146904632638220413735974471051219846944734350194522350611567299309622173892169471889856950620224769323985434845796949778109314916397145259352352841267535100475050000980819989245258226096121960652691151541741852582149952249847372668397957006894689103784644045166299983973881806481230867081896118881791616210797193506168125061426964677567100042169109562670384918939594551198163663964524127902003477230368997257130978266115882414943375028347121227287438838316302916719739189236824921405906515811164982769638264719995517296455510592300782524009216221830574691273104499560093284245841705094496402724375008558484186328974872688538882719588619726619777516366752755772043245791440473496966724240690861490139658183414917367130979259597420461980220747685997870181793307870971859337329888195930149194693927455131457576669447431794754422383039358235837124179397660796669167398518625613585367365859525358608835965300158740852161785408345544785338978368590640343478049690510397728595401521058814554401173790610537230505964131221369499145333862160046455371017072154042412389884887050069161916492570982081373818986902102738087980883024270570012566484478892541972011584548753986174854252605919545239389393223715958729845119362449559658863023089845677512269720475734191530318641772186215233767491945449064149785544604280843436411223951984992613206305879321678089685518858458863428528755162905048064052250766644528454355613292384602741162584620840590472641228779795151146995493720516681330219192977581826706529482403641792756695184871227302695013562082576941425053232367948346809812888643769151207798981594227718968420724070040624666641224882035325368504311392002622131768524018489200808673648666623181283492546955784422265049633703285468389384775521373565831781775786445076702546459888287173354415186895467305115529603650249275786141872294416553677148938797858102475527497756752121292996415512766822418073411572114860355051398519480819928525162485788358659379996024389369194981930551622966137081812384401581306623327874256172742370600234338061385106581332333399429279359384236274599245933722335828257644222075090700199904362381137229178841964103101373635996950865954700584872311971690203401753440488741981740422079970203335078095431374655473975849478870663490278106334378587141370093965653143057642554856349279254028875558475316992941042210864353211360345443515568234742361418921965035695315171730902307662222532363966485260065326420417421473912166645688238424600387997482536963523937983743349885051556957264942592640798751005890896517273248181692271654849376519383753738279186740121079256062909270788774170556456072966797039446678136887315241381844507950444072959378075299863283765882592233443787006528759041541793760031933448636654875789144836547500967358780046520938430093745964147485503209837892642086457964214126787895276189951786506016743411384057086973147629799953726933172077096531912687197286629412705956184326233687549824060249620859409795543556503328892940778791484747812342983701760454503035097102838656627252868753955879666229798159092070685759807683922628167059419721793055066325334743522935758157560732514307427859064485019315503356725562335493145791071859668769504188047472355363775794651519421470316746146275021064188639808078599886518258246267050727885481482215854861398616857697445887505415104469108335238866371373616462541483859404401237866697430311208674796615353094767801078940385899671958833018502412935321663103202503744776609008361612854442298655304618754193036892734894081994691258335180731877139785793169293659290990005603699496747189263247382564981842409961995004639013551706989701001840955743232055404982304056638660128465706064530381831414714980776666118070219104413118606841286570716603903768798492094027426214020576349000577485527959947810183509650095569457146072086430434392753888191217596530853905045423066030739197210486904830886312597616563021729168503166446017121916276720000879770330370103293477403022524079953671814525285997901397984504245362429252189061037707866692192076256739519622188009494688997548726806123524915761126928871321842372542511554272212450655548291345300517318809952224401175446972479267229176004374781721294707919783483129743046134937862895017361301187194773450841005953817700075468977265800744717727033554821196851673019402063918336599185143233502542434481889573141944669931362221453077726814452321209683795125003754699906462974571791550433224068011667374870923299843886396117628627983442610833042156647912363706252909902856000207961656851152604262138544242416651015788131831806938791898819862944590695876807214192843233463637481600825269228403362444636428570077503150578287694038271592108769508786872221254995177639454199288458601936432465728134375548994587049375192394951659474416283815063868666023761323480269794329484262119403794575765152128630150181413177233407417225477334806847512134455608488655234169650330196203722783675518378574425342030159509225733998477788173321170810152018201196243656288468721055190452604149624465943218741650447799342900036348875270929716721583274932808425599055103491037264619998052060481294053640142955906396352736037479756950146594865344766874106602601913206592481989164560609695595581438478827257506783514785125879896362000020731272790700021399984916784634879832697213600484573704751975044814249454062372168997004628915533490711219179026437655536266935497026256338330286369779245199758338591890734884618509741827105972216513820055838971211973379632981532697224204079905807597531027589760339841386999654421175846569154823084523715612046041716987089152994158049688999975118197374461980011973416325791090444026814057666429717769172617769567421965365057054454438169197461198309630085588729629109722957712211436685782153471200492072437499526560421155658807410040221881068488075694733520906807279435920687794479511592694367500771156606727069593662443343567749220867699251379303416678673626423562361016345987319389589821322518994945708881135378368163062603595656670016366800832219665621909078588938717837515616793091914524844293005729204495193882137171781839663565157675254870640617457334790765017886935296041865847672130318525878212322695982871928702840594446603200962827620747606508758672355933127220599855169994876072108171733924192038233300157934692084685655117329073253517953712097392080336136723068440292895965442267503033967613932660719072341926195643847327076079837631718172835082912466104506828944150920628836640845942295327930087851915765390091553956642416030027137635529779075424212685604727023985800666450422129799112561978730618309522786065192189276576404361280686268633968582904765326833581952740998638157006062967026407330503091793333175684964231567395129529757516170055928425255292313810376983308700910742401326508287068989063507984397672290225288411799995510638532740350809478033411516317530684725134085507392591751595898874849694579671912734600079518962324097279598963718545036380463456099519944340412337487891591048913209005661411462709628712199368645606642261397192114396074094000469023183532373896185142089847274865547072746069129941483244038998656543252104667654662636137977018718607165153598731825443758542230415825158048096851997504564263504684817414032139690319692473704266610272041352509439127150165975697170151749207095210262143153956781922938188054135583963623141336435331085781563234406332474258466114194646709912346353903154790775971140279815371454992760731976566861679238188992494351528932095665354990592168359313012475095454487913442968153705432261707803076379597888795202280739819633136354170572945242936654642019782750252932461260141043424131906494584620717374357128925456977830947266898682999616990056102689877632219924829113243094355878077069448229697314954692858228232118369053701626725060816440443685786814271787233658353296972715030740216721292142469108772772769749791640702910081825573675801274932105276482999699287431314386115278312885003127386626546924422883461866579117368028225114654372267304864321494739407512253318056209231702010040264076819478442077447508404714806851795103256367894973261712846896528997932906246864292654083169257570214561751654457487011226091582719160026001191712539312585778006271132838598153128649848234747438818727245550838922208144503734069273570469620513846633669489212615289025839386570093729838030975218553103954794351155254025485356085371507265436852512040157519643005323592898692922697756549321335445109119606007670403037946458404925908983347403379513429484298473681059136341883958121121282213054976372862157527529459661635504378204602703610704744163182236265358976209603585687536901631722295090750380821269685831400867324540708939523440353359690874796689136599732599046016981255879344040984746091738771111063167867908997346480963686707291834707373449075175470866613892953767224477992051506111409536546859084448802647350016926241276876461188149297366011613668010325163115477811873203939998143552976966929641401296346799733611851505453517711572556234584542894579684357748552528996346369717856517710825981888583345116348188283433829881253313035655450944950507210945178405093747934092252310673595098786398550923448136540510476959852447992968971541756659582884833274161586145698708882466886729753323468139784179784753257823662654956232032811306922613214271137500317591052934129615862742101962869237420948678422509709925913252195360115958482157969184938025619097865357606226208545315387452478439840897748580993551944655929840169883549265958935583192373739305497287774007208727117190019264621038903414773656814406101057600141219638667437814968616260615808047659974043684799997757909999751251805091019078082842064942313967115614356754925311848940959124606561291087354885776456547600653731756793676525733202330029045361812225867231570216475799317037580435469901734049488696315478044096014193470115886856478025651327753856591980829845643838116055766794133563109285259678118953994577285059715567796884463181622555006466761143226655151076602430593987016877292261524509254890112826469607426583679252675501456836536832905747051174271000563460805375235986037359174974320682052980305114931434085178930081588119028790472494546000918453540603243253513099398977050531431908952139617530597092951686023397397920143992156833783638809971396768989012791190927618409163718532058916863485175907485400638935452048308134185335525644733517149145185711417852872790149234538312425268053808570170470974495813808986215720846497148077977382883095127732218532808490420899795229722610773476532142562326160008930927170179732280239747727752248626021664617327108098642735570635904878685786376500625187807129192203356881196742696209521450244175410698674129232023644919573151873952325961509709192298938087661138622392354745290823736773769940193410698847023039730872270923416230683698201481999895075510670076054503332613746340615987229415366071293797717404245891063600558756934254580468664628001194069761090231702285218548088997179500642203003663087582205240481238100134341388749395480650610274112144340209731972370961304338257351430594316611726423137681881743958564684437951978675709807883941959875766430749046903564309165219465112742556701256603029071230255195942273840892410843964729324540420132159260640886928161033797623260275846557356805940978886192217808288832928701962418758637911247687084422383312632203233701914509794053692985915879349346739053836683805484564696919031303551242365207644434208713145883783826483200240334515943680430884932799539616206116511051256653562091028401227036547777566995114930016700230345320082495505288136555362931398130535058783460060101815311237730600812762159934218680231097185551859518027378542504856889193393728891109057557924300177538556905254395500799955922210952649041466368251381700501198940708610976750091207172717620851294459639580449854233262311371631707344099835012407843397951799604222042257568077248379134428669349527049049843792235990276468798667963474118905636210812841643782156108323224578625062089342407807221021169613865207781382668339371228185042168668822651567460273301699850404143884663968197296126204250710367243902715260880971591398543165788920702803302438350781925307262964900908493747816606557585908006646827794204624989311395600449637684819040660668330548997664757130512120464515139512883529284903553749883146721002607173325715801349545481960009184584061436130562181768455857758359423672399236230088080267760542714860304255864500046537374904262939960496201656452814033801636009439520746761335815936999292047741653379787592284083307745694508982449196781938204441610115798430245157253547183801583819756111271835975914478821774830238821427268386513850377386799973904512782113808483630304494445749525261174556687900149502755476532108158775029554403381972224569618287399976040817747760299159912026420556810252012685389487161779183473733862982061166229733282306496588108006653649982630614504272978434123449113657953623691311927788366613383085591460885771846927050725234355950137808059701397154465958163115199059504499000205031048524536613705033715509327193197957445260853414063933301440618218266017121671721295571302415480377496393124521819534055303214808412826789756969064124402496669479583267431576427635416227341711375575199207475263759954401419918576776573395350799541446265243829115630759110108806220867078525807081517772162723984120103111855434025264943627559638233286875898678346948014937739727798075511743368321010970290153718226284662607756048729533413173892930884781892316478459948880373780348867350204166463655211952822039361384398201271680353987258487435053108611987290319734850146833948322811470477668856673415043153178462670186817611589657713331635011887660980950075542346024101446650283163132097432877180212493107444786131742686956138403514464301208978927675286081478374745402692762798000390111553591085403830718115490622805275017342496306502100448931530846639577465347359694008259813933382978758791895162315237642675307974089518601668772896894643667413562074162365462024134143091407183324344782068026267107256316528798091003939625367994610769574602291977535769597068014115139912377654319995547173044068945249354384398238262857377816642604272206023406818019822204082076080484515251985993650721512438067282144710024451720667940251485517470392307328887718924927951856802272800830410071378977769119035696513823752862982582287649590548965378721958903327931574241860121193263149055753392634069409357418868680825651727575306507019993795703075470188255044776369486353564331818982953678419470446004212042354355881307920495291186131300996848188984809789948779230743801327317195234103733496427523365344187181216998809410309770053179657793436617583192114662256116439562494698969362485160718462214868460263166106651535071111180532146136727052585373606158613875452214311896166622603377097034317704518115826742650656079107475207748517859037262199972849602918670224299286881063325139532487092107864978004685043067624946968564085237608356603543628897618815570837843140637963935132202098010299965745177399499136043999185237882088518201029236606871025709567026844287436762258172732459017777469667552052879172458544150084088284822506494485461678916227880831367660134299164667664983202432059913736733153606235984913508410621340169015604899694966103522393195237615320764598194931243954879695433189721630571838943619327205955559646709046145919260460147958699473489903316663968075031378253930397163643150610147426789083255368412185253746812413668804966389596443575089838038144499031401082391192951971891459536928034803538509711825426023367224933661840483718398135218497458301578098912044681526453208576767375290120413936249558857649750725616506854310249758499268222746213967278317397189322695563196386893778382278075166319744487161215494883972908943874001966345382504735911517909900864737021229112448381103198614516266371220870325947026187723759026162393867485474161674602329874456028325205482373531365901691163725350057920869912048294002292784490603804574004152467707415275758203216743325890446508437211567619821256019632975645740026664410025973262616335933816802712689138887016944182378576227373632038471273847026091956634993556476982591132353834950747269943661357609623401123624755305441251961375127250535391321611130128237838304989717352565525617395757442876717169683585056851657347361081141404935411628647510747802115684968071842202882922339316581620855729610132482357138134170143233747938147732423262265576748044115700262294911651064429451698020446526398324514205998735281333256745062123886003311870554117579177514988132295278992332313141955141349152006401199728191897734053428916828543899156156422309312488149393247224870073679450778207942726565810432319330891502168651394541699530524513704860323336912381001443881123000555044802372727948496166238597389381522066849772720307274607775354176513168733160304055901251265867565421767161141966162607853491670089406399160770194922267510841903415060844380702689237958245116608696821290493478761081652993460418773072616082770324970727868136088541823264969868411378620942501140634269011162405096540476355000701179827935401876762699395043120913202831167010359274866122799345025490928210862761119618401786647489394309001522612002505591916150861635442083672620135525537254596896825089150860479700520986649027026444278795763764738711865719160996591454244996589835962558440415873281733773002589872160711210894736578823639766329307616751178089230338771804236084877641316076043939416717582713253479855606045802562116752112082213126462007712751886464244625342331636764928643426210946946259488521170498450071768547013059312636507189764313874838173100855873679163500878936234291047189483026559151607971703793974093494202838692388852877540434606537133512388912357454947838233137327029365929646150996974824691964672711176051556381181696790150315570063627144226072596986307462383713361719776223760756592495379274662280653924423670004487643548974883089186660146727798041364891136423714476039740452241857420115877142334277661018273144932198091827222109051420514023532841210697606347570836439117505544878110935922207976524494697149742804212227642333562476496101517104865865716194297544431359201848053565113127385128491259068105909608107769349859035792756049980382530875480652932887343201874281863263492527107619891549154283486623773864869564292389300689395883297930675565332613646470154812379496911827194099894882804122323033611457742721102105152829913233745238331531858990961376773105235990910829983954258396031995959077053578536490171167763650453126712103731380857611640991483386966078256059702974748717247184450967432341806454284722240926819964837210744679075356832614766217062084714447899287795226542498683008346426957943814773356240294888000894879575815863280784219708810953478848369325315269170469182731822061755507398187392203941677512175026434317402024307813371259684031532453322639839209075827711631570630033549049266776147663232527389328240722321337585049982977439613154458711305499938676073466778990447508892443785678794715098765373877285432908468705782092514087291934778958217848115148641846089611383058906406615649061414106440636794952376980643127131995053822952764648234053822422382833073557857976871205653316144256008630576500744481815731236844848143124944720869559392965880935876668679206750651597901791542347802905968230262158344392439109191710777652739425367785838548198832132639318170556223121159641049445284733203288155180396189624005390454042387915008437974209194656365090115100057559253385003002848107648415125079241126379014925550036853186419297920254686456333670208790100058782469538183419877223801539893332763676896826998021909233907951819231021174192629586741685091633696698477820837742181808532530550962656022839384465875631941697352379381722017850971736358776317158891017072988406219202958375056434143637677576096266300092048367095671367753410788868991067130168156128404333676757279165732729956994534722735535319062364357130886081437119793513861452173337224204396239638218287291289783271793530224118465411456498048855595545774448552102891752237835895888323920186270214544892943466017036341909959044763004937911248740901750798242097404691426286659689223360221607524738442499313302172402920000385865730895731581435908781046399642436437813409174122864141538077737955321818308788845183903073330190721793153670174634119551668378440943144420480612283107557041831229782615203467080943086440904730160806804098920207084183238138539507281789117791211511101206671414028166782597393523022068447617922797331686270480458581931671407208717789315243436345110185534827495401682771010780878073901339604097231987553027799653491986800913791238477635981264793062576043492236386251881869121831470921049946080562717755473029232694167866494144495144070586501790269892139367623468407472549727411825696627713294504094751289488114563751564747725863152845833106450000458739936749785274290802775985266807560637832503878839534821235088929580001558867078609608596608583473836944355755891869128434108463590834859790216011406026995047501855998391350272274838157192141711309204024794947194906120907492660853931830351797324360817963595030290741126009485557145391598196857927776768290783644791540057399019410986893702990808850892906298373494419491024506022858366938252637619195077341411532042538520103172782002139676974310774279056574755047710137750037642413139078614044131936309504359489334149665567738362001636809078560489576662369736759273299236245332812949726189541677999723783610002499037427276266056537760587281567245902778725494634245988331112091467922481312073111561988656872106952851297411615967513871877198295632733421522198123327261971267259108346241705452900121575356891275146962283471546723963990230187322316189237233627290337473423765926751402771190824608582356492865209655135556926517474322908134889010342067624192075355930322136646973652962778799220553689864917783405527523205163704573866142626923881205245245032614307812923477872652812511266855103769881164090889731298021497077531764032152795719418013917505205852171608776358010444844034741759176280800716646356408325711249113578030153085200004113973545484614952089698612533142828984340793854026126819157855704871229224581391140120193795251961648071613106952707791806219852284131556378232429575493273565182606037469162333900641712601761883116800641366661722291297044863201978246489362995482780523234616168120670884099023681693650652532148795625751422737122119422591160044128182473449362794703424452595800118276954492687429561497449114732594587825683618898354911249481607002912963811783178283574263503359729071418142995704314328229454939428888628792287444758943608722170165466837332413588939754695632046466340137129376767290470359607665609220691662786522745157878124161129675615697478026725418504817660688580179517643397201862379270498836998773985047497266352353088363331112341098492646747353165419745198213464036709629952400737121594854814983243855671208241623195741068038292772150753310477416837768321740507596238746121945428076796704173683978816378872409225285294305634807899791915135354949561156623888950984095599666300884303227750563301161842318056030055764981137506058348863514868062111502494559010459014049340533235481352991430780130177127432759568248668372855929549734304950763797558432641029523798264438219538360961744537124045377062098488791183912845095197217563346752141271641663067205654987272006619794153236071731145489339231060605238768735045214366281179428754942054993598201109555068753582792228509157423747013042398748662900750783209002977283285625131175465739051103923276094812127703175969440094621048712401855675511210853705092243498028623277689877389063267124643277950316257133834931280678289988804400692557362660196380652619643409359097367231272147301700914541893481789491995942829975805954628094759693844464534669125633257331660641357820335447967328870655407635896697704590159352605117137179105642400711764320535342809364701808399751671820439582211744186645891516625999357412963796575944717346358340515962105975388079530069270197726480298075878616885098709165330298825424468142554252389846605793775290424378790089172529953984430083165677298331615350102773769056972919177286100857073440034245941821757128880900975357464218635507196901087813865274169439777396860066316778385840129409556731389205741681851417797914133123119486956815626560204376197808833191435646095690832190348735624853158209303232479143218367248593122438807202856829056986271918694664582997325253778134843955370981043918038423304137148329149885869811902811037024384771351669941828116955319262663085810268023933879941521062692271303065238513719676323438773594560411442843004598291544861476111848389336798280123270759632302450465410648886929111911941424612317636852126454434463617230905215389986233584773017653833557951682197987144198060084761813371489391472283782449865029997961342268824645012097689500404226418151309081152256434164747723988062244696037545963687501441766369130823032077154729406927649490076529807973374812994667489680995903408660657697543364986428868875296022538162281937657637904479417298954421150940937523164768422616990116702428846426470480326684337177870561891562229816970052192226190106859347753996829035235278886571245978463599812351431819998286254795521280118342017484869623202465328679665072556127069670003475712277469272125456741607654722379725584329950078496992012893984731688119839810735379435139894462461055127184755676014207436835777642285615590790372498775010137538953600845037266511328771253222561103031956128224339115964719108846280843118019632559537909802654419032377673269651705951266264331380091260140902763874726468066475754250447355569936446358354021371989833893341028862949613509865917650718753918711220217511958333244463911914975412717244761749354459092185601384951001949417889791589277441062741332758373537293092081579888135115173325089444046292250868878537805801505986920474220353376901801922907854579130763839779878079446719639648092561072715806828040229721772889693369988279394067074776795589321806880644856809481420512641592958387352250598402127627649077498668609484893331262433171819815707531221716898833624680162425615033452245478040537085899607261666032806298221516923501089969699726847737791634855919168014596768964401640111362168853677428173290073035320725958548610319997116916675529449955370073508570963679710066802317196281742450890817598081177851759098764956012431419107378263055674582659713011215444529983323350830054388182519914238415610401851400500606698049028710652166259183453645152917013751299688886081988405691546438619527328758666400608635869357221804215414705300499725109590884861947682168252018660244008054992108960038959511800750602617521324473571280525246817475549269471750534520228268400638026126703992887351321610771534333752032209144808883266026645671286218829971611514996579953699947738419855161320291887545906577454046174847143430193059699606597459304983495757310392380207625066426975770370081687049906432195786561894860045278310572260290964538671041568266815020886699662293502757730955810481287630011371119445061325142741232614921138278443044240480871005769036190149938511570021231385324874728956198424197547784028167174861378903797169906409914202913755822663597358310371038486561570219550019657154167714633274707161570310371451716249348990764190621501451535104377305564092112471860283844052499072907740640471036120597208278679028661184060514741758340781241264711935638153886242847407375522032429758756874816497919630094847359632728196208078117726663892754063532777655786188148353917310338929588590222236294682844891404398685306554573873898693938841139101561755946567824732016553315805137522765820248232553792927394545179843780199753394392418438130189972688726781217865686036950490650917416959240203826056166052703954963872914909607890704886150920535732134740933820632188257510370562870868013611986759254442736547980815423141081953774743242356261893858513837406587179381465495282069606980354740044128559026628530455937539005065089242916243904002745368670870799196973476508517394462739958514782624590616330516954900501743149194976036121363152399961464270124016491982102862457663284139728994722189911766370408034146967635455312197416966880219710706161468084504685793372828411090673742683606786006897753351667259808645233597318834213987797927237914705376207627078526039907389098392162695001928276440237219961579838261378428524476741337978390562954535499393654594519991614509176913404675244368175191618125490847024870535127691040765502263283327152819942808392756093973970143441375976387803147621947982221231712042852290046059310432181387648695445639638185420267397541109748307699333739552252184761996052174146511310151547945632802365636593339888567705023805905840473623636381253502403584621012245650800832611180802889161145465574795694682620259352040282771108389331208765163436699648331437144415271639084919181915983501848276114603672552779190899770391807783915620051751038806722808365907016854418483666771566866909098907555552120323209738625698214188754585906813212442894420722404085645965598400253787637233397998434108229903607704880580656949668068742201730086036029523429883569267332183174185802251652954996610387681402255102216597747494715324035757368461126096991592497272370400982692888091841555672529128940791277409911390153520266433887209498644334282835141607009658528785426041221325256792763207514585845235446035245328398681804270062387958876117964668047446208083056081628922385761490531565724858627642223092987347433837669619300766480024272727046613094563228710600768280084882008933238860052558721874561490067502095325074885639765898258256887255643408766228861544655541634861684023327033887201783952645131263442048438208209682451431791687243312738067763373677727642038794929557262300204497948163950407749127249104555575118184479351025693082427706327748534979432600930106674761968586809610030534812761690509209434501174845780032231585694679412133337181972495334947255570026837437798283324723217911302437332880250966294397219872091165440595652329325327775398187890257245718446188760620591330744151021101095596359187676543096358632410322528461910389056971397691076218212659836306718847022522496572835285734905827436477648112302314457811686909775169375543215968902686487813114457324615888666242194535594361983639020728439704886353284196093194584789257396003226622871031662773284571471236280897937314409539352408401670015836108117108929323109856216117764541327079221154289001358074021272704910736716031811789270635740487874424647984278707569999234575447064062138507373405648070089956286192737336743738240573709664690987867397998112344100119447830107330593888739919028903106728654199636692721746553056566934932724877828583113840994317883898035852184043677569650852695610716153233029639759839377265152052808711333447787939401858497288965545148008346010258155483177470555279639287881465622380066394942145200315165664401504653708435787815844095577435359962655805807199458909235674797397062769547720222814094393144004942227388138570096734709382124785865625241770984320641430386989523751834167094392811605414170770238479667880880012268123859100901193884855494076200762048260873795132007757305407716590864955707012845936307142308057162245132937504819586452529271539704423518409719467590816292859534993671408107441984307607836907196010581394353542086361622191601977736105645271780711388374905690035254862544549210588518041543735962001983626498935077244635899400218183967250639117610364786633964504413525140415400878717175397830866682893166812288941860905514651097973391967322742146849870043201266708250472485959842741008064339392194705521880769572647356882668514856682052609860132168323167064111381145391455401276492695047045769399493767042683724854523612219793436696288592494039580632702609799366680660199189723937699015746090325349675107736963217930281009833484031848973656721218522582183895056153532748762732651462905155519153719220399608746616295523373341513393030705853069161008861997984523292698664548576313474112149634893866642566680757495780446651659126086409307707136218659230291901959708152115585631332079985029988353912574608692495047306772635726666103310686828519033300946535284019300704797813244787456795088782679524614118420032643169755565917338713995637381973803296798439999174260183594191203335074500711013368960492822913348214567270406012782827489026539556137771470335548515630107137787515209372300394622491925117968892878487290389338474640327457357446950853213995759643776635457179572634867664158623308947693993472427089681914296324881932372380740186135526427042722443429230701305805187900802771120722629955096435611169712600704107884591137056261068630561196752339045823663688490467864996914312428931665053832224238428420685769724745708247462679540950235810972707396282378041693375308293971293387382418428468478550614045448110350088914844693953840557316818371667858748691389978035576890046010577933086430405662317436070348260874791989990900576058914306803950586137591713996308542828903596795440654329579202752983286428070521889458983998181294789085224456024208630539261664304466022529638688029951312828213920327635489435743130765071543442521644062002702193270267136532931270734472827856630442091972940193946136336085554947003763263275308399107441535857899884113943295071506564552527395776616944375865463067256555793562573620275707624954806333329294077379697106743242440500154975871403291464610292327401323393175457213827104041710430878060404535663513825904355184727644209560690052001907798232909769553102980207455819234819550400233125304050119388730749334884886551726345993322639112915239820348010899655844394657753773599854582423911552974676893705596411090281106877783409383875058757766581646948900856481659324277513332889883618771800280738434261527995915230167827171221547665201814646508175554615674653218760159411534371043477144655322034565814175264433683897258931437909679760881736422313271483940380323893027111463736785208592944179832786826260933593100365161923696774340397277410851040657963653407958421743460646573541876145962253026356738567280767421976280283065567399041091159445733735181694680334983276029701374911088676643309040297508030166228148344458486958970370153466425030223376806551897379488815202641068926947200736698923381881111955343079535411108942011376662172035191129955764512554757060956214846418829890021645331302023076704906125716100569943444040756613761762730411987965337172151945984288063005872893767123513324832142456211980179473891075266061309966907345097494986324410452013891260479959715356270802771903283229156259063979090913850574890590363303652996165801611814452081081010888652530340557521229146510363348811863329750967090525239392770970408772669224552371257942387359486624941895776923603953756583342228982956589843631928555513404777042661635804954975312660958332164406248958841544835275063975015001837864814192800968932976696947441941369959718075121755877190378802363281963784316528624881022619335297230340222595250477492648924434584682089418744057352407390500024551114994403408317610994167732228434727894825806924953437415947753666184639210023361346506248223893664028827431554165631940742317434982300381921328407473779360467410532279266149276840487442301179223892381004450722233396653942880321771599717551891515582757043785550342021567267490284545060708081798640477097094797210622459743491313627628367507074592981222582713226624627334427348459554314809969417467930753925393859834509882731784559586836259351259555602362425939598261158972747858622428821965777883353159264585374775425033328801495493664273562837009202899052247178906091013349391170767256838064659235238925185115830717798034936296029406772210793504237876894087656159644467672644180926176656809295973866074977120931299064565560194934948908713327026321899111658811024966868509801583990447013800342183517876841320344740237013907160668201867151080470334136663921971437275702856861517991898787122444505096539888156025625928031800166420104527033932495242679374787084742936856963815514979128454383347489660176013691075447582464993944622013367988666669949157419271481945902476703356276053813834019864458225204810219750992541289611052923809285595005904435627812165743124062719807728889596055213196386896435058547860083080974194138854470227196991809670625193846847396983965400025111867126324460211946245259405549155293967759503159373167298879528382801354414510992591443683763375027918591605223035626208102051757717890848125825616889531875576140090060601954632938183227532813758560495080405407039872130366759029153950559545821749948687091609839090043822134524541953597512433893460833292181535589859377920364369010265496657989300317519928135684396899969751480383835359495166383727897257719957656973078486323698383475809503728046087827546419135271869368936636404935247680483441432853599963909315815243790122393754486670354091032489971157681048472133105862047311449239535241761471301081685165858633025327198440405889878285226570413170123207497536681359813363568680428422026281711601535221527565789697110575384280674219261905763186332113019888454784214634464267093654919875349092728489554709244799583776450378233100212788460818598850363848738423881767379539228622200672709402219018185838686093814980705237226402096723132838421644303925099395731605712385724569627289164808493540650925546198741365581246945324427040353139243432039579973916637583511060871641746860316429509552423686067662108200588959531459331835854161340896201328731246764155618961786236771870682359161315748618979771971034742192271120956178115677837681935051398698084067676840704431197647474218880318575374514518623361962762824844241661179299982150456684986464364469092501433800798901385275051115485738358671438364468137566036105984154337939718307534839526407830694796247053885508691633451772834082698088977075494334751581961777642062500401406367905027772906261185697287501249535197506832066099795414146137858679782924537537823171313138100002048199935790241403102420609742071588461166033729047826305414265825092404123730393869961987632643803333982197383932318607600741554167855403391373370454985262132081758941716931959660404365282881346749538835614312655679755967527732933170180276489036553240517898251980635871313308261460422288031559781677060284562945349592153297003731008329376254684629322752655813923307753191372023274374047443900607459411101483460563448477324076957947116677927481242172229976553019226803685487430953057547926488550385545901348116718358252869785002190231294545979380661737497337725630624323696489776587451582217330571384357201808221522294351799219286665672443148138865013831006849863343741296548585777467797677732310080768535506034826597974582483512507078096267859416927750606095738078801605521232392298999404281130230260734269265718267975390117324218298684050077777163902773200202124169925804963009010081552884417980253348214953759464283295170749226749626796390598001919702275940679059528545677172079079012062368366638665701329523654785654823568445398432328020819142246776052974790517876360164183021788234331751020921879711356648879211692116982484407482753126833286926098679919727628661230351777817370306907249078136462004724344966005131105447198224672795388459059880438683138275004670186170359059781973600167653832337381538127428026791050810635812507026695498314310694845365937067069674397799883206377868202753944792621084024889087895252225435604984047397565811516974033868960073209524271782489943515259279033146003612280209683932874548115285089172156928971867405396346890730529898393945040983725961131453935506146101041989673511218377645794534616532485529592332200576132977188662915107005239492721492900036869930057492656079292403654031027527068715268080434587748179732174125742565630118722566432664166635000613254043834315654076404984788533351955602915914490382941346070554559462773282057598407069002370828318740779992573906507268905825094000177545861702562303772534799373161222590806761632472158672211417391184909933913693500732662488911071601692598310617938899349652858655542320444457810666898355016576683379186091876207579292154566200981282550126464119056464904338392848550357205579932315933445626497897494921164834917833462954211911879540702731740283069179606709219659584642102780396324087534029387282040212773437855519531414442849097640717620122820018905547475972445546645729768809423864197682805943639064475937091343537555152881142689956073580943923666442425452927174615276500526649772668358530776569479780255706458646757456350232119935059040873639835069294752601000094170363838756880036440320520923429454340781025490421229621529509405370473273934252283571844150496059582234416750616504401322407685523242572916815242559747651105869141383813523183352349749743290980187268967880718546810943704067605223630043590587905335986966404353718223988061182061542347758537542170074901268930036176954530973221817722234177912120427850500872854302637579566524905473405798689350423588807181164686183540372719945563266598422423904178407102962120828247798358200738429217050001743333494817159303231477633674831783223217489657473347904647332143825829914186080629682173884081561541301636448627729305031284478967792732989845557882089360662783610740395545586444911469199830225449882203540186713124010031569442539782670069835198601710174535538977474662557664868923229643984339939337608219491413740847360662090829131330853394223797415928515006275021388816551373869488130628178150458114972463017761533728195496479839811585865217119413651973877132990645090790425487692133443615397221716588764393690762808257854682815217767648587188573642262251642475873751477229203382717657691229107462310600322593642616606525327654351911844807413417684666431037673375708504520764988281668683841288900074192166921421020724154556362249203045538652041451243813004634495824204444059754222924243368388198957881770146841657717526047627215673656686727490284991463953404774602597715299359438323395087697377892703440399758549810652085196861176813585497648985316030461912453268963594310845205162541464202707857320598481591495927794151173070693433293653942772302620102443368671803628527300180275786808996231085128100451009333071303681728976198829085771116182571269913235703142106259552063885897771378246616282869081770003077610243758903516317002574578655863571633202638751313207504477016390710864600412345353487282103635955984455200291003713599355188773073695375689286988994509700997551629680612808649576241774078562660965505409619148649505952245855420948702130323293027285133254465025873208818712479815792656461119991192167437476645347763167273469987478665950163421678243222681120518214428958510223668285908127983098398408441038482342894841958326700517203123289170312959018420842443057683089623564949036705118978554811299216882429260968913713077941624824756566957747360725380068396109077044039529034841362458697019612974492428059027809827411007300234045345799721725049016460176545274371660809166386481335428336694858496415647012513352561249010312779665803790698572209033136789172024585161950305904262612669147898382410719625100084865947075783851073527590836464734936499963904027402208223153021720297201690535928787326012757534790405892955868328059041093143877733304350218749752641107679379749511408190563677118211946920588413419885566878957865798651628122003150092614781355484237087039856076358274720734526506651531414809932653575801238922006841731067002846222596617857076184018841684268992779731947585505831789113944573531063494097331762780173612085198063902240093641808705346980033194147271625248952233364395409665924638585094158647986287318970499028347860551791635902506619972270968837763094455718670587828482844232998921045150235729478532066094863831700822024169712230744772398616240633260181612417248822100303563947841438386438291821374991017083551244128430838647028123227866551740976724787967074997703039180261733084905930593030717934749835162717429484391575319852914194902409847828023114772301154701856661806053084224443540548155318368164345883527551343181075845412624603472323568506798313628684720033522065363479063145049000433825067725229929085557964714172850995975843985204488396087871406649432916575648445582265106883233426495840086721863931094957073798987452973701578225434910324404284321194514153017195353484415080190725509703363629730749055509090700589914259435751394990317455166584696077829309017014372022184770279910271405665777189085778641388910942508328294749868687921695520499652759346954304628932999389606956298769054000986938353128151228220702336591283740836989783618550617334460329878030431753366772520677653804045917529530731859525412385105083462481666882256306093607930218810864499371768665483762766792511996625108881313618792060515791136600804083131054410947247458126308071898996946577157850669705394860997472868036929145981291331822705861676499564489200976299594607159590625228248003488902279906349969988666388273347426292570490616237740745190087969019227964956073673110404882984028419965297998945164995850543964292510875404962862280244344261727242278941992232105112712439458921756038258728822174547514001521825096909559625117532067762303469496009653544916703086152135196198568228428225535416376071825112789313066552896539343044883039997308243832745374075433742096685755275384217032485942686375260739739634997023791260061843559779170987226294951887087233167990759730977769027475423284713203533214708586122790635412383209105141019014784217652813375232913433894625735979459833081850371877138277482065467058022968595595148571296525972629926225812781919904540391050720512455597778257828077986060373253286992342888216751989461277841277681124753401753804563751203285658738190539568109367925060396143145304541502599195252624951540497058094552360409956624803857096661184293513060959185331847994938272096398847412958600797731798360859243692349820991175623411002002400289017708542947864420498440918798486376003639303192774657877955410011742192548006402992142526221668390963379280050262027548110596673638075354113922443792935549045174399209868598046045290398003550776356319706538339900680441344210499649122017060976149895210559020277347526066894813407917402863565022947066650202592980096107787160113644565653215756525072211218487725961668171914351070371086430141427572085328899657864794387579195528587695942116798086441206594196536671562772695433289544118617113065324296068606325710568122996109684390246407757571298132723927177917330221994863800528183900274527029058628469277371108018075651646726491315054222153393018358410997438214081267589320386259281560643338233998816108246778987522992309585413943310065532152040104815698607507095026696747309387475273969663633970194197784286568528518938752920359531574096249018080183482250593546005345192783435731725435254781031561499215254765701444040383922229972088114995980790686647825119577359271137704007639981924595713078930966179299298310231342171371568174959872404616608851173687400079897218918910216274472339274697403108986333238846836933315606214547907121841154784070926275308913693347701513305701962536944146616459422221660868401302794428552115573814910114552983212540499049048003750673823826380249071102762571806267374820797702183994322058401710633128836545143791596033937706715595099021445004123263097426786876628137781545370338457819402192018420391502826236239111923855528414914802766029896967134562137520902466622679486457469306452399389995475002157783182284432153461331126549846704415868548178908140270865042309328632697031149111943056550645851521276359128216496124305392727982794351533625219349984160875044826120297735383028695305508961486402395316045906510366265093492021927335908906199484915128220340936505932789485186252535048447715174603760021080216934492426765901374230809048451114291040258064533673117754339341044488618675754282829849779307253416985320303045142622370231474483275803387757823771853731778663956309215774484599522742824983234185266190812277199763081375808831791767337178149113929025964384834766241866605566718540866469986728923691895761576508229176155856999786413356409810432773952704997128607475828335395852143847335933167349088571551596100224947807303697763711937606022306309708440518849072659690323300085488041348923398043431305481576889288492388519908378456779294864787904670410443410107347212005198987648660542785459038257259755003801168678601506830383473885098646377959702462304960365830090903664569994674194739803262565734855889275114493616631304521883334416736936108603745969877408633910100989959785672787646938942307400049168361297787376452730428396164345967914831860154060952920315681814350423790597268612311756395565024477593550312039937497497347845078619042754913550360865068593861751462817753332263405152821865303417515223605155554877398362022942551896047915038647535855624550783269169166741699323552224263774770861419619649150129149007400575360663278613001246603048483736787656963238202129041022470526730570405191396150733182844156480787291372667925900060596821637316621884188412156568999916302702446441473059832918152490390581572187820891791397056794611366382792060186057526093037476677106332312630677957233330864566271898092313116898184422595256784134126891503893880723329207788463240100185005702498182871369086354914352285641163639566855405925722797932783867331005702282818750949344741084348468726553674700364102192924965707182135415880054909941858426824098515254483230369054031041222093425032052914639883793797761827108134155939652024611050953500824794769348502078594598791145976677639937887779351061652165101724954801699637558697506982571727748744198913107505841771426144465967035805927388205255505044909576919071912461461481133127683354350053106265599038350596307111680763750187120913522665727161509228364065887608102521326563743323618136396052450346436692495186092039526062937920811911698380210842330144664997915395908938564398797301683744288728520300693924729348832236765793068381235064528873551546481065772047385046340008826460169769779865183951186572404145131770519444478448275083859852191675840684915631709137965262000589040168425352300414102549292300194752365544994121880442044428477446525397002585701282736324606997157310765978257688783935817299746674764823295434269559335914546785313765083741482447894965476196160901736261099270337366108551068914108111599163880701926719611250806432826132205253033365767515910481433653553113540674728001124035268533722398378590154778827881652349918378172376490173651102363354189252399032900075747090817471934998307201366565205481557976021747667543552838063988568449534875957114827408862048489597300447863817789425966567441662676393622048060346120516298127473942875821352713713969915737084644096385998569911201607052331798618039710237065399345130538242205999067835427800996350178487850112039257118937658746446351551329215250951425886787718493758806727928020198423126190667302410063910620031194948192941556353462960832075424047879894699393737991805044789683358664812531306036110242168348012552439507535491634632459626591271404422871309584939021965363546927204568357660309080364606141392785779819568741085999642127204472753977741725010687607164411725014186759634798099471332029921264379567640932025664030030334916315398120138780321688990936971817054851930219358103343479535997197942020800375390036088313621695528016097013227292732544301954783535112620628185805471929743679526888762357742162223438832830955096792129794526665855718241975025250682465899905274770063423481461900172497351396938608482831686432497974675195617783203180841678007900528066253321854664635234318797335439634601155446333591727043915844976437065744062531897270369390815256777279686812270641575887909629460109051823503713756693521502055182953685945131038090338840125031020719307762282488307350124907598160177373441660345491404720472902919132848072076130081199619517872780660534422888427527864102432693827611170162886486673371475829745037833064386755804901088583324828266476213482122474074038658127958603479847362625479007279480009750836431230072145955825732068331722711267008093206116535887088042342772519626339952636766552938115990010344759570366953067558099478253583977657276023369854309437224415104269803525762668487749069974587701973801674766675577220856121804032625988692606205529115524512478231380932386506150126656699472545706065378555357981101308083718347650654563315263095532398502179515187703906964571978951910663137546397949355625165489095100071299525757109768593437445392091139118239322255529245410830643102350085291461034706124831667603205790698322679292209232094246801816090173966817580358551232297117337326546482995381299362366447795858186227669840018464435403640031417533706132697946613653434287066593099397150623367202823112009928053150924448040168198417228722306803229058276583890764763186425887592758354169194913376139750480781405430277641698212623645834251295227360165032526539247594020414172353627706427247896767083878629451707188550243573295096263185573360271700002130674881054539464482789285425008211864187347059431279779761298095178866146422843110864919981378953981858467271960422920125290477509366653609352221594224833634079393625764484258266633924316963187276860751997347448528050844768057851611898030993454187062564253089046726340786033869611521133995384095973473543865403610823754381018353868421927929223696530082516885338215862142002788001775891909161277079457645959116095174671485369746616043723794459972079296154044717205722152181203672621863233939829615221210384508662265436719924657668304288055216985402441210168103005604920425093027366031995948823298924453273893062982302988235883301643030430897370260120220571954399786590303336725836714507634385479818973665462325183543896908724345239014929041499964288756075040652020241608713159529700802968235211988196280752591012776005796922073728354278367301483372668431560307908787070044142876424819141164256848525108313754092256764895771110734146076320162181936600873939773207814480195996483310406183842329008432107635162034358274815758581238047553395968893149475783350069601121574096998111426516419401749724947888522975297825639713659130913201095995168429499328942577088283220911838207595313586244715090869128774723824849025250306417856279213929534626010520711284945306913952529974315438547183584809815210294588012574009454890091499509520988687333939334956463556610684527764203744141401410988962089491199843607563901249810457135425369710865845324484592218903942142574713883085317023656283625823022629934660111099533016232054798896247911582319565712942820816927228975717158022285176000767119545192173558773720965303430721626899828894037749747945914537702622060237166206705381368788093311906951060736307550672490357763645428625930584598597515701538941134149440922987186894845974503753447175640750015325286724198037249889706990590808995551339478282049274624854953910029675439306848034143368936965254193193222634668100680385799987905368300355365506968301177914547575171928867021443117225399412193433994429468767742526525532665496699102550082443661654144927848671837546053108482076020292399603056375425181333261453071369193252333161976162081473323021636452178328146899308275436366861948629123812859388265076197562593695824125622121890136207989735657853195521131106040366759563551433687601933887910415376645754478418753320528242711347737117818081107978662655141555718684569898485462415772058966481425095613323451843474110836305621899017840808999373455608991206845642263970627279562667661458335639341752176148379908340664579043700387694351260866557259386322280305664163341736269712901131329021396558384287268343143722917927183305634652164308610670126189277312154649928211537987551631165354135302818523095111767678360264624886953001243296944338773030346573896329103867454326732324120271822112235557692760722452467253384908508734639552531846150269220412122091654129590073622306200744568355025960285764472014973253605456484794921635965174802580284556579859330890974284467099874809242333165303105108738873261413231118540696790511755003488442932624676046077465805576402001689106143013099604965530255387475271298601087293949291737174312321476457732998974899846617759298903896804862401332061238755542510205110832586128637892668020527682054382383941721129992436372958045490856971925727779868736446727418503318885601054493150163007901120286746898043022285957956266253046343827514531038947331662521200240631113491054823181303040258661359555314463756506541152172763175281973213010477171467741662249546521923850975600862701638931991719975772524657628613115083551387725689413446334049623279689692463393495002244415351031115043672241611920338091436261915315632098250673752618095305856537584652691554171817622340444322749604688373385298867747050291880594262345115672608730772194711410108256339325838201882588294742973785879068669108572650503004987338022403702403880386422399264740292896489520748592586300292070001388487652221758118620550953987516991124209793269335373550620750038954805409367556723888275534191243022600795858900567755666687428639928492012788214414448467581631489006092543249187464001058484387551468093733988004122956677141145605216365275021897676986781152313022987562791974798428588786782077821808294429910731816516084733310253486291738100185034629249838290475863945423560227865647489308590669967960028038668881461494835388752005368217372980247445282891691242628679356616890195188515279743930207492521457010948314946587614451408181584480953951518601036673411382942039103487092832643871339802123850630595622038850566767529104179793361032301771708719939291584660856747263506782166387745599985829761461628663361742872496329807374428202267069734402311681127368106418321452331394671209906866926689973603341235788767054867397317705993221243055806420131294724420927760812089761405761874525531708866109226468604998665734201755026482882468867695171599483670762971383427378677737842219538765456865757659424516660184004994020769247316621301424231036784528649673176445818563215501034298063679639768907149139153868151987323464441616916005071634419166393728826046679858174365290187718670475821718836168318411419349293005757733943315097643446292511643127268196137497931981914948438155005171786126940177859594405576195295447427577448414985408371657345093787586085528149207825649904715084193078987039745278372191218766501502796342254185455739406232920580108737300242384353156869693861061391781840520358435220680192577912479868102317999319992667808501005865170235914123700141238981969471885500886386243062003629033430504397576500861045594213076163491740319210862165115327098438022784869511289709193680168494049259336722620637042484508241863290251129326489641220753357311786446376671191767438405004266673823953756655836654348481907892139636565932439144485828340510822021334782896354249015130539694902494070861123734900311103613004116633182088392751729987788449284345493204986776888667241315141114771110586289476912627549243946123190825822366139300831234328461937502620256265504593723452391637330683710804803363004657656740093183015702163520309908212860022233567430664446513302567914363400352033382856040675462183717256883291844499407444545893956272729803282093976588977168810520146313380894269413659965927415231661685127844150633928436387602757733384454791261834774785739862013108493870430502317286923751719047824891154823909131633320578599228538187361250086571550590210508357184747037546116950030289364041540579862824615233542057846982052625320118353095287675295478571861051158530148664586611394622527693165920508833131408560923807529102872383765105929026676633749167346278524287128515010445017414090519204449677197119970258331195350473300041036188379906419711772994482488369852156534596345517742316805569364368334486025752764987173840947527103594303272145776637049495625041752952193872073606976768698278616919762182171407128542909630841249690186463646963594401292909420011203920414245457979127782579767392849436966394453394638370097995440536207683498985545680756005794378614520935931645909708008337756971284591967648587487885821129288553530283268446213117175661486839466161055846962615906657470112198721425688874314616674873971791545705416400039402146633164353446062551247038464682020018260935006677351847048518180276620002709342042998722267452619740191190299505432749729106984208075194387779249514155221261590370814928401449100876738622317057827515571402150901057800773185815884909454493223189168142425688287299694257516008755258457626314560649145743467060670220320120406479564239792112330768217768290460414557101674332294424845025409621221203107915346489013265242962475388870512973270737214714033825295598107423157204369179932783641370567041007505850513971132113456478511975969593582856871442468720240742790305018691303910839829628178046946506743898329637792503025116497153598842279373095464104348333682558557770916329732474250189428037623818652480603333157977353504468822685390383435030562188726633374352339870655503015309158028803982431766815199119210674130976262091854669849007737010778575833673997322185793112632211451851171642424179626459869863800579006548575899365218747166776096460148893052876970117719011415288594480333793123297558938829501900011925348296048166573419956826513346350574965864951736236114445860223532770395942783863858504400240316405204358701537358050437890324312106149306786293862600451868888135618871940053312329109850142464299035200223115724081183070422962401242730221402711083576898694137610072345711437047528451666083738316015399442260178450112035966628143854597950741868004122634410318416135141704061995588242876552105424096413322176639963286567962464211642093188175330536836264292723630233225853829863665937577855765451305347867392971662577899752277463657005573878523343549161039264978303518215130664788926880480630133772225429312511166756088869340451245942929019188384305285406362613212767887678125742322212168367173482779474888857294839140755990289489834466530580117292286974753242452949395973273486983855565191347160682289819631009822687392021761126143669852076906315245977423083689596844719778748680995510819946693368558129785288017657429910692139603906261655452594668650922173349269759591697778928592361627610346577943456514015820463222404482026583877661301451085645011749827643334285411086441795199370779339609384212144584779010227678948049319682501858108791972887491322402158318128016998819392075555227191578512319328741216952974760576849951052720307654728226036493616060692137156191574897460970734960976322350046105427552664989032831205410002881250643780876854305507803896803029628774390087607879370513354572467966705422087381775739692741530002788805113948431063063382344103067382057255728127539881166432156585361609768893656099443242997035204875155796706684767330900074827781775246026204507424016985724140404498563611665069879822908557777184507583963850804685286127507581736960894979982950224015994623120641974978175861093863360049156385011588182993501763992618314978941390807557993172690791304883029099105939888163436478937356505963823056442669439114759147995287838468636327666342736309145563742641221836558835148538062492678256187110098127292277119846446810639899860747896803796790482579851796414102631101906904192110603654290405247766266269718450201745321799283995339724265352866040588546428342627830300300669409512595111802581465210659511097011123445414499401967157262805527706820300310399535302079454163002706968604844246857020598177178100501871811441163133960619449644327691584337299414286843600423829671637664812978305608180975922904025107157506276101131856421762304313373639897480305293132326088754400946861777009547552045321154548848084055065122471572864893468663076259286716672127407286099062061667713604326781314866911810039183722815011017203055578632967266321021323123639033680457470774686102862194071623575990670029748533455282399699310417043295203578661959237843609850279644451384633812373647096432918973958144411637048735185891656018946081178445349718412716158393561211590807353826786009913399559267858546796118443681152523373582315884491031044365896865524485809870640233042033552759862289221166697470259186073354841739072410321913431168258721190110923398520586861869227295257753761676429156176139135696493865960586361617561636427576122700996939729745139511576871769002310563928245283826832852941045366683083190212062376992066202026425626797478124050639811106120516473998939018136294707283836815758970283045462286468430723974854179896525468970013791898217819824459381018591391995254816666277586533692370251868362127587171780456246439420544471776486740329148049219051316586831344310870226471304708199019032042393244794716995008802065129567958801070376844390694865194676532411752442942897727396346527770616579501712274588684367400963228020617243961643894303897273409773288159989801453812824795831088434318336694222597317841416527181863981625960199199246937296950043821815074394712278627713667832172444754336528071408067427979852750957834694055365043793609725513038634015774042699235332752244178926986377113939777448376835857373999422279859029417840796000927823618689016298485037719469178493797604041487992090998535559569277267154646618330618765676035843079827854374265170878109343632495184134620398629835770762920464750125467894714815786191237991467454801116268296712447376137447088893164470610642230886796615730300039199212056429962458542040112918263793590401838246135600609513507593185833597485376301241784109592338044143560232017168101437883815364420054027405017758033039804080260948323066313993111719904897478215065335118136144239675380116212378514432509057515807246258594627393090992890357288744981187901723047493199129689069304782852301704748466019541186183819577910918773120875930203016549400130074729331449082571423259733537461724878943985556049045049430533229125925615396246570499246583146004045893901439616409856424546214336416043935128135254284199362161524243104825030532979800155005725107954171464477515121334412387052925299144174335964199338672763117518255082636717763314836950515313336348801529591423022790122288347410639355924294127620222441467547360943203315100816803691630193369498327841477521747801919952870483835599224830858801188103907482732859762164177553395348049708794580455657301403309601444249531111540989174293770915650044729810260988079989505324055227566868867284587116463977996786154645988574423952035871612722902679483556558654669102916808570826857487159215522061990382465278691813727904252857269186709137360852194229126761243934951711519649054186058036152658705232679766360937764478967354924116746134761899356546660593110178343590009789089109806140109332822234115766480829267897459872932781026426379210403796401145416408090512119086365346275591637223437805064619146345388103295199781221815364930265510151575646268738088616959711662270174947245597547567511137334331648934400668256225595102367298799100011307466082168503173757191387968367721246101667701508951720192616703445903732712198709244300976981342954188117957077764782655884869150743931975304820088612625314313816436141587603201442078168040655523259688707253975288611741999495762625204007536949965871287512701387213076002483252095460335175274993462681925146237093233862931145619796656171305398412250319055859223060220071207915045326898035477338223684430027076150550557966347253163175042314405034152972701545807586571215379171264321248219012940749304949089248362642793939687917443470269506587550682900965418163334578618743058265478852707825069169290601549810753869562324052314382958842497850937351599524369229092955502007795313696592691102426096380838236188452065072687752680939889722210848446371352585836204920268076394802849648578636906094411324584136292272530153423324596388297511943164225778968604817873852543263543964667519272958449926609380162668085031976219480086037626008772115194749161886850189786921157356788310995485075366435698655388049049794843540381551837537203444086861698200668583892371069896809882193685303189383883094709290185404042292002704605006717820353523688237522891198843971060553811926713278208970141459215596122569134685393966738846943741292651776775516913676504806535442403184068271209310805867381994202093752423491546009816529740975240286298170871890142506778428956640419746515058944461854926532994914368040591705676476035545380834189741466361912301383810502356168247571765299990282949988826783555175115971169763583656821835951987366652703152638213885226363466017382218490744057072827006027379615913489520963018042769278609397245681185007461866209579225025629618629840080193336182113994015724365589580398326125694121604230503289316491376435730575067625145995365515646580170792371000404866356277199073032058628439650034315881188320896327267353823056403496880740502374207251423640739521353840792081559686927940802849144418009307808957860898527531911681747990951990724281847535242513571779021321399878747074040684469463701848807056082329780798172219167308330511855595902730622249060608354117605553565194351243140133217677006479616277918363230620556624453438523176642079861005330325466071520550849552396186992633402927385701192745298602253823946172456472824075558624002474710179850571443830970259227770891776214171736041775967420496129825182147805988928394239263863823752869669578081933737481938404564529157576730106817371326242856501578948121368932306993627524207981793979042360304851142042302180863020248459055059109153320449405104402807646039546507651095969785698754922618558845262452524830346351272334489725940204264509138460305097765287429102964607505161259778186868996950881796678114147033104461746562890687681145609612879734061161463229259147652092361241120995362438187191140063038580252093857454037194885564185737049040889497770644638860699206550382624243544513960394775521714647132099465408811772688496695352920792518847227321581347805411083039016887172371700655691677928228146260016090636595119845114101422229781647622523342638644756697045160214866140831954338235709783445751697948086348684991681981450796994826878886464249023593088111666704768862759233174402792070599027044251091486346949460639370216985355990220303558361487355290999772109618371514748267885757040982406411685112132799007828546986745675855240231835659648135515455251808140611392499280824427148093685484017997777905860306348712929195189174069525148352679261685952278261178904131556408725099542498311798219591980896799975214931045889738797662582794367406351895289269160300521824012673281880284732113436737645562888441361687142783682142969193695549373864609799255406025389240597080364308182396098752574801387536238361569708248006066685335210669437756296305552497295551925779895418663041502698223308075411765073302892801174926809666279053738203424114250220350155782712127189613905436181978349958545276830043061255058555583589205344320825465792015462458553636304849943977540270799653799515266307973939588630144308034132834148926417732581070312233246722166524158811516415397303110892871830178290179789460876656032696886004448609536922450231724712071271641515597885684686033638224213182344778869585367910961132269728356667735252096067000209697397170007551914574682084757690625765156621759109927093947602110269129830572740288404345536870742512093066198326608062125069427740119872943724739475986862162690809843281084731673843267758287554121177105842256755759437705303847494234377977007687245968746335170055658721610038825433834747445206870689250055970533106712544815682994774778705462220275661538754849869658715219020240273118866269484202498627302252816458353604208251144555007684766201272945454973652275523964430068875762064713517581512568668528558585047686380042145413041471777822586503479385955575643422629746903269830615986277133220308194758199297413331871303784841987270800136865685618572894992108182653314909022584964335555896996997206799097960465816718054386508226797293143725613266186006112615936914657634391196843787536140804797079275036205805045615144652610905815087693144290436156214826731527803322569153987861082047750344320344475344088212829741464399410251483487619556106438703954233357733719010639065851579650913276560148766031120697906056594986391450886473663010529280553698064603668009393056189020366608361776398713779364209679605501819790430970828379275559807464519604437855761177022925069492987561172653286173081759534708764995198084701116233826120681820320624551444805595388748751742514591603343007847328844739908848192857378576068402173654431803480900367835969681345102404605988300813046135862148778328970454499867267119829661118186861715068277950494368234893189196978590444502693120257090220267495899674848645120976450492600038543596353935608553861095776265089246758320955217591830040226367726862612743253186658513458524606124144388994048754499276873208691136162298296552116466305341924933113048244019696033148206187413275617211215716730837313799598174503012200678060249046625946982110721871071730068303719719199809663046370596817966753612880420280111593610406659776716483421757247003138123234004302481048018279107520075885203206947857517981242775821029576772514765520120668230308017097754844090709255425964118270652891186119983704381318670442563342317574490246668921843754039033679115997422068649064746361478110469546390798893534998644032957565278120006656104690086960462555063058741326865678544793700659889315624781654497971393033310198796089774498764005884848643974640185728969722609782374160335406231373419504312768280189850093087398704886394859593876026663808796860509338639272644670775183246310875081666733277720872684134328052621064479035966112715053419635283708275723508997811339175379983405818637846149047378820853775583198011008819328414564325079899658226071174647190482783792785563270537297129664828429605557147491356965244298526282916856898796500132224756754763357747326854325365738387283613975959629026134424758536388926991964901190739976606478015607631294490281093718351732097517372278047964419467681029164844740155348183300205740046096112935421918273908357937925759142258591766074489840019623687684053740560467752460504256914218069656091750814687671728702515570684901093271882654949586226882124981705093777262962508858393896861807737637251689616733024091873190590261674279064719404983295455303892059235729326167604708154642799712531995643835143269947115514665496617065634612116587515963501733908120191145637798839210861150162590702289677117592400412759267067251907803865320500842515324589313976226603961857642388133714724730204497077752052778200783453579959263515386322845182155121263744094837360395699644043386692495034246871551094175290202964850975367135916051435882680855885986405358452429031404857235651632727425943249211619205862659535189922370513531418261605547614625677962980383408258135760970061748497143093557037727955774451808697186711148949197247775240239726018929704198467124568487455908856681572520566999413454027590797935414300491617809928054414908498993690403016954473895579793336049053884354208996694069743306903294646281466582118187738231990865656467155872593262577988966697217265176418349457643088381116693076564653369705827082196604547317245116345648755134268326716947125426498154385846987338650705232910407738576783195775532440687150901725141160393713286498377667796732741549164659447749472953678496475353767650380962654843042234345854457882931663121167614455729200603588883912674972984159155274577525518656931700166886892445486431829228639802724695278687878828774904470710298829479711108243200117049522895850394480938984179244870293163238433582321149497534849117957356739070008483642010184366943340348682563732183808335337785023383445009017576393091888101112831371324831882665123115787396839349794129299802991580058984370948987405215861323884662893157937904810892208631186477755061406876835650387871086612276515580590024879775302185801893499641346046757044855525488468690561815293391380092974238396766561429190029959307215330330518452127570100101355863788047348436687021100485303822239644699826496251647493087034992825450534086109436611536758130640317819329645029107290634864502073712393881559441839471098347368530344229853804379471004601720695458550339891322153573054490133105979698000346795022633550814441185046128276630496076056422664427130395554032603398788968456103075690409607252092239940891439498999724427100745407600500389539675231313150038640360671720020940554949390008876322131467925440877435454291484189854475520703110113803439296564219556972876935939365066578287962082314971139831559206385246073936377540292394329835637467542257072416550116868884004798265026415215456593580667365732792162600584633163429352624454580091358165389477804065485637764551283611678981367379306389681274110692927723775533018112216088236567662414937393117320070778767420386418840345095671415067235900257913162863962767549467913369407686099548062343688722313450005814969982497130933670486090916871670599040201793114129657182713039267349315156633474475974821936048393957500533809700694508803964589237656947751903814022867395211171129321715390388268917984510514537708173338803870691850826235921639633595968732952080547077315657651811782076145793028713564199258986876933152677671116680808080427836504461968325756898395712837179011974581015229258484152274675642076040298818263255039085569437938658447451025343844058492010463206988185446530164748807941898842814581682582274709450228271715293801285102675977399807986291150579096709151651141721509295799873164617602040645258593675344975579267970578742962538429619384622956107629761433661439996689792169028439352661270197113457584092480886553145232562835726783760453175485529231168432564312034592553457053938891036520896809949948047373674688751299445617500368548384771400293961582002859118940393401094205418456093372145168474604432581075930102904653415156899934070224124074987161212229640852817676682499020433726958198272632675290041434178245755418038014761250816075376830356510245806101820224495739187468729515623746455572010591875778372493994253119953628138923483587663720424446951520630086189155015678576200725401455946168914779051055454958481082064244982524039045677996822167389339239310182476573080812440152872884522724758263568619120520066921397620676458479924842796107854741545007188804633767347048007006919720026610436000935895161952594772116074384925820441892516121922328557417220558595631614897762035799399470001098140198455841653547196963087609361225561469173150894962676625074740061709125731281479764450130945853628627704544643827537495706774962145369543932325604593500268166790046920554205408102859802380151841088444161544461737030866688673289539694633940388721080396854160107377385300716865018452207865653834914763131757163820323057326364368575258231818137567432493491204310097897143618914319451917425784333637954005883369952012869831072099092374209343572833297633634301813107182256315734154267725008302042913651666518341664796145639208315736668848904273307973553913218130699605367895186861277658114918754053761977371408602408433232876244928126115933566916930764211140687232937525490862211390316187223601533607088085418242389829420221158573095467407809497550173976039957938160019280742334190771137163075312447572348383278344115423352952336592319796354242803466640637070515014299869113706507363235455504758565927208474320077190277432897927150899849254412477728274385525210976373930928588386886343870053702940567606197376094276185805086705573462800381572485385622795252120591073147864581470688018288343080445485627008311980292621860292601632789629415983078767728329824301516452111878253817866313306192277764337027973072150805241824309775205576903757577929943517645456023053351129976702235747135031243924098193427605147578884167951543467159390707582505831959244806128612279534022474347880274727343760118374820573075108606644359985195229373184251927145965184125122843200435321304631877368935541046055853900931534172659068796588329988700945825631036781046951622277501950649511474366485559365694212092867634223442311724387236083928176479752082540395808297851520956884483580886277522057007258488935097892485040963328659725243153545397975583555170066448092662472075828408661691458349714644564696781880161286718592977848901545201357251316305372561682189040856341899734581532531629798126040117806541744456011479829437677593307090796909675759536222758666778092811306395385197483098757975077406383722474473968156747036044174845835523797886911149049838393246057652467594083542482632046466836771756777238497080817681685293091557716627164256250948356362613623564209254990221132309751840786767530238261163718601055757237268999673371421520132264305136319168739821715596464156811587867811757410089525526219969595707318565068660828554614302554394363245025300598027657890916985760274470727240184354863809969875465660066526731684927762644361191787040258951812588853238726408749294702939340694549480796891914114006143506181334540711060522178475305484562144023268760624972945327992741239622231525055797787889470569612605260131585962522956138999419460481033219357592900746998014986569286820244414066729037331488809212095862479497518065653934536055390561944769335696792923766711725490856761982250090373457290399256782249865501551017397902562568949367897642133273419497707426572583860976071084433911128030856149587806873416784746771036925638516767640442873751297618084376531954740866078115038359937414479001927034972322683583452901872258058794061199868151894753127947913889218118451443240697360132296048005970211832121805264508521895284308741350939538223430388336146977478866789481133911029368220317040521209565008674413067317502768772325419013988560931339852704911029939098706493996703502959269910869196778886123409704987616052599722838632393165434489604743142123155824792046152908277128011519598119176980754552190027438568112615740671461754414516944450444715718263979679041442515210304375455069054936567426865608297054294745815475103536065843210226439080906199123364142300492092447855538680470564624573429896103124272404099122899146434019203143143046034846883168343699555522961202748355604604935674681102158771726575115236853775262932243769348694103189363911805619837162599822462992050326223056363083664988515638257268924976754336073194864143088850243732610639875122421197629655399646722718211466958270462358576297075569529857331794419877147098886767548160103142125174813712897220784594020295983028780494570228271783209766257450979697823880757802366768292116509956250477724918166607012656377058370659661961158408458344795974438997858254925623529750957099343466584384487809988452517705936364838694437703210411983749544340371316202665270507652430790684537347267037804524737899981301161357690157538087012764047382439616701536384453438057880009125545013222322677094657788408611790157826209573130163510968646785067843900160451529526174756782140759865993658377323237993471101230278635435590383961531580965605046494563976383422464857173032470945776028526144638993336995998228502471367715837916795248675484965226213986787116204195123431765296336442968382625354131954403578657918298009919596002040869265023304863877422548674389040389916806992865618911117221571554507109788944681817897976199546705131743810288572494873128321291287104869145942650322802243832975525617021612286347081906852166463472936312909536178874290500350585393795176073231026466167966124436757720802783039355379450951422588801199784155507652864130907732362787305539330872898145538807179654414012893574473209171023845595151061234133759976565301114956363862036436245176672163652165920812738755949524996142914467716753022588252880112174909951465522464972638739081159686838886453535378008139566904887958540408633473249454125011479810973797087510172560553734271880450239393284172724191903730857113857887391198595197568787561470067949633096635292108344738408014395409576410917094303378983080638721369466532610708787862970710435111130348055467427005283833594327248203182917804234103686060644184855224301454680031892176029471007542006290549536345389303298374930890041438645431004935048315563542179791243942961422796492015649045856527495380681905674734543093724525675097326741210956286899064199369373729965660750259126255852295671580131955588212288923837165365338139996698396124598882072629699579099627327465451217834970356455003278337709023107505646952976553238361495180333889079983577703399741962053636896181449976358425255141239148926364491225621623706436336065854809794724681439104224026465643344603317054745158085952485719123121456979846947641754311371730087287896608282342153090479917712653232179619115381278429915013764556917286114366907592849344212078099731334506941974207617570711682621337920853165336872320148937791239180363214710877454606211982825843506588414839333098112521589238318211557093029419658755049705253954108373041922644176890566436542378789881283179507360932366187815642453779399968426367844880851602733910143426783147638993407071937775254215309050685771808343041331259818175453240777189557745158301587410303280203549798127386859334632245187271080050129858054063048866770534327100104454952556667610905337994609746636402265787650938999956318390681199393531971387092310645293498789089187787213098491917730082836576306173081741085857999608708567752366330178173820762708577143443470994796528314136482645833372431534344272879517184039583407168007729218399626089293510434177711388707847095337762475430319970406533020210168996351334354846835288178769841164440760670129770487407567356878205799706971303407740007115640537825030589125709745491848439891211743933588166518837868520434128168321851924987497510261764941272631227356209234480039314147018081616286327560137157356576212357507283731825830921159313949743530567184312573660233814622232410918900353513743345128846612232313794184002879341129611284988659217605685951917933965225156504137250412028744736452566444372689400858767754780224766939177046493060261143838011961320386721424257232018492308716352796956846615043067363708401332970037377914600168423785759602918914702551545857205451248582281629801991174250948996478012323091678718901535968633834367111105331292487230684099528701146299537216602677742704062929961205428243054731942327272618840063977033278557091859045584845016121920483690448110713746142292859953174896748868231597710037613620474570372514747430480364781910396810604770963776329611747674439224777544793747369327760685251522387431729140279364232523962639676165754504907761557830236481975183906435080833112761187239422787498698689838861010485925397878318937657889949458452984447496918474765522892731621702938923454103701747797403805249119123275118726807350422336513908883773326470542448466989423927382200590633733015517968909614192724497211084154573464339694769973130299720047985096490461375000251492480264519116047159028378574136800659404221472906396241768496981233779037112387558354351373861966061362916764565131839804798396959082916357004730476937083011495174876416018299299331272643089720905156566543982321753241201084414515769908443907853209851371741105275413055706481038551315832987237962000585254182002359646526071789134979190534548701805365297543611925522444850569852978100493405185719197289482944870822240405096619936194346451328282135102357201256982812024207863366861300286818591433803478504334088374791957127748020341718460274968325878035385020580162779545376576240482920945604294603439594947881332839431931850425802409424510959889123417979938448876220921534187686885252494309194017780276851354150617749432442438496664893566916746047865603193633122761046217883940849532750544412067528160582458435002259523453148668077625237285842558844370601496356250223703034381830282945193685503827624036499546254659330666510625711302513293304034678048764487512616270918324634889857858579329315893466355016152259982120236585661000137508682717585442515066440043479273493093803180098456121222528672827895867269203901746952132389244851283997274896726069507947158632314686083429778666676465180439689677567607740336977683324460698461350382324276698894122736101456975402600920015442481673285712814501757312931179838069135704509692440942369119228152219584323370675911553306927492663746704072227869004146366743852613565203291401340873005600379191418886426309317697620534778484258114414876377518829706413827317157406895754015582522499722409707661428599257029032223059344033690540182877620039621872909721531385065488838860287689975321086123131680617816541290778406636108524868091591279549132601334622437876045317094403534715867238257243970709608727761730964086700953767522478237702631573454983897309152065313748527097138515171290119725642431087639064471811496502015377532856777357491192247163318278147957203131297563308506807918091141892071186783350502921431505173259908013387344558809703721571348650315424056263212993618069086221270981397043113887020473097076978115618602914891602591548634265633840482356698290668400263190635526681186274942836512969486915592917610956127244040919810021880974215708807997864261452400236474297478026922680225310586003545029586897782609908397977588903973828312759019633407021683642623771395712870880226202550164360012663799845407302712919408167841255943674380621670920060357292467780260223176763452829489969995028258743884605031151919821814031028484854716189760183145595473051869211640228549259775333245755747474962629390887496865488404102768822690877546241902291907816533770972512747104729034751463832829301207740144975034691991123746194501745355739242253696225284378938592558276786651629137496058833416525457367887373806204237930282694508598176174573531247660956313524461982904892762205103544858541220110175470262954046841755868666573745578095806432596096156922798861743926498277057424307358808116095388925809601992607219324912462180511799545690996477668667805921420913760395127086902073250826235547343935957302365069245167565748678472219688067463974783766801769827107484634797545883997669930461539451130463844923819188775445775118916670642434440453560711847380027321367039573493667417602449371386298616884219244734007953191688027077656851267201101752248319948683947606811110609049500255284174045783926508115828299992578550761287160059948887914590452856280283356215513012094946308998706042155458266177912615280828700335128613365750805205832314660742346480135362031253122909709259321873674793985351716489496631462084560528230561222943594023015633812278065260124076679804788068956312230428906271247052613590048325136944354693042976991083278245485486527772626448833432796062261927167569563677478299180847711794102120042779636533874719934592249463058495874383327559697753128231872388356663062803609537500625842116406046198773440521412886010753343031077360718036467614807618537705940299974518504683097698651254385371831346958498676640005804958634621752021874750973604958284144888217191551227420085451858485062984193972550601364282154899811515759345599616958030042313267071649410225514143771897105896854249798423958375394586943016059507969374331957916872603023000884614135042691323192659090774757761980297630473880376382187645322359655692665731791384163078168689676034381974668230167441191076072771947099597907682806685030967651687495616277014887080469931209641028582391818151764267975729331782589827104661574775837599575515479964976904996278893621007178524257776751033599390435859622758057582837257047969599348896364025873789530787851439116839300336491601999483308630063994441949104816019901588056242731227902810563171810540914614144477659928755614388962390813922173552072369363149036438319551727967932108338512525533290018832571995075914483888465022146593050161586692851174043312261914008838497348085892182952770542812691245692817738384993116826320241528486562034432576645091499792374619767622684662805285770322905096519571411302499397358599889283846190574563284781857267478859265191277349702711187926995632578321561914552343438874156385797638388908440498030448961097451301221877155714877722191289827147029278420632647252203486443391219858228696371785289011065964847333233062892854527898270287755929296063218960490495889081138176762665384322862794156652437860910159430234587921409568448588543797090452335292326922379656832903883556281860534204038927976696804293004468055313060202809596899498917257590371046304615873503460452077490197263381468501412679348416692054193005199408146421741767168081079365812618584191188254764772788143079502244003125647273652852709803730311732457563191763044310320682396311533313685794896752160620875235279210902440048938090737539716858119410816860632335567919429947822137004073520588509769458923396254339562732696841431664102473108372169281571400275370549415322391845243756641403089295539064082480531703985867873457782549963370310981810277373277647939131630081981394750884741024405277839634784559064268565624846519246144855772459157813946915291163829426880643629534864745605665355622090047557317914806578686582811584780063437301502247720221553970250479697807262992222189882346184109840135628206873708888755021184668783426801032070081024469466268133362180784312335236682744214159895137552340654198553306200633661863785248417551310349065498227128568848897519679153641241255897477593800375156081751213887675423803594766416374686165681349312315415125794919916760023949991454454638928611294408741570247805210411041148771808313127700013749445779515571954743072861489498564397888171321292794313249114098235832542665358536017670267456789090628079029082094354519919209721486260487873359640457270823271236829258728858950541683148634227672488287494683548417397467573518803228660456637483894033302477484339967096068442631162976603238742947471780219621509312951533295725285634960660148700201096821267530535573472964647171917478534738002660812831779200351406453493122751718551958835868959125989275322920141222346057849607929508849744521031726117832623374414136955372716319025099491937057267951361198921170163953406679585206933346731234127196674810404704181865952390744081933418205206439807759382776201815574204081085965798382027339822162692688749456286438904413765395581558726901153591653263063473489807174866436191233209549842332149573115868866292657108254390711644653182085269877240622735021424619226872580401149239279429071066831474970314619125159192113948834041526613467744855076756227468734948049116223095028468602988191762646675088585996341080067723679975022765414962453552537129518933939944376739402014859600447324254869713143870200577652851024195307746889585269724245051080124718453187466545223715094247264241732773942869103039384115708377918462209854088634696728154318564577830785122034182951756834683087777079468086937580422564175349696407992982604554534833731619926652702188014943583813884794847318147441483128488281708440759206806392618072790075542260936631206366052874840421044990842397814191256115714836223837510703009594923265805318529388243063021903809210283457071872309918272399875819792533090159260220566112709833569704443468867742379620011070431793559114361919323080833697994821316100497907318826885096527215567463592309345034856955716827834421211910315689199371552849799868568689146406174664608524726468023125975890937198996038616747199998545420094471988234777711342330982774770023952518128791811128330835896554153363212527069304548774862058550423911694469429966651916449408818296425645125859043993652223610759401541626763970621452452184195437901223931026503004267278244617221501580263144054995749947720177617460094513901216716906295852525197158867065604578608003361190597880566611885219905780104384366290903366920737824428154694836605422810588895709285503664105959290301913600569326466263526872070476451136255680060472484129778342246029822058417362553926402994207451564383494653131587238208227379067127412050090524888345689862894650764255353686277602823750806257756381299391209645242092537552897611489518286253515092747979791073198233710910313393485805733160839554620058288091029119306212047482494049393019367691679086882503584760722254186373427052562964689167807813813466260609286744715661990911089690576185890053847484986662546616916868296413532904912657033233630449674234598642230644343804079987300922057109137016113921227752824352558193786583716550035533999109378050835523844609483004058417274543625976380416820177603729145530032761160692871876190805025690515761445213966207145236387276064220912382497852505159317164702474635313511575111568216731618421146064625545855386626618403649852901449758019399276464136226436042036655836594552454531440242533973402967370116369763746829624791299904995362177832546987667373561910560671041396644185165746383656114129936662725335948303945879750865125464054268775823601127537526941970089325865517353450485548262795419047297412190971210084295682354011901349155497670134779846236497413743289881631219805615865653669213726590982977823901535202210268635375927148976275787139470639029980293138998766752446725764720376888240915179363660097010942671868136817029134542389718680392317503008526637161601376090364003521333372855213782608859529423404922565648557005987875865965133988650986036026701386831160198640122450173114188650500442938194599884785973431034149700229835523569266948529704298653477587329681325366800087744482295730038978077324226345469457787254788215190928136818888964813238129421563805390913605556117066340258621978756971122065238908134300665466465758351301358204279557170196206320958724275975034343429851978349136869275269948743937187718015149774417459126190166548343851435513163076177206876614092607489559286935053246835502183139307537508002436332916091039621094721202993175214056613484084317571923550141543638567204759925160011085012961281689424939876726236698594477355796931972507811047294007174091019087971340151943715016103453499977468608740965041712879876470858693600066467979520604854979845524115246925277278691853483015206433559318485841567984813278587367661465405030322004079690423003878228918377508653014491015529665176741211194267157298817402395735672713013646496816383043890553205219081537465506970990952620096968627305536445020170050247664473577829336164612730960153882508060724158611436122886735414089836443328015384162710472602281580020639398770803853522256664988388106323236040086705107506692286358249134464503884773517259308132303287426684423160165986562185626364640699501352349938731417924701925265231565257983112925115074774414577911258859159730502542026816317496701270650347462251042569598156938316692492436068253552334206801086870575833235419002304561773230786262202193976658532101084807210986174761556910157599369307701812758245476922742430256019078818538922263471059713328133670020677688520069401925071659261415302006977969981599194032885159639077851798666158400958604440248406872896788359803569178976350632521659025890177356175435120498754763240284283957690491208140797651143788359513538861933648314991338821650583942839391989300277626231348373780318188093061743271794045302210221312630516375267743406255178830379009633547037740775071965634780990492568091781089979753319584660633986355545314510202789882385109376436625175582030435037119840780151772110181310645934534464622323273987547887389700009977346500167137254660779978209926831556330692320680829211668400063400965098604654551584534232634053384444800672802445753437321809234433379842092623444714876947275359336834866262118974201723218254757257343887252836308384738479197298308155201205375086508911053860847587194646148880612743108018550530700168363210713973715191562056431093311606793322307243441258301425716053608407846198948957507445614427531301632469108620732955537972117103604901615781528427118517074657430048402026232104381789500162398745939966495192799583834309543633300550755027254834811048083978645973924187308639192961095683872846230855700065822142620009176744115828638217294953460317681663150004157268415666061890299872691036436431346938355131895192862338253288988252674359423246242299084842865640699198708212111320304563022805912216272880798498053103890825218812065031630627982883590095303606979198347093283394332250008893482714391433919341074709303184270982358091067413248251414106237992595593251488677004076167168020579818423097480115610464397118447306492375118266804923570116119910683659408609265788467606569797009682429628168546463149798038289514870586225735354662650037304606317502591444954907741857525993581985736671516978667746072088865567470335972633580028767011182699883514670063123239414311683817980955031120038019986705788570170738484397943503448977803748005501701694057195863146957247259536501722894139750875336479328251648046895988044153834130289369085145550749039988825219722624976538199687301477806452134347067934553216246731457494072696345951271417406799209957860570283712470138187340176009414127877959635600015784975573816684550011031009857388805748202284270945863876064581765746876034443316301467736625298798747423264478946769261402539081664185893957031250621152961323232511256780826442465739897496276755933525538137407299737929313601550977272780663962071169991760067544421195657358554791493013225289124258480774592876117506613355872839512557494490249960571522480650230591666706519150258741557401953066171427795899696309871195430295386727548886219377689542155918128053150586261633799771676996382960240967818997611017610675414487697659553464280348311864380345935268321122882744877020332007161452717318284023662061336118935690319544482990266178468634445853487345606795893917589589383152491866256651594919308090750546374914777192243210028936703301449972426239593166186034537379181645080848169984952210673671665847979644498356378746390432196987278536462553012119597728187334828081655140718530204999268884742739105087579081782122592839162209921246089314297620274950986291455634196717190293456429736601257369261774430798753375812995429901508390983750000714767532980483339230712721747358518746958846951746831242162790037880562451553494569378643503202938707003634110629881463868802877115898520242339739937732778388470270444548311482619861648798669390057092818578178501275795321006972266202500904450584671394442555145975669388663444445385202327566045396952489881116374314564894017019656850925007889570710072183364432759293171894587913269601355191174396604462734030285686695371236178253945307919521329749458178739883639521700302397377521617267798466639158058504081664910662348106004167687775973746044800071504072212368049995303679008130031954414616002899490079570447360486116017042637446430225336676223560584599102652917127522235867125614328701478183075596662338461780935063359575255055180721628720472758042678392851762181705964940924746237811833458682801238977002887136722928453358647403252840313433169447556348296918760251800065462628849131408980930001508625437520459672030370016328520460213891907483538354881499733899179343021855166032834051586561762935883579118154653865005577818097339634377845755539775147773959561300646381600029501662004150859382271306800922696590189125281189729300173247857663876825154175903750122386774319065460176729829431837259487611880199869730733129322205879226894118601085016628799468047418605880212821968791406399456703876270642260280398304312158565034558922437709937269700001674734223551419600566668828960779310816273996053802502589943015059523377329605740539005987313947248040300780960237640550408864087806202956087981506304946168237815298666882501093687736806806106073331214195330415176014325683506950422657229793463708817747071399732422442483881497873803093899750237549892759773620841363529290910614231104702548027047930314389030056816703176849522359991094785436876585598598702266890156272900328615728542854481225037400624890445195723458959303125803816916342244911543201973401926355997613611917968965350522157325759242359961820625426180454700451142965180437363641692954734391715474246323680748973784389434755273000560710434593108149201372422436421562017024755484305833956495092344821548696353156256604130636089991157144052595360549879880987242078445395997737256573533524975570622889924999073307134115169655665968493848907352870576443780023166144258259061274276835398558873805324875528121610609884502242283596208444673069805318935654592204173937972845288097621355324707615727380479044725645119287975556340041551828093580152393791805881175389973518045940868628951609181675306817948421648086845659272628926748128832531492796171668525608444855389506419129048133179385693534688282690955556487962772189078348502753560127429282676592693053514963096465217803791390966251932998124368391603845210816810496491003270093177242222397388665161577436444121498099430274453162286313984911097355250648903375750328908241935124369827074882481881975982680306579935985648803263632025192319805406062355626362305762251168436398819564442859798407135104097742160778735011939920489389801876845762710269078170893343166062161658108085873178775980586936515106512004790067921351101020441787624065287908881100330104429284513875310174217776983063820291829205734682722551480618329290116758460170575757326861584069351940488271269786370201163382142885770951587187891037359964046925258085883110832389509901118437272045732456587727151570995789415040692757178631762520178565790481141119181001811907317881405607628300544153596654486671544134692533713908734326330819692031968617506636122539901907648775247776546354271449138912538061821916005177702177529295891638323490803943684458341548773484895390925689441995040214716522638281274282692574384856292969144804616118793280433458142620901768344099293215311954099928440945070549720585970265845623979820170341766226956712869327429968342108433130086674811465220437085949414738589750774473611597322412964586465659026154662649465800102998952518401298146272684104144554642107835867562081026051616242462705692692664227245412648637752915358375568366238839792772955919289057471720590277959940108518822187972537021465529492210756370023530816069926215211588801554334557900655981768353499773549672520320832029965819536464745751127181650683782237255065405003753475702448099628001177165762972326533726049382966473514688997829627611912770550763438888850697143755467545280953570959200636307526491575959659436912530139997497961098163164139998660309818900488776786247652865521634155198619658925090199226517645260002113640078498336710971047356030843817736552407265879346499285548461125096125142441217414634820296532140086107362569443503274316680174941942494370205013989436387478481819162670264580799263044681572151676841835605851935359588369784961388287002846564639100145435239804173964990623737484220469248364944473475923043508539707543343803059506096600020117170755322155365208539410364141856099690717853808913795032189402818508129181903099414206515484961993689460965926983965651331964029023881731606363097120699397521451997916635057745041062511596936665125518761262006408335563102403611221602478355722381289975397253333961452166611505426342828276219760777177185813167223120096179458672762697099739676343475913120546115100991047610844010442867796914225775026097784116774810991287026792236247232172490275318704893485915646407306374899671863640854811867301193140025325895398158503041345300952437961934692599267473300023375886842206143835729808141157136098448667491889567240771085429202482117372014559319333278431664115443879748969292452337810460545976053606032651907403749995057986268390909150678598646223108341770685215140416174202118624604763193590295846347478343818736862661317416518195800739355780171168893914589382095155238793509075903448291863985941410389668533079767617398161771538142254021556410359912227937407661715510759484589883348543439721479464218859727649680199330092557903728623438135947573588809474461786791644183394052197316499243653583911614359127720141980005635115534762727881486689037678743947763861840152586106443735323951428209454075684797309255907939504259899153496165741932084000588861511862281682714200457091620699273487593656293637112637550779450121892568265948861672733281174441921096294073338753437692433780658491604932752284281592001034230446089013436224431074712771121027458004918372686676802203211321766772518125788421573395883920151500706312220420808361652072029058730493877199306962604906023989371392199645558935697538289695937591291761658216820213146099645328975693986699545528636628536337575546035369042121398511740061846259415435452899758389775883436681077607092831459741172699374463250760883208221506688488676595739404427733964608770346169936690074580596318202895579000386267250270917248098208753217441789631595237124361157690841366849915771715759675236635201040072183972244482174786428604853262691979317813282680336592189404477847679118250901297167677125490766772279616164382298184333071721462560199633387954666980113066333406087276353627480746116019834983570383987241284362044435621664044074856167585502123656002958633316783875108509890927238985135912040969148222483734370095183864863647222400942906055663802076983388980518571574603942033363838726050433125353766249377385826573933167850575325291445928533547483288547143586980155140841830434092459608359758571703593852244507587408468065716342645609621704435619578641931256886882382893729648277628228556310372821665919448245283767489260253461162176844294656256603654235678626540166980343492400705355184343629061877562021992187030731022581037252591324973615799372117208117876623498178986035403780392259900792705294181902647859206855807255791872226494788608856739675661290993860996202792746044213537493268297577477060240476626768935119514206008983376898609130964374850373684774925178091244492957982588022464301761085022007586236454081873386287857283265276972913416216724967180814108999985042958186739602867316237892686155209945830976555795906555357323968056279716539837099979168153840997184933743911068391565250113658349483855861736872393012093256705495514687142398289576502787022336044394324399991125377864411302076199761458026985410750910391252972242497220714383698809714027782626820516923380939835437840412759150382932981240930183383361989336769563703961414649258921243909518477052073929842639528758813764998565979189855312364114723725566610426546756371234892609361862053364894916096478938076536115210500065050282268605281973255876273811131594652569230216883669788382432955064678152342738927913743000975387018520431752872563541353884895434530551091130190170034136567682919951705042796492518811362356333482484951297144840513581879798865359090156022927599480667187400403069938288018664157590909641517532948257606804728596516456379529278306602595754320860543752383796897759756242587003679861124658724216187186076050146819848433909628439076517100204047029393400238009870251687623572942764519094858917736987279200736822047356524014528500130208218817514093442521425383894841889583958399202608598823860932498163815405480147979675885172655158323018500449525942018035113339454942988589966468522437272002973332120714553437605052067760757687923061461109374483930574361826158811823278966812968397604437678737085828667676440538260939620078084649677616865878571231541141956433994601805184686891614969933234376078284948791969888379584871226284026714165363552816716170021109483586940709935967670989946704385829132894292175257615676186691444113887791768004592960001514622968185367048446026730990153240746868932746239657208313003154034986508873176089107101492866379861099272441223235924823260978137655278216284810088087053112128546110670469665988974633128359523692220831128094628793504613550202391968583025235035387402306947905548004504634138864442767079563457861112295285047663030172339658861933058924460047465339532753113148414175729093064585659757296017284416869344919653855903266561144522622943226876854256749617782744870095949637931258960111477876083568386387946839285952989180066038426713808034334151028907910875848536505596098099066157042449379123828081593432939245574725704412230018817256462064240133271210704870657958172779678769642893179325869622244287689179034137495310291659035191314161976643259916343960169181696225153350310068759345982363968522377029744512881640150692387409636847329656010361342771146737922470304700795239877590970797015190198966851553260441323666506118592375524200802273575984494294370917145050463590497890721367438976954682387497854068763673402167522372479504857167935642743361804981146948853446056614459968996778197095565608082743713352441210519242001370148810756272424928226099298272134840405218353924469818595554537326304718207109028076907597898274500454463650426986142036124001736747332300162431816800924646306776346890410560257987060690812798424378620806218052721948238810094424148821097974748614263009608886794821416176160547850287550329921839878192387669638094601901818155300327751413570161171537353509248087068119919634415243602487598834553347710382104897112290136057288581915171236765044588321498412435874015778122420459462610016379426099927461103945422637298494816638161680787375083646018436743541619435324284085352366627781556870046523208280021860561875265872813114817307131444547857777308399164095385836374003477660797104277303051082377072702432719670333524217686417317957829956025583952144949891200899323309860248999907706936406934395800892426348328957890064187453181689759889207648479627429443132461463065687796283300104408459874726460998908393627169176379193293139301526738822533877632534854455116163769727375757579553525959542964263034004579880071325346532119567867203376327656383891406420667380729329806152654319855319558631818279123904012209292008497560652652587982113884754233942723634774532076254466728857582305155600331509626999391665722549049018934656943803664682384026820696617995967615134463767114023002065533321502633024622724784586310431285973570917546168106654265152267695644064240368485979863891756473019000238197055723884111053390271047281246636873316336080782870685165924759785722503838089855211802568643832515846297092928605975981577867437558793724878391275338889512331895453565776655047924708798699752005966801592735264108916740763665072235123320174837040768423299973675366723158628907232165824382874738243270870732338077736485361846944891855297062498848466548013551064018033584129529724646335741131785319968373144872136049484537603391912155477243992465318476064453492579004102490491846495400204131704630998198904877842378277334641457613898896691795181267105122848902725882813918120106666376832853497260462526595066860663452036970879424989600120185290899749298317627963321828168918897243802958618720476587692406527805571304981443597712420999631356392798089230641786879795437203807412150500808779372751714582565323826973665092586776345468943359870635760723294199007151777190308637086765867617951102231513426054585430290504827770362712335216880978507653427556992838345345638681275695377269382859278944464989391029746291890909588900825760574274381619198378534346333815577904317792030639361438110808144311525186990593458613781077879222243282762323687077369917300655556191924894098529267189119757056559722789643353173883989086454413808575046679911889506912163240002664531303286276513106623938705848919732616053865348341092041315908318099653627672531756584203402602785483715168547917208503775963592840866119796829759617568817412545177695928654923640161804244309260909236967932877653269199907758231866961260823485367181676495591706548557037329801078964286787823764942173588136591519803846889010356721556120418151981447139353680592391830090111326407310628153315299143996392788878036226733835027923285173079546836941544721395388830877283488186626670003815084488665653494993275175300615657618972298833448650258986950233161460181296680766328744652832827388730222364921869811535357962218601318766388270632863564797792147915455742905326604402042367310689223917418231127889273665894478121086452556198540382669516726076739949011157632330655177309960679895161063457265897891813461051724625161002337016514726185706038373571407201626088785332849705362381200658943561810670327722865587398498961626001199798076013027728865962693445874268521171722843029208278000717500685777157022267912481563657899981841175315985280409401901433160092326674294427294027715923458114667364435313729407922772861595862217805528234464434479139232820378261886345308983486130080489700600346116264581783850991794732232326222775391790806656951818872430860312750053005383950542218682390374191304934129664647432425322326656698055077527390453696016498309544087000962009541067728580152888023939783149328769199684153954940239022932861704595348380936137832242913737749752718223456055508192363260236831826631340122125775209008089985282463397234661199285824970017864095625904895532263636656351325071685369871508291183106125863558652309390687750109945547896665483915874508525979515302140600419305050041845481966916002374704249354968147260245485442236952774556716374577789913986551927525425416586112303186462139137667629701368876696346331978327620064038372645964819964857248453623591916413886734573918173548987492418867566182199701633474107737693763948147762426789758388475738030559018316426738771887093263645242908607841234373094231185280731825238207855442639548775408782765087858957609596690780992927683935860101991344032752970305581801392393963184402712818559779607663264931351932233952259369102524384288775639367859894608506667818400143508755608878628133151858607621593814771022727024147649174804919561526456776085421806818382557775539965163823071303390117434451972951804317946279128665751382194129358562168387290773193436663155872308502268543773184113261862719282330967705938279751377816522959050077840515057423416597135156271598072989112361509270596641772152451518925107201832370546688551126050903614559168451265449104137508170308622443510161812041362647774197723121291830947673251422722361261118506551942908922744310782336293525764447360768614374883093722231639450334182976099666739325687041839710446828460368049741756739266030917397859643830784610782796463713112268620643245415763407227851121693837426835561580353757183883773123754047727613143267360083974522191962921173390671679537392087517322779387144788039237439266909813866612408249886456942584907376346272135657429671103263352863118809167131545093990198534875713197123825137301808745582270274794443444082403808731942092342568013789862536868870215141326002486012253952186702023172189375680865106809124648824405552138406215636579187035701138357666760892182359448834408480444282273258212899845198961599357105391724406935694288151653588141815581765880133704761900003753582389023738883766214615564268494483883269721892097312975287611178300700967044428545461847630623727164813494356877348884482542649403363527757206427874917141841530608953509786032326166106295409863162580393716830981926973724826392765379298036332166221391723178965665884697482411582493852088644647428206586800013825792317267021722929517284254391456728519733172406725082495294528993038346117096277708313814120015759452973331821489014053486856068237007354519839906763933597633412362659909173451022840879503982041077644194067731992578360914459134319457450776133941536436064265794647637546800881049812287000466210914937063882191053101814483946151637729326852299867333734742365856370396237631899293017810533459277469099425158835399179316356290658655615468409999084616781273502824761944398871584475121062514364374128625227712974334379208394204422134158629367803906356179409310188430497412275821613366817531192727272943396261834849718655573989845267646667455332736969127038974408598704295552058151619560131273615379858005630397837444607579441516433158456454387056076281039094772531012244524094141055885903306933236546565551158235724120418352106938796455535529134256847402411326060189634948340563039982910697901639131324868810939094982714868019607551210815697538344270159536101161411348528825928996289884789012586187817420081309540157681401605222376559836957397684108363579075438709306283104873095865992676358991399486484328645482636631344017399373903765351758714902377750448255184852098588919694354653363087431983135418407748498134835932259988516028694648548943545178187063248025982761439233202752260235515375468127322614178798069952731405007605201841269343290355796338725924950304612690703229329077200067458362840277617064392326698149336720266345819907163578464014690492394434788177496364387699412631101758269802941175186479783408168768825457257135766268899151257387225149252930769075249086696552728089894339517216535244354927963887285731544830131094432448493625824952949104259811753213035795745320654630026043558397620997399775182394491128110184242778988216368411822535661653732026493122167708451133085462738645903892573261022140121672220174179575785883962776163734459419072718103950214935372130544956708472912191409357430631985289967756918665857077209569653035682263564573376034834129309859492019972989655008336130423938645607178086197297521712490020605995152168964870505357705956087182085235179060442764642702165376403562052342573987874089526690866994610107063404532596880090671553517701437171076915819694754490805606251250581155004003204261212360853075175245959303706613978637682430689549980253146054468935670724217668975885186222121736845937503452975006640903951050584625399015194545460752303858788572304409494022356308778772583348057154056544385641243411597573970092008025223405969808367164551787735632596054481262890652095177102476611011411362994761154109709905884346508506539146290511200642916110229181051844265981170496467586364354971969815664307665944640910395361052522206601034156851097676871867118960595289616472741835774998316270208713479312434316029571359903379037520910218927756471431571939879331945828780812129895826726016175124814617251236203044292164495843856521353061923518577842139200063943717502595383980811164418768202743453345183405262993847917903999222139220348846797839478932276988706209655297912163143974713261286843165768798302157629156939224764532269465553302115093334806303685486771190659736712290996135145509892714824607255517421157739305286737876867765178798970509710132775489063315641519509023077431221940942524982398247317248334662885689831470398607990523459492513779839041746384537204977610965966428832108862998678925908457893210680775684593712637212217376083776508119451408384007096985851445920938022318221013182653860740416087111319766103805257159461356226554613487108700491283050295099738120412860246510743785957547632470493241788162706166432366780510225521335643558742169912605994583342264856397803413670039519619558395385284124020962372014529083813877185940377187428707646834451244263559035985293381430033451655430897943912526513240548868577791748225880478295352437723566557085474238908458244754079994218511631765722769979456284585371566279699845353853972078504046803897990392120383482399118083522609849917147345608752191925928270849440658322574677292276124032425906698508032451797414021552666696585429471318234219909452440956298424879645459162108584934047641026642869499560589273414961878759214369438296786367758533444370962358168782042098133708073118267958709222463018345652027501471320216582839471472560981667239660616001428453781711393935686129353010569802461145934178537171775114213101011178533190800302145743205976582450890587673567439220827908322543307395881496894041589146261627439358540594558761197055250990812197316449669793610691962244748328360078032687393757755323158274914917942217961771414127049473484453037901390347698127589196005892494130999197844818664460909256368085978711255000761094630616585476929518623855841814987804001284226256108677761161438886080559937550277437831033335146797204135306337721729581880916696560775844466450697806117549702088384307253359507410597399333037619624401787337201047755488882336071183729832947209597130117074399520086435731576559646046084567419554530393856917006609159632598701726285122093759960391021371636654797610858881606211941744453966961167322355879714079851051029258764235894270171741061647036261280624319249827958431213908571579664812573602325064596533855158755381475620332987507011184319192039946880413872869437761910575021498665948343966088356714761219356039917300638720364288080655845512587285053308447222851151939540264468265888242168678466394220704148861290613495923152626855921531433913557895761932316912377427282842595063136479822571747830186086181095725540168330435747975639234627111750337729935141143988665852797240771762444403998680235366682023404442763200835890979215945494705321403128261592733551034919254307578738838843367946726671225314355979593443688533623592367896195851144515995306193495781023610385160483770868297842709849855219545202847169991066903313543657415052460696412438000260281853996005414356019461965662103050525300647448849074911532769731079762280496334383946296644687883711488157263424814713590674840500825404539445878206743982588914213995985937140967320466504833388539591607688557612080907434667632667716993709911724331413971618759877435543677116569498635264214397761913606672317648347658660903138596704775811882892627156746400089966350027193421611615363136072084200448930233419622230636138868257131259205135637486146700390195445146150635171954527496606103637001870654277617640363296935247119230068185248752938539100874355400690058681343698907062684811416731490776712861089515596842766919700609147786448170710882400456573559793239222028651919617454755851597159125591506404209612648721835419878675330756610274791263145112027890311889688676990522416051139219576910599851402919169991572467946613023589520764687640008786254065631591019610413446280209301564122977790062292479830048278198173890389616589830028776512937163451124787421975477098017677929888052527778418694148235848518281382909808872495651412951299987033012677151937964450604567346806928742201140271287648436603298295128305863792163090194948395766648867531545382421971985243618557698833945863841761502192412464883145049643029513530462159429115069697706887808655562831703439277687486075094397059681817374497571486612427527813387858029473967548696186269434486756944177968311500353817889854868959896227430730407278819729965327499851944518775827524594967486625951890977672670889027031023939832006167962335111459944316838063569918704885670554157203456867842827392714081632575531999332725325519447974407055633271631039644720305811134003729632067016117384244370124910971654516847415817076348374967267421191126962278918210124453345941240208346600312507634247482796110765248869002979626343895387943264637421089202742390791720626772060942779600942283478430847193743410784005237764256736905181474997951946277768484812298255625303144365968864589316301285212117196197044586722901137086626011191848931761240608232583901107877820877083530930812151274331622837645504374734639043886740361107483677169249690687436883898958280815618242938292634596222612284160225392609180373088336426635056822266992884986844430908520687911018004075881402920486006687436749696749167823767143705271508409094657978651794267396722707908858199731189705800712627118050153938860076124240484880292413731412205885190121962108317826289792657459890690960801522301220958566580128623999333113267058787029370603717701567698445733059591312330886791880561538557302144588078263773744355216018035858445930144717557282489666429719282346891983373005957695712992982074204941211400590654300547743193546044739330426223554683005527154085484029329294962785536553612800940680716220595060196812841318425416221485146978522040563651022511597702753921948011885149456662748565917821017581096664759517558491709297542216356922735545111997858727738747907543647790889202237538780265659117984762457203500846564605224621744363534841114292320106580297966810086104794825499452896720958433121510858713196291629844834733496435343629290161925415033458807740800532082165009756995274856675992765495204313710213697431256591471321566148119437227800097336612523159960990312004037864984361615505281161003563542265662108914289443013169759215682381031370345348052356783978766373813273963236250651602034052138156745589820280205377396071629407666159971293229155092205174905613218547762347304806803424370421198694839830641435328431984455936391403594823661940071323023696762168895293795742574862857603963167213971709868442348739560254878681674337496120246338200077466047057437168118774526232113199256141359895403465812374124067047565425687805970642840251918582404351763584065235587164415336746713726422213133500323332893900128488740782923838388544675715353745640571497116631940154781065421977825067358984222001077222806189383944610609937963794616594880158627378110624981529203209845683918675268147947650808031155371726438432470040997368235800221046402983922926319763051052292579246942426720101836767001951555348401843403416755016227897620274894172113120654832193397248000410093877202322909532368959637958129103092761338412121112331661963330113043469761092372290699140346745271290451732778990487062314243154504990704712866802333441609966456589330801729917339090219996650118000195408793389037706834245419171249286173706505229022045588708388072065061060754301653212527859668557877527188674102890852808348338034475664642071053559505419525947200930913247228328637640014463081753486829119003924757954540210761896116032725986814965531496698477230025573664071827755460646406630729748244296307293416481774382275757986785982388810485193823935046784531711120903869348342381597711916941949650763106677591455033497814210203905931706366477332625515159289718723434793601432638237090934033397882850840967344381794659365411421552534742048541391601926645429328446280379002723691840613996231754111461640488959079130135010557543283517674629341720864135601000549252415301041539463029690320425101487665236543142668713525055736258939700940865664337302045191692367752771353277670164054452822269424119712033027801521496671081137068664291719261282370127277275595958779582922020149054556233172319250611983314630852050629530682976664004049927659283440689179339209615554728382810287751791919354727191058472477740647020551745597813840156404175043041683328359490475523018943542038282918960857591218542710504048049163921309494827511766461719371580447161647495788895126112438954050045689150618353082312562537294298791489259645511718090545793450154164782084864399438791396588369109260146032204436951145509451755566680150624199294598880958505255559003306991352275977528965952821850310264093081991190709073478285522622207129380300860222556120153938275834342034292591982503285878235426185069173262718260306509418464018803824974986898098852731744419217458199993697945942285625774041945807213227888762282041735653990550896713248469198728222915880300004956608117222290709046938582426069393284972913826845905536068691618614464469916961318554736258678205188520500605145386234902246897615714043351483694692031630013051465755503604781602944527988179892171028990590205779147475861363601124464126928796425309564450353663794907839557555553411724108618619545351093744872676436474930666222989955871227133558117750639634391293440770567688226859454504963100087560982299655331574248647826915906657270146272309497721839932655297934843831792858312136406323517735122139555184515641504141401977194285912789952239392041492868546234649002363900507966631189522371867279815150089619465061660023940908172709522975640336912130466900503344058341397519982096722021578955605179385377645058033111846057924538507726935952733915779253386669810981999599874479769101782432667893632482324976110230168231488887815498641535522446135217751441240846167936360816346401842289847556275712737930151281974539141828835874773493565212787546266265395722739788228850552527670350762559098084565917185501171404653587342924061894127379924851915573461609134173692655882671340112777768115980702921806975329216036046614589594554129253538685443874751214436205594832876775677764647283187484008992325644931253227725564837889860718884033627843292359210721431231050902017586140608075962346025408610912557867288062484537634038574069608462631042084281623672333232222848329274686213067802215100135084498955551775605007857035204369653069850242803208504680592611398464045880529616649875346519171791468905213168344776594435042469013100507915554673047825957608267009843050837351031706193209623397664359349937157472382019659527716427501333823248635038551657207436315943167125655429100016804972959148796437187736033706765553068666261350740459709888720898044335536662045521707643488272982813691718806451374336705200318264529923610975384352478751768548238531539411406848444265818876087162875989594574069792975338972387073768439236294657186359551778516572166963093543878671338333804268820598262208660578653188449017404711447251098289236319335892993242413517700665552563106164207515973310396053776942961396488903050761506941481893343137555788997257623166741904816679752635743524397983324004438187867330240170597998844213795644093618150768203977483341508733248037135248535180458855471913062141788568326178523943322821275591364605430252057659039114666685631396620138450832551657385382025068465059891526988700494848224750510746826589082201131910807449666368096420027595804965964089451197574839174208847284766434974657467473493870385116582068692655224461161091408203953570612949897408118036768230691846699798289545276782700999027987852668352758049773583999034038390511916364050268188107584465435038693212075850886970054883573650075332075166212266754836663652503932340549148344758938474893693100053880850747106769547874138129314670607086521698093287616752986960188585589987264120563770428141425982884115823784539081439928378805891574428838804176624264014386809397177173673771126999420292609184606139076325650054371894855547329977229739430452462692352520637732606651371041033407498956553800765624156367501376005525364756250996581718028465509326475276632310838502399250971969508971051797122692526847564509442971229515705631140088175260956149137190550058842699952515569427763412376341104672197543412300454966851593768572489857009788995246030167451041493253325939691492550067164291307140523896636774240548401419379795813888145166375838191209260169055531689128021057303320580451085757712242400911204189654742697098555631428429318700103547275454767212694016221924789532373688868521473240958969236815067285795721334192168114380035136438149552870122998690662364550164165533644842193533842528034222352045606513089263782140941637218306292205730612205693692488713246244290110222997456662617968803078868873288511699776437107556453485834375443471897739339253275701847448864597951741254082647725157861471265665971951947298051373130820524562221699975359745423819417288167221841553568454514662790926931431868419386800883980357551940472333466526818062648889942765658776569412926254994294152886688334344929987289253262418870948463668105173197504180236763569328809848212367869116459225498119401375735351511441818555967348167515411447527067654031083915529256562004274318329213908327311441149861306957200993156331902778966238162364033042554151045197565711354375283433282179621663577066294475763637491599919099909724071642863608578438085970875020904429540029893057125312089269628130715997385765233221780195809286555734519872154433171001939937441022217143531190336884907975753316932586526401772834448914616167185853565532140815114194676090103035593889853334517534886425356190162497948251423193648660780602084816401461096979888126732189598508832068320585923486045118160817946972750647017410235610459331573391292507004938950938702990114520622178484330496387314990028375981814331308641871780121323232531466835088755945278613467733401529088581557253292580952022742247307287105800854149762847414250070758640536569694309192625187140030432702354167131329281883791191479325917445777830689500136894877438009702922030877746412556561431649372857241793374688172456453201104577715868300919461320782611404606979286841587822018701967579231058630176245144605786635186082614289555266702934371758028689086056584344523039807477078616497256968516871634568856673382071866886280059253691771148887641716949338927296162127771293367699367345552745769569607538054778483553966691683169470627144281039476589364479882831517011168055437342416491559863675295755722673092453424243558163587919635985933727997970331127199074060854523160879691770276650597539805512397033118178363842194398552910596550736275700533837210410159150236518400680118805498970415078560436570144791679692737340580593487056126705797790786085681879259901870522611787900172180837814049219533878698190646578860553206712736647791462522088975392310910061050599700910561508483038609083466119168542083793856512664119912582115961776420360544614539243758700533366948091508124728571208304081243864285342427301077579768989429445132903810296497075931341154904710734534888271610892164270166360188631634075722645921869025948035858639661541913815351814425817897889540932549671459588748370082123707216873965589255512671532090791089416878840913181728122838809826651992859105586972185540236563252885345801037796487168973983599398301113634742389039907523946359649504842694045044025416663829783836523611045951369677784079436055621454940513278756747818275025264720643570875844983100236416101743686014563198246993156618893020163540278659088291748858543241650718533727049052957646526250334503946272738874025100696506264615280975877525650911297864868644077298057381550113473935398362922440012122078800605901892146946299065835291170879245539222322641721211338674557441055113518914673819633766532495879449497843906648210355187064786618731541593380586655621322711923018687235892485494242171303469096590242363801291936884794354957844186851370069492694269098767759449236739649778245554861743248547440949742507421485707287443846061292607144110493237303377455525842509126979838585876752290462709231645933713753201456308952155106925357796340331994810803608655564962696573820624140181233864088778417646734576325566616793447841864958102378903747959337769470346392467558918672875127733544529288194025011622537502448614702800545964497013681284635242528806450954730990275567063483665123432400636757911352675921505905752630619513882550245753621205592367607808062018717898009169575386411379722447004283338038279692089721760965209780864528218970514338191464306791590955391750402613382243918405342123275830039572712655055781439697094530469408076322202859413269663383636529056661381027846085614097253452700570089398364157728999925454364924612018134874290739985618794584055062936830149157861422643664322928075820324760192617049102402105127548542960377436882292259060230563883243301790099690835807279506152180552958480559703967131424286079738493857792502574503168260794293716102973543072451687108010641965278520610107965467476073470316408315306933352934812995545735671794268956239395610701495334870476501216158196772916432007450570868174688888720010568098867879368658315758692189417115547031610409998296456693460166403198174048820616756819786555068736787354492126050571940081547570282339122591881553444970502135988813423067116390220182242356845376978680435882626356269322371381570917089494812632341200471144894901777723128851574505583851958726129795298089009375488448172683290210855107137231878563088148191939248295307488483922253222865413532300626632087661110222778249473380056703773286061912014208052231154792763455925856603313749100668646367501272552921478543979843839831114165737306617623392466747143875665198116349365463140232371572115344243591256872643452145489344403242670489879516826538801510868263352352551941540969720198817457961881838255430025061602021218360098474774758931680357033245133375095265919450644360478015066229806790275554310966850812523448382144905751844392565088130147588249468388580209823374915916796148836034302053547917216130398866137437711221160305343164300828013212470962395921830440969818652475611549252052425178191779821184496838215426063839536194357384043592436078010069865451077513473729375145166382490564491457875023311254930111490253309809666046096115560321325963178754635153662964017457494085326654415409503998090316300467700290870165740836813115599299795540430855176164306854520562764969425612084715962835506017752017711363285405973790740454729986179274142135042948466194675488799475359121830357834604907626932831062063205645183819699592893150692228809519486633204641569374400801840036927678885049496199255983612774120058236432564410342814874370727522506413087142703463416857374654403052205071016495158506173949919370761074821755684906691069394585286369033129840137643660006227320765456259591286932893758981873478884174304227871947755039717659228795841724711025811747451020038226875374566047016580137411584403583609401986708005981473559698423007220933323648574270508945944034559797864929543672261913835597758131832535324345318701225664096267516484724512926282658166404811003826317393326725329809244361355027666497339541101726194485874972037662967936127633555505063714094356708364410252697939728533675567481149768945782069891312582656799185189220582084613022737898974393806411963019659443968128966650690349182871656373204909440496607339416811400764389525753052665944384641491418267554835262864663474882349828232552737151318986678916172504930843564382217457391423566979288135768811420168241514416936233523712476742412674806239016901756786286845088401994594169263820989253824311577909598450597781998644508902075129249840475720023155896730448207749839345687797848161228001924050833668412370673856689909088164769765399841736037281339842838896948719845826654438425706460991769978290381624384934797801274294727263490598373544586046767537948622358757915886895655048944220937173679737258676188112169208365635059479363155452500492212757393172853949585682461345978283328994186391907645391488136838328200046026486545805521630838097875265566871489969308739725986719292386848042420263876132136350799373438365920647156954615161904661221596698234630217625556674444063361742088569689040454312019625637490457336234831020739341977358738269383678906173891043739716348341722211758495057251083019413578264853601880788745030188365495034753854726720019209429603872623514565416039941447662626013337953057358217496285779400937666617355343238957056243460985968348676463956813388840427342411583664108334006620600847556367074155460456989239626476396636239836610932134362369255200991992024507725996427108860268586947797774325014890773376328053869495235540339301450752596367576381318407463328464776291183695092993965852773488100314971521698664695316991291193783498817162718996882387538110114313194754308848331240199873711925840205463395973879850010943506587472167785680989224622733961057769419583657535644563099578337357554042194885619943528281110221368693990448196382873747945024935142696197519621935581170332000986941933707028298347010664678174672310963522275886408842145580567994420990980435753984914280769428171893868933047023846885976136858256148644830363937062618071038005925998996046724851811306755919425419549874509687351088419996347904558975090104556330529128211075770370296591311309740990993348094687291091347314957141602239989568679186037553539878738253658051869861389083691099533664569071356833055185148734310868509392111139760016692091089825773010215245705387164182012956737383431535630717749660509469874763946204491460693802668664752577665027293719322979581311001904547222045020430027848809879379220519754756111221980800375143178862960547136286037301303935693630114425341248589835288980869201340934883037829077736365575431242360275936522824257213928997643526322164282162141782543745808010263734524090630478952814253622651448463702868593483859091829901708127364530445251300281858647464208468803341655580035652783713199886375915298798189555437088912076632590730584026404656922584944077955425673944837746139483249475861522171639024746221793215119236535470401776967896749465156773144991374427824689872168836404729820638357470662077589415711363091915657747517307661929827832585157321046760703695452826036309799266925935760366816854510239905653736360588229384584682948393597159085434158493196509428771535698920082501798133268910484587731327959322813289057454549444081145332008881412080077904027337143095375367155731289893816729334294210217623915974702156919046509535935145785103940536377043196042785221295498977818381708372228325215781362732150267547908490822105202897461437552117355576603908233824005406597414994686915905821833247460581120000412032633726818208597521989716056290533917546423217619784848289412897219460406554783484563953962565941132305778477175463864529775895560991279692505846238717295308393259579608489947304660790372823471619332068088245700774231891969970524461458242120441285551011066779194092161589079253082650608250341358768331215427223538833571745220222788258648026116049765366365006111616336985478201425692271425385938689353629879678707403189958358290212581164666353313594885137842039369315715021977138858350856526989133824009496289520637292241031356372017361327126387470974172609028860565056788917391386466865415308248982466481520120534482352905377399641332868911608766057818694425363983893883795818523654658450232733797747709520713553097606304339106614964617959786916084409613185456114940782625491432849839538227664069099959558679895184688182830191245220475592227385667608928939962106054338579934866611629133813596503921571163245862868375170857569070383626063826677785082660585816369296539370982993126437010542529225890047681315509395501606235609118195323957821035152199053896621443698279301561230581432343503874547283622756904177166438630221951651149896069788879281246656895373907262540324358021422841119988078099176536622443095225445641046288216691553652172482591461943059953437295823185015393882427958528819091871285680184914485590837779650999416623496479158240431861924353342192125124116535769317672322861771198851778181614917675801451666100212991173942624522791219119316810240719801228466194999316356006172919015168638431831986130401180703477602307021364763824392662135112342520072139526881898481361076398226340224826770923606440293190251389914338895373671048211052699951313211553175272890127436982718462303966043392102418741965901345666591781926031233109167037408428868847710482194793789476718191607334067530852595827284512489827383340240506185399601426941002331180280349002449489409735158615985755596920883004890211143260859006550330789153626552056067558926215403212567827808179577593042816224926844829621659072004029282966046969628123141017552181122162335887284214611205443143300999293192523513203098309587677221119450855962741179581354075182226544629232117186517723816097353459739275408691897025975289440160002603470468865240049984506645720566669489475086980455002051850488291685937097379254015746045278894374368635670740546968348309687130044222805355785542617181177946967027465779396340217157970552731865324440859488199742411367308888277758643226216362545356695885267636328973212831522236890152960581401267264654075639684732828550609444250042597031370497350880552472249053488689013163069693804281077829421002027371435613783500393181307427664482608402424242392477155450204133690239877167933589802909155736414283442261138197682322443455454405107143738473697362753343509381731046346800214834127397009436372199195877466388245166851317060571189127916107998786546504693887790212671233133278737896298993500356028016897757224408844365957858194151939605877760259163772460383683839953281498685683948201267243606805855655585631884377990511840887047009808139583204706577898627097812065764183346835097646903241307878425374766669007927010776301932042202236619462284923191266693499299376689436412240081720508343730958341401418801351117124597942032063457142733732473054301181013534132791813405736123147659323100831245105280869685992057975744384823400934350919598442802763742135473168664012347221788468496022270259070022721871370738319498069252194208273701274858923117308586771594131401082422897692294595358137060258768196688435393445699015097524744908379988804693254288423519622126341280117721265394000803129671353620908154434883039827640216001342496085109405185844286738399467864446355808323444689431669599844369652783920306823094011608286717961383993418818466606380516828662932822564677877318277118122387095544353472202343742129188031440349101864693552795810175862294723478057023005783419415311105387727418520642913921594141987564594438452475642441596705444900553323024830841838573450301242798506701253682512963308496088470767460430229978162593887560687095625789437729563315149237206756953600968495014542938731247917032323510128243468817919538402357257555827256223086977620163064300728392390112616541507990105679476449018549892832809602983916014569140733805691347973045192577503791040453361800130310777273008942195046357147622165563231276880139718355240930128058969210671012673092292581427331490289684821111441389593273701285958484310944525017024179423850710480406435136491253899424966345349181931587659331499186768842316426770434501273322044384147688414487579965513802400301225777607222934189476715586826148082654801741625651914019702862532613510538273336224794945994073069260122392578057323007306268507331860624802701199981415979631525446948525972846860471711766905429460480892350016342143030966556300147788278757277402278728493227389786279824711480757640899322832453286902111919658256451871829754742169362187101104180138305907247460590066690077796501932396182946621505809639922348265852974415109357047423860997719413183306816761469926992009337455944084902509469075257120763435460631902473194701525929540876185378760704291272265291069403065230404836191653275605028359253358895124251624440649088213154721173365934927846083608907393552792563264858010645782938789050236838405662772988174101716884693319707144282620853841628155959654140974691038992421467724180778608515388429073501048728638246857624321428568431590578036418772106102166810758564928083722843202329264955855224604675980799906432547016085117315394454998417958408570540974672338771535600956194708139384772924349136632594654588354553446246654822418721119907198354698448760770035208373964578806415583198283146943572605069123466086753785746546110038871251405591819449436356237368026170706660815944758039837683104726171782438567604045380970066723374711613923384164304743552824339078644997799803466498018564991851742400898676305425014065820256089943070573282616020235792913275461077988606860893633419978230658192409280651517168778950631851226015376690187958477210906952511390723009252478222692908785841923216885781853250637702809652559442694562302785443228092369690387571405051909161008804242340315439920258495999938448055225091805325935546726621681675479887025851941351173965702636618694927436719290941402812092599960042556959293519619429375733517679490533385923669748968937931094452158692033597651020867545411521379549538524024526476879072076934880025544480162410175864535157547041029178511657781116982594110344576262539679266906562792227827326523043861069230481799044974492047211393160323192285312679867964600279378688158158664321545704444164370491431959513730681540347695652323258247628887193182767486483456021494811149962498947865221113447783624238009529672329546550296029707279197778387609610780977463216240672317463325082222640317834812068128972144595279393880402599536047285432918399741824578095283975566937158742859881214280034806107304510088993271051540138303887598789480581719581418146392767232419772790549061065103800411719749943917588866242713712221914824299589046619092061056692080987540422483131919851365764143241551198193198770022985251908509757077818827346661604676125296226429481836048495254233592208176607282968382652277418366883159466325964818174062519199138660489236332832749895530579061670491000173794607895430908012841397186671815782545078311347266338357572257109115060540568101407611762552204800418185391712091723531164392075818249011749905187367839836108812285994950468918762602769855158054700596529073842702587992876685699034733864592057891799163942532998098195606111984483634478766053721554491888859278962072149545312247902494784238672818702479263330044105442062827760823110590786981873840112067785218503550891171741184876121910331136206859929239010377553695980773392969226875164521923986955911838419585276856927943283717517445501358946414037537256893151909176523391499657380655204176254937985035464372355958340103051827976349790854258921615274649040740384959255534844476856570534034760899765968619035220735310736358217445049126947680044003445702398374444773688327236801184428152363712645971912612254765688885634362720940020468419564359959922970821779824586645943883148614692291050611864748929582115263120998328635012318620052784894156677647541260490658780859845128936066291399334638401563889080482792994609830184722426092406755905490837148747941486323423744851042869357709945322729979933695257849205401647252191074391002053651911451558037928442827457258145477506283806706757337430149572643879171058815385356860369921926799469571413168613882231312417581758174126507696105674942005924261221680631173069368336443131374055753300026198813558353870113216652022597580017552391372313345345004784705490981318095134944302697165179225269218713328678967239526858428366520206614133185091233017338629947790534717235931360310280693670332253140464980689030842937377476436043129456425955934499542684404093122380333433662391510215461373954129240130141750250984960658861077236202507012664779693746271069402355189622047077669075035840312527295066699530912146101942878737199271020806524637559709933731110549864656141319117196532236295273284753649001481933018968226813226857106234310421244960320479977656811366286495259771080949385839848616442500422315046620777292530548061680005064686834711982527040708358116657634830948778904273913678926590818481344808291885189514751213843264319056643690685086856629628990436708784513044889817372833844715171114761538718296604448387737898008989929346771020672864814740599561344589919881107822910232403965811127187009344579576195868774611450876264806943563142715714565360819727738721545841875748832481814294814440303926092057720660811748766589390737845794106734870634443772305601691088439598181850324115461664385481647105458691865981698413415320264179746820039390990156738134512781590860355223821103292720265542865384637244427884791700467205934543808445350010226645537320518907312057023776621850258842537779534529078679584638532051804728431704055862288803820677244726737702392944825916217214059967502800482564718055803519384742902824657121907039761813797503117287261049593515809337067188632976319771987280176148511979854903581872177650813799346592460608030545845360756635632433857361264482666781285409746006986065606048117717035927426515470015423824785630809482647526758978283954696939509642968211633649524342996679318886562488347130659087673964094341924322890332578424046878731365625050229242009985955572153652383984460478274115024494070608987460131121560047324183228485051816289571078640958949369504888792244666831488250868556415781535676893510690386568516540006221856843093103405231293600342412933766120252455264018078457525141694278147593235119715015340354170085433930588687040450575183831264791525600987746793152490313322720056747777155680506793388656999159598383621268724486223081129707945410681216093249586749605457719764689363157078747861200118127987278323945967522221466875093286358514489603168616160516689534099608076970108540758114882359798279752945459994014104206041248954363503607594830388187156266848435657637397634856418921785283995777075469067084775461604439373095647290415088402858418757486674225791556530850856645587258007188946119245034068757091694927044719833936671934411586813302324216584762861134807300789469080918869913869449286603664130824727496972692812094703044588851839918154494982667435944380664537851502623131928184944732080632758229963986804637555739464633510229632582800221790934441044420910022925148138364919420308146058831102625062666663787382092323240839142220086360305136750766884109097913266259766165406501831927118042088961421246393848754185888991796032534234225188186133210844146051755524365034328253090725304381965130370196161395724063859462455411195875685934781159172606658060445476170586613961408627521005951324569787531462842818867144994748567952199178991029081105017789077990028890336759056814666236084505929249180280830479792133948603738266668900539253785563271335143738390620048719911239856143993881740797397511299099605141977016225036493481423951261763550144839116365827094759266114471465410026318764802413718790367011650804499053344840417770162832235855534873149100497233816678596164267418347148430157845928434122729498938361558817261037950435676437653998852336765519114269221255679883887026679110682243380314634238850642480379660359877342395644005203650641242365391108130115849561628196735502858939944658159411746436062705128198777307412277716854830873743150017972363982409816300546514796890327328230549045672610713954678202477643319097152185418694922592485524377867926513919877936886729073144821112547470255055278795905448658632550926496958940681962361043770506980787492120333069223323493138427780708629363687444964537919223051529160186218485433683735971354117321550071083177574931007551710981205488137944063708452117863516652618318161237631538167884653123636384290669599950293402199047131870761199931084015153649802938456092687271530052009209466829681971949814722290157564403832998186530240314097115105219398847763607034499471300191279242267847610024646787089102002984277207889544611948381384180494764632862955810451482675404414405688054677630744700735915101997936557047237542171272391985529696574626564181665204362353919566915517564261219447728656132012480634255531411466400500189213162525237603104544215035025820387464183386318611656144439097536575463516652955149744058929715045480754464133066763874620324419147038482470262324296661279165390661797810929296867029209719319499892809384842659027798169307570214275486900661593082880086518209385719568266012349796635579818994699374196409900330405695241967945437006578638616773562222617442533280329280873979728514884125929073268095998402456259440701224338671954720908807812219599299142860754994709873059772695659723033512522838437171637150211042282391261600923707926734150718867111706401270505566288080648854748213072591813532808258652457329958707130035689869744293788955540124311825917418437717373609918100319061361440702948502430014893323662372757980737043183735753967184410261952380363797611583777899546263466814339042898306262250402256727197923744384158353274052784455399971537924744752923248871600557692348616964809172952377642719275072001540490123816541478288747540278529294439053627421404275857871741841040093908870881753569142146574701613888613786875876110076239196645220905916146677892838551386145827031158591368571361886138234967896885810480704094576952593469960189327284372946846926273584393639001083845859817821357508029867299626199436403945054316852059112930426626903999374600081551547660955047889240674771054251038399599954907924322922082788580923808940760289925539682464733891137786051480512663372120287106652732461974396008483977912734921961854875872792631207328984119247881968416440624193598471020648355461309974550177630555058436796905618888590725247468745788768918800463183419786204444911761936422630949853920876175939269552074279117326463525476962096940826353328116279317662714616902122192852452610762153344309682170629008927676628017898624127963796062924228899580586931578744042813139354725267952615606325839726090222647509683541359526599324762638734389815042369183837142395166045517169058706248906614888883935980984149947461837371113017146498190993957082159951024788749183209756867881268388543341916295941456301078136168889384049929387749645142917336413979962060727442792330864265891567610140968430504838793034564016305663513950277888064976126102407828492133160337409111951981693252860299362513872818617274436840634400724039601565344594422232706379645895891434308887512007058183013281895118799591278230871970938272977963778622552286073758715550239259303477050707273864642183823963519136135506972131768400904086136955516843503469733410973187564695931238441447960303665564460766711587927403474102251222475687992445811558223592718450051596322624579199587647483482065684438042385928648019744705714170801124011598679168887431469822378444778223917824672844460686374008720940507481158500756500233408038398688997457842911411377117548990065259716123699157886780723126948575447759467707897742064561889801077668528175397016617422315811982164579416923079439924129264430079296464931037544796199271278613885950788243962283918535041464903836945194799393350683369390901621192764379453251090538359319664327823979777638902192951329208521795405358276651717060281047996697022114954960913887932495682669624315590615566183977456805994946666567328720137666633381813811003175704757631998868469439560556853944247320056430996678621661183825798512202731276603031484398742466730949195497103849963728268403478644617724647771965089859970625976498406441474228645966443165173203555744151026774040715937569913752910072140428597876176872445420339350646811189364233972854103635746995384330840089632765973912044815134103684311726933697577170357786085922274397353593708295212495234475305683559396164567788667349090727259988867772120341178265834706831838650070036784943156352419382322893956728341775754061008642079530701358283707572694887475947386248215161287211313073609108088304722822674119372158617123316477560862330955478151516609707462742432131267807135986136646720434412328149136138292145876237558798129074517064544048173005213136692622587191438911671796141628504587485861039320557847970442607872290262344116990179133744642055603595058390657896429857000131625069440300543754497714905621984413866213432834145499752357697482660167178614879098415652932373988243099810186154824917480061359818707510798552073816057320340230584496567424471188436564099101853977274364186406841171033258992303712527566855189133326301791998767963256500233015250507783346676293197089532838530953064676401266810006398109324499488714976987403172056312772794561316222329669887529133396121117453298638991876111283827370831129789914293634310959184407515970508066581306712275751765819863265947347859235080160350045140404692548614825280104829703502353872301814515570169345367857393258278518874013802648748119710111102846838459201137185403508302006432645723716772936846257149911212949724115654906939939192068811016101342169825264154007231626759911882475549169557581759307725554399539695154131365677190541143037998897264366817565202196961310394942318838828087091884393774157357654648311016299540070288115808884270192951980558506755426029277348486748168057499039534994755885480936051820112030496057698632731751435932465372051633803144892171475683457076740421658368905178460369544788689223053280233933077065526419915208060281693326207839170957064196710219536967584386027035624824601287954446422804962353226832740761408714731573426136735767907721742829225927732281088331217998636609443913510619400693648021426629897010992262364260069940758722925505262283793453577586833706483710114355044339277057273644919156904346100338463920583050633099791374910003310704647532205973747569048239799776954022318482693113389826888071845615002305787689761117008011217999558725368940096861550160002684123875351797172710836206209015297641706845781444028349553357763240075691092546499123440952409683526093922080334893607575595964302611618434209265122589866747613083713446706095929597687545042992521105861420104910520218014324822327005291093982282842749225042021154349297417238346282755709005800674528530046873360379064377044584989650745489114177892799077936262573432472520795739662218165912206531329096476813894087407666292666096046548383402157686473020508184226345995098842822530845391140024268895297903462113454972791591109462854291001624178220711316819980584158807843695759733726903844931354234657662342461093384549759673223639630099620414102447838499466428994852936858985125158489898588818216323855813132107663315866472952221663370840298222656269714267789882229334491976310920917916460460304011744832365285185738754463412551181388678954723020545324130322452398505099866361563142885111937112897368539257121664044745718567252223755063060200333221168174364702644636629112827728279255309871796842709204988487621820645512245996120582630161390096796974440500929201531479071828692457716052353634785891914239345065304192356717763225442656312468140711419470451610005396924343823722729506107168011757425493283308594227476356127468163372423659085183595875891449684109622260824919794581156009329399257508019163147066858165279649502008627565420322908536903973864578589359805210906124629103908053792577184616314228130685732469908126362150008235593538857170262094434060649637533717707140092327157274424114982448474554168768798054328508310643230694083473196051493639096715448967397134407862336654542431047719377490173734219828791986099808912545040496738292936560666857108429100580697138924369093051800375403455843567228924806941425914152030036999879982308685051657850355501614505198066170714676708853678629470755557805013642743257037535672186847665909519741170066388956861058022367985207108604041039715121492839019145428165954283173443386365346260821210453201953484056294468362866543198833926626546249735156781718067889394705077277167443473049639491764323917618880092924695727331678007321643749955967778628579636310093853407019897999684956567411288589038433384728207846345264158844307727622084792349526789857732271726910238009960301173925454764156094197886269385243831140550055130875256245279198845916819424785092038442528659595267714859553150715487028859433882987434686621929694594939427837302130488637362805003020622438039659931297802050300534831646486645984930571351239668297457287173743064307765917798059182306295726434062119446845923213189447748254650619436739147072428330633613871255718648780085585037917357601318692162445468036500651300081780090515259476896904600261827147032453182114242600239571755107742646349720729608552351006996378347721602039335743912734520600316516816176299429569753321836330924442861484005749673726539920448927201234767266575401811347060331862605670158348229929114352685875446344426571232304984156222374583507131857603116341013932805380656153667818557325990418312012183164991072583667673800244201166679950318432892842362484357936371859056882441848127526245179337019620484056584385642942567884803482864693408259793465188893821826069256191781923072946357119044839107595809271525599870730229587201181656785545021096342482102722790646826990470102123838063024121124902800359039705807852560421423771132881511212783633073532930005270663360902505111218046998393255189676851789029033360517480006652977011676724929690798470387088759559381341794776977005102619908359595308519273106852749776057307257233392174909073319666731842128290481486863640453726212642021833786678190947104989681977930924993955983065979829092805071552466530472821456296066708359096907256725721195020214303970203366233055064925100836219551749747950500054598795262312479403890547154770517429550272583442258580623800938352871482346703322886847329679044798197536929967112031397054742340165034634593098243783271541305150869302584288760502317451613640230888593825669884262066710750887443568223441216944287284271229430278292679862497480722719576791307052019434049937490144991499580125861431467695364981871955782734441015545547565312757977936119685246413296981237868447696004199304873114595534153452475379388695944613358767159371570649325343280530805991971036190721859441389631477427159600689026152370350396640476277045594452504967410173546350482637028328351914772993747383725950277001066233535968722839994048750219770272441291382172685423206480936090702601262714527839547203066340693473415416659845266377670284271993764145650696105730451095280368611006665156930820367682790140350930164115168326714414121904603403549945788485914151276510919142072464795625754622912537408001944460894060547996311592011222352100010791221783380869397825279759660349866349433607509467102525889080761625166983562126042772010973623255208628716911154925572471216938290628396121240683747648476374439182852041898187100407020959507462452771100095796703237618822029213565796455364570004993996251806220436106171157466872578232960298938857273832694198573752642329225107444116831249681002684732511532010039163479731189514234376120212023644149466787367832615936737736932815851776065566258308142319788259933039196014199160982203045547862700322017397278510526103787716661316865632105713755649600107794881917505732147659242040906566708129152284142043327488976431940544262979679938278172745317267036541064034202506479881504342303032249515136921454614767297043200804493040677352036868215696135618472017899586535970691477221694393569766098879504322247992168591768518573696464210382146489320326892257777451463648673539007873681025365768067354957881295208526006284267953669106812426836369609162064800319122886703031578680914529830996496867627210674044419731154256752723478671414572057952785955280828739519375210741281475831631900522642399748311121701070446745936707914567237916268475007601956423281300359310690632131840010331750378984949880813324360655966167191226310116897932442968958718871567986440335729687827974972826027246236755512137997767641794577641325497057872327740633351921281190453319514048750126736609165381232673322323790213821715442211387182217069447544021119280737264790147355808809633271914702273431232068986369885726385676484913066333527662136428015938052023731525736475793631360683256067421602295704366300829827788796875048371343196200049432001815866769059303559074431083781594066112332550348858830445349739200510874738958510549164876226725306672410326054415801221297077504748033626716441271244286569821017006721086646780860597895126325475737568044582190249440867890316692447920766528638077199713834105455360181475812459971689969710467844203304403500668471231626585274382441540749797539255880523047791311864581479302058431097976573525001004897653559151736940141725924841071884123588963105546302051827436628610919082020612881879163798203156355465250325918874723611425157740895662892964179515452449117239198972846207770818591461977716637340292709550816080327449376188753742745106632952780862450254869693274299551567464146516851222922072564208234720947773024085957690129748992992381960393913431896336279183645917715054522514497420395988670034869774494329040986117786681663550507849778950493238309900402721744160917720736898940741276696502739518123340036800487592166274354079543724646458446202729911997445991014353681930233236065564633359041223873025813342527354985639213215721119284739221282914679002268779798617000358912978071594467487513974441221425955064098145153113168972255678106591496160964790333911156166246905553701080582695176920595736377971554013658506180999019643551183938501184204871977154289836584910676656060278596961098529753567438109422442331029535250161438839519767661455542704610821939121820311762971485089764919853867542211404352401634935023925901090811051626203849050614824468846212361971944980345980698403058044344131127036481860333202127372755849123195776800739094616715150854148691726962813360619760045037182659708650900754039543799309781751672924129116967001434541610183553490826295738250511416603281910916938000385557271020108685526027571106974601494306327746079610947338913495384904067978102308202052687137358692197608043515056431616602642818690117046469227299373051820112948947916669927231629185219835291339831546654883712992689604640718919395919462264954074830853575182478678216393139584631948316964351301825078616360040235892941903611445405390542719875467608335968317520614387731252071540994186003131207781317286005351892612614965171804101185302107470351975074149905990448949659431022636328022818911149048068234999905415155928794050826530318393651717501863454300808731975728119288214945324347475084548990884797406072919379442078788169197434967120693092661445298055923053219113568575336218760633984232763269901884198706041275994788378449347086585367544745283578784745509386733181098159705845488139408335101597416653007763204015912252610468641456206856179242331284988948659817923113466526369841876684157493869302133245035930477291149348048273265120399416291622653101315106441369226512274697889416430724449049121631030277819698093688664516388999763686103765391512540523927921832650901850443889665256272195302661349592811698884121247342373588889971930471196736995838631826417716276852621366625952048937490057634045379334584308240444804602097552189146529088490664711969482930404647769941795893112603883460082656535126040167788398913066801226710792899451532694867279303435988593625362332265105147025354755660456560588707392527809875445929929984319470487701641575476220315912771255810844870009719846501109639613260750386561249643420313254097249229318004031347463729727731255881862093555687107499797101339576694149439690304533827144494222734940201183122140800085013165760471102112990944145000932497687467503907579647257721022616607351134114522789760378782604433043500225530401197019301708562813237509927208824906734479690098908804383707055416624279398745363622637345745247969517682309861658504242047905137435485494509584432342338955078970968739496354013704476464842162186219436198607335090633673811172584220147799386863915017240963561077588820547992033374662189587710716307447943597925881345236770130266179024027891580015121002624933428425078166423144228525782643199845612590203273065138747967349641005768690552663222802247501711062331740307947729748925900052174666429514422813649979781406052460071085676855205645491174688130368027640693783221188471184268575393922124595407921165477058101310281319234821755045369875196869703365879457821832146514513327077095313076479867224469435189156835141320369439417242006706017265394022287505571268707796971878378485272411188056828525927740284295302360052921478413881911365316454261258611742771971097278699753152008215784136289069246843066925104007360549909556394675158087223064566438885832452704096236262824448605857120974263122494004162577771027283557619381110506500983783447495894416650580259521519974756884400004380245616905482985421907437381135622931732003645653146354074501171507577455108957997340339809285316628045258405057610958327307357578937113158102619670306143795664253693597659117629078040387292006950640933114348043758915276905633733025446003770233640981279141624890267564708993633401468441287515539558118941633668346481653181159148474175009014812340436425437159932064880691433687399759907743154382835089622071102141010944942444106632881289825925880087166869867523601041467304423434300399104531086957522242585980419694806179889220267390672304763232002107156579526667769457594175995796117786165402624516064830069916554900457838121415394138066624101604081385430532275848669197884237723871914398235441347781697801976817361618446969676045043650918747802102533476948819668655611387312195554963199226103483339059765962593829741681144044694757001389169606802788375739520110998967886648386390625654921349376358622948072371426304236156086217913029903130088753397694802829707058488673368623099662002044927929111797371714909835668918884487951856262454329750471596707682847106351078846635758529826258262721503461217872437419400451368680131968844785562473710852462064449636921735146577875169349054145041920355494363007654278871841572665780567351508959946670717383877531612091307631470651627500122725826174857902274660074217692267099896303249861414353710404469288259638110346080653703387558334943110774184709002322129501824113823790847132012720156060413844553965479938722610162540298762994292832531571062227842527235670809378967919933451582315131477442313868761720847551519131693003321499143214020403772849171404930833322902567221464039745458458910153167904063257035711752962414230738877517255180438563650583032958593867443538334089815419663064720198606950391598403082983023453085203108291688820321371238220155063052416135094216383778096010902540345314837915743583489164943681144698725870922380652288592302812805468698534981497262767017069530648674437876472953866135241212343952233269875193363114946301211411378407045370203483082424241458812032659710032269552096871944081235348166044481001292869316857100398817821862776398337671319027948219415262605141537108221457751823496700060632117703783964049682716863381819720890521861930443324435703591833984020573274675607717387894767233399135354999617161040545071385968320444003694118998226778175715522042250210508197278511247303326093437485738558807702591911981173857765480686931830393558871421169344227379633839665458501542977679685929549571129564122601317799572916988923617365931516167140302678393585386097703048684921259910740284921208966875686024304861650233919567909706463318754090915645951851932015902678177045705013499806313218498012079554516279602626837061202702799473691788914016858235928159296196027679226420737024481635628833709820402495071460547061871559428177131822502531362522754671396555077059366367068487953312688335659027346375210268985785342684734548037980499051245589926604901768913255256765241179283323753709909495465987799259196226306340378799990992598647793785479127040942942981079309912311892268733917014728323436491390359229303715458239946726631628575933966978496147255330725438387857434582197426077171239512595807594542194145586891891604501378247487035058365878439907006517593915202624535547452853172622614494411765269086605751029063142665543503729483162823766814600128929635697620226836270420973519119366141464599667566536147505599439787326770700981469105979418678770103746493198835083330787795047164269715578890189718127948754769364380098954983974274042828658074568856299991904846507372764054583020107707662230818403180353549009577455395650281555167110401239735689609903270096526364805875508764996051405923566480773568084593953982791044824588853996979231645688412507371004217071148024467434682736516715822550615768973979818125947614957697706551089052523381127560573190320999896942702571426454623671803651446165096131105630719312567598928441342570161780193371734941886452958708315009512525921398343495354747928963574740321859143189831508444578276471818667310003975581087606796779505128711076042321973811159425931544406742740115023366745896601860936640308692551328083667280635161514044492934444492771308436897588832905964841336741824041837330480466465300216704059172601017355593653167217066684181457521316508152344120710593546607541054707239525138644452002480165314641158955811192528554525969992159763997858914322509289760885756270255541749274271953141128628400592627116395736377019454985943961543976122952214711845695246347122887912276490004067814170872491516491563598347583771750198313138846111700772331796862553431071025629908017212884096696096092246724888266356458077294529829727216959935954352491898300121611271586830014449235411127061946507936863248186506474908299952199832479018405205700805569341116889955370421967426365417591359614791835529173054631303081475201684956820074552482907090448723770241989558318186010565258878059607158279879090075682813608815352815433505039702076988176134452332692676163070149213398747471163328542818384636298786391041848196964634860581344467522100970349586478639510591272029604087937925810853619674235935891581469062245711403385285275274458507421992082131811535007622876787330778567518424248946740195523086539997014842931410684544818728237724434781008593427617715740971265693548609636126797504257063462301138648609735845202035325169735127514395747281859105983010388867867448174221997679979688221726704979888785871865796376682680721693567805439797235310488002292627727970965900795166518822663553840946044730037533526731509696014568230187804666152150760122829212642981894182756475332822714034567614167250616407484510085867971265540929394002921672913514257603943003619324265619543776039983191024263022839032533089684053884873534878720124114588961789892428844032891064419385082060345964260396014189490247817751316111300243897583058432219938566637418938232564349162609251208677450749105300046575940309061811819024804045204381548166528006016480538724286151130973946519497121573057653078029212757485482322687944624928064186220263101164691180125475704723443327193634818506527400686675198054786339862114732142857762048711766510117897462015301905888953755193885137786812938572008725870162356354015332277214837976502306324728627767872158722287280534678758179585950528601272427865596237979909482898407784124120972818811151756839089480060516239979272176007015839652581711169955880989819528796560428847777857936142785494622573194134105485391631965471565591376787639967829776194097138978620025975258532350077037009611834748651374652069758713060836009356600992361930520229765994264719161723794583069994424140470771869963768132249522130960897232489757893946980245452422380262422150037102199682620924408503346693032916934708720112301677943318467946135050258995684254627663889421234351859975574447542926905906572392170735029872464781622736118335009839044525575554996639360890028691855085729556931183209718278368468818243832917841696851907577473370577662841514709922886092317004084503758494257715690230457394174695287194467426244410861182957455576474169266882148379341995077820347684585817573906602183041629727063313809270255915841476497429955523812674345441976620977474196042016170658910873668841934340588509767609067786229786431042589200239020110824636604265560125038807783752331832418573108370151586563000931329024865391710215161014447701425610942460696093204810517002525266830754089600098455551652703470898162913417607215704439624393247287286833858681476694279637439199967646531275475198094006143418953893163715999210525100486337719584120328203341845521226589390730416178419520991972530800550495690282555293266570825934347693556087301806892592854571274382783893825769134898692578455191649519878744908752433479476292641265318596197283982589676315914153143283173703610773964755126587425657597949956762723160296228313323813715816569786017419331304155344883478346590089271202197847703999499029531261736459620880086567182065738687503252721144327760882675970271795321912307202288662657683705520553686235710858157062048182505862564557438842576528764616578843791945993061909918804480552862745699114693902087318370368612078938097937088709716882015302421961843767628565463759780904992634752253546271944400972304467306729399699544305169731804157410752440890850824705763782923710270381766194351307797670086264197099763513380612464382405630151175240276621636859452458061546101747077310789201594427207349200697122051402442142385094477569529425504600818595602356134169488187413505028529341468823561527355045020544215960904263756126476550135473434751546109879384269601856305209292820575658269926668016153191334796950225338065206850204967614007633876760751950115383466582320674754717763815628049054167083362422808285538734735220757370216730269145976033138554011520537102685292534951301426934293888346138749025943085059009659832189456015117603487189672588098037754033874719862977995820622456960306733701581404821113382697327358516114067730634879013626735913748827888916542450551295699146208613587627711231674075617568344819794148909333320615174363100584559073105432354655703474731433463558140265538609132609253706928548810698611838492414576724996571789925068746562933085720572942398451836552384249992560729383119349977707475049022240719612944649352962161649496096471092817275730934254327912470425952224942414911506388753415198157721898439196200644783819398099653080979402831872703209905299161559826515987511629880668869351241714782224898211148327654262780198138092306559546449336261404013835465591911393500474164659415742688609377223375664105091439807104157968941744277424208461300039220177132049612500749903478008890419638451509342600985280317985585265102868061830857012628681507383794109334741273669451666876957865143580355023977414234610184483288430248002096774807157438472126141936862380928300402623871364268171578842162235047093363048991048329653082368638157652431112640200304399860164016862619791798058045035133868691207888380147866562090570428351206840471176670281232773611486143923113222605827907224853179669916397987853515867207610169615525757730628588921605231018384100510758597198752975345366714346267923957098350775870701226766111028195997267041946203772779402142444475112736923496192564675246967824949647867542187905394899163931268574876136699449903109999220485386845714685909277220306142565687417987622646787645467089430534927621792476482693053978524900002645611623482993411939846552349864417935544595226055464321647879042712427093792344119075780807863907794763771389317643755496936428006278059104048650090921672871074655395422385113508114351462305027385262134246031841022334464873939411924473358138145878216678839186814285457995523684470285844168792494553092581344242553773004157314098476387523502924137739776939749147770485260607798094314769248878030699631669068026436613609365597388232814691230287200035297232942051747282806529652630288864622018833825590085427745157092649745930846260736603324014260035272735347950428588040787149797631794738211332514139587196349199422730337851649015140045684050874326110163510976864547235044216826984848706405271231520823504461114832138286675454462622148872698593941626766706753746435268161284225731922861473598866973307153518529523331924792310247387682996414157061723693957150644144729857675253327991817366801856380463109086653733632827805132450135754394259645904961293869718532450787262593172093549046793869440544461642609023742991253085476942196558020963815354799292454633733671277200438281411105439019976460345410963270946127986334982914804359680847179593523653951056203379514178182408399981534178431919925829882544712928456935956286842491501796903135482928124597350079709719422921734168858395864057300244989909963098509908248312535201129419539405004022151119149413106160419038786723416700572719888383013920939473377040526254093630409527883386159757392300252778961646839966007334691096121283330187685825513485034935164582362814752426232973710493146269306115232973154302544404489548275510029917894715470593182789312503347048511662746730409254540597720650271534070749714768028552893322916234529784121928544477090391558566466417032783946165603404291218505754664910073318067619510319943393261664890024659036734848887033311617248055308831639671481460563602689634221077184157823003893173161637631087350087665349319524914425102650675642421620893927179452907862363590728251242239528869922275205897346705956320995718997653841780320473868480029472081223492809002173719336513027777397270763905127594268996179697933238158900787912563459311093962606258366393892009520157628173527580204907208578958322874404919012295570567801355862364211817055058619064892922844783650287602294003700307126060663842011651251243810607779880170064384909845624668321928829955476687592222329463673101928868134234394950601687873294202589305474687352498951008800604419016059098907234787072216709013297795164233774600878508239526372990424797372407418505076611256856814116963508018683096236487696894523346766285212764005976258805041898015865984732694268209017259518123520492104247122660336731074966496140205724689166729863287471979838818001424514922110010110328808058556504458461725513268075910332635358165915131337862822425510514460185234658060348289135168039831985765859788100897190394218580418952398961757095053610222094550548999660841371091834447730972756021008915603298089651473706894722929306965003005282234224405194959328184087094932674767020400147959614256196801821017223250547836629387547892024027231540739309732304420091363874013776219485478807345322951586126356957476120402984706024171956434053073876258350330846638898510097010376312284414348471722332076549196817716001937977220127021933863480447880330970114317512431936442476441848061231886549107351075058474948814331220747699965816877612740154219134570626390748707685415058254324966751233613045054993051104829989886555602796624768068495912125883243387182804887565926430357447056192108227815219983919686705892313150290111223184322203949603520825467125743801139798412089821450313291408165874205632801863032188469388403170501591455407456327122755590894888287075767246654557649759506324346741012180499717835787885390363379808553370256426445512603814781815651500841619570049981274285658249601138290805245164141110315013850023392879621269458585073673470351879909276383736952791009592075567084385364839781780764227405046444598150104551784348608387529182172061292749461482182671717729235335308613805677883016302553474095757398057009676517720690205494234541276121244717868352288950667590688709683592093490805335451868793325274728151434917001908933248593675538894672744797058443714722964561404008530961303981816088104528986448146873402554191934118992653793697051824407199212046203423272276099747188738794203661748944329576708076268994611094485577777352979962380668393809469281901052882110112771835298285587635497497183207584681071830905003058352127166346314936016831506998568095341060348686405681083831912239796168874021352460133894929144530851209959522045717253517459834790371946812421612717109497827738456228882905419756941213502832707337764252959171334397707179316965913694436992613541423090530780657063788175916020559952442905049232037904115418525657551727107524867412241016895501392466852953927664390937024027425561838347680021246272566491923044614035834100434233311253503196269769625325801568637597158765073800217722225014995234224036277056911593826547810665770214824734542969468043745479615832467825948148407538004598255540544429527029936572593256314556808200603150774047744763733547497618124017507730393744022529885834158783728888811266027636282942452432960824538630528291810563052480742221217119359559997665647571905708660043130386538025074085974548097296902591343999319184874688062279373855826255032292090079992390256604174856847005629037218716398541585890818578114785573957479112690551794120303620871391960023557971769119132843403302356510077898854993308030578940289943145111921208392191344068070190481749836551103935807297571007539291209450572333174258972026215652895268691161492394933216043782624501373527981846458826661623670009603578856467271907182294329599897447374692854821264825200316512315211224709613663195313300959378012206971032737720087757464128191876274399457048477302349974054252761248197605048706908511417328906475313720766848597422265404146881791573109721956773982771483009353227726936231065148906014355876300186044979982757267638152437248158344744754063580343343828550980435980708244375769816033921278848393214486682852585171008992334375718323993609374630930103965936803475838075866508998372003254683741112811759300364718219611492633560858583988665616755775077566152639590369629346177310751488178752350626421000761476762555076500774921182707629246595267910817833729659548333998969698857767779873616316222762096905975346374524562026481264809156174708561768061988970957936663844673896795429542281699126760815834422537698201846834445688637573663044754256839892819304892046267873939478382825219409884301423044262954680324626813614117712209244053944601963533454388871020764784376177978407543610121604606208127086624984469596029692927515128962996582422158277332155909410923612667496952142108206845711406711662193199148820539526544698169177004537722982375769520825888546573601690036171244537007011250618328457956153896689323424045149540697767768447241232354029472630873666032136535946903743219851698240394885464759616145423458352863245507870126158611705935831257942031738638770322723940495831732608992640593930820528225767037507098660259848601707713499723952073416061525235639124082644250016474566590530618630328670115972781307076638605272907034834545979148818523444075114946285717389050582714284803569817716364638711382173897143554565460774804253894584579493940504406085467288657260899793493492952899457632414453097911053894824315687571241525418496428761684377090066672923450746058771816244289264806388608865993157208952286015878678093050088873437130057541856519365920691819571435887630015483072239928861052754433633215849153495463462373458224238302996035393804127666893265120395018726044873346525007104707430953114693611528196865168653029881742225801429070191953006003874337005341186690044607849711413943239120518039711491936535325941770768996406137590218733057912758927795671136517049056642496500827954677850383589004256749267142523504065516473878943905440093206919841111571753872954734604922965443530883706608129181613095632985601974747593821592159611542333331758149599393371356866171462659480844723152362872933045320007456766224287729148677428950810894238686134888690944989865737061465623045496403460015490215573756319875464440537270487479780827874612036397325208528134268948382871312182234706575869418466182017166908626666661591968357893508871438343094364245168511145562906378033374257259566143630898312233687575079659392912299395501066861005757390910928502549196804647816790086301535351837089695639904446911310300768349817159596074638452069426614637721718939505878141773228129871277303910547649595164702182669975377760701454455241101260565194094018198074730562481734090238093922633378554832951807367362610782884993824095236520033359465226369021131656000560953269579208689414586936680828988674997604249209009089292675469105860419437496110648747958350108351033058193803515390017555926920556322498854040853541160188405133274742446295538730439744580887953097656009540202844549384584048692240109640484594108187830487926306490450979497349933005189880340598325267924460800415427006900420335038372279264275729994992307064382709056834123143047217752484479591845436064209873771961410764206800151859214806264774217070289607030356810493950115302572824737733947294988564716671617596335015984092340870686153970038476811083197566684812300874176349169984827286006745659972911279597757276456239462949360320921849804348656040865756288033521785514719179251287948165709344228557549675748286841457487307096436068284156770625208314921507732932102649147176271429711075613860492533605884383752386363652388158193627321375901919644061610069514327740490148831273864383285282094696774178786539694937595706392311279241544459914491397043096644683737227493001029704986916974508155051936353733943158892560117521171278208493614061330491522809711151800352191688553157736835142512881565429329629311376817910777991645373195395201922911167081889929616531139935518524247235421821404827799469556981747947279925505674445324232574164960420531789015183448551447382648939313197046021461382977855237650419670229673203709979102544828464655812822692205016851203189058778242340271123647296941366018175493688568984440061318876288344171256142713756114540098855384132047105950358587952822236245601525136004158492826545206966153401741748233644272095883263407385314549858647990949070589358186349513611778861202050993822917319933723176135112286235952730980510005973784032685359009504601726873005735102978809714695911702059508835611104665442865043626965337961464148353664687619713201144550148776971942119138758206811454208407063451960797962404854642760466779874864899002543290601674950777347417094409087129238676521766576320712131977248520812065959028535628969821486693695645860602314688000621519204524570923765555765301432852013196791046608690824476715915737844060876386198414399953018857201803426983391481007935296632908312777259913799884251603699206206381977405168600035976061634316566277983531139013192629767000955296102014100682525390016028665676248300435624054574204986214824756955847268267883908241941989281587381549743912629240273925716437131201842546705563870272748273810373318214050230753663751150218096748002298717422982129545162676443384890253835241095772024714759843736806301791537795390687558696434259309146324597708939194969445381608245410349324741266727629967917895084336390096662247709694754806490604767272629675377130801933063271792235370165322496221255644932486703667742096267581980745601788381466556293453765605886791332729087754225370823779562291857834934014536513576118534331979679381051540961107097744457794543194144289912522555140247861173258956342645533727754763271655149915764190120116908044922407747223675664585307349212833056095017129703750966907084075329723888326568334804914024738919300072288688951549693144030693872680220016849755676680420262978853567760752455971175988017042880999265524795913562557894875473472834824947200740899181672884845003733583183793556932641885629927877485415523358846522278335132466852078986285570543860374840654701562801945880522130418800963881255215812818157785201942921827205556459090596504554920596933334765811520468701525067643700863539436415029173264312344447368007943283035596522109170404045854466425772711784601911499746782088494385873792752573489940412389817104049816470410079427725556249572552086476701861910240525995214910622119729278337654277324961482458136891027781472587216068066515098769273398573362252750796941103572083808099957396436933649693314361338531324379178550478317353958358539928925311396182917597478201401096890681959343799106498121707124356349194559108171889943306046208014423654511659955009692282907151826475233262841224953699070011301799961774052033336750596242722954152790477664402980402082803200308214702173624752784395467876583489950525714794928366589077124045523037079466568303318083713741371279585855294961318457051812644773503882978161710101155605140545602775022998194725107457601288630768079643979107430774977290866260035637558035944533596898182305816857541054088356947045137283357401387852977503111824710163400987011094980114351034654856750056081375849499615084265707734672278537503545826700535093203751823099341796233771652613976415086879112605828430850430492487011717810422348913578398500272816815641909548302438536448637899081140151397293602152669534917147228631565451304289740698148769193224654794524135115887387766281186979329482303866075551715705224719360691994878660803079278803841262918144274001633356871135827037840722474173248077298502634423111885349681407399770538881759996134153291879421995895715291044052804283503609816232869163845123804871585800821860590736252649734840411432556443158829942526818660817268768039784267778386225921570976421624115399328138024287441210784836105953973533561316138110262685449930911046130414698436941028308062808310385733136505292401204359172368469659836422489742671119245900422810636228589363416510226284262009066647288724548355624869149702604277301073826473193434713784167031067248096506517368153603589393107598690939699752134846685558203378623178972563863310311349465631243929392522809907144554710296319152510534558302846419516072084426060557667540314802236998023878680907885374381724681180095714501336480121281800254794888331853297405775259453886034036759199212346843995526666196639087470825178872190465749323615313613534562849136778868865867493056653764178646613653260014541484132421792851534376571493384635004422564014124258407031923236640561918356752088337730335436991792048104247053714823230716618412921212777244815106456314915286662384988311330513899190397080741864994834298033501904259440726597683022546317638617028172990724309615550326092890078413588705191621722262960189039886212558275557585885301832408536435002351032211651413265691987259633192528460710471787771880053420598599932307841872819785405319098393853704861130976076342850559957499078178754579189833049457899986876364141806269166776361625453183247155738551251587790186726511482025322383699703797246361576103433759276717211933478648154754789796664715326478534745992358556750807214201006483738376006486832981633082497945227526089896551500812456575629600649940228916475183123932506649989312220885144235517995707960655722422320535799369196286078791462772534163030325892608856083049130883755508647057964398400929909635381161791853150857192203733956826218487886892974144034494522225266246118893380561698488599547493637224824282929598737528167884131170225641859518859254231026154103914372282626863167107693574314952036321625254019907808132401452860015074106030933890458158390073536088790047736835675502527081033660351341845175376504190119793590340897982752124070137065897788512758182950666413006188285521994486150812281293098387512794383064242933053859582274903811235588221830591888030653031080133210875877178428877777155006918296413535285058926763242477243321206960879317537538615697281313703850119202555426296363651967321931378244809474477819346311044270985751564130429717973539827113604629215520894881017388302683107040617882807806473296674074582350480277594530877437370535816352150230084261460481149070626498163837782204766184513026678199644628833531373060034205711993905772164277025515892412835948641980108023846820954205401536146322656629495572810335865757701366726203647780860295174768538020914460793003040117826622599003886129627225400971633002394048867255544084049034774193417247725549458703051842698218343220881342031997104164953225554278325984085731813165220923170081731679717095115171632363863229141444785402705095496821214032718740257401230386271442848739959324386509548658820774378861622464710646168096324746325956023295970828890994824229569052382150534378982794513814024445418530113200195218805481195565717687511674786675232837663655502136346396985639773220858686835097118339541041454010886127064171027056431721682179328181539847175413445898929793361657096461120988036444645236491467749416268870165328851195500427148509384977529909836525506410433905859603902386144708991066039530161789005691659548945137493540064669284953292835635591851405915348289938712840602099025888649163215263064190571992414906444908217462405680754620756103717540284529625776898990650832828359683752818560378500385323900799199511295418563500584510817004115648472731923303136740018163447849840531799863446464587800516919606350928073330462954863869551073144034411050267270825197894604473699796351404609521726047922436206828015768830999866852306989432263633563596374540876595078996799687251724475209020811575023675792316218504127179110468749182313831570687460629145450125752765650916077503943667760968094080021896265037328515629681536963860321831677794528117125761756802185158833065940450437751247915525164667919336473839264266033305304434514936576584963309278272454471698888607822399427787752120093005865478871108947754219658206385479153531080530990566282379040126867245413864266478342123581767217615244569490185734758632673688284629816692663627333381821861047575387737675481149360481909115196865413813265608260106939738466765042608153860659100334667497950585695655230012281134544210654392455345582460444946856351544149117210038691552812276376959736080835379005774778293777364033658846896589864413147153408980933709373622080190254933065029243243630368893754781884732077828332153120473352350685927338903138581091249474809585561071980864026589950489786070793258567660473316624935246358763152905770753419861100639500672681306493670844623926886844834483502987500269228233811044215644285680556556337105122104415202454558086556145296472901704634139076854398216655628201298962687718853309536836830114414226683436329796597576571695453679359520783353270500191248500971869777711798689481852035266593354703380120043499449306577388383102724049126103431789450396397452073432350624693386762453255504175991389654575844535814810279719213806983413084642849713390305287774526492253715037508329614321422085145924654117475003652908246727908610358394891090853950724401547464807078941864364994351727155042626701885270694779286866694766448909905147749222435189465909567100748880029533445004019672936466521398244004046822012507549966757024222948004232836234264519018415512821343110287749872581063109117684953029448549995906858900787995597445101974854229393721413664190069380507743686680618519738791508633159221486938445044669668112666185681277891079126690083516473984595135321975682554676838764331310197292655909709920601666644143128201773440947425456694617154650917843490699656071423243152404742190115580479932334027799830825347518494417307145761400111668882801346916640253991420755333036067662473628312357820943404655346077073705375601546986169840675186191169200198781515472394931211728574247767199406840736121980872058420125116967480415490462901297794648875418313158631591680931133990959794092600406619498598118233020021375134130197229982500873433270324840913773218009654646932653363612884562220960987890760091393157705454597504167148287055833951980720078007563227369228824595363585529012142467878997297733992756513346079221196645403329595237947510300148565622370031763488491395736114244214455049361161158504356808565102989422732352413686273692277786815694350515941992565102020326610730782718481229943731441625271178981631043602601752664603278090198725198269717093822135917139016315024331346037359949385109941218291563934649445902170288713005112912461981466481119290350517338782244439370103725204453355786856717282238929917043737362278142747838485821206641486002532175025657652567693763388467302886967528037413070292941684394733555293884446029526652759776634002575596278722093998995315515748484803009464147555139973429880086241954206147851279598052973955877269219413116016615207689333736087082813183412260410497905916609292467091851996124824374988057803185272818635381323595164043988154585060992823676317555859005065429180173910591665471648981580613616947484458466121369384079186722846110693674560290408337924714585373286474603570497940208217033734480246693453841830877015862764740443792398026644674951824058758500385554049405085036148780168792391299683087281384418143593740034877613654476769583145804251969680397405988481298783373362420298736477839206069060399704195543141526119119351010195830730764179835377585454598966247127184768606042435682107359570474683773746634346866846121775135371654545532678354666953951503178605442873743657789352364287397763930222356290068976452334579021282402595504974565436345929097444640647920139105052983418069057808256404168548586220091073534926895108450544083108862505817658457669178717060907441203878488983960463177174947339017205139317216661183639294068257406037866921759196233388386492167286196655546240067193958435677473186589056336016520292811047176198204204967294091840472973047194875955273060491466357434349092558288842272706241076711558790277040295657372437731310581786239547753113288902298733131005853830166981006398325615049275071262419864617761177190248290179814397965624709007563465123424285674932235242723591238951085566695055594715989050522951388207548215481367880324386164481983179747901595492025645177828618760474266851253776201990168638745459383362859605151475638271291088510063594204065914677159352883927577003955472770648287103109975519540176830484222071450702571006978904213858336484622656235094992643637235019636685534202232289255398017413081254073456809542255426880824940357045065936927507452627743983866177140135155097662437136992727797241961601763437267546208985461038815003589309575893250609146887213667087574218771646559111946731450500782112810699671733600089824626234326060672356404231249586431622828320028875902025721239512617251891332294038974006567913467160134839724559381022101013116222320703708149699247318315418571970150551624953925243313729341725161597991670429646884651385540721810496263920745625670209549516380537443735403489967741567789078768846650896745705212371702203590425202811069104128209187644993698981826315331647669624219162177197277432133240149739677574978292002307419524848834096393936491899298841566733932440770516090020292027033377816218847887758795311733944792894282501687829717859983012053111235581558005230906197881301294588715683757595462821436750244086631054009917411937204255131757060137732347298190255811253794588432753598262516190280293555373978766378621135047067965671163851391749965887057654629587028287106234856570189703528434340120811569820948744318252169141155586201264320807807617905245171502994343985822072431114505976721790728670295486790425097735185895604182399159799530095557286669723744665990838043548345911567952017201860189312582038854495192208505756085610067147998970374294071291545108721503215833551593129731063940501732545474517078581304260776498852133920199087226062795892263929954658406468723689214534582213532129255576098302029576391777769875821694632547859896465551982056046673337738620269960397169650915543046086601806943818124789442075078896990750185475166522775715326872998071588063623535021514522956128988370921351037531448210924385027270704336523469177552035870527096919428447728128527396605265082378823691575063729068702172306923231841235393473162209114612229500772465136664267068419065608685043698476863774898634357263928964156367003049932038512440801826205501718873828183268885687679943144964376875590890612354515443109836230153320837344128953691344836844881913594581294354361819155774404866805986479058339902763640745637250112973333467408144953194315145068228302242484636818532446986080358420365386841861697115080890406870434722755014925863012275618061583168497733554853199815032840266498678838321447955689825640702831081256786861701614869586557544746098338617256271312657562381103367286255002108591448082017784089842607278852301375260184351641518494681522960754911058481389564262881895493093180631490542199957025838164321589060781967445902913256072423453203897557736799197398561458231782609698758165727309075076187203484476583213125813619184487908073833345288422143142482449414066465324128448563643190755201210678740947698332370179877651034267161866000742140316835650153000039152277353119354045903051874082336866851483304870248338518101112419283461788826993053738844031835953891832003105182435670584418019659815345881236321796646914372518972266091095566510296221214011799821470535797572162510733316648202770096072334762447867084860372262301173197305654605004462125058613306861752430222810402296584141426853671120243481005183131537010452030380588627432224456175918426914798246337593841011702931230942629631591559025577387760307989555741726662433567188002624206606991399314143007409244626916177364187743594057860988321658125608972092467758373843334600451235173297179435724294466354359597173478280408830324126084317027701962928385799342774273067909820449657502269139504671149318526961550356049513082027674669143190720193525225089264395504141268767882101852079607732238526287480506761888387338718269765820004914384432380539543420766636107679013774802947034981379465868459650914228455917202719306218440245817790732651948464745245414813924329981842843716641160928629877689917821512455046698627744926076631435970306940133407540268647002038284646559457924922186227507715451984624155367106380203781638752397301217001692707082079395312182930769098615565120366150644102346166006294144018406146222797949568942827190969691754566622405527011446243488551118155219868816486757942977764397759456615122624396431475760040898094722291271861546332801917960097296401028455059546070773273887768740704759259355313689749717497683093431291585858332902567842084329226358841963409779071157511412720952907172425336427212694558486539668811189053965774876380496853795566269337267146788296844509244010592138892218865719823361582494346793681860438327783596507890548920185739732813040537991789298033631698542753783066541833644548157701871298758218980273171697988060130413470894036470549205200224875273488665839235205759205879423912843412413541066277811769818853653021938126350426743458853880058999896353724794806714948758463481137056800122475218543189501368113533983857901739639107555512930951112456000530560727438881259252537089934975365466540275964269735982548526757679774742324457605374129414821976950253904477652896635271935976083399543306517340044061529875062097529218516384642984766105768794757375588956311857600062067589353291588347800292359481423834424408225844574940086549912260313572262139293409548885408926240626636320568832285178008735471775864861441094865255045454013010585803195595633252370495950990963480977486359771764630223867411794704692246350596539752114925107819982656916497499957321567263414553720511485388407668517958744700229412423381143646998066844614785071589360405267420982493715600632015327302638157773813901609887119820225280488558335585029836447111986113922384787422191131673158174741906490769681156244097871168400100958285167672024760691490920341972052438982013753233788674035958027840188105343259079490306474403608103225026852393484094316523477359406724947324207741670453148846760143942053149305502743726384556861029352353845269032296933654878866744185531282607261224375844436711415416960642031167795024234051073735124661041439181403989401205150830057930399497199294442134502560096297522806230089554531036648564273838284197318441498895173921109592637515964020854951105708672410684452212764757121118804618581981888623334159976826163504797340780142797275555050345124237466649838184910112557127642088428382955845863469193940590458009597725563280224101101897884644000062991665888651696532175442290428251270242324355336921023421616754998719500990057719544165385176408962277196516329508795927990269278353109638543582328723253244053274914683329255892192099647917687929769052391659732538515352956136195667151375061805080421945694284257318231921324032301583508441806368892636041115496390083028253843025656325256520554004837806246588147447947015414966106538720916669109600835793861511962324462780164632764751492563544139228052255957310673998078148084764939628935044879903718350085925687085913489805546402027552202673447726065747053145735910373425182473958190253554507079332900553243302144120518204539964712020835194106265010015013421929881837180374936786999994143553474010948721455039192902242423974526326848518566611674504703132611474582748409525677698038100724017143167851156750652541713536793922480096975212473811437559199872437170948825487511281915672545460005315784516103192333888289183653263234873303670007802105791567209788592527616137054064070715139488075103505978106444076346391203323225740261724885737987241338211387693019364427480989570674419983412155487147835891971114715627650666295016546981123197505948341841454433470843313929060880534921420256557426064872000046374427574601205479473570570946858286568829019158661666054858833625071164449771375412647129068522023845055391148513719341152688657276826539276341512669491593301339179497588854326705542407342693034021948908121760107964053580859393251344886820207227005301247321354126480388886035029717436174029334440734394932725202073645551165782637412123348643959610560668237456867128328183559865726595514069891110555827681582765813342928765584259254613952724887876409655028054064059288905076549383716414702841218527220866272543311222269513129810467745074675860229928317760391001912861770244664292234153761055456694949985438947686450177541171793713219851464117916845809845631024823852922566682295456230657981685225291908486534026697915623287473395152506848655403293055547778697882918379378711439242600812457755858535862266394444346577056403457237956029499927765869781491441888469105113836770833037050132562193835001403421598696561615156768877728524463541708349756867783932569826489997332734770227639755690313577609921698660202532218561113940162570541769423663987900478677472251841301615607213503531213582684585018181828530117754257757983067092627191125996964372624542491868657514732605259772909209998394290787442317839566645237941223890562160807951779902524989272589688314714739145386455413322043196901255776614724707411423348489838603954257281540072575559058000212183391013073015680507702680864516767064975358111736761133549200325316811606568683625086521405696205067926838618837907813626097817877845123625373538694168320694528734455011062701931485086168440351730439347730741147020530769564054487146602501158092350719674675734016900209384244637126865612646288149087309431270700352715573754178406879829030304091117053543467147711541292258088116561917389371685850194960651480178725260614054076418361448395587756946628963050442978384954754432266405813912843402160592663374140626302455094375495386269471518632194678034617545313097267473248895555859081598450753373204769028634968338822198671911232098281290042853220905052648600219803909896380414474722141057429519746123324224750752014816768905321963302103512083443424027918100902316345814159042236359444224840518214228460765870862075793671995558325979185681435521943862802279770859482340001367841264703989007581895178815015023207131656867930215992563682749199370641122976956323597387010516932881976353301855964024858823081377214809601456257737764602645667876026489939174169371071071295018344503143126490235994443355000848352966168069042587853086508147291012310070523382507920527735777188005055590126661953605794296952311945780879828938104816481096188517909887383090714937565704291552198148862600399685568367916483169952175958767866157991800049563865597011277948345616783492193383733988049014986636812374306697869201644682679575841020283498639898542242372188572199490213180798683562186839793519405945176878114549905592331427118134741782858467485585973694044109166681660968751370183953263937073056779765003595072417819138353628377577737271451668654590358989485059891308409905566951403498667967696534561775107031895525612292790526131392333462330313015983739573149347807753709704559243394710693968488665434441918226265885387639919962707703067783115660663227948637856652421124741453593275505000448810430044641028152342193519302293604624029169083749602612061332049846811833169375337205481477189980721118132836618882896592795312857906792274975463976651984712648835584405609823965213664758346241870343158576195550217380320223618455725294297322124259570670724785054571567900042634706045372701174298874498309949888549591757726099299720711276864944763002140953669660052921426410734879223431121679308507345753958955884126312125518700190489913285444661703835880946573116636431524489967530814149763556297537954090059790876513259298405646808290104880972282658375383988713604213727849098910696129744053230767908427158817806280012143362863898494461583454513784079885594359176056679479614977905171697660693596811862408533889678724057962861668542391696197470611119947490185105790297850683658553018017269481383681085904049227418947629039189875894754541989397878490088854745576374903303906572505191958169528206769972027922058058628292334084427680478770028158299538300324223569563839152700091624140343912215403678109534737171996196414499087631569076474992651907580976821402147074571234038360994116466500311695053455142457372936574281922824917369951496129609156727202789093989096427509950206104769675142836655481458512794817977576196606809258753193973422118108860033471622496020441119069970443612198917959191339354212938858888592533618639056454954922769033272864124952708397902220306478449062048023171477933954081786625581746799041915172467341356941763438531276350976750216848828868105243221724292800007732468872679366051638599497429637607638563656531805532999968086047394968661130303991045027633206201779578695799181456190788372315047245012324465124839017704606939060691720059592189057991687057710201298035528375673453175163714824578875720067585651333901295057987492110243649893523938730723216455420797879813285256225766840118917923645463614858469149727773802745819615925584530964618346732827828322473474641526624477437210398780871016652558112762042919389605657421864362432921010731359519484705688645174924317695381146796247414083196655481777323134242341149499588500861125051372042751839309272399310022887234289740884988572685892430798412581293057855685845391208911313217876148624128456836991219224066155600696334642286393405273636994085353045437734629039721772488030671225408374427386932722948799779140211834854122177764498902481427700711801726652270710177664867501005882018693584575219464216900670458490557507613531798804632184692819803009680661103736238141984744466845238188952037234553010013175055217933352233889189144362106834151650506166500832986432383598520059230805197515328902298723301243621093558457883754561979189839436096196366031705716313035649175470865483619243462920687885840494445826538846351850428798747179509355251783542389889614939206785196943751822747628008467701401943707707277316574956488861670915485373476874139738381015769121869793460560563174673162214441431049724266105645098461244759017821465576633070526119075665405072551520220074795725433731730184369905939839035755255104870889306668537839782560924482713709292831427207534703404038611215119701447933637118081652108567483484146535388192884975273273828949404101597160604079829889307055583302356536102547701952196385203017255297618829416772535374913310724994390449721119730086018263179190367379396301974419659227974771596930662091670214500622639691429503818033811241920243456314124902013320722069921120007076824744809650575275761186349058232731583490734733457491818709637257095069327346861997846286646882752833318941229259946299193093849174865933757161106830877630053421495781883494052113392429063874969510567321095629193614449657371641621581125494961046077779971539305914617878595022605568108930172919064785141098752170373521868569221922597105768684332951810506946953597761685261574236235462466573887535529223312284889167953462450769141960152799582236616620066339403465607702482479932987470079830332100466275942608604904264723653926530259075516520857479989562309809909263168432091835680636999228765423994142222524074220406762289428255945240527737569884125520296469873433490096537727956755512034701621490281236047689699400060862161073142546493698805526471222768100746628992421377928216448185616025357079695290235928939942372881753223361226499297177357537024424870163123687254378194826408738805562978689145073069771258722271280179429551521314450779408191335202817991748550511294441437945699084918803368149587729279922755205779627260176379033917566660508517358617556859051162719668019539614598209650204968523240163068499744121286653455089246460929652360856929827521744935895494431380886569199596789493057251009017449395581370543451542337854348763417591601847130203270450284896475648203296133947855074330344589693013727963559058937400328088154715643890681337719273231174060422232045049146949582883560722402191512732411329957628640209571575643476517548154826805418474368481944155366719966709575430253875032455258008099752540687852290965678373573925323165559638664652027213685195399798364440598948457027194059869806102975353659660890954698344808247249433545039957991573655292157200059803362359486665585542809234843024282859630867429874219608593419511974067281440987474551527642939272313492136733356104678750417883807914760205633731803484618367368171605641916772915791917830918020085991725749069219617830746215644090815304651459887834091047325297090018789935236640100975376198679313625021003004141001986245366082038084060338805393710369447526895152360788353434074884186574468192997843948931357038704525814206414286177348555769409377115787358019155163495445080783600944833254527780881617200195989096183458812250006173390019034455432306296226882258017034177496157771390910689507199814939856495586145438990928461872730966669956018618202726809034712571029419864369999756340174951136962372366450480177762461068314725084464201885432998829272773722036676912695658020970179262588871826434269607649390797839888193750446122730712710107439889997725047035705455885524238611841635704875579009951769559434711158733530615396040172779646782198272309819366194961653510321521795415157688849555892889512371725513601431713335416545999334946388798353081497055693009680682256034946964676878179529503579711149566750444692283871682573423629989286701074887666053213850911782212443027607492633562400143980004841195904097420532404558375894259336482320519522139313773191297834737222591462810641961876278387507485948555281652412884042960997071167462204654317897345064059881625985578492045524194564014023830963505432259867862977976644518630556533638052450154824663338309352860162002738268745651845459650853329251811223610566753609011363782234278464812631251515202859605040060175954316538722232558309202525919406669349840700918691657992819088276569805687922467064457405369758163064475562720113677074207841647313695082259293463807228990727533669944417142122631007994697498370664077382823024365577524264090351066717026072194243569436891019025978685315859115641715500549696476410212642710009944320149697819935520851635494536436066564300256546913269132197200512705094339300944099367334791742889167704600496824591907943414936370684212864391311816075423167643833305739092273686508333791337264806539339743991137318989946391256289596171094225756900745669918410116573336710624621872763230909189509881977064305545559339908570063041073776890578460778102041051950755983418482137259240068815690962860811348426935862778617974919483945788767356319860286652863573161559277223347315782081751207495611080514665750359076637014129308359157729445468073847210641023072744187701719367910157578188829992815198625182487069548375026830624694189432250908329878581228512514708317254290057224039805888501132613124333574030482659375071844718943372988780966466164276517564792678519599961890438680041828856514815118996745184592252954525387787087463283180126716648597952197291907667992381325931793237302820973495502681694800593700358185258596627167369513180874479266151347208415677822681395839364384628071630765789162801903303435035747289342491345467543710177552245539431706533464685554221783217471842716215798016768851047832272978000491621001331144476243015520037774068370839386387984885401395459393152720594076850321444752234176252011864372469365442070132769265521128102234223633555109606771445125044970391713348574638443641976817886484069169779029133662655712905080163304262941970335298394938257868145639014225908957912206448310292634243635340578693197390050109436602644158294518463642061207605280859407971283411055310061234275909085107425049688517984604926538650317328113993547836371152290697696081811959236700515198751050712420276243140888755313040431045168932545368019718392914144822589985910974742523112621571665043004944533154976115840392992572697523538945923941334741777074755268890161961041868559552764128465432081033119354499528735802041973553547265382999015358901371743653785965600184517206230542285339836295696014649176023536223122521441323062427794998210086891675290403108891276728355455393511646908920678058008525086452819153045959927529702898890147389188371846736367350735408612336269380977119074677084541848466916214095113993761311019499429855501877099120715178472016599393307302251513131730130317712723242246813540362477436996740206729258414170619121439950887809452299759480568437966528449696455253561306408845161239032045514072779128221266932949789853126041281692135985991286553972112111216080914235716130999690415814648225495632150035347251386942428625511196024840511427511987842798149658226797989707550316317749191492665795222868578901178707823002797417081559992247131128684440776146284803670880702427813475049626019801978963418281338423073855320058866831057089003611866042059091213745812336439678557061377463070305119811345654705590509195264680487652410521796540210508799734081552726317778105305870225442664785124719928091982146689359474702009333391489854109347890681518686344632284048867896973263199922990059071228023790521331500801080441389572139310020969876404565335265405136817802333202747849300224676756886386564956312565818868649000566624047112662808576209187882018210691330187013936837774415338295133625859520442879897060748751663065003080752984591263430039111311443373441826909578525473215604380338269553707012606837799494746006717527080965632323026847538350733965066800435951418168778900760546804256802808514373469821412391971265866097231547118813181268773977493734417312873243267687008145273062115843384580217445504686766646061359251226147804543429168385744095063339697818851387273246198173203403483464236440378466791118661944092080961596419063235718981956555583682880413015997952748807914630724631737904742025833000620636005302811298011828486756752460335185895002824605630781916237186093669574317497809912313560129855836634467847540772284440187953506782171989140016536426535231368831056751660186639128747944488381122272108580386045686137368163505742152524301388046944419440094252647766198178117930206741785637509031833750101453323870735311702471050947019229825980608351309736182661582549336084804306994039523822811373076232464910616406088136043931383957567869135706908334589089432987745235241331451206539800033003317501321048878288511564522492259935440227051748538174063808614648369803633546946719866751024474436644607252474938066652197258408261503032721498760319036145610137071853168709618619227157330028705875204393909421008489624304816277112145533554684149895460015876320656836898618148270521374293403054240832170112579832359168115237345337489134869338629774539753633249641102832444987453239239419329252443422637896364876739812628720151456814567527638715319980412718360646776454243927187650618648947050054469897234373146418687962817022353203642714804973135218967838355683906612478978404577025261203652395917483146201925664031024959364854784648274613952104530479842282259618934374009418704276411576230331028628827638169859130075200612465912160807739479388849371586990679807584950855094863510557400582584340151551554276025420536877925283264765364353341992140424727002962197903793729746922750681760542063387092209819618704037145119331360367964490448312299937680024284489978120046096020567147466171757066104880717528659279982093588251049855265915742517100008404857016087793987179437845416718178485302715253063963832193432321448824329106746064114442508987195117998916871569437481730829230497268864764688631977622480639482565775091595031175937884991057586570874787374602323985171190945136614480091700693899177185100954525464217172687850326125870620014074658237775663569183877518009275198617556485403986872238466025138407518000212055600261840876230787475674807285455636648241729184605701210661385392894747599716054362937845011121250464670167435332742005040748231163853268322917792426337401325207141288322116190737817571162475071684941091781214130166027849279992053597552478020141760056303450713021864099682015106219658646886702823465100429712539696005261128352409819561112417492874892702758346619656502064796651897677136705210370475125983178638179563297689119402267363896900192166504553975804927800438860792929552271227131794681587724626765926711017309500269393222700926500182036669416647995688854929240437721190509905901439339783608524155925602879610241411324695137937638907212512376700892999221082733406040367358310961154893309260765121294045098506426097530407887357731499237296185077207380053206229861594892591972360314002569242418433793083108914976080342462558146222085990648746208657970577483059176341737716026129896941511155010051414410961037380808019119537060860060571841806783403309199173321959444343874671916122354373261972804059473375755020722002192856641558775988701797258617391970363689974957774026573202841856339924517781551319536632325375133211757017300583070636000717689002299001684652783997376807469274742331097753937565345987168911222807731600295627829883774609295536212144002371985840059768774709463291813230310810647919090063363938574163955857145004782161945787257425675272165117206525292605805382962906713611320643783225437822518543507605611991187859573930152389936467746544608165643313073378102130670335996058005654518451119228680554569280012333909010991643829377379691750705003993832784590199979135169032903859201852950158506251087903120362106601470825846304404944815078452905127311598692714567450621209512834321978447240131210222619331769467804555094936578922683433743331254101763797786103615849303569960648241872344975707655512046156833829610645847260804408036754989169309740413379259841703134463382114863839512645042277021715156276959723451188476399027274150429118231633788302756755350756938568743233422783944484641114837554573762625805544434848727572877993852319682278642490715413360533760495046858023108349503568753694959811235281309083840178911201879600795980943404622294336919492070237257055237135673437596409740678527024457328341643477584320985702000743401923239443531707385316714187241476022223585340275722173591441833627255735104156668280304684704456183158064651912749171673377982757944697249592128318850387188521943897289722362503366209660936953668766026283850289737996086411926178144631329784244788912666632821933559802637017336235679237631857238243886511561186891019420134196166163923465769623342117989046743265887098452546022407774447500099747617739612456089446041562023450553597705534698268162133756926567977263579145296009005765111332651990575815393348813241384259571933874039335122198540352129797091225117411840847820476745206311345724485993916820777468690096029911109764052074684877152489715305271998863798406632419339034821038669550721239850525650409163737118666926954181577933556705307673112827050358215990678165736821135406650307430237158420126888959334851169197412719861083093691284713100743691971983324010787697174596318155438742546490539857999769975157047471549909040541615121534847515588318511631301130275016901855049496872091773731129875861226192772448032291394805027879014557836607782741514111759628803962486139778553001709119379906221359392145600368573617576633861760540764233285625375841237701304793212837009398551800298365024503450498278413186623701406662640775362687793598785878723023165477299888323924535542976624115489110520979716926354668784413912515879070689471066199240174239614692299557877146468092774899271661023777063083900507980325909070537920896235005414683060331996452250651154422819191279885947517961852754149473317359104370521469037252516413484352186303061390578167398561829855208998949280361324160213595723779027937179913311926135429967523811203297610789216688257003393622149304165545470160787330262151248909092545135782031705450538710375323781846930207591237447543399295338866449757391647235798373774948312235846330102266555993841603153372047358484587252018359552855741195866433997352245738591653112652530541472944670927234172302628398400757361691706197948596404445514027498282027594331884452072489811524962070894740417686039179057157976204321719800948611840542863109724631373197462355069597879047556921398016955608764923100526562879152446580350729701591016175392153804219505440837017670231374129817713139428887223128272314990413476242490909234809866042547074180026800695597948519026754899879125057163987122522205639970498771241669167894233663983960966960481893401216700599666772117953785522871039135831280139402597862152713622250464176402852737250230286150336961702695332431743018984996487519525026041348609923065387816043762309033719558097704862580498010797372412753944109276634933989067663467704750404690437057258614996256713312948956199448410985435176035794144463507589286023361653322646172737666612433984666153697731825347743669056518884721595898362856434569937847465562416473109724384167683230622771024618265884215000073530410749355751242218829950253689967393374117150116559654880461412148558159160368373760297486316448096210521505861641822809326825945290557592440313373745102123986471914512755070195893779756347642613823867521632319635303208583548916188290079415632692729089555336660477584020960440242342676819534724570945445384730914150316135136694601166686594539921432344931107596654591305023948114143011053294100834496276295929338235595745069453738617110182878890443002575504899029560149374778328456431701404449376801424731322261267480756602525346939436659350331604263755669241780555130031817843529083369312887164017250259060110811205813270830637365328419586050884491214020732857151134335527927199874102598923927872492212565448023499790165966310526781388912576890798489127566039563446857127194566479240268116135864309550971371890847649268953482508323055344017200092718678260886047388432787965606683990770388080128701354501515176976867818398606760956827985501660577093481660450893423962737037976656862776488477652009067215408735146374172314689923311252704868729224543385297082202860897167342719891078546648630857274322612218645179176801493464600528084681251200899589979163745587512771411124392596606603676615306869291711170600398898727299613251428663076567625783743426299632946534927192970636833607713086002269679912907445976512514832201023456262112485182656991353603504313434332634716523198086774506260166588553638158594235000729418620778701480909037491442639237229088782628381058992146883581926012702786459605633681705162996478585660455242376164175946427615798715232581645079574448939676776867463021095550738080626800388523023640017653138526450632108591074279079585286438780478173932688510657501572391852353405854739481578632088296980605695803371951150507927411563594709706523281946310826699361026741112223230020576755305519342541802052186819346828185517769670690955495996567687324166248941481239485088302559530209143533442725302262732878924370454049599130508008877489620000608916937412000876900867966856579848939961165221873084842236733706904677740642968958933593582664470857459913426400639792844155067815882928957588809396192341791653124461688860523050614091643958900413920735831081486249064679155818821774961295802281862354936467158487119028793296436472125972154483185592321457654244413573566560296682793485815558780242534721325114435100657816232118110628449552445035133592181766116124842565201849174048742904663434684617634877236393984204180737777741957455651132565933725818124534729384743967776082236368653584777606158153345068413321833782033392488019857847381109891926908537203649472852333513584157868137221758725980132901579230343828467674158027922185159326022988210670965325456058037656185142484123333153134166933379043859831310881012173791624963445304109322634560369044831250127924589475398568299450992953337921627937810275712017608684293649291599746390221817548421464140776609083037932610922703996484660920713693189856571970394523177753731430833001876589156475016241771851693669240481857196228099168579894117761389936827449677857268561517100305567065583517659211768810765300701009633271315159031175790584337223201372669746354763706107797539093802412760612502892397778048952503286303143615706019397731569911012375376212397703179598065101157703758514153850216086194742342352997564817016781484622270526841050932653240605135593022731910433485683802453167944571878800465240693722713851885019750071142110965174475896968500855575001134028178116004158272371110599078392266499444729879549230083733810137135392352491641800083353648890325101464911224712938937367674787509217520058293716804593475109201697405286994289640805922771861274155707887151981036819047829545360525823022232067984437598664915348477223110612644726897766374913646474357334592788813221185904802377703306225806759099170433616571060372619571395921516297759072355637914674713623643528840420824215721917283496879857878981815758648235984643641149062266901069924298367605532383381984456728423031423900384387368578013006438051358419022034410208699096533028874044130736269169066856441335186989521061151607937861672444198401158249082770889862392737706674276520956361956578103456321131770768201671414027345789673403338325461619751684972047022839822074473183872329338365352483211019683692110498293221047530775814770024178698084032083602647789982215833528914262058902331281013799101552220671043375587706091349340945093085014991050284172907027601221170604633213527458036946100911399969792812531047749957699041117018157777712372995884090673971679268135422954121534319867851737100324014758134695345779165163955077410314565144669923720888423025672376885351707689621666726043229835043294479191375172237596907188955227654968603834811599873880310938484320444893103883806272473012540041413357938792189950654265559168164070563843439559302299890441746930716811143532153096106037452799474929324275049904641851556342453661520993233253595260677720631014741257896717937305155337302345032614286608015501729060992468919590127584396420347996784242178503261116183419196871307570260847255620172814727933198617647460250582832032773841277756640910902466730425458762809581643040077392040040392098220615082909805386786060497729026324531302646702787761763016285965597416587813706394690823026647459925781356834368343878503995373166915797355743915900601922102515548161579870118183927936861869273234694995743669475228808087716006489649263296276238907186318217938844741445673048543981520431371006168551567612619676146040291716215925200565088695006423094623596650334935633878479947636364574137998136967526595409538986159485688406038541473871464019966262972154883984279563848901295097863418283757199581848019583450456885700115340798375733171182864471459266750886094367790097225518640124085888986485332109118733294197589212188772429965616649522597909101568308229015429886523042413342678291643827648907580002176360495646903813237818725878009837550556952404233542227632183031956258412469947835036082022133573636235191033829048499873679257779446815565220274929127215617887024763533487382111580426561164789445667086464839278945852652535129982944421137527191185118735024759190953144227345479464942511994059288616709891990836750281084890181436189983074730060273227849028168046457539133172161698406609306169057803189386662033435030581929145815285094373834743029378597272867365365289775883887416785867277774471069032901336380871878379844895919398602293362736202585888982039323299947994880127722029171133916740250870789283572699016272797171334600129013776063778868665699210875592547137485880514190693859402751113768356651067836038289018586046134260114414311681698712407538269739435287366732497771787544092184461738694487571279978901768445202986594102699644989224623704861257092428807771194936076282388457367839282560265439935462738746787959350438582537070866346485084963383153358842001126488415396731974152757643467606608118834955156653897366727314543453770416049538210533864643843063057987854464912713270376224092007178528301477272721964174557621169821589613517865566007627783079966697082217476313779739144280657947834292198832791881825638631015373598860033223368008292055721208573425831519121860243066905428605827021563774757804698749976154411293080328229633201926158734473424930214849094367833649552595568630117216773415892696164694543300919406272129555225087082529209334579326563055549084480026030815892695278758830369760777916883978651772749021648104048044160963314691268392305733544630026479839158961148962527228061195565888775160980085170598806078342070251558437820539434416636632521926923951595087013227827862472734686287849663151832843887287430098326537654590492312799148790279328584841728850067881052754615471632258672593943693260156382080312592639545637301697014599518742477959772749096003680369968899272291288897085148128359548719465377037664097159107314053062232236375816711000035166622228653046820961442207563426475612201164423289755872402617193278901395492626574768194586975603305463522631836654177597216990699921906878662815251860802348160604040728857861163175871172561014538011077675617465940686784374466424571872442111107157968195955548910837622705410911324751514100681114550959977815115867723261181807640010487234021624899494370626804321272748011838751993051640140804223457512003468887720183244054333181632460252653540116138507773860257645531354340691871900445787528754428034779877333422676709290269014304805117876319968910459769986457470789334164326324893770174959474790314343492916096704065282502912130369840501659502268541173689518316556093539765988301194848048009597377364195570723341058439450918611106131055667291740360931696185148881157951187748887152170995250491222898846453011684825678794640010014272743252072826192239288514964556994224058133651827582998399904377385590466908715282578098117576977301742728855319438317839379693809698988385848121330346961681558635846294876436631069582459989780754277117381677750041421280402511169427956422022427340883828564236097974791382729952331471553039405653143068324819942944616125974080702198947867445062026400378335368693721624228040971350631123914458578974425492387304174434625688983289978654308489381011500657058024934680566803032747981856951425200767671638618253876319388645362237385695852559233994203425095090171777883636713057601981713860483491881594389261320443833355870041761427761380736488045777362668844014835571017458899728512875230010216387066509193435536322053699874647611098170008580485567447929264766183544597352287192655356201554334078236395716269147841725252102330069593583537506146934685026590195203781655350513396842746598311398895378981041602277456476853566088091252457622188863155487740594477354406621129106656466726698282274013264004143905140085628825179445251806602092919361606155922046101229792210953933887720236739106381579365259021437722287207558778195505049226671820523852448923132907572323667089010109898361389315054570111330237749958936736113759212706046502674899583708655746070455475146986672936582552365883139621852157106013519410609523383069278244477921776256708352426890266816408178344333797826458983502030899096559228378153311614277041539083163381983720154969656399945325628984635902596048558635622673673297654015090225961709904747922094116698332265978412273853113751348112438572009413160530730977160200964258659966247060204491542041809356500655038324970627151789863357783537913904278213211881948137469042248839763689420104276308828373853203630542319233834701798596665282532556291331332728905959287803543772213734355358375121497790205846255843592851917218685471594432314434923886232513529364882185397991095576919474248037130061304288956554593690809997503767703456396435289138423737058871126081447154050320307106793855175467441489381191484271708066400421901263736346991316611482479692704067670382561422623562578163059363563587029016449962543090121552581765187570144262740079663119388605855376947999926283876271164882742371214900427781947566325354693582493396940038263528710379893556530787372461079611267348543234264812654495625856248914972663625201190667393848245853464519923002492696098089930782359434850828099676350903410486397910343551097185316786053791554875809618394090023336290687079469142503007224569108282499990316428677845448680940401907740133362597549807075726001736821483565062267436904897481302309065774017523322635752587057380834514496496973097693019791330447690338798597775308016557140244020651200788529120527773878840248364581906702655319247612976212760196946052163650542334715491535134925582073821753282112604397676424985104229098198684809861399159845030107783156841164268852746071701414036191081050495930581060795032083056546132233330042602057289521761587584203996321593688258454527911545008938632271426816653119983451963707247106227559916649216370268954765622413007775660195426509350569392980648865418351458437655358576635577554228088784371182332791227166915052784424293177230977570413966354565864696447783509640847491049198801861275088239827955130920955499261519418567357788352509886797770611971927311684286484293870856462511680029682409450559738948231817119741388820775698582848148356781071297834593413838939380974580968954934579989689693370791342833289444440946364086636915591043236050961508262623298338169876656430371969872581112256920589537890847608871075377538541139560372065535053143959916494411132669395980736138330306400724487002082179709989149229044146430167680975456001025697527543725085018647360644931057432084790460217102623529864658362787321980920173910194810628333188192825212084036847788781530774793809190636781724815595197029147668411071950750947072294456848346770473194752775973871058324337506968648995402255015934303777537893364569320685959575460957810681250558828507975677895555163011382593542970605359183442044404677561650383455794646414946591255229428421350768664465551749432979168953153984902259712559553418589680851958628436653218423830389210991456793094804709635339418954374348861173187091939203638558537737214842934330367636682340997666717871484261443906134112892580204106009171841801738838503250313780537846461944906967475274045403742471691782958732143167520320864796884140987515092671371655198669246746645140390157510069173144953193994722124575722887541484613770982654957567931670762954996075345266142187818868174859200330302657553719510422453026423169401193581543584535650234740222751708605060963554489060367618257004492237264860877554196147097955234541963945542192744769083726626862788811943830339563884047486714979111849383361377479875830788637765432584416297245133546549456640842691057715121499593161108860025301597121963186076793094978552276910138293775836819528794236694970433784241864565746313704240902240287439539917656132339120953739431130265183664882046693560023640354243386182275356208850663301435147054057984766697561846410926878347285785545562053354956128248760686138546377142259102495837498765255038401910337285280997359414903165876557786704605708133295163114803267027878887653822822691365634415493663345109355317629838575923755358723698819856873481580499961762364488412234860895310811950931414778000109805502989600989370869255707340181060264722809940118880346334610360453222427617292005143748987048404174241543525235082662575056792231161658203537710687969967799474380563490967465634064333163613902756807740603950513710051208032340870766303648059198468762381695745673923699113203654178596974673124121923149303745719892009878663482063444791050471338043638976682481431535147975800718030525485242617372382456500165147955255455283901025066752610301585407084922394165349516418432921462008522585182249597919149751963504934593979726484141850063523070740867279397564901651193916676876762045238900179423966116427350263509327285865244904834349360955085037585850526382808168735771353836344039944502241553494068382038036734483623686141943558207065008546267974243136665514966574051853195648151119248682836354325516099669081269649769681628964233515553823531160860905334751907936165273221490427913295318789005434763818351460512993428806645590571703267992090057471408622482301017503851331180359842151928641910921853862670605730709255608642278089190679109864859335959647925952128308349444050730097909261832421780513118454207045133532421892806091959602856293935369568839279418058371468953368834394872747727250046846304758678676947735273981499319234838073294806821627448633203882172122118534369572732780285267095604408850617146739812192598920712032618011567256130632001936369064500770890250950549165844344220302055104579654715855392520418494132334788649625436591160585778452944747393273907793676747434705761569158361216617143692428747491605445892066006689919020813721638287725088026330036228791983841911067367599993389745606822304920433890599981275993155748274249457560619874407531298407448696030724424427780377345822247434887521872438595834301559588745883537761507783577784801198529889104822511654473333295886456475022931628372882229334123799154775835397034864276034236813759185972552809387897467716755863672568079931119372264932330235470374147190589238163003360874399815621816052709683404416546650336872855141623033153721585048981039962449152805918713047236375486449689033666135617873389491027612773430062970878166622224826872430853120170770499204832889672745645022312011711307542114134823148203457412474182219892569730950419870178855191184354921087073983533913174387032643019163625537888480148957113542892095854508045430528243733813911465249440495303215991055879247967088668660246037515812242274728858111395323061222640975819476291523935347058963389980472454437760175393873850232987450866085443825796213347028659588295533079994293579497205509954680788277067580708975802506697450396530631390635612799673471928049256198986865513544614217499607966832820707522277706184498228459146250758930425794155451635043643787427345609126950113137670087477941588857558210862272070415995445799276366649813968275000025729560068630094063469123080492109030097045121801663138410605798074437603244358926974183460219908688440394317431005492404087648971804664019719675317944660219052786381457029728307639450914027185878362410503046974534170277459942191897943245608590370025213196894787022826862680305279916364202238300029559979941415708713295635184671379354464342553121668075460583920402495974555484446617628986395599576213795259224899496934954852158927230711591777564171800961134994966170357679243295498557101238692134240209193227883661752144354117227456200958016642129048564730215887638791304371207082733163385823766082991720799379856784359929878287354348331358299680398222598753232130444641835554443302802830156646375766825992921874091781132169998041881586144682009115845550723034401431652313987997312038834100134524612141281034578112880328271364696588093472542535450485250900677346196714247390233069547457760578541972617265608465893085248919651087011259003133327193752100414108052203159270296150140134255561945747754880489076223982750524349073941144965976228046277516701408997210919277235117332618029795313857133059462863350098317286343708111967212770498912770510126478531716278575326035031334621071615973237774772034513073463611470607850349934703137973853898035991822962275112413130879846249841139192952858333781859777423841585184861395296186398561577538920873510865956925902243196257767285406546021972425170998233624933306311113570440154605429234272940220315991481899134566685422900564799883034347541959975042234930443561960221106756266474084168845597184529075495454650469927511680840905597923362054532090713512821634929871001869846646483715265753190092463693442054258630451424110673336478434406626334189352934397945495271799402297083613376471219782178287314613902750367941372934005351419186941541658022648113472282279673023764887226691685431437621693086222391993016325723301648501674673323974261497796224520346539386531351823442218315078219403140957916862221902768235058639367184191725676400003598291036484255116008470748013017237242059964006477060977986192239970583652248307798568161087960696896084175847891999485330523720318116709984762395012707899970918372541986987977806412289985532599246525236298695591957598581794369915476016175595043173283341459490581097252287683774609425426499215484770935806997353785429984755167791555549024655785873457986328383980632557405519075757474546244415937442115263571212442792092259410150165703865436827985388654569528260032163687647309099880956649454325997107538661015743354909919008783435721091405193605083594733694841550409663491213814622185281158825559252382940116571288178338696202224605327369048379257439986305783800349153484372139373503705831374968999127034573222238100611771429397435734737574455051882691199721332125202564469686799187526508107845872185783126101927173864503831891267825003737575610001639095788752644194388050068607688769223851156277485905848547849569231740109838145077434210268910240144685255381886473209320499673621496886786166112055653756135363183452095897662827695666361614377271854035270979274206827967877993377711988003487518277530761022671820572748222454991769006858517092555549372935406718073954909972648455542009608787100981306840785140765546267751162368917902988871059393571607765078367249782876286720515448194613430694865847008417109068906303115961302097397634580539001616601235757800470086741629904269357467822963977856582513338404803765868762205792615815341110206762804994574400305663905676124633867955180150086730727442143708677041229099296167886614872781535369502967843692125220826354744402819503967133490002082438308258177073709664626664366364317162266081379498887201182156465832177903799960995219247864020221764421454271091696862772370263283282187683293691686553467251543955983287999118762274043445998766679212124143816993869515034027345157389757353871972287265044673642903435516055204387860099818488706536890098530915506145796379904033954171435310104482970570724591299952543816826421200046019832728875466276561054681127724079699936177186504246592098479789770935926186481719561031545396848476092209404231924887553055435400841332399294064953595449807532293470407278904561551302731437136119272088479652279836181177930610789582280569279854274732945355711494335537075048513258757570681162817867264365775051492539531541770256288733195009958380525276003461214422927980595733824975081502305606838286001520898155637024493363508934347647140191805321905752864515249981120705902803773862291754642377732978378576224839741516633075713170228933888901473585637770953755351693003532915666804242025056604750235140371908796153466973810079446353194475536452081156208283061823545729330018994017058554377789851996737322728947904407132824261342004468820447661566341144828624899766049913509303052339013415839959007717420229979930078042258339462858325355840107364000522574915898514802343306665881567693805909288301521255846477261788220928058198900740333865329378341280217819640678494805622303332147947117463382130677317923579602671926659128428268088824464453583324472501529796943680494825594801872779186656560875547173301763667574769354994225050072527600265865383448318146240594386943549776379665269689816535239389724628031852174065031375523780585365342049655846172984086778009974235510024675393085016474508280362521151625124224559451955494868219466544512762759807962289478618360787839261181610721727268447601638937451679305359155776240096401617197924233204030381403107328048657827797403051080572313647208932532821713862770504962349316820357808487682900616486971058729343793744990937408815630087997461846620541791908966454545817413070697318468027803362447541626384625611231140933612642391876467041729378965285214480895218165295412731323288975135680285008451279101155356782384034508918342880406454714742151500402626001516155216533039068923665390470385566459080790713615042775249880660627294130514044337827363622920927245701459204544610241410890444636597880349448576952704387153960847598103638947705040220343141464249050000719535759831506675431660179355549725696381400136556840752495336045263210304659936592200636580483185572550496873861258095285924367023895031011912792197927695420632894434855450083190909671447154676793950568225568769398146393551641874970118483773988085409711030963295134084664429732083078327034790427447090875292588109352410414659927362436063111997154291775800964641261183407501288604937686880311699941256928466466378600412717584774535266191507817554302320810152308752782358726462870001346507497264261691657778626748056407001801495974155403160769635347639328816164592302274684128485110151157946453995292488242847687291980938892506895926117125390642060132391121047213183410291440851803017908247824429181022433715457877812538330789421944698201829995114379139100279947093159802778310526909812444540411246219681869846475574222317911761673216586362593569335254919848061269034205416809887630050511799740576669646263847616782024364483303839093949758526816178476301563311292962535720711273870365909445432459342549777450878126334214362827058662751652839398001032273989021232716001749475124922650095369924749640698861230698692816166847188512649999866222420203082054268687220042296477836999130460903873797090070222268159867770602643232263080581176270296180088369255828402444157899062681572844881373517089528886257142115599109160231703259937075777360005166849154149077778887559669655618777685073597412135044685531892667482862241420014224073730421367457395645165134849494607119382294490186741417599678765844413455534572556580645551665850385390888854390475246014719367959537508468737591993036989441120125192768835924720936347941915135807593951132344038844604114064480364051697046581669963730520674371476388386183427311506555859906581230060014555376535711472558802451882195145414189899913281201811600571784971187486622103946588313342481129724041948675193447210308120254527031594419153900533214200122136814565556725259668554541547105081724404848102284278892323313349764004865817988934442898615740957936965642688816603559684579342287453849279608391394614964199040582149104936475224696881157983658424195120762324294595507152939709205479877155410657045454003166596773835553746735750765382465860503688136744108424107120313021890972029943425856421387437369955482301666878043168531702129738462262290441023246205741444117977922210233906559849849071666781017762471366705358637111671034697233965449287139034719139795019005552864530030610660460521921289645297453857803066187712716931179941487150124931030853354779194358941646222934642710762165892968121178808511064794185008360691997288078059893889937586303175524373131730981090457169988763895902906575488238001526934744610172925917944899587160963408178742912355867559408238096097045178208001751473200675046533500851917272889078657162574008016828946819115978877486881038227970109077677125189510530233974527824957203577078534478515968881971931098617381753299762670188809605469483700051834686024780203956306901121421350950653790989761024019301140081558372006158417593333174153439692486537931748267698974867677206065738118198412339900688205806165898976391730516185116673476855194830154583366731036425127051409084777462513131800318965034223289335022331584421735185597243812283592658488009638194874306689775053909558763788677818219499085785025219711290965456625133376480441839997097369611045494805066231213439863858384452452004752598017616433478027434408967513148969244578988908007381980708129983537596965987281615145991189043963238760215755855939027954985194028809581977153403813879790882147181779758025784592138201090580014167245275463089766202106299884842702743397669080132310114036076182411573559203376403037015560840983785644835533241138104425216344975435927395371522737397855306251181517370634908898407423684681491377978027744528247825162267628165939182734802374518616939664669501084981097727011393100384277178100334681877249735591957433107351803787660601730608679525420152550716981831587290548679591039304550178974553353209724277712349925073920865207683714594501915974325704049890522888745506774520609181487925982103944321254103084864053333285731439057737681972622631220460850597104469255105358563430563473777608728353020784869549908097296001572532880680458247113537704260118932083040353217046488634341032718339958126343981352159789571091303831484794038532277756440858191256214383039224310838589800606520293061321395572127711567066877704836539543167347063720903850238056112600016993154595114114082079587573511145962473521585009005623716175893919989597577698979376074416499175009856591330809548359335463168872611614999839446803637749616582872800354278479776732873557075596211649185117978177226046841975931814384415013524064366850781886999193388454171461821834919193484591941106351451711360501135094712384657739266529297934087468726084299391783848427873202237210779303236039634937352224136080220125047145901829325652351175827057514888604111772233017033061785331007610831470487997576243783703508034059998384384218700664524286377694990555736000026473923442101263310827232052368812278424831008725861206749001997499998330870892501970395188515703217982394247246301912815645760410971545113705927230861151319817019292245018018610155271620159087251505748302838084470533117894045118417095665358822816404227701200712210690701445623594101904825480163749892853728514345346507001747632718178808931008996270027349029825701304580108363872940742322082401384050385060244960026363727774649136877710388530770754840945507980519731355215426304587185204305985344098331446833120253949854466323843575695910430459492497176456531614171968788164235581064532491613948578749521505120347981429188716239546288716211196380219928623850527531823337053808373391805994851959314441025945011286684316372439976620133681345218397358040430457869649499008765311961804760701873968514838712465194340764046086850000974305672052319087605951100738561258531915186346031842953057881424810209984003464216881039084867942717877415716867445284352222863096555357981643536240509227863573340434437935538034385537032610876795904515955722850262556301571791782024506310459979774627259417012964245294078632280670362093682855343735811834584178874146845971098921964712550917122993944672519534995240507568335096826360375355582446891723981677236754645852307326645135760646682756894078824700447024417564860346737159093579216446643853450330634149897904263167336985678040560526922957570560629288183998678639474890232863091492816077095298751288602213299274826103201776033349290157966733020264707885064521845460040932059618959646923034457302692280564194956171790899280027689758057988083911294343469381068438405966587391778317225320204146199454157820558834279890598367780456406721373384453920035743001131990093230051388385988821673375423509129183083018010926612297315639759678571863633294313304819010506485701672461370019051647195855346759230079608428784466654901902015884619644312130403223777774349384699787167606162158792248631732176648952739094712265401477819338551582734253816923197448151519319355388254171393158680307366467959539868133808455872810482026244949071453373624578276854352744371208946640911820681239503461184270960982748084385460707052922614882030364645389836879266220842399155062366667035043883318255835732391852233084040320361024970000685297407033318545451535796416232013564902790865869001366980411066742065459684206408623496590070779330868957789299982903871652054175679864644666853541549815367154665199071672478696154078455420718963034583849649933442603823158725459361026727996855377892318479928116801656262825472294801874776851225769417819392562087804027637174427627242701909135570221748851444059674220424902588856433799171408624251463090324246575885738445817570522258259763658009657320056949263484382230402463300058871384973322640733439553430957981180000320640933495679434370119073914995907301812185155153530384918870603183429156382446265277352420531772260059698879617395371005996838944387280130446883483330688403106468470181645040076837867962346758425732991727422014036029364464930711476027353347357305258947746648956938963137316310003484963376412121210494086472112127149357504479930088829874729556455437200785035205648077450224417390808685176723084296515389605247676411592930597705629005922249376973147056928418811206354483583989504003364017980222805036563824274123377084979147962002429657152787634849833205750212563010221491245913101397168119949813949372928081527230477529953410516437422668877296410048229168804747553869213851539472963639934468584301035963003828052250143271741180113754089675086192716589473219991426436475770073214537870146265050557469608673025260565662524192406527558104047964742168253133588305463454474475282955939472757871262552667176456845805530559573537332523511785333757696564675352352379552568846384430227353103350721652254709631277032287850068772059057439454611260372191681060674882354802638679540037776786848248981063163629024253074155708854520483399542471856194685512887134956294855882740951710380728130491981518557888682484293063932938202182294961353424089551674549548133918891492182577270880520199732710852582143485856292554079281109012524591242495132129910325079481563516315180005391372385763964466887786493139175076318861719868298061346010263160961960406616386539512691164730867589679295732811400702530513891890876266053578473111850042554673264140072467340221993369222828016657694406081801398859468199472221520098376331174654470813820334302353488610578293367943361942090565117857978267476668797876207366610788615152995721271379872460040466289655604970523367630619553242909609074623933517999068882860973044613858679658203650185089061956125583076899302768658313763272735359951470266980912495279378867632295570977864431212258323278037455871485174221068811820316803259881013507274661783667357686756936262527716572996028566663110328906889694911697967350382844743507766678821381100576658254673986271695517041724893114413250029363861552369129447239952833638841165828173598110150307215396336343946490394805527602731695399447324326472208460384458596105634416235295895758914323267572825043956908621421210605605196479408305679650353424969395807629272320799543329609338534025106429289851907244264652576046557449035423893699108484864508512671206628954845148537777565389810867864111323354234582050868510559502813626058823544898332842337197634993643762805969141931261856672438211352757665797791504911007911529115986220096920138696355683713435205537021827909380557325928792467509976155242593505484425766468773880992714451695056122992074741350047446896336596568720832048464126499729256000146878269404103413461501805202695490957222774749896398331859062834430727604207881379268713858188739171465079724874153367449835798370204999694606656000836539523047149345794399094588411460017397035964043673707278697922051175538782528040640410740624005354887649602562065166097003533948743385369076108383782657150711383826465282636046021612598672494845656261292429309329271616300062288045353355799800259600057202551524294800545490499624680423342326876843077929507602689899264454064284310189267110602456387541262629589041117336480813055665384399749343733787216468441675692557611157817802709895950662737937050381199245905912588015321413915451525598521456401448713151923891983471022723597489741200191287203584110055019559434790716952839352639327997645417673686450619575823732464983162347694183464395573535097836374284413621126743053324635967335316207571743297214176869616922398970130542444392736854019890209764291202020095108753220753764041365323425176057885499373026159508542682976003737929751591010318323806318989356828764726252542424300084278868756949933081130263074679033938530088728071758688248060647163815731693227569300743183650662223142186085810724407777435507121395601599676777492148927509454101229853528555279372242152549336765845095563528034188637715912280454109613044932239477838095722756292996224848776350733103418855157517486109152767356037956632989240033518455312428866994633429501520620375320138862751075021936121586111760900008249544141000872334175110098483317084283446389585210702220024509580689207591333661823380707680272750147882392995859032610851127626276111959939583026392580042564189381693430577673718158441141781811004602193397256886797471185899446408253623958655851034554355816168715522783771622338659050139069532345354024778409960230518266119904026002946325009761891278984946337068051759381368875547240860208060205622690664940613526572873329565936045988917764110358921398094029545894225267826237278624517568130748393490312068117545044954358455960368278770220053152271852120341756373575779431207660337879986919742129763846641655502518555907216306084658383458491666768858075110573382343489283966708455458354417795198486877451839151362095013591221095499944525328984805376434557780901091220085157200523993901507574576196131137684441685652862060994801917262826584158805489383763924896567895314085617223826550321182099434466392354898722985083762160755429295707187812452088357845287124307560785300348190325414856054731454805291248658545927700570614849264857489819305044998914086085801884448390245114581106578228244151301486869518274942333352589821559205217950467331417206450939084440805939306706974756410742487397583710149240444164039557280332206616353955800793989701955230932768760079176969807794315457516766068462892745023769156010863990845809243603794457102786673793740734542399582587942942431035312904157352429002798632012152878759759624277078916080262766474319681354977597058426885448720196579766879154085446479718546734243708563830978360190413511652906071675124741459671364409161833501309948251560926444178127904791458670312489379890767298127945553193542831706611621643389101783460381418343365716935688789912385976129220316107854959590540857389550663273019344026286068108937360965822601267517541319744604861662849931112151050240888009285848283752134662968163343356758372095936279941295797107594373300531307024595712056094170398834597877984768775398318299023771104570448366646850268333274279986964751908890696293183604209305416277313175011956829256434638683056415583452060131321609562302806979734716166405390260553917888791523735599241322395988982129064101235185241284822326694360217349639363226652013909812760447253844310332349964104986827078745324532422821763039536610585943571093724398057641644054077566377425066849117804115042383325480073394402641566319401326300276430092491941423653282695689912037215432080076309601369244883819191224739417024938338076803256612680258539989753828626421664543082150745339786675481249143266436733813907081010120130419524821345926717140172299210912812771592058244800754654274078210047747995232013057701526695307200725648810948194238107778930255197708045235418041333098625294544548592009340542109899125391651178243983931171369880748108884521533752974594357658937356507756273091829669732642741259807011384344763690020920132569071230270426810630235715821860435064617547396249619412751314352284234616729844218025735123411156529045818912571081365026968377504645752324072495717755298872922709161108811294948132257791411985224694608631815536152608820571463771930045152877008217828410710227220318595409846080877180364295936250228466850551245898274491984202390685826971497974784666986458755709412076937644428965885423677427206759407898493200408831120662222705289467702057244576344396650766472270045796420755186933833463026237170090158454293460560067534842772246125873127298962821150529739886289973633976807646816359101092607481350945957459640686046773560330713721482269902912678904795868009728163792859774167681209446076796872633286047620772279467441947341779008920831860630072346154649482741359746514774122001442030759360103215223501499272120002965816240285456492613659538482830201261863291581229713701005035509048576404345593729168261948629818285883984333076266901354281823768343790619396234057000661991087345682278445288914182620888386730276200490396681454277918740893644922638195165346519558562622020861428551490814868085436984086856762871917144096201646292621917134454593920784367432051627882110229887975634920746591917807677008953342942058218117740270459235394310210867325942201803147982411194756803831762960454510754690244167812882418579933833897531336830668644023686935112323066844309364133683326189189560392886028686090892598154930802043322229801251382577547060947836485667802118314025162229332288105686403911765058265999415392112742502175193310771182672949905133637704694854406543494658071965362882545688141085073093753641244131154441957495169985261560561725140618140652132668757712236542616025114395741327388508331590147929480321015902628617424429158711173019564555026153554214558511554326099017058756057585947023848763969745289922644647225909401713713558001978908060731119490078867359887320508139217104219208810736042984508600577471869682287509847076806137637758534977966537628661266787964124192254125260092986777502975288307446998892417119377354385958346176493040356548273968499784930773546282413402933541516726327997365775974643524931463094665624412536749293172756448917752051444244576053698307680020964901070536006183456534647897358247519260666673977821225827024418577775794946963499764879631370793681733593436363017244584698740671661334405525249560495366995626770458952649655924401456882206469753691147812083114901311372739178197487285691024218403160505166589068180265232447885010804071272130476732698787495821081623270633521885086953746602492034462654352466086458176189078716163524680000175992542103740380927148449372251188207146381295318308814790905066955144891812831690268687103326899945062757386197938612760774619984292646923926938060834844007928438503848834030665423086667027247631806576407628728165964329416104551721839952218589564054228971805857861643011266350498461919389826744358685957749198060981225767140510272013248769788012862376189511445690182311182054954064251523690782758964852423430382785751803638822313047060999381183067692450391410046983729956113095695725204770865348548212683869728812906628397559827765170602036061180629369248036105912113651360431314959563757117911436592472531996856539788822596688881181506931908572026095377701825185005122769436713871555143914323843770581370867957779108779243486695674736011010454377882823670029698582639671182721177697794193761831623000092064138192795876812599742377158347874130055766681541625308480417860644787276921544547293243754244686149306674051138043890430555653486221709862396556298026924520529821629852513451756505590204158291875017914266838489944767279732598177341933716191254124352616108824679942155217922343779248758463490945579965781636166970444862048641874920967751221277981683990440578452013156853950309281554105077789602367083553505687085168237096217073181156257397456868977759956517453414459393025021341901283571078095619668579694141707595195333065094496853835287206050766421356980857223668652056903397705696221662431753084721743140931855355051346067445851900198934206211512832570327006498994380107404749316177314853568470531310311845265202186894868235894104212463373352250213120339722735278695967933095234137358663262747067761180769595780907165997313229287543013633280776740812792103340277279405055525789452503945908034296529020489775408108520916827486047030585895325950879184192408459333872407878647011209973890792144907392251001537669148182447653205941960596776775529830602920778335715892109438966814275122672271169070731126359028815759936007547188089400372360929131885640841645093007693506500038729722853948758788251107106914074980408510978305081942165958024195737238634698902060953200495469776893671024993160852705809456087557927116919555300606126547768309030465902359305584563523303876846194961916646757271092164312707796127920026828968569530111613300483627096428537806348744375150594322279172246671603201331938510414904761559668343170098491137347301480340879829078334951641473641142724227395628568615026793012408402751061938408794355759481841187235622225453124262012888486499812694399718560568272648837878633522231831161798739711478154369617143649512629358448907003773706133318929794197267087135994687904707102104945295657219350656890056294542110775159667457187329923603198600639825943831879757565628617974872350053684958421751563596244998089692153719998880425719077030596653557806843892662879630106194541235448561150197672164007140757010674035354124174570676098528178300245223088788426496579790101878602868914510405962470063868238856240071198224923576631943079831145334568949879048316290286159505749260493839615567804880582357277141444912845164737575278075337441673274493588497606510294135966769303086790897778814109767496031028205190338662693069652442610487583370859877805430473303548562058693571988765859386527608195614236986842723508855593923316310990824301123363076361171532686172277772230043647138336703484571435256374477222482699928803680303315648083632335731731090051828943952063728865494998761318538521365458126541035407875017849207471051528056943098993729478019672382340961321667431297054349512146691540810966939737377335742527700126912221366426065730758574750502691333609186071565518048771224776488056979466289873947452296619591768700964221556141820841196990309384028726569673178086904083431010967761727627060279279609759381715768118327389411362170747286434542243201073251483460799970590989513399027496170538757174281275951409981257664899415142861217628432704575626350748237069388438708842830831259645563866198100100480325051209735237178141152196419618126133744025577095767613510041146510379554879051920422724465365671321762936677192008391809070996044051357264015823641488849493227403006937731127910329353706347488363510938453019952026743397448379569386786956520594395141926722283729559219143532756605168109603700643899042014343333140811259350061485345576140916326217062127564577380682532674083964861382878080739944806445031757845613335919325278598579356045947739222199866030235413687272389839888747535983393349343279362108284813138836900594949655725424027096585014796824782848479506382462745860867412266799382414487817576797523835879700573966891096408536873438924467813807491242268659300116191776738435292801633682440250227144382217140356319853186599978648971382423464667933903069217337450216410002431382099851052971087795670346693387811771122749464857232947764098049435242332232516008550393696639841620079466283693393138844135763750513228598468637703926698079858853228048687944724475835131627478800414211274327863726362912720322612409690706140520746935791624260086098117742460347068599751579056537119006261826697097054720718943700605289571951568577962187072022710184429809694932192529709274049960129030815970974517494447061025095639517989142792936249574238854889968328362198452017727450147012876533524099611438886208459966368161382327257576312713426408144101192313743279663520488818932784018181987232939635274156547058500411176993272203482725960740162802475754124263102569278170599797885245257346457020444391480670734729200810421202427360019668447803215767578991637559489374279842380504136221572408318441329935058148968307760839042002859921343540286971504257352192664402068545485985195982171342743324682585322863392629215654187284132059792884905636793923948552959569379372147602805615538420266526318238526600907153637911857207585977069954231706489527067174275596138770261800420146745226314610677090243593163072995545025766677435010647112032915586454093551157629932046330451199731773811025194060037858515085390926559170064554451612991068335218217215443630951176413707587075551696218019306757208834632999443365569025482675831643536093604150512648571009368842563091789913868213052360534260150019846987103449335353103058056224303619475910731291781520611084075102840269096982685788369747543683888763127337405370873028225934991128114292532980795993009218622748594527644210453049307474202000883761661678945499445125439219864101390833756571381666665209427952805649032231824028284382494138883609301390164371926266152742412803958026472911649570141153151302892664895909243511742913323179121126223069532950198904109086836089947024869651869033298717440523571890444639618966334652417727615156551715320207120506160367761999846916420302183553542346383429319527580189279325994934217497363246649435910272137068921035615558011081411750441126826456047002771977064394697139375353816717084599816229832954518008426739601067649181971322464027763677533713377278740830187582383646125263238853022629208744023602958756733739571771667047373756363006415643977294803129661863992866753565523701229508042134730483247923330726456393340801378772723888996384147182343858098636862078377564600588618543757870914557221726581241079694882102771421808792106377595945278976830249566977624053935822070732774359348159028307396904009417444364980713697139062884156641621068377547568202755751022571141279712875191753015550508278554287970690657167977622016874236965862670639187157744418618707716831250091474069741612617359540132801695126081674693337724908138609631631750707596199615708517335910445489909215747725465914059196237206529416880358228946931019322742814152398249396470797079969240131762791388840425982846819029374764473397039046918657334798114228220941394520351059484062814774857502643060897441998003830488542484898920676081806140245671309446331262316234238620436174458363679753123121795216375371819475479497700789767760611447211523905872044897336150150621323257556812779797794578607980854563562524054781605762204405587382995083983853162533780369260486156790687616578819493419086152442263133648586844028806227177958966506185050937644181394365125829375741583201042635730291937071438785675912738104322269333914931110099729547788135619064836138100960864938924931878367138628281772303982289870261471218089692880324708915839325529519258826278249274425529950865817373911783125765706200165269240299077518746196010912829288948525988466077487782248323913387109358583293443687379405606671170997048728465920004958115047617996544316068163583027444007409706273842328755094741612692972433840655378880011215881813723925746516302732544784663376320482882815666327243703983808792393982750278968691042130347206748591195896097709599713717772835939114660630982282290504842245085793766029488746146911926172081636632909052914193902824800185807643664494502187485275710382990793126062316739063923052278195257316728211787240541641463994409755642319737604667332751964979136100795929360715036207157632460486879758458385570770358524175930762635609825650284721108211375957544226749905126669834350985648815986760844030222831788708689491251837406903674874120365176841448283115417009352229377724064315264798976541429059168803680473530606621058759651632328510724091046442749962291783924837741153006261521227470685616933865758666845020718186337158362492323421297133591435760639299492669720364377199871980623821538608452077272495997916099876125237049224576605603417193397897468262487544634681472923428426219256673910221186992298778638028114267443808022516769214092639482895370092552212326767866834116654332658628898687257249825252573878056934477316895087681232377576747120178863994552605346986440712446605597972490198326125903562935160851262736834529175947633999866205515564527357690332643786846973489892671534359926669409303108896751216014818339542256516029962081513462636776165187413312550796323463432223874935807690506691723112763456140886525109012888750542635463971494222435945876112946608527058280208982101632036065409874617404654126058273461175869920549840813369195113180884786247301218386826052310446966545191869308641891582893970997737844137066660504583774936677498316221119142175593978288101837905233735790067762265168917389269188293623647444609981726451768185840895756109299180159784360822941286941989625626388841653066060249640361329946907338269917497862657913684140494781347766815194882188559227062896513562012039475512451999760503997608159950761254853947205893304304429611172575616226684908746586683807974549111006699993115026327473380950001513331942780812249656630155721016391292224974038623274763378447454389941549219259143205662457198679252799601944738959386334320729658608290748823431233073364099206822745385557095142122264419885727950383545751252006733218876894516071244749260540774625511033831009812276580119221626917053323261014816295993628080338066085154598684527397909293076523435518099788717694985478792873629348389663039107234234112594335610645166174958770195006809762302592650091152578555083460287092883328366697387570107425597899889067050793334830962939725824472488510497551010751992717871384309541136631115329690985430192399784135813787148915280574899677652881326920492487492449890920181020941029098482381713385090862101992575308937583135676081225424794431550099899432900845215291601200048270010905033477332065745682611210525980836920048856868060935003570763649277750437015199388690276630418072559972437952590558142311309623067657593888968654345772493425424809204067989255849616229150310389308604079790783696976197838155873584819043552926859012241449115064150883313404404063323202507973326445636396564475603351332857036816873236394428452461750000320093160389968788947632526702521467740114298825155010244175718324650933632700669416143400668439536393783461560360592578743258251339676672173653735956629605016878223570092628933851752127905204765178080650739529692363464314815330940816937317357574026824133400348136276960823156627827376362451092474930571547146808604964083081500077179157168951421194613341070919819750092451323357298028471523442400373981684628245285934293020530989705949814534791567232790479949524165365696204310887430582938080362409180263712465950511421671828841717034142309197716101399777929066870291804331977980709271158512886731849007324426635071003447326141851661546192310026613345983828468591034179761748106980221487574424139423362399845117972473804809302885257754309790257469241381281170445771089627849063870816969275706287867228007551244290258748284774493518631028636168013266301539515742565471727777708400763400856200449416263497335441085214399756539258349986290600106853412722476851681781814887795337314650415231615886832333180420723391399642919485884553030362985389776303754372781191594135448569981912072407303789466038051553160560281836516150926294836253595487351744830631406457931827279721195930968027881655812891391479675347702721345535303347351879220300625679029192606582082407143437872073573186222537874690011075533538771423343370881465016013335371301609016905489370767372797415899687630987792443743760393723684685076671771094883077184446346301432629704662804996885483532924104239870374972513578275656880227170663691263799575939254671180755998559423805949619133961468516972051961297128236249194777581147850146680441266807424384755112334588245968906860736538425976448138637028489025032075028016779702228000810806918876351913022575850010601957971312886286279122880958798216610126131986957690841090934243871307918629122635507165230725719308161100588555629272526493617551219045777263616719131087330034648755411412325967589959558536632072743347846148313603098836962905710359847298540470516508230813495967397259712981867913317414609948380649999447567904198593599117174534641812669428337236403518729466060911095355937531542147613674037041860850078991064556175160421915190560340705176034731276448774749227962613881918440589844142231633553989845829028462898752353012970336250261150526572421260721337730722196169137482280854364490516158059110713274820375686636436377459463149192198249436282772985004770402789864295825421546809456996787787031869927140389445900152974848171009583689457827595986403499852596624715941797726151782807098298292630038405667068470118517020076247376019771251434808706326380865295750231623434766659309661826525926996723164897603272846909277266120062632504822755854401695106546151475618735687083984739930516019334622480279833054018136835205918397444102631976434900706762072078666916829366420436816605415466248607146439818292315732554527395119444926719423472785566286326117935323317801581552781039834008023534614326080730968331360974029055234138133125635889496880541766142278870537347380695487998215481534559691439398807605675202251232931465350686946734289977044150455540046488427351198026674019691036336180313913555708933946858137343707853235305193464018710919671727337958739323760196709561963138577748674767589744461752760813579825570213199079236873895773947172692587006040286782144233892387515552589624852581946594922035727882691880161430874487290234370586284931891590574385449633460556176845979380337369877140462012824861263559278218095529626734739220935675183652388334151566136131965801618252090275687535177075794524066063068321476864886214394883245838348633210844437688073895643435057314768638429078312115451225906817690875706081656055009747229848009006876639029473530147825537479947424774485252348751200709604796182523841030779418809685653027622843953153335837944741555710154470903256651682024169784795377680877268799640637235145603115991063777895613262857882529702660190087668031732193470838956018255083582654136141211165155181956172531301963975589929490748480695982359693439330495651440583939792355429598011985632079820329372707068062008349656771270398600558297052490001908783200448288602055242644855909000100231938287707324955310537912734152922533107051803450850467692130596168690656184983042842951137057849884951685850058139981394266157894011255618317850846564987165464458990103242819555972821921453577919370831306416541515734268494851745000599207106688192664725290660711812356831319106605733041221297756840461900238244408852420470839560391317572648252724803598761760461411517020284998790655000728158378737809684282850354755317507809720322556798440587186498377362134993636297546225671779384487737294453343374788911687426381799169424176400719842621274737493347309612651568161469107746140348681009199591597814400605735971130386451928171668827739253462003132864022147811158533843663963658639172973029038266561461606215692394242748632874183974776418920271133429099135572372510311875741562111769783973595844540575844999341148005973525094194785553058463965208424861556400471433011405851650061048116766676596683379610869123729840935121427458567497320566699232818038262820002814418935137800685444895108668896450346302974537231593876779140180723929720527468030788512896684748422541598039930694388802942620611644359196023135135198103310365407139182490302455185983357994192313444617406543848750375028787328655112478173405758267339862192738660429303737421644915167890296831702226521679639382770224322372705151125802877217781374872658846221844535122387195738028496501475284327675011308035362842898246242365656911724464695582991150512722304402900460492700745406633868457762671448209132906946193594494626429926176027342302418808430360631382004759273017587735531814639790559008525829011837514523413136626572109195658785714553821170901062870364100629210135538339167023083555533040341380601025302964097532637470107865292069757621649174132654825195051248820968299365831535887759835965668536224019528028579011118437189813084011983418132958522297825308250869243106646842000402973265093651800749891296934323989114088288044943689976412948393736626217911916180055162610027862278759401351854013391070471838975445887533016674974960464704568502177710761745486434891735598725876470132771683542884292373375556000555212557480508298460186795427297975642162503549638898621251277953576631244597596010837165301018167870782800250510019759238526838484644838751658400671478276434805771689922645943124407413995164386518917661755015200048785181835636583395224148136860027885692787109441449907148827240202736237016387582709163296225428442760504596527310174966864827632093270451911329015565783280440390044531724192142476986896408017987375896260393935323481754832920681200233601785706451247474637625528483028581115548793861825561427725783996287683206841215048717374685210649160015048873087653023069996926926938921789055954051550069921890938815752449078465930384453279400399992225215353670356026894212283594125469928099488661400809308205641393843655154553903383504261260148572328838886207744007366890480371938671332361285718224722286934365853820809161662588375233123531378629791440118976823324335328836884648765398948798618055337203392020375165703511213400310939395503094418488856746342317292973581545834115008133010166425239190229251691494948750152371391731509846771994066466794189030132534420495541416883229054798742312740373217805572588460226198688538268896508716871816856561240828523039526748546511017207601579299278686317848198513058064730571079610398063930057693192329306840295475306039112189276567982805293021291220789363495402403801845737431467084140138834878065770217842641760431349598309099588492100431299389892037178595459147906299025155317413445739999490157093998138896694154846596385474208083209955661293306450079787444820310742530020238967948486507268630100538611097390831999470043194618048446645282836530985655077699257667928793690254371945528932705789464009485789795573051982428162764654451079807226861514506499435325728491413896133747421538162521813751273195137253933391727580250759316197376023610038439077265518455199326692294401087062085171851579487918558933407446961956220466386322105587847856468666677842750119224923812823728360662845968419729435136018500067751564874199035389973001508811588176528729594595031450357751286119504913931824673982394373019348779429361908940517841089912334141960184710016158421186994523479585315545813398541541436382769297910048013628418163125398024697177315941130182355594685326305966808957031150957882878524730372767593209964956428364765164981590434772139625670927401851981755790188077783371198171528833477424471797725443977291612377322578325707901397172408253610776994319826800363045892750118898043685271215764939978261845985453428340109026122965290600820339309301176279860187498458020207720135071760499342981641333746571891137910989475906066516407622030390262872899509678875156346569990828982949796264162525388738112847970426556653350038340542819511076766881428473448636250699862584635379987827877779721609728467375254155231241701199084271376561865850639872882056041398262241871783364736387709139033776982540850258873381079328025763275276375156559979635891355809930535734752198189665019713992332787548446345315532723385441353808169249987188812784985381181892438292369021947665159116673119881371246595232403651936693176233841275857701787890472983197276176024368839080778366014049045315880821700660051262116617335228948301257260492751280303163843939283137094993039540053071371848712566451790905620334689577631444986457618362846636037056109885812716515847114506398774864485483547463506233583399568217148405213855846288452603475769416039238446588118635044252737114201860554769298796208419602838270461407907206517954208258864515915774964123978822064518341471446878117003802636995392163109109623407227438589476451622290979893882094242079940446296216497053627793353488642186444107573882499470726422180027481544021120609917063412473848616515339498375587923093412859388374689949248827908429840091372783453552117536670273631458615952018149538643314712854604726988064503993379802742798514569398198258547544171084212091997400315028237994088023428998271034020661220767814450161569094716005836236762959177365366443423444471403052562843722880569046730367749262958646835610379480168245125586834426727601746702463041095510752462992305309326975848014803167481460906100175896187892267379831705322944474148493190551051978456827072278163561658317855315468740590810817564585441999648206921721074774150164169013184723131004609043631333650001678978221899512222404645115538409040905160816545854833106305407977878383161996644393801679542628336096989903072236253158320858532762012887150070140341851412238617785239683180558250702891509249845018753389863292894239993917112098374141804484491145167021541826784425962760322203946750230215810470925983592211246612421499315588902092469726982654618861224714334970290174697343657162639352502152924254819121138349070536344594209514070799374266643764033559169167661450518329034339938074370026927646082304942765624053189415068873001900958652194640965342746709369816916716313576549926318183573825364768497137119092995470965515569924712875798248663387268321888022209185376240396711573165735636047267944192424031909467397905851759176511812016505543225643263458575386255704483124978995098064717910576802213218215479849636196378527701247541378818871690631865823825544127180632794407007187754859160756768315271746230697953479378545725838559006363055267976858920441325305372980989341718928444498668338859010268867747482445927505335390598363694880652676889790103008024694660815357232937707005098082868418748977345531991379948716053343554113995522232580089949838923898401175775613485100423311084885569108309536224598864332213079050883227996095495229586050697396526606459848808857204838231338309616403530171069960003908825790877636505903087950108108335535742910387455061818143675189314452447605518576817818607477167896091274671474306760934344713909086362147794086045435282053581871333784203103354784047323009379472723791912697229603825544906310035172222132270689133543983782322106923753766260278020311939495271055878810521975874424998619062411237284875914526802801731430028862290431074080897988449693267686588417337435679865469777401709752315798920414020441215422247597074731421384075007199986488336247296211007807352473367495379984565655458780756694914911988002334107509823371745843982964497436973308388720966053184912353658912229850724018502020661637778408810543219605533344869077663261059159771643615723966160802986415028242333663125624522381274350822405891959845138232569311082373761182898112800463527618638640275359287173246878624873022979347050289320828341078288707864410457733936875993245174049824551710149240855064632310782034442293213360182684334983970089621589237116987519288823817741837417265470108130799601363157927758303644965681359840324075219232605786044056812433418381305780374279268490846172588560417746123699940779144815999049186786324665629970427050316847285439089037559741643285015044950636843654358019561035860559835455913942919608496472063462964059213324519039904027581706709476838742748108958957177117491477819983192846952460454698887449712947851057624766875557776026549864815115052842804506154457369757094998571282463378950940605655149133345680263570687283528467273194462981262526267762153558922615722128991829891680990229586141024225313820987319221921936837215665979467778329039908828691420093822087351500513414667643456124116143592353133387147204984495394929520057551015879260428684944265674130309558415927778643632646072425588139535169215769680117929347040939132458904288201392008401787482472533944565184868670098817101973089041860936708035274897117559363929596019466687167024573016094591198934380314396993637785241871181301827107232397198030970974239253932895618547718108756516305854357021221174539974147936686741652309532569559770165265110591349488645162635009458890608054252039326579498051705772961586746024844409070005992649805399700587071833985750396046571269559694275809793222029854638012504843232055497203515918139689278883435627729166152990079168005241846805204981318432658820266130978059358018222170332992062359818474691526872628507753874188193309738272015656193887310918041820225743448276868004179060291177960957984286277985719700928401661235325360001487154111666673771962032793119366409242423112323734024373192015937961916509320184314802598151495337718603753231856544147936808856550500914688122058364107636511051178640828697822970306635483630927296154433667086521384571032144776769414100801933131837481481486526379337259592634382452837628108719412305113187080660071822194205236420427501358065783081690842898588579570198906991501610972756122115410340337502628906478020148112817075954507329731505758570988760495383837066775154813863574432510639747777289493677435903795744424510014011555169023531435286248235068870962784209588684529549118888636186422764045409627660991205591716519502960598221540326461391820636004904008057113854038581457005564646105595810450418415781715959553124433577067902223340295615869455771403216478567509756948163763379867879375910436314470997802356861273211320825082039831929063724240544614707947973103958902676677742245715752936069324145398204165871301270545138124121995348278140855223994961980660868313576335224554551071417853908451333084475485599074997653918554418313928859934243976069677261716226973059635813673371903053013905705913566051113705498669750846743586926579653177939682743144666480735178128071688582350645082042411369876836216447087053642899506402829341551512419632376856242803649288933026324125088583882401616485066708259176417108462882413944028583050439818777255645654914851873281891760929687406762439492605823916407514551845596045396807126265278798378811682863379342174957703108463844780346466970971575409853584592678301872717611710692606339084935144548954175345414108524082336724769893238922146953721548022961381452274690812038943244531549981284934462085155400259822816903128406145441747658774065594507736568714508425472213222914986409271054731287354091251011915905190506159656564778283356594896885080029598626257023098286002362419196313724304861345247860629831748349169037776032749096942166929910852296016187154558178006796749698010260072012153305316437705405439693618472340475640369471249306195240646756749003512206377536921388017066587793287715156007677915730017140685025340339195714170247042090077936698676353847805711386938816922374566004181365547167748877108559871542431160215045852959303864600239033741756902464897814334412592249150455747309585545135151403234678141426604299796504209593330897009240874971213721782687248409134640196942656920245086960097910127470554707230689172764314420235918452972522508398940310516941803299692199331227205386106222886012622149463851027814978489878303652320164410632150405192964552025349611762014835537396422124015185681742040173639859754397138668683251290523369432658237731597507142411278982140002135252457952631612335513562456793486332060963247188400101431133772144045938012828914461197562275377303199764031128529842149326199090128294798216722136959918376269073836381102242988401391373836541620653219899511073434483896583478736387467593119455944669963356468109939329876538828312811388577909176728360702387722316475373530559470718370622043128168588827995905703885381251435049577225240429170535870945493600885386952760089131049842549611241581697965413594756974218885147538781278523639366189726616697444032951780203214865240203612341109897627301392587560505304155912774156847817536855728510085424042514123875836650794217147364990724768263158964185496369416361957089842283445865591115696137351760517933060751213688203994134896436464752760274840858649005559223797800348156128176047303326104398739041007983415000921837683495905897813184859987134632837850049753044931135224317236633516742686456006054144824864400877782211253921184899095554720644864693764455725217966660259184046846264125043560692419865558651737160672740228418735440155557245466281218033200774267371570995698038928524097194515048048407658697335774953776001902901827781735712221315151580931184951918274569254351018437441119564443275950661973881752046397736519804644402411063344586611332369399771366948864