PREME/G/MU719011
0171582665145702387274068317708063588813031865623340284375772751324388322138551781136434483275956958939739182543449201783706419248487879072736820731238065064796526956064760135937700608437341560025069772498736792861954481571466533165442291010506368840738506897621662906707859114000515689935484079171704187172220234969057602131924611568327531123763272790535626461156224898272814359096440397043562672840624745256279813976814993010764212854838974180335006168209347150588158550138156522336362803276012124124417705289139253541875175754823763502073738101850498193034378364577518675128997183739737602569071029267286972546350919971494518202762551156147907403478406296201037295445510034948484098368527341997910611839530409598179249750866564452516314741971620718923389625182408741308247400865545790119279709961566627376663003736752882278094533915586295060728156803542436781802587788570936158177456977838729131749041822345291232744074926710133019112954018690874537861005645441615660811915108789958772744205867492949527348129599015596510458441078642107938270239039730587869252657339163688036464587277038655893049641419588603945560403476699306454548710796109077224264523446892261629118307031333479834723829121483634273511528504263432593621910016833232196085848824457748154049017775924603739470248389869664378071004629329952636475206298574022615994392079157289068213085953637296935433849644123743303889807065991337197757334907874656758322906830392915700334702413305733974860075002695977494571765345818717666955981653887155139637008281964748611020754995145225750293587137761605595276796144446005409343200718245240952796374818142944003544629205907877168372420273385569974217649605792964575524294822225156180319370630930112334303616897476708779562345321181898495180657984340351359497554450965014958204815632147368370308856798582857448003717309920707640578298239812555734956322665584219866895559522633520667756826886747714659449046320541890947171372325197372631023213948619273789675448192987605455587832066943693688741333833358652474930866962034968250396560704305342785611740496173756275926096227695979516708900723168883281048013500464856935434351334668872996986417948812973335789235238694037539231286680878356799895270317928684992453694812554012192133526562580255592699620938714186188863054052345585671973144457450976379974308056662326539308552309877744601346317934464677816514587743688319608249559444324811331372384979519137206496384157632424474789203421545909753647678335595972630325029945676970742302999837410368838274455375157769784331631646342707578514937732861610726038906088614909388102761392663507544058653701666619946971901211200991924473417393142030497916642852100242646092846386660353778449532666488490587537160319247171386893656599064200241818841760328075508317081513382554531340774657606227317569498914532028732203057994499039982770021896063481865610627916223934445405020291969108258503296718710476078772907720311588441144743890082016733862603926929388600031878386654386190068463379186312691274279775876309575105366425932763190812611282444523712095989053501785412793755073491509118849478872996282395106281336048404625397985621590707663551396489567188846967866319964991864219350831029571722642105647902445867434161374659030508614501037827648163536504491155805874750173923615813382536847858087388498326044477912836311689346646727925634776257706965273794817914723095431155064332018035466780640877193019204953057877722415605861277930994783141623988586198951197008806525271318396109947136966114921182769476111916371563367589073753802522995689527622128890377693755529319571025705934722024139711501465758335620814933257979345232710784838443628334330877358637729878424530793233249732366546288195309426590552012396317791704832931626246824621418986927217844188617606815267714585239162315343426967735734787095276666678766904915133981130391305452270658076082266317365716653775036357252724415267606371754739724109397328547407186295974592699667304401483542619158244731049573459541447691022479166812027719970759019294860262942616660218969274045579310853804847814877396020092114095493929151510820226813622362610329307107204831480265263346989774823563482076559693105226248657354955462513365950706380589483457996964447227109891302468414779726869449009171216824174547578378457742754011504496434466077702066073038873329707654553589155173604485133198002527289327137280706195431004229319084181387928290751656691055423552267838742868069422575473131496273331654267614120320216710353634544812777125490093153189362175171460268486361599574302527375132867374891013900269570694853755998783082554712427364094206104530644327852719723253743120041031916872487916654661391650359560203879043962983583541026412876301534591381195305713777830111295047556016842999702480786985528622551287906287574508269245010311456204657348214669044599175462950921126236786375763646484369905855974353856817353401262461845045207556110467764052565124448413360594516166076151236882026805344169861769961959533835824312644483561360049034368876835411131889577090692165266879572702224363978648563227314537565597444603985262177388469345347256816844635931729774131669683920153041630297535413044924799440967879428858840912616268258408847431368074640207348062418232402110054285776929731896889192620555423599925203322425223474350975811095511743183413576143487561076844304203044533655655456947876417205468684349536415954683100516636476912678299606243957902227072513409855845495962208856540483568706581774387375789755716335137970922115170525670033692730867492302620719122406509959022944866245298918071069793202202600007321430927651242599869704322066834129313653696936995741911293742160247449223888214349570412920519489474583004020633806693297260236112236477288947369454145010142109774978276238989954228461506146376724348566258311420777585898415231099796921739271432403517053369772380112058675124806870814886557427166204128578569827402898766568261263176592191018070062527712233780637052589604200115571992460426404175947524197940448012241789735250558538157077992093053232147694883839800210356305604087845886440860941476500816484196688528564442260511568623632615467710230609393204336307348591151428992995516626507098708771771807530566194233279153788385097886364965459401100340321920800262971716059238150982838398812174268288640408063497768139518555248741934513281635992576587748206713389547066137653232985178977992728682136739717703607485248227433849986643390003789200211444177346560908526987779695520016853504059663696561373771424195769705364479515165590319344831192225746823932920553414228570774294895111928956864470853739774314393768331854239314285295081987241161104149772636754376539416541475478961379815817255984436535748488812375049926361154419370415444684953812078973541336273072197798922688160731739562367760596545009352631294958809545262324880256686683776928337085013173262714310353454553834220361325461105829922887582259705760024596717770410491848393591631095580587669934014495431172393952095286810336054338004062431504780903876533575375708809640418725284098621208033452202217336626031398662948510427233491080652768315616892833702154520886449470385691088768279305501642703029454124288430007827546896630897693441458708107181538138418731524539587184506525159028338675108841726290493724786760710616252461487673218607823114443415830420114847054051737572224342831174633475318825351068267544281221921493690505785557273057454621936762186440102858910182341725117613289028529029593435162310591960378489292813539063163864458792917611563383591908166943409593454346451492882458525499105823251007951449177987268994307221932544842034455004367563353334769393202670873074037116088530032820903048301421392846661706958809898779944232201706051355340481783842214735047984769641793455217788832852035705323120614061888106658530422030462066408202558330320935710986804305704475770343660144210166631244989282428232990441108604327602223962307219095445694038815061138329116319145748451662367319612959070819519156128955598480719988632677048164959927159472776696260300444015643726700280842793127994013782393807512729506101042593532506520327490961813622924995227616502279010596328229693660265444684532462417339207241904661753695854155993335363159516248217601911464964110403577735535739684498170595222002164764845812279560308645953006130005504316166071267141842680479942765855352927115354620238864617481156542672710900428207325488003767910662014599604466124733762943833025720209753906836171224292614928889309048605639652389563648269878334929358674727354098372746322142017462501519155340018053934146568548327835746762091040100957430516560840282091795516474105062181404649423526370581974034595523332341048343966325277405454487809618047887154273403302224765724276129011133214788433194122245050285118178271046022532648180335001310060157459805182144470889346642011535334219221067573825776984747668023570484182438372487066760810104021640071150400251420174448226588107620483874761560353913000216222281907700610429677536838247959829886243677634620329965259318743236234108204845000401015188438831060534996523657830450756434563499925087162672309719478883480592082496156974627460262058671431580802472669894458200156455983616335292878497885798044123825207638960587640700570580196435423536740418356695141855316967434385498028150143025515995663672010514038414963089985923346264017753303606450525511285548555913913560190087139024102973619669433911865302659160465582862732718666732059708585226295914764872490325542452723780441036839025708170876673251583778918938296011311837554260383429300454231991921633343088934486491084361323888825004829954028156614959625104148928464263081241069578689944648346406787741995255825252352473495134499502018692638404008030517661866150011295050823661682431401882272184321800546294855654005884825776129551602538720512004714740422718716117862123264096083671355923857478627072200936045705552507453359470257238443206688138590075807664027034634513927502295165902355306321758192691993025794514036655103664099845312505545585009771565965271985073563091010396606001309108730079027923641836285130635234645695633423213080317408197750923795673709850668236560628488642307251731937830841288660870815857548428509791813115911659069354250162839971455135070520478676049613722990055255285831422976081579779895162360724237608620578506732021630695786912932159613097392216278025263640725632275012349260185061691163238165668412544638641818307060048047046065732274661302110809214626736359968278735126249239612201761691330169233684206308616665002680118005755467259090846036670498224242544792777245181950121657521497800722903950958493851037684756181418716722752317856581444095853796740814081101326883491634332130332443882087178580282195687397799317014406945869916398776381184814665403437934783968862621244700137408761678590403863162836087700365480370819909838031006663041236664458037596274021497188345455041851447311395447333207863198113571494560960657957090519618520873834757897143276644483832426799588699528168108419199692455489548778954437283357397228478343052539238143718591444299885702402144908821315327766715276580895961889867974780210794166918192885413426719991383624732741393469860553539932984693835356266638251432872814048169736356529525361487228000483185509813199906641782848058358401756840795063403376206451703246107988196516535629335833436644371695353083646822327766407063872463671394958362466001785023554842825544338867947964489553078275560862252435626575443749319762450567920708076218449631963957158185336626944058541699658599588265396459843561448052991845060000347280678528787926534076397358059255649330394062463472128042970590036579497128016902531339516606730599192844112038704910053704945160119669530272864857595292425698272288416359287629222009649592649578340780880620950979315102676440301213326188246544225193729622378972280550600528287425742973531628122698291859578070555284345764162157681247566226279362613342540962460209699856552093971451803194621698070654672529863100458006846370584846848202308187641872237658208664530770422320367476464038790914948886955341046558751384177061547535055771920801756101426297748213517506796896424184030517070841945011152239986450703817566611575191680239781780239746329654179102576527810876186642476309383819444242826781939294888878227038179563238975158397005274347298606983950232456035374462344019111321600185418432713668213366561290251677916661124353561533859565208374332107124769734898443350285036921236805347831379696206778752644137900801217475323086704369406749182942674617061341038275755121570771857253704990381068004108781694878888513383814197330025976679716172421946569686112488402838307248692715669928492919137792794733000283989814123924777119659108303499382588596255928497925146433172763884052252854396975246304127883580213675081794661792830948638638610076487502851198007295629655137673616286001679812211308746276868652597967718682318678059658066509168446545850059322080495174809702229459548066912353467808525491325545708347174270467507851660239886995816260203373514606861751622608101493242044961973327126962533670817266438023016737441619450186155191336179836345164284580289201695484108440927094653707775202750242742888531060944529329899717313739367791097220959274967985315581864336430972952654723240051131425899471098220798579446093947912409792423626461154053789410774062924050543456942073078741721590641724713926441625936923041839978353808923915604730671688407613139450151330232101982697691167000876676450078926064315563068243258450268606419361588724178709740991258594521042091889173600608339171712066131434641724026840673081780194357520514663420884948957647761727047667046611663723863435708116765922814841982220245292047362728355398544990340097722042050131017564233978536509763253068396463043487992961803329833885560761673701759498073528724841232822055932381562528021308551871161354749093644241815644351677386824313857587304435195458651770326670528330631005686355794588275417244296140463652748966685601865145780623721570848192270059492705478104672394133576020540933800333775522915797082654781741334174385177652631957818750775989358497016823219238048225264056683120207915710900668638258640688428367959097404740624691308042596797893311344279611370033455226308191798083423802373332115378693966704833536478260265445576942614538481658136880238408116698671913137784456405402773218964920893284966458710351442137598998804551804736400285516522435773710982648671970652833382122409876190925633101232157691666490902330880021797553618511821053871654563071970430733207799108139181248429337798766412117730589750668638955653851337059971549428578024974854401387541309492360681641583329078096199464840791585729887717865975238643452960175889193625584345157145058578321983964466690327470978435410956658437867886257045310854348106857017856994226277729824384707844018205553279698410169381676477556379503487480988294972801232073654744568260358518449390700961316987372518900484184007758276186074922289332403765657331537376311172637896401635536851183416055630912363072875249071821965676099648970757132555641968519516541578534004105908250902636461031873723860604961169790908808351415101395284442080526012900811662937021407076719430193042904028755824905625401219142899851470876409193087318053578604266016749260186064707761124426857243057236430689744604875828426973179625580522082842331417094582285882582508759331853956834149315767779622177437724772531991619577452110279727338145340199275618503714968869536579397585348765799764795988363491294575150453396927897168267735976703819497999116674674078103231823281252981800747539885232348921169814856495380415216808404018592289730185310574651920755606527208955957576731559441626879462134171525903319320970542487212259687563154884888500795304494827338969813324759949494177557411803216894809545203326314756563822929517795040129518525905745270471849386207829464630033475436813831762933561776243071220687672674809937541938232517073233392119256082412431226563842640864192970629743176856994344956164261934078862312128410218730074123350112463209809522062145353383838151699493104730096731135651553259254321097484128412945969019201209869904694636898510453591237822870797072853413071180970916960079362345774274529187282770758810541193892188803218862849899032310632833083550285479609700629342092142643537457994056251164917033502518940330924553027786509311498679175427651820631270181115092990082029340234505909235724204567280459129771485697812539658935685954815755902291374744018192483059823797628992693560141011717549569929157838751733573848669273511305644652580010731123252537311836126730322534156032445275599742423678048114227065199980887178058690798154585424391595996077251659330077412526661549672210632476181266083373422886408011382201228669451245276145118741219617666647959943071444295917552415171562608625599417799759234226058427658766277930332911858947632089535600115232130413965330940030704856153174704713530373119998888171047208951944551101957480037238668117718678287206095600932402921974262487949828312398831209115387797277096693886283793873045657919751214062824228963541535570961723873516546999838361845701397433571875726762792488020925582937743867887091453083930181886588374192924970212952869964570502811773766263882895400223531839737839652512992615713583561279993435696456017472425951514871490179645585867922239382031201617983344011150287977952459271726475110783900453186160680800675366521835084932216114344261252853934712238913954919283180253299257100303565838505865642371585039578835848928914699666593751319327307331253716517796230547167820204338205596105758491633390392797781327028473007040558422350689339684478708620322923771444144022211666731780062236952448982515372753789861681166948820894928778300087763667491206536643924363199996382594997290016275560422826591767909987222699226305190826507555444835275172369683756944473885225116140234444581928089718807145413349517577851825189820929766830088027492894969893008674918330626873110048775886529151544287579258903134122480215010581237662533762653754372767883831320038774267720557662355190044599360005314571997297441623201635249766792912795582992590659636496286000928564956428293635482861123325328140971529458032522985290118470897399550992494366923714237362741054986580160480267622666394691895989230798286739456221623167275984901969768007962999996708921115844372800501858411976470436073555995758320714018659697469212795939122796381601428708777928936602769528945750780941606601068239928599327813919944681910052309295417975863537355764755328229785445083978367251173964390412821205496638715538159871318182220102277928147808839184400832425649117956545046824616040937191531107623126285925975623745096005480969936505656796289283205425893753031274460065188786597672632718600861311027144078731517635494194137656584847841540907831505981697801743289152012375523565306507033822785265515142860417308867754374573556778652217098501549994791729849310497378344478754250391114011189844560370411701050346949772461726561429946386850514646989905234146865766311435844822346531372149476409399313502002902137345590644969925271924671020983479201038461481890212689963270937243076634914173118237538517065966225931102399121586191985918177944208208262103324818426353298020172787858818295757652652668937519581503539089505856616427058756351000194803464242029928987671146083325312954088850914060523968159772493396265514905169840589145119848501838532313496854404775026819346656207518845689596175632031727666513852357176111377462438170193579998727390202141851760098314645723201741551649283597423952234301895210934420500322444245139175111822501173867508089175756558376310199526978213278995272498530358561460344888229158193824847777203482178777935313916174718761363946441726364712975180660523953293804246419409961386514778847682542873401443170517852339214753552514224575529464291068360723053822427947107005072572077805523239466024855775603854011602484224149590497807857872085625062408168928958364243279390887602092882555099097157673964823998104580852525048357266867209753611330973467348508676760375852203172769928396437310345082265041458668494988110141248074419660775456879060963030567564996256835179462186771205421501724521558995530602161190956287395307139609714101096491429288060937033537897336138137183806888176057016716679623586369977989337350014614935554021341017166746128695286796694711101000121329421503680699532255884214946592004066413795522210592201941621749142616775332480941238937149217614244507822658050359665647307047325568374609367684879138107233531610617384656132608661352314703156657101702995401601634878078129275605112458878612312956139252612500887769211642043385104135953859581493466261917912919682640976734719218979154702625922026887618714358448035962290876138456660438167360106013620794484058026959913457087975646482656661040854326317487012028351104261520465179682578199072797439737610913002469813836972306097521852339248586393800285460077103120990510245298003090844488174257178849517083410942553682695350265429082735348605161495791719407151501979840728527624099218165844039138817352770894067590392861727149426289961101159889689004606066495670214472940389801065159589561326500063033949090236268452801078683829094149490714646638694783910827178315182951500085433463199207809117982373606434535029936420724723497723934138567965892288867305326005257928588335408290605307593069418993110871272708846108700055283433796325393697585944941091066736821521323919612239993290686833662957747010711233384567075175535465278096693532108485523050260348163224537183577496436949438789476556910340906675919870433757716515318583735510931599540710895277464097063377818179805101054311199965486734201040988452495666244021402858237322172132679423889640139245578366134692529491721059057133833422008282520289566291247157855653125855248526325679189604976876738509753248541777866519392985519669738422337885125984835539883087704666644708833201263520740493243451643617083586163713909634945033097793701130421289326628808629190556706439225867020472416356360381517158532458088618937298106006498905732997165454804000699590947562558908826903581439678310893661783946671128498417097683547339522070550651612942985619657258766598977166729340670217476800590044973704242358447752214354724081049203195481464236383968889907549496382578275057004614490326924075854210528325085072322180072394731498650222357206010360746408524630366460481534380205343413642862455986968690642496118595260007654611415517448118642785435088787072946796744019240931226330868980786034086695809693138663585616668353246419731794041104226423838587047083905579877490172406071118259150028308521991885156973967020961590612656322190020319211213471162023439322587075629681410689472215101321922362923959311663259715239487013968617464143062619149560990851471084306266136974990328575018076569249040252561043162345712709948798728456052917961252498601937655590581018230403730920924705542800506389067893904433553173355737847241860979288413369981581966077053988421752756100360930663174421577219359727710439568740738126827572206848425660017372222148736342359768400326567494472048565711029644386771134799827456380830341042624084669116806448651885154997676062033719159778790202049246477551350226211152880861496531335139022396509300207500634156439152271552924489829234036767511307748279350399904209368333078382349173410463798593767990605563943332687602832780151362061219450241196597982112053529182189864891468849428022998331932815628229407937181164396255427214691860524128346240181609245891114615314593703887122173943135807956424969071750919552162464036230971455122015210794430071291289114760636501931549077760791857610381177478812840668430184002756161298628469769467146455356944665582819650192681100873818887539505697091720455140224596030081406093785750379552507318419939296900648136316147787398463286818438893296437472178734293929163537453028258507989385678942902609740499071254367531828896487196991116812741595652459257665079421300321083404894130136941992159662231829563952324844554310596526894272186838557886251852769478160943189182161182835929892895431050342060471100442399271716778396137264792588014329112963292263498366914326051936830916166764399458456167468744827276619846035033941591877771693502274418072281922789848071273691580694562602553956424334415559156014803947431598374718463170282823410460314980880477161446036562448391824652319652626065223157969599501164535200973511700172805751861296295531408471514232778452348262622203925547834742855376664726221936687671711969467919112096560071578869221296717460194569457449749786534724653835165062959121159154501776908389070064835456537956619275812574234949595340830745885438773746376317585811135375170431157375279484074239807222765627485202400393440343100971502872738806679929453099055239540436298012386610405447776548370267953788497394771343273921636019453466119536026003956419426185837307610498587016515469018185173921049071532965046255971516263569295428718707194753473233374851793836185895410369589266857358584861408403675285509010822505123537806141697222876084960247570535253339433815449463593863619487750890895314719157944353396952954298969419758180372800841894753102619225353796662480981939605658132513693394368349686235846084365511589232959939290167004185240169780113011810551355162487865666747899753725629209368504743732477490031514043077797441732252859031994452154250763485920344543869351791898929616651413795582483083797987632616031584605804194643463570313564877661347603521555816467535825578870353365673469469262932006507520293219118546538687790250078956929146994917603441749305678718056300339828561640685842114513916754621358172567947797751764465367883532927175783657181617169389844060772686240600721161660152258748075291863650111437013488576926396459292290061115109081231908083402669375492028184224749341042433309983103950496088044224540741092120492753731165271996200446865301559873431365671557171797477987212241293654403623838681346182404029152012242876883972567821136550479230152753744298356574487282002587857809998209286104374527275419596666717916866115481303406032666739028954230646130041696417130524810362913015230937689267150346807174721408318579850969202201726333325238455181564450352367321286917991265369315251045624765173784179280869690306232993650763396945934435582109878118073312738784684884391722410482466752525891917570081745817079427400046024310321990384047987270192394107444329662642600096308354251579296884694272785949617953690032051847447410061947304651418529765432543884468099549062604411925546167090538412831211089302311300203084227068144549330474651132462336776068468721557509355899211376346877403787173782228469807914392234493256973969939797113612861015312143599425487497220469599600799663565491352173800187829931446497958599659050667517457622342239293008394866169322309775443534644646967713618689400458723056090284937785428983440456668118413779244978787155561584604196908759579553740805087133534549606586351088212285783495733529279108430396621674994149240555443235812084185739024571594278610697626944823216232636455849204824633812037591866609625327197679450653745021417428643485082708603067007440343089085856017454797540518582207600537370187904105116092515397816785304249756713432431403761516873146564704499643174822884392002420023323219537298592543862913178700323786345790390477424494400275458077962937117902426667530167272826414019343624590068937009557414915059039033189532503757624854439924025898563142380774730067666384202556448316081883303685576089367514972358487163943536247676935660347267102654251519762834901052620826720162986424034699132317096306323810828150916004079202124626770226072378666982665070801770689165853284093478056636668473793045277581231784454877735201309599911308213962802668808357443513137317660372230206110175669562485702552233803088056263072836896905113154265211178913511652133832323863606205739410464689443949250882739414753617475075657481387923671892233574973654844715502424239555199418523795830807522207494426218810097410575523347868846041607132390983906043805451174055366235383180841023171451138158218002480571337468672285377208761763264458733861733787131638873481254574945324093053247666018491880301043253422178869063052308029696861593556277936503793176415188827326713494967375113486341031871958941934262025568354651962319792237016804190710769961793656376638828577130048668871858167118449881735682344195496395463398727180021127609534508165870571459113322473937578647309794816406708884645155017661385118836636131965743183400270552889256839609195165051711858040244333854780703367016780612590152692235534020233892425884686657569831514042642139810156492878084493337839858793342794992567747950927747003759082735966131087196078045055381231368089008480266906656889191603261605597180630702711058716901790895929709523666286851641894297270576369717586637043785857531788240923301749709719290869205495519318994457360808951927225061157697124704831641539023657742259287599917083261372867838031772199743636307052032421014818326694348261596882843215327404493146104797877823863161263202938537185596649888090790866196939734353135522097404556017753911032381884959223685079756720600440350645089187498327986707721561617005802177682930217375062007626002791971388853198363282382447808815173358907235553174745489793434166636298163244670350192662634291927496190080041348837854272766217811793899630853604538874441873133117375068292453149610686900015352171143229098514424314543784330254623104721625596301828630787069121489393610253623484730951240393768073531229052313433784463488467001896527246567267523962937283590601944863229404837483420011466970285363643520065701592581141868085734471553371281734715390363460254014369247125469016184813327101527610022057481944939663563118453481023167491561648764892579989591685470053273910109594829013221498731039827315087965216037896883269996890682078151546274714649738138557829458532711354085914774095377532234742202931276540842525767841078456710596388564155789861036273401543793933808833174051281840057744589946388294067491514391915436862999130647463971059475291959443804869505838105299511801384092976782116909929983012370606332973573954583880119970395201512034390780061373582728809397224555780559550869987976975388616653170069244048619911789022083609085658540327522332622794231612124973910733663295795104382434675742624958518361889858464852893225451208555505272490016348674139806563037716364187571861526669637410441971256100956889750768466730945220294889582823010003821734315192402175080066743059035573531440861838896693686273419086281334795665487801599205750372439898104243505324028815035619983652675384838167132658807637424156043914306702771654900737939915281325009387469873439847138413665365246188295852444384180797868857265251374856340824781080248670715688002629120535186743364450030427562754840584266140858345985948166986064825230794827288230429676348991451588789374012281915820583376455363891143644078958013200642347926939121130790129762072038811950064886806892143826951504784420800462726621132938204993613016992679767177916746668023269182947875280121701922852526779206329890172592242983825444877190933076317425433559800341269540161866700164443209243750426655721339073649551632430374300845509070211808325714441405860788033112493039166437575740609532686682270073256367210516467692816470497887599851998736195798649899221936878387420813341809223301594688305997266736016496304295299795253198760612901801430641372267069477378406214205126523207591600986505969086386946041894242476151820814460219791086233453427485010033987512908204860270958943429584053407352134800345664528188340146284967527001156866454939667674605231470314317395122417650168031563578125533974675825875417851203119883917237955270787970519417727179494971070316742406707501846644094560055091232846309672706927053061392203067407970968216273771304707329464282710805197183088064401343380756647739891740319394571494828131902771542985231342725446408987321457333387983202481376393081366233811417864495378054612718345511115215526372869247400144184310364143133019942121710306065180927528177368606033302424784018565997335479040809064126503833000916763244923267565570405125995452430211596746599345197138483869073291922640636948061013674002431590223161375965270526225461714767057282049644421378613579451942277912619728900293857418561807938397786269289983747344497647632441418662699977095240647313536614237307233941581397824837922977786751254798093884106515301743899849979392163166381556216327155793458048832560633412244024592460928826276076599299256662406317752652251328948156159841744140878736828638262405470817378932438778096154169963736157285772178777809284032869850821124199891644116193385200854399118308301443502682107825066688807400962254972504266400751773524018915762476510991890586999889400953295144452275937778546130739214718408920817938522290438138072760724150261455261887273599206347723645104171562020329591454880399304357640176156554852087232559552185535887357227554458259585535368628703581791403351766283756708346944126645090341531143794420249093206400209669214156930863586429845764542639255763697123938487247791849028673822885098296485326194231524569796287358571822730695660637797911894493788219353549019762621624848341255188849424559885834145421904347272572603094083100107002067050272078038136694696356042139765480667492957643416447280464477534617742185831967872678484677701501177306569558209772435587121070345353059333783448461074933880365241876732118894217863940994385684754700601590363765900845086365913077445694344587248028602505828544815237825816086599797891505582579379804027139534679686563736572111152551899610296453195562520698897104826693932522636921336872903492347985041639051408250398464080469516866204232771730097657442279318790704729153930796576575489052153509099678205658866645249887161843167796897398347953811886465728497971711759048666486040175528361612395377396254975487613491085754233978246180133755932901391762393163660564145617226642699418829156357081204485498252753872181774599354442211940908078901107550645149566909598700283171804857995801862315718213324967733157841884397548828452976380610963434936338860336092571948503984781112815522446468393040689228979145471237140791064511544827931559433261692192258613530155105942791122767329870966410953707598963774900660091866499145511348971823317163896615412828783464636298480818607277191034894576895616813557105553385406838614135726270593198121169453520213584582853972931078981006341396687693177879443262603802004544497476532940316774204729023198792918347738462407454308520343548581130625366598372106990906281080494271016038999156765054056380915183014890564781051568158375508228912146706154353808548091989754126489011381914415878885756779244000780083775014692959472465097398452278778468195547459916586013787311148766543818455944900269128260025048633357440702903290678275427756162056029261629462812001835001639607951297672218449816028317629884343230224270643916080656411189511400034480533484010800964854757432472170007032423718027944941948033038262834603531264458778179196917952034772608717831870046933483002111296767381603991697073089709465805553163426365838740377142095604122997935798984516630571632007172037155160696520921020069514074177848874588368197815588186206483048311985089636948450023164255112401009831893937518613510907779197946820255515698583686748878641162068633437218974897015341224166097840810896416395387724820620836756246179019360438841825164771765719141704644517102557725427795372732788356618157058632710762771740344720018983503245245516288096086746846293517392705780671933964188462715327195969233954132158954065661278785949383161912967800899767116125388045000599217344458804834261252728801613583750662930250736645261116929233319410817076853269459747930129153028914491935743409364505848331637889410074678004988438637502593268213427282433375630276909805443419733883700094139277135024842651162285292984881345402165222846860858012936263343677582746178640890073704304599635362164271670093985549684925663327610127298165690521806743984109716850657975798784098867214839569005526739531772244987917644070995718399981175640447915622942893640334539338748215457808538775698251870909431042549886403139304809012963873820010463097077072557586192401789100261554917823028969079804565025084291220239003678006711700628770396318228006198680932760351664689962157432011829107584747264622428837049147933883367939959557434646934034776336993359772757708406436106633963182266746527329340087427350909177469603382312418862179171885328235511563028742911417631264758176803772744381610180328789615904016541698096128602730075804888189826848712899110789163125720733861182866913648464186710291194196639183498031987188655294829403557112518794432728866868225186760759022141513509150703281564388880425339261308112922554869211711300560181325158290948605565394449044262428554241339042700305042073592950434701971776342089915466956682254488184607703785931330196634319778640970653212387436105158872720284460097436836791799115298005046649660597151254931245497473505167796599169528320793127329488770351970296641697893215836766397326484108736344000773432798574475466530043139621241763126696122193280549111935583159654888940146453182001262889740712212138228757493739082009346112629618752713282181045396162864117003728572498089717253095977622084857683388932783739453523144222075068463679770479794636995266011325615303617256704532769799381480109318796855141454242052436654350194618502261066102825539716029795702506551387346011310454941236692705092480656034776450723722617851182021140915515837750445046353987811197273536591200079501970508989125529139086059266299029672185192008143363855615934060199390676522826826526113013002803350397038816013298915235348329358949725431059173851719084396378471730225922057004859508221609194124650201150552116073172070773561418287039579247662506777374492386936610665510201242227566236616686257815412112848653500801767374586599486358393961230569347555386234579875528716275374411209416089627922061138516907759845236328687714490985176538588083284365748847223263310014528367312397924913076236780681230074190763280955932070954218588859466851444314350040366352787146059642339768768403295174993131392898245605047590340906260599982115334456621814137510205442473693750000667587421765471220018280457825202945247500279651593184520430226418852711111349307872011365256789765780150814372461094633839627563501679025479566206060369083392193095479582031523578873356123105340759284939328307462707962473629965732370610494363834924541372960790377196795329952575084968573787514557670492237230384101011980003890834368578813438609174193128384474677371084326028488102797789136681855873086331757397696440939243090839004141369524853555199646831922937789184398487260468147477764819317907881801066253227703443589835954472185482975196792298029605069634541329267225996007427941189899630890611052737970261318847983791808042905377755726582133289913176724924807358365567921679961542540379019235854576865119003068652692262852350844362724264472547149358989739650150755071080698414125187975137600684339620955395393361548485982605735322278052571257348078067173354167183129696488478942779309078411221450949441104933618991238316863724649662908692387198204857955443301794421027853065385246796753620172121616454100774998555756174403731931494910548756310124868897062728020483787052485343475704003167458624501338817714328418541689047862408908795401777970904014131408859394639339351239336770414101913088832924487357393478314461593145633460469844057086025167331282110559174962513771382588972096227249219830903903520545542464401327860462116157628359758793981871652481858068117161035903627670101312207503194168455456867774198613596208722694400701039118224219335018491837025488234023524887607428280846862611655519936556535844487072793280845263722410053613514319356351890927671493048983762471156118589435086949805625394456365106033717353127809643259309828366294360700624435847931477831689036656484358811904192418334610015114908329221041841383365229316294401642201897918522822128306649023484391410839289467038944836323394567313060544995303271293889910397101345139573383313909720697970688675340898421395199209210729686863939068106792494232096215067949494729380842573427494193362099014068901108382092811405736816725057140836175475594643659014882439702958976481998864233733442518461270754540606878627466668560294504430586187175337342473852479555749782680153493463569794780614301139759792811550719250193702222931940262535666235922870100138102296638894551260689301457758332397284595932129010226080107424535608571067013167300698148559475450244137056925383643985395329779321826069537092206220706794734594912682224465677525907195297730577210448761190708141056399680333700156567178762338592148648453226796706811272120431490877679345158842996933377403292959509769144027380546041300657488609204599554626682346878521800441770236088242447090443553820318141591327160058039604332711969835762516953493037468012780481759812040807945864184393728540657550634903324007845634667430760817831112996807725291410572782669371498200221160504027415376702680412666750167686495159755728644026839251685168380820478090423227032280157135666667402976054901243413070843541146975901883574199469688162166084669222081902123532975048622536691625510012196090210095652427496607567220707440098083903449022441343971971044605078150715479193824164580433316132263256068172235365189854211761004627661592536767085048974534329410618593391407907961322750984012198662010555866039645033053389246864812552257391293307449859462968892327896589222196534427761561808320409004730354657196609705308324611621123638053969961387550755428551764430007498412916341655971823920952804987915664621651670275485366307956461478345734107052077913664300269336013888782173202381043005042832244998159763519342591326950615734803193321454340677141428406037789893006858324918668772849144178230646289644648927260777486243332558509792856546914252721558712704598170898773868843069276942293799682444701193631832099794203794056841008725241094969330945003828687435690463701972708674835520668225533122759122737429589006112465794008184015310543731336046709758095520639603559286356084317411797386789153012731401222200116050391955806151404501375598136179737021928829948764319236482933750726675198713087115575778623087852643036448997065639857982153501451712031876645202892916999571286380681545646822932034485998285570530822036764833072361838525619350366773046724359810430435176826461712689416495334776783755780763870154651577329778582454889107700900764029015965793213824763056426572403167655991358648358161853868888202941849958713293589468951880161312986332446523737525413621661003497756670482034932808384447681736674753499978737799465822521395192494071978569731160829939780932686489625036961436529998599914378982281656990585682555226326100574183357758578291830558390883372563769041831335588733938891655454842080078323115292440217630470819608085919519095806419289099329397189072052654558038080713130665914534780643305734587673396053088233927557785535843011513824592744898690904034112282635937229978302959925079919730170387078414497773833854485168094449899118512826031706907596254814907638701374582610788897316365801560259841211791195546701861126899184373710492784839724954610667529948409543751060807827709037232341428682747461454966345149300327276695454454877226641172099591955341111328484443519163920061478234188485623751862276583616693696495419226180897139327358338235066469940624839081049138511349578892822940950625263468003537378021282112006235740968276501280331036381119395787486017618701310745793286619980002383478183756805587692823929912725515986361622103858653905631444717952406565421329720111711416823169183036697960691792322049283080951156625628421025650455212021990235608755531642999658350168405245001300053536414141677131714872502094761163331894094561274228741034497634197599139346492269873005807681655507914019661783667168149730015241596090990926927570499420958191453317533232612758233371705411557171951085260668646858178943302887526812729666356910037588458056483036972870387566160300188171692669286359171710708322341789827458363868125983792750752952113229839699800834715529998569008825443126130623438099875447337076457698851542272771062596070484067573644573960277160622392037981054896228283137425063496548585893249956756497242653803708020244086745189247171354023888948945838186916162876437734798018156693437307763845226576992376468126285496518862221443917998963581458741039590813470574296928390908723252565579639758458840188016555706415170102724801365997080649510219292785198771896998654727488012903332377843488223959463490373898659134136225263528781806271841549323195162585109770603723274239364459837004517654344179460918894193657686283700448061595642446176353900614603807911118780773060397293059792248015785606750020554034060056462716747644055167454926950423489127879165205512371505378919344092586184924457714447399031837315920179080412964105147610436903961759809525855255072717526927484208204141187267879493695297085339492499270010996491046613093845103897998953241747904269511941513876941615698271805505171631800901311414391326713903171727330191002331009551052728381584661716429939187137147437859726582232425752878660616426595218301480042248687875472842759123942726375414359122371851616745803549069188715406165057834789115060482452737772128157032764076288281523252398110046786839681575209745586483361927100227455857421094952308151868473360484180051752276486894818776103371400162978642893898037000359107666732477231689722241062517792206793412135160308992183524748594638462073061948933765071441551656971934574609422809812528573357067381557742961307735838191799884399942013738899547537033403562476130413552823720959094310192087626357377253214907016842705568037365663078759472808940269063565746926770983031907050106178273421169828888808426593306679324084990658606767720372681186104335472584522060855938780814914212267789700028566958782723110984359865074828007883475567994823774354978514726474974677943048601315472207257901502434104617568522177035264926862163744641144103587896002192519531596469234789244165843035967927955729483418580787841560028602632383337012177312942933961292292795204081265996163588014689803702725254471506090749257185357489434778400744195951848432537601332615879565119419619005671092682866469205120622247619626440629958885954256082244339688933191585692137598508542943147912719973155452284051113257434112225666068194952693894577839128411659226702440793774532826984892924751367469587026389951275772555209236426814937507825653561394750529682610498587524192335680508125160058748182283309143320632502537156971040096951502820092549532312579319941107596905901480788559582571639870859694461969761736989236989059908287056108640263712509982078357498724991894339268054570954653320703185682804670893318377931150291476503808835308788324556500475714158196809089897040827319205236812875616528180159149028835712627425767387993084453935029171416030971624645494154722493322631234790876273901423248690395464314746056092063754115050125082031414871146739572800809634162297087991867311498416859857917337479618175981012926935990268149101861667339562639545779450060883176365573025196586337757427805034029193935746323832868998506796348088154864492928937009595437040700397375580398648339731488707915402918098367973570481294271808232867275916383602490962504995490642407856670948143296050350188004355170381837944225269000079510400378270597711582857986826253402074707662342505980049504264464583480268455281440242035231769425284270194279020170046205513053977157400881948569453716799964794952921788141993774630573833962135386889331787419279727209614189322833592651420103322482341815336975939958725169848495003433850165505366835875863675252082205199946846520798516922605693680632486466041535504326369501811312947435240950078933322512174012658455066751881943213733522130555773167786294193438037256016196415418547365176317765058151615330405985003632720568401000564605885961220840878610607232002312958437304909692085491450505193405774339554456080217706110297841749151325444519599560719217709841858457523999543691287189606351995539943313608749319011522383018328212920104169888960988429259824007480786688914210493503489663472904271164612107812022883835160985536077155952405093886150120171938624598159814838826309281621870583706960353399589093443240778068663348497210056152114011311137525348846593713025325440685077329617047113575612138528557311564389686812294866804374960566418651582446801508306661682646312405154633655199624750140444352473552938323897728077069510347065784437157546283900567336123180160888380222764257592929988412140197480269659092735317856182396617005263982046989229895897574247139442465058277727925052510222995110043218652798728237533997053655173277829164788602602867840824313330514259748442398453476285905628061751432153107920903937885107566137035209854051258891811747210072033628905445152371888812008564478172155791856032481950406971274751045070833455412393511893659717032375620536523824819969625605047292818891438273753782237753211398981443417774958456539414808397639948411089544970384135881313555377237934686704598277175791589157608390098122644708078828012725683088918654392966378238639839288396732998948907315700334821468414243735864299814400647259252808002321473251175628760084477885103584745399886830944743481093838869959209292957368841573909791710441020424050163639757245249022384699478411850253510355533926827979470177262876881589088288043460865756075871289582677488423406075020971149691380383361506200938324434878616053745235950149177341900573671038550451316112379004472839316870304570589895174400150600865277469082405014051254363579092619648085143678801030505205250801865862434263866054069238905249489091655107353169487042230381290293575856314467324978122108133993276549365422746196013277895051195369658410628561961785656506151223807692625728503769662507696917509373302318458078921602092220874218887640684898967460653618210060401457517504851105894482650313360205286022663363463044918905111247385042546716865366823035287201048341001044253609904616812416594722223819037513468062945271793761173870428214071914904715175972920885519560730284202515598665414530718174080186130941160224421162102250291772452540192602304285505410728477636610026829568669855349109859026797439202630827985023380977739905566500159481345325612714805338233297253311316477677892834080991060336619280010791262732931885638595992407853295882268198421382475237290080038611319949846949272882384522835746175017885192477938664796151789838791178979452756942521281155896702978161996484003752333685475691205408620819746308208435059029220968881323560573894940411044670128808308190474687303482895745478880258636337946550554756507955110630525623688621157708092124804474779474904032800969595710403019446865819841393570589387782366528142982100142195964839927268244872876401574846393646758913295970644050948434924641562314072288695541919278424192691221920458562038366024167460825225176671033980229076830073612185436782860332615222876001646296584586983033619539928586357598043353559372253875878537431006027299179092839534794049527726995176243476595286989152168014425207566112328262567220904408994165169038190548563725586274803583413480466696957593697339097593714102605030620525546574898313286026794104972710955191095176548882215053921760801436523760267713191889298398048786494922735163991383349048905412997615611956197714197118758344526326307216771275619395247428140614820880722106994291152815598699670219229580665359377271810848841313687215501934853148922432724298828758220557752416583774711800194122052932117613346180591155804154069162420083438666515585314656150225990921198588831227508822144649802724348946778639022327074984547950688889902829735139310167358868588792350204074278265335651866811561595546186316777535965532883501034285325386684414374571270213919168047515959496013301125347288051489005041841478870392453380588492540823896872900239422693525244619917374678336265917041759441640320913070783350698540439944328286203590121030033867620342129288628866479125015538598107303944801345964144858314897967974064045356118578612621228782622229758253249094604863850419000164492488213190590939396220878221650644524756598172796809218746492631132780726260712460423746543146714784238829571514825845982380979570086093559766687874508710418346929141813182768625715180560102527641095663149010901960229049797217345715199999699384795663877380327127020488565683420966546947453868688399258565568391858776732091462902613613163152490609417154735179509036190652770772854811413757472907423206095034673178074914405470784343193773760566133510802863476322858374322099563021226767495700554454513370162542438117344176733797971188311970245309841394205777138949960853816464489608285862748031519178289845210707012661882170986567671366811871305694311766808713125025849386502549203409366226399985732150989994346854357002773747572107963156807302015223741786792421134173161614029792685292048556777247662332992386666772728470213432918415213050075068076275853040259824065971079068024751463441500526748721689210477742851559893514248659345746218870052619661073849820021303739493228270379025164427496521337308500349706466213347234247515509017461077300934274048125254285022488017040892227757144827812449251308780630129786820320179717635198149626407053793483108743237677281916259212371999541194805997242612722125834111915802434013857222720824506766371006181908402641037828408516178416158498776368834277650131183915734153120808607992158254517253888412743134000248787747984376832628757506973427034171272147382037380635604783786976373945051420663006367768899137163411111398347052823786329267115458396795219352129449191006804178927007150011785305995426093189392527348559096738441067064267957307157653648647661706756129850810262082111050489631896266766940978257186945259735990625239321210564656072689603989608939196513797531454844996782402459669243203539672361081175168296238700161627279704374859041182387324944043634858876744963943983041762831607977593326568440611023016902633401847524621370619244330085104468219246158598367108570020720014359091804135362080869613908951034808865971805977902127284591913405790684579516255443107576041762562513205918382170976553140940650600543180116245569124943640951446155234966990232292282504782539703473275227516207709595565517366593089528333910318603154036367224953912475813793566205304024508959077591654333463063797003687683475545403801622703382732529302990138282202533302030134456802755244550370784910968974094215586529518967041666239258215155208252971459222938903010517647498238274683515007076141518656866992712424877644985453371073183745794453408713683991695008449062050557966733380491622174165337353750953618096869441497360784239726991047476169785865073913708326507046833735780430233810994871191476360607634602366515267051866035383591273703298171683344755575682581356486595410363659905430251417030516722637793133955797065973903824584318351735487472529725921935517332209433194842248630303868674385451327662972612948643276291016377213064034102380229227049660015984391578840697955796580058614257973604280748783097362207978225298272371851329702535678882486295966292999165347826387749657911390809704452738404720779582792187898638105329016978038388143818460363990369222076780659232465317768387717324543658114696226868044240987267000362604704835793514459057345581861136422713632496385112944887263527951838618384737132662172436365258992353605940391253419323290691531849216842253462879271801605430780146169841147243806094716032809105121725009041791362411653352125685481289884922563260127300670866306905167008939532319720556636145764180222138903625769225372536340848490747425447921633195606563275754717082985007590589229576884477987738265331629412887183272687674073742440077283955496765160506097287484061828074607287535854093927015831283635264581209392980298598011153873053395496323473644606782444223604311783400430654318719921474998012803441353666871159851188837093772369502428752359261725491008085953209807481809514984775926234880225241674192473869706433811357836764831326387031031936391963198491669919780681200019418709092533893384226874309685755626163366832087445603002524389978059250763231062876735106018146635696289318818066496033056087646986617312970834219091072925982531963055840043868665053083167335820438099748635170358669493516679526240108203695959928997807557043512883059406941987831808036677547450592754339851354230600114838777972564170322361412541603917902243442965475010469813255916692157378175579376736504495699140053988480466527268452898145694436083942933862510465213883660704374525070691913791250502660850410242406340298126804450351640343557983471739863494538553531098598985778051540454716118654350933052005089104885125371742574865691237978162844644301279035138189023903715752220588816554646356813209052735940140478299404893045054112115668725943808751681557526912408816431132486870152321698732410731193936025569855583791298885585248887783484683761618842393873197383931530606572194552593364516093127469157003934784830840559832597079736670417473440524067770372255520270434241978891301847451826851880545810783910263284251109937619999873599807005822399247630386216697459196154536888404249314994371290566615289901817390312100030213407289998898333410818176986627446520337220967701412260520779888622623306284542978209953744284095697430428505400060989704498784517921208297919364079330593485363095192164126031194795626299799834633341816537265778400244191649312402479503757384659246506104962048496899052306945044232559302179514487094705258596696549535985858532984467773524476322229154569504641765338284070119866412627879250993952794896944366857850163978823858063390042414971954253184126920105834299925869419134066915655774013243243364349462070853771510250145814758950934948256480818635097493665417293329462587516392267320605595541581083352954482750156516822144957347501040046197707067236042867246108205491193776559585283786639056541851974194501167162903593341540353144041442327240819994733340897529007630131933893619668735016184197366157595553967305343784389842408367171838477115467461010894113574060052169786763000828005296327425847892947343705252774271793918472459254186211938236206166773318304318454346521730196613989713624910149952835644641853768687655824505444468685614366110040725840727833045762164601350325748313234625721966272276444082438389011625102236925794391401372043716044969306975097562763680273407878567600796910467657863340188601715143442039818728888840389125303445238894212479347089840104744889412384111295486406040686422123150318782808748343614942741266524656110001434572088772754448424952311350785202709113142205031115552029156173264156539833270405393982015221817405718702639955810375259553347151833633220229524648709351054491779092451237916368058751500632382564044355741060059930395591555694941367887355530480353587434540149662106564447472629409421782540725791266334788646972483714427930540863770624376912739790948202365715219914748451292117313468207291510713335752262295742636493049219090198071925192562056610833780667728578696518702113734832912484230014310708228104839347227255034536766709718780820426200941563805950781660622326685319118407423343101722048824681335123511507384153994859349104297664410917986907885732506215416875290608542667812293525728213524566591828601499798791818026040776849258032091601656853931860338751380459911851494678374662769806770315804466130415372553213039733879529646685721945724181230311244473765568050434853870236107148087722192081812507106022649817167938831616326690307312457024688719949096695104960245999254113483755588360330911847501334583136703375275262113701945677756240177557958022639595005550750043708138813752821355964315204501667594050540998643841399199702849904169060030407699267278300515930711718295380536203093568725838986512729115214301218035947057336508754403962599885132753304769019103275382021533448916159443095511551876924937321603027670142926433155575117872572387108542216688330923927383470866839240322740494136718321315782665103813275002832413794445318485914374340311097611875535709487756055738645602071415263721128433250708395159437222113968072433246184350301450787504139505375205058255243578877610878610154835989881133894807579821640971693350214531478994418346344407348510640252951881122502866779180467734511803031295105237782174309548350064968221003561975503852054122777008683016586076075333102821672654708116327507346732532155156097438678847237951563572960220146411207629895033657460937416387260414970399944496840233316801572075122006866860291759667989435122481238419043209915745510888756842163296973560483533665477132325337606651483214798921750527826948460390394861754250114593831461717520196678036717659071598917201060725555407824927638313691972496131605908068388558454127055739855778475842716038654993301143947777990371541661122019155272872236162023797262376578866014149686551804528012214499133384299907372353639427401210669803990834954969683312687223911403220590238544564752531648999121940116342388257188977739844991210477085556666329014508027434179303689135811366498646377547023123311721568124922847508893385515989934684012119712320436811263809168929488177630097787447056400278764462867544477727738798153243396184341801629731562458277971641101274142479781220246511798411941837245700940687855545290620096732057658780591686671239319972933407730089374679016332011028242779104682223652163157603807507015117199906917370741660206756995235362828211946395500604887395860387648879474709923168068962377863558631613485444380386695437256920538398434335093393765773476641316412296952860669247919673863689300914565991149618378733014556659703361903908528434311299780719310988016287474886369687803678333510056813955865740269334354862947124805104899557688800460589499688528606938567086377632371654466396294859367778399378581131740164884886735841703192316706498591430358660174868554158507077410551184882520589729444548560333021115019479718333951802266352514589738368591892184508321281855669675049099370201660840889803994955765858333428779472983765741991839995010257047040676407462503396249524523571869269684239664995835933954196227959393935163155634987337471831319326882842052057963627495283860544080826189550876998332240109062718780709809625743754990364116264007270386027410727882614462185973658854406084272819786625844024116043895180068178487975355310799332558881481702473838017399345861740955330824127825562601198693183033072092019417288111130552855770311331903093752783802058006813055829537256865826479788618583047078289257340894258012077875339577741851401664590234893096334200120253998976009560808705139089385229076981319685692086156162990149448279448410722171679605629520123011057663519336104054439711006140965685083031667988656476573290673986785995817158430206131906907932697776767431520170096828824023339127259311380393044205846002847274129887958465312655571415091029192503623651132508555414135923676951500615232406374798150026928068273420576360450828665874090051959866050635399978047779353194942194838582108007034467121760919179031277303034076583853649871446777258537013139713127486431755876301584229277044625424804169615637584926773098493778875345446471653013497551767111927488068902388935188716982974623194352259256818044591360232435132201967909320021853323281305883100999733946829062435372814784001484682166963508912798793321852286205241215908065936315006536297500932633718564070831078593166120720941128568871030702785261015675275590520416147620029730623440981456958763853257567205090876269601727588992046672080357415570710478653680120410336592314183133231477253804346361386615684544900592545521589918675254874205120000009298410521112083179822567891385185260340837226179211028663897036528264791719823424999707796711144847200623012699299684147833395292674855940406242628330842016846937560943236730101113579432139113865325409185761967223810984853882283637220087721238254452911941841729732712526042136882504440435011802816291624292046045385898517860031621523038033687123148169282005193206143130681671999768368088323619130737006620980017041557267210398897602130294088973124711721984498374088997055323270875907501142352322923054685873570062104256813430349433419422536174093390175396413782117765220116978690599492288521646920558406435340546952979872843070598301250842123654873892239805588681514879066071812199024452476477046584127819874042612384026535578878950114391153369435311390174371219577215090783032247790750910939119204235110677502564410541567182202770348847410552179535075121333344793290298284586984641128537106138681548833048792397200940224208420799309998810982720320147610609036507703689469290574503625943312256547952150423150810302444115135698625833429531413300990588187087815332578856959259474028339629502216481458090522762554264257384644439528648856151133753994716061367696886598175396552003860915271513176634113349392550772998812555764031144963835223180140771886253570188052944582039943184387047379021753610931125783205237836638013039428030502936420151653040606968522429039524446268022996258893896443587433799274527405728835888432502684233167778664446018352935335893011051639498565265471785429522029828103757961333900710116462790825097294450309643698628347253620236620686788134885917655787237557991054684094478115775117430594973664566436863644151578621097878993165455642524188572654134890832802875543941989716694855642961541824183596097926193037136513429103988106274242586254394572049371159498070542920254315503813987356908826385850315412815351628206926703432476595354054001307311017515145655315926369397085713367362446678046277265456367557974393766527386095248983186052263498346194675621535554215277448090833303189886827810809075007414242385687087567546349678536820237386360892745617260355404024744021782236313106649332337546684214568209477073154093725641515913137883270579802803097437578529739349134235337744934828443975660313092885843868415501982315413574532084059171646682222070451104112336600389355760306167383109798288477134937333497834309803794740484294773016004899860064038515864881208255506848068782402907009302099362331094647235341884537487043327999518677489989700634342291125819005597326454327824028306866622935958222644118378554214215272754909864299799572573612832530782152349987285031628845264827443789477941784692314303027797207371265606531841620192389734485470026280601046616218673583891162868756603561723763060725364310655001008047532689924995642259115661327593003657087079770573142673957659476626157468309978488554893604890368197319246039195823537971217674277104476371169040113019521328766027078977018564949034543780734558015983280908545670494871940164999708319220726814240425656808836542970505056875805083506877194731405746117241492131799850885297164272213538207430835908062811763372512166036911976300229353906930650612096387882295798556326453164117616150892023426888154603075211912172755784491543960322980488091383155298526069373986612792818291421959090136955422427327382752839833149285449663580041321594876439342794771341680547613347061083590581361060653986797178664250182927800266116229804151959201923151699385569084792289815127867190020891230799793770601787292048325406309730912579223853520599837320794530118595215142880200045457392050972067360051943626623957469422707428710719865637436420307888203659401472961726100759690758298178285320407633382474026407690060171577783406488730634128790966495496939058682892709136494861118546951716363066520791107399218137898022602004221751316814232253941799333653357647349222870443493460800808211885885586111722952772762866883220718036001228192012865938900151625505538989290988708255317774366476142399438253545185029765145483937783040371482443390101716259247892826919275370314248270654205367991358380977345861542230475618532020333861846926406892616131318926979613097810968059402799406401188009019625577507469025683102944622479767842185186452646259297647308539749672733231654609110091237664301618912974960456271924827588814446749154124860726151873570089280133182800974576162012906238703129027692037054342170333154829681645987065500354933385749052218307099163757782814918416877456906905372501752433674222743486800329766842192375678596547184956640473455088824215577102638473086493589092729204721227699171434008190481279931915160743463750351788900301696178020871603543068316483369861398488273011151263468402148299790318054369185177973817582169940818612952063990199919633684854355809527458948990200282526834340221158685891244435422279825245948340326181603223515023389077036676293759042476400535158017301312800322973760485501831492417950344703532981756703140135753417976942955511263123734227173629250155756204039852385557711857190771097713898949907228226744825076823592778578008096435483282251868372680108227520415961773226243953856179637975365898614082502096131993744936231566003669809055308165621016210365961350565353653287337137982363066626213188764071234949922253759401886809922585929959934548212485224445669268556721053814290718734161000774468057211781293889785238807119966973204368818401474879735671692019138120158600239391700069151929005497991980493101579259951476874667313606663759780059169888144352879460970790270354430299148530165827209263120048273504128958564973534577050030808576037873170275997870870602784535734142773678119391431402971821712648436738297492971683263488571140675732104665646572401281897634042005436095357455241492684378598009994023479607891369938530864439714308862036235470023284713883419488515878357191261599420446491066191974591218598008262598005516832515296463982967587918770889545303478284366609897765921982815957105769428163221358049237321913163573176239190886411205306917545807806633209200616657916414400485974946066406893699352740670539740946305394576528361069312063727472712096621837925222140633292159589212437346436278773752727037142213278479566941755884447824573479014363405880416238248637886478448470127907532391972702412477864300321351595227941137114345434115944764291936629420719142848527899585918521416690656429719522993126747760376210032906780421890818990053705635619988763874742291788849557038217739079570504399129048711789043665783025049255036141163591068187404853131900358895867181284575767996663913531128376826291804828819060622662129818177389790649449327985459828355789137980654901395943494883599204130900196065673386172567576232934744762848562519185898938895212689539333737054131258566297996322660416494151931092681484276229883537137405690409487286173264555382418816312091299000864860681021569556611003971634708283356416126746065652268290636301893455404256021000365600244113062233054775283590932481018912448651672621618602332014580934728917552209164691931005555101138941725324757867663541998260490973539740415060924275501229264907030290174315190141611925741961642404506716585268930452530842561444022941610308237111482362303751790442531390332574679707106557863780721701852334062839926609898068356633718959702203635249968197869948725722612761080338716823800116509298894722328965351706184475477852793845420537870237339220209127876827935755069778127709767973454830847613395260940275658526842105050974285027963218322933148681093934131863385805297670052191082122338705699879593806929874647690090988892017134325641715496793016045534932178271353920505681666180493715101598927590031975535649808176598790708365002231047323314588058601505128803496028400485872477592787164161759945158801435078802308162937928264018189306301917343472451001282469612785735654087249740360972305517458331648284087266309527972061339724338328089539539723999836657123452627801470571778905816507886099923902379665944876336018415265010209618145907587161026259034532444135294807389470494629032904855069706371224625728745193384741290921848828435865108713317373268249480349057209940588915192190814501412519164198566301632806270445796698254472164354476300420245772667313390667350344609157949107460517185272569995677134061898179928310351510091356701609367845104271362979643547573089264647530135307128432108843039130014604678588835077313185451163476284913575821162981228048916969062110871922950982762738859771572810527656236706471265276598455328937934569341694105336446116497220851848450862160924332203766051453177892997731001573618851684159127490085376675693507839852084637780343280979641908848897774816155190495777885657785095424257419650443707891177490049029071486395162319990917067044106453254813397607299407861325259834726515760964946134982594048060191005632642513195691725297789861942979436689141704604964970457724788745370454906181164541662682335636582844525645387195873412507181541516549519588344917080484985351074407328417966818875121865529125096378771415733216399527045094000060128400692645904457284490941274037225612608634756824496288638799807742995861482265575946240024135093704345065337906582003842784209281741119901836269360907305022131111951075020767429056761152478408721988255308614456249602562942003155403687971155869648075785654082070307169891763194749287159635876032413808209654990131273255294205613486281254797399514119799788777014866747966321954090397495810286634504329087716840502227717827965904290632057637098584687114596612049254446451124103820242493215120858311262551846922402344777718073997484814672463920083857903819201742830580895607665119445761954400431699223078770155216644708379825104101553370597878127065411793676885915393898310420684224212594649042800547442896759292367055898224766830996667902139022654527045024586626991158998754281776257874333857435861979476363636844001827530776464132284132513102213415497159385103215062761392549994554936396301577409595947480241065728808491397594629799821231922236352217269833412543037658274969277298381215867288664461685269208504662912721708630462256018235753558779233617689152690835885034424876028892758441950189009914361303007950043287507038066180033043961177459957998888963559173351896391347840065509918837511845713900401356860904529275192542106442472914417814763489511135183502729919440619884119046489147484865808742298987696838977168600714575510364548190269707198553856573681072491119230597788650444153127435804884621992766460732122572462131049066856130280673051708791171308332018370673312273719342628105980723666769212328767886726334301167551265631953322541962772715578992933033777947643961806004667837084122026669281870286443010569592621242367442325692351988064320158249369552351222074401625734645624910090124367943454362483174082490389150731028652843363259531448108945772650913061206949803500659413402698145066594523438196769128998686967050565698260017593354068165768995536904073491049492504854680319812184490670971549267724078666975265238703309969317842575686712057036960628956450448128932489920606529867123814682408702612304957239090741563377461277370021655098100688470630185186420952195409044439130184617297950041440194838300290781158119952864070531446858627841198768614526708505021108029119806454204785527709105162937653444918478737984661467551087752409753614715052087522687320389337414281381821117379358095848103698503841787978976125110686672079393408799388635296744908903102590496438256161126376631539475761590933417431524037638696026418150865212718651393487178101935833883571278730242723122098005277308331720506942101326592304319202076142665863236848741990848582601593943845343074951982400784323321149942910086107713526276763874466022806491619001807664498268317239371621503486228986012531064009486759672352233216064997421406773831757110597550103317129889334148825504159878560534744637959035151923410293186153198470392969976874962951326936649773841014357857473838945645057446817057269788424858497433236748519775807900381853882314761898836983860578295532925312218298091253978874236901797705484694279888806323701155938595521502453438926846040795390916435606013557912402454881628199685891094205155960176855096086868019379553667907930869529081529248295490125291820234135791911737921209886104633462974587324212468854622747603683401424829096913785149177709699915430594455800619130900783628055899281344458131924213372949687245179151763338953041540930799570047698695565813163628339177491106074710199088482071369818919566859155468047538300036020722685590566251015861814736965186294623731665077032377221438819235575719208446856516794695739708888262337757544023823703803022498498777259714734087409463084452462793724662150730579932932838074845542969605787042647728214933924787723450282067919913143129747347396953797793252119361296037625848818950949814474836085632520165991958514328321204003878080714782432888546102996342585214835684813927917503573619613131991366863562075911189942518388238518047024587293028632716912141295670501186527024672779806704100462993343179273072972255796985115677957696531202041924726043762122203444315197305345399484295777696140289710154793691546209823473976900481023746171764870093961639282126628145964124524226262413559630716738470211138173047538308919933175934339016088504082688973477463609923089198838540861691080202701162466038954478115424958576209275772358667640803722301047592325036637612503079432103353600379442105983997157711524934065750051537618095285398397663232235760550614908112777184069304896424000573373168702872716537964581461382023769193921307607255677800772533518559210615056545931464620194683199502534567036570426775629217539874413091750171112163633545607823907362951319843502492327326339386466896664788435780175839159925281431037113193858170667080018703764203614193539278176945902555602292754114311630959241145711766484701522424585003044634034375742825648393604580168844055179620312107365563277752010244100631402910272102453846626817255839937446644905983456036414239062765795477221901889319426976818652335934298707644111153089795449175668153885075649332972062843826089851409055657569123191475191399526392910104801073683778227172457765963971327448101008121090323963612001169152956963380399837869779084432436297837333722204862882053393754357394202584172589863156665488539875377098289223563120572244767334132530442283519589707375523319356578248323049524613137477568928407126987378244300647657217026839818747379086171456469666132900993202785859993278279166497342157728524563015453131362094934957742990024809404364220504302228977125791403886388008012916500946082313716610814477966078691216793225440616540970941096966310871849627906017690130594548876301840099194972587843479248743159865965351985486085612887948539786094040805377988190410873164232765477370624371408438944411762627416273145652665610339946055431875660980742273814425159228838861954741239908303356778722543903450511272824211905427994705495239210097859912828807319564203406277635710688088949091737930106010775219012064704138687287690658820972459074159383410589062043936464825349614742662189831686347486332608009668110680738442667736411187695358523004619635101497940556967244257298342183447990810099662916368376618968201950734445123381874881588950077869601729280442144468332753363583000237856572740157611705755253019220450094550902205556754230243623585874129076179820439190747553398228848100888778971344333620255150210610188774594818820368566434110202671187176717909516600714523631146206246795199787047610675482479392525608869421309608255379258114241424116036862616972757477695590932760435475974517902687019083831278970685712430008858717728594155858946107360770565486720390007360059615915950009179443613735813377529935561323484441338512949084104095803336405772037942565676247620828992375693721538821627799388986518578042926266631119064845213264904254926310732391497368229423968371435646098286017177559764689992541187837527613358484065988288486035271279078575445276058590982095585553456427438283690280888395757169026739808737916639743481872105786858755279599926863720167382817302152910755374447634729728357613832487559799737350856960357490947179405085535806409551255426486973950354700098664739235859852876865095327501322817763587816579472100133512874084582919407739827406851384362178687171050245429146223607740497499379293146976946934058767969056048893327839351276628652517068916901507708257926289614042491716683272950092463533752181137023745530645696252200429185165182313558600504319496237778154986963800019871989718139818134209378334880809384050292788085040339736654336978353682348673014282259898089275063751201449057958587669790172933482796908511603768993156376502348814137017995784703790737030831088244772080910644708837331809515561503014317430246917500864060422008323037300167278600160902444885384296517798723091717982662489692174999429016484937400534874091497921594101193207467906409835086339499740049096724577099518909630697153728110993564683263043926944044368430778580870756712351104741781819979070190554733213379269757116306304395074796083379457469046411330412183358516163701457677176064184299067593887186861881858277650034684296514768386119161219904694661938955599693058738077294020377131891100159891381709294209965550573720322376082587611374096075129605388506035839109013232940069745199732896412212207597498093463997918622412242541207942791053303786215688553288464204401972170383752933230060571274506209662868813485141347780332004119917438182943302512174612229614066262024586358771448551277510779699180096330140061596338363239959006400089193371947730171149014014803414250051137139260339551225390176101775282112790868938511474918741130266516751343163840710516282414577330633925736820593283944052442316936996290677255399624874254590160489753896230536330402170894491210150841679319136422542021848407646309874839290505552817625448109288560092311970798248749583670058739952176441005244603088390059215108234226038491729752068629042243349894945893941827008979569969931309223525573294722248742680988499191380201393037056616377284174029971061575672745460515624902624005457360732848339778721439724031398562110623618113608570149259830649043022509967537281732203211834604538966858188913549972043341526008530880479457857694492584349948106946315402845792217526300220534823813864600354476006381083770307207578218959452442875271350065742254696185148330944557647294494491999902437131733029307956813283843208149768942435670069364235539193732801682126038579860478831150669853469005410380204464453170334095245937279747309217013649609100475471946041048086653675353549950557168980931242569127881234612450934489123919064320388260229547763879360221598001296901262148552160633496277307708667727829338918261641711764029814532597707098424509725004291209073738772581371968632024626757870408651174733825653908625112032063579000065786372958715688715250369488676585264200228690707501376415236372692200118770751850485797252750442650566063752900500454124913699200930073437239964445257776970061810187144175554993392847977018669513075591274812536178341844423852296567762373346817812319487518083290722438904609653332478502551956284478841309111818220922002522227022439158845292882471975350355068059668251290926987900611381728829201571672222160485022479535622836512600107719359227481824617806719444484714606420841824781704491913925076435363353838517275125752331798028995841628479815227460223329567612645070131089776843167126940564611579930674304171018358363083986983930132280014939706424249403764424592472478787121957587930275923898437463543390365720076606677261382754392633138906237001530244393901835838472841123497498176809432823677674280752478725826982405579113259174491963965244029740065106476929925980315249456465339671758055001441677546422033998836179680990282071366293917610439944052476699834573617186700473535598474230808673348166804431837448783198792543194344535506034724564678239731310368106051901888904564387196622583572086625389935815391579656601210954740901678185493053449657730317888945692355845580811705867008335968673058963296939637004268592953115117614879490221292169724271740163737426799104363850239468770902249992371925460727034656436405295028043278025435718692183679305170803417479107754099948063729366811734031425615072226899499297046362795697596148836716774561729252743126168992526980849029209986709881656463786574577206252919428943136396940176455136860950096299576504912212172430264659738163669285854295843501872476203455363620141719491853013144303031596200487649653540312945442530803833016367030560783983439161742775507982682191570611887346865034560606813372093787987073133896832099661448512554946530185441408708252475906776201841014134168947865711550078447185093450680872873106220473625509477821907900779655954550456359257413482333229268791349548202577533086498204468874066888240029417895451211557761606963304767094487029842836298252169334413694082055526987215867854327195860691049242201921095637949123879875597869893312870109243450033488981523593442327164979045958983497833273287633242902044163879199605493161618597706156285315941717855448006845288943098709419616949856638740957639804185041694663208748773134436669079931652299602731810227460752875636705470642810032371517980785831612697809595933045968061921912412999871133274612155139848147181944520825387374282022609079906447599601857962165713796889308598583867113239728701979132855646983526741607028798534992811722041555746066525080259327432857457551168176083180417257935322067757484763196114030433801996926449346825059412568973717724717523426149651613946896607995493715028450328445030186091313451507197973956676709899452522416898947534149109779302065717885009644786885331574301665883599232128309028771166051358279266596909858361119984919071138394674788285372811325932964495730110526732039288892258280580246248632485292460172669185051812550218859670274363799312596302507921645988657577708231965843300360358979903874186169276062724200300412701715074300428348187327724422077297402344511872444235741384096680783055684781110726251712704653317997442510791075755305109732755702244731146253026487598655727027858318451533772557442587236341392342284684186934914328248052117080744650684852274114828935354896483666343420306097246000497645870638792370404265085201071402936388424686108638997047735539133509478980624160615692944417597337751538425805468027630558058705144003029865134088441668908095098644874062378876285401583474281957058029318894250539942405968300166302605736761076718984994782003786713040171067163641825999900318406919754070292108291374752856630811739351413500968807668546405940234934812694559628742047715091485561180722383043120121179869273105534432588841714806131895223696127260489841904961813012856971764751448757997887190178856754478614717971503067372130852565591804539731201559598635461354239620240926603983424622863530761024715268795882777553973584913751180591922716542032039995594182636682111150839618193661486179964889096100212320111278895493702437257401348896283432224491693919314784248025168747061297840361044972248573975744752272541550341332796256106051935539309305736125976520101242153786443873986487621172010294896044925052186680427744091434083089434253355098017432539414622402335120003612487516094861224659968400144459100627263767115709273215663602524667867165894680486166862350503556547100202946455085472554026279478493582524759895107238816379679555946103691212535144151137207539369517636256499612045957028116132676294475284247795834984745480326559938323308542166900154857970322041898401518462244266371928445359426933670781646856994671030677898790466156023599984958667364107586228878960667571031526717967361712169073239691980420279234609845696739651345360957529611492077435740505687082888593232408377671766665643552735507001411222991770819456495992446844736532458013350366064525488743001748921658126450414600743858363620606892303543089243760730519702930468465035730430040065020141902410620458002029124697991880746559070878235402521786882697691471773035787553460141723472321339790057090946031039020062974358119175274289162638825413158508482597432058231599547057217008576686057079960496234308004642037586634121263488395511541917035283572233703189771882591813320176492772014995244750119898442841307485460845726063970068642567660063481082467590605992280032322653490905561163977557574752012956747218102163459235651310678885358113444709922318796796788643886407295455444619038972006385103974606712741385840934966745810215482575464021874369712846617469091535752761803228606362184192349774491643783082522164498325245646352525443061706998197044129637189176120050689219850754568021682720018762367408952431706231919096168368512168612890250558683451053513228954162196983955746589146160037869025701305848062274688981737344365018081481274988865237231510168939875954446667984626372048870770463061838849724620709811895906632684034383575907116778960755048728651168182281631225812512559877224875433247764607060772246879808747264121027030038591227495846165705385627402908550419524497770252639844903987427987881590594444936936287290873805523951770337677013871259926393669035572003371644293909097202197667303114876514758676702754568501957828874675595591141711137954759675788838579719638210091004218667120750663218160841956509276399292575903947287371600399473436883492432612065186854539546012445045228858736975188657094685481846413378389356089007341268627414605846964578715757376034756790263007280729003960214449794889021025706582315316956325330052839998113550910051625921367008983783749986211724733157116844013752678363971289376591686636035837494588389861030429745175445662056382265800596050541000421917553823872263779703970489085220024977527559411601436110021063263792454091792347424410348543267162888746608750173727493869985492394947674806660309673827293946415973397536258142723087508802310600694068031442911104991833092281875175605838736792252030492313458373276028568929993011950190867324577094161424624509129407504750205014319497827553136994463990957817267613764391683579412574042205042821268742139858631625591857789590450848141825990473232810031628019388628362490216124923722610218174572252931604072308572906005604766777965829367675287729244899288621217443653625019756854943592653260722374641210144301320233276329426939227793261905640437245839964542357591390850298572835181198079714981184944017583024406177354238848826938072286176916541481407131636267142087763627535239674284645463614564875586445954027283045414445234044087991883937802477637395612526471642938943479042955369303422973113444094929728440278579600639001767743459795160857460103457591354263376392914999943716045153880901567236574042765455728214181380611876934620299343269743034063715734118070972175726323711187516134219674190151522925444933402838613416869488002569294034146581633286693566731126419101679793477884869238388017973831975387361701697222394430156759627087629807302524930127367275011257055279559564339093055544197005360263839430465557263475532273036882326358723569765461627786205700484626439001708441020042852308320285681029693968260571036982332792351473694865892507597364810373177269965903450010768330476524597713705565881808795654915928471869180326117020578090346001151223623810303144854469751007099531897091979540949099702050786545813005656429005978558116581701315578162418653761795537977502344007169681448225095397670501035067911836937406103263689744254404955863429489426083422143006684397080138415016664122414505248592037316920815887359198489583861819498527573645404160185594972430912733398598338167769447304936068358756766362546555779574500131251161324931509360983779307408350571775448845597713635942110787967040148670661615798702523336099844642730002790620621590687924112178766006171916282958113386864996487178801752984323127987224517636424292045905223068053872758811592275227033469906011369488577772453166010022589299475204348245181151336835547235191268176938612763304366739854647318871835063355499062741450550890628758543314521206946598673739025961380066295276343932909214385740159546351466724685556508906501713990270585743318557030559841611906642036427974837892193204247013536657563277474516838312781112279001621002278902306065785828040997143287749487956417038213899434461662882702488185196681834456380164142875768259185762648561638597603710372183914530126472948890045992844671920584831397801785928814760155561958356381421778008311557086741221220254879458611180088313304575357660393373706296269358249836522723089519875306996784003770159785173980111781792188482052069842690125594790930095867931791058932654775327893259980528600862404849643140145706658670663962233027856166104552197423930693272479007084063208078777183223455268157169667535678818370981950433383533651951651642511573173866666595439215087037033979434226010377750781210524792488822063575936423894841034650896218635715258588108641857387767018096450218092512370348904919117222304407637537838947020516961655022429020813102179989063167435143142494846712922403315767446670869036203513658450302496819498072466285981596502056635396654014199726297505370920006059780270651940765901362216632178525746159174061779690882611924076590378168953173990075131339918743124646802754842390292051500809225572556349310264009343564266322573377235936489484186953400555541590761217436412202264251279428557674873327780250598766359372449949019407677237673526886399452170805386665578553257893059336749344726952681194176640286003530763310089863347384974347850324872272842552923965536256857209103600042488341032031877045574192213876716816332237539196326076216077173285025351441187209111791703183460252943604458340911860156769303126637892897033326538702010638165397989227224737662269090092114577478219130788461725125012046453481934354872835877535000772399523899184207850898068198640584653677787745475466317097857849686245309657085923665641351952618568533531214869439634780220785724538176350282568254675512930306725249926029055165322203249227864480118196684709141581621323470952469214168908334196531891355480876950575006634597582272342194493403021889982543750818079614805237366038967450699640687845223205194618219960275462886016566109784756370440395587990452914303364295042934962701524345971889116103807276347079127308813790965012800367458088266369799631016931832459617173721706383507478415882430246032300560277484469137312038071721270797476433822402003556856708286363821782578492195619464087826731662545389698153310294652111615101129764961270307502731773092708679269212249887315205296514197876747878046046476511128519006455181905162910241282048302704268039182619059356961257340704054304792845053002546666922766439153991157586509038446768379215512080666480405989900694702837493690030660291610951628960190069030736184286913839616779951030884676574031126056025964029914298128253308794900493383754863305150356350841809902202885080644624408370175135408214011109635442981541895658229449892777644191790499649951246509107651302820843305857883967307463490400054881186211035065034895855888654931486823172696899947740440923080173637919208239032243906600683674041015412175180350792021230079467090068505253428888120343275044573749592520274545983389515652474778951612789404664250395817506596539477133556166377807385237630725828986662902923072774360982617290864448036416042817770010143406488827949502359394638770146662250244181414932280448061791119695859129346614293840480900789531753811972646211768320603875328048002680693125254849102044965568614929492811241981752066966368173373537166941182718917409735871744212676740078281271657278983569125824529486161365264352150889181723194159568679460105884697363273711771015163540640316212330464221842518325692747239009234470914921845384073980585973206244381123084418526053737894414948920619229470470505487659419136214097636621169874578353389665361521150581185980401403735915801264361498275899339624094555764301162980975415577149986936631380223680967619956250537853972127501933332807990854114074298153951993977965326506826700347110239129400394657382692729961351405950290522374643881408026000879249262477215103864126667579855356186589818005975172052879835835787424502231325220325638156609759117442631949072608137586666567032645568780920951130726882575050440467715624501583554806403722387147678081831418449324539570700119444504073157891783774265093686921330266193076670655155797605563268442024139190735359719470740470531193067342284294055679614534765713893759216853561282132086959548147291736647187772186992613800433911353477858894011747093779406588773540791150704400786175170444095712740293158433847583104738964453439850597895498934448668521500056403860323127210955842220481023761920129111107230981897580650377627927595320779024780693264304773634697580115358558254244619156089167848580134800263499420850015759428363540229704946649487149105614223861758740307419202359204580754656360306438363303922520765043441228193333782796745830958094017997615872418588017959030971029341797609795228898715848620580075340590334092930945786800114694406441802783669669609168007811618091785462910281277928028630182540910761320873302915126774954796871987964739481138800672546591003825926515462061694397622305410224656958245159324384942974057242656432673405548801254489501664570283782415799908350220405657497565887627065341083041178209324791555570354233215175471080561812550496131418765281040127650644882109930617438673066690595029073129264571606684618241752436960432166303777900094193084929777924257603814476630469720497939594177618488996538293503698696406269148010254411530120580086909512780687258885423420952931087418559140631531277736784443715364572826499665340007808830035855334876825208841242480148534428277067595634608870760497222080297866360090930391343180257624513423421688634354579618726627157740196123098719904125800310560701061818986096957253661752166161551690819472829579419535550057369049364564945814710000710335008829644716960453486971571761748215339348458839277772365598155226795331088188787208627196125891849577378665157775304961308523729081890452196702515520006516551550162663948974167475212949187736671695157511509458542124651130561610157039574450086626129053106182984606217702984435620094840266471472863226195920627287622449051030276791879475829698756771277419510160809550950308601294837764772352500081158656934675193914282108307405515928071510986281172789043504159741719020042984314450943054604642587163233294662595058186882918411110819636528489967817402593156306268964403463574730556267991789758369103294853897559195834898832069995493217501951345169213161098833552782233700170157160934393848400053199687268941648938250086673692802317554292301563068185453903427214601261465238706377350807274872155480468613170497302639064940301012012198417180503101075652301201851236287949853578681288405150207616014946313485807741052833638948297114309877495008889287526775895538561758694675677879437216642935383296962792236203002755553476212658197970120693357435923980199546389391174947191345213070749225652226411723490495718180650615803135628077306889804773591392089732551929357671211209254381094181083217432373706922468335555091208216386197237217879087599923851343019939217344579888737191697722030325662364139576902929444782686368541240383998957140276181152904778245400030876640652516434258234138614833114767207162768060173878921915786717503717468822322473420335909555737882986904575314736669674366618150624042647605047202418406059359430658692826452446086242223259065130272454488007551418922814023678290938582561503521819007421912375892977071758319528936922892416707679452574178240354854224620556372164853398721727286224932621562059424292237960934875401973275585335592973499194987107065680243771146269661896672938129395650496190377066884732079754524627461201097132413060349984563795231350173072589313164628914752238858843550800579857675796519353513376707538273447860225708027646772897967707953489085946624294144676663754885379269237207668260580168127693233465724883616138820795687704956317831523766167819784730801994107569139752916371870945497243994118745481096803898471601432958508207183090040862528412931974945456348990740054957012448502279280396139894851579363264838451358173240410293027132614859807663798259451027683208977572592486063591903721674522937621842934742885524922160742148949283747239895179534745792382565476568563158067834733426918226035554933915569414335467693493862680192671602071684750161021558311189208041938841585614602499889138072250956516477311917293793629177336631868003607183020319853034392617917476022529424054278285758536596202981533430938190934459227791184242204794458378318389957844158597204468085462092137246824457701627550582699730278070745614364151681662545132440077772874726740001764784993220245860547595048675174149426895363902517005964930232731182704316907907334489598974900386627834564048631496920152686397592094478533511370945337061995918051644520657446288025662042664715664597343767618861113203075039364019126954239520992759856821491537059854678350273465467137404282161963993838361409362531972835798560611653463777950307053404704913501140285077816797949841796326029416896410024048258873171221637306812446466746159409218215860745769973423100996757504651248263836589452028807061738166055361995980307574677233149117046680920764860210157066013667383469796363965726165443519267594519356142903173962208962374324333103252466500749331484750858338958506665832296056298470950952252553323000372472838313154633931092681413945727609973946116279030324920935646126178990344038359827768843698264518862384220352105300630164861213147832515412780575915757439357960170941027266272366341008723381093749809885694919994012676300273292950443225082399823082992983607788192155844206473475450881879080107919858390049774388562328170355380378156402139564539626061780148337666078990911297371957619260765036786573128533122820058385857469732205703821915030845965552532684878567961253300548886278073718569798174973918720449653754424068766439602023644591591044637628153216527594577170027356635507880611797775374535800281915239687200855076192655178239600547861348120690051367153198758391202743400665864935179797514655515975988285697957967105562708017593449770201341825974306834639444365917525374661091224908617397029184659771793990023568224561753587183964350894690525879274944901856884284604450932151253851503835800143088727332205932549385411926533801428958717384556076543759247969027074769370936516671390521729598659242248788282246739266656029535182231258400522453755145123741250192330390080774964317810033214198339482084572198743009475040541781039397159453341110435729623057129641847474390801015129421611008188422041053224047517162320720162875376368937148195018098039821876642583325579746552896804003731824607583027110153477387140556721135031497608595054641277253747024365003078403019066298816704033919431146428529241583661067566988146441570291761699221005672039248583281975783941346678616010813033843859913675462638522029176265693917671835065871296488429365469224335145024321222523733284475763680388732492620306488717827801368662693070816001225005280183444220084136087213826611277222433967842365687415936196261847600777782261473962535782968844674444222960677195486532635322882180270186410346959770904721232806572850613140839312739374099337581153506224846903504324398861673965692301509021283499806077760390191270378097140760185205484913774914454048647221394408527492698819814515068802518125983996470618400162851478898706990543057394327061076886109190679242634927793831816609369720481949680449899604301845680998843363442945193357900424026201129563842815920622172960228615881922025164798743420523396375314431271771028261266711421630428038910390722047237105348175769286866071892479744349904431908682909229740141082048065821681406396414902164611294296930640767966796001015221669422812295493988592279625228365325114659181708216046658281821349684302916516355262423110331808640649690739144938055745689122986586820514624048249158723443471277395548411722874512797966453344763175646609718701442798344285676417985974445817456002787667759987797609689388130742544436014687405309651055611158297894264897136911190709736365361834918765995627285722352135283636814200215557602417777801877548293417809150208643902733085259191831939018858102291235771478041416363133013982892818120460477512565730933348308602506312248624381032088436696167328142220080986683510215919934841959518140887617654680184309784436391039281286523831747955693734872630964946410867138712907961129903936767686189782736231504699922476525080956311157602370197309996873455275453878407340008806736126597840987026970921635515705296892577690444205337863395902080409716948601799546642595719928479840782298839487025591747641392840435942794758486790182054452385442235724633453764014815356734438454325071905315928469884210684348908742365555284554764800148226181885270528566450036702950716285602227312245049392802830396124198439848592326237052414910055252284496442277577221888885217706845435175742096551195491231543131519706165009183110296045352005163457626156565813479615336994557099051818303061172173065475471384913691701557991586243471507433856201082489709301921566110775147268683350315234632338548876703049821544287360177043271971712567845422597637318248717458575813535081841019578080869212370362155651284783955188089312803720305662395816399125136827275798048968440326413228946266857363225917638630755397910654962969532829062459069379159306876695849312163588183471408427979512863023454160310126607824423055254829066010881333151159879862962417930927091860708945292711919403931070409390598430712097430017787116052129136977060723141191649871576509341562626984296833849477652516196684356610531218830234823279033321781643124790225011638743472546987315017270064556079559648554430200368676539701411238694271822453417320661502659644162314331322135502127467254612800219816195157030826792765886148705071547796788153708423559877809395747593084602858054244113680283016222144845347033443455271682053875379043518018995445157005726727495894855922807790790758868582653260052794191688713479627271121202794290187275823262743245625557932939858728775183071976327030170127840907451090650835781970950836663192374407548116051574860760226207685992411371357641602641133472207087066511602184391195831909591334730086796586117221415587814239352558376655684808613634968594332950951101040895385584794683338109525452926913525685066479195878480786856190442893152035581278922221800258607509877871562462235586665298802596164904632027162673973116909140060208895982892763216095465544404272474400028852887898304593079255839440577984392954273663574035802707887840141668979957771840035933576635895245943583789594920473029626009141549295604347580428643074037396652980363928918319331391173614106641294175204854159878687531071981080225040874550707391086537466691228586471218433237478538936488926592413050091835491363027611024565660266318647067932571774292996450971326859436107234840887643686183984014895523521073584468314593363794524232545952370518032154624007633732110571761968456718195728226728937880232148583148655477205606045898869866637611542108760278812894750759297578983281472900239215607572775325387874915084552593388124532114294390953720213064726431143224952378060219029871895232946347211724668368689340421864531251801649839076227021773699523416573640049111637803190469647668857961027184371154925209159488842894137382317681600612156803031630113373436704572191104265392041740937065389845072518161378360224611816848072280940059843528693303691540487208468609160284913735646295867374546195980661793446158952455633459715370448770041081600687433029603513648274901862050841034299989022101167861310961963147435710755727987302162005381248160105350336932132581021810702211277073175359438934658820787049319312962536886065529389644273540022327866712818323297057304391460642294175621484589697784212286741606750441235729462857649825645414588774008372251347460235627722473424221766128080308673469832749495248335906784317653391648823682782564450352424760915818377363072059779648359611466066741005492604311485508504250331717741326721991604946967385084872162539557291973375522514320478380109784409612914190002334130711188321145559872337055925089413417878128833901819770328980012749312474080358014854369466647542861599694016815611490663764884598579879210726002095125791561940212992101257363238815499688812266617280459482630597737972877815360445136048850455997748886680206470083264206153070188557473693826979798329298553499444472642971163553029800599004023546057785597609591874415030426842871743798733254769295474970770615677342881805637883356707988464587782692887070345289889204877461161020801455939565855454185735525401084597159477333221466410982791502998919262143414049887550770139495431640771866001903981766366643757473219325387056129639938512277417788462144390774451357944307975554642664855434974744742614788069715262136353725084336157488104498589882621361555235173856859405215980864120420137117289003671390680581704549680081536286641567069953197409499604443228054992820972448769449185493691692209654329687404361893165716313820853349124796336170963351505850170757969819234330358525783612408751843551190754547334468116383485226100391945449606695003366161896260041589062039872996917695202310439107646212486526348814801791244138648982745881553242522659713879290025666837909259530843811102918283415096996615495306652532819984918113060195554859977391217608740555155321843645099365924897808950990694204870440844445163350311517034718500771392541666311248505584450055129659655687591647566812932382156981179106026998528589688144380225307971490359166984462512999270046742132221664471551969064884471018320930028999390796823142727279349288017091233331919045655565514240924029700216827469940902642357352234728490151404567162699524697125339294235335723466494834629729291690139584073100804161458791379114955538733930527988281631585500046662505272181338477574713341651385721799721916670590261922940290280772473065588367501271493632913415855705025027344867005684698235424716809450883085723435503961983899195607908443948799007045917654789242224723802025827060659820972995228685856521873670664411741089289546810709240893339682401839343781827279947404775263234628000311942687150696627650093322603127256723871552759943953844072287338669609874422374087582150775420827655171613136288687742056899359348194362034341869699560228785374229085059181505484011770651866271497606834562746143855310641168276609045281076566220404936650597656405426457153062264089419648220174526601037382064956083686759060401464376209053335038562604062417017251491478710177694373010576412164012762232246406285784608568914208522956151676312371786998623545756740235104330566353655912489789048203074675132719776976644628195359921612206351136001822407756395589455622647549144468978936001209187713407654628338519576385434746520500503928650241420882821203757822576332191987511927431163772552570157680532926824785045155965233972248664326628025693056413483031469661064204320247093862251814240738537819826192853552003305384507493384826820173652941945008800930811976187841372255783859205801102110465025051337983376637617124180873658447997810039265914345831210291836393355430519274580469898083332490856781095301993961509665959989259669037140030288479276998388600475496478699508994175122695699952984033741735918324872897325410866413971120993951397781884573878026288000584762472937589934913184057241898808351710260380044963473020403632451462263976628841446601349873153491172630720681738824618069241991752223497118764345544376763713053584599660175625083690145302182760119221702389910302701880161951311414520683251740990279560103048997748373333850783722814053337917352983730476487349325107090934655239321348646358419065927481499589244128711094626247126375861152348096634273886157965243693564671894452293005417282283293645098338784564665442854047250499514950011867243141311466837065132658635090534178242910242233039252514696939311926588189837466463041599059905970698592552887088084773966236902413272406695624449325958325336607361252804825251184170981722754502062089316052250929083064426428455557806483482866762861475106653200538598892883977124231599693753434016028808082958857751420204067061416091428057244257087245389950399743109825080563450353948056707669801536933650423526158803662798163044170694901012959849231740531952815241170538451351263132540602838170263421798099009664834937112002219156913146515410522046864520543528009103142234168105231885941607627739912412817526475750488538837813238540035316756844488856405259291968525984359616043552481896854730950870165584636193353528603764956997308186947752469008837996048885440772852666963547183807652947770569447525965859821280486466051166387003548281345631841131296896136764806454074036054368404512839342390827010245726808702663090748442750118424765988228587053769291535164942950357227649180011730162509559121476225737543109792557094003774056701440576075672280526195084153850440213112068827559335901977540680605363488418506884938233795764573123623771223497821872690112378951254911538946746124809655378513076558847385558971457726189950051020525224700323338029864756127623536005218357988934697293338022002432123748732247930668048369386831206559930913390608373452313765492189107054749161374541493548208871433574820894251486344277077704514024864774786081641190817871382390199342500724563616669564808537661255613027749374557120797272864738728171933086640017390096422243604763614520585592623113473658993221152132866769002399124406983875932304257903233724707096664628740926166797318782499308232272202821917767369453814615666747192495464030273991171032393405696691435308837569767390752312947829204016652057223182759709610639754803007662127049220219506757423551953492879676538203750903715542487232935547789989119686466175609229194847965753042450995801819163157434470899811260333834597490165931352512632929848727993509618960507116665469086688338015716004779551462246497090649754302646831742106336632375007946289973400168579206947589052881528587190103332490076929643969510523937047652153454097258533766754476179107090784969830581589604311420412166348403737723014174796158905966191476016394484916999904307839959292982816009435163836868898267744014676944515474477250565522308789953842998659135684620648722342081702962591328192746838663180618728613256002231813085488647008235640837585016064514736327827882343735245845165163753798005687883464051585818902153631822529589347717297432773009883925480650953970227727678555372546373237908240038325234660795437478223743551622904157561386814780204180365398195263431981003452444470297112355493056641776325257502002759348565956943037819296052156226935572791470110767627720078273320829783885185885647082341498806532271446252423862701109709472912271473065219151305489352615688228141097695124865956922184949090278843546637759933005630534944103958956890193704632252957747074448147390757473208676542930396244487303658760290396781982839041042736902410084431592705072725112993686694527650413740172691145360726749999991917273115162820155673287874687153121829598108343464630212367201823848866372307925673924787070915187671628396888639986081398390536070651666427344938979166888347510491010593785148910893312229573166778691685314044105816990227042784397149126823436970259827683330653728539905066752755680598159362138658689679525342653085680731060276976832944816641667469441366690022501297041668114093866950949066067842731991314400685667455260750932294927216010123132208606197028116205403525873416436706820567957784963648696789604994881189213480810739756527590546977290423002746796405683001839085017477437009993524112719501919633172464331799394261978547219088969413855957640127701535556880121646542707235132458289980159201900294446337297695395473567748684216868462232399239064543364564072521564322564559491128149362344623699441704725378804944528260205417442074176389051769889647412400759648378065521911023671705913200819219196127940950403318627601946318609942561907182709987967036902445958777979529207062431656150700474896533016728777032959264062548526276155687069895716393075889722178252367892786683569500075552257066713134177238216531546806882480708848009102274164476710457576226957765597707595096598372652450772801779457355266372032024754518783187870342732933356184360009311678456797549283526271578897625535106759066930288678247679621991190455585956547380098422314492576689713440498883383880077626208590629777357292774420626153454545598456917657676515583698055745795871229383977773523568339587587647393840698477880093275888271312103120608462236925038364497950477592034024580715851550424695628422159712890187885528609339526385851884222668384669698128603627376761662134261416019118592265901017823367357094900210974036520000855038919464710907514779667246502425711001628082746661284937620190261608080425724564680790294016686195097839193184471100708459581973710737947478605699623697524220681797196160158580794138835842481771395910988729458500215916705982889275825766020581775446291747428215337730716054455696771240315907911579934553522694450932881198219626756906448918623378699458390181577941422551515900524472739790703653105885144670346789327005470917397892803562949051905007991239012525695330972719852579155919206585248423940460254665940651215239163725239549501133234797422398775170717066945897979744290601850131054234434868615969711083891722982074260874377930876841810368313000851896357536433541523239840123215815698399718153589966905387717539166109271793532888235844626517814005907933142622155113027205834278606269635604654735991154278314964814490527501320284674586313838993080134066457988509794225786419665896547129854670681821266013227472082674685160891929638889188072864848869281019343588740115475062987472069409131549647924006266340850073688993044872404685683860365459727063201476819971124689066733803252253163327107747394018438858243625728088929110603359123016291246815722399419779674335526178162476474183467847350008708433650352396556938290437796382834799003263924386124771794404028670885423551034150888756805399173872214383536342545578255968991509497793597763558680869013974008917875705180672392247277896894309450711872587412321650042536553206006249049692975992956421566016059551602301513871523623281501329504461927065333370866185207286783762952426148710203542044163503816216211198870129237498953180924845653033676362016636366343920082021382930929855730114429369755326281953914232537951828585309503662020541415553400121207296760035427687153626438355743306598011339837849013874381472113635630460193418069512868707005611657738243974644678423792070514344700363226162374806830898629779595634554929078259622248281207506546881642516216788624931855587920536079926643870852105066318243816349089846264627289577538109128094961316360541485993053090682095820009746260127650956828094972375327291463655284233508217861382635455875845779688175690130142074012611144356665960680954858404401480085592762886513974692035818044127724363503980873029901891014079475084785751780206144540285485756440716247809697404439643609167475863404367902884146306295982082155328660715999214612594095959969485713157192809005673332808444887505063111130620849092296376185129789725589602042642620164016714284536249564014593132111924532134268229468642157677832404108308868511412540817829983019996922732936166461989608531052708711034796773321521035990665220966281472101259276875667871142209587472343161583066972417109194590650652722350856540336317469110866925032868525805189850649484909423791528297514923188112933435114877087938035495259086635453510447237483671545661281058275901489541283656874038956288444678818794832778616694486479893485674201470489033315753425232510488714023552173539039990971030620193426442886901232628249831714237028950017361403389728514197616208911974070270549857475352831382845977906123315763214936102157287744657529638450847778227872944871052497658195517524071785281826277735825703893083312200909271323249495915669152985173042655279382966984271242247301789415978730088130406148059438226310663203140931850966829614306049521425005381651601249455288737217297508466066235669867057946459269375976266870760587147130733611688363577249504772487620922671007438812116119094882078714386515258343859526971562203870426471286044717307860007656503080358350841731858435185701679594413872162835164836407844257224404306646880300330974465718100871888332391116800656812448525750722779092429855321818728438874578567935223822760841121592485964476732719089311626277406571312001493152689684938585526225187675620550926931670906072522954379699853405816179082442343309520887867662480735278761922795484333036546058688290006000044080410631866724739657628339156646309344988944191801283126509638314961153676077750915425937957794142712187228743137416441706317667456343729801568010116569551109573334823873687189806186753495769568221744316169781397941168021648246341875435467513908946407255916816677692285612133922234479774042473158952285568247480342868433573660620543544814582822529662614899236791724320805243814790394477013761430267228668398139980511112042770207403189255850351006983012078690833048185694463672074067123444280464391626467080373437815636587566971994281209556467704472116669101625095056664662475208699220678778067684400972223306959503361960245979028231401654209463311201455581345004136569965595761298089527644721817210311510175602629821518858023138745239917936403576447943142034613767065660024108008661257401911211401976992724953143982322988833777708955374452937549616078952452612337613521668516801985781249704005147461869394223289659810992599943617529187478112201907353786571387592735299774283671029909810988473653757758497695853171484523573166795014523575636761040254816506371149220230846855106058781378621306684328000742127475586302561952184266844353107563555219374570904763264732412390898390887978100980048509001578584827130352031633201690426562746517300248474120341901956667695575603864263673893793111778704103796719208495214384954289584533767317713208065832954919361105823003834871050933078982744184403669971155019732357080796843238931156255428681363128089504589743775292363879900403000044682362280172745596006458820306637730072423150158275884824213653569783209521812827646039221038258079531971044800101017811395859057826176790618328859687144120256399395051684521302366890769224206328306117977015693725486299801446783533102222420127687763203518908269453738189337166561021425909101945981393926391531562589188543859729370742082881826402931677804439997653598449081962614565397332612952686455748263116379468779238902941430070366562676543888901950861195758519462631676172215454088521542100607160480564515660798183703791827418320091948520054147554379814270739933437019154874787435911554799198764019106508064999272725872177596839105109609085466648806546728376853083994810779761374788497939822109932568906380492550802159613899293121798666713126282157174381613565712408651975447345187681294279644453583105529351615917259694496347831759140879091851869942549151624065380294368391001535233992794869699394945461066112322399817619879433988583241836513225796496831968975353521239364968832399432217206246411392757337592479771833093463275384402152644319269714582919737669519073130819238541281173254391892464883304011765596326360552774706141383775544456712222462365637535015920295217558959652128242387063246624642007856275330765664906628981403062778026756896870519148311284666589619046969671685798667810217555074431845672658608626219034367184639417252328276934203480266470256429573528434595130415963037875431723554313938981480633651797305605294200398365450414220755046766342172841038121683016523976046020540695421608725298991779311421990550488589418879582581068113872649275441510098580306089203637441295104612022018579672717441080172511767970574542379207718750304085830941271541739711738137236256007495639923769047622831545269482901644983867166169087266772238142051431989850827554492843666242036315808440566152912814322020408184283557255941616769667449661000750631848522112257402856486059563995899319342618440800931455429956153412593641031003086576648615630030148925616782825893448641410621114038485211700171328898859402709206600590851052916417647905606318551891973558053400354560819850849436307881165132399419542388085442422898447963231976345902286249476852499815164582526743093564922708569783137033413154826024181079611155965714978628531508249890176143555853675087034418795367714577458214718306935930406428777666728186330361865713947232764494170422923106293422332651933189662606914805139555642991043077276185181728790290775010233011704667167986104182594026464121907266364789365968823725012344113386797840256854580321138699772215483008525810985020485671885423950215707059048317826558401543518545913683906531497104013900973239023297049341779568097491816143073824616385416534266790740237534442483642590559120233285973226784104480790820919990429019885983266178106571792475826974759072919505590419731539667976984244571062289219648931737776089004802795924974607084958301191704749445401196224866820291847336379691446373195343047275292998638807460733922300473360442742346890117629938176393529797933823930861426144196468578657409121378763640187512017537209797710491393714552713150756368784526210830991961420174141306601398789759732270364939028669889911158089784204562414933842689683765786303273144799062874315889953561962389908812239325734249248955183243035291098018110771716954309302820324233603063115510603409732206564477581150552363612772178600136225690820732913781298562864747290338936726475711856258925476107382153129813102957218328922513911705288375825409240469765476082051243810915332205883525720187920071858419629770920323565312495543963236219479866483591484615441532283247700556723670170602731755620980893245214572395722935285268581049725640059567783287107995415805938826957923011639213163558711734473705910620099504254149092046284827737780876153650479816297855148053591586873665921356597674334585970422766757646427171563749059622210020496814285644928965794305653210566427270005554885425658423683065186330304753912728721005396950744837321212251305582632260414066355852561022739762498044718038632688199285746630743702707453921851250618645734827242508355181436207570079284894809289177906367164474149731085880149093953295083874241283864954935653151882112391602526350576274879786315006110939244050464151987949139135649959610712423173418288184538741067143878208669654070490054728443039363371696243112193569636902888052718698517753136688275985068385234404995348504131180494725848240512220159658321805527032970571864438720029701233353829845141758705721264936402811664711477048847358852867441742529806460860066664564922064360278758368462177697945901707206204332974279649863383030109492943524108653860417623264509118786954767719517042878774963388445022617254617374124757106827155289073213488775732606900367495303171344832171866082058839864035396498697001888691308602641582871230735375434348304473909310149618557678797048635197928091054233969282887293764651479672473667738904816575949515264500229483836447350384753254782441568155949882679333161394175463027102338173802928294332638320004947307207141940760117825811294646264195178159687843401535844092053133669125624135958854734539618277250291608293487601297428521782101432518874096965718385766425469250679358122056286757818750822837443355626621061372304810771521848369250136488817312420815525536511096148747960163468904336208869360503354483970324749997097706840535502110557945066380229304684487911910376011906070368980355020360384640888363200864091736810377330320811730744899905233673645147230904104959883968012412747521835849216195763204189366919810239751475542889294382022607954402089840815706561874387745229305414048908528775476782259383719388187073688995893579723476661435757608106281576843237533291383860340247196907697718097911771956521717651547531742696891366018610021904023952442350731520098768014244336268640322562215189754900702630055864703191230732850001412723949672213978142602957568136384437908204679319947652248730971773888407217930604307677140755228686965089031734297977440816397104057129379773978562764988794277214578478344811233380183385061990313212815927695563995663444760689800932188476613439868277235652361321483870933933047293174662953553125941834026672954187210537469325873832677145137865208093134662975528245694429376522764042215328001936203474295265230945991064538669870963861102450995432301273588030595326540809487090195704142370689412526214454213919317808380645596715975474902686598273854314400563254970001254347301197305086395135722443534866573341966073236683926128367276150147505398956156596738222196063844448063103753490707080996426134541490914864215565590887615906157698754002174201332741792122011993732951814218416419977587163423815568311899097999803347694751437067804853852384577807012430171361997218086165396941307971072815615928478163820354460769364303386867391753052175877831783521612501612885834762634704371866652172505827196322593366154588563444259077560675805256772893371604732424369266239383267263986872791416935102259383259556199646388058061054484860014146756940759870206328499618610225563587075852149225681027608794297725406327411314490537025105741421665129761341654846486518610668555809623495372816587533101618471967635739022891912209590251646908165252035783548362957291747401248532690018185606773279332398586661147316699038357150311774942011152761944911234237757595665338393573421485517402559409084470307126673082702470705591151183314497226241493310463346910929302682457215200115257195852689978503226824128092753730876756408612886598504730065156291877596460573522394841476468798875121479389532932016282586048535988221675151226408708857822434759574775296832214843486306864050700550672381271173488135305186027278010987316012020685892639135039956837984087041457631521457966834647194010741608013415285048510212790863383571183504230093639129628084084941708619478344727906105203233765962587731238631448705760162922521251733942105805906072070324841334381050395687351751051540976450427177709052061136337449805860942886054826000153293431963237845694225818587136036246553370621195289127027791046656132741265453449870914274486651514767971047593347287381651881333939021330209957171388609752051261900385324269454631678518565001741293960000052106455100362906137531368993523879722938188630097523168095826905990525762182724418399966213296430514277474129241586872122285876739595528468438907056753554816098103245584275794095387127463764479886446858180641037231915641614833893365521110238717279449945710801225247450497809376538373438457634467045071824810916549823091390978918975529197593825092595054004451507127928248819033424325368800728084635575998955365305506887771415208562188271450333184548074525998905984447273315418932841510787650054246072682795116033842384913779589328297628285323148191366876866126841775789920685122629494479491606912779113838954884110437085664587153866974491197674484417821821552218414618828860489091394822313297674078975199880584052396856460462555707821457197216751508345078321707969454299959957320663333466130725131445017098420857652314783504884732049651258001578028838342510320443778196710542926420530844312940137310727631654795889132831516545442643864345954133825051128525070172107290073046482019760028715542219253786038095729205209976901059663155871556629455940260255549035344572959571323154215236223283102422923557217969053396224128369014299722437967960637495741691207902399003225183988771699766305035481889837207187402640220084344311564048585417380486954451636258086249607249694356575174200594134278124344495942802843712941409890853373894640524802695592535965080008059248196150201822862671862934005318475200667028357558717720986132563773670713946036500973863986498874131272044957833254058911216428424989883705846169063080544604635018231441798493645619067531671882876250833755554160998091901700562258812213045118535095259257477714425259968539548732998645261257315017985498006814351800634541824320135187868183265797874878861804697316182959923274994635154162133174061001624414127354081971669386531481982241281315214954985616877297129007203289563346432794698429684266909451167650989927347604936612104404674740561170879141928229095185405525889648338392653335641995831603052905842400331180571089024997613948327933264394811473454648141148309407685684275783915050001925118549054111253584773473182826074806657339093262560405395429113660897833177383411916557752398042568611604810022873832836497616666420179196882881731741854449655091140331641687106869145259323847948820746321457907703723909344581856991391533084638758289196169016687644814230630876408424605518575200865462740872540423321496667613587811854954131269095793875479998157666951129941288669338738116955409187940528654865681787130891369686546104918450543168355971129637069805019955307068764582467711742623006023396480069845363965344065328627865546818599137103178564102028497837072625962737846280142570414907576681971472629199367844407272986965761943813420812456432110407208817543283835434087341304463691766428474064497542619703072948936554255119419629583696304407865306870386943228638877730729934232160001912361579549381094529703530609682958263899650143427114087166239090257441214126830575265919596223884176660666718353963312959225490017522126556252646807378464780011804975735943855856838870907335035204473606953473866764877561703793953930842464313741146837075508511996118470290638852622928504408354763409001335564294317121364867931490452365053549521409157732508692865549615118158074775464323000857210576696504178294606522554219572560482452102908257216250729283142434216782794442245114041965276170171479973328895271203315461916989954762287463392813466789720702086746730601120772026949631270943991098566154154307677076498508459980039917328485885420035037870800414297644672335689001790110742965102120527518525113724418035443132586931839194453631637610713192660490528170475712800391824043523637223353929798225042203158876315111401652739001051247188402047699902881719022592314409749619591205058928777422505181654282817066235129481410494273244258829495553380564574480421655142029027748223591557825410754138919020918916335133723049960735480947725253085685208852310465063952939718158646725422350344360140543076595934936271546620914637320048783061891139619410005180759092881628182265126054272263572443852436437107820291016424129097007443570607121112938191062227165366282541066370355122237275881880503413943111772609427732112690922722201245550386515534630973721370389409038085490412033051717710531525864896736186085790960595976614646587211932909852146577339504016516769269616456140081852499035864330873582479024145442539631352474985628271020134763092958870381124037742509873236850213430440043593139804829360713273653872385620042794374452099792382787881251249708377614423144873700618780007678817544257061725110656075518292141301064031072140927363216504375648982355954632965689631464907898426403846336426184023139636814900420080035466041702882673470367492215881568086240901670146336331362645892835905272022380331598462273410168871346130614649341165604094031293847202740616099706315237705493603705015033463563398203924183321605923296439766280098197047524315202868220546645298442901170406196927877937272910810463663380747019038614903077588611678929280801840616148694818198180604831759611478946841614028684668020880688397547388488536269480155380330658370341243545515685716591622295345972839783008966204073140554877021258926163613389237964356940179685103727701460270765416170390922763133746822150055675573303482374851548723965741695345118876198653353574488033089482845169699306391176705834384378115676748588309474234906153987529289489362783886736588947350628386292521407741344812588497449269817412252743071124771970012941420636287390241833445467550880388175075016614188914873871628689189305210278301430014983113523240291349932962955943253876655687178149521809786265014865347983554108253955951176909132118169493280375246385657857193995352663664405789471588162447546460101393678044917442748915121966440770560368562994408666596378661653000871540511343512429713864341785833139239737498726211636084396367210156069388884483079609548769625744254428754170854138131500883886159636270528614774300596932048254255588735651772296234291358734747047386667586119526557762140819282416413623450938268575429403710169710294754224430762179602394987567469285605557763147137295529524304471651684734328006342067190562746489236399320619684168746511203061004689203335388813392955022730664553501523817419998011715183292281598523229358445828016976038834266551841658388124129422880431347428531787508131551068819540814940285144664918347214757401236663630447991951401482691150072675440209208400758112736332007899636552380360092730022048340483296288257685756815414890006368209039446244991730448837888954986924733784138150861159166012328181375425976144259401765027111072043487499128862062182886505429390155404193985438856097955749125847253364415920695184512955400155637300843995536286658861144769720916111257463043619947802864946532405616186404355403336930698384619215700565296069227546637729142890766035639190330555497480132968656254538090800963489053726469274580716330726682121472361079207657047698626634092178756317585164311908639966070469239085480993209803825130196385507401874439612268437665929124304544788768406868498159595337997210659910098683188373956656395423126579163072664091260130622596077181052990498513088314576491090296232751261735252529054494474891206007794256043787388208682898897926228988635737487208953989970590834362079434709920589626291785149148986091803746603703600066688265808588660553285281920619249381648384167696826348509677297257267771887728050129017586924616124693152742898852691759312533400381664898706723431617373993023247289636697954611692235503408674511204412363030785161184406525290490291080082894818779766400274120150397554402445236874696511776383422839577550185315490693766895928361971206112293984407545853165300329693792580415034895150370627519033735018145647480371927055372841534607400091876914854312568713620755884971604364468571424115383682479996420316623924001245345338574765307592903053982984826316481481199652949556335143298903260779405787092673784935994025982287473347893669960542623735437644795184434657900157976592654921050016722819090521873005304424486995377847596851669661037656999379401552940056988203489522444590364064703626800945139448963651518064004220516519960754976204543552555454770916484683451304346619211393017398960958718589120511899996303020733790388704422456513657292275376993724503265770638076864139261332916131226435117970110832742463959272492020281466379082504806522448850493827828597028022647896335937428906012749312567616261771325488093378609784641826750410099027640864072353839489848895672938894409267624655550359506707032766111873594372187559418411909392204629156642151510158775170132042162574647143205941013910510319051766576567241817633581266154455027908736414362726970316152341636437963279692636044949745888731127473866773390077902441081214673772808852780981120749012233048609299172357529101615031066351699071471701690145885865736210493658265384769007149763368157459213049200111802112821919711194874455875286910904064902898564741961281031333955019689290404192489287963192270977876027244174662875969036935225723090100667444811839493741104270988009593568155992929285254164317590440020827647578255434149081732171399293466615860453718924054898458819610536738703386796788889026192919361014462929152253508582934479492826910422496329187007548167194583961962423627859897219050766951069669532062088147253833758913428149905461111384809242058640589394149667310908034759637186223445597605298909506847301498575548936975027218150828198928726518221514409951450527149697624505137342256598102140032966424866828710614306195069479877991171123674404528931126672111640031039609073171603716096009316782674560317814567068268683675963503151079584833233268798714002599013516104165286992023253766651036687265678919427857159477398524514226552632411193497893879467349612568752145476490002794154277007629973654814709799678577390059372150540670660531142987748797117483667993804508906868827598533342157622016281652410090926991582052539735671712763933030660695205339744041322089183147053157214299846087830023094220658838413245773219262704379689735563096778902875239653446857740895134463304208961138578769437069920987112778726498097427100873082152706023178837488589178668760213658930645595520743907357123760810648447742244197017779197500305116573051608047880090802552871249731204310861026302977564137907538336168947520241956435742987143822727970275262818121680498254567007274962810894117785783095597147950901748271351655709451981229469510625197361140680079933189915739737923357844967707953242800691142319031410003064878308907214544356331055550014006775195437584243422497379012286921855285276748733729541961618602402010084199841234233907091529481714625662615419732431534208532011411388043498869821482986057196306597545044547882564579793316580968387278717578194689619290626244720555061916232095289425966825836664511402803546681013480178789340771942323629152326414746053447267159737736469886328865459090526388409106828086596878295446590682316429493335480897350561151879804605789831143090621887178405976201421356881585068828995986491712788122704799606846858208036168388856115304036857363932240891829741762898482472189164727520785769452773464646440702063813122925083532534899704620526197996838235368370744103949461387851772180195480756568631812423522596182246285603144136397909205279431864462602594881269968321124871097719969055841626012563939090978029649128018300911623462517420491794734056669743895168210607895254564888316290602417805403305408677870874661555075360756419726540152900402623521132657717702044345523927615985912220787008072585578055415516206635192106511467745381101680650548027980613221080678514962023607403074971553290287140385541515031947923333780900196192224541503688317829808489116862095699740670236090732475041961098815283170974051184789205689902961073180991732875298837236309587855825455632726807796730656716196317066726314246567073651880060873207675697675927747949334911757519619932065619803495809814244645597785706705877355480862688130914002451111378881894650799798490412583335731023741405712184948042602178843271034616615981862097397376120030058489903714372686099398044048802526463881779770298975942985523026931045365685967168688721767654750407474473832230407264540529506026474758329462099073465277135764851724100613644093793947646915086818119880547289987831323121554333607234669009890120636988546645128834951516605741209708817609518531247079027674870511382003164719299952522810950031033632792799297757240070243154947082341376372176819315092241240890841693189787014020825881160213599980710762685444118603105689934520544532375410851537465858252724937501444377353281551431250992141490232285863503090555678618510056744620215429207510755844567921880817580234095795825995284952185515332939362954269035322578295930192425256326772377304924373926176348811354441143616727520908094565759542711924004705158281774282771649151728494540816691047047345972118951504146862811351788429651322483020240068908603867576741208444468766937593468117019665663621208810619599282002634388058629151985889828350904826682223101920959684688566407233971427515734661757028337333915750039042049167167894710386896708173010571209166924342825827077923238796490493601032861879407687286878906996853178702297056796844145799043728810828207943132632743692152982574804560027677264590363732192517052437206815567566046710494264714531925921149597553654416362223020465801763729598145017525928119888799986037209765393303328783458778450809235623238041020636975426329054686934133657956905284445686190528548777215264674482515201973595817295756872449500528632408213077032448624105744173707923862498094778072991853661626173196907510704400269041676626399818851059435232603205897020418340260386499612000789910598064554846406499647164120055011885047622538859501245632753170966944824856796922528518670748253727853794350164519137000965829154992683009091429138934852770730262933744922443063903823188105166298720894921371296991367108630843212978366165339918553389044757187605717068361901978239352349317862987613457865220905887071529069034135571661176829524139217618494448742538034004346849539591762833544822435893222123707860951475332334352430680233284744205659124449720671521827981663556996141453657725638774059343132499344835273808736754265205524404392657610481213881861577583713733742468422879038841455910411818246700922789544829977334532495242134858450505911628570876399879631957146262489535118320158706365932140991921596591409107951239222234393279395646845159182299753772548332245786178858498639264566787995525193954624282231675784812877997503977426096700798129043088831930908227573570078433783799295813926743283974393514805397285208715765447635238584923597926364114947583900210267404950253032324668651274298902176068578394381141717880039052101179412386241090530205561826040147520269028838132484349354256531439616487352365771649827570621010480562048139422042946500176340029794241668575833932886049629783092613753882156484952670294237695899399785035202779494959332707652917081011865337286218962810374683444081288663797503138268588552408730148324149932670743554025021525290648160587054216660959357376526189334980437562830253225278873007115485018782328759630831882535710422814796821529907539773684058864880203720998385894747750004375099894357401393232775737508086608353359784477028732830719316285705043785074395650736503082581967076769977247619513855148235607667601138865679596760011104710499143246346200886449349271003229830921675950187879929887760611106542122622008493935662010506342834934816191262082639267625334333364402325495955094217081758082613414806905645573295985131950065046502098344038451047284776262120626006035340130408969009110376033988332611101207326588382907717417993271543970138157075990645003376101069403541356061015961273763892241873374705278895274556005492904702146722470718070436094085718792095517421144549059428730755137594714369739176300473674703128270312689087047681828652973625781811740000004564067969698599582962890641484935890269781211944948770757072519088834579674345795021595600655803961598054425322124600582700457572703165453530188176469619101177038186399493829627520284183090389262067196790537082050369067737489678885217675879403057602517198320908879204087227654032299863525371744623151705308254935099610267838324143825917260809793909828715990019028291342744073818790219496995394137144309148463223827716151141995859759569262521546743151563355929111319301546431464602033318517817629914894668253145794719703280222561876912279401675947547669673141003993699366344856595653225257992235263286344671902593796298494800226697178114481135200528638781728539783507031999374239019669164453797033165532494706202848115969579159129857417077595230335221267872345702547903208750096290627549066491676024714731208662493303973499708688150560872660812272804625856500053064179006426741926263073304768949649862969294327203366226691846788289995730672944486788269075269176253587972602934330843414138872584922386006727631305604155991818251267257911828528426082866583232677607776207411242161906734530248693790370861742459444648069558494796119814696608621084590750385586299401471052722625850322720308775789897554088840597791846673031933052454609021225992311470426219454375231164458496523979711415758218125932647325735042015134345074635327526948681191573334212030197886015710922081135317708668564845379849979049841225795183153003994067090397004019501706625072807036299363734086031666326735296859588629739722758220652575554086411519481387017277829867373084019682057902018750952679367867703692554264878563295717913727984761693895675544249981144655729714027342756730425376460144274923430954525911769520395534762213684888326194179223517927572962400446863993811090402117450165529548281401007632046850669106769726357595511609860253942176894999414436422090800653920734562977011868921716071711576473296034670824196962035107091531581348889536999652780723768622585771069920612461937618922745188259870244312071649339266668287800911983858037823559073181231006475207601606840901647425514042642169056646073495042254953602326557691171843274749318900230735345956890626950762649266449812400337387359089255049329332409092274980479924113308149456677681456218342303818465384419812834299883856801315796836168185534989202069896861942558657620233170348183846038529448040043732314304784477595857443438693080197204993019133581839578374580922723678657119282123409742058433203997274656407879684117767826770877747146519875645799808102744349242514117562230270345218293134031132170620061868972900640875442494678161451154588116573646033850338162315575990042184373057698721179502824518869779890262037911410145610612010844495963920242244726802734556211869582942231631401062379071620791573503705855102407098526162233808273254641633587113521104999226339652925603981236512836906264610672778573515130079442422277645186699297482096038304396820725536945960628527821175491986534956551498199848775241595929280741844669270678547095219236811769770666924433387334345871120460496032165922837318596466361309249591189346184001340893521399118351064429571448639323866523139551961492049114522071753029770575808995992016044632387254405695822330622797862942949921223070591344695030936704410139017617318724908251019456435636808247882536900058877560439207015955973060862642392905429585582328402643179180516903427538165869865408609110102988230998161400981366658984332754980048964639619788676158461413187520215028351595010472089857789463054544575790132298840479902736859267984111506743483735587656001012746145552459883304723498592683122456093748821740815468822378227500933895805873691441285866383905367769335868306755729486838140926533146481680754126164122085089793227923857352783931739504221578641216949392066905550191900916713661148685697682791343463545937087750760316164387628895920980780547971931295727051540327431094887984184448255170735091927772175273441249944903396852843562031007127327029628528960714278575865143185153614685355743216135704830139742496933815961956272118325582558795463751814995934586399006730659218079796662695349459440302097481906502439633736308777528262911604667271863413962727767147844983450522885817081936530868441160905141822244019067401183983588386259040596198195553624771900592774177791841891235752812890420933558285965017560253979231989506862785620860266393680377416443425113908272373303584712895226222683235022713132552597567918446320411207499046974199421070672490793491576176168925566174353532614593063236929911672496475837612709611990061023044328645838954923712150120682695493750400562584381813962102828034085137287054944799179644335825590454934353934157526459032158085787342195246344727780868951692974035643214298556416011655509181387490278421431863263227271892814063341536725675515321957929153146324508867460471863701831742622333723723199012479212709054893013555063884607249404065002468970195694891696368260725206596794526161315292291903105224392302147677246993469961412749015402222508274828780667462334221583768089071508472516857501253119797083743904661413885097860563143798817861941753026686446502340702216803149452496253597977154605593805027932726904016628787071808329810470604898114177927676406044362947712143604163959157442598660648333388430873885408764946814349681451548404747434250852935974357301474007869525606629366954945812209100865034637041371717933153944457949460221471461517404038977941915710974671510629101889200106082076522007204832420799665216750656004515725175392642409387038899034850433960104415210586170594609009751350299988130307573565101175839318426844698137742003140557445269428722341705276028176803483464215891160910803272918662637808633437279836588888290599260326790040573109130247042765989293412056302458579326210447225028587660202561751421381177790958905235628889678189313004248531988035102946517091579237680351145514345670795779611777183906785224136078950446454737492430331078271590766935140373067331293820159521731025886888164685468529534123083803091182356704376555843032804797130525227928350714635609827357789813748652867003282354225399733483689106713493944810976567708648162550515767765940362643461433750410365435764468123109922165542164607452239099115358376843312104912570996534553011618813070098076507580574233695909668933813315479503045524330040658567351839022787245965650372834964118550000361000167766470956191184992703620750925891215019018562173963498350635761913032886155204244053283596028120019687860223849086346694672065937634186873070157825529932727928848570289586925917718166703784547700803341737530230202006668763553244921091598220840046509606188363689122422739854965002399388764070756550326911815091387280901018036501991397021845377540415626345792017920596128612780320470733148887948204330716594758125759158028108967435552757659234582855157835411553753488328179349627084429322864271652720719515379735529582336856767927559187152446461780247516927319820719083740505830540870215318806123257003080606738843736727298004620366377684099607372548457224046485897223359920262420463814930649451926383962191210148078915821523008398181794363760699166512205550257826897816394865551769292213633153181907455153945851656913587695758478016717716227795963914180939970616591722773799221068905734203990031077885395246487047600122066467498452225838217782508941910591465252628012629212272873776667587736190701440062285132581677248484437612342129105810568444248431736007254394232659491169517985142740903444902109217349297455077829338208834023118949500142666473091206382633466406632904896795556148200337265810671117399439844439112220831809904452334855627852622078748324206335554749736517271204796320734823929636918968081727520981696025221697854738017082785785589133677467415184954939601138181429284724806476370218548522125272064654435752191519396429769713648378257698032045943734737859453023374250267807054512715249321617622107217761817076853889849320422238436060734552278452359268707395347761504541087064845555694176662200766252541858073929480343455064770399817866883842631290919568252784359989838648865960804406194041975727424689016581544484408218969760238413210350850605665021329437095714808218216087174194777424689797806994031684311272210168515350659792560483025247995335954294503662501572572289313511372087004356883936372912259351273365023416697119507283183404476506741139708785485324194712854160330361565667240543914714389816915952722478023444434165340242569311095111383593159328078418581828756088883998638622224901548187091225701993483437634053463286598481701565510549479010990046006393268036023338992721484526609462934260411910115946225092834643793510801358703727963666877494164098918631094133912992850564881702337789579123945458704295585011235788590319961356196471718445725439734924157657016565751463601403478398561054350978554705538389383665527688250775321677515078558142348798710378220727514168756408931530552347735284427986693395845548958292856086470534711284459201434470239972935313879251116936319068239969604945460162745920412468080178845236771401636923696022879645250461305706935544777994135433837934393836001927823130386773119957783756284288082936487788020311605154649711857695833128370829060250894127034407041169343896222467006633798766456347941498800187211960678007550207520747929510338394502591525552227349613762180462055124957055698051462821541293818376414382877705739704889935315521664653116116159188709857823432898911196475035443881238120441264475778010353641638359171193681650312683911226433360944451805661472425580819477697224750957529066548965095590224822147741378141826912851503475318873293905892919995248239813434955548914943705312719570149209911554437332654084168302737699434169440637885373476433478645135503513848044114440135932716830128662690538682745908781113652885927563129197031386842412856318480506405676113886207733041271341644244672786053625224036022214769842610765191328338275436488041779745265861385888687269617935419263953033441294026926142306722179134289075650298379572308106995962887907661019107907095359323309671756706917225818007000095394719504358226374558117024059804687172482035694168391507714180392234352920852097356057235554117787097990092611151926324565241692587065407539350814080092436207628860097852227627593576023152086631614750760590197921374749568604168330317787183329956703576621854178526911933827035734468720888915952107525397274841334998986749021908940512737927533482091179647821426080192389050442696336483173789084381612018702672562291136064028370265272869279834345548684806912134724946999804629559253068950656575240399176241255674559585545480760965976965499361532912464083722033368046741297772667428051951479372188581014650907647907072684974035825212810510140671522233484758168304003925608644518090556479609626745392597143073153265554149104513921141367138675401837806821854267765130209427725676257416582886348069544145961473585448398723104199903902505463873978841197594718626103196118540731484199923256790197473719225884165107924183008446131104630526542855290529603882959445932449223142109184767346601728510677750859896273227544770084768328136825517625567195976005606048998854073368595734368580529051424655461315640875677893066327575929704591037138820047140500968459085584202174120529588195232650342464506552079005368603193651806477226084968698411234166253549458953951818058560975726531558394753456765759960285275726826040214577040371870525664210194190690395079571194095741864206664419051736185346326187975421152790941368645167287401168143986491249605720033680490643781201111260060489755613684050253303854990879359565017151880611923693909136914850546689429734966467436865223466932884007724423027590725116477772059084263141431741882799316245457699308902348099238349299207333355073690858041280410284688107655104472143508022147039397511328558651929935051619204531930366350713367379771608503048894015731285814146671701621368912306014915151310821383877693586680893420657903753812839730887804184481077212310317742718365816206748615109748294097355812826089713532771653723363926488887302146712424017048097695175513286239743491556949261001282290636342215797842108666739180328521145523871258141921441297623353080505207222401993601895814526733955468257988848264004465125904648886300437415188617445870295301407971111639360907499857510276595837431836445920669231162083953876819271054418691947134223823698641918004053221791544560613537593637104701003906796851639759491207113510792898167973642230136677861630678602244201192037833976711784465981033747265714513130865137030229769374283379197825063053292827200975172514063297758511584527572051427110369751032267701933846415910435910675964667994421238394575219828980861822002844615696801468956999024075556382119412673727340336641118116177400032390500536386085763168744884497825044268179038322121574100488778139192216191502355395089749424200409482672421678023230574659600503599955809418640462006412283281700355625355854147692106400428224039760183928969003793193699593426818013062018101500688838298752580717226740900507179946318753935351673457386847298009059421713510857371025893472500872325155458964954526189684136494416471585959299912150148109136519334974306816315130899834699255693884185020907289422670432590883219937422005513321830997305529833203246658897486651637598391492473979752494006561528762726800862528526846237417330378468270097453914345177535837389324039918173582957705449689953690234372056905934940421802503309783652103624624329500655797783569844658560582574305242238300975647913188039079420306772368503388056933692909980555508161430431445887504152112553138804050371801493815481882574706886066329809473244605404253045917812450476900885376279691041325287493930394954662257868527564424521707470863916015182534535557874235621569538575221428218682884157151393467104972862825321108895231033655408172316929130328958799687080738647576124028948099793518548020006827957848560433062732326645831731515664557185703549662744895828005230868049178936215766605231382433173233920369848471873464878166508559445803196683643618657224987393408351218121154748715575643395085274718628668454509796452533857455936228873752921541206587989946535085050159792212782727795389648558379697964005538172820615571339937201109099766362027478583478992671203755501757457825962640135735105962818887877191993929006134996563688820377252350362240570933697921556698611664096647153268455693133050425800875284568257140638951696971296178409739347580923129450218043162109181737035337929699541748489991931748975011577341094439062501464731257397461487358562658350251456496340012983902774453585804504833415538134853470181261305025522751069516589847080217289487324337633937868139796058507335277468982535263853284075105507740888732114320031632562775239645831003117757341211600667073069813313553785488634601371891630927304134884046043556391240050847075477188679376306994154304680203859220059293037028344590013782640028216564340275731827434995572826428197247443679980421169824139710199682025757827622175835163653436754938204948968163923087791752238951021331252334609413493628887783711112846584821014454990056250896126817758117433666752839978641352767210320805860051130488978859392129379625118383500579052779054394598380228103200626298625972161043276444711860408877776316497492072831105382392167985395516303050612098751973721519531228116577869677725354906948763904320853130821988092635151570699162072601464662464589275609668983268111976235710447815753993694423083491217953366651165448434608702316013509969484579518541619151189562508809525871226843527653251662806293355943857065440360056438704296572314719351954856636622053508624276958770013736495622237793910311853653229705269839747485624359267907246795655867322078631943330241998405994801931469458730035875147158098742417645316487242848562626310384184718110796961799417613820355916826220491960792046333514717286440377106033568909678679898598043228261451296751598263529270690813023613394662001261303024054126847997578598122530529694759770691782377776457991143830619589184994099888608714366402521367999146000104054823221682965824887148160247552587850759429637552083403025605933089011979644962480869828249497877883426806969096856964044250114704634018760945714136281352945586771315137508378836925547981617683308932863881087026922887218008660186328769524347640171818474862790390589013925289776457185914944693041645996071200487685114937197203492264890039702042065323577502521856712191859214702893275287465436694796443523396840612983641839478568667352275814219200782924949817018981672854965721739469302701903516014426955193270226164247212367227587029442382839982343957329140670439933906302478706870156035147372509615003154476747424949534196035911620564848114506517106198926349963480120091718425497230346907073212778267371838713117545286071554338107412429132734783739471818787033629990566248541415914008027701037218421942311302242987504363430221702003711902113280118637497161316182708892332232469787330930524325624153656395466839714960837682144942940369588784533283729727353503732383632078096259504020926758360264977076553035162128510610876792202198185143750341345236668922464663542773743058370427137171144602425203692110119464733253153339325258009412444939503748121594232797200688939724944709464193143256295435281980133634773161439176089703900976125686394982860418011716483981215421363175905941188688504513807653963068761205821119734705897292230276471915362917167648267372486512100944688600389906495039980257400450324369115088475682839087464644682670721192199111614344544852850672646694113016385909273629135500713577129580223366806885097027377052711519534567100553758274066009794198315897119531059241707418910783329840302520193106683500793295942893828539790543168626134978400028328324697951581314034145902924000360907957148729627152396492416296994189911854124380286773607489146353993032145656227408639107093989081699325012365145430776398441099892671897054880057156040035753721773389155800695429517900498582638451673051018748408738308429190512800855030365567461816754296804066595100865259363293192016721700080589336118460960061024371647693263682715336728788305956816642440724719634775518251346856927857577283882364771609538449216324882733076445957528104532021749410849834308554054618543932602778024806681913894320228309013990099095012974555436366445081974075210842519563557523985782024724272522951255847855926868522844696087946799136460452433152391499264593045789106755424116258772094525849970514942241420117304581703762113833527295093121116640716020648374783322098540885439681479855557407457794110669369765074119848681037092108371591257028478653961609307726855206166174649787441854341988860225990566844784252491836384662595725369614994031791555468271433810592296486015347954965654073368199462986716962560566372619344010014248624864371440166182926762401977656129600882142781034755919191245618628564817629466906681522006167695420473207351561161486579839867100968689210057304292763557441016391560628823114881053406258239243053659724210006554962348277925518873724685849013441149234173795208113516205706480912706457660513466299735536489794864373169602039927992033269052682380501633895874994208859604318067171658049266789802822184387608341081780096817579532584325096281313265063574977384196559504517348729665548164020831957608415275831465719731847573024554600989978740503795622485665235096405985311514887999159017632845501080853435969718947407149419310077445425939695188767833187478265638731073114466670207412349565926294151761374316584477580260317036282220417751012433372082803245106447943843834881304938119682778188770393523744838742130831465600483029970985687952021070944888976009692983933033356488766213961713819764707091134047275977236508387603093535810549147699319354719974456368829095159268689534054686342100352770354934798744137139436720650485916522453724017902874896954443676194187128436521344723607279843663888135294564058863638544398363927643954380507223223628089725818662516009107041290137803614936689991968176081078158694776341320152613531216139719467326127090598867118292779830850703735894493128382448204188366228735683895094646243785078395782979738657232007747901543743857149654962508689010289083581089812003364552638034295678619263262266166954892795244560381769889564300136417056403678974124482066452445268281061658436956935216289999256664408365257423523195146648491467717602610237048780400733085849624138967954309061396499665648567730839446121585003277400374137467025940904731120594252188360073021390892397725618633647298358549011350766906228298988617774141223404579149145639894979556410835148951979902501515956918258010981180031505343801093291386663278259786999844920458083840182126230078366960879435869171587043733078362950542445324267708617155938651010262838957411451002430551130092450308839248384802573932700334829230130441516262257116081113492503920824228826831601939616158650302234395117161519132286443460108447691527290451440037631736450178972336810731958346952250668358457363031532103451332554566492532175421674343226597777832502728884192975854195711065440488673416316069375343554978078755233409631637393279701061260494968970671438358291142222575838674251690058646091962688753357393356538901362203322254603342818391964484720529166821671758264020415494999061995466454976938465464166193919242194632795471125619192678706393006467873659086723945000996499655763916931817666582788706670991606833494826331756496037585785054292051968821463861722827358467224856865229221995361920466301330692943524113833040280027028497839734743637049317393780661366719982789782612311089992337975051102536278943095191579428676084498486594081126794467969071431887115047075788401376655328387057815425203063604937101708339532243616896475200208088206944169991391142526985981380350767006144384937193611784166250663005680427278658504721578822827584795743747565151465607929917028393637854804016704637652553063368678144777272592615563934865512973290059352056584028877492852130016216065209146433456671440953034831938815355837688650958819221745704679621255208849245334767422746119441730027950799746542714391733642270462000710921666809960080301742127789449347424158799095394095488482905652177972996716685401610095922236587696153901829712886760672501938436926741279613638487851200331549974584513473159303242353057410742227391180015417772669062801028602669856238522915685286910203653701132076990930918340210036641237263322962602105085651744603239673372971170323183278249567366056319479449752450784898959437932640526577844790900117933531758719712713793384204203852607634049456120915349075832408156209880809730901279106311981748893941668154833570272524002819742035501969727821434081447998008548119587696890493174727719757206060860952553293495941965240591559513975256214353032198348491340246580103090513959247816950290915876320522566987912121508968306771769591691756533924116118591335834057474512506319261088328315532819673715795426510993249979225562593459445137703552495081768198831186323722059541042587921297505267324121148249981855124212408050591233481758062705115394739600623651355577831336123161924957609675110590146220818156380595681764089332284885041743270982123174385955698775834783366985689602182744181551604436089048171116325736335785498064407738954018299200211709190562959745927939111118883129683314142616679289616080897769631106578783259859409202160246324647021336975650407775640092609702489661475537384787934157771131020589136934372121028499756781909032956080075700592294024026773906430676250990466339662819789387585587879964701496273437107917788214645472232624457416372747474040827501136951494337592008148633266404888610443131422126639321604763201820013180790448573245281274260440144382195946661739123098253520723681882061842133540219345037758597733379054724661002756873281559687850627053620084518918313166668161968123931248359082911424156655946576201817690953326919930836606039386765786953221091125111996797138549683028021439838947307182183013663383818087491568091142661276433448280380486485192457660742061707105962528153181155306923480005357066825275757445895542400220809302221764481811806994083880920182472621239674323115612712189487327528732767211629709728585569629283488540096320605149207642105855633517878177685318922983622541749266225044644478697959044086134745293986316585632569745225639080184759821374558220176524328310237263100885727076910842806516436113299704373507376774546880062207650431468977650572502115812329345877903284106585978911488137647552144237310535200493669856308642145376879184340931480176443859835082328254005719630962903709368150469922753315243421961710888667639295738970387815371220429515513867997315610898029719101714393026444031769662194079171286107220198853860226742293840196167781963001299059401447990184540792355715650624164557568268570862349049455411368602422111704149539872763781121922266609277629692897103776171362483187581872089865047020916283430879859998542492996861291381107169080237143820051417916875096988478269404499209585320780366866845901285123388005563476879497736174235885072786684830746800976654611720342164896027867459908941301968872913960958209985320551103990943237971243119115753688138453803005333790127539425633432829245960879491820784788969194915936078095206363633836598558950821190570490608827074402533146381367305720064941708077565689169393866175121175823441555651741763838249409207070109642437871938876905683738118753690941883095991501740981529212499085530446330877560918254716742196422014916962560533450319875269198851702683998217097639299647171314589540011935526264252554565441890624524265152632408039453687238880882696052580679827199345484895075728067773658815542000224278179781507609625732955026291314448692689598985453172814271146385080916150614929763719063074993164512978600987064761886367550365735203259373458659162673890153108957870869793714317241388594070400497026914559426676895763846911343358125347802936055423694091755923095871946717658635672334637732464822876178463410793713044652975866630336435227659073130230008977626252929423989088264604775455483315015118736680536098886859571902432773386701921134024752036937347456782634530257328634758112054591099985665851532264911927039319136876513821499849627385937300728910975888543362480271107051027519544128206823492568217649385355997741499973842729820473157356915826566205177080500981072156009322883672615520089662469520719773616495133501140364643130241190722984884257358173641137299131881689937010630568958133851759090173327800020084006189156878145594668229479507300237945636768057546521914614973575071065993059634093499540808791773843032662092119834621464395379539579433107175643226162086525751249956250296727369840239060329700294746943683201446965389132918251903092535944900433290771742401194203837136760367466437107658994231614311415992350059181404232412068423908505872372933218958474607850843854181406493985517680742277875613718146262960623898825491565825078174185725183627299336831336753382331314428734589505074067786721859868689650032091549935314964651851604756451455166142900609962383724574058140568768741451745126024192431190949760558643396940757410360312110138764276985946595354372116660646351516957153910685086205959881549165204229064332021101641435903811364101402026948770590775739672026587591259172526804456409362214630463914124516329908440602877192802798899783436334855307380531943501570956774321161848349396434198158371203874576817178546034935189699588111602215779387496771459420035211464905215863729340452781068899137299883965433085493953559000302460547987934255450330738415976156763021276054933515916553142621396673966486211638524006483122396948720136764500341233921025500828236875693010371001161056491264865349051021482967059762685760521977013967164327912311082651018312293637829491904410381062943190139811272494215146811695198658242195470233880533862790510458153736654269617917020114216144527171001838425934269396650307515596190402572786872218233099622904380426232627535286305043158525214781882814191894531384719463611746872072752444918147125858565943633754141668046923379621839059815216599960516996965716301672532584280531427902851575957535393918695544393487002067284991771266830913067172176819650300983961841459045653010601118758016074155618492074496217734326410239498278310468985642964321929728857503097206818398841057285893749606445364286691350121061662178949259686433541192559759559005116781457559339426733607710487045697854835323149046703636719642043260652055606335682337369314216235141610103738449698485876338603183204479931717370521953071840021038482317570791295561684482952214159706148542656707670738015469645973847928705235396597413543363306858468732112597904962924802789010840228984353464789999803451601343971871163825548730323033558681129776761908069985396236069220394813097692459228479834782661835845137125584605737065089738392133694989085105647914406445707559171132093114238090207037722174445122436355833095596820267071611216767084802874127174576318330459246300829131044995950432907738948976110955299900686673546285107321000964884977412672997139396624953760200966516916698932669806094429403737624117099239511231869068290178924060954414044425570678526232289477218021962025029518425221244336663790032407352177824334192575634475494044561476323667067541691498437125964046679745447652722492794581996406768711273034331854985958425959299868260007041973064003927906470098621060814786977788980221526407685568833102613131101971367425504142768734253025227786043586269695585909222849277739133624194779521291220229701476085380823780674640256819567303689860129664567520399740156132799438603877550124143159938375155738986070672776799883835980098311528164139483242184489115759707040329499620355162946033796852931736375618935470518498074053008479686512730124573398057887864302402672681442236236540997290363115319648294013564302505314871677631383876095958181700794075280492232527619634392073202439448551711656997562047456873910152719388541713058826471806597625176733401397378867490125852030520204556389880905361947962810724635621518257025201693925396750976990421876755424380922377820764219392655137080784890640394739586359208037027159661294053646734656504786532093131907395952483010244952106611417431939848308248916901137465761246611292754053823677782267862986031033115547961518129502244465806629201019121625012920048040092924518919874377016750289006766756598969585823593489247646924038989497452655524606299942772814697610992722525254207884833265813017454491437215990431822815903767747780650006150392893248009806258304056691031653593375416883575929317313000453971663801806567290031991796140817759269825585170033953762580211167779044520667412423033243565555019190267708199032671737913234939885508769469306540344039680599354900956399538905350262056071365777877095578590053285158814776612554768569931432821129759191334428802614644047047343309930012795700802831125739146892277029336217656900799738307056160684422995512246130977209422588056249206285199526025545228474839896448718761705669258776312960622669774399583526279684929631077492823058548777969639906537896269883681471864814917205535356948186516708990727532639880148701949524900765460891335189295913637196692294016964896295801352131150435496835482953580161531044385359197974108275320733648152986763299095834838732510343067681033568896680357414611187083168033397924764475344598460086403475072856383616938232948752290537608701511038502111278859473805226730569787010309516261299448337122821593343051774976215091116176491516585012697121971554839986631132289487930589799894688737513503826765622575753473890086960097317368158697494341524042281912449155040837953283785716119881555792040823000466063566291426993270493373219010689872270958037799633048652992742051235199711686439315195702735970579887493879128639702102626623957306824621716279855203645458838943449548056357711941467615872811466694322219751928734710023495617443380986354140309961201821920893341889844649391278917650630740211997345989971379182088732413421214667360248016943616947246275534346146970247631385663863580711782057305997319422152684540984274534652403534004432540489823565185539999025641902241919235444317892017672735121151652444659796528377398816605719640315998246621260456990317569481891725845232215511659534290880529574345189838291111517910185560655260881454469706535813576502602924900844253731764647641865946336719319328909456667033005289118056175403057825138482720071168177297497275967082956834403886649355107003053115362784677086193822730428613511861701949966598320317107817843072413456622775430916101643896008537014837747457155130718394108951947762532904028201559527207049381249639884732018217479326127414744002812149592774613297395102570393720475196154193968509376210674519620824314158862510675262173208912949847489717496130603357616460285865562681887484601116080927653016507322429221403449272538887426648055624721599174480653991359863746034151715573577439876639140986287357782178126462771860789770498317597277486067264596067092759169632276729295224685240826341936689559773795832089831023327348258873314401367672862018126960713522429156975779864932637753026360822987720923332509007883091979083877466082726436233970079732631177460762118948698021264611425919723228398768472887622998580066647238532162614255250186451316276354003550496456279949875603670499307141309936265171548086445497509355425228394832579373357537501261465512153884824997563688285707653018185416514126175230729439880103227703157325673863839307407928705793773767510535701105683592629259110256024113496878400051835268826765233787306291053048335226301244358600739550616907646718853952357118481656289062071488792644353440947875233189017171920441783978968477219031929521523172492006956200178139086699932385121717739244951501811569483880741441578288633548730235564291186119156897938056782748704951585725386090948971990606800320161694503508400961234848401656944302154553359783296808369060970964177920268137115158377084497876064807164342324883064862648482434075592104549815334891933278650256068458797458633441374004088425804028691208879735160171584884588743129564383138714194155589077013663610654354796335739445643861775171793261149928528298134666448190403866099572088968233193069178989074957341699370101349693906763003241711574103652394250270016442304081530521006458860613750280630043908622346646490144472161742543010412070645472259247079049855687996319445715347440153819349786557724246741210449449098731147581782525555331090741568136887761434492306478191119284980482508166150888600428117079280916763706123635098671431621919647970051811553635185246083825900009775439018071483066466588107746334315393460767385752677706288227399683398477795204194669128303620820462038625309721132854481803578389336413298550582001211460108154877865379536529685651907539637219564255852136655059758665585739121671287871294125650908388912978080010422131627253489131249526153573316578157828124046177294081438220217642846850918065969279005210077710646531960881354071182775940722951373132399659534086944328341654048340868930445459191317519396109516323385909091337456385713126403598072497625041681679778804383655861427782539233611101339408672116965154302847711065361123900073506236909261308603677709857887250189244426022678112689361560922946756308999445766056043353313217902310176039449264803827639924141276003101413938341561879502924390372229511856205465252889098413690724488042206553590412423069485481790681532247414831756777940881989941986913964052116159653419642809365084756682880357372438995470408426035664583869832352237403734851730160810480707006802125760434618823798211992062800717442165941640001159224549831189369504252041723479973780566117612164597118131396351042813033065128750080560588640271107522818276936429246604527821882257913546194290858068937975062152759017820123213233637857519572784747189275389192008162638187230238836583083156896155348362658803775175506343727981870962421339799156412769054327313722733575088172303845197692779057684754738262437173215189918183478925725654666151255686106247660701314234348676330131996603248800110043161029865294025103918130446320188586041364564531627494006809991438407191526252512919729622046373261274563121360013923053611071755634808218586569095673689494767766127992810512600057091937265195236586234586630046545204407114476582512792704051861244764363007627415118723494604552830706910816550719869836535339283606123354291299320931957221280275935819794103666637180796892991875768358394592268166028388540565817949397162320326828901598491640637395449964978479021624888681746855570778357177713527921407666520595684041368393517227997438481301345249463115893168581610822645783380603546404932589862651427703238664790442835118751470794970905357404614753423055154183603003159156187449069678080053444785225662816692873900038707436841237247856668473859336926983630057401633627838371607630534637610492383422498882344548051341540693390963196189414856298798802151643192327030189951666898791106433397550622887913682890419150563566556964103579874689951004110110650341979816224358604864155709875089582095389024585593354449472137291722568192366308944003223832646507864961575569274038428445143920795446615653319402519175497226217827089052356338719325672622833440666068349074613214650098756710913781909206385870357136226581951589528100869244363421371920160338152544233876008275972219361665407299434212533327072002677418316676113314807545202957349430644065193381821557668562626103058410364083710207389068961776543239799031764447462543412209244377145292514508622263959988860956218715155380461020065586908817998070332170929305940697183454859329887825608355552087879761289917473616989520414723181202380138199681757067016718179437472309150702064962746343631204912112172422638143407285462813223991013862196590340109254260342469807418496325736992124491839564049558524243248661126517855588954980214303718343113040006604073978117685205181126845472136583150127234139416199306946791241359576237501308249173843304810811635213765796521579710124993677312449889503682138823998969625077538628725945502771812591091333731628719794663366168775787260788214382240494285405414400908892912665299110421666479071454297076708594433868078059133617678465624238574383516414674276975926859227712268120745622132235248810168299844802335202642942146905309211134239876997443184363587038135233404950531616565484564811181383392250583787895389840258535456835572334035481991833760713802958547746348635043691310114439651651872768003715967562769463999400080160695933236045395634169101934279252059976886745278062991785980019365965060127900144066591282805528226481679571291722172120204719835551220966747190515536697965689256504890932815066547072706040786556024332657318927558783716116286602529774133192180285695077707965783287072812065092550501035118712475089880858862905545575891314585602143921131738750994007834764020776501116242376128838621312177095247076132090797783913252384924043676884432229492855310913123830328103566754015186351496788541674093151514570200180922278159033235828286414468919033046231717850332112938538063317904299095265157319586473705016668720611051000307005075442408088391206984365369368333296017254636681027694108931521962069126474509818663142093427071900292117614238867692114135916730360691237874581171579168481138755466044413472414947294772337098299209971756168994181497785892204172340886536577437314532300198303605732824257298320203668751531733370161653479970700572729506573082210261455551107969253460287901263798592025405152292691395525940115298830508219935816720032363706758313190312379555714655173964164464142709882541856225749136739855294169008722640104415777320925990676393514446279108629040497875083422262354829849974432755399078312326115176598006434795835787293154295447200472923593807758240397873212794934629180750914553536858835097335865794088938663386097124740841038977753927801046319775605182551384847674518492372401550799240115758304285733455703526961526142894927164050618922935760003568705598360543795992069380377252254382564399080809025191545134660168020981366088671963912533225821519757081427622131157304193974877139240807737728433875944586672210392779501539304819588941961529768533865720909883712252816307342691886867862825306435407445802366708045802095267945342162938729898471199710655088372331382240867295036981342225894760935063972749739655546279796875605246980108393738574797587545899541393067710780621737619099658125705300850443868686442991421720413529325512680204627342770987354582151959467137884767608541099760966617207446336950055860039587370111114927525612041841788969365823874270075719352507982784845653181904154405915816271662651603747308994016410038764136213604253663081850550654599932360882708506421797449549208768549483070218984257195222162850564515120948555425924031119446960917127138900122281519389284614781632067189364023782631176548791728381290317952898812436292496810207706470063505841421258616305957170391973391781274139037765523324267752368450392586973252614240496237383267787804303973125349037717675091637795294501392177024965387259050364742208827513072254374196212711031982040363408558712410458744968846904571224722958862436122804145725923763077633414426055794170174388772861573118619625102394842588182095479402981612733878629144293242166181333018782091586230469712217711376635781053195581349657839115863672206116608398190170716571488915834035015664897705194175495511940467520145839308581917024288415708262455257615651328811300162476202892653125833448036925675864174270504445997024533727213510109097684903360278378423060437116777409585758211655103792186117773474093222688368759353736919210153117079337988375822028732100840480903844111908118299360388556630538247579329137202203572034985711563619516447429821806121700803589481342649755389575202744923732080254004569849551616403950913762094174493775234677393206705807857815886596342704602983715849035272613004217477420255494424077297725583684886450515163585374881428984361437152041829590023608731460377441979653179746277459179876682663097159823985038066130888954662747593772717619209182708377523114176712491245352241139448384364121237096768837813977602153941220025917697615689134464807025334380343906345489454084517100027427392018394912263496430246342077932912473073479524058258760863677627328452519207964477779178806079641465337807691988175334373387540122434412738961353800321269555147628551139253609613571884191852555339158267710156669417420481587193442257609617796390755647362846660228512371669915204315478086583396298491708825741353170056371645776326071701597219575328882404366117545246677173868178730076511977458412276488851721456311131612247974679807394209249040527453249658742044163102572148027786732318166133517948699863677008410127347923472190024964215971063014457068558156710674116514927189512919947538089523838370868510001006969447087015577501630768645688735646833631086315390391148522148137831382353199651460331322445598740409854561248515676973545070508439473826374875157395581603630910465602772026627103973656761005689510643283819414602982082950125819435789751535933838026825451410491227722929283140159623975479150886485157837792893004982473532213794133916335890223009858707983730586362220158732905551981515594972553579881932516530821317253250577005428021870924908875389459977301406691747815021072477071199959959432595067504603732743918270321751919914985423532946655863476548682666583991416469977264094785904566069943068226686063142395551505633723500939484793719724347108430319008031342298123148002823903269337576488561302455442378897602418265965428860970044644887807848002233931709097455476483799205410103793920056641806652260993736644971044405956283790141319653213322394170496696765113853431727578256772702808352742761448847268997004015211701421231542391360833874829005230936304940434292764901114005660265205039978036609814296118307640036919087951668103964189739009673896927151636313208028505725309158785714445243221603974696015111165426776560110027392951577340707951623294436063994594264014258189398311307222132712010967227641688468456886038079768096800158565784289585842340284990338367170192668724750864186191762468654847560924540916558266757750038959243345469507899823742232800408070713988347638474771552582891370831641739170343045754082984138475751547976507350143268972483078328547937002896108676597466355995542352326209749962122173920198802803602139034577242361386174838721707152390292310560404013385128490294002678778842103988403614418194983269398944524043074583660802642738852560408288846938663845277135928445891095179330019570951685788350452714883552235208843802699467406294943564933376422920529155698233906277561608433657275267580571153523390305281649292560933167719621011211678832004972093904816552702210896194816782049336276509029882049738210605662172912553723787921351969384048537286085052657331212272366866866817582658875442456172600591051365165513496654210498861359090587275578864909987706517261116709072453179006834198611190558593234178642680240975050507192879361369836506411661878996171152982237408783617639914798611119634168914431326762913270999073957029185760318505264388816448673374581012495406435684857421196678318494624733069700630204723610433745733537583818819636936736384156739614434864162149653494649093625355142545065894813016617413249877196582321244958044719677975445350027548061221317146046088996527413254313912916220424930490341068779678801148945546150923856916363637054606253657944362298617961109401783487124023226019243908521133853138594381025618608257734638793693922405378572120378520923470351768630481847547253737824871606910016353711738396131719129569882495629931067125570878526429339273560586037627639200853722575399437838103188040820225766594006808604148469549621539648221520577284452631804732182746368475233053154184025823446401601125939865027145263876923968407555354260757903286288750473582752800196990464731356906905609126904354273587509524039325647937660157914483404282072831274956243040623426531185977383674326131699520567771498448485232355696120574723453139240370792442519980308930016509806950922426670035408126925705722754840851405239333503263653178946499848570665952145578042906076944854317222412312237370921407687588266136953979464988081134193596062420482761709694522656480015725331383017971743462601390425933536649432153493717694039139662446868688796012714127044282966169945286514086950984332020449401465184797482134320474858926632283908957203312147828268454857986749679576737009739673446648296714203011566080508072680394237536963704361423411258951567645354414402663874355701259318939928493328762996119973940027132407924047355903072761342087472542175387934527989670312395393428316881263301182261447773226729682092677975686795819476683966401448570867317063369793158012601160591236996734759990961786710672975935201009799894655303794082670193644670087075270419489532991566232025413483310981540598632790659611635468020773572692783659774593136954206930104899857005528436321873607357207514296838914752220609189016037408666274577165529664623973757508718901210964639322365335054683057596966705907263346759310404851378503058451882633175995843139946938891677599682726711064727796908585403196355368186024488082962580771317438434642032692378518111807511867740543427723924181439790352923708156068930287203839351538336045433314511822398320230913717864013310161963878470048597634492041138613614194167974138558211962666235895452153950682448544296729934728761392394612590878658591002458187086991564784977476763928460939604855215862914134892053998554441509666556574738860083360918212132153109895853015202826923958054123110227579779536982033532655778142057342371593156765684130954908035588777606595721684313672275224832184677600083795266736311822202116242086403218633546404612538259414863242290329417400743414063216209610514147880729002578061020587255251761526025318934268857364595054619576936994561391660479822904774829422035422609548709730570711267862851396558700098012631202798607832545444940282248693874338968731376721633785000445956976960245435091013464099402056837663166224754268275823606245505065988547592602257979288047985708732603295694449916232772472693212242241639796301874549060393397963898721878169868494938300733826444873984064781836702550643743701230914721167663863529367200620196047497483945493140214845415874168687520224662492757041993867659543537974515983226415448961888443437352880510446113872807076322531506361049174736285127716617110610116591226922269302859023614158054626460965476265332931015106026304104928092240684878642589667517834009310537346272165594520832506166998996647323562048288789052508657880358913676404552818766777217483252754809891251294942856253385156540927527944024367633974522314955345424407726398888963119487442950443607635121627143956963599403553096138055581830906887249563658627691454901983259266450803155459041176195224793203286855286884796412860772317098794437272189352052735123219422049570923814526410200848063028911392024031125865171336494199308213351145254757720305012868248118858860436186585406022521048265260669717498616012454940716672757806431944871721689414724014725136430374569782416521281228612473057223716195753272323364716629092120776984888446970793335501240769154663988202881641323833480920493424366606487167734712419479768826918111938487408117824239107897258585920135717413230570740462710383785867732641220195493011545610931925561091997371878365607245529150491650298163086993356747224912840409238668096159053324406838663752930458790358947506844490729920047750999982655847217279252017021800677142325755792843412536828863218689383871968657162015760371058063481448083297664992532679122576672759808910063405058469896834936412185390145798314498181031593602783302248262593256273648010786534658142070255838493552701566958657776523267594005038506824308292984350379141136699485507338066778057356563722745045998597923115376984213940136973319306754242482925891910075882012130464514235765981198357946184476140235542422259954601144981440242699492577578340935747486078919563745392573481565870470528477431719234778362910622791038140622770195349118061795970042140003159470303698719962607890731985330467118529869759563698443706963588721144656028103911205761753287190475825685741396805755748515364024049574136896946543109453572543162846189107167997858322483212635166545206847991236957061550584212556385664704035105510968070069886761497557950859955060808579946431046133599712888816672981401182548678707113476632268286001503157943073967008793350901428921360431188547385636097613145348553827065605885989874271284504415769879245078001801276078212116132455118499562684356952742415363463683597571047643238997392121906615809302905807857659352054857490309042313078308314822209729752963114120348582944902457227378042963590786069157187050782838560978154576077234141339755907167755342333979231204058963299928116372277597234705575930891432406424038862306707498223653890931354043018573365171833407756213675154614951261553435692860421476814810895565126067448898156832820905770712709291804019864840963936846980290596684296098912336010987929748905611036125056177197533948821705296331450134355384052192848778329585729992184376281421930172116512954196749566288466496195132511083757000011386543762713012884265821665448180054140442232644731233252944169552518228851764651232830230468469141362784692319723459505914872943707200644459190536525548904949655171258965850849055113643333581159165852529175352604651490177194637223253543080178117323611353508269430898738093729567530918006851762384687069363253407448938355363396083389078657632989213331577657647311802081886096690402485316566887317601616480064709825684631278787883863313430354965074571144407265289470606016813463612720441301797387586522853682992103491179170173040952731489448628750335987712787026152296463675077368056971252014652331309443422615335910010625176162939144861561610925523386659669359361385281876355119787758269626688724495985313615263237211455882077479377681453018699899841221805754726530337353319882091266556464093607646288870899481328701472477113789132125136685886583310952415985723107714690548036481081555261611422583102091612145751455110994041558729791027011294707491190919850868737580553490424208451855859777053470157639020714927341199031175740591532723891897721300464610871798233334402482607553485271894138147362710112944779551329137986482206070483365665805955438092581675096493980864891299266279135619660424343642447978393356360989027531606345323218993212448117959549112103860540272774557838963418477511850923687255440058960221696893355339905275813384230939231085458395227657195523569828462371468782680954210912984633596147932663286744638852099705620809347894603048622755580107218801776405776864690547620246198399297092549734255954059573520414895189148723053558763118998522095244283646152830102211595341368324509336777533272661908589991629844116235372082966560609884296257337013546143159027510241987478888689917599421146838869149992237867145210500871739082042198934055131601468209701782258605558782637688349400620436449658094364772923850637923756396379265148698370541279141753709178163550040052874617007824612017413508172838061789326100314488754907176603178291830878884054450905121503170878593010378135529018212474323787191035771513002931439283980884388544480276925885713660820340383513245184234204789639223314773378951349858359956541456168357600254613066245250621281987882318067666450245786434295659198545715097960790852754331704187665206922977813063169316535686428586505887272838331103425970061417229868703051779677376730663922115158537413474912408161402625806819565251808285641344802303982653963543591435623778124946994979648576316117398124347235394904502557629927286156463336905501316523181750998296464190141414772075573930279773420638310034602530094018490093203032048014571549122644157992270016537918569541587835504708159938838363681091970094241230431527634746868304940587870978995687176205142387262857475706291677483606666061197916486652182799447962285361155345007680403480491650856776415927682976080150411773715861338620843529623871913722811418565053209684448626983772252331864203050417358268788659191737929133794423596075804201094468498070717608421169508314269987442649776473209316257566505602728479034421510308341125993520131157737039801948947939136741021152764045474469469435866589072643121597485707586008501315855514370415408023652048851220212582092875740369817181845004453044703259678137276160628550489722803571766419974261622867743968739772494892473882990809486590690730630091332593247032148855740706673394396453015456597662922226777543418332172136286954029894609181173353925953519908572905318129420441543370768171169282916819827187418836973890020296304708070397614977932608312340382906377072586008298851310176780036070628453141042389944603922898028853494514278439886129698567210461456601462840794333004666012040920667686650957287536671417837662568961481001688747787737856271758104521204721780688689282299560770642614269159922133051419459993032578306564100856311272382440982115672812783912807709190256394389004628020390025019883370877331958722540765319400844986407250857776940342146934643152041093949122787299676299162159887617571959403686097648593996745746971485015493805768945502050694537800345061210427039898346821541544946149397457753005834762772800847916246579895940733201285807902251431240944882270670701446132355093212574992349370784868199314148445347566336128968145271873484063038090321760842086040203828207258779572506265308486379455873774020821839116142799835391433803477753406688845757056329570374773395392325073437042581743207661046415283497253095668418106036174937280821794480385603894953051267714852712727563888859646224837160205034678709725272858540413149315254665649563916781458782834041002980393158409496988186569295718854533911655224392877843405283264820299961752198364665440237761877939398511930004756607643690088793406131664375926226637861232134276476445760597228301511005803355966659243114356323312971164454216944435289434478475220460082239978717451680016793249555747630252069636270406112001737804868762327152342689821537448324277759236105862688308648219757428267600541977821224701343960666524278232996915097805284860209313859284737156841121347181954988713892144987189816599363873962505552836070778948389460192848498190151178130404436053225806697739100163473704878458042308988920725796391301571332988639516869349679443117329781378609450644694878170842495177469365475422900692164776544252010968560591694748442507686928698601303083830382345181946007222570329035119087243740903479553923351705750062324054782292412793066809755931654357087619147076021793695440594343890420872191546630979116157839145578800515429381163354443824302197227417620441737663323497535772709380366306069797872109880751868569988107489386749414927329716961864139520185076565029311703856141364676137092436097192838676209816866773608514455666322039176929394173332360310211055973088174864504700145064127534032248607929726917943753348300230733811223817728230583009813646175911751867586796990687355515416853938081101868629102230931649959602584626042562816391186669311768252436360034238503231257854809369849935149493254058554241952397521540816076476085630588451924273195076840521259296449196174801890171795826898256693911015715448118812142835127442417434511049997434342679427530397504301547449941279958744837832047650534105178551470756372599274038693313905482130005409666431569691154383956771643725909334190008742706614153312391472615259657262970438447640420069343878982711118594867855355384247352742127497191878469388233802220910902040103607045607916508463508356911419931756083967575423375575820963297972952582516228119889514587203233198728477120294952174411024157936311852180881221571449819305293564792460471508880434495167834373346274948651767264144028417761482301135136768933239001700456251909834866331921859253183021658826004026001295576836144024724589186962027856539074235260851660837982542037559689534503477605534071356582906305195453023903237471943709039141699083066656867015090810130582869139522808081841523996058015369222469039298647868235932334325069230265724520937169028381516864388104972763631419741092305281353661994174428369941122954158059575169388363565107754015544632527448508642640508934358025815535689394994196706586192407967624926799597375795511848712361054429164373650230106984239950826865233409603154568751270574101209246032005709933381856276625801497787187665215381764296928551842684089889934544123613982426012891385575462995287123816198495986557461238576096009208410648407836460380412513368189606243707676572133408267835429131729768135737456964356306388095926135793824976084106590794242150661023658354103110039757189229969853132831984922609307839060873790692418761457281975411964735725438137436800865010770416039195068499172356577827495026050010110699572642100800455804284879716059502990734864213826865713215850735459375792401968446156860400426557678619255139582596051614578711005271693565208201218697280118433228537854254598554133435194396061387260047482209315739144822157370619180256183835821998105660918979088866296914309142288470440850584189192689662623862886646762396177262943954449142857982191506699874790445078269388003038417968583163232970697951938315736630757267764751995109899198010799572307611567349964087038073689796361800845503289582001992992515803664809089108323787820532502559535470440629298706356830204920527063599674934287332210938687884114644470273094803932103467844070740748710671149467701960034290756072239339312120059062646795855171913234998729379773898782127398170465075572928438083902722110525593926279782826376265473794637050577598961480827387061258900194721524942853956622264662105332093238969626787273504075273284866883775561880528732257532375754343345336713951816847563234346485671076634398596761888978367796481232741169851156942477110730848122630904934001828354625741158160812343967251136149817482649296153796044539290160671618731110831412790360634287655005068756091073200341953029636779264087398102170508518701604276844487953212747599918761506893350670902418855758323086357805850501041658244618018741879431786443113894634083502268582220278774537963271355967429854884331401757045632794259410696582382097743884298555405656808467100364207501300487419393138683488391428163744042359867609000673941156313099462723121506052996643197383775624809013397768767506765911751695697756712466301232485467330200742993605403240592774897520399714904697856429091721358102752530869102652973762407024512609779224520938398385480662577330886846677263665153144876886848520428317218394076864893311595613679967359134143509478362159549778504655741162774914875258063683494791065565317259973588596880728052462492337688355776963645576864082542379625174380500519996029887854472529479125330457589854982943230964109978729761823269497116394293365084137751280822042710315924599150489484749818282245812086822636194304295902778887382574354980816219025497295094053686548959900049667124379911102901566341346312305908398078111410742503131936216735613444183480680545868635961938808905498134748798507368406291637703338259246463373925831383680677308016879874228297936093135252596009626737498274200367674089472794731008712250486788834606205446512766057096445942780394722024665407931154105391158469488299538424776339831117831965651837976319643039564854233064651974772156173995714181549075681729186042807319150282883603971244630527052246700689876062212335464099028569585858754716966328497461775466687013558986105700034421082357181372749810401921379808194493208822151526199894288568588703949898752318387503898704392972445482110560179677201510490788921597285675017106650151704728302170321095687613040543617329040409117182869024290378364027551134615435751968900611860468557037889532924926944183687906153045859757284937041136231187745977119285479333664785376271385134932418638323985298202256297882919533875685935105666556952045633024125680746236749646341717705927299555077806538107304123991239704553751512697413203707920376654802287687531279383516039552643637234652661807874532193770484444256234822866790580177585193666066090695172178685233661367061459981297969177415186660602838022663230935907244715154769397993314683138498391110787042155424545550040039905536535510480984300384780044877106887837421841192291680597098940036276230153045135254602559660510030453173321457492288431898797544448547153786386584580965544973300360754644693471801340803924958620386981060623556592819950366665465445655519747452455347857263486519813618704467716926709962942795377950528730691852804680419518058228751557728773526108939691470023505366141210715012569664728779626200121803171759489526361415246299088393275515349059822481917952709753138857389779358385396141335792766291143176726035870987386604899833055488093714065760622931271897075621650484961860478696943712396534858816750539685370063199148122791870085293866177615429510724692923827788854868776647901145575153975302683551657686522680510531101792530751776414356784365000425316807539207810278218144264043449157379340608251126762735719702581086628044931680511361444013790696382089412395818680405594400954348193386163838034739818549104725146217189850483266554797321537437368868769079331154538343416437299804148318215238045812744223268973884105083009479395778533069275215668394310635075464258776914892795073594428009814272273703875693926543557128056594655906709282712018708940760624182647355859764626070006019036573487024811754220483931638771121906023941125129533051800231615227581278897673324931351001692913376270848389065879715882714280359829827674161135524446966777029074379133167959488956282718338589575998163516887443015682651962394254523599146195047452749037198201217645796459969797065124544095159834647822349638510695864830805650180303761732787532590572731179469458617609645628212146567465899046908651082721190068506966387537587764755898816775198248346469046622951324025057610145338560220331164840458578301686252526159599444971508570134784233134566503424502841286107960194911875708784836860500953607514670445397173158105896165054199684003243740831571682742993652629520867791440588797178394436617483661008443180673320454395871840024756410393965379582492184997116401695817628545423706095699761200371553450911049307394400794926440089930254933970131451392210843983980865584421200292080597584444281645033799454352754247631486596067059705220033557869383930741746272117889950269583060702388797625357027032501653856576412448816162832468357074358047774570931331204778746355094357752471283990789086592447320430029898378101320494723505046213140758484277528784109229040274396396669132508103947535533313875523809324140832979709540002835190958115544782247785890198053271859663030177937979647487272249498953730992907322525755800843281399052486115889228230970406473422865166386949376719228225826771969863726039523856292360949237519871034068457606837229019813355604673737782315936911492877384736224223689088837285360388225586189661819133115624800922490651965494995180578539345247318736237913794988036784871375666841254284290346969766096889204891960652135941332037679004974284273211000077716551354134749674517639098420134989957025806570184550768393607903279121127974142326578549785136528566041661112671434855709658675931995580011551732274354325776788422450158912348283616191252946703099469701301347677100230807161922673796484465929625637360863709944537214444391423817949423849333362670618283138213167218949123003090896651302427648369964743394336643467111726944488956013369696164750588376262123196163522994045738731491928215775747973644557728079596924823721497171525382839653244230429294616621426795142208213951575655302788141238465060722026557306173386896549166968988099295299580903674719260645067814395361696066286397525679118415670818053324573778062930621076666579914367985025722768384404501325519568145252791944419350222465963139648239241678327178366680290592973083518452763869903896126687279953283165957799513844106703787307092314161823528070533240813862236274661186464998877768773309975895992976445828503961577035765389479773805164358302677857361264760657093559121408959798052757503772312296500398462735604566783164373613694768954999419309450719515868859875820075602006153954808815116917317560454704444329950970385063281498674991183012382164267152664828248636431163154186425140026426168941151540909411889396638033989707883498725046161883091255021735290936114603490574615910306903805592349927419150375992652667243489853142706074879828944066293747959625345386689621737161631097707414736871335079539198583643762113021630282777862079068971995949720599627863886257888764706946835926425634004779920415469513550944461850436192870628596956722289696061250255337248857027467075328181053048093561352975166332998111497195422183660430806704713483845628062189186008052003372380584868757051573674381492404848951376318645952230854681136393772343125747279288917215806953082769122790634502587192358369899109731525567168894583321851474293658651620926732291868257893435134321981625273642081965395663018771502114374494936663705102971421072456107666674411920804687953066738314167143082670985060671438286865370947368564316963770171186946985594927673008734130081480486858754717823916811066638791894375630026200199869573965527166696743237240411117367969472667135842156302269957871564359756787208319163398755024026799327984467514631726494767076998815966982497679151650820544773654768451015481680172817959686532486613089530351125783538537870303720429062833992456120707612410891597413060346219119323645408766069000208022474576746654624212628764329692510115316002768278917901169855488591690956952121541204047642812198265054873945708028709497231249233471909145262568167942865219132708946098597405363717846070045625300697524712983576888729579317206277232712828634199418854432079152661834887450701752164473576825996228531939555036268792528629262823281774098224961901952819253262575293562439292707207266639194079030521884025737518932198857669451012355104088649153174644880216296926451010888280165914910812260311949531293415306199057515991043047674225732751691022371322462359775997044504585130469516084055123635030203631534051567423653174091863748119725432249577629451471463552222536760537665193571573432600334111513701948232642702780245897788346510106636284223587778592814017726591067584923385528170030516970310864958407056014713238339749255925387203565572895984435440087689237919219298083866337470994455662339400039905220193919212532281089580733089982255038775830990059466523549633586088634936731767913069942859226162488819050045036849777421576451287026534766372432254518671869081519220045149996345963427769515816110523498101150342595416695782738807502263109585509612936272063211008988334974196797560216440620219625666420419528186116197479794922150548081020192098738260478927980947004243390765963016612685128334668064070253635949115681979815421858953510523263081044269981939090175622757378428377998330428885660107066571222749028377630522213975805704847056951233967800179631949571710353682368495305203073904567039042870747518315853627227084778005285240009989397049283695663412877311746340083814280676201179105015707434786106486371947613797131944822331793490663080038764986559897448606986043189607013369479325429813438198981062241704025143462155113976975692084449452508991349581037867239623585812807202721129159179284140050067699919701920689844720122777638197020419902162898410704717746691465057580225572739237705692026357448988504995931030082455806034665246382603646947749754755911691020985288444339626420972977988077196509266633551242094404848966348617227413866613228974168307322618992857527260220797551990579779182051565949036940697667302553378075484313826846944589291466835309932638135006993774022908216554334699654004597945078332843625718973084067238388642420385995867811226333170281257031520935666718621633003518749743346563785616012133134557923501934404728873861264437379372659649342028754853255753010567212903627712811433287744765158612856632929343440664335046399620360360698576735616217860623649892063011737067583747724273717145073326742090745634185231401665306944689476931408843540855247407792229989579042454244723132999230100944002526117901109050281479679442328603502716954946015305281872003921126452559062644037209959485814230681846237817772944225234670932638726432330988257535069409662092212576699845804170932627763097416281976487540458574121388486683116010758593448667627323384862893681601764033020363904184684135334475234495761482907476286296447104641154460897337622660879435763474675642676687753124647164711169426376670131098507228628853017173020521364559456665174812212688724087227169525735548084876086695543464243124416345889880722499143022852814624870434762922212473773873451222011950158461664194033286230137998997493104648591564486233619207739091756478118211257965699140512873095436308941964420436144549413902917091652270188270134544123594944922794288073635910046488228997180658645820904234425239899531889635146648701549910919342812529810610529998207522612622577346338216846977982310097738460883712168171066929234599508619087331367687202524289144304160943425458715447204436668632750165074804716509170191628982501921139487794057074144298353337767341184750923419631624334149396283452333402394891066020014937684177153400899183829881579688825913427117559637051236583530114861926453110546161850278636283546578853225643957935480111380586861955567378729805616008837056634765306076750314903350721707050849094614170266266891450342944746590634980491344582843096818858617167651532000736823399350225818252359531195569601336687706180826740769686067451903143699869421869131313377459737886962790995408293191202206772564416569909985641431366853738086928510054349488276896627926513305679042467131287474544708704947831622170660113953269952596605987035962597144313197182742167174577216993577657971733718355304750327642803713571450376054900157232069594032647024594493090392818589388282869971721953221593480579460825609588873852574006037804090390013304842896668701874436437998503547080151646118502078136917561202469302693644626740804624361960218506493414342511211102316043981297944726001852797264352118410469262349116372372278577915758543992992692872014698633710513068069052941483662279462124742695933839448019271825048543546039546238876199513881651814808036037265827009054128407649518652132220786707191340161544791099199905834545879093202351528060664597719360015501502510216004129540374859287324011617464755993578644370971415460423273722184356016029516485337512400709066844330276931255555422349384721854014565809841443983066690352721541962564021155923398223980430674312708425942958065008894634759222724434308310697061542416834600757653908692202852384243486784838386508772786605004819330775078122578412539731778278554456764695582834965665554902150629392482759746683339527207522646932903291125320795678914768825002421571464626157131001379915730421884297680498235410517468474224534671322758303287242274113130393866295534558305208622221100028840497250519839693065871264487126999000633991891631259584649296481159932056360491504602742184881048287596173984506366408673577758836669077252440532185912097510858647774515591044718329607145768252669224449999062380679470216134876742148623954170993655702174248782224154563483640131382605802955508912857810578280287791120224973796613196078355560356384702391938347322862651214001592126760538752141858133237900118240313917055740159370201353049870132091006283974920735689205641751811183120278833566082685053701731725697472892104818385502079073078472983064934088256471494501850952778934100756073284493309877165753197122155057935125215492945908607865666994066963655053844204118907882416665399163279929038269305777965649107815754376745465411970769996513846765995669896619705731076837108302219059706441100750173395249708746465543003557626441627173819460183096857855617972920596407638541112413334055138843544982042605527287561874619349895894874841955013246431122267873622013910414485757487151880116090930403279465409886617921185737788494312145097752849191800335859273582230989243820557703114952099200794793416608811550855291833939710652472877418582555409634617378780315780440481099356104183230591585785040685648591279340744574736598533933547833237782855621975089147616943546088121638804349690792023052906951050704020411917740427079712324328465594951067979937545768941915909616293716804800863052495782547354620945039819969713914621299936491111833329114113525547010724110021912592682890489790566363222606622333141843870563252674021113938738370362396104755391436870563444157369001361681878943733305087296420341340803669154492080099885510157709756999461187122464580452374929033779655501352664547193096392618661988345090050008436714883033927275973065032030956695291494974145488698999281003653194094030206448649104182265471884383882968202763360920060016732153749584719635798687978937647999505672254491141372350868523636635503829461835105769131175847995282717567485820251174555457442564230377104468468384075924676729379332122004443714643777840050066314318564554167781668054910014997037694817812180040241241327189818293928344698865029762255990732677287436996696918987898032112067286911112060241352252055439898381420187955899127251908005012239017216373705503404560592716806190238201544082764005158858677229682024542012034276744732247641175945746450928349456338783083067695943936045551281276764414030504405759325429118990023564090032344090548631374353789873270932155404748115407880204931489004813457333235631139440463301532748255386701019445797123555188225631856818780366128909633332562781536184633512774708590758164824579846837487844140374714193346055802099112287393220357638032433658565023924978596081514002719254191354357881489440538437614508668637282309203392658257982529002416752178010225742827377096217876425074595778133925772489151952378215059764722084975521507662100737636175695372541024011391738334872635063267083936503705282380620891009756946647788053855729711111051646851512630363475062528227583425600515062149639757097277291791527874152209048144572969042976324789251414929607499183992445460713277114079151166087276716823215389290429273153670606587608454983182105022238581352843303395262724732912189616316728326226401724863378636714137168389859297736190240058979353984724259267787057352278214745597379013275796453892528449964643607267795665863159485112246097863353439949383263259544494706652053281268136768314420482858097775329445386018659872395143472945913822934743052786603159096517141241754181241385021777446389244427514789517774481940995162066798470089651259987931002752046526264463591842444471708993843494074161942200125435012763419936254149243083977519545585574038656072687560911262820286391187785255459907918473198639902088967058539254139643577865926565057060133536974028825208044360998787598694003249160094271914088501007867710491778380826629082212423884072442498871847185296811963415850218862408088269904090966495004352182923287708124170148362140299128010062815267721392528790984902117883008306361073372734149412139680165188695585535287137167837355748626401874453030001882658474717628267327474868531491460373317089561783181144571335271748052870879492408689871579778161795213992675103518877211523504670577132181376374356422128022521237918907642128487178275146616183747961565268561098631343353015556097155253767831120805365850429148017460719669624011115955247561958917354032195785813238560491046764951957623000568958095902255468714501499273826033390700098371535008077210294854806993313881007525220459977321538259740436941663161483780004761226715815945264099942365538582862599083513024697598614714213155744163828149132710475087546552412217717980345351089309674336721062954718197385723275304687801877563240810126434617668330708945680201104355013498795581945166883661003722416303688718531659803152683491195580352770999765306582697830673041652890049064256078966478013139679745488793401705506586644871727817871918382443720681269506691625195227406224830201880978661122530046785431817289786270028293333393559565726707105431811087189574069411198656919644343573037403318287175948050271147701842432179438553885979474515936036387391989556551939677132480781143076343687537039879351511570355940005169225593444010043334419125406940856477801217819134334561501862708491400167792593328750630943387730945574966111491108088954238666730655571738231687840447742461758326359268542412069202065289418980652410910636992131862381576329143086919316822420552941583377262033160592441015213162472720863000187198269691399650574624694795148473579144699391099019161455284182570189223807103866609328186488788656026208061553714136572219036070683490682563354567313579571925884311009991066601920077177753641023002339279438943702947243014805277398523336749263664046769844095330365116999999756702983553210987588506131391261681419466286207743450597207069561603951766226517156557811334492614364663050902496372451643134056502312531208523001358222390227641214689186517031702540310159957591363481912952958260955720177672670717749514568493497441727547019172263276095511553388923171574209794277622012209386913637648816098239193495435367657019374215633170973140946933264720780068262293811582220066996334679231143411716227474794513473469192533112331404673064367201572991169146043212469338014332540597328942412538431357556732764874848466611861685490615225707189760638312090605846585276847395303808837389398176291264563876261539256334388000811729980150941313100588481148930693779130860191594911931410693038482129111554766358101897618517320657850505831206928089672769325077118585114205399979651974515055003893243439830440895126831804921361991392973207049423906366577857798118088485819838114313187557089411494101687215777326976451747530132780894057089684843683559460325764928790824302911828510908477012175860805724282234263251662306648748258058973295690007927524113186858965106035206142887236188608194462147011673311752108313996286206537423287458163963126401994933096670071579817360638658346621142455738884632460344833779563374193594286768914197306650212134149895466507092750186149203466521601320975980523602903280156381384859706819629427174645171530703088790511116212516602196207118257549393064011283710195880389697583368249229569299007624102218460162896383358290047982912078748324765330693491108946895340916472549571733168060695874719434938686030475397649558296635361141182528989652084311013534316421892317373121457312521866983395356917853228600663590535414760369085065963471167591821048243712000355195363792493612794750540241555450031778412004171101838400727355269282791473318205720919547293212901925851619990997202840944676957398929917982595583659780301390014937260764019386802602996329193720173819691966750086821392724453523355628959469076045216279653784181740749023805872339092550850201644973179586781167863795491753098126015308603042200230635108995511590612168053180485598951267070369416105797304378878033998838399356746924467237799084593050685909515928296460919002726224232142102651656409581165687542380186719388011620995669311122357028831002730419949489549064443053308596962062320311708522300169207667218303394585044779630248033740016373249823770977724301749775066715212843026717882799052084363681741959199551786505996296443723770701214869435952633097297679245564324303241785026347116975945151615726833049058038257439170268801343025503865508599533845288051884438952803653085591677393669388089227985966500915218523754856109263906131303143411479821869351652211834467221793851917447366312819103065581192154669608887074014148298465474999132685604224910691920506574653022891907248969466610324795704002116966537974968125634385054485376917454263127757636471040165023936220452938061874161347411278153862997044201977269280617146658521273369928926285716176869764219629053106931847614301935153973311943053148562749856701646732639661229427288659833006326838805876313500706016866190655859876265172657204157484993469240680369735433842231238458659957881731766676889726667130707127976862368961700189472015604801823796094829052003179234751684782952505816624493309480192769290423225639676090629118567853489949690429996259121875890813937468144163596697731507717995766948348397922567089094174843662069418113947951391601288619732205367482757772924180692845369516553523908849032956037437174993876404648892892577460492742592998960864798830249225584852050380109229296697590684965424920780787965820651088633259325585836791459529465845057952863841430536393281898730780593441000743263066081328815116266921116519180840523505534037357178898673847034900216479156416111096940800370836876116569319657110798345806296528546759501022810403195077550765489904233127313769719196594235953760280920186136249624660228449841467095921150059854252646528114226408634344881073191510122540791054818700835472239063917662678490886250443020698931333379160361381568687995568896720060417528648443281679870557103809778724637100343598096040713036732164466608450950712407425694216862374965204681232481410352340392986829503989883208039781909898347318701435954208857411295863234930882223118293371887001729999038450522728784079392442279949774973691047395116614798839272323949691813487005768375214457506438423546393681637358883027064411969863687658656254187341080120206404815484586897970663995720677613764136864406220072187978992472619772570038733170779984230200525489002515944637736819891215639108639202300797338324497086008757227420460648030696233410390742396683655658612896387291052536064945030424144761192306273120784487550864275141401327344073104834269127073743809272297325316824560454999489832564663736388037915672560576633051206883585729010622034592473523950554519492859378354923873589753824197989366731715346321965934178984356821561261334001425461623215376488351537635239338152766128585596729813217660696054155272858617846962301953573235769151844084125227808249352023622912164575211502982539669555990158155035339935771455088880353301592115299596457372262015875745801369239333492842480372033640111721208724247131133376472128795341379216470425565366573521320932302993052302223075834843480449216912306649665041258468621284314836060400286643596778028693816817087230740913882106377406304066172699078202492461820719759243570565887607560525970390393964272828991994153725942105843092935993702385610992549939171441484279727760689177762016619507437094870640657122646021611080957458394603071384786912875318362705042975788162945639355375467524653372386950327109666683756371438242628962105756142454872874185738271012300415854877120262932875610403223453775862832902564163886520805976169975177444600195766707549641442127331565965457401106927803567206555297554260888075509187596769917608876688910845170333835150310129607457511098716033891045506963032065605600314215924873852085626541208700325199054384412663563636969282986482356463961102954518838788834608974634455766663681682045940376759765495355192191390891902560273479634958508840970776578092375332638927890899524737181616870306320653250177969781237431904085715823712665373378620994158659221491393304994087093474455010369177823175039903372556211231433813337016593684720378760479155098443292612158484803530293514096694062257311002458791666972182421172978991874786786735818934473453505578601099885080392078996464606959514863376281383762106333824575954073399253234444692940844883589959732638255441315374092006477305794013939272186598141643122935816049039848596208708108854355675045433477568889302799568865336873226893792629404312993998888287273927032382059067826835941083459864893440648334892051022949771671268054571587952559158093710458913787622853763724384213428979501693460638522919895622494021091776938479634193890776885061206718220230245541844280669791563021220102618323038253179337848341999069126429014247560500637816643818663604593523858421342510165615215703916901649733723249804715100336306347735374928046723983952339755865331959064747073795616858789088296499476241525969271376818757512779331902643170740256571196793721576165152469204526956543087547063132644224788319228761451301638049141202814708612101255994543199205650362510465610289471296628010589628812824181819236903209148779221336082281695110898603851370983366143176719903105078918429848697210312497751771100608450517476074476797531898534563808845917957237957728401619860491975124418273517542786611695779134549462466523954494044138787103285174246050802519287275099093842213457623523099253433624279008253643151805755121254279845974969125900040153397951853413356772838677147851246410748612973081397191679452370154022585074926121266508433026055729017353637967292073060772278132124120881755416071531001871100369662178682838133061629890132701353659179080992534284292025815186294036868564440635093347832025864577542507951488304296534295513126255952328759237841790182243235972170857221914217801149739132405835583496578799732114251649321315408470466618080771900082720371814237204624935536154908801678967097464031353147383888903354342446966132526941034033536158547816270835615514867286733977754389736653929640294491788146091334812610746784998581780198877900029448478660399741255574758987982376677559647447576989248746595679713583475617971169570258801691673928779425396743857004961941332914328604329444638175236524534261340450030518220449725167898927417433173949886787728932433937230393833545453837237535717054904715106218489389810043387080447176896750257826677750498288436325872164117073152102631686771275724535899851594503188541709043081406440664322291174128748247498847362221220443306156718608276946078138903767948079716836976032513608311841568888228433691947814694386551124028109099088610108623804837364019255571333478584956783821073935140673755456279510309366643212254574157026465936467659676776854348642110970440524251049442613627075112110782034803908350938809231895512771185911479616009488990987519838620983499370907319568195629420839840046785458439057251646420000242678967288394925514648255638985388477759256368953177857232691733244109371301370787893279057241147429777832767407570029425561221514305384195852618713504672351942855833222013957659190352157791914321748494169772965026978917632471083477286864744459453295182217592304208695556951581211468787744915546595499462337022064167860122785836024248915995358898582158144721095678568435270480815980331715069522889864995744002499522861311461897901208758298042792509521412611769762128256762382170955035023700770457642643548012624193383996074381536172258201077257379473155276745615416611090592568478921204634328359579206875938324163564536826105717277687701677695212200251482767684364730687367406042205684080751706186218550008655729294329474727145051606509991076328323454138589590173428937260575553327914624509422744756177609747901534252571650348618809210718811006266727864705188222051254363376000774385385000656766504855018118761381013081422533118337581650470944015315062888284215916818899484394930623431677126260799505601814979153438373353649819119790994494846645980725602263399107149787164313305437823163040102393816545398093640096597716722009092725172528664383772785662423924508858698618370424049867924896809898399684993539319422791153789442079763080704148511613081482019487366296805014752569996487093779054272484261873611768277387977340686984161321042916861144115901304186291221412099528339151725424040954537901132263638302912019161515055581657703951873591264346200375332744993641625511789333927487396331600387504846233563611963596060949741482362777355904251733119840829000147542913973552871641199231836961210269863850457149517700232665474387429499826644121925049686520778446766147491957407488857704214253253079059275880874762545983708410511401458027267844943049315641577939226548555646482863828109471846498165270102345900010771651523010795882812862664502898291130191681273922260667472605016426981025962065553454087736722304938835475907044275365919449653976621999495074860586060926804134784327715409801125454156934306805476954144044354949382896370086822391479123458032345370224665169831478862118292705829857047670958485236102710829764614034375077434235601939000613894130827027859103010011631079773818943660053047979994487473157993893504967150814525964549352928862407642617261050399010427893899465702846224513847758126878837868376056671070384184970432236821083803882590462907307357775676586094045657177089493552352065687264719944533633557007330523692958637081401147032288986647751996618807028618893196431467136834110200461984799658519313312815453864798948637398411704132515522461138466094701673298279102009008773999774055167851260254178914536645525751177726011297491708836444837181791116454523967744604824604920009477981673545118574510092572503548009713238528323383299894576118203044126041170361674965941854261186195246592769988350927152041146032718212569389981194678806769148531896904428763971598235267012429140823292859653187610484549051894800357201351734749349697872759735864536416751134825900679997628518684472479383273181245836506483732927901589196489477430483991384559102271133629947249206997330077244070446714400970483625858464025740327969290694479756405582475082527800648776365443629711747191555703712165567022040276819061841372559282395071302241352719682729597724951427665501351508041005986641549784099257446603226805984273899188277918676270138464101842274080333213540320493332384965157638806586668209230794465328902050613869449990202393118885645933900961367583530842044376154796963685481512294410890940979662615914713504065351285481999512291984503392405295230169579108474052037813778750469962843431253487012650137758697970919081151824868238615351772401973517921312414682666940300713063346438876071694840851772500264441000310293106820523717209535826161689606915023519004786478370424661039030605708356375205884963937076870949498661851544724474697829106595827372529452937302275466012206785651631382857766433560529872146694411546534023451367703619981824977159099081764971788532897896616861087236983218342721216395612474082356006797392417427800246196841454410628548402868880065286400782833078675693334962012399029711678454226738479479978440914098420514787764630298681794306312248376508259037298917705759937268729462543428048507993711513771170287187923101517690216667399787662360391146578326407466475074859855678041221001767539790060134757790681805824830671262651006485481003704284420270189070417970353014344797914569059545352883790961961795127362955072894383852296002629448212650768932687720082654149463364141328220228287625107117095809655957505616994437294055090651207603140528622859688144557200845167601169978204318596882938625279258663612142762957464198019459034526608377550877844442627874600052131958904843547257622115186951738067052046914038993343926589682497496823443353314433974366854382166633229475035671533983910231277172859486975986572088268441488235893556961274196505564688363694376980408105849842741264418367061498426082886309691531634755618778269459196849811403540063162593119967129777786602141543257545775031195038012437480649297096805222037578832079942086052581135472300003571261865137020374354609076924417994703310657741200210206505865510185824133410850778773151972045984391570894445578997083229626756701633081252284376707369214202142537388406086375098016583888467751322445943513897478417483925869331685920771056509418506451166652202602417868654102693363450821492962439204566417017048996921292891162294471143768754016524493050139659294121756762174629303058796823323536153039016200777580205796304561334762110005923572889765944048304127112577462373834406501798408829245015274146468742200584993745531320779561294310912240675975059424642763188482423124889142915782169884624962047175828138460714608389557479236963497586797123909510174816337522589414861194725953671644509752435346696982086926548881437545482155705687179715225555164114607388579905983097967543036880872424895840182499739319670346786781777363784074777526607177790024727725609401316123894843359638412506681844627381238727209142069608010665247869746325179134483641657776664155254790696952324181216560883007207028504096822546301245006049941384624898833341267090087680737119855784635874285586238991341744474077218684615491404581290006922675375454703310726979583631240477775724615093780812152901390197999340106568082988795910955521866045944917697330419788979941734287106918557082114075069223532242524222898703472187546571497688271189246795654767352051342249898048682213199103444554126661895499889129519053181959988016606100624094472680296813513399584889978847850695965321578981686625018261330381281405209642189405917870792751238667662489127909018651095073766833530806706213949913547759688868400980586949975976099756424086115904497329361777989739449990435405876305611884320635711058523393503964574358972541601808143873324841024982347711329001253865519198091315246901343883361904673686310523187949975320749922603172773105523977026648984424935881632438190130931688069070792416406774251294128819182453731515559823914479226617510816987939545136904577047803664415449900356565106540082043100184405639628748278457561345006245695953597043758917559664837270953394614733977524332011581917581691895519593927783703478208669077015563652269050883683873807749674881603827222913962030935534676164940367532281519010210402930277626778704514445147265204718988447204895208705742520329291109519720003864453477578167986790864211246450954660495000986524585179043007361365868801407756645976766339128016734758038250611962686897734822620382066464722469683428216456422273359223009760170280845532124827365849315935847052791788308932223305377157570229020384965971066605939241342089144008506507707093386604080169271088651253096760830274073428317215066001123875241363451490015533955805737432619656495249036029037881399579070730363047189134392324995211309719001798367770338400049492206797848156535834502098263630317704053790048068837445415646248326159801286112782669089433355967992856730954915754351020020356452850199344904434822450972726976325595331823608390852493279920480453750918076085866665424881877070642638349727681223858426846231139894049833105106676574775252846454207223034593335166268919561580182738801852821217670549553055202258031523280527561618781810047680076851112156620749275624701291579587294300714138116998513414778660518528874281195678618910801332014246501792179278496171942028559677401224469542846825684967222161965115270279159273909389949142643259913537488573205341318810579516761272940091520664261562875546455922986953796112068192190824261454729608573474028284928199125006031637198443985514495270863623235089437898655023221590556759539914297333471474467372731130172437412399841952253720436444560124333007810326144508252827017985268362624764096336964313287396749144097381778060652696976210700157573130850667921892362470659025182960904732015851166014850200343939043060673535386785987605903593810759122917648409838371375944484687604249107002700210694636597586634933004599471687582784901275237030433296888628404894620139161441508584368760699410415286229233016027532448286809115171443459169444741406542147425219802121613304074873600220432384089804841818817987648603100522048920726400041699887233540857963943531952448414744744810520351219728110134003747922286221562764398140559575227597622915491233107286632679401006710248056368126081499465636494482266944546401153115094390656834790943014178458576496903975378630858092023145262534191103260226956298997422058677639430507180990620446808164071709314722624575573657319655101836255404052294058166026049415523402949231585253047568688878657452980058101442186641847591185813317688023935506448814187208735753633685444585978193595188987852312419124348120069005173526180546395849222318367083157503147468320244696959350077794280258537094716833860360470894842378092202307614992705834787003774912285388073429999017121592823171934912462174675296633885361229119187965088801939963288290752185211263352040376648230316927837378995266469875640754855224309576076005270059344582010733471807818377069411485526168824623106322273414660102445508947795226769862786613132289349016535220656665653262803466571874377976136092556569166687754811902014823887047162977388979835405871855595081639841739355184554578769390743244015955798945558256027837835709599081699134389801000597713602281325730032948701976359129919896502421181375347972736830866023117191716765076687259586358516866250750473880753258948580884288883622562813089715743857087575336420886050451664841946577528609274219045684898665035371505384288295059345765547083113066846290777849159090477951026634134348229580522838158739716202310576123974671249483036923690092040857242250799450943686705802880240539409461739662382725618950652666804959526435517041670127396570856238502118159134962653648480654116884002540937249765709566025545947088075216296021117120949428929796449301519969648451929469736351962737228963153165823633742545326987979615179000283866283806213220713909603438969016501270534989089980789869466244326451362285303239782507482224373931501037749755717381653991306949751249621350929612036369653240993891833340935781852744235419521578733239018441439195326821445012210786152025254606261807621694801056208716783706850341629864711198102347756792481924207561014041362342449186077603212449049918728902457803278123986802491062388656860551088944718821763264996011148548833884458611709411723741514732327289863248907734583178908371009654615760580271186715724221117457914682929070066089793773023762208552607946341394414869263126635390494553224962094231984123918032393515613442697877285192587747233194145876683245471797831492638076745616960467367638683585305720377376560134795945913033653882050989579635989923512619031740064844964028688111073385691306447131454031677014234654518900615652523485647639004868514044378713849314005671123508590173071610831634478368412204021116847987312131136891688805757130478550783231304855157596373596057240675145017821044541328408033619284474255235507798039427689050453017730368860929314423543735323999246286811027122426293597357510732983035586231989593471067239438872169330002489476055608890726052707007572026656784535994613959702773863244081894870183533531333570142219017445187069721810565230849526067783352704354587543196496760582831364829760043616436885190326002873309880375098692807773518076305606294897914584442269078304117058406191813156088213263669761402110931180314218567003091951307758117130422041656799581269502607168002122636674891891672533932168468344759293355087189484272371732126466718100184501670538472663921549342988488953868904786271259120311042527429251192661332722513275382656892973719427751722399592960818454171841346431612929724314585999450411719127609225358769283306038100487420960679027157969606033114142889228627278414606129397362284482155339868297831482932033553182226785826689121207188938224277727232053104818520328178843140054364911928504070662771998818735370511607449566384796049284793029799598652974821530469783930522815527917552988413125429494783282253073405189686937495649599407023648907537178395537372931886359880657948483274433737251288304738704374008035202776454363179429303172649977078738322670596941265585665102155311364015232033487751087169794953628197743048551853357332118566276093353516307973483974633825500065962536734235966965447444149688724500846800414760766226250309253333806243976939028436964343680456885119703062980430370702111520073300101704062363139188705727430339904050100325505857929361601813946287066944347495002737395273699653574103676563067508772370656989047038087363119196846472740558546257843425036609559140690305977865751254613350802116394535357636845531289327767310280937350362200960410362826575448654253277376531786046120145847357762414390984299189189128279282618437740561010899372773043359775284670618110812899916521577173640884259111489089469912956656081441974305271461166563458747934020814214568517368804316038580310440046203897247312442608750296173104343878138512609344480549263592476642642184056730973843325468674825284620968948374798674853709352030377237784508839830570065255580622528734897883436858049111669485124597634164008121909083502515527836212837287145403347852316979716622974148393113923098435880359115549491398237129519505861309701731434462674521914583888531925466773376202575802718318572148842581347127330322228542617658071000652576550255472124883676027047261251589826728507098017546091027171970736817750060962072497670057294777264863490428210213245229394465740179436894017067443071117228247833803986220639533126135129759971798464113632033805978560920142101533593159851162222352665760223748410432970354531283707619089415204125279086005246882336591955259116677953645440763737493306371888089516008802927299854234301654466491916376502999583474490676586183115314996111244805142613797778184651466671437937259039975541420523252671687371410968740886360585600543142628961904913859270171641400757157513221903661332162897207157920165089036175588548531061140913399039242239550729215468761183194736276271874824323935003427830698171378531204365925457008456970105806429184144663206341087108215846955797590885819522415247160982031531743184141011252319359400161802094332297735430687054586647422120243238603902826734095943425851702302416185226207683039860600387398159667524479643189367153138782165187655501411221858534203698403284503166086153609402194879707839905188052228403653194359229504441662096737792544556394509619486809527455761654324368222660537323233323142835215452467718566715303034910787772877694305282568541236652798433834882574946866440361740663430359122070837098018978670699184006944435895596844335605358193802650012679550718755755023108252996394465016021800260425997416700704950068412501786981982923453218352494105109414454323535087261870270545961455205516242431276672829506593973965105905541201519521483524702781321417630112768436231827424676512592213016307740683882895544741581022916754671349893697913505010591339242037422754533393290709440837498704620412089341207120104330422224791588755436531067926385502855155355800025970870115081134525688692025681848090546638508177268057705307804345723123474713960513528462250105001111489839869922228396353643199344358977380860992268508118989804174025279847398712785970309579726497759945553085125304852081280565033136854604467033988793509412091232874032419480798683550849179538424271952631567344270806672137142864162564874334135276165788163062788403997901018769236726986624322604667574376765048232822733256871990878185279544152709005736108913442439646914926495861599184891489884790456232461515803501898999778719295166922606867794590628242068460051416776046363384496539113186739040918623178604102020285383901279715689482765258397984822062902079253231346928015893758671592728275954972764607351067794851569160208116647470458493538583231807194028328042223852403197897258204631720046709043356041259319857149222200065759194784469580735691060483390939544169178587158678249737617159615357609720659017958093707327014361075465478384323890088115020774870443316040483538989051093172058384320891168322504794860930555346898688196547338792996597779156371270855310742377067832469714038246869927504693743581073143354661396216518792929289791503487063713079110801758671074045943344678382693993832749499767916976117092887716343374453434450763581493381832342759505633466593824701007105199601573929769485512391939791505751697733898973720527913561618154597045231175842811471485666801679663519581643671483834950740072951727803201285694069966420487271819038368756081045472611050052133691401824385185377476596863933586252063903714377768977062334509657702144676795755111598209864293483603968540087839616080350617448433170487337963149390336605961455272840503484426857392120575982322669762322249284244574219689780041127075439290209706740364552934797062726104745894222802978143417520859338463486471910039025928467755210290449230625633838981976218119394655505414760091951442810586358408481757929595113476431960678623588697761783923069678253074545991328041180097302977469803957423014779091299986062048925881784038101897348120638068109146347812616481255665069090300070729366791753035369788956641560766268961031524679898439822494466906306063691497437828142075098065505221292666899284167582971657981655736149775086798838294983072906141872861671046952813955141703304334338372419374195849802369649412154922772405693403155302169101796791775034227781189158824365696964174378143690560624180501425183785006914002886156742130357796782926857492211612129631820427587927206032183788734458727163845607581441377037857117679571001326302413283644763152337062595396103130837692823833346371112846060322784139575800549088785916112251478385515872845044023657651923680532103962202236894847597965473462130273057218666455498983749320286737160674459945584341623435561052966247270709693620136590375974337702480519944718599272058896116479176452568606324466697056606863314575890734128513221527423545015385359258690663188621212523981806772855736563891369903645113825403967077165207593874101363899849113794383399027235620430554336871356293584408317529523011020253583939426466685293860522322396687968305784642620291365453272114767937101077407151152716431934183265384412990091070036679949804970615361181249870471876495291304982277057983681178441212456929356560267905279440422330608168073258430190080708247850513461516628059303762252909244066680239882390240018157411224265508929952643053374362818284296600572818072759604850861350315720065247338111813949231239518100309837027696275822573382606072734778288561518030547858774172817560817211713996652608611696245657759162165413036325833618753876686572623348493680030153172208465300425519052537025878744924513373796971387267672551243700844940136740962987235070943649287939635914854653432337306191025862871292013093812181589266813835679513721188451041725717291209459314994969505784498745098006093765240655487542057506762963035246502895369573172407124093252054272918637306951983958171772843282578274590244971676097716775026645645236963287813009637960860717643852936261815639205732773093435637554224014876491714980716630373713902062798217520760537023562823806078590520335786663250123128504006550668291733284867163192023631794970877651244341267308924194524524072305590437044788303973023876035195862624408791088536619883343802583134196605191520336187712061131076816444991860480480315064592214628400956529591374978330963717500384108244405816604228928998641827325903847366459457395258659778454781275248403526585355261975638128324794094266810523539565151283954975163350153200407376485480851304964991398337800482491398305857983129802479734186009027369553016846168449206748206817031399748899921277898855592623389447204549438760432533386930164043380202982775427106674378157716393974565569306618197348494945641511827006751401554127072419456205946986806487324998726745311310143796663587545293063432216239946310253033954654044732839622383691206507038585325509493527972949850142226476994958122609755324777463529366753256052888424124964611884078017271933009389819972812564930350889257450833756433493275940142885608518660360876093432061000764156894556274041067613810363706113292612190453377850861321247807161464050639357693626515277030312875198485747712877076644313281264923141889508786167776703300756332222639692887210873501737498016104601932571340818183668593026292111789390636574696863659341626853002852607959387396981775055239120563951771159600691230071604938166569168240439848691879403783997469528476587251266357095682945387210364986889336021285017814174913205608636406770209307795430004791992961529139974128925821651286220904073318983908577967806681774588142025820233277925360445644673273256546157494064825936566868326034433962448407557472303864921476250903355393491763048196500968083605286803742109481019304331946953947973340784137696604181903866632322532424442572938347682354909019517342770586596248458631629768643244263026267993825841310867237869264266354040115974068944364511135497267285303012354912894060534524284655357722223178421209680725425874751242798795922034541594929998477545683357263186227454345807185812108293024962038320956139017979264942130209566155652078802644104928502934605543085188919872842214261482273809568507154064300090255897710841629622147565882190399171391322733766681159111746592094889079563515745050899458372470255438601261707849096799608776414512649333787962076814487445113791548720440085260647919588884588988962225409289753383270128161449584238111044174397484366022525655974950458658397831717189838518035677308074988752568344062886281897868365347881461329019345029703362291294772441418898517172871266941319454286696784343367322897421487797991851134963283095108441274936708874777565884353391858431475169840995994039340254773722277522741502311623495849689468343939239472190555811744932322761166423464299788017291871859123989224187043711943690827490247843595192902763831848882508230831316642995514131233625446414328066967880195440631044202522186541049723671511808107213902233516008748118254145489934012157825803430412204678991750147506935515843093389586774790007559113256610078010021185283489385952372668478396177769045556274366074384648692387768396677137615514445073321421569605038526842645835807290235350198843759877055388958236108648715000379924730966861557086582571755681717971203062203931618920976110804772277992878302668455968376287552630095885107950114431309844761546219521185029983759154117282913810876027012828456691700842102202930222138990181232492508058809025939529563750498859123311728394988830762925495296723105190299707998687148510500370191004629654731021017883258132891241929552734191889471550755668406661901714044044461557158732014782206957834295302524434383110629512717142495062548959568785239092535078304133502920823164200443469567875949971442331923002116060107602857007058591785864915022176435075857907531850363639338963687969391282441025104795488839990463433727286112990462847395555902753667557433804042861593579250285052595278752586918004249303465558023094097188084634216024171602388507300999065448803494702968410796566927429402224686548393482122032161485035303741447714927699431611731930129036006053381608621680128265433813779159982330507244011734529317031839380947551236575804907295174931085026147073321883767845729892896479926190678101292491276699865951837815312231735580436166495595710717827967740556640644129295119531224458323931024770825485887511741974352345376165626608912199870526689650311927850773175854608678650500295578722728293433022796548997063420041627396840061092150280661282909036264911299662211928958148174323324713493960799481402565544035810041554677898852652228379663889458663814537303934498699912995850430187332402185721474443498418794667078258358192861236332796268456293149672958277833479346769395942495186565307031264674395895243188578568318007513789513735597506080523383682249046096057594363708011631474508512157224326837515981689966567104259846611972943277130414147102652871444230369699088473798627563646739922408422206483563566934932834151605524370978372611063848394090328895467833259436284519506096719273697200825689567111012687655587480965862678748934501625765147784128800558307265180818647480966379893056331188659967931722569659601993094567082178403338044858017762100181139824301295229016691558902090237104350730245020294519792298810123723654851208981037807935920513492069692018996972353042730331624018896716866454460361311470287920947155836977518668491399985460364430675372485213249058674390503066596819350014238635930871479444595295135474517169812024307535311291543875539295129598477314906339045299051349918570153018589680370804604200078474065741487927891091863087904653203960338263219181521914117145215158223299470334789349730890485300729956301518707039467456365284334414020466384166036841497794858006279056658307907153837207257733589317614316651929208345707382175114135595168793226234721624617480166151945916761199336869167179006753890086901479231048049291788883993233580371610779809549194341765504904819381890282509058149696613583940186843821585817476277057903540680106311371154228344139635948495085893291070270054973374483849677254385752631433734091490562913348992363140463742595265894687029644484479127166879015209307772108937662232922876144614119906836863188442029824410106516578988056357528471793058129237577384337740211570145053902630934347306712463129419108567496035710646417208726964971496412669622318777041393723157284842061211972742409904309187486771370815678788446271872458143821482336288741706416186947623779375904357120358653492458759261008230815365666365124273416042236986477543274686262208604377130871178886300549841412175731163568720216409650917089229540032066433269711422966094093705681000700505623337638138484096848227348961361991591718001928411064899918357941263716041392862929592419763285428715564641126477875013729136323373234520672223991960819342614228820511116884921490941013882311710879366160293980710363799430564313175916074410528696643852050426581009435229527127229969513576057490419341274379608246745830636143062791138781355761980713681978211657479407114047698034181168346752999030113797806093270106388116456040634620298022434967024902545158882581186316750457547209952957212664749317079498970182079154028200754225095094044659248342050345350021244745938076637968466415786854734684251430883380546166071677726451832473893200419512751564805332064802243243234627608102711526091932200779097666549807986359440700977458043349271019593162366849109840728879075071810158441386849389673370585495920219283493359437081131503684177091104927031721719371842477909675621201729741442856126437918328221358697003728975885016178322810401040974902995465522995734739660235387903765913674572706408146769993250794910747756011007404275562978556794417070052090954857479088447818599153590503812012697202702377411536191987581574033292121921975313254673188758231854690927184213375580393375095964283754757121798500471179127988862518842055414067412022644963389196308423466251875096642942590304534781940103839554464514598966711978120377528680919684384870795292075609517077384872058946024762825124785873447836231617626693380140637866255098089722414975656349236626532742577824690220191890895035278597686227341522239474791259342283708471047176166766277151997212994496572186152456292720476519765842264656333340588508756378649342245178146812444944412073114052205631936832286131590303571630933626562389715868678716787573541045675254803964965220169525559749358871503382348578503268541410340295623503302053286788397839584965814510411834161425377422770910238397619599588757962550195751759161383242259558223386778683157489647302987891320147039718596384874281380085307456252232236704443827241602819650446932194443717050059494954011542599022475006679392749859802974708068787788034881130066306870174053462124750296342926129995677070918534635022131978287739654677636624448800546374545187460198876968025607414354259668254886213130835754257489565792706345805338687799779947337832383420261930182892765412458034091132132614964228048912943970288957486646353442035767246149925212026877383085594623404986360432961770161344090923105644448763682268250488730911440951261689526897638671977769643621652424841516843857961987883751419233028345810109568476588382720024251434318916268973996548569400682631999321060644772518270869320906441493845581854409011681207106528646950064666940663053942219270792731843651041413748692939903977529877574183050366879525607613109765160974392248224775706964349731959352263207581090591152841423325989388136953345650144912729440461145732080587275578545913374023373664690837815561273996564940963927722727446015321789533233287435549262285076434266299757371151623519965656030934792336628422907543527820301885146953275497638888324468476326402960352523502135353956078036766959884108532462141851608588118816210944655132365988079665393993196703857464989159877637236183635636449429019096946825632484737526495754990934545674883104604655463870505380931564453126441337085842188096183765477930788835235294373254750265460574629773612133699373752600328210789907389654486905099468972128217037921175554169021818572299679541248503209997700317461939602301290853033595513544280636075341557557092115574421376805628191834721877291839329812476242587894632029659414144508406307020416058356199609610093887057518181867343065509337409361748342438663923737202136446630544880504023386863563239196988695848110236296671527408712327212128973602386339756672442603712976198243579611309657483310962830527600978162020213290549945590837604250973409105914260986035969543640843516575633477709014485430244898848203043406702523064000785873104074496285150191670810214888858626772079612823060250002462324040763415851438326361935576464031408909267332573366065236745322973363836349413975496860146345048938608471911806327269029615455448175522938696122292350401380090799428738947011238113768723383048496434639957992145851561276839696742008392949126284882925330432365069135656424196337830601985447984546672627710415350463419063496898732561423561803546854073984843248227885931981242720447139760185809337076898812764950324499400321107443501681215770866224511277182065100048354726288072358890457539893561414158464739525268353105977605026185947210413516252969887886572333270610860722436191616732418418095901683886717198207597496295363888696469755336427671210897975336074281551797266459775806503469579679971769386504543928488991026070333908943835743156179900202116914107547865878930462312177253647190686062015900890356653077985186689613693160788332612794554389405625457438255334998606986321934132468906259347807492871551554797256839041193760003594809681204354399483285025764213863891632496863803026326013461976369272862722418862736554356397495912791158005256103905814746531549533103397219522257299443089927992849371216851396220976889275563745435501560546253749053337166905035613390437349891426178168820676768262030010448229930439498890944897716098246019276266957827819116950805392230303206205208841332747331803821040213884679289867030666494350454936474866516025433463857540659131215661546035552253255506087037310344609124590931846504485854751535626326323367135732838383182346629189260966313705007325201604715540688659232098617677540692576448766704893748813029790075538690730538908973243201023051653390281863105691717727623827435786310799946906147951039935954687727983599304397024592138204898458307873242639046099136571607859239033987507932276465568868141805878996237861217087871057893987624291127765460104627816806886430072208431674608065738970054278220547859166918652412631868617585886105236356531072239409920219082262440078944300336758270263452465514186118616550372752111020369723042275071182505494165250381454198437789134316282618482067111718747668220901385645050243944020305395921815303837112975537416631583646130388865717488093064681866786310555140931567173754517296359526294287559006758612956777345163132357459671454797709537720956942833781134455183534430314665560549607175852787723911726141494924445491423062594439458907664811635556872882381188453795156513338910522825768428096241104854834707243676603508591574504532914258034383102274499275133506523427158700809776500292730427571028911839215005842252653749039090041411651159109049213181994678362156195754109097522221728084607171221371091263840155643984791750916530825321490967076926345034035365495108567238020047167605444340684619974333212477919012452881864971535286123107165668539809556174211378016318307460942654532519701701028348427463073049246916221358446727452130467064790764477959744304449081497299442303531372960839106207920564849420672360684142159356807915945585836227248179711652740726510427295863106142608743271263470074494336764609755238042184265996586557209583333209654375134904343560200194170717138839034888437086837409116469066409349952986939854698643435681886982939252969818280669150460965610816872601654316961442667053942757081351079167703114505807261898538812676295337889017914531520168171544042914492492559726224176578649047044113751372061563146792463827071650175177402673869486081219814538774374087907235534626840131649056649322463358554686245059605016868576934145369851294116369196599727824355506442799476659449992628217943451252103309166732557412336921292429658567630058340782414923817721818741244143851979730336799846578433679344029679950845676099587352140099819369998218360776848281222035951200223285059006629725072181488991695534297488860029049789755932103927941565122044290794046479333751364815896561551509244669399323345235117378300318607395901899402516919787922389295364262387332772360386108046963781696220226483279645473914427837863458192963481137551560126678293154411011327533135222958372808388061061368938874767338764967745825811731334370291335364412981882011945562557755878715413832032950539648248539064008367091003250431810659560505492781596687752095281740205495314082374557395838726183608424967163050116116437555753723966398333391813670950044640258723965021500374820409887570461974837050521772608726241566310347783104041793512794384374765655383241278740330112317771465986088726210522798171605843296940725699374008251013943661861874429097030334296350676647389339154505472915430409629381763225001568953205670949365841340273662015982485743325319711432272944747894181060286812255631898542486723171526850136226229967900386001530790768907754943740338175025313586425653120140224843810119365580623776783265364503225755015704805336528247718933385467231044808154814438032877970151220477206796535133883990212745496198021545417731354385460044850799338236270433208296159410800306303062251725237106964827741053631522042717768569878958340701847580121932184902410659633581762331538902268698685485403146016972132006575482168068459866849324915176460675499520640666002657861481630885296820538001386438968904673802609100723163511325321433812428272982265146657399854757987873311182541363030476107856738756146212718076530656116679371041969446078445598738776298536685346388310681357642449207821942519320570322166773540776911564250751234864187935172115853197292828508488103294085793397670209189178628361028962616992091977037628551909716287017420270065412841227628692021174180094952133055503980930720532513285341525553394703092986829918310088932203106409853486039885501991348929835208966248681179595395791792484321794953117044090844718327917973174368334027331991768614288137954262607214257509602615493633541707799308347745622847223028861249465078823654447681836665192773427503410298755452757658518666812275064833521872480022655765916154627490352449379863730251749676398491143894862295565290285302379652390554915934332351542270079002093637985537558162942753503169507995492696059128322818399116656814419079320257066528769118524395130902888562052670795785445395197385582393465620669418693688970577235517230768558415202401308999993631871836939114969009473253435878672975769742222319512000026936707893517235795200215934259781850797881714479202778312110511540855619835011729388158982381062221947540352049561804018835942892194979503814873823197544987252054499170533724681908385417843739037229251562169918463421633924247333303296592020204857530372604133858845135263762311268470236418979908246433228895278529766781607765041519639455055344497647329484963383019080329623560873440494823989448811910610963236195594267276707139274836610988992551056363001564601803582474042819388350427245148434093055364537920301526498892829226187649868225685377189888434774754311111691193490653615838063278623522059946966805933760130204328662492606129187654836868701872117905023848021397056353146715202719830233938454158943748698349783990841678961844892779038001685816028684638446152822599595424913092050020039667175448362283510388191663756056859485181248243566273507233915561619012368027086671250871472683721390760034064318208793796814263775082793894386237161193559001114097798910427777569541905774224923402178702837652001575771888106440645328823932016512020895339875995318413120890277018879482733797077004053316547409111866232500072734132835701786382104181363741599182665809442240507190424867251238114674034599456659879568925467083305025485208653067755098697250561067347289388130862650269792221631254183282826187076509085946340467487668103610690987407803582876788916440169963635050696274581923039275573618891545409462290903152307503413237395463326119822079661280823013571163077988200666195305329245821943098045405932103626804800626684897684191024571350530056020912128293933675003740096643190519797714752579039980148078561241482778456968630569824281296657208792050307827766048642293143425165654842597404869574396034007615187861046863326726077463261243924340658259241823609883924571773256268065587748937830354582404835975072653781068790767034374515055759365086661916369998212253622643502733886088157813489706836004117139895971096361540921962997171229270390951110207797560337002619970175183192469451631341781545659094176204304016820484656443964102130370783799515200956286039728514637208696772243959981804569522065972236445912961396100671343508203759704058215810441079244041381757109950532948301202836587830968128025460242339761693925757145141618169538614502397133693668067586009497543698973137240227429667815445135413188968670499282055889030653498945206042063103643584262947479037664999910269077490670467622673080438978987727232562341895834089032065387251205087220481520286833651697513775056253861839389565135869964394724097676252665027271003937084707622468383281312125485090378255278250972422813427695699214009104897032795378228665974107840941725172968545294503820666523645552855402436892547486859045302560939432301315948820758453058473506948874372198220954127911790498591092984140233219498542779395395981783419869576947581891595370975021421102853878468924679739342374313648329072338589990089459643044652410509899438243126872453268725324106681326107253650257799780182609238970215989298505126839980838874664825793644023067786214133331852484337428167735717985150392830447567750566898035884769085594834414134254316140478801678612104433589595594715884439693368314177810432986511094520502278108643910911636861235556552388396596327560400023692610174750682596133905716539111449264162340475170245650190807895333887214408819938343831923469187041857650920350908169478490397697322691960041688468253609303290596218951185915209208647110488719599437771899676239697352262181591365500615294852494305817405035121471250455160936015169629794412492462005157151058182309549708515873809318781258075687110481543444853085614979362348480963235627774545119092843322821977163500691867858184123969874479184220164128789333061332115939843714853615917336431265549542819271292972266329784782991294601132460446072309890986006585884034359049610406338025686598170117270462688170008658081246063661122864025510829494862552690443168201302462274245185766509274636269342614025949142441994746022329334369937190846611746572974417973563633058369963753549633299100302527508032234078559696400007987011144319107261252805225467892207111123014600489431277391559179497969017446905781441243609972506856400833235859763627555087009344687357645052451156654853606783750992381785481220707211268997150928923295242166693305866204559300692399354193950191211401470029202919197075623975663602548283472841883946490958936532311394431211777566691583071673270946847547882940402502513483880799007100183394948688199779663054333075935191549757612532541313204676202336819758581109770573174551770371129831181667696281037076499461183511158710089153209707514802630614570482199708252160265219808224414349141750569387197823694388166443091232957294975235554368473622771115776422360858069830430840679311835987965574716329891007490542727673030551494625424624524615028520290123159575283016003813469632463215429009374827650076775773332319939702131303197793395951565009027349131831359301386191811818704244967875318762109712181167108235528393209579181925668579888440455686207025648825827861991774758788591888900652534209882955434466035753151167411506609957611037933804509677280929056273508453105425545927853319753248757292997214523667594278797799970237626310137665081148048616510664070621513932540125366897682595538634543750430622383837977660312086949829633301353644741349626823702472180664851286968164128045044228275370646793026404073064770928912206566025879377030374608651803990905579229078402667110196305852439791409325694899210473931557849739145382700635884325420100561064413228924254730790565098706116698162899210324209708456584431002716258347604204949920477110421104778334011302202147118563867220826910332735347416207076445031397631257379102506092560515115480966747415691208317167237851884406997115055091611493527066855541544142865651594843710943824124038981542259288998320424818691824620228650027750516786214574772556525934341409399071860855344015439398552906173368365807707578929936299857960197992627089884480039347158645545269815979218267148861235257252196892727963497837701814999632901755795143731268492350833913347499653067283819174371943585870450706974910700475171250233206732939230686350086333641600002372848505414744291652767090192965358127785803539235161702508424393788832644983535258542702291790542567662302422585081958731681054142357814884472657756699125207457861885167697079010243759153382430609634091023320935768095231380304024161601892965144006489672740366248552429078530691663063130452718973361861053920562180885588357287306513075578432360598194979265244735329049737126064721383964376364544949151073471090346594165789654763551196309424607288273323715858906047959621297100919972202866913066081442675537005929295831819022835224914823878659688751176966099648921585105736004108931385872164453997373229108240770400930752833263931150176396968577378439053818154680590519980476717094752471350177276306556475507883890781214861861375532892090130621198977600035895975923139781018744016669101149078008029440120908844541935370583551689348120459055915151733207185859977292303659037013022184724462654712609634047876549188132854762426123086874894168760127474736133773275597135654367988152238074252615508739407687355403521279025570577342357759148382369255686243114044589171927566399120998397335039989826734347669578368589517661263974169480126091210096707083334555728666964308144543862236358249925663280512513076888250855021208550157812981182070037304228552589923282626295519979109294002677253056007313441247751372108327786327447541765176068592434812478779214442484510092493353438291593335640121707493606625675497290571669686308330234919901722445842997870320363752789705625605733670016474702997047947541265577221620199849289068561597572877438842859657860482149185099674459993449089015762614544817852514895501701022521241504419736689309421367143820978578063895585906672211653601962479696718483863617478843940315229299774932119656767675905553592791432938406892602632705528748473443387286788346437860084303440285797085569431842302834692462586536861051743900951771413083635926853111449587152053058751515148132066695325648629911557372615309512561609583495118407569680575073961712666749685344510656762010530508755924559500310686779568355157476894909877396701058906871593273202333760017235569163930420506284652836226078966904246504669099139418207529065981745167931717531778022374200266365386393550205309189318540329282765984025636851082983539364255330234974733240075088013954694807075098784881046517039817786032293364793130211661653094832992774688265426514791161447470033643699504583145899371626707117320455049201762695659717534329358411769642562899488557109706282669713540452470619432373007353507803955652182089117541056679039900703957155669435406848225842691460628823532052012424889031068252413229756683908182988012313697458072729556139537729429572030697657628359973158119703127165618165051673391506962681378953680102815073248110641071948052455641750541809230277385124427798217140281451165814629265364500868838217512158645141598574254722164777824403124504007466630662787875274515675233109425005115044076649099972107678466558861111068877227327724308191698768600001045046472756182811936060719994065283557456158933456058700959895959813917542770669562509670281290268797484697043304562623173348744452369499811127697441746388899181055997406695163751156256207470678300246634014500819542860547263058559358755072898287251663005961106087943186911650149315213892583106611433927073596769521869539711121882169539726937792070142045304336261506684607289369201410934767790516490781161807664307692027524918116507781666289047713047770830104706607717279673269457849844293421424207889334312116434258561136625112112041602130181311837162309754488168372777257088220472109870279719780876909949565319239966866397297952693112771570413877452461117736828775075428127449567927167674025929734461899536186635724906931285651282566401786071146775143701347681437155479178368374201979816230927911739036047460279060273402872203904390612182018570134251374276389822902579951129001236036202792459999085217520526151837300232064248133635638641026480060457278311329963222251390498862315613786429584191718745971136589299732837082757704538648605394257871260038657154606884503532431426673215441436238638459028435517908859960229487611420137988762347897438706684335474015480437736596278645142869623762657247223942279176618308391588745792787103571308169486746792811253112827252979889186896605875266877139689427717619839812519476727901762983661981482399881266698282034085440565858070415329655641163984868445202321575143486981362576757729556266516531882217732793346161323578498309899195118792392804727491866280504567715543306757363913957682688951586726003075677775167604076549587302854729749086398259560574124453567639433109777354286658799550333235689278321659514294125358930173013740554376696605742669055554651974004005995035880775571926133736400275774009867416066316095351044670236267739281097645106291033547718211727924839657868706378266931892834124297397581208621983532344061731926295659965879429860953970595128071071044057123251873205153319342472486724506768515098828666324423408809575409352198697047723966825739515040301012066436854858374364761827417261829534347495917310128884280603549889492320932134915932463834549223107208707371833346502902337344022451934121401239249552447747730173072524715048525279697533353252786977326995689773310187212738018687452341151026331615525029592034896738609544267671667506641567683938183226665571197116273629409335981104914999073219282084256204810014195284436566583106947929245060626916186405348977258140462765737253741271600591150375246628093915164649959131251977224218504714717935608500487814778600491040521798477188918835034027461875757479030589949573978173581197983528947009668250180209270497571795411448783807246570797202832015048087014093266514750400414783962853634417061438683424250085801982982285295280517792482854168492729629665253952084523475992164945654425803642679515604697255776468608580471514506185571461543825347855388288593851172754254363172784418700993917043826988447279540431438887882177814978288329053451751319149876187562673849918860788862724136499276072035871649369170122944755964243621632030992090726909253117182855750711145354424856702474870474517908689844285198445097046122453522299351005337161167179562332001273593576772414041760537739340918213826771525588783017279681354519131575481209920359881925160421188878485758567834526697844380889047003883398635868783373403883265281047552603726323496063343287378603383617320823269090805141751771334912177804077837445295167862409262329837106159304418922398353025968816148558270906035104930349608266490749476722938907642078660265966470175401840571642485737582069773997041254325398557234917526628037592018275200821489973508534496993919359208011625902258147740228061402109366413972531851559268048933406438998946204332216003702963557942091790454764463480875690991471608991263919336529523726164445060893515396089475397586299050393507407919447832656518150278262691512404011032672766503980999809596278422738111153971174925532324287656817638853521512644296730713615310159277489017282527513766336604971613017912600799502836535019028738720942913968193030610616407074434523269558559106761772411765889093413641097733876015005755445270127744117405457667076624524710147075822349199398919931991624167104218121342845102300064889764972007248093266090178328955118567812027545056124933580886076909436991081044208094049008160442371667432677304576775901911376621660975769682445158187189413872401964254811811049038446734133410070078986040294641328721775331745643078357719927195961179931269975363713952170669480230632916794843469088352470070502563837172657402305574284541378303376634872993345150548937942836081370640273165764412999970438527588366030159002982784010017941281787029329744542196886232489712632269622157252630424794040624330793544281664812527345049504644427426744992802464900642346104643979710542384193583040379225331259906666362901243313003791140529476024419962042105709393854843768368636498208214902689114242585858931200629308318715240857872692865482184528800606742156652606075341117010882767585078538185163812822050099549542164238088483176700181763094923207906194780210078504433543338837917161865242883107053034541186466472491219424190529835800632196720067908013588250061601886558887107612745744312340227251020152058812719373150826307989374858227312833734848369279776566801967531836799149731822571355842656671393286324427192579820529642147897059216447387299854563122509610818648736451567330624366215683101877142621306988382833866198117840633986542332090375744297138924670457897410517333388837333283471057598766987379042837761027138095682447542316265727151564380812980615997805763163824610695197142754558618525228423961268127423472903236709746257829566994283008385824475399758225067784413006572486437079898513664546386755125942597502183140022632815794044606423457894160668015565971500922795268351583688473474115984299678753713851145526366253463686835648080917219228490559747673248557420687335560269122445717149834251556340859307660396652555029044642897183545758839724279321674579594860935681908749250512633464540490976303159830767959030234126335157127546282764206810961540710017206193081696625983508994591934865311550874691665867574754516143927616782209694710599543939129012839746680285903460854394883434984928600265457336399891581653816054778846842237035476203079291958300440145511439381977133896038654799538615962048303988588302094759603940478783467823037918560684823136166932744975907517776603296125709218112879418173663002228800217202151839582920915548735493387975643628154685950170446994098569352998266384804595138058290717326886248524509174715663425165602366612463397387319716505272299616435420421609266485685216049182698728680282077070057607550257185258045587666281215602089375551075401081695126116295583882217731402602358770030839452665625860374172267049684283076051892482246976998103229449413521978787825576215026719353425848470953600797778878038731805747161168913122319812481345697219011639255817743721998076617312280186216020083885864861572571647640846884795422813198143635567206039033673320303050332644546490172001884405215951556528597040189142024821248381613794984308219656735488814063442845449237314425367324180285154368996807039699047285458926168729830986940155841311896043934125068747101053200869660205773293756957712634392444788266224786870928919470454384760374193150419936335842522635752176292324246011448299806673915476672618628706472483801746023849861229933133491150508437734682665383065623938360965930886113819179096390187075603587701152789796294096862237603847899443732997754555461498181331138139341064645625482505853007884950535914284115496160064969138095236221095525301064370738784778034387355115400807981352722482491687709652785932956569811243276937212802708131055360841109284247266375285411210458469761984083631901607654815452588198851036750911997027811760793147832689983107436356597182846530965018284482637076126388448566519016382619154567281221642805297270587386773745010640832542575713146647230728305061909269851435187372601115806659916364933595942754159412707499047766304986976149003184581970298506197355794992412382581539447426961650628162788604893755688473553429546439614184109420456000003103569134108068625222328771201160349143698038013584874916557724143016304351209311263717696011141566756344839741266406154565879860739876988718914369830161630101545711670558465865493693350670982591928989655911916135990002212831282591985078585306157063507851589256759698528017510355087669173152123397323670277640880982799606180363402968789757160357936650157139681471277793699739846052231706658006187866771177647110233276318946356438220735533366734186362440594061190487534125563770049861138484203713517585039576479227927304570060623145182328086762554097169605089550137513069534882420720659717683838414569759179932628302168804363692110066104592914340988135307072283844827764781058470655215100465453502995494592913521892719287677218359457713820923912123270094413925501455192328913238003369340591354966561346954510609257873551619052315069735613371097040977944397432140258093183992152106813894510320191944734626846898554608879606529463347487101217339394041862782793441023303567947658302778624091901738868347575237923365022258598546198568131352228597912969224076417456886857240532840893776185369652272229265473367563338271168491941954043344690838893463682084292893129384432391842093312014692245329740715048930795235651330176350416111190159427918487391357461727307436060655047677755462057911224307488368691519559039602206828689224115533918175825396301556799904460607875638893818117517708386487452611465180412809458200605057212709756364271268034221090391467007691325543372678880092066447455620603140789471082451780881864681483032817645574364274828352029328720577402739081361501867102758399592262188773165792600820341150792251181836303567667231571912112731227680272811846154305447473471353103338765114666626908281025031699866000229133229207892429691948971179548989047691669204613506965517838940765858535017983465037701503716138393423107346739437112196313728734371641589877978034460733091739086043350160008312905197612155609726784305999021288672526591472212151871545104928843078846497951793834403116212233644996401749551502954601711766943977037415845917678035961650564936486716963157376911861763919962302759549271751792879981740862081043562360840812337558164648563735123187001602329821041554934649447574234052145881879932412338286692831246552419178993381246502925301423175379378548995049855615458927728176253229646497297545823648894572112514716444243173960585478084398611517511285974248499043178717161488813631119398454907543957701638916563141789944184616699798592910107954160588064137810187384451601205868558076310658087435570973167741787349898369075078523880848692616727937455096786184117111411737728818897146218431564993997302325187599291462187677868143608990053591494123728124612262286408500050315967837439412243672815030277199310019173751480560632351768064415638877791076636952335352781471435030967403376391291355160948173745926145051882065694510401999374021936486609255245384924039964472120881271073116691678104705595640472413902258733209875507526029564876782447907097384925466621570167378204301944058755883278185237258095428156181940897315301895200329433456458293472422718093352673413145854951678177011487424502474448683078001275849890172358461320061555880041429846029146739085759446830770880097986446786965069710508288355695799651742414016389409134979392552411685725483625746555668635203782973224118834548363614411784919920096388303486909304152055779234255267689299262779527143903574123928689088656098144944262988880619554087549060478824738586110623930444104372523213879963939990027635842761799909548311568271983174699952750370539097141227257678328190307402834587852817400704379229471725305553822345009426359579756126615254031632056203198127870826242876432692285007130711151178155559050736095234820217614921882765167208413475353943743365060576976397035993232198302381930003256412150857329454685398783612742417940064535728024037856450542440971032492341218540152735401753111473299796078520562224588020927509230119356544818437467664864369674832693852600951582755802310618984361013005952003072402520734468131763903145432322886005062918014104850559720692873410148603363489872438239940427467263872440698115533661260300946038559009997866210645938719735842996865774352624144714472210182170204359111306080441598462890855597104303764428022341205549314654303918327591609344521116828384432135868154734321529920271360960901916339400847499997056759768819180575508910770086324118764029698448433272764314187173069252510436432350466004054672968695521435261582934037228476056779248043922153701610341773711981053174679525921753905620976351648052029875197778838729441269283700054974143243719467724439160880941998252066845134325778419574442285155532041547996917044172944625052721264465806606060133665769557129889868637272613356702150935215997125833415331744810978079775343762319057441400369481095276512230568909933943366631412046495975030896442105510371496583468433705853817696014762432403752452706141190454162300654670565892320942514178150999621130422751781552934666125430857751998807451102945541618474051140641822783810348422973700329089920496909847216840412433860355474942944141763303571141133025157670041761647824132212348550522037768412343890198585958304623993714131674772809887166494668522583715518959889225907911239745245430572663104972458368774170571978738317150497052123375507485718176917853895866320194880587591755150797135016733345138505660569309055720743798854907156631912868136611189936296953282047834509720820672501454121814682399673417650284716582232293921298981508256713013386942648235597767042308011189857337379340179467585739138599539936492029209627737787899238399249982999075013266445414681313822565975890952350585972900811650476492675770259875157940818765822299047749362499236820321547196558358054891789105089930493570394614685873998464578693460013580866314983343319492386922293791815302978603195684407815406110780840632549662492557306273194110715812184662271389012313995880130260165426825876902137818968406316482933312429794450022310150841093993821877691691824832865351504752122142876012200830759900025171885949689060768614199923289958187690708325538975945302153732399002457583789759713574562823229452264103043526695048513603352611918430305075783651583681993199844243425548840608681263739915244885669110679092691140831238007114628807106588045287614342159308926118787391085212077370165181758642552719613233842028376561260569146250882199397412758494510043580773816772298858735464922579366673166169479832116200871470067330735705557014173154896636243468976641378444078660646153744271995562517801008967053367982285592768162948361672570240986711750589313493423434669333159024322025817790092541543307162300029835993499297693651829771770754569379581441960511779303110311102815313994112867097858926508139992996791526440228567454614686478048090948886780669420014796383861113624431555915390606668801595292631112506537940538434159697316917685582619023723595972633726066485085228401610967584117750490672042548124453053624869829604676375230354062892251303879225542083388592435494384911668950035311029167972826644772901672107059478037680807445652666486074186611169865233566272512555336567093086138596751274870023103535338650921013853117506468439360578638948777387474180867449151807632580338338322560357761180396387225461573372523861145500974821043637628610725007417001710495015108050397478798475924646637798014172319188625431691214833676810381046895955138933692925160134812861971207737358922729984871722238268184122913045881548509134671589327705253351653664569223093609127958665293274287962199342230222075373718979328231707972383800521277657227874901863292946685406870753626785959326107594552422808472788222768899443324394634461450805325203748222037244669377316996443075286606152054731849981729544205791872447463875166960525391453387387619225575785392476401107839749842509804525375066223986982600015010150506955645522767796457678968038809765000835901495646846601815905341752089482449462993868659610273405458726501232260140361053232119891796379488724204597264442625264239644583140319056957084293637929995715490650912136204965329336929836204701363416983271765849008129243421039126780053936687774349555722025246766297258295516080714156080537354062922328137471493470683848100334144059501466838310136468014698822829032147075926739445177921162725998417375023973978797918226198820221747909797682629192522798317451106888930817374535996782710816375199012818300521230173983178938805465995053336661398115453478177466053646126572757031943595622044208971935188367763313279270694231409729217100634795355964996332321194908472481569048417279884351195093827636119002187642404502493276233466408471612495798579764082254500689529191703772641954770460195998546572971692157507056808747202846786184795469066186795828216248851674419881646363010804559796143444382747947226083107318773212882159471408905550477848773647978236565115077969326666547989797093928744986353620769545990911172478277583661977683963692403730954137664009352570451871292595581143463610296529571961357127535696156386882716086427242658827310674042514292224989326937897996097811303652899737961292191659313580299220211388225615082023018002957256560509141990528244525138081999892434798928709121124080432828467365026453421988809112786310224936228968977531582035394214582270546928311360440461130315597164694856322629238131736893041779881856168610286448015592942292382264551263701138005208532500616074313775302154436641440884285579226884417236981024438851132651688616323669333395393391493997306019264599023005453160771461351919326524986164023346108196395004035335071379549124570527568805558830724892891238192122272637926858834581150397997566552406264994055766410993493780835064729862204295366592502922853178874200914487054134337671345242619584505481744597351873409914670038368539222376465743498322626046294980183677884230870371762435311789009046444335182579198418456361271125678108495716329563082870118215514555154530218963344123876306507987393794966773641022867697171723035276759163960336102015029521253590741230293532487709118556656621398781214401391062592427572558046281912060107576637830961231722988028645846288624425566995852499676369347023879441528400510170691452980657921846587117437727874583488419319529631125613214288375869701572680800159612386978899573752329067788204295601526267488833632617976255318492143661034259370376757085675305749678824385465131943780878231865429546332464457456810629027652495121550967717396178392026048029167969214466896280257953061233253107131480032477701790173746349216394414021161267940095292746894704906020807215247685077952908647190528632671291719666205194240738872606297385305987598277218947502877979406758824220496644177795373969687547829884798990997296871742526210187595883281432138237887313729107588138267108485045398466627437892976770620549220087283022266636296031521042164368555109092962580393348987458254826831645662765242446004770694082980922172849827517084393657030347942348226416023546375645861475711191042785055805871979230317697802848610702265834551367201944750597658326377295142946245202919688377959141398619242908358163311523515841946603402000511873207323994540825564627801202976938122323140104738985037632082367961118014923311829023989007287569390268620502053521908249859788961218064888903807711637222244338003369000772465985198362074029839400913386135199442738029626694025828790020810405830448616645343976469715399763316395037717176020917723427321982956283715222981012745928529158221533844764142437623922810484355587892341196233870904061128311982504016513447937432607297914223280626050859466224744288350646976780516694419993685290652557813506094438090867967756261127573627184277199687384620901867521978356942634391529995997406989580668413432300755155492858892160973702367182552265879456749917359082813908697432837097214340548527723139883567805637067486737612163271400089744830597910459901798767377226867329187770533854698595958101944677562305613252313283191983654987608118442364193954284263404657740379592475403124436126209974152045791022660570070939595079570372095675792773541898160334982096164999924735872010127739608096044440283195397377755305183518585506925873978578613672943371383444442747179530919951646101396030563678265105673366857781484225715605599015247315823643870750753235756172480955124440093322708729291387280556634204314033635640626679030188207634664754500581330321939374876786909756592669665812165650903946041955648040450755239841530054395665712178772909929526859797423076485175611457519145105396022101370263940883044793836766192431860418845149852113836746322965689620379874241206016609988892225683738102158691075665098400926588754994578877766784665416416954923756680387587669421409417538181277527486243208943909356097669154536761962372602594300747888796169304776171422602079441648343244659493849474176180461211895492844862195139857463417834135130677632567088045137416763888567031128801732956444027805176060710634019943280231274002881058957497698043541741442935798678663294538333655254219304151986548814853003482323289301183110792282875578050741135394813850258255812003629875564847279235616713677268832172405600499376936375491865840939310987658480225909474733319241518714474227367972295102135970282713143756198942849134523621846256173953935970417612948512374706054066173920018495917192564085572207182382559589775995726400836483835546685862539123186891600611821361598557840003959035514471019890914258214630937491095255216928618622643697968556571361936155842625034196379816765210017382506742065375733959378316316079790798309897650253971254144753429272648769062507225322187024497447133316565753391709167097494429141303933612971212398127932690236830743976188047252851548043716203448458326580127833497975312557818210663456502511872257735016848859314288645187397693725807589332455065869308841221057899271741486310743066223264284803253673851326471650613680271588423348496141127028031692455213859228293127224806432139883190197277755704356019103012836870090166979415512991643115630124361732047453164372838160945099420424354001811999275815744742289144921859807259393161853169042735143352482556778892472963078188820247186453771288392174470323940948725879882441120592623275970082940951392988636008690102314466782415203366391095318585018713761585356139349688267047728923769397511707792749431257399532227326368176803679022383568593407045366233625093754364668276103500197012731988684945353941338304321430807190121141699211760468192018250036123692619847927874194240469190680382508678436326925869908906069579592522210171955558466371304755030850016300537845115379460952147476401611318573972340110808200005662881371797069178400210368042841785344376260040779215721002667164740880132117353335582129991573235673842464423021226042019055854695953903573949573776560829476155232152443409998659645910835542657354950722092115690452425062358378812037433679038694910018633453837950937101053473595441954478043648783015283323679591661133735948249027562864999130199986360658538729088821211972743723628693594224042199159826388326617492155737091889560955647205218695260952500581307035054339899848727589257737114569565098287818282946044336226807612123388825111411871289945940087426874147697914359643197657703782076399952075944025293707197879698003484957452409754872797780482567857370297249884472949083493196769034624883455969423462476612237564174808491359255040861692751411862850730651222739491112019661668064708198783624725407902494137430955123881279487058251220881693356592175159443302657508931202220053330226797259135740086425482628040598296074577995055401473404889871120699498798723913948303784515798399107564112715127009584199812257484969054692682719527989765478278263527287659711074379893374040321793395779599618270386046189986821207143338008895883191041687748186955637263575668100922035862654635068559297035122071117414535317941209226804402238321760147360030804972551481721274128601112596765846835690187408971155552541711693538208868412689814841145729324098703489455802044831218175574727169874666621952631568078569504804330659087084450724230759814692088645821829160576839657741905426986560472260390716652286199938094871074919762231143415679964494567920942308040904306531255122757080395008976420864276229076011177443968562126157611662578063106662536282699126723831431003430221979200836283020236122105009258214655550205746105198851095933497343647088994838044422677457437710221420665877798279889126967530733757785242350186651528507940355907283510715114404221824568855713041076137039912684346273271698213106575778004283170827998653244223500386722596498511552310673168424267728567790482059753090760160274501443915199642484404489797281666832992165405456941834341659949926677920390894399835945968195687361581392433815984351555396364122679479097208409642216549689003727110365055839916624703932970803248422828278310844509984302210949265921284328728286615935353008857613336269866451057844475061021175301285393138081471519450661667646017080715781956707166715483995917610358325350991308506883947973873056457776693494488915748932734406088129897171189241791517317638455124559843328144653774568630473417694728016841282144480510395771227606931910339824023137506589696648852395811045444343722953995979822530300302620040003153939699757143411302859590689201800302768236388352464068390080951252726930104881631391310294848121069825156388282039650858436915023271267567978995163026785169488298765850017299006296290956759802712416567520440815322501432253502788800937840125455777719698761542475837586549062288709148778183157922520934203346758779726165063735749700315462574162815141902072696629139366415119935423801393584486802895869526928001939196787808947487604478060429710913228636900575573937646653429088981816815074925012836186833610689700260310276644391530919931177899959943429575917592712752269122446897113047452792500465203899082611298826309928994116390442141458780772563448485243065043229470631177604406900493695458895105540407196986026922343472206078894434451636101021447515081593216336784800919933421473825663455860937400810698701669790278968159257691124931901704069676284206914780300502838077476844974203973472718835303929930974632522150209695702012631191276613026196394762518321143317309769064151120408656018607754994344697391488079994279910254965637882002503071514041215309238781583771850851112808250858729096685862453094019614645101165829274757890683336549470351391234833688133813974257726279273178123555823577004752474961311481633773307479477939932319223362626087253065521128457859666901314594888307549708507178084285405613971966478715715946372503984064551363815954433731253226675444184261910996499286508845746675852457315286471577021815533509086061145182860801434237872547194148280723622517320427013755971970927159119178910021811953721350181953629789490915531421659360119214804925071961111366405213635320216620460764401177925922703016909126860155403705358026087004366910724952904525619105463491177004172664090684552647619294866479608955743497551192112943830935216746331118703764137064987836315330814429214624473861454039678179162241117558318712202201930210330618054088686267860845992838795318882881514124775624175824996781098606003842033857631657882727179512675692741685758981593134513344284881296850482619583233052990280728220308741324694960284408492366160089053756321539370477385464123429576681400212784266172996833910016176173747769983122936365531563081910714319430656598541116190862722602406763387639662437665077026750787210931334916990053026282609904170799184953717049552087435354375840257439399411879294639724899477389302563560922796223346625453654574132684532904372624723422070618076501879754965640631722090798260023302306343695968933546048733872569884417225541897744050119495176650409768791653692168589127999124973153576059657720904296509720081981567502535982916168712387457386496183249381353911849455089343289247806282907240789502197420648871768289118404108404935864793551046372797460379716638422657876349126457692327835212202959538210704487826189040088995561268136967734709633394467519575335168426554970140819756432834789863640942350982809744832350428231430783311841413563729096731706641955959757104159726594733777944114191217371860752725852353435051295420497029941195331699215937609986736530509398245949888607154290253385806861409977959200941628496867064944110253498686623961142826185858656367502932827432624548993246305103880399786445740296800585355015737440278055989282558648338063132997337374146838526668199961789494450484987540158805145454778515029762474981423667865438139698366458315557623565887763191090796022210185912424070060099905360269052113598303248436611052120288495983747939095271419530427529099188359444372790194468670068933096696411332694569311436087281286870952323701552103667414737027683882201421205297065965732918051000098376558643691236984564817158433890072257339479402330950478594912860148145725184514334850465185918428727316466390550186674218268881700607103795077785827835101460895192449942632017257147968452041499151201732020697232124237868822356770631406276968316885131317441398535665266931572684494539642618582763611955962011800007415491643291915118879936750872970765771959689823323925646231557754358840146869360749580243443381586460337038585336795593726265301211603298959887019436117436481178511899024536445958030285427858020697362130510974577660788026611335011342046196875105810983797566987877801581961179998165952532953718949922514682575055286234269915151671330217543084465589900800999782787377916661075946842652470308326857725786833388871451072495754746527596886757386366082469446468505579278050054434874909415955239826795863315680794854019903975853344361148697022440862831536159056200271228848984233997791336503005124194708892893888955992453998702076198739274791097341159084441141186320352631081865144800825881221797851006203999387680346474450355169135518271597662145313045714523210346275058458892572106342587863542782516777886439748627434157724320112789302433943641807318430501021178342558839386862896010844975064269645132151636086772356866243210974502997533131360670013568412148285095783378769541357864005704429929505606280249265065162041229891405357919490503277244954032633344128342476496104485270400882128789488599237923163289776576499996572321172786814705411942724491747248439755626609164171263572170945414169874920001926066520382651086228210170000247350013585543185807578087498245037160327145203525242883325070488809459583306893197604095423533374250218571088719258656089533719655068683825382236378442629554120267102625899224425005576526501196973230194991848388933586360172890851526990948449810609572469594494688066015984816720838048353492451644727334024322064590541338231106148712190601596923098812310389193888274664280629954639812956277712761981898822813969314388985623429195050480669558775944849812106212720618779798622603336658566930566785293250337899806541915047822938640478286400349058537167080602492459057264755763956243671963720116540879806708870756285342580332120463902754457683629751733116598819290498228526941533120991805781279458600509779762257545488942757961073352211929866372520110521318159488266473694322569761917797641853161619155790962510836194105316724908654873638840179344729523123654554701107605867482917127445351173157588449766679691754943694210970603570466069494771406300488307812000167006482619871731879648315063628085914037702865546321241345760860826910731384735499317347572578261394034721399227037407480478384659298889971211174909794679237252937507711622391753069067452644491521140019656327657041929797939233689565785951707267704942641358946212268423393391418345844852016004877768388216847194758321052263657433849848504162080261117368581852909584917009517530526790971467225060917345697885814293480270063143597222795468650682166831128236500960131904429754992482190409733178178970261550956945719881396920948129049318934790892869449410699295397491636848724311092609012676980242945813285073513121574079135313368481853408839607029601931068948989282941161575417225154489060532303954272875311720854470410780212277790044092160583484847064746324871332925169031747062658877247742890038105068441008235681221014306769393609641089205427479502666290297728282762964649849522186263174313609405821681453631944346977889166157637508090468263349012854588839248910080967893895707780561067585237395681526404117971111776339336480707804355593593912122393094515848857027965482165367720709615250626411523369037491669729142125377880557017965767117945955466436896171652433659537626366981765689121702724474369319533234002200556102574678121447043998016370690729134242091995175634160117943169140862816038172775997281687372741187058774395811488503754323465557308990164595324447334802425524842933853226045696545416162573175641253182066681085987073412188390760210786101193639826448200972950854797506229730826792308691151945971233521980994640745247117005298126923647209714309835125966763831456128303779322443858575069075301353277477506473356338612954501981695579489723401829423709864244268020452297059060366607380004479429409176704082536450321535883049632132709264693425552084310052334051085465445797187434181120058505184498697434359697373163600530906540428606170945169888042852302234081399954221723142725870734846812344596251193763756625653663718380816222303373187804353764127901422736553754621735573354009290754081366358328450121636319820144494445912463651400487927108956496060144224161963540366813458929921217702773702495359129253198880972943179397567003650693865165193638784954658914091137787105349616968259742065101302674026446691787642156906211251244303756009086746431923097783058197329480433057556481930867210538702543820141022518114672561792968014118535483448536718123379294556726890211344043038761812660751631266795096656445605005444004262977834678219225062412560464538206385848913541112159705811140693291409712474914993718353778476467967734776330197985774042967767168830892601848975298509569486805081621545022604666786362893580605010685093402087977238060238205703314329177508888422586404946874872947729881718355029210025368657628722755780962445857738422662921249113317976603047917751372646072659252011856530739320358825176823979033818226669797750510259999707977009036479582353634386618693127664166824688974361134824861288400841409942004244615892796389852233573535400035148432436500051534432077059812823612198820833575768867427342054031653358100821206996118005430949432416407190823038174300178363048551291329762121624090216514132748778115105738380363740153501493497070948345527781248344546160157150421625530299591391714466095624757112211713735826560699026885830455663008734616235184222500853009784177133522123771344268167668012498882818912569445565872130283912870785696624332100219483348900247122576591998535647600264137228875980371963239719500980062813158037211647165459911065885419815701782585957773524614172682027865457849259397075067824407164912546837694208695813069304277654534806854862058296278147727650888734892214241815870859159028073801465364444124367347869473086954175313205422050548851678776381373830631321446257067740773233400934920405815614283386691132711084475654574386281353720988156139073531619226470664198903915217240247153749148576611969252459894456656513659560130675264057772704635481004677363210738021383298613669409534734363583029850326327258339487360139109414528249116611176911164948772717223400044558993864229860473540027545912011679268156723760587051777624052868162365807832534962354697388493420859348907971673277865932123170264879887884886555857506558660921659473222150827689633465634630895381133558000709670718118258312813680312132121511463896996622957471217315722610312593514054547705551044765520705379983108830827166501012761236360122806451616898037088140602419197470635710636890774193110971856495703558848863103429541806817454061311953769238633328265731590498138514601401601861244015801355093787832810652247189906717500522460480555323160679647400115504845470188341283955470238409588614803955735549161154577539569818761356099364247821296359581997034350293471569453463715049217999759658565357223489931686929561701595987905877889816104818893741481092237984186901051211948683421999095360367137814462910076969199950836037661567681013568314690645057388386987468885020864550101360197677334608166607220308498054703277932469706119409140831218247928988376455780429225536845832345440019193426875404261947520392813296709731058810159940689411223564904914514260104174469148333081076230372940583016668869603426037563869637520578760578738897200784938879073269867451471139232204141083493434533117376786320670524491721262578906255594900226718015965551066121417378532936225218765776989497764339864956624704946618711660373058027510976740045740634620340562470437677297862989027643471538770320358467386845974131841647448341205893347096285187829995393510902530757317571171058359074593269281516690483288216911922765926959221864364616641198126448520982141503769344667527411111745199799736702019666026248190773190588152083927040935266260097231253286918722835949630674530811266340187990716086384208138943422967908403775133177553401465152815173979796967490201093365653734134303023920261244748179812444229258968108209184034181795695488510659735923579142589191591045844653812225470150498404258050006121953038377878302054843953852794253251390960613319771893463122853968010521968743001393634982472589874927687204779749175320734176492264698767049571700356102499115786557577027830185495582438707897129085473407423093576869147256118484363820357530885584450911695015044895527422182732437587852097336312492191021489955131444598371547207402141808892965352831181951054033988330707635544449877012687563690132105203116195899778533670951504534353700606285211034800699461113647206182856190570338141270814998112207398748026073783001600579531388138232213937612210451314363511445408878256045760714846674499148836412557778754696057920018698659465567170795536360842202660048140724459982470426088404341527316109237164099610042702877242815484192445915548770722578448193392269613651377201370232274870186729119606500167620286133565072810562687915911477519528408792760479212029284592713590509893469240782195480463744561237592600282438143032838878432707553869332867547474358573536392591182034547096244579086304151593713659563269335883914175686983646688598961975231069669138602553810180209718908586248183924156499048410768769883101389162431558738809802959361633540512650237807117259836757221620082441274765376503539059203273182897558174616858407534573064981494944231272675052316706191576460148167889754414352821581017362612173396880661128506558906469392646477133806649014244013951867105186258540838201825665629406922431250929983674996233038090046868866094334458543812797685075436947350697323206115989496319254168800863527012743985306065123709332260788908180949718812154849629052378629325334090807885942871798102553622330495789566654566356517255038896839831996752539863965001546622784535342067187838808681033344928410422168284379018032141841061624134192293390318485122086311947800724978908667193103153244978216726011793787830591083031935535246631694740266788557186447642676012284974718167981729963313132130901125565036224081328525744883055341663438021812042683379469899649958726957649708082342164835062221897343827542562095979269460019959738814681533255303957007616134631774789002058005684147732127244851745916765923727090887202074487030625934410497208198294770339228288296005029342334053681781345004156164170268218240464426271747240924002821078214626614552024391520257811072259140816650581311971144726257046474340896237365438595483808649363251985505577920365609373179344893252840846773617130622925548994848199943469429548372014935786463332690865480807053708609103200531323785989386013994659632006561871012854550753399284511244859341805906584522515561320980919279473265360287006547407370883416293775410520262930354252012894009586494623217648332211202996744123912846287829589464818360730394073253378845349072165109692429768603464273065353767888304696175972335128963689383458529807723805083750234868800837646614186268344554927810663290573300167010746167681373098616949873098973492856173375132757312362821893692021134193046382484013349092156794829828330698462450039129651684594674968502287173102508161856266436084599084515917467271716381695270681846744116173499572804193613856248272414672931876267970625733129214706072061604748627588001778648404521896650985873718238457369821332493868179836106362844991049229100857997889187339369304016890151804453338709960595337064562572559934973639966760693248762165768358331885748734690534694195677912307112074059509717481389735941960262582907654689471553450192705173114915526918315646191509659346508187872266292839165854394268002585560088364323730956080090564761795252981497038717995916748283212528408327857555264822641876211774671031233308978012784583761391876030466153582097102064088917235780265371936916037151393431051383003911431893577795863577188300687989513389538334613689579786831077249959304882140852536181710278413892169469301959784672289075650602287938778650318490078357796928081297136248487574966668556467982641778614001360422875061086543576082957860216694375215670076119446094302898609548805806484965153153504635158047875429630825818080051624866311381214326696339999482164072788274715058433993340596215798939222736090976517890399901797429897559311588561719374260497034833244714926356271810723510354385942376552264357321538138728523965682420939708755965923699065959737717632429809431958902608786504049433775116910973486980707042722753029499444278615354104250733681706951319967472350351936496877844178309271759040681355113800161793936557609552550088730738807194000271359739572376418655513883142276767194777063506547095892709698465450935508023688171232745691088224906920774752464163468192961205920641805266199898881271946066177583739277377692740860484824780229995319921146623700583428054780457756757809488704190016732775060886150172613647042520507949117044441541617415062167640427753923920210032026599103296236499665565578150023922724500236831296467302892379039682045414578765297405879268460647407162899719705251619076048488145731069587545583854186326630641532000640892144464584040369869520781462105166643388345984170982446853205486585774192695799871723828533229417331016755377597244452789879573930304608767076100622730397361726691113334769630080390528238992641820186650075993976620180613656954656840628010173262428930753985724911865883377504485008352245082264176181700545478450782259197384815157394897253908501345669037875819581299471237706369921407650823180904621659673280002908821539017965506401380851499999705861554993857628446942793814002478321830998810790289058174846387506677021851179783928633000721971197612230780627983777174815859491177471705893675515704284443718215250724709037994749106398757231251035506315941221684238802166059310767717106121996513282351580885726882375675692582368702737929427071010136912412281966949204461859184047318358250373937696349417873847424873247211484826090642776827215688195282408732672760048222869706535954245754848316411081425221801145685901722213895173886274004895158982711151728596033068763212121084841739821406404353084632569100430056021972504088933802992118282022512772626964180850259416419504979224979920953171910096674200014886807903327697060128284605425812682360439272284111172881678444039250792440561790390336506542080008067681070417889636421858462056116888926966195832333255724950365813112909682729367027289600842953317316401567271625743933688423572967752537371205050736568794984629355311589472583003052862241988501311945824109284839064803062858681512427829554580983577143906426725897003946907563095627331374447437981671071366205563557164246201867410139613356214923281696438307740312053073791403773634388212455081059883408356820838513345625647428187419439657997534872950211847770600818945312130695415892878791520332658593058386422435699516394732415136451419255382577083901614928144257585948226807648414217438971892458846436290980008335223254459845972734685328920799059954465374929349164364909394530668374715776498666763196636607840951943752087395301302052293779270433057433229637284366040790712339219041536004178975939110409068552012510706462968409785194817112830049534793192474562807039953838636144408261698668865278002327586988623953876970772947672970883735627136791985721334020705446205856611570451350358181723144409707169014220448255029495928850118249242292310955298089691227870023649245182230965280389002460025113038253039837493442092288100252103958019445185661357821304008100519652723119781161788956775193558597770292556615210646467885483998743126464978563497541856454024049904883846536600117496422168049285570971831463228467728575752218348263380486455280326999890728998067010802090591278304397344306831330816061549799544422464872537366648178380097616038890002668408752610688782789172875700819489139044223567248204443221447237337026453654392944466931198146594282604536223320332347092572954268043252320455570270393036209903934402019104067446657573105801954879427230307735707409349855300016500967795469756570996873013796515365151113423586489365803574417046968755161370904276914392473641197068392968903947317717845262479398702483101293687809253070519404904182164655513687282466149418797235650028983499003345887094067555429272513645050009530162862174631062627228456905446694231303941207150265628749133584135328308488249030714523847679706570185611435531585680939176927103640652999881592136115519834843385023955229263591626332324522085189444688045759070714432081640352579049570251580825847124074061129496126005771368016542600228181504167097271336451940452030662352417838290823541918649589029049990144630808058895067165107166814148294529126954760406326939234195864706450698220177230371327493922733846901260240008488339261895652613369152914851718933705713172342782527604649184304333719831740821153968194870122294621337773889233524978913605125822316341586264285907723154468269048275672912048701333245905853173567641622555973137279609582311918014513244024798758096239692242871024364211741233154893328261964295635681163510760566716015549892037111444021682912537045446604638026057634600907491766569477864547992587646930840190686334396537760649461332646501310038859596439376400506790356985154248237316745574389722838979802875784060952676099688036394128224674188021182742685412592889394728569546740633153677702933778661698068354859587889216678511947976983650097647019077663544676258333502720513642309358330967558341080796171672346213752125548359989564368671883725017170386802785358592450335055818457044500672612203242529872961439760647257844366013674035105307985258696287610749093444852487423656379540174074485777439498467196314014386240936478205040048608804649552471638541112200461509917467362500375980078821810279482811824178672127995286721218042326106189640775599205344614664527795961588735767355022830885158781741415754703797010687677372538171562247035371776279780693627839258362102197339330034703075209748699568634016248475094194717645834114511982584145184339399705631230637171498289692046192296915681046151117603563960205853570814478489164719537860507030921589265784333330947519277751949462371773540164652192626951639440357472363988314363342844384558160060566129283284602642837479826552265249520227215722569081574428960395277404570606619530593618274858764840398302104956452553129281382139412454782411086227862296749520141292211931829754769052606322529235374945286233690265387544833853186468034553734243822457293732544538774765086692761874775906336647002789679480262179263651025968165251456020204715584653315264305905070383447963362584346969610986747203923711700458688124249063460884659478164803551952847036587525229514708005224460545045758890807712228551405926994732561863095073814912864239022294148354692214694060760167616994521616421041152437122288985998532951751673148473427088706075368447015483240950149868144327109934043051219359575069069897095591454042071051984298758701621252426294524418779774342370742329738365919974427944746207945078186500586441068123415295199431757984161007669172109062914046186524633158047997237255588469687312778960957325349338839020163718554099713415273879253478947900190656992720972672423282068062063334849228073902580412582070065723587975760099684564224847640563372364785579015765336572518567312351714606203093219484335322468374769964518703109342033762829770408525491164949291739466741125949840311585252593953493903812234041420078197031697949830881328102933273794526063805647251586999324002927936583449894196595853231831634646395379166608075548114167033798510175757017279788946909162000548063237500541187234622980799147407855759247984809658335233453334578232945717615807252795341382808072563145714594255926740813351514691887467255757049712073369323985659283924115337982580478896745221496388375784696714267876854446815050236187860876784463312046024096017166535055501092914894950309725454255204122217763498338083322648818416186150834864638294048110765491109008033176203505647361757910028326507968484518518112456536587485881888266591273491505107560720502156093990385935965719406245054766106036960505326014124474562593076091369964223162021679344653016736091337676599796442102098336750080695571036519422001267348122793530780337584847482933533534034058789384087714519569894721865984841021110364061528598573823316897195479193219885217935033769767986997643701256617679061580654456256486084497961090958879125621645002670545359393498285365549215133052840380781339510952082295760605626109467836758246750889521501335515719338704426250107339603386591615636510509428104613699884989816498237134294851169500723733246475573214490548386658657170392870830970808294805089416071316512025927769952440230344452893536767349927960188211808157363350895178391592235842132354909734526208120509451384320199609579412989595877829854983290209867057868471425700065562829590979842268928994300143287063583177869073958233505120662568098521604644222103309529974738322777423801105519518664017782357886676951589893200468360440029740130850945455217717161472500458223470542914608339343285273626523083717297942694516806684642947149858377844222835314649701954220009845962464554216592720621718391752447513245616027780761259517617812354684648442987496212792554376831721079305604185314384393682786940500313594203030943395030341200199215932509348252997151121143683222647081789360217169066680425505608912936450284102551359912484909230366924187887654966543940870888110488050484290016303025627622892951880414541391718617908067868778565166898770457656258999701491446852424057512541885442892021584570345943860228663539553891810750897345547469177180675834794529093132027957566587816125033726887396189133707396303463016895146853068248607418310504488573329154479533976571814797054934333367353193920637443154267259263667500110427210049311764700002360499868419982659852631092514559538089662599906437130643784905210581857823745403415070381034395720477903672831038912392258511113144150138275815000435844212562015152594345278240083375924321811986684741780975240255578486424296067337162458502241009447832209357238501897279231479874462320509565166525998208759894808269844246130809329113581370119203017635985583783679097332410162750190410247066737274957683019722639390614338133183173557197652497700479352485723082108232315976065462663970590909505808494164538840927650288969319430832617614455133786901563688298175563531669578054217135994281269211855340488589369987663423582262059156003548299052061112926127719062725057708221394416484407969121685765309555870308035423799126660604665550377496293701610162130290020890515778589598878274478453880489024113627851252604902688846649245629619463597982715615223952227463066686667719575101890626817359490181228087726834746363685628696049855743609334647414615451909497301549497723961251185400058686840529258922309268518858408363150543174311582216323967570502786654737229084641290512788991603679611192350224975818317650690301637909765959858084971585900809505857458276191284010826869903166591632974094506007193959468800732491810437316093655690527567421502474642242068002682559653949996963679587711019876136021758163364335019255393209166864426450435022347975996592785486194692824884599467107781919138969159416078166859354318277425400783866219437284953274056754744509252177133660931161454475920034905153801578122255260462357798533208583515053212975022573040248279213183119523696943898953417940851940611715671545356483160165174752784018146663107800470534530600411437273563560880306821340611794335751115212704898555479732651757930636696542953818312272619175714662246323545359119447674921728324602018051356286425958080778530178233292910194258831365967525785122092079011932957611003015558170845298198199726326979876082485554237789129085891147343669319110839018840988222849978892776276078881535933028716105069876110924654194345818691293632992917824429036337547649222719618930492857162163453370635518490156349205633852218109164689296458029180535197109398367612513350282422716537148389442471831093354291517745211299362853211598273580319298991706860363600165002392304321212726654712084107246452202760048579088946500845594536348887030816911285423679271964966274002583053885294980011603712702720832799287177768163321433789728227178162672516535195578611961877957106074815875400773297823850774662127029981721763873527645175753965499891874000481203894912990489116495308812410265610397956963041757216276118016365776258351402451403270447544530287173240257308752883054224397248447364598563239406240675392656136968349622181062144208578901003272125502598282903699103166626611843957622649654756736197149240115995164608537942051365428187734246549845037634685609928167672771290516513994564972713878119040876973912582738627668474710531808490432408157640644877883589987100020392318429823455199430128699290793917965432165472668406158374750664015267278303025196352587277169254233128088158696158971302810617386907723784205564426724646522346215861393113495663280649587651721838413675572827005912153432258727198343319130922859306879400785762330894565394147697810573912843702057236861723500461288619931086182919276069159112468052760319229339203497412034076181610695056334710553781785790116136126806011348817797662289065694024434483406161796026042968112714685662262143885941005750863000526395793224212193300444018119966449417455272090837901534335438037567820562707756907551927233111561062410767302055153604405983533251224555014098347199188363314330370470228128087081431878513815446659785084402425408375460816825327598186627724296888338988652496496916417587019311438849774677554762244310260546949493634454851805256664213127016543882003325699874471752484157833416819376804528580243543856867984194663133217430743958510083194611796751175780904549068111035022029810171643594964907553515193594898808039877453099386197580671752103863746054453040420263528364205000085535278370895065301849953556864904807460946419177989327978877695078029363195976270853629889450356933113487481700622791842517979779259082399838273752583527682008605601634361753710543526794305768279085175941499432044660730142433141076699172401771781827461180240000378659180090939863115543608269280365446729089686757980172448262664104763049061638757949503574949433227044850645514671280984099905213971821529426863307782775646017699282456276717343596166611069620442139007260959087953122878064406808368125450566817001351528047510453158004752057162027131620513381827483376071189058595912556737155583726759332721894526455371085465867476082442385983915824645180886546488751305009204829990289646051932766428766494030752686936699159202749087775061532363198828625771012761698713685563103233987058536357179294060754340669713357657205628120254653012042335928595176684738426978182044589470846145845590205859532241293547409556979423228914715584841715064140583623492850300230077674411632420896305127139611772960337380170767148475486884381065399579637918080319030915648868254508932520951180981469735495201613031002227236177574847112229463691935258213446681408805049168559514669884054967333445736426971622577375960448420364554510157332138939525019152715175306635139530239942045021708823933807520999985387588929889096709858793985836899131332385025920605265943939697591082997440671085671080354181848252080832280327125316013577145305228939273872208251024193743127072101117992902609032137833591376808705358692109544476557117492420463363394887530812644340048368951201838868493362236509756762533675336827150159234535435832626102633117583429377700850040066203660646179058544501969446300730367197982608016793574325544696200233975024831684219336989639609043798478953072138628363026377527702005933048899612432708140693950252399410264183681459090059790816553386050458656493071439482408334020669557519460536205768923273261402901297045765039349847970917406439700097169482042842612337868832322017074021491828738081028342175888956474073755654885839597503629638675501921174477638650325853520814572772040125037556103471777907459509447253783986651551771406938152096534709449232851116823371831040999517428125519529614347876122387302429195752389683958214598027943170746297174776480685876378037165030646529062143104102845735214461943829806935452813138798515845416623034718824180372897258312707144893313198001884177954016387100551956876431626483096572477661107536299622538213060861252247840295916974475994131364671707862218338739387753325834042032976627291747744771832703598181972486340225026453957961470997866232239913034784256275008992997605618148993759803829358334541731409225431828021727489515149261376705652629007718725934634688348914749248556134245816047216894514944638732460148198080512331937888265835227392625947077864506530293408254392415896787143013252950781086736565973260362096377192154362882663368806821061621967773335234793518481246191043675143782698410614927817208189048873289637980470157037202410896303997897770263475787675401831568551845872818266424567273080460022644298752474632840246633156801090737792991381170336190490820756529748773697378597453454025542999851112371392121138866886290092564981273071432899980095416316744167161262468748901098532215174608817977298301894419359319441808142429284603332646783981841171846701605800914517022748264889413418012164244113961791404745745922300439776958340278788300492161443609432447064482619372384875392771314064884928479767497817906202051791134698793662103479934560705672057218957443079096809248703956111136862935039061838853732495176098943600923193248796518689428472748900774765964784781438391172063961141626205921521249533907304627129487494912977157748708746854605309290223809727455470431080307865776299429093093951661379337920128265557691918639001135489357441305483282828777752684704358141147162702108413897996329324560791903761919192535947598784634961773101563882878529470231148618848813232387760265941674343766643695351419960556550446338503025237360132823760755776126973494369950768591458510817177306891385918696971936163161184409976203092693404861655495516058575563062002661341510796064707739026656636811408967731252866064014826008782794119572649181400965397953845345535686515229101057735516015001447079724210438391298955562292481204112639776026605895716098086855482241591734548743148826394229145728655425567630310122931841718642848820404330217432344538114420427235563174538849385918189657082700941506835367297305169352926246280223904166818853482672885969019298449194694276995832602081271260179697138009452647424571100853453434573300154373685366926756505570994740041446283830767009140707920019381259889249485175719995046646396124324605588272790887723970833334817115772507656843667567088251821084641386939632062994844390860489625597125036356845052679900120778987766789101621440505321970272377955386580318255023837353525300899609217941751890518196155804599206123727571677297661475798031557517087686956822259567934335162198355676139058968021044059504604664880381949647019419074706887125630346642295754037353063055317054908366104060743081659255052011766453942054269355980556049898914041999124615117086199441332592467814073176682115981133442016839200791079452936122399064325225636878325347870038069944502615433213573957562582737890101965859096554379016382742089988580617292748424960386374711140345534654209244585641440106873291681279036776610063887658220851547994955311017560843721815164873084460006671329390088941645056075491057527457129652618691206783369632833713330281996045308616782802051395807376803314145721666929910604684942219860316797255900127914478750544250777203012497055036382697131436520767270229141952459775942972800143750659262925646350643848834512078756341151040826452311166505599729103260979530759550238752616831013700332474638072417252391509161750731329153362504490836511646458560520712622221185721706059574888523824557921868540873935786033065146692281188901351963426009024676425220747892349751393820528057102945794837155374381416253141687434775151933996837739968898991903989078960259792859258570126461086049110541595315010659801030262849445364815632394245197666503898307822643498350756809871883062762989113266417507687707998901217330746918057615196933304767746964947038495661484781160759964089690271802089319294315536667350305197371687843294828810644624870606324280639820532316182995157536187110314725273064730967925177693515011385465280817274700652017772264403199524721704850248375913170193239712035682410216927734845305071922500023606409884979223340958873778438307991276452911218194884944238785908992529356409921496684662894929107854065322016549867566251140008783615430865233141454374533962473183315122590412929363073464601682001146893810962078280940626331546273234526285245845034752973505246516861062069088486929213965274497639209750017391427480897405300102939485875950634386450737695741850912365972376287724687937888543759176617689778430510914134584458735141743544357078271261522305136376529635159984920669317832569849036049940420379606738791618108469275675781790999193408067624814749387434551391541963743952638146437310279406418453735588971691968043420273575791907877809212438594289309025804300101916694712972254786526123004789197771654005014829975389740585922620459028319799493007219560986336153314953565385668058097733177933241574432041691348498040487897614338667626193663961128168125854668127185248557935163495139156997338868771884231581878526460373698169004171427254888776464985641570008106537509487876885477301959317610152080676278804353907623757412783310178960428251532437634041421400216722469512657887564567092693587807870692068710207586938049611549361352358072966669566674304785272031722470573098985486600849869400355282207655571896722253857616250463496111845812712954949291838126423858997394800990888783787329627271437286371581829884947690075410680358955285539049228025498879113452276366325098642272536541524032466659724010053128568616704819664438702516597377730847341578658244322849448092248453239614759954635882030181313428104165336586651810702066968771354934204397474700328292195510799046797626163636684305218063832027947132893220707986940494296455974793495213306639344042125564902691564233308038533190455987928147724703878065724347451250146858568724621277354918525893706392789727310119103039792374453591284891115072966760061979196710296897409490671424610559998927308032845623388384754161453155280675808534421566313066125839753451972169165846529866370849128968398076874497893462098184006022052431532552707819754823278751786377667042825260410948297424952965864295827555017447295084862975281981337788767801634025684443517192490120677054329368780251033121110027849684602414550694719168146919267401497293539519204223756350902071740450031538002993216562077060928147685045363797948211578381213826548922546285449058949878025912919527273762372249767573989428276809174671841576976862134145969539179294883151360512627481683015799476711731521216544733789377505300536754582268046479781100943572871974917660995420147192464070467799497003194273160853101608007726552092350266725858021272631877990666029427613303172069573142189731669326855374819007994037849474475550080734436622714935232678677891462495432106111300289384636635458776207329919390307536775760141302975889563488541252263787416407149675293950186103136296894273021840765707246166504569035017279870543410499510260926415130176025131250564529340324963613272024674553927023242365984175468148815017405854466023185644216285014716357899219530373146335040268865083259112775886643727802221588560627869858832147025059724481179105513179650568304564148843453141116211983861889682878746560179396975479771850049269975680242719649829733026374036838076937974093091744944061535181132726318744710081967679992267500018041521702877888243967091972100601980740793794140994865464437703929647474632999552276549167798925777273486416658228641720197060599275202231485690340606910002933679175614534683054566158152021203308505697509039356547255208967027005469578387465442238254369646122858080344951143053252944518938148743681029231014270974664458646277403343705927789541956373522871153925405375099284043033323444333852503824680955825731791374836629055123026999260080311328488978916501440177970652698034603592866667330711450663180631545905362614195135740475638459531519643828466770571087812803952612390589630158927303158061239001294221957031361502889044547369210783176898117239415954998340602026204720040008608261342974333309706785466767055589873297196179936254581206234817295073317149687216356922814717094490216523014180713473548280559256317297451712526120163260496719679011957089831322835846841130999258881611909918253736099562078118197733099476238688350792133540732679270537797514263756439497000373754739403942183314015768779392247477864843083397044823350355731807214389369774137692422566693352366840844899820315350567112322861149350608467858516609476823056528109579130617785188825561109741944049612115219984489775989231263802587920700578182252847426932925899159301831563574181372738882252582574934875664916449380030328528349641791604748063719239384063537738201293729758127879878912211764290212062896330822285949548250937314205908750709351118483334464807598181786952148638794028650633661529966621137699066990471690338349729694118945278128115177411107708812812765022783129482096223112350720163485352288423426273096166102906872081665705626509044934922238001531040723043890862819830506614358773781663286263973095776141296792879826301431347218312438866096570061566142075153482197339849677073896201187639280576232761779360918405881224894433045022118412107153999223192378256810008279196549551611394260774071752435349354483805834983887320659098668170611105189764512421815992298012593845301658126862040994911588171364775356037366562239046295280927442604428720045126811768075804445102500949868631271151867134564655778433888088155587765991990973218118484983338180068675158040012866604524884350511667337555887762059028618322829927061282351579667561411311217177778113853611961245576570512727087353853239781855196066837890835562626446424547296553829862887223156289356877841696949941423501561298563190304104327466391605742083423803530023724016967860880956357986212511198851346044822004868263886706605817030235640934597935155519679427820373350492441281017173021186700017633380520078587117310453504333749096781437631955009546573258266908915910241493217688408287574239169178565091010103524889887909153607505224750583475480297566288633263862466151535583267188415318644230813820997191037291829207242452101884731186429976476283739434739435110566893700518713815672818501961639547742193117245624400814652840021451951077217992503669408191111393901801278282048980566370229732429111449288172952354598763989343551048481525850034229617897669001110314285942981434127339527416566092896819448354852860503599835031347465904828907787607763176113581432866579006432536838854434847411743631381990645935220049953190396334071194445162735245040719776036271308986615601215401862550201691033323805744142026509841179993406242496953869227516851545869526269730818135124583376793445740211167614572039152722993137262725778341651927071800341913973698742087443441127674332656102352529903073280462508245573717844706160479689633159586804983249670058567111588276880355682376879206157939974583510743566863914178616433828622995634510619391762997127830635075733035932086137785847170525005300150770309338187870146134046548160647168291987689306286384352922098405305516818979894299802327915860646525851272120474021444729640640954707875908880969980190089370186161755786328777705447677179452955633466217666141296928811279797081709197253220530179344649080296367965235223356624774670747768361499412402521843754164772006782091095184168422900183251633139048704679221011064236546943828965962290214015750432931265379423972239171451669170106328003899813785738987854154366504115143039109938038813094790034510587356273849558677139668807905576853199402805709093177051913222042948409414535680714914112882921529564324685505791631605410421968839706062029528911037412946599536489597466017558332536246984784655219827274292561831661192499154090500696620600739686647009793189826689326044394384171145563742260061197476739767820310852877626332109812975940137408369966312432262564517659311955211353601126547898346581345053253851918347039034615468653801117502853206966649546686295166636689920964397227453493076323608209627148264927823029952540528453507272730312663509904566750958430044921993863773572080242664179291282886355057479978733543682990796177310615409838795207634321994250595305817981553057881844353994009216645558764695744062971705703981194825224788429834504596548330459918290484383151346469996121506220497896123563459593122263701131753553262316166596928033197936518369652569954427856162063299843818773049977660063754401348992794299159003999892783371519628640230460675542684356868166516074463781295710372808914058670905967257900794705484589665552344349400569078401531999575540597200635393429473906019717577202740250568666621574112136555215506824880829416565610741939915126085045758057207900853599332477151187066098923851318523385368610897074792000295191693911609169091360731999146669706875918004834317941253267830372825240437367104426262121183973949423657059273774129191509088694567154430151209996270198288400041137586491860806565546143581864710218801387929668686176201523851579805166456103189673400460824100673396979367302909571576280956776230553344781103121571508766943890282489711303285072385726917956665764809502101399538327408965041531518852309025855003984298927013865905074716911927912603943811178471203436372901760953377291738801280481859886105294451306036204087730376443498406475265928808594384084923999302000634139771158641108107242918724663716479199476900143115609421368749449009766330973557796928566404351763787541117867663221820634481997100026834466543404219467669621026688605525571714061727969089494491365984893749822400416650541929008816627082604880558186031763982529213673632679373541074311621828970504180408696749607108832765011321714683544856727754566340784718211858929883838364046166223991341759640158600376350875450480149472707869906515310637324096969484511328858315305220284941617675586319672857304314139045260059471918103677633308444917611591227983839945287727909200579575223155058466929119389523690609448963537817605047721930733401659170555632613006899555100911971778959891511752896728464323843685225490354689879837696471588816908608130424985933209876979491153630445206738271956947375859762315294421691458499788380041003525852552963367162326918867710233619412610887839072465063827800753864674949220224147435760968034349164110658916945808527565031618455394464206567990735659541151514466497703950276619135446782663966014047056994234305281706980891070880651899207574763998755366043914970291940713942078928204566279628789785631012031261326666397586804944757502709105409275063259071148033943231660310408388565825027424623435600043363142715488589347069397251366625259666881669423960270880248350374666085091501316911061707413856255485873723889637382149298518216215209025884621451160721628560225699352753338332868002991876502435340333287217925650750115024373204170780656245873248891969856645668664773946683435879183881381925979102936089081982888240353758925864044100562930594560329679660937831683355344957950127340079580193372146595295110241177604938854590172096529673228229702856127579963319269234195389820449183616527645401761826555381553385293246802524893877903977745513851809432229025018605828449414972997311123263406796812344484816287306374740145710531196473958676827952393481915981045198122165928415859068909756881421060305337219351519564888761236733603809426939709902424865475594057465631086224402280044869539497272944311602720887463293237261627602532201656078997889155118774593040679117439436476319532960481473664217019823631935519736648779752547410146809304725584998790645341139463902784311945253040078028945631656659854377651295888070390481231496535634483696233057968876809710400020228521411238907079347641942762022897845784764281604185283526746363088339542626327204478494878455640797542394208225908334858764734122001587525543209453174042131648646145653032851103067542491941880454843550933458682487162618960514671365317121819325694157231825873909872934642176911255318157719708294442599318911082569961693383773559215819850347928454415280930471656131481206771778206801326991953262290960571434333873809618288617273498168232942647395114711178365953046010044994480962646745284086442869592180671850103758517076576841626350073341337201473075429109277987112220774173688683234729637697604650499302705474893061437059627033869741120850381736921316200387520452976821547708182952066794143539950958065652114911457380724690139099959790331898874862524992674643746771395062377841165782645834561221713303445370826336809350376054917497908898229973397792017131049323202064045736144707774283835674811924816179930569165962819318872331208821828146649082729169885495545272413733038274265801407181024842100196964156055593785317632427848056359473529582047414690855998583928605564986934749409036287692590090061922968287710498960965039960859416709858460550115284544893419497657298288844503048479939365516527757085308881258414845167527204702378673072187785460494542314985433588438722571792896535825055635603414457224528137533015714286218362496202554102686278821069082117670308847447470616499650671416109838406660326081192518818692952896347253208051779105550624809549806403756697183390083423656697635247405837177296583283973147721801391147887114227791096350055740011085815272123846388949415417835379245819598983747394036516860549781271907212048947011343212202057866153387007722833443496966742273745002622132103634014816163482712283874273080185470496513365156097199454675003501015550349424933641431544797535723767428201933529402477775766280643925951134459329874232028899452429862707579293324862435404391111221922646125549788857918152337587728508756917192931177463418082214564148594277091353455362566749818318154086991976785962589432739913875711090481447259202094921832588904688550596919688173353574986120704866744871159392603490278854597745863579383954039033521361774483541261952559350770618342770471640843601762506263903724627600704061813148571273040548057117393906931757365296831523031111712073099634534237822492318689912222265438516430920030133765591087623092211160466133937181668295748361877467643927425821832878111986813502195156935747459275101304586250443984086029207159944685299702854161384753855003869954085345926874551135156810252147190674443752957361028246139234856153649374866871936786710239874787932911518295206710439766897276716535321542329031386545428133508966563460914064175324086716671566290492345328763219754750021984080402275286400036564449304257314063996935327572945707574620762052406915682069959128786857641280964112331317897181035518635798529394947614971819566343014890060859236727577264387248384206136071300656356462659124304473479971895797490064659808458063618325035903312645912839233910034151489796984610789119391358338738946408504224550826533982103211921119158260619412740086643216002450733957347428668274858300259100480418156705239283554375205321280711645732172245564159507343763687830092978267813738899506224305134395769020132049416455598889764068505304151969704720575490435123736794460447838636782020253686114085133199344999299574230956020338072260874877214816251008484560370999847316893527840678152095575273264305725222673059620151949035708931689074622648605657619592196035172386328964980292334412405552911824452462719245625358221286866354830513172663881166117386550442474828391669582164779175569316256694299170600310495608605394890260473277400835930085690819310636832731759993553250905610081884461494788769860841863672919534894513611104993380186074729069872199553970163573030968718246060481501582915974788981538139496626490492570277494047717430374290376889899673357060299551642705311785392202238719875413397655535967382455902299495142668766350687409038628923599560811679751316070660947667645446198759970904536901546288345799793770062492162062178969300042036461094578956271181033989209921069781641210465885033014101890549032600647856873625785539975983807272555433261174175913140443473755902079591517719919224196186543047366534602762118749179849185785310493983208400833751488565061656802604413367442045896830316611278662196801103048285814563224399492048788919186364610810802870019229858174570548796301094682159534703394071565226544577899095920855651522863735728397373096207118561531075586545176967230899822361435348551330016002477500996715040096911075134601151548634827107475171138120268151005624316724196751441252254213743017245763794781697631365042114462481007804991250554076449872553089157937968405166818552843060970567585550280960359438488289965120204762759123883339365561323548903163573907915225234795702102328822728879359804644613010727900294629002353863789400714635008876618367506733513019590641103759881907897540184463219855439757704778719531528285924690621843868365544107259549617104438895961257316145062543068820662987905376011842866964331328906260470535288237623572737760095359360508873883338058820782456807108131824769002449033271484541252959659947433753596777601519862964650351594811041245990973898101738265120785251424377342450465368484756806990843269870465676084699181266352802698978319154720859174652752359216776425931472193187845965279464904187168788196205131192824285295456945588939280185049125729586761040106177793571812542993825698333597781984286115962049483890206161404858607395669867433261375819024926495614141861839196072286666788572252922900386019683049499704053618238118106608292923855868682613922689890220575452294631407066554162484360586223216930186545326587748888968821193801624400187430090756724073634029397245041598670969347666389665978650777182710102060835743463223174523919770675606770149041600821776224392152097730450007082249716843762815826707083402129745232445256996915330519843469308558382472215343891239215253368764632404535209762508294880410676362882109623537566761698888597258753184622523494169356951045259098718048656516150701044971072635445051672809767311063360213866738075256548452720943439243570674895202931050320683498253499701939680106123589615376581870791353887983792708279596491864638619893899766590801178165300506333554659261538613423303233750065757881897270729988264967869939947278345594569328036436105105967121049405479930166512998050742584509565470520404411775033712783579206750731451632425498581865543113024801089914484108831138501215137125574602326550445007897636904492351366686167600199637483746496956392510482240301407763332403709639567972313796770291971549491149110840838452788298318031461530107537176921173119288784530761928957108112170070191487955691295407707751616316873716901847473156988715639345068839898516269963663192150546736294506709866479638452445310255121758124327474880629659053618519407516377850659501792070928362582905729914068994050887873195239116001480817000138981097217381789891313501467344278832377213309849451921919149736897647465069433354971903108929365641487709180205283623856335928858436923595428129797727565328492968445867186293410599487022174430930900730591337825970756505717436767921162038585937040708054514462518453840677618863123108991224868613113872679747064406304985698860717796299704478336645003455749119029926126979719544015865958658381312440977102509217439665979632210010720969821668507434853561940880544102420520686577005953175222507792280139873068473375487868038307069789010950908800582830571440410224365100226983846273086144573816990184017031824958358711765501857030238037813298364287412879366136736154248705489961477620152669359175797649439048899915743551622076129926765655984314303881333126113001930774622193205337088153665031648434593858759687504544667922086611809813327684648626016157921150694140122886459483894724967096075749801212197776000737795995153423594637304426805288095901182572747788594437213465376320160175092267195117416860860458333326358104915206630986450961638263124920350241602018851182900676397842316941691687540125941024401287687461942365122629235902387049272369289523849535760580821814325445258569137585789612759651705267963110765412093512787210420139975219511889239572309330237508385597960072140395573771694843341476542032651832918760218726416648592067743152904423629866562612122991973273305863005085473279746783838973064805823843203786814828295720392022223933375761313116569650620320466652450898868574302834198567462725044743547833372975497373310486204942674288633988764935521114108181635007741460042940472919664093577520032784272884735255497662241942202035077083850128635681496572221275394260536566868059992975921116971982510721966570927445138403747424159950889065470540980628107020848724901179541838109303851755630501739214662297662185884748494235542758148851601009892178661174365811433721702035333929728267898126213795602441911283722430741799966143712938606255559558891874930169838598164147521788173100756134089670640067698755390918778602536534240834192726148813877422722857945832316655949512589054333434598259117608165536622618788127854245074553074563003749694552018590491942586905380753642718623500649622793797991885344157351365474154917323033035995189903208390574018540688035713884991677801767318031247198579516308736567058862249126073827412317868683129244556433746448771410400922831011365242221061953262114811558653146692645835199813485284165528200742356131011976911315028000234125751207362897429327803911316642921963889666122583586574450234528873986255442132072611527799006920809319454353930905162654668756912863352315852924161586717652233968886724071645615904834761791416309472563351005019832430827696233787110444395562534587280680918613745285560889494475342905616912624634172390028914505430524426693394366918721068423792869419406818283037618566235935928598234274753267685980356208275340571983268175280974019485610797004931382933985631488954476276420649953698914656946369318136427059921901623171449271122165641839910403954837873348714168769061404847671846165738532810729885227456195130115031232082733240345861010946147491590218909351885150377525895263606712239645590562914554406357143279491317724763885935867009796956644169739782851769445872041378143925414446045919730763454794092245862856244173953334575791371951546419099527187260260003563609594408137668008742460996669462029023471592061745717685472353819434646860421964458754656348358935891553805958564359429211971210371026022959026412225780618455784668528030044347550362169581558379374067468176786133040864829770048320694337719250225200653369659543468953481127214115847851548296884112552935556818523809329319635950202348040152229586520512251073987579220661589576495369992905713261282498430488021305644760559369745917190264970943116475146114822217447658755610077091404115931111489891251072974522610580570181856199543226982008267031365237424283043764248260079941275530923271455758886386887918002133542737103151796469151988016588180004134328825550029747458508149076591215187910965913118970089901818559417011334527167205737958048374258441335960155101305693647908558822765835642425340792575623062475958130476521580134904894030459974362401278075060554196345036363365927426925425447633868939723046034058832561836012834285806037607818317701277885739959986913718490709112772324757561838822445708648842153753379713237626563208646655605748087280424106412268693726534677354627873860752041206222778616251252554899847078225057476548549708679230524973889293460291467131470989194342010996809398758754253389601215577911379986738154688717426628950169019172632074449677510558064094378977545302704357695904488541960028860166013447779085666824724513229455374004736909976778473290664403775349615721009249228822571197821551727186542244048458681976533548798860553311526512026883403355863375923848684760079435082708293721448634408951249345849657913864457382216856799514325394811256881928699720834021569489221764410226843040708030004818515017733466308426708946942985606195490818945393907942774128905307612893323834282278668997907957346810829894827762876097402226875970813028110359837430233373032186900257664058382339803424715023209354937865067234612907509532427115550640390249614630302264799739049531241178025781993703246435062741418352127923195079271260697121138891559549778886615723290657283295831950690155406908398920601152737410625905944875463734013947487545078345259578457617181667876267368961319498545454957332743719567471179210230016365336887887995756328785484902501200309665155955989699798422472392263872273106062448010853159522871686793467519098339187118827306322528787923020063741808434817360856193626347036235443113017173498547326243914929317910705708079034948567848617885271431429453977428839949324507837062929294080503463168297026810189445856914789515885605559596496911939513474085578858611514505033560034931438024179509048280578915864034327949061649224773023071298353171899345494008788734906881439935623643493768778471464252343680092876232716796727897523987783647633334067540269282645537841704350632650785681400823273933718217442228156639309043443818195749316659712742573065577352445889350269839069812525426680996320932464596841986178141433918449051404733435585287384121576851010314865041938685401036116881706580804786917697741464462625092997829454005057134185604380436790861156766367528638657280987383331557934399122807594327795837288698719983058869885456261903073799072458133508276997179794705950458829566128888461793212530255678152832976788588715153061847800552857627292956477541758933331165466522388174351076931534462943323226981711663761349792807895756986737662614574034478778865592656748305207476888710524199533992487514021931794588995191520615051323500152717299783476316031472047895933056626802295707110684451547139951836532236533632442089714330544187302334366135154184970662317463023139572197243777431145088486334631306381107633544675923627315264041340473567573700776046131609833016281030307045246163623748963766070277958664608943907363632168191385723296290568271749116576169372757570341985250681676739176226509501653114721058500843446112595022343071573684057821734492412742665971601122914700169203353058095712761586492409764543850360474383662785142555266629230092581383257997461517201196166428576149814948428167474926085347194644495253513845100093230503708072060184437378970641082223583550422457919648943092001396292834224374908636650257567104508763743589541853166781597238283433518554082854161011559216292025081469032844454363412109186899819114621323851147059443500004537510809737611358103893384420542498482350701521004462548225849842160225368175158179947634084126064206549439762991993230071885792926717709996287149862801103764023566905050851748899084098578517486554381193529559388036440051731433737741626601902723217915686765210998843784538804041946110574421912143817565152856962238042286490210526056148602666554218551806630590505189117308155994915810538043432605013694307602685921491952734835880354655378015783994884847107498102799006671688038009232633829286588329127372549761978523677809654273445778619324712581826262450416781418346556940376094104527706419588120046933057644605530282344003779430703743027516773010299989995361373709163158308909655616530556996586867018151302216138616068856312387634436558220339580608692685934337582823082662170411407258109781355570250812762912513517813344528848645584430896452773281992396783328292116993362258210933907317008199805267495177423814366612763941554554928136377866965089374081795763281234432324314638113532152998736710839978134680537016422130054363832118976156386785177317811029232837392666963787325013528013492382847527152088209687970256372580109253657781546361678746994544207407032175623745090933813749462018450386039215385686195528472997548410905503672696107533492365628645927297227101036231911610647577355911713223840059847169392746878053159825936318771924492946270903282641224232886976054531940874735183828619146730121028528735010527670786265669867394982513616944900230208440425560777640050170764181826808675102990622073310911460263260253061868008067544836312309074701672097648422666109876426056305729649604646526934146720169985021394057293035944066711700941631576450649909992312074823646655414201151221532552969901236013535660356061972081160513830847596107310713984894853335524360698287787106663623969940093344967502720392592348979052149029999921811645928998135243911204883715721016523600977072375764900418572627974173492246081642903372886908421135789051665539032545453464744194537031637865868271749726810381423824873323746402812785397382580720035141513766481365423359035590340765896840195303731055121505814223093793068987201916684675564434728410384803132753969089677345394736514032688291283155331745736563637858129803448433327642960053209196681299332787112766148611154398152452205568543177801090895495602326140272853058658726930146877655752100737764542689860682266435550181315586023468893518807961513149074793482582521673604609922538195690429054942390770471516890184204628776112035586533536051217818223027691644825818037194269038031206141534235570234939549225096969164657976565444630157534510610146003979954100645428768352271679427682410823378913170094804021184644826879806523592473433390241220540482833869397314310889696430568351902768722610413376505115671534239887497176287546281272080499926166370362497418242410638312420765779209156284914929750116057057969192783404062304735847603712259489870896735357340893975326782903495595971206231058574145855880725123669085336679645142756103987018220105370033958325192276739250808867006782644131659145350985844074460856060336416870249694188535242844588917856522714886358700703055708351329938934890196977014624875597272901242199075510068657058703261862939986241353448099758185788615453036360653771447925914453880672151106651219857388374773221702621676688085293075087045995596618112605470983711157239552212261406504634268559879201115940608062715872079362172873944597600604309083764538592488282904887736578693282041737141107742555832895842391330916035359057075207756205838668451347691869312896512586822976078885602797306785497193511382131646743112003577633493856984181338846801127211772159473681535992378769895118469702218832895918441755082903467606738088257921690491954078656474019118337253182630969553146058568850683426245970798544345331616952276494408004898918006911470749374032379033207928135192568906263782942214386712415840769051825172956218678600993956465523195211477503947827926459357468501925879821284356628025949619252474937916539400420329933750652169006860317349796511401881372202484621204068869150680850821808637665679647541843417577197495894602941194591016243053403366650137067312900717502418171118923556642808416405644081758292693667789952426042812156695187580002990850160062652721535238367203269082805112112654557955167572479021531085661427788816256444377013432741131572098059669439318479105459582665500044504012450980510776889728287041464449878007498349978728696193069631630573197254242747170550637322108637860608222665188396977643761584922426815487578064285818228694562641644491120395534591130314897295590938316433355644402692626560217352319618800635952480923037148367667370857656718921612065363725554335146863084245661676442234883813528795165991515254416810597913619062587733015567229595369280250081541134255423098564842798471388836477894256633618689075377767210792382493144182929911997776286693342309530915032082238024448786357296868134450341884257665847770560565441719662341838217089050481316030512673339308817133613389241167840942927189410898613319084766822523246517606799912863385144510443020042292856639498065818128276413749103059608350474037206639574172678540792627682200654950548657646456186165385223735519992916933719721627608301250065853554169120328230809877796707228737033270384262197924625142439516282972538374579655466123541178309915787193926195524445648232368414477454246262782464267624705005896320257160541736437630983891754134935336032900421652960899298980854994796406394979811217410103920484856355181723072672083819294869416518056142100982077367691081423040504758439317978833328939389537175580537779710697170794492321790332723797670837248763053935738939205688488622569980294679521159818438714207847734770856414259094410609357552971103500726092378629923207419886372746612720805738474794935925825500390084590288229019649962025036680759673215875731390626107811777865196659361625026168681993065702626434098376211079547895570103466646519199928936737399411777532583415745684179660588067882121166048569320449733958034848731653276025562998917824376505878347466811691197298099430119785754431030557095611860719341939622238983464741950759130924954524967547884230366033512065745118401413158515934716167531331805483914932691042798019040045238606285671941670922879369365810819982850201997554547508249432803241122760292875772121593477949145029383116080703576713832767503121974065871480995132962052647496664826378526360004161284297643208908856620867862510989576162202120154303682263619665453642489941616740030776002808953584040554965829483226579324244467667457667290273290134048221552018829392454271666004782622966273110814874150980393743570694917516865162247546852673389027078922400268284996587481450590104177862330147891511646293996970323414571036062153183827787436131514814855435630876993054341330220469402400289044493538240020866547157211558168698047469483224221897016532057032712146769702264680535254123559941445785244741016426273913403200345634732164440937900028352845377231410822661544301360214947499525919000224707407350797528368663849764825381076806716276867080240131391429420831550581439024840886420944300544909848480672984160551549564784056590401269764495487680395429520102617963394533079446961508907026569143160758386554549878749276091235942949006191500028411979827023118983196130927114795388554745630872874035098732546114373618182375253604833914551426653508999787867583993437206153907213558824260719907899128596008215095809451194547179648770555098774899463440508898664708020357390980778394612114111834303345771579074386976047747365654198795532655348561162743338421473783427453063154179981838056364899310432102069143585233353876457350825448221270183460385598643465890133022445740235881137029871762320069939698887247684577983032841685948307201716479929396157568425804327133424743469535473248004916875102747494823978481605278890038009184612714438538338224466225328340258504170861234232831965213108312892315510097284025387081752340912477908266828904145376246612718082625584080020173246266645079909289641146052821315295840840628944527529888084353160629787080196103299329223810601551935317455361975551630834852770257060384626753925972818736148589546202787755601798007463634152090511116093909707449484833564303298838817620284132303700893554680335624977831286203626360337316621681031248867478184421828226456654442056843094755435603001552587915243490009239155208687042221919268030843895543246258521616264196317255421833566471045753219522078009777254819649843157631122501784868793478802049679925119721036622783165398880266078280533599661975105174540457372879298668289862134011034282472143966171016953337167952063719803848803753590584069938453958877409227844105532500587457175419968160361418343146518786783849164163165796665315346271551219577743646185400529832698500766125815554678478308032424775746537800571160735829663219436620622356838342523420829170355583236651416581107178524637296770202622768897842479023757896598729175192507771106362491878036874068213711334862230580697192040193844509293786025507375889863465771092960101579602864849206155290977848637496654353155241817844946312764730332480125390310305709600581641048445273649815309345037925889465825199553457346198343530582987970633037539089242127043535935192509592281282182748500036494371377238206334602384699500484149126525926192059017683918432477171085472218611256150420672912163475110818307361363168998625366621806865025384380306212843997096210629405747105960709339159998136337603251196843972046456225233805362988721099668177012849177495208540009803923726113789723960477392057660566956617588807043363152363182789531027552583886931065668274172392609070361813447749461780261298811410408838270171599495741053439774545311239395913441975945767498776497036959030629687823690520987846155289967153291703542846478025847847131864270104974006022694297237622765940930523057528120576726503144104732640355275275815055934479412975085583142913886672662537909925178047299791834871621904789669806223272398069346243846214092541149074774422956133382842891915048207432299405440283834182486260558086624179440884250172163061597283045017196036397801278279966835973612566853204890051843346357937448384815352964356214011666584055903201942542665017385556154756725939681655989358573035450660561698482005171052715256779484877661394399391471864410531562691271142050591220587474021828972721731536864001011116213007876636330566958691049604774289635721467112124437952257368305865012066545128286420206723529081916137000642412042748074379399718367835961168982488754968456969612908285028931637147233764671700080855714153448516186240357652299258802876204062823796605236733833128109839360119062599960966016570165108372898277732741106369701871152508857620717876063535647688163887788769768821334532054450567299569418145436902463315267361881895721560782599510461506355271271514978970400526373280422345446063118794023029473303695112388451084543650148710529444526933882896442800316717171334191386707512673601455780190347638563932728960820873397587738327251560815021845120792300009835458247337462363319903957014972824238203851373897776364045290555514004000693778826876732177606927940353943355790549311455620033928780882624488717112463037621081912384287143711778709436550156778122156035726954327391158490085061987970072684433614238586850468177768033646575822288289154176249922066749276571204313533277521872611236774904078314670395922774596708015869108004186343723138232620696341261076159626575303673170663841144574470936934652905246072408085752188971934959490532747351967701072843454844285051645512387877452075119640455355823846491770730099022998501440251685306705366678254721052783453139556496791972809077285515698694076790382676660249680149849612764596038196801772775217857664211839534398161462875204896253637369574038179677241000608674969572331291978038769368493277907944151706940797396259339564580878186127327701349256127669233576957015354783095323550117138188271048462842173730228741375024720499201654408638479446603661570984853460968615836521539639782691328386658716325483893129126295389639173616036911792755596013614815468519102166363306674828792163685479746896419869395006473393473939891915000406636141274663427021571476161082361208718367158662467025824098939111499523025971211313882102132087672397903952223081242387350155503240483745838749568837807709929255154427757177395543743159559980612397393394210056721125071196210039036728853648126938265831793458146907373749665945889455007587760684007319825894439509562797755568880628610404089667547280853581195906688168361393771475182173957051852282273789133969508774799535838150241672284321636169793345607850986929071922325792789929571855547761701707192166966844195735660014478129097006345310434907183929153850110767218660599242984807107760429229761095594058128789299443252192881174871959235943156341159839810969237906545244794569304508627931576944530884542461927087821787425271584939742998823328592178670885031492305783102993908705111715082740022116064279676346362904394814113515143796453148266915407658397102247725083286574768486230684863221028835322193059691880199582536998596903403156727843960477596646648467035199736526272443513630641121972388951674160111601451883382100605215793488671744486214656074685602738423752867966999801091066842079361478624194008404090511323112141333767995144193549603760856820859824603342383237828549758012859386832421849854856738818516753008529369483619949896163256692784399355735317182646718252957519625223073640311632103636462561200641720707711903558309385938583408287887829091724962715146504532666850466652360509051337945002988595360143798731616620662947939588679779406412527236529861443128645403125598647631100165195258268333932058930858864833371726195624154017479156696228014379964831524851150265805956564379390766244041161611987441333441029851703608357925150633252023348763745617638232849667144313074926107724922800418971050785180113409362915303847509325064335689677142579899268541981332809334907933282772336186202024730295131979738176566424946728599571198315894450920450512844108401673737653307350958301181853490001195359750773290065977016011307791118323910487727844489414764519807222348102745048623256338867011715865443162986933134504959801514322628785001015082375799478750159191528845959269499963783002697239375073480096198926923457911887472122383977739393470009546718167990466506117486047799815644857093477526941813700061158132412171752258241237512605545563175996475582619278162050163815328560202136890529356454124722564772382235037291796734910483243433775121259472734394108423966879839558255329909306530359677946191996641814804643776555015049136850635479565032898875980657009565106890856029099383763919066052105022407883802797186141285110614757301506221985126176497523750914838985463528151647943372321975302170936673430851288952241425296182060230774518897215996393441562588572864481347005798207184541968811845917662602893712200501808922150151656394139023168190209917004251478999829216931652339592383979365992952708517475981030054643379568685692104102307360535573805357761646794222079666947607033749505730737185025423861767214819571126103256167305744341506396855010698973401395309202644312473125354122844139871912243212687426623410899826889615773242013860437779762058209221295875237588843231485013798161804133955134272103556851003814387030519121410860247496587090299147800636952636257410386753742124514507176185980548075593794973895261618720714275592355650954462306511024241562540489466178127995145055041522071691164417738459466648848934871569296612265225507819417635352625576223479778878875349327991994958034444405131687229150138116483970109156105935273287312068677158608491198700204303724842579371310714592458705863992933813700622956275127465843745509871411422718958445802329805873287087423468303943890680263130812966618575851163575324115742058592743808482406615908548396737246640202752094770338957469550295485060575445962655728150711840141694150253374162695382354860027706910104185831858575255093443826606343214055208984301198607882682860501117735471823998538730636894633172393275647156170215124887835868719434459566111371051416448755564845506553420707361644753880612888594246756744226859503178041207134644175135379720551509911570518430018807292879399984541792046807434239421759758316734259055079308399436272910577190360374045704512117812255592006208815874050102665523806697320155365876606144952161757975090188497037863778525038384666716431308251822141811942699132047849513585975731518393216222504480106693363387395305634471293272683838032096090600283642093739500148286981382863611688197564129295952734880017606663441158851939473559617688721901481127944226511141839094090290180777650660122084649070167516225678711700860027169141836034324085867750060499816222494911786568261834491004606428049843189226027470464525301798659959383396678798074836142747911983131427413162103952369072054529360425180120767813443660990637669184745386782709831880967634224552297075423952088322739640159671159979424004491458939239600060945325028510000414353077049572185646279292633799834830275267658921046036301597001516123805672641475863104141345049885540706964037993004193554598143819896301932427969991088330212945014057638368036654540056514656945504488183229582284075516861772464744493180817873629446810490351464706061429135885076058659646833533617412559107931643856321922716421572631746477584985288928344150389821403569850731078401944372408919909242728824588276755816648553869579434610421461368092222717693262858402808260334747423012531897046492833393758615870970847257168040638190172274539041250558388003745479289449776544445933007814141668846085857943747715964595221978352978186300270546566841656782355236545626713962941217789445265357212250738626954454861519990951473184235198497616190925236332464858280936873693434731531831011428390743460802677599762000490776698051365097291855567103004458671674340676370727707719342412372733632541587394696521524184334762377893916260219620611529582464520636037135259437337060196808861030278041132975381898727142295898055951367730847540162925664920641315158035015991467081366533584973071690923668612802822987345349324463709757986543204387912767370117206996744620388207132748699486917113900211553010857707903649378918111586760854383274400154920599737454305024595335221875320000855534852646553318456122930129744760627391057346693837890479707853411715432303756356834349343387699089259317668313260692715179819192694414247064386986913716718480482955833013989952226595375945724466519679200462355870262412198619607345609270694295343013957664769539050312287949461614819866928912970415685133472728738761822813246510117975827237451933439337892797602294718102641590071674718454027170403806592500064826374720562502287765473903904195728919376956645458817517382305873721273311201415164412202812319874396173868111013879083588208561978739607622828167910170286587011580741529706910532142709469482394871872526780644401358501459772053720558559975945251329008156173676808453904182840719683889787877912113234529940529961777203988412065528143956543819352876350860571158273009902990343813054906700285495025836993593336523023355805522693774032069739036997029371850645013549880072679055796316219568324359508121956424096240927962789580900388208767488266150630399533960919325842838657616483106827529710733201755960399691312478802776669141157746687603075404499158243351847734004420287476853114204881677853098243767485663593566390622771839447525247546455192161783090877101308911904462858751697457491293363142284667417186998865467830698107267876111936385683114460624197283210773427878798503060638220234994165437729220733952863910587382653970007495079096034642772705253186867224489292405905407240171313943752459365608495396439027402995863091161381672494723648600094958706288125034957115320654415115914711975930787483578556717469151858902223711582061045286697133496495625369304317893797578123979246068582385290290759349666521924743313646103393211743737497547008067912156038604907887456910638306756909059424673739963295542410204178077034526671624243822324664004008549906937263253786742489029135428934277723795101425853862781334812847055359388601510230015495180649617484439232108408835834751318938339351616069005653614598614264370563529572241600037208590121058828960625273379932604343103226416406361638664536115732521217593920195343285146256874632105692761575750605144749019029769113583036260997729832973742041458978448265576739985652402244896154916152063236030314720432181744328051109216911068485595588022024428974496568272858588676747871183554052739273519063301350728696998276100798336657541002845923541593858210430609526081528880910013469125623684362630449907066087267126647054133613547032399186296388654542791364733739576035082077272949144614938784618647465469684767415919880679807430947972071669270783680418906643581812147457953069841563391304428603860983356781718075281346115012626196543999836945434887709419175964468144774150994325052775709724788706052095003794613189455446555932626805966393274997368609375495348030174112991299974612338978532190868019292356058460622303701794776247335771310939803173209130885388735181286307132815504471505200903799851692513280610991132018136717951661006506776190505160143539831783955608929531731775897892959592345651703001213334946161188125998345323602806190326399220125747724828823081089645723967009958901956972233017808315307753078960273104182898823891786991577641874627770975489738436622202528666249616409328318760338335406823673099230640107646834417035026495595940813256690286954614964115337006329714807236782647551860623149385866519664622440325334788853029630220126759988225600013896091302507264185930349727580411527752199852429433387296496586380841604218935922875539150761739693834953120287026155728218340382060834427801841834691377801168338715012019516483585663291720974318292593281257749970274218975315768550842027608305154500869808095237032469111753110709030761483595754677467867666124744443777149445072196870173207019108895740368113635484802827207036046870869721657689026154284636789692106657276871707958661031862565526265464087629877138389532238740043741699809834019529823067537730188194642157316342263489811371042388243447606940078522142885839969890012579918961623058140985627515734186294628626350394060747060631437311972421537395601121448410606238658443572039303036116789743908952104546160168242782975690860344082280385464336396305618605524453053097284912881718102666115205592289696293829919392032537929675051403386117869233751465712246281488593774216337133153856656899904421495545476970823300894574959690588317083116525728389499097092709379547175899216980886075421273417977688667548553784195058508672786119483062098977079476953566250112731609094913192402063278521302438925664806164941001790515748408845481341666478306338327247354723762180462823090831956054280559044910689003956938758777188597854930941842046029375730128683427030665731831656370818283902406809522010839252140302973687943294000846031733014356493595589985622853182689173325820652510046639825302215417790623275432728682744666874831038926098236202427359441694015350289962142464309527209709272763993241605054609193731979845992608657663277087669695526381718003696932462369777964936083011475576463375093903841857767165161860569660507136959726187624002808401053997250839636444600194142068750970963549996289663072938553189594256631697885574279343100957037284089657198800703046099861874266170065247690601507189692643590004440184690401137732996441639635037588444125184180170396679695619500480128875309399113208438368543659198132471730120196712204751092023678507499223867266871621964778156266074664404381647653797650141602718562128703137956348089917780532531701893783557847020107150186641588244424709886233554643481533744654002257108764263352224533453519150341886758501225193458256927830128641474951858593875438178738676019263768602407199760835602915368109558082051522799070130205224207905581441127031029321789810671970005320680284998500873036793606844506679478913747607363788767972212893955854893276542086615094816572238628956253216770516780840215332557450224069488920718641658368841924187664987919889351504245979913096302766556116645174508735659653915062302273346067717729781574730745989666889936111552161744601627237017392560929341628997780837960506894489637088771253136417255501218896091644529698683685756257073590861731104839850230230658430499759688800432859581942671027038225598966376528310651878503764455809625015072939207167413583796188519119877716982116437852574757863288591816698442940289717552816199842102862669005444678230558227248396946173520134136303592038778454900057047693536233205605945495220094792454680513318913491681210384431340567219547248192101251737745993942202553285731728966549892898410217496361729716504520811931056046688221489760107978894421860400073594016459818714052154167640061918129054985608028664989481389379282361101154694197632492324897152672843783177549639222919427090851246241558638418068006119928443423743322164183121129678924624564700646293431995957850109256979963123928478015921861416293899455489067781619903165258543404108158714665876400401953392117397168542430476683670996315083617476735012874807992612117030417275308581489384796667600544771052420425974185911723728441963755717418659245469390740463046811774669289347042410615801759043163942860309407984337760812631366516460297148136967547848312147745600581257947322986941641153715664532040638218919453634966405009357356336926167149720785327604875318095896714714964601453185797955963535499832290162841665097662478593246228197629195747378866185689245843179450710279124989474901481020005405494426904953802312451223881313316578839250796610371930235248270952387624524309837139751793049750423391386295579128531737158999620740769189816598499421184776519713684501738976460845726072595224492120927273458871984893764190474604945270362194967769822540924875274904036802145470798583198031489965758942485613160974069041113554318317524182158152221305498298019437034568915959066311792765035271780092258845108695621597699034588867208751502246587053150940960657995641289821833247595248631382140108482862310238376091941196116571146753427766410317983633366777811201328401373201774267187597858018166739074704720631620795826668386663847377152342615026599358119312034387376860581824197990200431787790972120962026932692081761310870128107112443511965216492749113638887329168499458045310450860904274212235173506132128585563861669719812636807251426311941680523874087743514928482621906257625001294169245799600736224839242512615218350185321470179495427983544264993523176841606535381564636805878020195282042432059611328927297150108193256888373870300793966667038795826451839887450231499418382316181797567619479004829860876237806038980575298477851241013433542882957303782852568284089376458637797002099313403658890749602552456369886904144339670497381191076256164754404251292746741234841650537349843873474135042489199327545488959952886157875626694699776945758875576080251971191965063496612797841569121740926278777464142332576583279333751739361946984551876713629056333670308291145792900670568033504203692788434098984956316407170535254884985580916933980960311311118402597124449694095095872290734597343983554715222861133785643477488311531272627166031967554852818335889295059929121000773094260781811648480221991778827088929796126604866037571315590491628186797475972228443167499583785712005340416184651552492608184893156045461762857827323230462745239619959357037440930549981338014652943713054614167598988384170635403020135686912053376505665626542372310343234529696231590909477103080913574571141333780698278977294672895554037443916752244896964418910331488092879337085036192149261571440386581080626652930798506964385266479035868246674123175718806124056259448904062051514410150332759172579642429036370374614370935800412793066376189844002828839424612204017877805991813849561581659066757895413072375941528683843945736140310655899356810016457825367902220434120447002730550751653352354627185430874170683512452217925364913225377399673915685392423871505921423358402181703833991339644301066528156740522156349236690795828000210709109651729485064026678965848039185958372045616683998630865455712841271994051565568529168723953803927617230488805755052654216222030376937578763077880977342122245561813890587430542114463040265327522507342580162977247872923423432338189428261610351510686906900808997912905416895413016662145953949532743993903870374304429312806925898653227442534803732874795383805293581141344346502092004527925755024881987611992907818284589729957252301519062176933235199321438808836451862757771996955163699237652132290029608512114893297707794945856609527155734523473479230522278617191463946305455018571374941585503307928781183762782397408743260754795655849917134646858439523810818595709277006695755218585064533662030719171488140084378734837940936841465751810493114268168742927901510874430042125831249998064526493411019548947871412452124210309662675089346330898137812136279190977491273792612629773600374183403080348777265278084477539271424937173857987954505258228922385330163013299217574089875102586215498319971093094309802509232573108932890323058974792467523814732931609620032825854389360340742930755069536157092713861408449821661833440302951371517132005505289702535798932196783322079679933774750605076460907745728912678721506746815606064194487981689707100277130066642774024348752421398938363003496512447772358935751872793465396189530640197481110357279399650375363410923302879421312015566415595267387062172672272471732424283908382614721287465858856787789993099320569422410599875807641150368390138226924484938333471076256036267706191409711376206365038586404327323400619748445033451781221527667302472869847810063282763910420112039657672896654471441006649247551956945206956335872970135587811358368089066742036043137688872927707605025216078855971684388464496216430534999820531804157421235904178183947994288390611066084904636150025581641632996741405262691302269006291459972597708287920508050465613573259411142091216766582567539210017285546186510858692154078010495327809124866348070615950572974193430431974805664434894490613590766046697566559245995933750078514852747720368965924387557959522362691437874891383676120159069068218797263654518500728771650007763084213449304791416695715650438291184341401205056196121399391566162983127459301882371264626509924156399973329655425340667640939202534859531262516859676401257359447885584058857712020000213446191441820907793484598711967218596755802327106522258047100690276762240622685896570975146080834182554502913971381746031426614061059637560784769551426016896863275384566055001958106251000680435170179553429797425525675705937519340064858129783064097010144590239918337327903245067048570986400277720139418640994529292503348009598767666775199674405300640625814020821717567919422711169158990475702432544782697123839083409024820100601386856783709908687868136762512129585882016699033783417317244493847634143040717171957001356894660483039174075956993054842048961420934502671907881372342867090408023737321983874567578434905604706636990321048149545388323074928252134709030354422784245783869926797498634728007919080162748043082754869905866217180717714754495708407556227670323261931242453463536440510329530964051248973565083562562353544407648855982383615803021179898586031090099450873768268823851315530291549957243056958729276359179740906480800990697061920943730604835879405030984191344781483831605655917090427593332647002122547598455076202905412806215142061098593292447263306487921434926894814690444973834010831301308017881572023064833146945919152127957934786027207350920708016821213540819607092564208261538229332332649507691650167470745447669362783607496646553784447644961229413967445948260470461666146520212180141260896123151326177844530436456017751886318054421418543031712637599371810325677852447849335906801377955297068605294247106480755785691512323622192630296704140551477194529901019841660529031619650300084949964083918355576991117868574259209922575516033512123703432147557866660173613953871586398561856429670232314930657593685939097416710613675281711195084500930937846133854621320809986514997302089848038942582414871276419883019904146628952704335717504062565897914062275340241187636404915920393726182144958198244045565696587377004748005967467869385227654842000940613243528046274241757848883561359393295531730553194186388103398237648837788073620956429154336915879354501541850954611561794579377026025192592593933807394102171982717564614189448227647541578145441854545044479556490339779371278465445860479712097468807516441248920317502189315315209926592747940067643207605564864508460295778734296460260413288162000632260567547298279435687485186642728636212887829666996034111885488059742918765277770512515250143125036646020083953674835060949507904694393867280375336999167431819254807750845631761797491966686186196725378679978314726142580317160343087300853473376363721111004026609891588109400336864010233251045323622510086629807974036369378241338268753150405080112323762204844981290355681361970364034453870071579140494932350922627100154433940193313236462196104630059783342094729669089309479744030948493137084898231361400798726718952751387593485942698978194972447035424941204716153899236854635953294273475457705139529095738564096119338710899728844551594913782893469153652534114681896356362460626366571973642902411627308828225726950571468619419039400380264792068799007002931528826682462686119590144385137543140219478016339076609208066262051753362926267575004180026935482660870809160925731642637128252022715790029986876096243496696581689503333853603116912597557438604489462219509462136353806408634969779182228288120889556688124334110016886893871356066086219411453008738064141088519569932400222548330823293307897774027629687221528321080901540185350882349149670031861280453608988964440587244719740502776240888329131006869854850386644046196708260458539420541013156882553193731761189825058001056788585523841320770647932662011836160197063662151794530309339748794996839216813199894649611905641290888795385694570414108138353929613725222986933435464093438046751669314917852512118498445587204676736913983580971192934596351165415677901604774766837966203436808577127798264392314663287098140772205186449873913119574120463663762579772047554763085050538927362298674783861953649882422283361714078824946060166422929819851289019971919530652770375574943779831167932287247189713562840719106487627402623853394730659626674182478991965961074601122199389185408433964662080469983204671302440927942078437738995907391907155508052267473751775714908583273768124044191999365733968675748129113852163302215143214967495308950580267633692205124599758536991361380699796154217336481537941667446288313807071067698350632465205526848747556923161968813390060391130046027808246397614061961653834460993175461557620812600705171292118709590443293331670960956445638946019702265789264986207204181181412046123631864183372784888295299999773385411447646677349257545873716663322443249351698395930204717561083300457777132604721530829412857304878663056388359715839261158226208163884830909044337782516949369271831970098556264581190728633286677044748684321380712110126106309847150175031980446261129339571953403118682221773347021338596991650964656716579123373906891045321397193619003050709638022854972746541393961371785690327242160943649535283258974781857046279073055701489022185213751305276561851474349673640449234746460913730416334313245770395375547571351903227360585400566402190158206864627162737321560788355418880325044312011664663064046734697957207864216526278467845214022200658744130147691007590119340344051977962265246205607804249830183574092565492834910614971707499067200891181825235548103532520777415555738489847741987164766284120222068542000843163991500006777283243326387884345257228437437435066365336996369019229786137581379096944349375920584515524228460596946544145570174521766246210717089047217963215919975969411424188631871974220214224052959166196466879321115690837273929653650950169886308091802729615567049338258072647932378205195024738938958903861260141554471328485711431883138679970401286540946865322189797267505053642367633401580142014868623864236429407779343328363876342684844832996117912222519059855930085659690978487603375298000377128745861000053167361799389021036937960614363215114759495241652353674796597526282222070167357549873921914229593604360183003402432376790888979195488449092546486816509592081135563723014121496866128574650013669452576946108665012216853356170556886889342710909890661966737897744073019781947104507295514998421447774702585337665693160338341226378689172630544454635294888434356739128912413125380882494713052435137222428278116203279338150586702336820581604725488088406879492027159682794323442530857243939753502652908765814905994776527404749777294115279134162257543642597408321083808438469283024667567939855128420419363807398409223273346445071417077609738144262301038446419226517940720981243056949925873408295284470815383726293717092910862498442126262294654563863871643038308767871895108149491859477778533770725033567305463618024786954072213023715566211186574239582652350058928718927571838060625532420601950411925176303959888318700176922498444687588650466153812760142849333868962512482718517170668614686903034115044957908309815107092349916792761922508124260927099622900532312267111891073053042890272099877302955233114926490390801629331850234163878602555513047535187787386499773141551160490915033331081891195136371452460284998697794579884519111407247813066140498412810037866219486075636116599347876639631151976956709869540210723939108639727692601111856546483579291323607872341206895129194398668562288569814104549310093368331473611349122237496018237853619239838184287017749577477190236205503457233132312022590210238464391235350087636570038983825180466268544856892970274346824783269284920150642096855080978698241079000273950426563663420210088127449517262704614170568058229613991557112284037499061441181107647571122180892866637957218832002394024481363814816757186075297627327837480023245679482938780277460240295692482801955439208920829393150390825504442229477639286845280018853152388855149618723040322443741177555316300150966522989087905737701916755078013314797944605607243688417702607586613413473403677527977853834071262135790120963860692328668777164014951964303331828802822642075596257933571083630020255899028698064391043866353794908008955971033844878961328524200371396967315112290726771242964701244003785798308518273427452397862422281391023492954054350126812521252804657372302448118435007449806497063943634675181107462951281862009695075250381955765484777940607045752437350061655112104717188170519474851862771843840137596368106749932152644561448697618124169347363679406127731851282224034378697872301917624715989961690235914236566177392489486338965596254839621067705918268527415029479221921229185289022367095946729664818355307958312511413106663017160944475128575006335802718234618897898005233345844431637377640084098378013072566379102539284080963935157237386013855846087869287976187000897359309728265063692747095457686591415850468076633392613118344463143777566508305326973213866344979570093122919399151482738453228136241316282867089244920943640625816429679720194335611758950105360084986246468936427395354250891773134050190915472225437819856891636279735423331688202762222593514150535402606819634525465441021981104856766130370908251215972395308450987925450499740946146810812178122139682504710658694738507993389435093715360944286881823967814852806954959003252619857177206410039969894738095343432343910474369552407993378962029098552657915285879044288229699298337464306220174394909247789049215517719268936254333710899982857719587171988106293127527455124039883317112588321648772405876173819104520119701180656086830749679591435451062936496718815814647247228300991216349953834866603708942765598034553117563400608789866458437649108912645587857498054654789224519087473479325620650778232703086550925574234587853257439394418102789656348335353075894197069996541024039208635653749621329494386497250731709763004755144694450091129953461353525928991275805173731386180070932403954304882924710654767948962011974043175365825811324739192147416190314853107663823648071473684256479611938993893045507316266586252671502778147221160062501040482078174930708331517936201746025673104431613502154786399158508194823925473151141482963662683945023828220264248417512297888340160538958097747124637682143850251374852437064124616853463332067477899813980387366806484819767178746237657763926357121799649072438838418812484134856940279556275672954405198521723955449218725530381857831117025595487055181774803754547361846781771439604093162488228034741668475932840608129723453066515336553306803897437060409972991681851553687165969787792771372991756150315075807699893801097565303406268043908468856587642563908591374460397991111631347179273136436010743573869433632902969288994617565819942442623723908316750435525215815667093969385327591667997812180766102330010586649189116297431639200726880402681347234931113350390467376964743278769328130921945578394284559923060398790240905810924682209152979814192953155301479743447640593688027379989172582889567525772843944794778115785852281015499103913918880523273916538484890285291913517290980169992390942262431592594325036711093371341409830135970851320256345116216021278898732707526699622534618912265889586773296962433631346418320577717983534910479774968396653841982643704015498098405800478430979173134692189943228469692695981710462099402456333271275737776530476673010490236296681503161611670674274555833618347025955564195598110562842943082781698384497816824142761779898100550510902686634375000316697087336525652735508640080022695837848008641234847044361760222365943711899417339941983592731289106772194889988411141831274043201353061599712539794520664424573246292976723389314105124296100166851162291624686799385999003046944367135585507319594613497460387593030931831364848647057954776014398590398467302856227081574625971664610587672385289638521320728600920514362263654055152136395235563176906393214712902247232386106557360873304546108674249565679780754042322283495099236314113124882121088644102244276699829709787663409222476337437555417915055414260057673041231642129701224185946351963741312952063569968671732548216147976080728028955850845497834358618201833261383840233836160683924010190586461235941371194263427457816422931093136163841209226335668967106694388469558312535128027823398787715348293397057306078170396380698492828226486127468634566899757774597151987552105039900567837058671848285592634616405584442349078657478419939372301715574459780385086555379987747080100154366357647728246390651498175905604049622348977696046578019312961604395830009489068601509088643376386751029945206021512107844399599863711719706786445905742708404815597419682236962778572320737722869715262241239153797377742180256601537740835641342244966398552056805312499911085904004240460003932425034585644859758823898439787975130977329227035236408324965960718179705879501975452120537709944178277696312266884229525397215549217639047614502766944532096824965046268519031085221039544528353684390590763674629507343457915462208185108842234723706360063200630821411602194498183316167328266608766219259075847245807027851134128645916542896355678041829635029698395776424817372666463501481187647064166080414941940354123900854865932174028463218109847896885643953780766494172288586897948077187326334339852026301339719073991222113582885148428157630318253707404128068338264586345635091407369259252656918878140560192701618825426599302664098533966263439823718427557173355925979416212926038160464096410495451000950132406173082949930885969694678945181487660590346719290908420555195450313063228716479214452902101291783133262453458550894678423113099718832888008374607325107176717360565509420732038932779231114079316786476632421015920822481820648399788924139544328371612146926033200399850244356645580700381090318531117018366480657761255602766539671536146213181015015589098119472692858359417129175474760549708201610734151797021596371258849717537260899481204598825802782996751497752945438219929828568563175291116122836681945371156677837136421501253853317864997609061466290587257342536399019500111954029673994779338996220493007584408446050144900139766053702181323787972897538301557480264583433541523447470100442065954494344667476884505795422332020291417371021331012091782254052228324252114635421409437489504588939314618753582552944627918728914515361516470490090694091780413503486083022200190423060308464635172194604191741658820209269305957831354606524650133632457147418808565386375747446897613700570643702365690655889082717112423282509288380150691935616800321823954132168413106924812301220084898468533301722246487641407214796846139338892733496997299942312242479217651208733072066735880170854140920015785507671348892400627034359020613649787126643407496690986203305925189329893626070571688846400642626534319661168388613052744036847694901048447697334389952453039262683942358230209368115271447052838345864107302108114849239504293968878848875035313834942133401923095877461002311568871002881544631896796193700975421267194101054049211694904521332458347271439609264335087065401026715200906775620133149580761490285660464753129217416615237470548965258883398325983294027189413903692257211530319681308727361186745216630827718533096770765595969648896151146519305257984803634935435114041280653286418870731380585117459289272297685262478306411682541406346506634326428365484319927001145454309715053808724442122715391350279337901732020871817685661348852047004040553341438780732062388680091584343378030323542188653001245464801721399526987843898987092010913767254688261347199434080695354918168852821869480566027210313898173306938706353440659918453269385198735435853192501865277236922054748394802758157742336843982226670563868527596139831449781338614456220240737363109088050253988773643587289558021998761649047994929901650398541427176485538469199268374600964252140201070154588324267748717499872974611107532621510309223020651145211882653543715328469292483937753040265667871024029502664789721678160839920026464867266480890827579219492404476151590375818501306648839930124372106142643287968694949741620250881285102682412674973206494275649437895037578986843545693262685979003489024527635018058290953390814313539399425464015031849962035610653205256851195551481583522060315391379327308387337759629791972030980199200113324912074055852867190876647080303409429420404896783906977781540576263486842459660840190922272571656822715355029397988561089918489922360061608401358840658641474237369615455316697051912130836671600743701424388015894467061157135934648008098434272302279179451510352530227727025733682914771621552310313948533693011338288569359490726331423509868044780319074353918639015158822057664030047147122588898366860635615204822516241861417269977304123169384115424395833109919234709209789991248872759199658243088983945160123488347505632678768427045171360405333505982943038228497540748412719399822697006530876717781580937806584232008917216242389446668473475788992961859814607056878617488248472937901582125363614094314286924175079033873476089826847272924850984235681630419175647259894113595186809962492011374648594741488832846890483093896248154679994665424382903697175366550632195487345061325690020215002823225457477107392769625027508889390241763791609515572337275205521383432931061971650039378896412845302165429773477294900772622331580266479673861777371889995856194504607969792627804838474746233918959145248366835709791648321451467596777909525182958842023998513509012861061002271624457240026047354510296388819854958741839712123969013761230484917657350237233058614551020174621082623399058656158742026560711823766275475460820954772066089345307412613111737619841216820768087814490628318749376356810476971236185519976364713318304664611331765238238982291424997775965880218960878273034033122286770408223558252529319549842452160701447431234942532915727501312139944769577047982577120130213649057340757173055302803145213651666612718508861256374144148474248893483051885334527898629822324462576455252948765898297895469940142439356345170226920705069119019577672482356578060638072896449630483932532823628476539878104364894044424138251422576285503234343428122293001170733412359477064487251790311562517014010219725465085410494059910148085705373518872916388806539341792921538896254818821274346587357045280405437401268791018311304311492928948492981624709671808305854244217692125348977886161134728503994585195590774467399257315861850316017855477335064967431854536372729846171599266034112004396290703104504900585004166238001401230960151900627951546559944056885548507028508044085166867942709467944970064711053631939339608630002881361116965309616986465128955247218123284005317615103467097701525382205856209804338103747161560941424779251963251193139684552219976600863339490698316872123451642692265597828245485309292000476546929398004412629629731547848180063843438702282332966020700586112853180774268010670497445793725898853724359638398525455549027575552222304243212344381614486221020167322095455493797452735310270065505799569230491845130817296346232614457732885992536874980790341853788987427159128573514444606358900945915657157521047343112035317147953604887122241641396174456143582720638898622032092250993879404298356181560304527320820566826359905994587734466180723153246669050645868473746529817215980919041356521862699902347381616720548042313464279389097805618983711017498966027610065244906137642603564445218371696109464338515390324557677961140699863448719298430029925245536466480201345602027086968821807751725492709571014365283107876236333406244534028485283764595396564906319791066558952446354587037880391887690707481284037951342026888504656314349667357881914997969933275397461006474177675944340413857330365988103052877201362333231996633777670229184347147493004856640929000266211305578582045648792633864379410415210829598388972840170904732675885405676144987041884723782230611734610419584665165256352660455149271622053453724004172623948190639802099867525664982255565640390837522340802132419070989980772626119368783376765520851294543013476826673525479622626756924530050506927929300765011032964757061188079918864966296975302735680174428959543062810250841662253132164455852894109443355666113477826892344852017761695996915262185446942683061534842180158702946926683386926420442812504984366029968904179225117952587836151219081487035808854141818227076069401234114040682956385658147067102470829858875838886073122308356686061333065878340396026608266780526737484544115984168227144860461298410762496625934805166857034461178223758359136388890310167587883898653887713330673447125375349062975221900891815236139717980406599524771258632430916064226320291174958341161450168998561251828722758130129957030995714992654945158360856014775972943369778521345977615303191504843707783315729005822436614692193623274709252104358998148544261318012195086356205616126389886327677036489996970696125292891053907844252453247105421328451910331525282468079851305791766092367861769911782399366919523780223399473462014790363048174937022535840712839913813407188861553388606460840262704714211284483256817633450762361863223839542424718699868251498991816029354797389491467370654894959317886217425396636756580906553993861978675675241803595161382314009154992970733078822521911138390809509694428753612993091476620575937608538633969255401974512260698692217258524704753740564325407398878692931125274900738925312563656606998040969831820047010403080136751954184633392199902580101724868084489937225442401170913809356748953646516297175380101786779842985846783615183575907712112355190641514818702296598306051436282902999890944166891246769294413885462437039600260954440684479093948933118384482572488724114644608001474637809131405266252803444774736913922937084304388574904305688499893876287409992598685421254709531589660355834539529845373758012652895435535503176063784786559300633792113916965877785878995901109919331841204618975673135365610051966833210035248533603052162742292599306700128385315776347000835318946136220671532209676989166399302582433074163525840989206399573665290039567120549826152812274433514811202300396016253739478337186965721174859646859453633574877861566277640626724354654212712279653405694903064191629682048872613661170169630854512128598118524495538720502849416135073379955937374246731374856041313237729424145235808382059041256257371032563019862243970288862210675558422482350262071115019449631678250153190226799550391076510137044715893858793710199831581098669111636702828917155310487113867938047505062037663249837398124581436679136534761558671019010246141580211969157560067346412125880243085086984324012043059801742042082833387819787429245404632932456366234849689665074622528800898088775290535844367162509323481352823174306390444244891717735806235546768506033242164839367298068508383152202453481179256907070606334186996880718636546828809471678721226442083812776961862195741251390700746854780218548308756850471638083769559244403807227542590408583970475150570431733383448573343247707868572972245285723646646776886308171280454578559727171935863657994322033833670169629023187326437121050058280236722612936933381682265111395586216007162102271853165796393413813810715205534117542688568298852693528776481127869762221506874161884951254969657312685188637285869256242351717075405956744259723230667764952034334232027110103492769075700887595411686381974149469419292924725959192450301374271124203747939399017910439665959079318433298651199466901577251735394694138476885551816822694326926084034850064989394165889834316368050912493513113933427989795005229159159396781223040085340963247136616619467267162513158992511155689759683329059959897751769575396541448522438221274979539512440917267904005028195975502289274438412591826941915004232766145511381046569179790909679478885823125487612632482951126211885486114143813312399750135994154557105705690924440741914753750118834818107704731155926838529379297352028882115203254619307082902823724534236963263278066979520622133450895335178907474946577799117592718715674763226734818599395908478891947143997628422312275205532814312340987087269950457886065203675143381071746660176116056144939765392449594187498414913759845616402909536366515302898866195116201249600287265941995069423123012043949986675931246817270713357503797414864909091579946267103578541742424210729988230556341558957977201813609361155312539788161884479231594702623223718438238985061655717926261581764842262554125883935850114375942106352360081696665643164863291277926636944983746538559337140153731446789464876801118258020807716092629841318765045375882142012412434681058979913363561456391431839950326849642502500748028848669261885222572013052269371286037299304352410419414105115931525874052783288430705239836034823716205767379183934990911929289179803485681166075979272734648433855442467097509558515510974501752063450096166736414400999571392766625717061592646043343990433431083626489301365059581491606676022799130129182645834274786165803087554670758452502003792542995302947073531066021260258617113727156212539602615509849456636149749965030378892410793446847725187628614473835423743005930176991336230059246474145132549102915823441554218221453750745097610398449003266750203293855946340483724696373705055959789422149019823999284387178256694417181300115393675248960967839470838738400002130372504219567079464320222390543795596599407799744780203660326145327042093032188444074816084692262040354078724686625251103837502523215384952172199048097941531925996445013990240841415231258175737848279309860935848626312866855678797850847290614025223070349259564569766734439358506528343223203362000776584109431165180637786271575352305587892103121633364294432599832420457042016826709723836023087236544387890464431614133040859167521297918155352933616871397667671565320693026430134379829574442238264970443932295250633531600282200049038590899796044547981015036681631073549553263992623627231825665534242836699737376713078590841136018987591034794183929996763592140047504321927018085408145895311543439102376904094767932497150934539215758790144409751129576166825960702499428870698376358262957385525128763982922449194274560746799250077505340627996405726682465375237714600255725407106301731819017714173376190114675798150905439824971937528231534212777254440265914625259372308450473675103565632552475037013309070738650173969437611707601734036694507755919696023091602819063736329785159369961492417362128743639064370773015214266188538653812080337225171666803025764088072099766931755835769270473958331914542056009261871453863633215382027018263118618418147294158943984625056561434073572404986400055205654771211696541682262279225357482759404036414471288750390437787483373216887695277897026612967504777867869509580930290310463797040298394986231836912011300367186774831696098266628022431198119484195072412895647793199194714495876153791114464870848144261889944681300395743813304995984603702847818209083798826868770929411653456540720116587564959713184356945934038686805126003726310301321658289614551484507966488498966728823837382473680053626190832671337863652067352405462039655405098120727603916270818920979143322358967709420929420753397615310405601593703784311072990051384634178299950260653808076623594478072748820321054004994828155887017616140898446551804448386535112241504604425418654774926455638838565045733865464076139743635487046914263781984213093531801719436524904470749480767070857492336727205492492982405893118420298656960218960367217390656960699570863460421166097000603407923915457550508967316407801932996432446928181888557116168062105440971176987056264993022930194679702764969744913584504523275728003087468106775370227114400581028977145034322503488648035979781718510450469723266034901670897073582258914683038627578489248490865871935890358766378659509095329740537247331529902731959281334081303768517567120828533924086799110960425878050682144494706162355315329022653654289262026342656205178834460626688416982282658050767896112737532365333164666001036921272112153493994526754922657611096431113547793812178855214797428761795636005854198809201638146503584928812488550818789206590123276229745230985994683700196965323433701126109263727473106965766687649736228433828964583176068369492603504081594108988655682629833939975833601828972130167766655867310798467958567312017818062665811623687212427157737432897838412493572007911525397260924147828476979180668814786710056750111340078289464946037950073202734459950842261141729060209118557306762456138464239950912611099239709170737792151266474867125375365795441593786134536160099533168573580126612126435159226262349119601584747456454183275297520268218111484928881734436250575365181500338572560633545843881971714952253997925421619806181342369521936003282278204577506472819440891619948363261490242418501180413484418668960920561397281840244875476053014091416340369129431048634325410107513241992266802680039008542634611406693458877335404653494280591184868056045757429390022194156436790206251956198617069317282182531128168913504822228292203557558795064742643785266497107302841360383225631447797731973279869527559530381965299756177084071325833791463043629222069243634765251389325883323945340588487752265660923542198922551881522561426905495039350581504432162750827093172852028832688651402505816319757895138134077272211385431831723698118015794152572305522367036349441982664729901471610500321465501552857716325647343863154669490763561885109812046421223628217530143597075929880465006522582159036105031349936556790517308796531713293650493350399300670165575003258640878068590844772356086454497155059090594983172275195826514959985543322655575744153949118191166696962958494384549433497489451778011930117891537432941494712497673460718700322616422904600332982647798519668415545215528125554084595995117485310433096419480605185387152898640322659557609467541239526127588424011900257029670671121484682939477668904812262268739375084017486062644715548910359826593275818244325109188726968054903663742274894461891259331960625215070554941908419897586074226356394286908325225298743017539245897221255496407714553234430109239279587285030505509388401311531196626042754647284533384482070977387219255920722807663537376049749476755120581637565903625685434317910710669685315475231459005283960508491738871950400892073125527438568746171634677956478617631067452549883234855023035982792127362746295665702175513716737506591507159405017421912151761299307583073976815019566571704648517666647267211736825520762806267805958431555165309187031604455981247252126640028076543670940636583983233411519541194178179958864074013506732542026574855348910250224644687081585837424987735933664112993626678477041135169235189477360530846883975526436824174925094875019265004827419467830801086048558246504149149028124518193606833836013223690537567986393336916654811929118119609075042963146758269741276659381897984557863426785026768860343818785178732477143575674107497111936807617436455414951676945947614171814723216499106603523125790662476288232000712232128863652643323244850079162196319707759212578541499052602258980751160532471568047067563633344502318457251125057526576396561355317758780063006956423195093283813168628852753303829512247098934794561249314265830878431266548286642463623433248555472149016295210173716446224209995128556557217553484780697949071686009918592227047811611285733775967567478377249631834761879681525055120646116084047873538452472454228933469256319788896920774443219467935411346509117476712556696419823938198228332304751061617296462252805060228678548252576335010930648972151339223195520363412224729116739736832344248310595598011629026769072010509678622998919762874126275047235799253458226155963388228841425487011081839003766408998813913208179551224620242181400334696822233069756981355507446515704117574648453629601555818999950180873189390877466079663426068101240127963888510782520964179803413939397629055905019880671482860374296653153505193854781549838890421012130393534620316021629663110041044205586606078604372902850067547697129974184043393070273268729814689389611635500434161098231843866193830266329820127245284285230896613963951429906273944118613279913506781291362389816138385019999828464945221220953930399435419713841088628087585579588254002728605850112137633190042470292747100464925701311716295106059725980166063527445756982398671950072176955218068760179990313621930168173415660754634691183935647147773952745750624066297748932434789634524396094264981808981066533487531677396044771964391716379106015007664633937850292642413396063902111416581018566133837278785895869974834151080585782474823412707821128959973422779032721046082759331572308060342933032401054524794313482251659935107980206254199055705160607894879936395291504044293493470105568551139989382650629697535139450248172017497085045707275624991129569800066332810916947743811713593717931307264171774620918873358601245658533977061848857756373573243346612070652554420534272722942953346761853222367191485715799212231572371572524439011424002418935136850555499255447733596785299195093045002639327865479670059283231229433403757788099971078292023189403297639435273671073682076149811269828946281686751962269322572174736638033925953334053247476241821337397770624363589754481209934918136164367623389071991171519952806621605139634886955415807554651999395395031111311732176504060308426469121183121982380811883842381624659743475962316900729213209200921535571604571394917111993138230735923355881747527855515945374848893311294351676013938649567301392507254024274574358993476708223243971914786396807510831511198826156224104662409878847920339189500963941656576176008379886632988817504413432756263277926650206293651044121044582140711082138814131858910084219839231231686695802554817722815212752828360937972027016169062005063907474823926521521567914444072755060716664124533487261238865948060548437774381010380093920971948794210526456282389031066927559916815037039352508362358852063542699809383827655706345378996943408095078246527966974867788229125800110446663663742730767907770726559987543590688962430091023079676521287416235487029868334084273717576503218744070931607056660819269303283478083346687273902425990885198926206086238285289479328419546118583143037902509547062197783162266126848701586743703436478297985728702861430679051384821815175328838094999642870900420561943879361364947306488236688851439857350345100040856982246872876510907547148315422082120327784108338303598583318413616985344774619696609318502592265040949593301782724520239700326603748882594523386454959064052251833206248718441641418553187472877287275636854263024861101788281262814274105899956718422657197480495487991581982806574584583924791089853373549379228684877565002803269765969690499665300299690598880528441849193475235137431051094579896279911235420568701644724644549419132073339215408070576624128611364865760061048000829009735118755945444698873224945439543885121881307915639351423512350057109586120377610400243677719198710729879331986252361587738521158086735018864351069831490341862453486558326592488170625727878934973497768853689698510930680843232908114458715780148422585383096305196748693207904069878299635325442632088309586466571452444484234896933949863519010042090033716717346061475915698729691382731226883517596546437994345643208107110868843865019506194790636960715378365898105708314647257595963948084447454519666640729708472422408944277650924558361479396864174911288561831159352680295598478406011151201280829046464875245116410498445418841616246161760472466295220295597693160927126758069855840265300783042045527361726272780908678823408994233772679252018058666112092768422305625397846429949196204067084134100813711024925120201379512224975175543243354404938444518786915758868586000717534059443755558980423883186894372779702676260741027281611141442463474206552404865010051867140544996892465427149990191228854870157355855576712257907314078618316271400967617297466688235158523165648290773523363245929725639316628812124869922281532774957255685732036283750939203215195856787494461052863495550200210548527029479460952572580015444982583075242727321135105424892629988661661022559292972175203755290829624927072612831792579781890011469841738979387630443868507153599181838649422033200858883973754500662190765187326184697217467557388398586168274918040455176411121458552301689768100805354172056235907249524760089563249116088772367551344272616009549603332398226514379526836212199305669999873809887181087776389699885031883185781067491420652886357313150501230420090860589273067276643994483920506845278378504955249524006211081603157678332142382757383169367293651433726723697428913057872909586149775860103922467603229756868199303001480469599894790568997584581465582724626760128913036276096598391145040490063226694180727775604146076083590324831438260632282565264520515066649093327155587175923592460929239861838413053338368511914158825186740722357635873324859422407644962805343443271408468131501560226140479115711878020482848439733868052886099053280048821507394731102513707826930420067059799605538308160587552803498208986995352361769570943001006002555896688174223100722122696261647791791918304641563426575803653136205116115616453316834699696729404964296093992464772775310602521802822011721277978678733402473132434269510030709022961171377224790515829577377849504653781154481367265543083226400988016122364695657570594773573863136928967094285854179940152331372649737661534500772123201805788738120865546360408986178176790122337002786914125207251885445876164771293249873284632634390915217972909063780437483055179381395263505532161908450077129214423270631813218041220775015293620543135097424072762529499144854732955977887593240212398405832783002501148790159710820840414569558096951174021426662544825711921200538042109997686006065657661325232939588539524414586248148659520765747873378174988405302631319206880825656716362603119145793170859630413817649768047482143464151784952478718105383270533670572498423875780809212990868166540529699532149739526337658401525263447242903436035793251903816078235970724933718361615659118213464184164346974411300488225659961635768515198303272088022958341873714196367612245368334837020167854064690177104646630163271550675473449768588662409225483302172397494544262475937278150599251287373200535997690242578670888040876574379811651845054955977840752365757586400287680795586804777648134585224012297594442127202467832943057067848950290624492666290255795107709812616457126637624632477995215441600786580123722819843782916384185089788224666475979156522610272894251783018598338761973655650347561024160757154195194325604719877246393229655361876742461855500542172373947915545265096975647624738842629825190332774967320199319436180183819533017646683129434398512961926706386990359593931426379420087921395408842367811164498084101773256518034625974473506810828481688146445597173306102263421795347349236481710919242829995517305153581236267329282770288358894197866739778915674794984450691287611722916646407968177858916274193894163500994913543386346594614941710274628879175481813805237573074759787867330597634771332067785257621275578274724902831592913833223429877325756968996879046903376030654127176852116262768192990913909456032907636744290404044524948699435286747288395474548162510883418062777117685416469009684830742820322893755695307886954971423360693005335997184095683441082948469883436317627110836021366014603986928559576457767919347172539065223489487318237914038405243133601804816298973808684497622785361004899601776371017425746263169514111133362357060678588608425266539845412783924193817247384815058159554884512783141324941852933449360933799841227519482691522510736778750409926897966889639050059726153415302234331408790709584411148445652749274982100608465746867109941482150747961238418402216294717429707610647254177922219891972207212616406065333787267888257304114475320389565220448285514340436518834166267192577252487922900638081243566016747781662332024768722535273073658665110515318846257132124684860982048013545127552339783413699679554783049874005164766069051463263519411607323515168302007580621615948169365403051098513198760430600544066997879387727385769665745562836971316812323319486617157730264280313663932153799311301047188459269829144065252261800198675258483937134779080060465819025872591517816762132638364153201165822885288774060170022183261459360908821338042834462422004068292590825066502054768278142899690498800742492125304187533310764662811264132768308311564476549373242588657870094737620198006548054683219575890039230917386096683525150658719686965883053505495000693168158345838949191794726916944671204107643013830497789939671634085340434230340991124310003832691799041583015378816719955746325014160720064690627929694140869722635087787820643494101077269656016822875444060525790996271042576893620730178093918263309124311671109028271271651093379671597724878706246879624431679327074253120153349960183488567272802340360966681744876739501256370223314545055269234880585666571164217789291958908072242642564794377171872851976458002458854262053570495258753314857088316747008790922965392772340658574290368727166867975551727951313643060961322650647059333661507262668707143475647316125688057613591641672992034644298575355888142505191636402888625717794377186704928458950842108475766564148958533501094114350080848986870269386197473639664280959247602616754166710858235561397394681679888601746243699514121030180717924411520253815076084289259050000502711688177190433980509556023764774630742148943902802864636434254515729532850772928240648761873006946889641641365940673293641129681109649054807907935095724789887230932180529695962068806923310300901845278222730011245826729844684414329792342239094269820376558854877333574858953218334670115624199784348104106523074159222246344654237580520898340655792460942784491436284743792799287551766707578682587945043132248019932576302807031848251375957774636778849029465629264364030697918329369896920377242771180836334767146025564347610953696633351199614305813158243848227700978675734097393249990505286535342145006196691823265053340123930194945288914847994603129299964760805630858394518142674308893294494635837792023243398913898532612051184984951737267158179310723171851928248432893067868106784214996830456154556035287348799042595777601528938222067428113885069924321584553857422730432602270705236577017352033706996837772142145397999444379206371342288039230185705999826384021504103157511590547129207879200041525107555518350589806114180529580683303565027650387241330819733703268797851431345923138229943193094301844532549120995938242723347577192764376515137835715941848203545547045187455195496917056283348861559915976385118347553033487507353235150844555851811167245956808683408400159982809398186517481128949511593449914499006402672178150951806065139162396681796041805550144721473324356194346861908102890490424442843880699618478733205826308841435538945578856664408672612351907565592280148681318472792912037097368308722191879916130867985341957208750801998842304949717837217439219910019775989875271187415528237217963648620434342418250183750112381412177742601715319911406016538353451036500575276101020245066880437458726195428896523237798003867604863021091577471683646853205601484534682014431281086994429724053041325357006319992445875579396179595993312784820271769613008778457648215649383739756754870354238942129486888716702145284070617074635771427010960433326335305712626352939267482709458226840524863816488672274226060900193574754841432415077446856075209466377395130927945994596073986471232454204467317652094671499512921779416520868794268727468607834024256515308570249017777021962335826213087923592818902568703769136883403506097601288809340946468276527432928041231289023015844893469053793580531537284162619453978773881824518588942940685864653237051416657276829861598193523884138120597605340380675377648876243706508097767472471329742698782231408595544706050580754552110808787996557731631796951861736784046381786703608625059997599963006474003392243593519583890284208629389562878253281963974448067673011066983188202674586220810303750445412448124331527119385700715383005024871764621182416342439064485920005284622954663679229058039618034330670087829003884337477173157242183100098535190515942393956822187571567770661986371203129844824246956003855929886486040699861879155047785373262278873319375790191115855156601876263772998477687354648722032023861262578695621888515617801508239983587627597829332654866713038891217781155086017073810648770118760145322804900977085501379081693227307565183876311221486479888503406588762240199400024974561510902217768814886652939248321258988907472171381308679641037386982726543114456944090777451506422149091982209024425205266504094986645416512609873803794157640458481693895250654185417684733055385657823874080477273543760704906398878350477369530373206258409117686349400188919679442700543205292899942613927134240147900615410053220721495990234662767620183262181165227978179046580780401006014325951528646719934236909185248920142565302592320839270383279910816892938718427525588539316193503992476170641527815148430743263921762222419692626317880830090952519569225656641011249313395969075820107098233840653280844622272357231009742925678164530861915855699549212400710948678052906393951654666340831082517836474497627169930014005739936811417859190250315919319470918866095107691939051266923887170575125422341528162159181005372210563435973915011984087546213735694342211124137827542159152230725092175085726773927825999012601276754154557774625010504518457328233463807211219445945448551231055766800427520412010843481820818489396708470149187516987560215777226731818187235660827811315230116732972404612861309565165916549910465079789127781770631094793296820490450644274369062927705158555935807126141564407268365973312148218241263291575570385053179968404414353810929582948230015335741147502879971891419387534089304976294086559038248029773929884279763160053636002308576560412308648340279532486890918608291832642011074863280988627028759678712312121623142531692120042998931376243901195062134072689483240165802819177449647799244837564643394659433303778297540265052407558371923306363979821288843203435279911743736746685086541968530265866081761756187015608923209939144028106361931531520218452868259001973272618423851592885105442593819102890002057208058521339791003215399951948254658898990103415208851009331741158088873600739343333716774505638498895195257223383648951389283645527610755317722965239395180292977267838698733133466240794347561685048879406877755016479942691341674117429099745209317014108075371976345653724659068887480031985795564417255859565408540246369818141567201808901473783693637060096133997443573729607734073732208544417479043666083335432565312933297298028277400266808043518832173313980632022049019415086510956070025487579813314757214541669424803116051077786452300562809834132947943493562109858114921162123671653128471419851166780710484255536123813862602190787246152325915316120890808437891625689381735109430471839248308621406303540683072499609907677490748115922291106542276023044250493573027353541661329270174751983823208993673523462142953359575777977628811119313770330034757520863618291656833918452873280855778407289718578308632236112633078703382916117152621292014513855488172575390439566346445245221308247802200301293416676793324600168825475097101727584353145075500393529350219391057070793391266424335824448984683716164368784365324955674206515536159801245897108645568975556260822857377732968752822947008211551230708206427727139257627415269619830861816518055504687780495989206148243004037683626137374046689055230758576136779667716664413463925329424207321284044461872130888125964715249894584759394183123772108266343809841568115306036379069630120328112443610431892430560392672687507345274222584601225943583964800418723961273169620168085863346930355333594079135898556374092784089270529999885600118468146146894487737183632351197471751939909953691356746602480484273021601755076514781635550054334800941237410572449999528559865745828076632769872529454079148665986120235903073474916101519363457397350526362677607263610586449776934761469345685182367381030663384043307310524348848338142586717646569358081069614767152347787511443605931849021558740123855325478876244482547191782329605406914883761217968211684552288680841575120979438748010261751609103336620046254031659210750240745968796641559192013350487077334638135904157482992428489305480594511986412062000046760959600016060540642572951011628859038571165082996664495710906149043758920641533306223801111613230131577813758612082402797860255277172940150015969038056192103496006450651229261861348852523372041216382763384007766114824871698909461551370599780399447014370462342092254878883405518247904633309955212924131287843570784975840723413632290606106413106482562240602564080543699371557268420604066908522614363168577283855200622962959371592684478905909812600458497870236344305488990265206737894746340109811538094908897505569552464960726589534263348619523449992206030583383910891468923369252748121875597096545188382081957023792963852461028709275636675826246381407597367810842840899034510339361285300024451184979593429957368888732135861803421378817223749572778033675439029810901883847446433619063835544746320403089530792073170997165972309444349438413644172909144680825783187336419616029503603347919597729199457145304355598235195818286216000654558784108098643136800242911113456472808606411561721129309268938985811026447353879213490507278059157679703381779877233015492613304856576601864922787555453227421710008995750085749941429419512874284434547924061156520122575314126360900392314782397666197582744929496433999901786913874029476958967800125948154143262401272111921516032132862834487893044126199539409656264964072150737624138626882569838254322303719158494776199668548993352204766520009866534361294067446807743657761355240259732860261756371436985023151091653813114178999197342454210715081830455695475585328175917833053503003169347576659284720371386629581473425250648394035426568782804035467458790975592078535189612622020559091629467755856277772774462173353945651402454757429116050757399579067421252157274027264354104321292528083368874527071205606028427354574546627924347904337878053239546835997843908036577064257423278490559486017647791123996001826630657152965551993889454203222955060389419458233985545205820321527646599517740215148747660737251178182284591034456454818292560299982315058567752463488989811096014116688141027367927038600429210430701351095106720522050374801563831403206034659469211301783400811403997992122115684112806041528177023949721856572005659797781815044836791200598696708341655272269457598777489692822570471307117905718165150187449115103905316343467984284801287462409031660800822772984278629623294533553321754479725801711118369702230679852709775994205001069363046607680576623067457003484754054970472897905141368423534276583594454445654693969873890943844217065680688039484933373296172802221093702993645678143153137402219226663285267961778963569423458443281531513044433949438137176262944318495586215781390770977770421987355032180433607863322036740847492185648899025621101494685803828361024253846520568882667718056308209543268327726545906278722068197796789123343676310344784730013107636070988854130597461471317825420352630763013207006739745372187016362377357082858992283487209018384932955926762409918731038304430016775439551422420050839118018058789297265090675701858953146932411167096339157176166236010521064720385446086211111006166267881416397081298859603765476967852360149311180514575542931177404396584479583755178723451624298311206654208852374788223700195850353674372189920540150617852745978550123623706276792550395323049674507662722400889586581094191464070140068281460545659769183311766879726828558922095960293960284321863790869115720692523106313772337115201094606657805281878685731532653118126293286047257582775795917825256803323439246085665936580295330773740196063136675621101218676460519399683914183318289001099132380759733847406039099812647299234314967327053590735529733786743781580866102735713005527209836849427164292395088900848131960951170492713904558733977295903125872809782360352240155132969615066226198110710939149824945573409919615047748813279835687443821116568236209687494684671392161475152990810046492570161858341610693812662877043753271397664102288630759516215435425376185395830473203114853056561995150479318506884265425496716399209825157934128519014605625778503197548679916986684917511649693589431624019428982224753694905064818187527100897577802552783265761149401728418892291204323180034661249198511140350798830686703006972060795955884587675951641679801714633393639894580410124490033208368193024746696329541699528475362849087245491747212933335166237358097428200209540864438421832539946646060097558283821885297268706546683283231738111296359543719230475606505552288165845070551091470142075954191584881094782577398524552829927244099798392795212871659159344425091347112587365721313874702378132919987215674851161865604438723731542369331575095016278237432980546649493456346567394668989306226357338691171146551338503315013665892135560926693564901864330560076332814521002466460810924184889622967082565005216023294565785204138944199979622797005573514362497329514136145221425127822673960842066662471518461708054429627131788968307520744625981336756969451037669007565295340267930454290336524848840605604473775781932668000453594360488999034565059109321760035346122414332683065739712037076911639513301933061318896900725285466759087116701062839446336271036861801626494609466894235506805916639420981230603909588838998849614457178265403590113611422679816723119784068562030486368972608478992873526717615455144080380342223725005286575396245754076468114469919842613830027233411842747093981720105469275788058559259242296457844634055585459655611349180101509774761844985083780705535079533160103707047820452123474541967783158844023215163411808285922964703980762289638865089740553670080186148412254267867193300723249630868647175997489374624208562449930861493162120690170258233914078000496992722081678646451929655961287465003958710002194655336974546072726995529418322527379065518084332260721433614624372023153571242869518421109231329412072951754950042830548436716495876682816373600652806325695016749725676107881402869434721617917003391316503333533700399553256942196216836922549025960500399903648336789026295581678376686510189413916642042436251275819595395088951338172726004972559510286820361810717155210294000745254109800325713405123048001438308252216623545990636456511235997070425497408259143156280187499655354606063203877332987409756519084660167904240047878009584362209683392004874537361209303656812311597132222302746432098481962705724459821990382831566260802447291337606046368397663098061083571870996313194585802276520031626183488668655330378532872019290671060380718322688992569500992604360682835906655082895869614331578175559488655103923622523663483697368082090500677328787903792505124854154710283319741274203222922036735746056924380516126103815988575348740359718040416663104249459793172566044261690457591868199651139864304682570101097539393601491358764048272246585184654697252157555800263242505740728794353344315074449172439355559988008675915500353943689420802442863941257213768632223084505348916325588180723273072430650488973167582956457612481857546048460778689013200172777847929054774563865753382733639769367336176300730910046492249733797057284395338367018498404653169203659840359430572661598751744185959930370351603061329738873649700681879071400799331816067890233471225645077754571548961065328274639426213722908229490728209015997950296787145189362430484397869421434727983226532969846488076747295004779621071669998132399383604784092888322147583080687762086928965176668601365534534224296459981684520325561319562704375567918192311574023761495524607039100537171697710222419316237389332576984667818856455449349836461336941957175576090824026680503484618615586961297135128496464271909391929312281373694206749073438395382900670603034501872617647125148182901272742932244359474621977636201155662859677720946641063711309057665883228177590056807871167312680347715760046844120176857976444144323441829143652227565742236404818552019449614503841183452204366264564053442962391586457982123976182735783598944778654226455058658605877816472027729175603408756288336599680946617404137221759697507071002354289901882047860708837523690397156333940776473709387395100488352430129556378316139368142115822263655899709127940787283766829750812927887036509001392281575331054526031856657571979324864604948590692506648713657387218401126675671557916280138178722466207233711621817583029107394863750556768099915246676520131020974680825585053402090630762525043394657122242498280161322724774915658879982969518399364816943449657492725656121613396224938505529307526814577169405578305313572468700129672223401620118184881779483111643663880336418637920686185000672057044160703696337338180606327723559686852552916547698731837243785284837164784540403609575846771882197694766268790814123928539335058480936457302151547516000372102018735757080327197152578428281094135455549556036943837126333188707019740369776789079790865050455726167908179806534138231315112381502923003410385207066312619590163516276336599517397434872014427557910636837606473193062155821978659903472099574606460325922130224674184802622245596425987784586710487411566279963382409304411808524593902231346975500944705879902888480836676887517410420923177203006544486682717373072175580223531457127169086677769755559167731556544636831005905947996705621122851144878185120889583880552112477940416390175285889185456575272095389867290732945920134813587978863045917569359202294346981625150120345681516632590454120184146391547407482352249016384987258615242441757583673382191874007435396532329839140776816420070116061867358709517304093886118997315204446406535613659014392209125537822577943773032532810303215999708143255781800588085619577753933399778725886548284278275486098582014805451311739469732538522763148733140380211656755625313978076378968975019279931939092279178880615215553807801602733314452709708353389794627309002506823083710572420421010368987678170314065122156461033982836818295583299699661374923750307559478605706035790616826207575919421619576707312002897075890139867813161480655845314707771778877464972620853638278141273564891361578097759145637459622842471128552842927512053975665480926127187807486316223022198949554076348077196926765498369434466446716928281818783680285029918763730858100014996484367509486159117435160496185616546321076790427587946107854095239107015789698692656140646297802460641050820989684757387243845140102995088623717663834288590703093298521657382008162427262893437515717659133547452544950271331511958838561835605895388557552700256241835589996478296038677778863890991027411615426746374098367952584484347519821456466358681866908979965872389156341087674958408821494574363977418173717086870943829880399561005299959083023307548898375923590289007817874126651730610244395190720799662812599941672642066425106664312402623398192332842223899448414358939292859007867835138967770990360101198284397871497043837605580488964037380718520519077051686793341944052274601868950186745001388527973760115410147220939217329180640071224340769947135714617760878854278881143929197352455992533516239774567984541878596262372342915254088987738036539642276241921765955870289902056510348186378527500341209854462443062503932490808323280226039186799246206741995285661447116246931968708360206747779377116418243133073015946122242185229167755494722579507982536870755846153995730744573854397954635324214489452677630326406870899952951272239421813941776242297943664192856399720901766327936052754786015754184412084611118008773287090806897005882571989296383985061931649841675576505371494523774856381989914865983456088863448145313624596045015862162342264139243946655580727933370471000364676937300599323474427347320699029723655279216916047329802886442819710607364870933559646711875214904646030640823264540114577428661081387148006546273034860512046134784249773079924011594271346692296958622979212000571886870294291487980253586177345959063490131744154749892967552520729603143720806258941469446343186294459828194743068375648716144326167951293635546685949777733880406236267368833383622295317306545036477064040642279812946042915100430858834636688453945421760294348473494101164506166457431555448046203982715301381675464210003088321817959959794666346544887967950122283576783083452947838121936288730750915602578084028000840089503114180172799242028805923565590615768974968185846029438819324996871792254544111355774376217310503064424596682334145622331689741896584734428336101629552436299454567184725471513745275120344501989343523555401334416128101659759415557787880529434840267854168200890635272418937542942580081479901526015757620168687223837916713792606095551566226412377736869108457005116404605226348230601876950443856986078204462730029339799977555979386696757735573525353241144498189763042764831689882305657574290798499856322971093413851346980236444543368813045594165079105090065594039728203694186764763340380949132552120751345405434726977968888480319436136422640950239502782952260871693747932902720127892805891986504180294368219083999965607424254526051419242350762244283232888992215203868154180672486323265339887111417195999858864889775648838422423108709985069272901077413938949099866117305715906511132622355919074521102478234902725908210622282494968818619144358592071922110131270347534788144132370251696094163371380816902214872935304636955875599734850959406835107925663006663221026533024367749121510957619807822212430442151262565820313398785411586579331632885328063853922714361853694148528763567393147989553030235508048986738239450090992288467809146551465936424986204493110464346401616287519266072178571579221865750810575909357044701696595765774604850500081146712472256356098133020037019999281745047398603973999738144475632578977837969383373049860683809290199739179904000335760788222354830126928714756133721825330792484760632534518152845643296709156523684805996461039565201679849726922305368085781207131793213354340839076643839058879239674205032232464785113679330703932276188711790501491721152432733232657371884719014491711150118436748398117890987478561067773805769673337164362818380806889912613371741601034299465503601941555828372793721309529338852563671332373058985877049368679876538505180324073530159483035484859355385655542424997352469610888486274879402957444615568075286959334115620902304103079946816926237833351377512807260466546870904253309457814310656412689484054733300248223039550227772725680543085738934335308229652677643588745513263618350150002266304947657544805299949637310896695334861757314685165129251707576642180450293272599412646865240283584259305636342387709523057690265078932004902686141883642968171088512841237861708767475999828068279338218142192708098871453838849072239749075578472533287395327872836378807115939353868177479791363538811454899650035885991361182741826775000540148575540012846044095806696450753376890670218161806120222822862248743267485631127756701598094966892231239050159920141057318619910452231709763914038552276168863757745896678612913250224460249471172997709019307382988650681688457454984825157741390753255492453956183739390788907650015742652674898543649231269550730405181353292416275322889556922641559845771910666153654816804179068585218797427789147185791787453064604385177756955717714189449783005409040050891576399117571574764350051970756734774363340101428267020860120853126250150869479430283124356312232441406873526607228650607951500736529221313709717995000505491556122848933464212199875621072481055626685654934459573087010070208827532398667733427580995301905868462273276995955764974612453402150859141489161380063221021605468917956071499289518762490295955365044087280063736675652487757379414613854310640378546312780638816542243279133114008834386429333233291765653603392440010571828219880977065136575482108924730279139773567407057791705286814331067104677108916330614384911855168613344033159146890806774064081361596587034616236195153633791401332565649888121143650559208918055095070521346492039831452866848209826289181514271802527377989111555110695371753668500442545112599063564562033755105032578144412210395568946213463250207478818206833406414638730754089706998360217486120844410055472874854761694873840761847762765090559232996163181577706181653288025987452054989638690498850126596242134181927914300704456506258177044118536170573541364409966923532271001428376626423409431431413749874285068311828903307339238281451598766662826003345345784933944943806337113252210744458472340773741316223696230341782349051585822144214381924125098394641186820636625351601342580972390170939626292541276159156725831050653996057157238904339254766941686956724427919145908936504688655497951768662332360121877360301585554575805277054150803343835452678489081037722009627947940893146288867790616425688423093795028953822702416193122435444098386080180597115929839572994404363506019440019751597237134717420121595082911949859335479498381520109439669712932971879523755371646810140365129327688569445802331097131503945534705306251164159024633819410526477601605594545828154306704570587585580174499252445562960865574742404605430000679858233189036038350873990224301032611387682227530025675670997798263320170061868392278006816916244279150740787509571733207184291643775427484649874065555057441543343900716942116046662139431951501288808845207448090700119439298950555995428749497529002544512916803541438222810902823628810126245072642195865954249306181352092461748288687424684388907367765914811129325692084414398930697642623631148735128867990877922097485004932315094026566199024889041766896136275789144795126640246200438108765106811739904262717922459823711417739722187840032313484193378112877005651682088824603189209101595710718769377551433167281347008652170234761649142546062644003445930777203974144562892435998893730127961021090238868474130741298656509873274732876315900985826981544907290793728379296978654295031199197832436608484894606286992172984396404134141931692488980588662994026158277718011506521991890169801939700432956273293080169856054904559777475159540086042881188930618455613972542474295959993408652836489400536542696372696283200370105784358149581243554255627316418041850195649821562117909206827866933616242064533054118620551858143018123877607393159988586388065750656477819362252210311020736807214889091111753721895310839007695599848716427520754701653606807944515011091357182382648844626428072203277044219590104486155256230974414353536102864048545666205206892946279638552959673278567972422605498878722750536760430562061864192772756798633762433472008064021500588995783656678254457463107139513858146285589838255999404596606686626093418725228683414139374772572127920041367054623653815994107531181527991969508761022769841727783753278670062746396299955799219161640029470594398546987267118942082417373020972524079148070796911362069025577986779139661063889492153523366283518694408352686618899911699530042584722992855582252350386235738340080767118616997526324827366115755318391194043040944170323673723128593779902066404546517856191773031607200707153233155366224492330965626070387727846081194570607715353852731200808624034776663320074140052799864489678079619200626102910779208887718715934618566398764691558762722584451940222726211117716947286266136974831433108206411685330078536567345285070301742900110687092924889902578755580151515104815945226049954064158715350672557876852015857726537147214543114841271964362324619611476354173954895635237946695578216712819525924038879619788715139068803309826273071937492788468948289040381081731229370685345101905202048966322161568018213479615662594876814393653026146158901320862756981245729942473934966867161670483262848120949775687867755957387708645935232275741125331844870137449804267300768278782272800962611867253527717515337489448431524150830927407906954204099180361944145750678971734383332502965457310455463191268447472244567549389154928533372015651811078754962441733913761337191884842384349415709959027873026492475303348299997962635699049680814498114184148824028970276612137738774379640341988035978123114266438919943653094050652631105033148686043493204850221759280548101214260668811384466157314850280999862225218566546993537958588722375681263624676543505093863684177920451105920195683054075935626102441120010433182744569703930239810171703993759993341285929027966797740060613276205160592364035762116408170528672429521252943282327762705489716624830309404064744934912866190573415035628331100963240842267479677232348750031386504322581373255896093105637539392722153424572953114055231898553044736069896202915739169162182442791287048597038361669900454787372155382758871460044838877036770811049476513906154999309880777820740690831540581846324034559173568553474625521588275469859341880637203749854221670249512275047793312470293885097386042958317721980211396481887924610294865928795508516657463749863898092781701631654320611629481920664378259551370480313874074251174698734971697515129786846234793419562718416907408461947353544545805727829015797012809589348423673789793720858128550903977037169256254186579237574977412718039597532117933846391788077953605292809013282704094528047024760281272979039655487780694801122414636042025384850718964301729501754250512011717459194609708785282622170889817430322713938731231311100417584570313485996573153322184802184378703348508361064492824410341293449088981316999879388894096692992162334257207146580367553539633840278015046818636365339089577373074271258675609190775013318438375193088376702056902887947363866800550118646467442200198523821771542856475414218156873034955759372035814310975813879300226116942209066625819679398015390679640275841944979942833312558214426781194686031619926012561465796043438204123731475989323438701021839307586753140140280792272140390631700570706548813352464698854057063382244249858621159495219191563863510600045453932724347875853730245860614772230507958089181968713873237012016050586688842569807436157147396243183801096623488979263784025217961118957511838524222876439599814511611053638609008643513395865108657453211176871769045595195779402361825212254063943189378443084457162172017759851781639831634638918212671702917589613067937081106463254477339581043099336249437315070111076144657129663514505218217478752690985394158918295462237976299048553687713531370549123954844589470208037257114343397094251593235098389103986820135620854729931380259256767687718065097945706690124560395529377382881850048987388812608310829008906846665047240170772331740115397800095503268312423653709844542332046520196100341539145925196616693798724191743565151674225234027619823735972881522089565982171345416642484941015499713418199762971727860889892718749965048119439873178828969764923329764250135707446214689178544054019064824214995514369373521073578411466256451084985498502049498653264330108185794372078665412412734382171534402819320665544182989922781211214011594120062389063569474717111322038972090605757953890228331911854766200993660756273218311538453991511685484265659900902895806042852047313727670330305959161795566941494403887025568413014270046855739261849284007033165507857027034768316995517714897501079254841153827878870608747148866538589604637750009878272247781400617807467077301230644664472659116223352345212616210744931073277079241072342833660882446806094719114745006604983405565570576313826866888845432502125680369202941843249562062335571615392851523252783978233019627411547911578544088700815480019155483959604299418060325020416492047187613210132175852721273023434624250970366722071146233373409603041494360084286424350021280196442826012960247530469028487737422540397377289389972670544108416281407662443696736511612508219155725750877568785612989838979533029606578514183606804854066620183647084148491264242749681991584855741916240557073153782312390112290758320958736677411745806946268883160090855470180927717230219978983961105794274188782923113975878879850851307789827088506950752093921181062035202635395053346173602609288797169455131753762011476017651236943950807102015444398119188414725052109603682279170773444944198695203829210480440626561368028155949139810798324062392018640710367336996218815831376683072547634231016294875470425084815999453714325957367131513006250883762082715544132989992974768996667512289553687273728808071872848951848694685137980250964997205439811020082937384307508858193730405456815960977184977317854234293796588382672934354469144917862214034572932484418790980137586814613600254761225855193846746524824252396609733694284016131779414487440542208427206915822797805667122410115285886332835867857912221167569556920435140350359431859435057123493462673907854517777020832149949448702958828928038879352015182477714024856025163812774315202568657176772950541295289469727586333929163892901418399559727826304632528671079051892465454868094055792100524749404060941890717832560027527289020340618364252476297058762526580426817119073901097598201552552916799975838774938037775390299260884797708750524681824439521461458013268217675853439630741929754406582022636860548346454977624042969213202164889834007630208702936162558472762075006569817402903128849958687329342967472049896377497132723731835566754549424622832023915185669560497586614820835422413730181803684578678739882093127548797293349555370563787514246371692808459937966639876924609611258727454094001876557590576783269799586683632362916792937068137161472690822172784782595309456998131917324858820495070940918153124496489342968000724278456610151882541527482852103704509950274966207921641962143383018011050120843625189057129137042965895603302122197714942560149862678614154917232373024792247358744885243168845124906731960253911190811700249820695335289420419218159409793174816318288323312737064894985098200858181489583249835537004116175922493255608580238803051164819378373377331869660995744979640568868924931119324328681695518334422358873376286576799257900563120469112907213025095696716764138899434374711472408918566987936123975321452708696528577021948186843398492358533229693476624063975759084739609023007711674866513421942702511220023340475956632666005240975120700703491458411078302126656682031342848460952110203909907844364083506196644460498362152274646414223018878227049687032261242509142389179666302424014872863533371676010943297604286922337909572436902334832936345258102332567974614612661365322061465393402838178764576462926177598727948046189034674964879441587339890213223244973601258196370775328541140570738375823496119868486534444678432397664541693439811101829728584429530045348947065788926487363525923403912437380302398242936938055764257334341835398076975439198054975725726918760340274039467588891527679464465693927987071657438076257052554877750475344486352922534512068075544644057224533196921848252112036733776548804359061342753990330702472999055691306250358055699187297309891062700887597606395227870524137217000185954595310978335786578295224378528841141708136135014849818137634477789284362025841740292365656929158346246286817726293733065659995860414781066490750444522413501737866558353536247632766787670998207875618686248515383967001526628101833900981179417710492625557816204593501600547343390753230109837783945694697770923379156590825099850248027017044701255931019854338935619525119731123270640656355013901181934278124382917710757363002137146129858943469586420982532142562031954961284288268394075553392703954862843610523032952042770686186818333128305775470322346361719109432212304246625155097265342472182681434898102409675211930856877969272377871199722996356606680379480062842526695969401670994890530149609332220895640157863612031366155498055816716887190314935276658330825999395213165989899319528124098417754239115559073936283404606858828445359444442274581573423730270211618584146054941481013562356609020227609948692695174361136839300562139231784431853929308373334827481137002758204737990721942427899357274183608205918587362820071490585803600812450094390411135984140743010135561857888862219234539741923845166192807536536862413502471458377068532899340236479712385213140647255618687637722999467058362032523260120656775088990332164073419724096793399950480043795970850965458497400287581559942364417374665537255137329159336210855641312400461292987600349856250494989603847041054169660928560071469768482824993690334417467466603931293359274077785787320698992025273132590098266623262515980870855463853477948209520315113699959244881632526959454851385744342179363636368187237761603252971938638103761444251892142415004515465896687190446024933967184777834763371307011932887579104297980884343375439403007509839320133398934934305956702622104899670330123626150754898250075248457306195569435219041694578923555648797546775569720681643827560035172860227715960278632422657165892853591230945685597121934792360191717537209244242276221096170629456204768909594986632561949368733226238219814710617812786308957542812404275855386792691192004067717673577603411628193949051478321942708826552385399980429726195675675697334574262548241070700461326561335072077838744907735714315531225359153241020745959558546890425032214260076722037161351223593117573083558890497635237622241062918572432863411876702157237483340903389027303128646172404530285163029612163267244055156846138514819148175293985159767716413351160569941735610444126048575619606636424014743838256564247568719073205610495123623315795812922305238532631326117456306883093316229879201185562748713545170066174296918567203681990949908756374249602581061471609623733760794112962644437414730057859512701161919985602814213958233657417291058023266927680736410073298935489231438591663440212637913404413776867115879292230649713887310653315331233333838289704158032395312538773340256172255060293152256231705653443369221667265168723911404801381398782692168353683860806780820264175592322847031637291899404886941155024001077302352537128299319006766674699247697206322466158064393457228409612191428130875448560093867355477660633922098273456887534306583550458810719088133706293849834342497690042383113940521218905131602169743476175244701560160876676842227562964151269912183673330302051014919366694440694671093079419167164274275273495320617563161356177203149454324963842717354778373169484048644948497431754893236130279516242616193717084664060282782528242875562775522864572732864748575993227733714829696539775077542623356392441747865898868126379062241362151665394893055909888549060587944185975039036700067080600325779536624767798141510114745396762518629131573365917305235683059894752108736995358363387760699159819205817645149611607956038415249807660504806094294627604380665995877313472212992776636539549809515136772239306588950721113912853417239517618098869428754278360262110671575825490401411190411893326165363681952722552253324845409219277947004354128296399199210843196480752587726990816730084754172894637803035255126755518126272903439247368712346587048170211753867014397996834288753159479266312440785638365428863735411178121768783488519354454474245468977151535218606661716855640440347369485423182451506750691372264024451314275929261195534007810395116251531534540951616302518180751914177841141208719757752776352698051819167143647597293143392912249933885005852883455498866706813359056968425287775043758593603153533105899115388874778559215778616925515995285543867462792046806602025097702264265235662918346573531198525723407558202347605899383897663381146164630722792751396974694977369946351412178973967077841790335151195843142694219842727759712049452332336181379749532585488219918943032428943107471387128410785223463197621305341976084119733848416673446127049533888811683905020858087400607624731956611309623775672622924522464593958032816344605582984339102248408216220173685612702172151632287497167064502652678007815300158983014083415082083442108495534185550576986400744490534503044204952225157430608913771013770994324305061725920585189559560012520126557690734222250426459164254210680296201101601172708224971405727504662910563174881721418397898675083983030772950301093761855744586042161914365383174070791631077695963176985235681845885618637132610467985795906609937896615281376055077516844392270340609255471015590324304811387556821815669841161033532850865353016226827949059703690280186756407399391439708455167739599734980666156185250115892541468961263480417190139951410498121656594783007455002125768812588384604715934720953520948940481642623131854812792967381676459567464459561486503000939989379451975009069749333708151476596730691756970704671302523035767562743391476639825103982839630826122054213390093425185683043298541398085036243467498993257211674788551196823291817388326811840982720292781961740255181182696311017021213494431068309222227843524380440532712198496454254755021156995241407311650399726176831364086539665023972523142300080489501724861075650808043126667400675783355149485085233964779697314247195524389258480041733410633140393940125873796028059844928437986501743942275998273433851845369783225941281537515645243628294200228560231124144432087516490645731835705744722475475191568758615370055147269735353393961207394338384641334633911408237339523019988715823854657702261803278695151929487544383640767963148241406593850902606609607407397062533830794641354331914687790378251686552302390943942379358835395070968239419298971825322397703657420214052056783468593905379026314557860505896784803386321510587205189323810430050722102116641582048093901655911273560235891744362415095064643572510513450290408410223968038939467982133127348362797137690784005681556371461572929999105132761315847269504329976402571974284607097197146753031713917578397789350226378874926449786509054885222476493217341314135229269986452698696546941018937955549511193727367783160482994866037478573417808493050332468834440608659685899725051899316844736879365832999355139290262489230710084377898290365680591481292204758402838619581564615988218293459732670649428888917323664248099069288757778160866975532017358093213534289500817524146908732400395649173381400160728082777479484260752110345163480542490987416777021327022896730813427126713827253137737090809058612005938418858992070433070059512203653006525057340021974887135142902735307356908725254110981411146575869282997199199279818887063692756828095896440334148497071557916040269011888121519492187937125084960933520603126479156436428414009920764901023980610299193875385840075747349186386925822873614292371490988121160030843742273074793052700632277426634204347782096104409233713071266753663327598395863855539115366128175241601784639294699894324161066099740746963955122414130746396356121125532923284436805330862542445588315071721656243325678513801998139774788340484460484653946425792167156040971857176536160168104427240270581225995107282465721281897274430434119793788210251791146239835431433503576838271472250273423785299138109952966855608810109053481162376998746840292281300727642201099478572983270585494979391963683498106840928936534839145487467509975908547097475802261962686309241853297293385059735257098119337701728697406472486476149852712900303678857444283737132924014880285117301332667926294554128453983302637350128440204901470996955411825024286950023849583441485289201539141347864607518828722031518295133512258658960415476130100151107598692265068777875277716707344074600692369568995291009850062506774811742749882657611796162934466744742547224850574331589934695180268116133526436736006656554089167635557489517923943190013316438114013299013855235195351270848176286580858685628484463102864169983246763088634927028862238409904788180186147200096622476531054976072381485314046537742080112986799613700134379124784306699741454611718854838919942653300594061363132284326100974116786105984230950798981288796136210113264038276663215056008940301660269441030277286219308595855817996112427662558385554326395972230806938059626484277848173146508685224908859919991768494050883963858059158476618048189317187776968149221066070888151258346817652246789173585171444359056861532253841341932711656562394374375645025990745608020026154766070403798443477909223734219752157372078872800232166752373838876273232657923442576851990770128850147554026479824752676844720719570452850382939133777994019022260104492525779150451150762923555745978027760747793556175837374734404930641074171039131809415187095193759289995570004027444951765408242792942611094617377576580647106554023691688302570337190645150821725647789863288543152415040121226122696346452238358816626147082016257743583726428154203415923950976430303782450689714107855242913009170225833500791145790328105836856246405749511710022542080633738532032734925561313465182879062121661134352087548394113094194634632097261578972138713841284082437401192601389306707082235594697219987882574222705444146072417374232354594084675601398439383718774813593527114688827303504500447357069125610463947078380452447359775688478980191168834445742522161781401764348858391042474750709465092754307189716676948351699048084461597711012619153599735035482943073188695653238475223317162388189812816501240801965940247325069682589174519276134416514054681831718542165016621897244298257771358821985568528170822755553213966430074402867765034209033180204588406842383531823895988225607320481863582892002796821011479153863170095930948947349124914916351489508031078539114227286521166072122298482015520538610478929355709241824889754653162326346802268763639713692974701054830495246600132909085335606080534028852599781711370652504156689635903912103515379472409082565302385175926861013008149334599741747245884209188191973320752116633902562831953507176909742769170659141371410795218839762387507235799383485987798516397399847052258979858419145822214584653121154952632680867615247134703959592374416676962453838267556675739599529497022017525811245581662490309499764896918832542065931144113992218370570896376372782780348748239057499697182336374024538880944165502401556985948213366099537190731691285681616052514725650942627887539849634745140329653831436744763528812581789286421312468737348045388897355461470559045042028561544168443795798452605940086158654460056414204437874301158979822848013342163260669303993355851285702531073099025535583626082397918327017362934431103459184701799046734607687083589161639786652604849719884731119680527473376859051576774498872558269623622755559535063983572369594676642887568325832031632834815916190758452167715981616344962559308151138023952586216465513148757369263119977469681402133675879161028734842898462797298239370973102820854282105645279074750419080747511582735792942370433025954474212248422036362303548728829637785222450827852270113376682174358330387360670443468346081216722664677855991246237781873020217480093020061144345962564077890425176561353341953880466652045108880152806737662528088981599067601589986197349849944439463687994063900788799694404505770536544674428987875221247265518119107567710071057434934642963212908528759896710717431537187724886092628904113877311374626879412404464747882960150495226100906234378564526929027780847415752054159461880295731393254011317251078471299595367313872094869830431354608682098864901402922935693747481469481394815134325444257356108467609530110845574673320032759046995206309801057191142087042806557573683934152863670154180538379425378025303059283974385421021722989574481570133307361264576340389125271376642261880761176631350265119679424247151461553301377066465981868392947059023059315517920991745946896442349601604339630302546614319749633425571852462556927104493671077116465792890010607745909099797820398884404760250937832585407711290133729887059326248401155457896143025424389683771063294394721526053870622436098083970548282953169133961674915216937623445820722971717283968745181525451636479806847444618501180201492061540966526665248058091732412127440919759870583355239770216277530423695955095654492574630615616084243080465213301569977456114822752438892386623302046071518273295419631718102049492617358315690492934601476794340373546674707964773004217169361296949612352679878508981732137527410568346932317108006883879095448217482620086105669324736758064015259604983943838562534456983054892059412980426452570855182960793653246524237390009001767175823613383374168831657089456641511533917689025448452230238695204876026039234412146619484557078179636525905186070513684629830575320203456776672741388153704857806306399548275937505096212757855295788903051468968103096136050255698135685164240626701060850076381821989052808726874713387931382611404415208752213456270179275894840797019219124579239435758540669453192979015767384918671351792127848864162051617455740904472984056358496763240334123503476493660886859301321443219070228916864464008619942335040313799465884753797290817167893523042987224713889122653835930096456210447738228230125449952653959032506574415189863892675061502529172323207965117769561777573841857702011040022822987145014715717609892616495913882224878560396196109527806273350082728771120946150071990324852039298935141643178686612963291576616043240136687213694017402509677691646965300387688864871937162345005934571216649208517400628226271448065930450148837326044323574237707330640688362031658040825145774192894891005720470784437862114702640564545746656439381677901283729527090135041910084247378242405339140081979371162007709828614849427923699406656532756971142705304151974405656617347604495377139007894447668427581710533616062245836772024976127359115812375335512957452508630432916711572852729029088279081641607586515288092244534631007219952125491133036279183375521644675856678424283298250697269611236506880265800452531757758389945578356848897169065158476434399131138771136372472426879825249832582438025211713020747867700140105735532933233086195787514006749950080699939496815049646033456237038922469961079150741486847175314960661410560282012127382822777271428002031729022940517366334754785853514652835905369869180251024993870427767563481502154777523081230610995595584727645281863581032256585248037063770051029953842380853892865395718964130452348448525385574514946974570409702361840944952735283306925946033073007274781409211251904684106845673963084018009734178233989839417701555169387291483760000974324004199067512785168732878489114457609656758788022007951352168777951168208255372851853641654912022249737305309738156371554666982198215538482748047346271880128283627156850554900742190034493971280431171092742669216649622806785072523914264467397301765225020797071214026556978348567822957851488007043221983686774338717242928119949470514797282390950759287870073584175034823501031300520524873221510265421273200339666494608944686889244958665665148978809130186569834381950703407417664893668820133572055577735104318323910022115545173828106545299454893430578381925116801025640093178283602201270254812020032757109513832705979339648831500460393205126891046459996854346816134149568325938897342795978795681680822410063009930989315381893322998448348778347601677918131645808601545428681676601588556510970072349260961901318987470226872169373183515872373173031814424123086980184868948138152444384503395170366551010714571853092310572199045947949087878543032596180405227593957887699187130440007418762408887295182696369931328481876162969179151063801386757805527891174752739359737772242755800324421228229880693822661273034731390325093846961771866803116960504643123188112344932035419534561143267525261567607563292293996918290271892605415679038783727455988210785963188398886578529423065356003755203452419639773362180828755446927860972073173083183424814627437436651826552797255003364688108010791448743896394203178809825002446963295276770501498776289549297752814271182432130910673640900481423259528610798019618674667547297474114194533382138614626548257467834357836981464754823851550392045156489931604757335927552193304826763680707916823882945582249744630507170584476329318034525697642270341309621932969993120551581239998874659192557143984041639426692904064910174459484291021377938695478390182341517408490056057671831754116633572693809754553517944706588010467218299883361435390693857598188531355932019400471868878118059965743869297349498413650940126021385360997549594275532821524767704225960023730154419640367752351411478406426789071927098842427193888463233145856336724431306191691463639802456958678652038798900391560170694255794229660527056038372496738654355493808615217009023871325202185097724693470975895423058094057037551168511390251435426798042846095102661094482544668271729646349922329460215682269106603701019311678580978476593074203630352564580141574711375330050287310967835991375454963385276457379710672338015832152733181078381539888285484072126446054301337707856818096497702435487340457791637118369203809604081444488866935674607254528233092152807288498270819522210791539632174027242858021352680126695059540577363698887830825596425837972539397356895079720545382384424443076745558640212250839620112135279786136361019603338809560220767550194538318276957407091594713871558915569797613800984344192724699954492747510465240013693968498107583076230750410736208389607119044913534552111116455758902529534028662219996132086673839270137576819138999829123342368018939842063044480679000459132124447346146224745034002766414217543793121999970123690925419823987411710614792889847405389948009242602390936167719067130307671435668283924903693032002670267485533983625806087354588208918015753409483133849248494887690376683741257940259696096338891767975774962834636761055436892461806709213863706088317538760465265453213718875184275724680939405310790038741919088743746942915804143509099012467853844041300363025969845320451865275386709242612657283523450507502983826088548441765924756783398476828156627925450794373726685886285613834050753643228293091768116176660702756956983665352684577506103483346564454015091213116768572931351827171025856054897652756372026060278581841857107546815006251832788723071243678604580599042776041613947029613137706951570023928710220242756965316828012949389352225575310102595311976116053989425453644045495086086607605348425339400123131150145715232984381103043279517351181499851128268735631681463296762611092363382311770759852524864086507081938658565692062544507686863866782840113322278696088303007546679580223913155938178276784234311654331228360254309697262818471414244517150126798548363172227269824215770964838459689593147018765181927782357888200815096253469499607739124908698084248798380173657732196906985019311175843123063143819324134152734558132644477863246326341016115095693216342955281623841610487261189175580069334012172186129796684733747700697807471020019668792256128228386504892945280788444193536670081091091624830370448417376084955833836968653442754219140205999985174874363662675888077814082998632369728984022144955900531225976977011343114174573028965007954466433080244585130613171562823907688477521815608399321901387718413477798017102236378149362403440743157155986851124234417202362022759733006921685027112510665999360648459117780149702108713016040538821717006975329724712425414406378669124608824288341585480925997198288158411845334843151347986102471157511798929445262041317536631644784387403512737654815645708920159425600812365520054913422377973955766059943306171620595534669359615110598214015299536549881589809147795376216461492223867678110393500263840690678535540708334248709230658583097488732223276962902696318399977343226218311249871941511250395752838810751467961417262623087318082600617226294638586737257917128453247748797867746489584074205041983428050793496297251514989896966020881377418185094855860098638408328693036995978293845681755487819348326116576521260744970107560425516140864321787099023382489957570530973238115910192632428071381644318981176802977644296918020822893616913270698588459962208590919715485128454299855619356723323068657815573148270892781105467013884452831849295204556428493496220532075588356596972340995948990371823194873959827682978204787508916135140865169820921688557753527227175416600729906891490661096505161910610180105214535766156524762797229685301417216191438171887386720269591666050947282278634753666489973457399236673778010076308814352239912914384339602826840351758300391482398577741918830136289216025558439646375596498694711714413482201608797405291597910379839423729166301840717669271953636659385178130778035222682245668204419016784959980046437511721676390449708106905744756300146911079791927871709552552169185629891897527581172963905920962537662113528677500627688204183322796592586420678799016819253277049463316285025660211945251514425185251337055831684269082385231761220043112285154191092248198403760053264616448578380533819607458027487863234505527594350104481626862627351583729628562276231455242966904544982402607413238404725496319001323432949308475462796737085416164861515111949769135924574400513939811741791467312988494321899828872170449168035294264669471769896529070913048248302680786612773614079355887308380746057238916940487146680401726825948450239444413064783864868297189788153780197425014346199637221402798990703714675586222852065633693469789107182717036426588972153252572345290341808808489537232596431701597500800316276045681062423324254513323943525095611228150487561183151367568644537614817518000230407335528410654155015511046554439170326544027783377994710793646082969479213643991876948153690067328089621861659325519881535439676963884273869312272373449299916614224577308478467472437659882180500687035232668288182872920706572145341102079227235237075504870278677244310331372580552639552752769078155863296462616775009999196356960254133076967634744054450412691368202583877439380656230477544696375057864442577685609060255322619208710032040551595113048940328063383432420632087194591044504156409590588976373670152281748058356715997906315218665175574487622759841756385296499561900530234915240528071137151072350868689710306104145623611490284997808356987564903716997667961244201800338343880085312535750754837612113343516692832933924840858085017823522131471660408064941995409713285565667267044948727821437783559279239911360261726283731367419634606422201005864421828450831723188275863173723353824176272620691146123597527375128905061848525816765118057943777113196581103750279568545952232989443292599829050087040755942723867214096586551703624406565504576515038230780819128065983166301955506650191466559904069422449253023516065162426290688275320239132962501788654893244716544684227922155013006459982168389999599157682405970035433746389106084680774400662785521070813700201243756135757866729534000925450105588017277234253724817435083593283095737670588651571708811164849562583188712051783496488031814730044313016264247897899253623556078777575332464175764890104573378351492988600444821999247654965619917935244534397956554472475785210723360897290261601466015213348702817925065443078457983371733527306606133554796383848024349906435037086791697839772564574563944058646646923821296385090534486349114164801670006409685664561392280774672829012026311188570794890722417370433510925732603019260742333189190987830370431826674968891313935834708937712425193486628500300436248877649629325782352780202155593602565404286622415280995847117237016551308796770903853326728881058239703392402789904136770696837583727231038218444415440333383695349612483470948950594072510994789432803470575652527696444721610449799514342939832972915048137880917105235792737683492367412723810818952646270908507900779363940869353593095920921697239481919123916079852251325202655902190876736226372552886118751727309966948342038468969844331981512657708469189526894660972466957953201858557422891227872938476720955325124480897269002005253930110565843998674016410230417259381050258282733808399305006128364767714860921571590987977144884515738202309801426776316751720360612080271945325669705098634705410132294497726828667685750656204262485231986862140555563966275276354812118459061494840688375877774495707823933585009678258932910865950796175226049962252861646251937184379224671790506277268559356406840601436914194252881426062263062731815422173311244101574041154727643270879679218067656473363326679979583753090124700896516635222736232824361275055682047823008183683417082790230056193174597337418903015169790009019019261234365649475175668474761237054954979701730623307882259385997009297839599358209538972677530577588943126371008734637991539136631194605660149781896726624414141385543005189609543630894156519974363074558675958985327188222472563701810571120928257587464884901761917902216796592673200237299490428871721967942961683571069852217395758673269411023625781494531358770267940915815786953624370671902641008774495185561130011788222311099321918617333223832115998760842650438599715012426335273027343653030006808130225170620779655513059000461248619134999778704716493680593738550963554962781919425817138526700467885582615689677125285487386350796667875017645675675290610914173237161234465009612215372462378374915129833757823557360793512524412336816393700378375264888992456898825270416694374717606442514854895099481112380368920806347710173138552267754489148204501598650511710896055226248899216786809788660234504177759777365242757975632848491956323982899636670438334471774402455161948074262331947309972334524238605963920369685059389440234093269615603052665436034557752170299183632908315184356840215066196127930940439826675472317397685342361536639756376913432581400508483875670492569106123625460422183924119504400477579705346864575971166388416298460855141424367443510468926441760468111723837039137087809696199774342695401838068215823089412877692570124311820908691352810263483213766466769442852198808456297771627857859172749462954096034017050000575936657199291366352891924407529809338398965411119291025315300998355286745776573262859974632651283826121808661980245155884775364970627905095377827348530764816679033158161904253783403296097506376996254325869863934384302886604934735616631635859944561061171905412275293301278285234408161829305841913714791741371787865669591261718258647767435316168102153197072474128706229599213014201184972705144749256350999351620957915440096102304831477679851817714858318425397076397064169951223539983703742743121209805832505020662117663070026579875873001934012150048686240347288401779396793741218106995655387246904534362724838263235783340960261548390585013371392126723834292676882462699793830965296256050738410693294205724536916116262040660017545518009442698945257765339770622312488871189170522336916129958502367437881141518241175411015390006417824409146268241674358762591292786629788657734660244324114410186544146340479974976851681066261949068308067980284959021529237621036218177968493170921119335307991481378451271979028776825853052007825454025219589332721360814298744123105776029792572886564194798458460390326987734469672711695153511180966177980151210065532609002110060547490216127602375614022156293202953899707571848145517117636303729109603471848181578649164782954367282124922506780762514743312322943654404558757178567624584258010128080291923873296308232352566579948073356464047810301644868640173899982652771547307072278010767460713228436086344974060358678149960083494849282862887899718072975589829826709794686028971871756091991119669755591942339498267025638823083133753949365617771023108631527984853341325743272781447624187681386192428520925345229103963792352935529916948845278515232886518950875066623143439265027238456571471765149178944637732241028906780441660126529767042044412020248397967065821441135752648194072365966734652456767580918026046187334854459545469064335176125089585319614045536268925520969309618486662121804807548009908991375008915615329842124082657730828104577940190106981661156547176610553153728798915923922041661161687973876620185002062587183637657275125576599605195573996235306872966155667735427635756444624951626727965948775842101545078559702347729361450221353029105068776532870282653556647648458338712935641708317652551592258431008816890351407021277346399469428629874092480003741757603096881599339263806199412599969402499157057073848272992216216109953549027864646234359323409979007604620676118383874102253713928502228605880451987815988203726918505920040634923338092736401740136459768996555663813274422398156276466043419043340667955117526887464128693608414560854994855341442879234341164522680096351500652245485273758872932199186691675279208710303464845609188372349268333180891854754733669848433891307048319435513606249633376029869986673533321445124769558082874614305481577642060812350788711982444175255059415702528565338562035136376811329327576177383910376036074744476812166914254512213048777567269416715904925592751167858173516365026822058940541527743463712425964823475907499881408376444008648714632768723934411271940809408312102810155121850625367080479896756298102255648369537062649272337930739718654251305731739374993022556833784663209434116992507385441806263770477896701256988824741678833151514682209903928689689143294695984875608565387814228723781663977624423721297698235656862942441079277844775318294400681342425558861223966433744077199690078363151337241554901663860903499672777291510829436503543569205479929642514411850408802877946435565039368889691210561347871697948639088692773063525041537731629821576541033339540174888891752807397581108296941369678600107539042246154995225434570274577094614859887044889126155667649858748176456101158312134428267982225043650692529457120291600906845714224358616490551323011750681029556248904524523918182542255472444324210318728153968369986838684866559605216037020083905223801312364313544449094940549250853633028257279568883945227458844903640649068350679175912477681090196282367408728224589265355113959186180122695213541440695481928576461986236069512224170990336721239897493825098267099790137851545243546271405968422474499489535457586855622446730923057288820516494722180411634494715597237763574792499427395517619986620556002854117752396478483545836043912466460496472661238452139656104351759031487196463741955277925873739966843143895924799132892713422911685670416420286031212930364319532818643769835522344795831253505305745061430959298778160992994805500639834725454580068585417178544821349770680766520539804388385146863806573313984254365295144513459977863137723951658920714284472915228509961178388197068136660671303378539329214421173954326408521414017467374985042133174525658261972267376268453560761565410274371071853305331011424818726167789777061010744083636946599650290234831751597639166288005278853948286147072188116656314157032325856096847244933004809421554540498898581568275363973984470829105442342426895042875614268048022216418592308416292090107401719056214188911015486625688450245130230493949685365678858901344915666481696287351071840713685240407146877128499058238681249817786861605702351410763594280563937227837967569649498125778687642467034774335819288960293500774823612308543392592016393295581913780870529058223415214263431567015801988628624301474059265250941983508918541941413952859359269732549526873485287616469541672821836469244524304783458283105449661327247051594172009206952906633125604601160718282371022223597163203932907281361289157578480256666285173934517951850661868933613802626850278525727422890596929877259936657734681136531397710557726211553359418591065074255807854021086229251948053099515150287794834729177174852739494464895575020913616588505573133096719993183263668616665936701240878815516524124715266946705050055835857017607738134346494088110328086055744157743319744543580723118872708906792166104106848512262060421868256229028003563019965196875164528750596757927939317370616875624721684228138379973460388449058356466443953129293083552258828056510172091756527132677909562378623407821151400769338235086937105491639693351842640176455916319247942510014928496912866166612392855640657866663666024477821782607431951539902084819100223320384548644034180127268206834449232644137628635428455007677053160284609991863920538198028827832090928597623144365111400745817967270442107727507593481881110571927837860161622837256154635755785081901025382063721016849531200125066124346881808002305266294696981992617253100129588660879318046316600469079035442965852534567575897231824864978354814035753817505116833851015923177723406198140943258924539859396871971304605177470369276030919662969549063320746330567585684760519707525961122908493767415281509819794638254889116747313038105003509784825768911309804676689871669893581357000789642980958925358278035578817551403080441905422754689523914296304425697377812948064131680801219942454540307153619104091190602121405353577169714988090711371858949797441862754339383743908874448369483227435984227762102816917057257780312832974708330696291941073623175840808376109136621402026271814924553081673535481263330561679734847924411446308605887623875429975267775657289598508613142196631662051514535012668957860428087101292277441816150733476826090797484078672037430072463007308300885201518683756002021340085396067878464952255543770182255076107016932279963880489646290280174084553114559922922147612878292892445939961127367806719673073425128501264732965181482823828003777664536618044354901961593666002601594108837980606900470560825187269759016690113703775855297467675245782435736160356832379023706030467024657370402567213930650601164501520117658219440710656700396556962169637274197215928064459743552671386224346392468897855950524925810743952671525576916182600364237098122850258265997055790017651086692545295297460211107260560990608117710451720796713780288174165904252623256219215558932619731983878072178264625890386118354258937980604414462235971929510481011219408295101912597917079681544488022159395229526807899161526581435357429501565536010379429403819805018556959623445604390235671287316201769190557431054630726165129292203965316537449932577976321857255169647661466126858644303880304441757617928048174370139986020684554498750214610670419897720681051477187499144470421784164252343547920284323570507598125557252855137756188282731824515473822103388391331036469736820960526145103738653132191235366725791575480282005720780492847645587125197822149353691336868945129045160443339766970298017618303234462465957592968849971079871369437782175117284546727136554943567565238701797158354374433871415519040585012356517498268426380382431354320380534268941520215475747966482520725298317112257003009257523896800462403382781643217913821624705349219271516242292006486735478920849093950606335903101571382712847192552358725332736704401379795957970425553691761240550409961572554665037979707097130717658016219748099588284458405220149308800644700122376139696543296953426067454461023135283749069543499657595267859166408967594943326114461170810517692837531649246619910884997852380958523163692277337388859774820798131980682392575705159522111188743572688342041394052546396889577316611944292415764664261849815010268881868595332534996487872755309674366844088235038810749980940730305649662588355502424792553472642287591313029525247612169615014144830998481073074022387984531177845452834390807808690742963400594746410662240142537142082404618128552001046368240635270942235171719066755128433570075901061833068635461020997189546906578424782083656296107830973735948181989674086310683431212298991527363756378675168192949398962852625294045217964290229346545929659050286101904137335467695753589797875690421506637538429954257457612727869407579056498472862712868270342478963741428506707226161358332119787280276480317521330510423812300401403457110792428997278857716878177713300738719169036772211921537799105181712387792528675851497593304531330415109727698049794568162526535573748141902889475287030754805842348689350500691586283070020326033316413666949440506278429071034925973147056939539204880564183925061091796277523446696149246397843265554091764530107265093593418003728102802425194014691116665099990271554143442481248474850032025038007243993394265638760507178059090137423087253569370386598490665910287513046179535808056097290513789063269891480442353610097706757157468125245635141494725250548167472865599713497752615740301688077678891589336127090550294073920125262931596513763834529907323380483859930360265657421606603276358610538443107012793043041161808221187228896907001502010246538245435786857893185687265977429925855506695091630495293779897737395084028258336515332750804869513184861642408037799138004720915395179850029066361332558196954079085085126577486824140944375422140473228169841291731234072649481649913070133884016205998557053256443148586727306454096640950469309817676016059854194905257836023397445368178069446164020513798135103562711602286729577581950335343648654339624783676595172937318790566816952359100223856987341247281410125481816339392560167696324546448792697672997545906329262552486142503134159829718251278873141339391438088233494190639210559765998904020120787414879234819378465088704422443533275558860806546646857816561162022290384408672876030625108352236283663309079322563007472282955169335241526190429272157381569727365623281811386605154232095836223762996690301755718394849903550204957815077524703477852316369725075991665591440964514068197837848246950771405002945157153942149425409836975705132540059768654866026368840676501931025556859115560115897455047691761190891182375656760123471350499959645352150872758105831884573708361449520448748250396316377292754343919542646182521185204338587715504263276239746671079274216448388023169905938831255770741214004279435560579183828458073814866640451388574619234533790301294698030000138013427964424135323641737956567354589539437572555953488047812889154355643414476263085914168819959988826501796332761469419268450069372737139321513151393037861376030650966839061201819005367030742031111551533051596533605758772081689540750009229723978857274401902678662030553547915313841183785051197236820872518287397046751417069808974790494004697130086110133619982936948164943996489706119419236827372099424004844324887193158713301921720577271198442710223191537561752256813034180225732379261943697689463939857756605984816920549756233603478538225263548598478199383127307015913153508791242323348528754494672742579699547854375487723729438496385313000444262717338547382463779404419591299121250041835396531182565907768410771021392998755992741890953519136775135178824257103134066674294896833498561188242038747479800391886767189808088980755513768319056368030294244700246160829793495829038256440405993066962879641415924314943294438068838933428568024174476060113031331400980577648594733049704648926539732917588505089023420736120803335649935422669161053960830297850656518330308546449680274153847321637827986425804087855715468407941799336237664007064780562558161212805271343790168950017902033969610711488732157243081621830483234290652917786268312040734287020795569503711023652305528367611527524674821394281656720302745119927168360642742721632702185473169554024539520406183157073096954703509227176028098510960505172826099845043237338463009304393942040399758591756123012581545825784990498203800871389657879028174501241217143303822424837135953934111190014208679771406227355988502228145059427044716202490584588399905214826314453211919822283878819427330254873997489705600352278791785198191046079311327967695079196450359554027939562411100046418888283242882790778676513562528024130326297666215524029047332696120218926071581806089355701347264710334885401573488432869600410172156507846403973595247183538465175209057416230086756676985036673830502782860470426967550019433992049528963831782912958155765898067360902079156309370818317660538886174174319123857394358414732300554653548309314190372651097399767123056878900157836334273513672193097527954935967571095481016591017440527489963986101223323767182196127751617294178672869250209654137660874437164754296792476747269521360110204828633981962696328656039280722124858283388064138673009827028368409238384699615302896500727466125311278708988486972244693133187671574976936748058387529149703490550241599076555432719084750653126402692860755397449368694425927412274713576650951835755201397258938148353345602559237098270509352408899527258593268733716935921425906307792087914719758986441615665745454291364525489808434046934174504016786204253037500149211737450208015502177739543811291764544243200865047795457826594404536884135385918751380323348801646086360631783700334697863547540057818730486087204653355844341290736777204125638946319645669129179925190210427730706082861296168457462428632881412232583505931821726510998425753381592779296929089118628178318208853721137772438600840012632548145780989951385671389961281646800281364334502244011562195345794948258567969710079489208026451126169488290201998502567003982439057524797568681908636060142123168902854228708823751414039270368444983432745644723606171609479556102827610878905375589688328949677686432777115943792198956992684276276279052349800029511801209968316994171121523603102843279419061641334512099285472367511674996721070936776575866847392074920685708885152139667245495862443551491484425522178931162185007146998868645186245328572268952870046917719122974214127914667938607387396940746409995650496385958163306173754149620445058091472211054935630742409354233374598598071826137560712187819637371647615834949299874588898169371005285353355359778170166123541089603373463530372529758960704928821218298052245445101594819222241602772549492706142838020928709190068486995935368594700126684946982046126928385210725083347715413837132769530036514592278698279036236139057453488585862013644560103370402626333225315412817192800611418425757730135718665602152477540085582540715669813871792278879114481410326850630441425920609669377682152137381839259604966399408591447325253750330333573681595044432288258204860819084110106784729566756868905139136938107460462388283238420608842606760532401982252351125031494393023567171885610351999096355976997390119924899584368420954974486076486328084068574993680697253955786671284179383822925478380284782289306361583270284525793597346514904107726112081388227993892022748699454158670364292374522649844131700639107344569781240920392208291809924979921227759172515873307743305672242923706720504113282127927018576240603045027107535294073061205182822332996663904569875961940526880863126357920105840250906333582103127717836627117949084879294325622589983205613610586592982089588891603374644397198739625300441367572317404264042037678980254277077858006251470803633596190880529694766053794845917002751733959013499083194788898704980770132722762170791683714790885617464531413382953914938394714018465963068368338406479647613602751778999765288605351031629929677140675784343502207426379345909231271186932812503820186820530799474228511711538766007478196957126795162171430108133460734559521591728297023716315737006147195389607130048973599444645444974418761081704940101910269820222711501453207842707395672035976605429834155222710230412232419337565359139499328957917725871746516933039262342117776822314409249724437784356799380387022795638810993661150613796981203347170237363025299828572493925569412820517976746323840009576041545445833357185528830156434277903806446385041510205388951719622286535420333043082554139993649159792565932161531325942498583529179645450720334728855515230683152621098918536325437893922439200599233264866446806886068216369115455044822282872063075692285942641660092551733176784088704201923485199187514748476048608623535931376670301329750251226012304400283761241264477089313319162747360968011958991121399097443138276327313132974642976501674549011324412397215320199899724823694858647283693633438781216320171443229650751771523321323321210063502924089014790704498108089517301812744694844980162642415966496776026591269094141518574811767305563104937433345382180094148963149882169342485196615945675172540516474599393730476967704481696797463589272254808558145123171158007907788061723230894203150084671036760732793739495669545209869961165453690889781128630116922036436855290737705560193068982282968426805168128311100664092700815046241787870500437394831142801698306427890016495930988953092129220046539252868485269127592518713559455694503710149668000173571972843987312671318307684502239935681013027769566752548357548403950114605784345764939392861992976141578953161375981955394551675949940612539366091146442013328697489770712975910126404044735380472931303988268328479866078684697306569311563659838429958859431424747847992845802104117446923733148352774617773821141937103289356131700238353247146213262408395380075558292507463041481901635145350440589809871410100072429096390482885316863304358864847090459840960351710039579128039364059792181877860379798758690509490744173640469619777768282072882502135714647222828329066435228418864991426219901880658484783098417902461591235140148296742300039427079055302805594775348853592599422316871252149638852993292158366906436854266211414944471935872299024515482430999552527695061188978441087354947961589363760711193799032013517241315984045707115455172464111851916381555832732032902892461287850728174314590655942238495267250175881812484525197309436778169666582000936896215820047702879256774383197799126060822680399330221745961102808640434566639051141771466725284768631766056569466038029040297764243364937561760509341660909358564819779393262819844144281864320210388931355028523413707013191522034099731268410893473427277572235756001368894332292472819781126865060380427238709049821132907640638049308123047688732121267569503256281522248281985353474918286185297573269992049522245115610775438296165046795768186374859134295652768179281672464088958758712324607802553954578761406553966297842931018400960765721867351829428465994949242664728024476286247041015807474898846636857213016352250584922821321526152410191065060037520969265537678979492582488647748477700776223750344756085098953702870333701863566264789096776777449162342936016510019658667615599336756481124695226988934932621955157014286241436752709607822917693761210528437739195255282805852396762648865313854644385844620907527270285133143460065405874078454320989926299546668052693139658884645953269590466508727176404202276481655125682131857967410679099869418223596062901361029435029297237958113876897136472252813321878050546089734072483197685695125176355820600902006420443249530625028701769359952573806329933462151851067973753369344582654679599906150123586179462532384056120914324241699003485384788736181671163272911387801868742864429213424156602512323829745937149846680792199979752446512804747733304314638727841140729056662515477561609372009455690471611533911124923884803536266856829011738773967118820400580379173909689573571533718684697719892585781561702075901025316865061329144120093704087425313474811251387518044795597359775656297078692358961596920351062959714490617805163017235487033522813705030027156980891159470027179740237636372638901429847600573293016116181329168611276251079041573144664168373496816977004567668722448691024496125960531847412799667880600328976567983703397660010356368570593898429364906277201505320285493845184657462535306119591332818819353764985753213899774355123069635668447966961962856290438497499755798406175676352662056717372021761665555661839446397328655036990133717469572898867171569516572236269399015328996382490235192530855545063992294889127537291435885548047266023386141272057652019335596295892084136268317336405421588588043715233079151117627846274180675904971294111191103088406094351857229144730778572803051981615008665254138203301095676765930981395714696997790033805730275329852592299675267194524469253865764511775417158953715418399603889031289708279442568571356553653662956422532084428081060183179227872024250104790666737201457785701766384377242755634639651456067039747080333378458587934748150250335833337248575123747630928070242817566078211032049502661732501237575330175661478595705906807476158652847180347392171585853013520025376556337024101617117385794786700535699706509439104034634701205057927085725524763369212227319472083903026910317008917664678406894388418087089513636151849803325637945213857626953883665221998620173732106727178558861649269537088128864226399142464051609065859607780651584331702831749302184138645460635874366690415526333608700537126459248896222009411126805560931027867176403317575598874665202983569473020493196765276626919607245793282495991794866929167444864369381029917989749487389525236935540450458682180504888842065166284794055962443944320215009058102514346017104139214251510361281175730588320428456198202606434947008900916472032068390193698336357743172045669621455296614550576447245812651049525708385907511492243553377555002091456832624981984331779112260947702193310705681245852660746810411293668751150488235534978508398157407479025070325780927484053603684816846826504584199602031622874503442294752963725298035369773972615598662810696795994061608357853668618580950094281353899650594525136731330370333330186883943812362095506170637520325654195963502535103210125609346323031459155340035952762772582306581779310408450370735669731089547262561448707636630906180574066414869200481626685455464667719566499987677026787478672285777107167407637402215538232181559500474438376133053470292250666270842742451391545814589197657886690042558530453110051944911112120486658533599221741819912759087094243532397802184014582705501516976650085946379087324300153350020034862633925106803009025869946157582957572668099523502034555598533454474839455059604367149492649754054853979887060567780373817665217932582084421778463643194862135215208147788191213251426897861724143975503859256009496914555385271131315278152904003888332418103200015273950807461328758146363412148415830845417412173633377344404970723497873948690756642831861569283277243013864108381928852013368915374565146390787697192954702948008049960305183470585935680469148147833016774314446317909771187337527311327359391224691367066218038411660843359924779923930429064653571461915945697112623819223400461414522069570645545423622140510805682215800995216577019620736833024116547819278139100578780336865543973838354402392847960774152825763728570494574125679223440575222432334237485678886549348573842886081725594709568443886748701497425973090077398442905513468687391880149444734184473558731332521933917526681253378901095943740311404414363789893504884657383821862934779654362176664588948336669009498383693188733519201158928289461762144112495285161741732179200825388224032369010511613483257846259106339346985399498351135473715328473232305165635406930124019895647062560841066704688659186888671522418220207308982560973581214126824542908851636112353378236858952987067773070512605983848420398589759916790703720893768044764447783189608088785704697052264239021763174364033871772927476600646376463800727155785329855038182953767933938178981121522285343617497246510783617851738925242383688504510215505224010870774618289297732815921812241242822838972459126350583885203042951442781579861918407893195045298446901684654181835368050727923710682246182687985000182733085836816822216212615091889781588367959142779111732074217388562321292023897822712558593436702404287596091995440907368309703963770070989297129587612899466615656088507386550563055748495793067159629005551049319180108858456064271768719332676721308772874296256738637191906948279372797482934382674667885673117796133238607906037493679310639341618088362700425633489681231051934445469178908731573211842663522052459073764123359972675762594815172729029077988257202502383479940490519227840271018596332306517436453738615655017909187514728377094156843438040677313621949459824108216320837078745292398070297918741726160422818856044200236635850928284294436404912881540131561600052644121791393114512695437446542357743296170920601027390363404994160033321013009716941971755352187901132329431855746057411774153245811106289996688120725780061872676845595536722105809963449594326751785799349900231382095576919353516390810234044320594082300852652643294580460213288187094726484439674060966113424865942743242660964936950216608476275325954192476869960721084135158082188544587107735352912075271780661684094023013781621571094776234566452105087441053715851464814332712214420574616053002204356656333746454667300370376868719968413599482122622518845030081314179691904722461376926626589681820786686358926219851787275608706248243452027115494417284260900276629217695751636681710889143026747221917634111163389359486212949445588425980468782479589616363235243758453263462547217704567195066066107419823785796084309944982511411745605792190366406865824674109579884098076067948139146647091217122419169729072820361040028651815748319776407828015331160806062014596261857389658244166937349076188494475722613016231190854393086130647973015927668322492306048162601251767936602392756169414688415531932192009919285990604070485146092221109863697214787632468047033673395057996444152024048859694862372854747241437425533210877114943731441357993163925870691865357666254811109698631203421348785922495799253079154611072406825348031637310254122667516320172079028665727510936480220539595604902625459129211540613992181813006538617509557162558473586069295494274821845122962441903227796619303476833260504369299669937232941674835815756028379675508415946990940088049663219328328120708870750679638422065185454543497711525716995700991430296287605122221386674794553364411807891746094848822412706737092621590535122940372964074491496093934484568062868362460898336807429491187793554137965165375222663671467797618641928639022653935580323481424674963374582750079109618615770143005250915184247209695907418294732800844582177747976540323644335676693656298232990082538373056109222028950623994270435132215177121992806688676057661216932304712349877382733991375958608123233973110730640450254355174694272268150344088035775762273129699743630854260479949845521357316881098458422766106131898650072695105674880469536921903919716199517139189881064611321369722330363129664095090983596041055054933750465024961131308841493949615137071940693795023158754514383751661810899195175192106148848321523795045233501667618532636512934985049879581910493071617616167744061780965662750444854698981258879231533027457307198233476969070529350309794969673116586534481297526330540337733533723425868208955469993307782552076879241100859225841250294396227513483637029475012156889089371911716740377197523889789859010594440174994038398147733117678304211262244541274278295266116342405595436413518753087040187669406768133372518712212944735803757342473429769707822411671544296403084421561700130422312208693497207249960042740011299875934674043132741166907240187460931910164442092029317839588393994545799198821014223134227934459342653277330967946766928228878755559618531401732969380561566297510050372905934613763480055392454307870989165673567082306444676755676497314222808068856814099161577460063791010086535136851802627725591072530900059202514059927170284705062986489730531355164629923611654173363821019307946788256726689036995785308521026469897931334682221404623219986672560607450130434228729882199730844135788961738258974282174577265371428605836951126234859332577426703631728953653115458504878211102286686700411705512836654686865942790231337112213293545691098274657523988147505515730725424111816905724598971463621370129240083323855203634742094183614954490763500887233906208237805618964859231653711081759311600076718390039676296383273482913860511231991623223448160256024050763354284839398921088204563717739330957546075707811304973955154086594609517161345292299681199783475722094662013280473180853453985113949961805481057432749250039295555134263100516444726497657838735594439168564499819071467171692909516428237038040109034937829440214090275388070933498287007353863219453515564620789688291714035314282733696006897874376061739837800633744344232836314588565667186556309640306862409407619573920538311765301388949204051952314957342179772070933229188636309165299414972614961608563211595674036934783640805248890591213076213999864276250349218104415899152947976208526557383267279053990674854868388258261606105593931161242870153770806113762412037043157722468850828188593212136421411562970683948671715271006565471089415867385958965291022494062611106053688560604100105712109870236081695826603484465526424237421592080365769546811504582969125826975324004683362425558217656662950189116308493820037405167984345093641673615746521505730963913127996646111384444582284045060857969863892153287469644176167910947893915161417549998688998205685264608006739543559634750863416308202583187444480795587857386376681858479767420447872843380038763293138173744553075205452401209308504293413046194201554218568744035719570673462247281778136373534813291301037269028940544896742289753659499433721302788594704405796749946939146348666764930272218037386505808817257156193965185410953868722374749894818392876145105816551830204875686397446009373284976761509163934946042510586891587694297421375917748845869917230502869392807254991498373762376849718574190279371002257051349360329317059247938707296265838060700837453344060522033924215207300307739361258380640861872919028434229783840953486028950277040868041208356176808870035660895421367377920467134876388473750456307109187742245368369826344460924679371396355046036716744744080355044923703137952021705406345303141356146440191714146927291077072339216867718362822311728685249438066200105881492824051597289698846009726568442811466268022566172429120360581143868513332320773418625880383347021491732172278373069833794750828540649083529056049246591705367760121723605639007212229602327967681183738009226205072924320422944095442944862588098574462430659104052630924955627072843401591523019099812111287927383641868356118256646454464777957495125537014649429137182658649821255898357476813881078480284487746788483582397353171045405654055410430609953443753532929324118855171776266056861514937300790841494595798311545505536500685559811213376883088917486779156190182912668150700498156925594491419583580910007395429281562176710365549239161853221836530354810598124258958051075873864853059198686906459720608777291229049488064000741151177080360867605771198972755942386251164941342341620920664233152077358938534219188951604803452163511116537794816006184380522612881707006058431756276956773656665947672264142703468429025564157388329511900517899210366608869689788539963036649624425431363617384997270583950207828836627322495400029114751549740395450362188177579743905823801444033246566419807520421660520608978283188247518840171160161910334868692461052530353944754878429282203473027619284128503496374193001341434874378535328049638765165902223192645415878772147859053445345291769509132137836074514561814229468907501320895561566480483803949783687130846908386824216236740083877001202894225129711859438152120254778858658862912910190863404694272632746626389822721354477271133360975662218246272736615459574271190986529182811953215098295103289035557586895959521874226489682358926796748476556581417840176513600849179256861431504475800865988233058553405003424950303107456244314369245004989070839124811405818135197716627416269247788033097632647860634508326423356821350789921113271431545588887383315087219998890788997526187361448523142736581204906475972278816633013201812133811571717713247038928389057765180924744463354068446604931168052193635330400855883559695692322322373987765833254625065985894965301803884116605240571948280646253454761250052749555827650039265211491470988604440045242261850895869420064541182905081270961477241698082979644460528725691163282071854174664952540509222952121928095365215011625990369106297102970440709923903242181933439060199669710510892179767120255387603116599380984018402913428302066483335181592660027907875460104652584595528939866985521425495639766339092513990419214514870569961971989862336611226668146595396650939809195234876510782565883295161170348188946718754334938176432619687898335579108458590238344659405386853265751929331504321420629809079457436234137501668599555422708599709112207606242876706742725693528321097043621801263540345282526942965933759101333091630460336482473331724028858060304207818174096755044565403647586820319862546344772496138118409246284704139177537000828642733402949668545532491771340626044346490097093195488974347202857618052981927287396053538163844110423137409925192723892131761127872121415006054983543582848406595784628361785092784073168721608384474915786865826036917192435740145872271795614868057237160424338894717817866606482827115056744460840833591691931919690949340955278351858276767386775571950246518407965975263640510557768545457042985776714741921419722177205301944723310579700809564566065268746142448121771734477112521956274823827428647027496075947283473208781609609033508823222317465324329954276915150857398507582292556828860991507898097982205336420797432457417074011669570427319921520926805015305422475603926954513257866471457050262268625170091150303613224675054882889220966306045063507707598827996863776230924125383989030549004926483940362881426969120757692144130380273601072489216215437719277295359916667026290074844715516943475181877980820206396104705207322517689148504251453087720795618167512319456062510977956091338936188486785306412275355238442712883357690759629923230387007536015063582880392828223404658023792977448823312657834847360514214258542679786661206298289854217317437370939773359900653941770515023838106047078990471648660091755751757151679349192666195454993787100938128503100138186611567173600814137909868866768601602852283040665561181484075099450373363212724861863252075645200006425083199772682746722728606195016842982735241389321899975628876810757333413092335751855182595259931446890307940784915683888712695445771784263545021818892535618674789300946158123826351808789200814689116031716566616669590210537911437682597273368120866623388901835276507671272050714493749867087167596877867367285572312711187760962650296788548210188932520833427199560789182183938222842196397020167099727838006456805418618848628961622953843113517701145749555105071954779370542948594382393030725544114787481487696362185573323370012766361357481095194392187731583310953034885687880042611762361144134585443533377608221108465602695574809726945567491665185986304694290442612356499533529373246544035214893314141983305211252487871635433545223590302924239863230692483984267294189840499181360935557815528843741656582387836977059224121744139689455628118598703830098617776554389777183886450172016874574550921996782378555126916529561267927872485705831710847064125995484068799479015406148857612182911256727488927735791868215656060559033822298934969547605753806601432664481607735811819398124150553352203537357071012557679017302944788956908884311416340648624966466276991364716090079771922327737005940578362185499301524933684441516877254207903239817339486165953671483171605555420217347211642822897161179375577750057603536288835357782411977911594513477601688430503405818228274517140378081961818442271734973705127893043032224445712280777741289618874277923900136404409300588991457033234159481778829356756698459677603936022276363192856195481684987345811252418540476378845669985136638870297128801079176727210209218822068752371044040855485939881270216178176914293479667122277149132338983423677416921616850357309235574792645237094627937035366077900085023326127655241907553930142536325269294954362382171105240172581380964542422549332955146544618978916983072916728246948213110602032291670571238747495761784724736522797092006517203508233913199676976959649100742689675966163130488223868034877701871780563701231369278012929834515577641745985620173988575276094097694613640953772267488749875597762304014974601251048809566658490538991924836964128473012299151281108833058291026530726205006049358257160471157386829275523376889027130596353707882739054588568903509062780919334048964765707718012663776418295860918631381615838290692901436411714369534771444290698168380852905731353309520912597308481173845898065793666418414578940551914594123931927551911390851457639878856465745064148339772632299582121995101782063906332481550805861532339313659856816716341648378935633056191996285797877945942134649110939549110251166908248181493412035118361922636625343684874676280719604979281237322785769099914878694863958310921840064480208734168980178692783404762863608997797179632418996251994243069681131669946017742590864888417872868096494204999889898306055400325702898420292573631336473898680834311774713940042584122090999576904469479376303164970819450425073769071032848329784427646566678614587704142590240943296387654533042891191545874789507809923445230767777852440714060581178795962701553319535716933840685802576627078961167639935200606499792955944411786453063136433866474344429426957332582161344874024773459154817144765725557769843913190426728479232611291665402182739500656685525928946336785575123949359474590004012764915627147355692832755114408462253326412418476195146232259739090250029389335310996971616732664509452803052713440777613861372838361825216609202660362861407645754116058041194045554556589305506274492955403621347998759288102395450072849858931925797832340751915671574222266485374404582318087732488610842936961046170019185061376474985433894220212531277801363643808342628103128213667613734817318797971172504275648929654786882776820374975673813101577946244268182792255834908452938510980226859140916650029071837982408948566816082062581899122735493928461994424854364079249262314389732200522054705058464090344537715163804929716193541275008757123982665575696028749471252558856564244414600204944806220621924722717969659050769223697270505138441356845587086673143884877190835195454167919522150911499559115242162122230616876464230291888392631996686871606541121652784116450855723376322384135806673589975780048400634589272800365970141876425564179980001031169095330598691070968641503197422058448683960564876501670220398786203117207061949506347399941278357333774122315250817343806794058447538637582480924544653069326832363473834779231272553216196036937409207069009222679100204648085326462719304220190646597085935743658148762134769190937991608228459174095746841459402109345296555124037037064732679411412848318383584701654314313974704019991123458064876003996880092854768180377462042790652724378201250746814691136723660586503311731560345848337612006857118780278792467402622866009614332813418321718866234396173320595287242565837120569888844253277534327176958835256240922718913023827529142786148612165355560696094708113090802619000082086207514927156582661330695787810304379901039452305254441786970306143619590892525058682146027555662352581414914763282556649416233693635983285733520882940730004329051259184777783505605581800565056306948922332491757745571142603421941191898350674350470892897143101058437287223628106361964709797727058626830161943698530462862949220064733097310452360772082199605452268644694446408192083384695461170692004535405823291253266700065546336881091204464458596181953308631450533032018500681320750979144494680933346266908838957530789262624121213662721355864262635429811794322820650538778767948678967912764788724167358037902136854149092285079149745706705100171948814755944191115621043788592522101480021123754195196869847555062378079082659125070138195561740086574064721884080833229564287546000704288083913523761724315407807295025105437766749412673413284348507986173703530300064660580347966097438128442644465523304690101474848708172420495977043197320581370737031060136834430255901839607232074513704508262942731132286003794260856523012106176999120117927665259721963727406131151230400328898782828483808187577509014606684576656771402053691610881621804112625040942309791752836567060150272311299033762061954935207209176015032417064400888232899578852163032220017856395104050775257732469397610978853814472647684147341801245776529334363653702487153769897124442056726756160591055768923523654832171564804646262137086725049805963421791674334309074252162126978480156154455084857794303563701746886912537197899903994961819515921397217386858818818384855253901513677000448823367571394675560311883993556638885084305292328864603189572665339948304605213716488108119595454569077719851454836678310920609404690409763691012102018220017923353562103630970636656207383007520673169192099194995296721108554894416564608102102975957670746066095849338025924650492246403251551211295552307780323741963933059674041749738995331221821986457226770343766954544608029777012469793158080131770451610985264702348362329761391776097325521457500487051632078602900127630580664745658182764597160142748800815119451158498897280848827021030420953633526202041825666221800640766832689038896259042171405508659677919648454118130884828708781085404801298686609831102721757415779667052492977607174898189181858422623940994367078890787756886646828364470947886591421036070984775138134231982339170234927471552145327394368628500998174202180912821562595071145420068768686678523297598381538846267634093253001331143786944024390372996561584149432053691482646203404564924325887931672962966045648012895403343991486772884743615921996186743780900766203564426279241716743006584119193016806727215960162417876373671181077639878035990098331891389367950974169289262246600841770462927792315174560387166328911788661748180781570003621007045645701988492473139064582668563317515568763937603484417933154304486842428322186194280025466847411465453452345465290144072401728067340707406181580187064631784678277586842555622177758632099562094767925923325891339713845392090575348016265334449806919902132847354688870744836662511751320783353287067529196928766198426795633231669024854961146437037459711046590081798915589786170941619118418277885268331374702756131069548089098615423324538621858189479703418192069135353154988954390366683538321957247281420858670465276424757802840752452283636658809609806344546106701233129493184176955189900797602223146407150725720886964566034150882976383420787279179145372679819185809901072043819115940746465300909883265818478744710263680682738043620776042141061491261691833858780100620567467872197586403036283864239986318835031059908925225527667136482720944568794837851660873621442502998060460800986073605392055693367435995853058436076625176544422964756998316419204830694878747153291323484276339531697895679473181007800551451702222128375939317791371234960096519020544176237685208463612485267195629858363895393585710364174830929956693363989432183132143719298197544788513963249333797955399085082352600817861367001053267152334623504239243772652512358486927652185319010610199609980835586578668743862852233559109134236774766908216936742942281461824570130068277863612259962081848711512480213904407789172179883217853218286225695169319140249778569999230952796824200157867490696661543540788251720895477167762581845054468537357697544388514118598736934821005875494576810812320284281349774582273001987700331782600336755293792030661229346274314875305327369107567362122890958921185153862434543838992428735956795701198803739971413623510937823213062622518865728300764449683643081378252537180330708984193980785865077142557537927793582675369499368515807229313463825940618236756321665971058453080645242632735487738939242583114642063079119438096462712034977941077924575208358820623597691448092598219819865915615839447262780525326894150587569310902389707511537407025893491096260690918856260241664589349799619483835414683983578323947290495446551948072029065040862265219917667265236840101358047561626957955407973015368681047511630063594318569448053991254050566000669416520701040826734226750417295557187312492405040567826114691916986843219659958482999965361561735595027969563265409900720920589298761882343030930394119857718529167055401442471412058675240103005128682166638807022703516557600642263888281598642846270879403322793940613320400400356431539912256256293112273507780870952939670154122007365274679777876621812853505975979654692383710391949886021862453657867503485250716594302142406489575477056744249983235424949931754079689113500352949702009768380092365903061448972860132800635776592846392346820802099042195053550132487517000097169044250618413607090099009035449969559110975837830621519019672064073414382071240964323327198860977736355512534271090742201252032501757543363787608990934271941052595247117891299573901503522365168555912515188225580946498511341290902866468816881650982329193041855738107195725150239194406308534252655881768767566380815083213445572520799217398254292191589527994939808305411069086397816929597499957144385479812293550504838548452807367520286686406723911582365867910151775156792646080321644060118073364752896042108173142759951212182559358068926256860353527129082151356412999919787376097872525624811792907027792017115469821385628112198619976076416565027931850853703586433926999946032045895519618594333707031072703125468856535989265358680904018352103361867614505097405668312902138044963098612358012203185395778320602216770833150291366198651851481279310933013646598882625676600155120230696302171994823462744139090157270395338981081197675260320224749938780878063692460638200667680462378966178755879928886208570637024383435398083232902513245314575640072285134893743162300602702684662128157238574752801459185050610321900707436070518409733054470329320629875253809077495919132519625332354000275420144047445401264606516237999113917846435157845621436059120642884528453595297314453560255237550664745373553711761445146050662238210150016958993375895139760743851050823419811411724163797466229849347231471780695371491822383854282217967240201323960631763222075951984652050413394753326198197934447047901877589193165985002482595540553579322529281266565466445404839758752991291772509588206490242355417335435458195183325386529582832732735715151767300123479050146949970665792796407319840070981859066639734628256704052855286396822019479815610735923772691975347713619095273305826113576213450686524434749610223753298004196188674836769907712667938834463166656097621170510473622022371591402307268925074244665730314254905483093529237441119138953037363836027700804553933335140642280069894128523809876635151768234437602431446280579272516972654660554353617132276189746000173181009087435983354157017737899187180190399307426795923378109640611248625200117668700268271239600997423902966542359390321542535238499952244641631055500173302259537614659776329595184697351048538197606322963903727929990483264118587133807281208375877933794417311335928536291523940589359114067394732764181664660277472509357837771856199524665857642397253508720193106246947844653993056890514452792000767515063496949087491016117847116597999602923718376285886445897464677239897077272966334320065369415380164517909903063880143281821513282940500281279467613130103488596043366109942118036741276184273581405866901728019788685251335175037584006300357791042710968599755073138982927597090725627334040396488049897215644189046159483086731974335595243797789962834130084404895738426361485755720367414186623096682982985117175257523958851308586856939821851324000152977391019220319926015314591497156860556187165532885765284708822698174931742669093684198807472061472410435054557214250910872506709350271172038108686544273364558756308349520159083824561315362111465958593145186254709988845544751540046795474265096445089164065554450924868590146074987759716871664811310087446234849539965330582629777192245811777076073388240477939213687548179007389856529012001641763341108379575701307364141031599633680666315994193598876546037823952097679313545420391736866633295541697673448696399950588412215726710668028014660190762066768507821053954268113033515570277478820594134332887256421264869054787945036216682304723772489368996309723785226954337803115021250043386168043517961087401236171938366975507311592251524238429465671742840387945556842172890468422734836216368591083536916789257676867089024025674580577691859236952431032086912535107760572449791503217825032867439399348734375445259329719233788002628511638144563401663606108307283713744127483268790039309923904137698217808110245195607131138379116377796633969769584701947516903437878910312611020589920478594601479084442660888649136137616298328033218568203728649417959132653643790686976625641969932264251231200066820089120494066145998723827883045009174077124292600431505033160729700475651484239703292148741801322112736087224276794047461717044804267397230249463099772551496323206246140643360065515798473635018106891326127062458359917399794630868473594608835611094872998127848384231722441279587446425588841936383928854859410588767580708475745712456092367177480867817835206385759169043998642358859470616603041666380996398125525044965777293131614158329099792095320306031116600159547324544576175390088141905999973913420656743277365242533777450373724242027848136756450818407302041257971204792210114337481235196418947340492642101882594637523571809431324489624841649096102658546878183677606169252408822828250789011314926067269490411581784309112626854480978209866893241542628193951286825074074981181993518185927740163584953160231360359531001198140537967923995401871614144231171678537206717731374096089503544997641264267483065373338678465869644072876358056691170270503266790551452073407358575918914865052990305382399201036047039468067308663368914059189258622557192900264730390349536825308412035822675154781891237540544759904795606456485838876455120039650026440820570554209590289875566131827178476475318859695625810570557827761765090875468531014125991547631973391395889193018513751768651598221479512198153298792924450288313566133840509042700886494436211786499272218908113344209415457699117688050371662644003553293996724031990707020373730435054140830308710532851527038226586259283349376865227498610065639788966103739982891270999561521522336030826036777690644738765371142354707091052704307852502480266862169552146967210731919057714836273482020622981554596726449134714381970949691589822693023889506043114218456984476677681527725125424119290697970990516041632420599724135719892413684169844999293911151790243249187855110350303250511196379990692379720300837914026226304061933244214559147845144028527501871412894975656043680195191278428989167438679251017595489057192497133192424628078334108603333705626155325114740747321581748306427676854954742324869426409919356427255111621712319073405248229236449155770781000158887402884024808764942702559934167280016918986406531756868899178382913821752949560464909032037849248430906878764242770152329054818531777056174897466149357511658845204256634700056283503696601742482186522371477101525883252555734130173746836960835188161599307039996960076586501419351075851835626987392118981052951722031868428612542442581271403360797481277683758328224334908362005132542249451007996063619404832556078361906182323565039311285382923142462065107924291531859025693486894066306066080972789597590512878868418065704411894821479136552783198574631463168912479809146541987883882896196747896893702331639898000427764137784208113737016727138129281186153975421714528509974303695419438115833547604682065883529756527854781837582575993675348409878026251416278939381397488629931396121806028159833693325842887890980869816930988252950333985637876846615194368027105229598162263211291786280616727651790442501159051946470315081094823757347378621334533137965214695135324239114766572119155820337109652806539924698240909353732917167371464668653550461126343116915568514283865773424806505088824701113133270582317804445436592680697130355474587431027772670543399278087305966501015607429929939900894326826232493660938853322868774890648482133427965913581858175897671289814858070475484085569358711431199669237624616031093664557837156481052314371499554121292002482521871233286686065559055931268629871543585215353376666533816598589082448285935465713663999847568470240582890492779046936354374555856046799741145011582804130524267053725082877209036829470417208930344049665288035494147888605336550963858140085312803176806889129488698493754746674512205403958430312169881773346782178283409770914269953461649765307916076463338154378141869380860180487972536756871296160150351267093467629694806425740529939945409435574708988509698244078338440718525592562738702805376369153196735768980929806710033979619865958676077957288914081365555175102654679099486370072546225903204255489332044390523802791518738522127545328590018045753157558609087982515007625628631672126801802346810648304231276836473174454369181537203781224686140859187182879841844575571099203004332787529909701831128653005144845064227204317490550557689448521145403059900865877922043379701164852104317356149261283939919192463771364500404086076706093498989544084056305179234623416237171421749979993129466716930757493355701309277019203746863723798155859969659644503234700543965100265271923845515382070557202558687186361566060695961761481611168570876134229039027050671896692971432686264546742583068928229315689761451726058360936014545058080401501066958705248135037547104472568240156541030771901188517107816855193918516791581279240572998942253284690761101685577857714075433463859872173622171390199429038020348386682449025504478171154714779191961785153930028966722785162641973999245664219136755703252386924818352599388898422542225233012459472940184395102400800101034541962805747604395042360309912697557464309658582660816336313065281553148895981671592737159674322972362126246315295809008886075359148629452624097831369772463470046367810614386479580425563727741440198100881624213712095028493752769252274151044937665184199999650815737197743629499599040242195503776901686591687222506419300631012033461899754628686614410932524788582238021115336481919195389070296053828204665159073986870863204304409081430858487035047285648519979351359807997220390917761324831589031077120953503818846043808001475649855693093411254891423215503031662696085529924750219349483912159639929923367133070272473544280958040635623047456453912909373478813191570048683912143853773767995824585220718356639923927827840146229689494281470614328203023225506726899444402260920307849029080301506644218804667004512921960899976329096785231422980447617911548816555076872459536886922581156012976714345529873059691115604863108429225248687483028015455567004969725539792960848841685638232337359612097923168390372813891365003603577497707665162806585434235881854126863969959603115756813415253516836663297705814342685298006651158273973188996372546910432362910955978335579869456946558903290310691013584126225651810417587191155801255170353643253825224042404469842114907847783974408851597992772536353162389866711800999402368583206370259690152972154166229335534522068605430439154466414653333078980662393015310332372674347949618148422548619686114633899944229461803850708509184861609840667958311463980942893811210492376625049041237700019227672256333512008250253082224052233526056148409120653801989492453378340216511922417386506775855475648341984544574263270619966898253880143083251236760700630592512354105368014225600941177662966504633476423618130586170183035315001522162268020814789873409458556561989438576181713345113041843855536499869039904257265436603042664875359259925805783631515948036649831726660695794277226622291872411225310501932162078783921635819975871147529732945903609632491137967652363922093041525387376985200214117563094128768748872495405187022000828941185073007503908752852164679866616356848133459684316083663437519368526198182033483287993162373829934189556721466010957428719086092842564277276215982847772261868215213581006350187393940167605360677827272318988663748223368713741318122036722434073621278404556255477508413536325812117001497083952370170390517255149729250005547645621468077026479574136963314124243703893400292785457556596166910477303022423804626934494818191430685858237140649823839395988456037394299214551693723618603665721349244574052809103873447785088122226998310376151401496628090438763094236982426734200803484537620848799021777849837155726795901430020341484602176565382575317837506745090803944161968119535610543519591215586193250768278425203974050001725667059361797219327313577353654768408761258315591187803391106488801086588751753659519229554088368270474927425316354213904541493057338472971253792690939751489263087657131316925001822228522419504895092278422791343500677681025645558977547130201908232110380747589548633241266045769372229344358057117063206392981306148972163418568261131547533808343958342303534375151356906449547093033079400814356443617233592330671815015538235171082785108433516008983600631952525238319258808984335283148753934213097834137495831298447636204284267705360588613248125679021786990386179626559951199580203588848273301326996120308580732798782343030700390825378627548007635294711574316639091492751076203823187690194563143932865212614988064417958027847422838040456798299143908538992510264434261043746345188275110312781178280621286321305698583309713619045778987584778397312272360035538369913822959991800617762763513741726655479633539662485464144916137170308966843246739756825181074284910576156673918981097003805816488252674743311389696984464361055609620633498899325268945682371450946793147471133241773263749297677512268220235585549266762351511047617396628190515014877995960889180966819810663809007718166143334248479695347039921711259277928185946308391969616808656925547146742705346629609188856132744843240642523074572928683675528538770983470990614912225304092609873559725802830631477912420034799694716272564255705818824235246390254488204623616139128015493474408793945520305857451231085671575323654997617712850702072695770896170048194538217849053014395773575959830325283438606856382176664465872400480395612151476199761415317348401469687459120187629331025905525666452008393248788258107380617158269379612055309417218620538737554939260672647552627804524508952865281010357273315357803092053488129877357771736444176841537822592438664878732543620670130310810252209227768700706379482806863115587439321887931401446602030913180200380655565660831125048275770246436756645549838407020092880278301700307284306486831081661088507576223168304311528644160374741091434242359826416714218230362064946678549304650906303398084813461651591561182087032315820019331354412759273932531372645790228006447351136424148654072493681045809195957618823718589649286161106109199243712939714498631999488099462446736806425851037448251366168406246082459220853313030179444908243876195481249343820578857047905300207226154421345697533272462351232183208593880042562004145644361293083527527409609552892065693346976135906859196959425423105244924175293435942867039829026209875668793484451008181190233492318848418971135879016578201869657180400709442145792452993010502473592474859261039337703415327223180702822947436014875242616853019565927493738575293632089928383488334656905162345261449903112358314054838060856008661816064631207951553627289432287218385459615276354254391637383464861792536366526112811546817027462711588715141350992416882385314974807942515896402387368311447430364791900720400927731066367598396912347077581369407671998381862848666967215067066015413600993524522741288498336372258637103365628571807998929617456087963074269663625462093529296279453287421602028970390919188401002845353105183937624533091696277418576031100765543266082221644688475605989040709428889542597131041492175342256509708356470465735767479923605535896400820345759007659341425919493337977466376079130239999669536830474486747349366776890747454227444869622661458593886863074864051355540978212685104472117730053966802125939294767553671394153435515360925615387201181962537105345363243863807693106534878843349320343002323605294189592495736291200115837357325712045495297320765566319451119232146235090559057836546271542195050832037715012378924866057713536399603779795129138825665217593696256125046579872245001384349425016051843689966346188716539940394293287463177050072311557599536114445151147662434080590222861785621701682530126184216589562252214445341562438415020301777392727147004611678146850039248442902574478004015656489561188598703792000870912997480386924885981884723554895767753237569276100432773828076282815212064576611810481127490880909013866244282810566810100254861087559587233136364336077475807274743263322120065735557727794507285852669539231188884294864388401930043245084471440367713612922657708212785165815279877892285660823207981804599741804393407349508808084011382817838231803866018088363385619827347916163464101089625520027669463999068119042881003086882410183591909993875651754312859762236854313349990324743522349236414828244315983119938742926083477277629419333885506605918520210122702988461831114904770260604757399762425385039178139679595079720773477589575294677513289563858197174236289834132669378158201919654238893970545318054652854357350420743142269089163406517944515114407884638445899431047004181797007845299800581751686069444908333047390095139012324535716788828057597732019645445080746695496231806375281616494405434808654677651046697635841580993435053965686208559442828847633911879679771172006083988020625509675181979038812373046512076820410869353101215414138670740767022690663730031779047033446467039809322997427869080391139202229009840265738460139673620878829834750932774207070657768050438661736670425812832239280931025831995620587626606388391969212978076513729305465886766711664495322622436427701519420538624925553431717847475125594691836847870108522103151695975726017216195391898688957730401844384680989917786992806578419467151091044602358961066923803539287748515647399820625725956386544560709237673699105773222750501049284044385159618831454156224930944736835728304320624539987984714333172095378333456259155090530933952908095781962422110254014698846941153005255824203149795094835170129723575048968903889979743386048620881367980580306624778918446040278975411953061727309451136620799785864914435529584212376436310898017108501322059153799544006102174344322099933457656248380461913165051333448910953111010081696589471763246621439077665092985905178265273554234421551980693547137990262181591307945640493507224147759602813170986608954872859246993457428250752178665675877439054447363851330219486569188924618079859886072247551444073892067909533764337160949439619744897480788425761133178794642502480748657433139308990222243863149225284060564903850016982000126751640347040901520719421639289584316493630109218838958276118331767721279004200057847044831389924861711672082805706315532236201156906404553021131311862029544083016856334659685046131401429222205843289268349439178148331159114638306528411299233299293231862152424276300720291359812689823389761134132523798778474169204581254564474735417287355551826539548981353186510879952742802910845409086183697124817001613126621441725173245484637101240296339026278699664758152405216276343457739214344381690719723266336608926178655456647453294755264416246199592398600747015819851733117859292636739975145152073347371022160063645003272269452182629054214815130335667618175888609463215812525250959202708037362452880544744296530578389581512628706669903125261974605628109932530004322769189693933668519339718183145883436009829492053165045558581934554695503777464680165351410247283689417249464260284758815135289357406404841625927279920429334016246721061667378672194291277230099350566769384344506836254010850007127180491506242876460106418217378135641705777928145299659548676989342885009889306064849431629958002901661189850442249797730092404037836840123893030040360104541776189142710329866529959846148990443011659668124749031839735449415333119591198231565524087469542815813057324394849583736635296191872952936089707196837475172122382540910115874916413232035328325479056313288662676207608557768207833260491904601392408441932156806506032298938614320395585676750263560365010334190338083177938941397409275228945208679420748737397961192102063064203286777645286800746746226857309440350311228935226960442855610887290095706613010837885637344832274917459749284475816961447798255340895301951451829534070608828623731391354454017031842259749223760059605299495032731817449045731627758991900270902042731247388429676919991534307735391691991260353063384812583649352881623292486199248431020976771787241028481707697011842985883351948181774804662779518320844043326300675546020781354413930843719380103310532082274313896147274924763351191515585521715568167937354080805929288359030818649048043911667697205358768123664343430765997362376430589605937794519817640839926940816989475594961556847911975402507653297179685712723695388378036093336909306115103422635018279234161057307363813658308941203584027021112510768690720207165890022246562939726779164013659793592783581241400685600644947006334658324801621890022805900903129732982827081807359252490079366611241738232451849486952747580771471620089769216833653604601599026785269214693339166141078831242558689961383953625245143355490466140860537711850970187711621291311597357878005393833239939368957843912708196245047038962286312252367284284416555024143184899789521229101593798203108843371872040634315300329337053932969672823008274029602076255254582225004468887361350075148067323963492670410324709453968861342657706087774914348533638538541569378296976614266873013991001350029236626753331416996416693387358630478162006305638884939025296656022005949839300291829283669518446731338954635301807419815726650509179922411215876758507999682343792283024028288351890862799816494502131065767979577697270381139309127006952604185960424847973115939019173346674911200754731969614674697959409485217459015047521658259054310427736327811058772200916713703307580498640555362090153548005953114683988948729044897064895155094639377980377646932994497311563129971904652708209521079091758802294463549024332907370224677999375282709862839338779906805179865824350321731278298226102599258500143521562023186019244985707117441919402119756732584526773415512691756227941930601202908435441918597048003735816093707539013284553057300124565092716999697345793845602407795752267630799838663066978429955304923797203692110821504045245901006946676519364206006070104071533849077077027545140666243789487878550243464253989020203505556308475000744331544758013874627682272001049025327909864829802201506214277504263958706060751759225511182755092649079734197979641533160038476085436638706424827151156240066924562182225218991885899383922242883623306498896081451311026526241988775578178699400537116929942720241268443634794376866186087206904856561682927329513202902075099003304764131715081000361534371931096228053123346355994645203120486812690653378720238541735303453142094045531958256652404718325184304808582723079804357307406453167002565412962577791385988067887797832018765971720854197426949006594836937370770403202280032592070714772685495588841443353528195219935943983844395254216327507695327500699843762662457730144054776909888887272694787183152465919044167834089486867844723977820505957280086018434777590009650737108725947099143357078795116764835002202612441065129395241429621194300199227821374112727957203309484473141456645782321969268567019006774975283007817652083225515991864182596670103312046777165037880156193609392294086741832872140139610766394437192256342973220657872244073163401829609194758635740519429423528345123750351816240294456102161906152052526635205114743182844684450510118817947768279694236884132947000642702843427095658277418717457773983143091109374180625337030408593170029077996971679407892896805225168417390200014100037952238268405812984916124537168685879883446876590996373267992482527110603191298695720192886550885657012864654726661974023479666705967691852243477425160329733397653505533169789780329853185553841312327661841664026925987459102207957226656227396636851119984213850864041483452045786340925239229705912092279799042517166984197656398593848461376453073648746226561171757918026083435708506665990185783655064322823099423778830413466341494344358867716580039500266217956760043813348405928338046945283405673450061575254723963862203354375254832441790824104277875508498786968369581751031481187878282899269937927185584927294566702178919681367833512517448701005806790852379636875818249349050284219937193409294205162031518838347495204985536495721014678476115297124922164422885277724022117510775359957432547952941841585257540921263178750939967571892307893145272482840316271442449934750402304685845406535659753930386456422939119496652036431773989889613871889340166484022035507264438917083254430792145229880761690928735200313646273697066378691029487090112491079113624777808807620546598932080372261000540210189363016658611422875424896574825715037991333703962498146833147192097979439767767262456003401714598133263803269257048544986506115238217318286072312653128581085492377004054141668571256148320830106269041232329242950177434465137084544073535086652885568824153171559482882916260013282451371437508663540763699737890435513865609565332576590017425558082343831105337991637270265338677810618205084767225716393244250601955476624659610830182382950776744998579055189020567540749385933983248221061947228001115520134714762215713386592049275627173062646938415510083785123476270940883085412867747021099330160352115776856683943831330221458400660318958590281034091288905971877711663007465591026795033347572769898730042346067389624555789660133238634341972354168217056408593710843035970470114623809288540116180222052880096512250971456885085260616328481199930031975431261596217805560609736892909880965189975216234740244774935176586449140920770740490127735375739295582968790889667492078591174124162896951274960677968871632627168987861826165421809801813179620170945405914454375645922636310982308599785032764072231427547180159990722668519698784782602006319476019218119183321124654520750511985007409837026057880539641344343938111111291691600619945810462466875911792724620490668325662891071188897966842443452558576560863440826418927622640936739862093795859858643715139405529324573435255271274027665078985212606557251633538282613115122153190258024684778348808488215988670597466870697381976209893417696744967784599900639749645690871548479003463148846794153871893548246647856608248483710423898987472790504570368907010280905207398203125081149963738063131818783146847986579504255118784715455830766264084810383107999104144535866346262740235688294225795534423031081791228523778657947609113950404178060478148884302710518799148560966348072716207990394879945120981719471604614589470133657996702766998846913719534217332932253826968493527640546503587848262065643799320993291713568591907765698603650609854836571937662148221768691114877476814557092902221737533173972462440070880257487848542835297023164983208916793938439917638566786915720493418990770216642933726850151408858176080860828890486457348856940161267610491020244444062916298025753674509724817427975593859113913889841646618890560350699650991226065172000324559128208359285170707676168322363417406603715143985581576885081472366100637647709433063882318888217642950756136380692008474819342920019656418296023908776564495023463287189275042279053098212339336925300854326356571742648735427529624500962408707718340695965311046648924829921925021673115962094593017137785358400180959048443525526309721151685853482490386365001252562076412137600762751589227058692951712261668487560109263158223006900936430702523161908040081834080806103831005389308748356395806211942300538346818152194650375175957702541111390229622106845631943685639637168609525852348553628667967893029231819410031493698950455748483456438973789601755623016814258747712356259154603231250235388112350941470905364379440015341265898704309633556181644624964637109075100311053060996536521255671289957341901088914845152021279085047554723576377946069438723061551680360951597546630721475117889719182751826523681765391683134410910076501701872103758194944789301756385344288916195541681881398388349041920605188758002603407365929756453993550034200039714539540125867228097796304168528858338379320307266134467737085874402604972518781803135014675196881850463069141416005209557969243739565097261883761064964634843336666875549878303929078447751632634581269355391038115691777927251185232676622957656310468036391095107414831542287065511876735073335206249041965265634878797462632240536821677862377495823792647807170758425332231184367261336404419742482691139192231084388163149287221436963364821042585229627356333519336912815267731316494743684591432203578180132658893885969950439980374691306130888856971434071483448659912014195063212671890093952392227938817701857095485658574393324866147467798385184283075488905580056572066667994056824564243910992811845824756096548407675294358522015926272412491904444984281262400478704648774335614321582409133467729142070381118414174000237400309470904935226223246093169586574663667671216300992971516978043140610487743788421293950030896327684713458149330798472431118802995666121516833244008121376130985636386932875871691669700629212329958237671512961811004270140370159218071960739228644628466102723982105248085328968262613475384137946098582048085011720719271008428260643368791408642245937657165612277399665127375728357980335974868496976818317094317017028553908751661257059919678796935980719787048474007888904346371104951506295395404234272028502488271717079687482503553750732848086921372498368935611573280326321668827616437773832801948642667070376095170330884011850372930856698745663361754933781842878944542299147863092482025974163686909834451118897225371738033717078499426726960232396133365242442196437683693103378840888158499496094644597221893155185298075369622181844748514414728495351075389622137590037518406945749495327615486356518672517266243991694618119656520571001085166709762869116368299345747792136766478087691045350862763784952239667499800775566560347637409388777005341131871442568033937100705360947772100751400955479508006269512940449981877483768015685023134644909744451281220462877360143255240783864324379216639709820931816872245383075450427145114205188900583820256086250208920715323055018573761622433026990924865111828440980606692608627044564729028010545187651939647243573025485918534468271919326693756814434019339197953177547201598409194549023117974046287662082291238529159337087322741964213180946149109852594557366961261073793179897525477924557361154550386538202691001149323138953986286733911405205688947643539674867512503045304303994872107428908274934078567438303279670108550705772946618116873762218578288724913339796984029099827658108348122065440647524188313801227905559523605070829538286867828319579038790714625839387767797549938095810330843599961957791660857005042949585722471203254834005252876153204305499568516862547108915559039641534183562230820474758269048064767730408068030673243626903666381569653548925094907486315012621781128092856699469080214892260815828476536552234939755111887485244422432497463204858582952708869962179291284546117822464848288230092904821678857000999376103739777213733179905151768827865188123333730086269843657202510686491631131648014728414504504424665508646557006063972175256149559338885549210214010115653919340458630146713293812433845499008527826404032058001018385670094721906719841399635490318592241849547705652646104493398966717210375996149672491356520214710601364393912215304026912140815641719209869697424663908599227573177256526758225291836598459705917451484676552933999909786520959573974816482353876679805322779947461623305368455608463836350222669221064458580984235603920908348497618235533118160612642343666385328815425061775550751488421333259836300285788967175842709555356951207324040630322091051374181846841796622281461854876148723340044154454063838794106028598081292675092095106783672567702024978090396179578087493934328774534516742843607702935028590584197188031892664909625099137356888484715284937693707457176812168506494786989231478933410388939237401334317582481458201722874668822588244232042322932996457071204995496264821558985016867250449480196289113324241358731465444973834572840837218644563150001609080880114889139648333754917243670700473953581466934178475089130929257297440066371630279929777590119648733045038712992883817917103217010344400381438399339038044852149749117450356977016731881611756296721564658435876454966744846757359512521906409762729482084687969441566512857450630923245476676186148797506120545487484750535209780296889562271630954327051112302328523025069883126852385495581990328814826663445865716247910651187497214081021700076493745984734431562002766686876145687306129272931123639923861887198547093034543079245489555342200054471100786253298046141496938239470178275198570295247776592725910474742973504325576115049220443265910959283111959963520200424433679412696382231873875968444971902136391562269351531578633158892878937092543032558658924227880783645059950748397270451580222270195474862800001117238077727474097493968858557837371450106847427024001853899732782604807801751903892683632442265404367098344613624782648255853396055955660256498702068421938616643379573377262769509247801444014944266688690672711855143775421952809721624184065143652861709253005722127889707057098528362853909987589857694324193764767159222529915696667527959514771457019089128809155671086599421855854944827713187951751162255867277220094990092327225028726493972348710348448402908701523312657730213280849476062955160764339690963117059007751136995840936069148719531886320591839225946443965358920865687571876565111406068539513207665813761247623635532748360275790541031943985876075490838571735824998762473741016853938986803144644163827770602740511614682526866549494082909117594877727033294220668798435050039842981420870514265368088267698137576173633366043138549216572459550987506995482352837517385977806949181948271290462753973404337848299560774599146872968520232126460110548801151466576259090575712803907779135263966878126879639512394637149414112832579820438304362605455335568628305938362937795358597797307712955829192540182929408776398646679678483446976070697542022535725174565254002658245665336598618090922745324414839291393891486482768726388388406566457558353697535889221039101271106858801249694698125786823047008295884235344910421220797389618385492140762767128350921492700052887398131775885533842059231663601126497988724133173428154511893182465587075663349935847538137527470277086086026294397584921119422932399628274141371640334808406468755390430335596793360827617131997197847113816758088324020380151185449218526603467934948278302466258801433607590758483303115101901858827988540404344052706941524151280924217740836263599393156693555618985444290272261796217143770979304120239344105414206078044853066526377057925756003366628518899045309099611709233830505793764209593450150977834516772004507338306914487169567883564301758079729032810943105698348751926797751808691295446009377827515650486407472603582712808704802004216895484104026294691260163958697721617041997265026877035846387459527737771420122773388000322031246894879773462176485926878260858961801059070061149708212695180526124072338864529451319233536818969722640158509597566635925974363136078740871460647368298786895658013241221136017758159479733882823047010846809134097654611825462701729334407227459078880787363404210149685870435416192585224969410995549500292620898747209991252136664078520688887643086950485774490689846385970258424395591675001137898996021587156131404903786886976762892665497743801573165684213368688797105448136307371648073573561825066665592406681034330442815802959754680175339889737952871806028093167752200287679854369021667154727564998912573325634817214670516952797131707821583685924671666654767065201766386861616386934702583625715967311783864226472795622616607665973325998689593683693583866262973946279642598490392175445949327823706246383131086381398446803505982012825614994657345069599762018518976306823149122527617834415049257894260713654015296711578442351772829076460107669341234692349127873024986388546333810402176862683731737123915653122234745753569804312212266020312429052810192773440636468058867621096029534278491479855852846709807103930217385896111037582448725911395999580964623400755005327986167016063383563044112886471131054070470568704783477106617787506154878363542463014347458327003206925026341005031611717882667936695481471419409397279613604381286090332431254826310824479393337258930576540504942041633569310522625882653905947196343668833486979943220719662070098118210269369978234414138125282464881793921705407403499866420914537193187061444759108536054866045478466372127284933565894649953704754433407815358313517616164106088169225866590321479261714710188727767064377280766779731115249073332124776401468846593101390394374768484477895074536032904243054441176668344159336119848163826577330803140598411096047795585415473484704493109721569550454374329412732458420371895787199607696258323366375089738904543126304763716903415863963245611155393563040321712562631169506640157328293861728941998340719584001955674756083301800565921091586655935965571857982725701967516373404470317609038509278473086801962827809267968697910174224805742256367552162057232282928416927928269659515094394367064362537872763894887983156405159877483938307181453008752478290814192676021911275570545442151142918147242423141121351827436191969988320172382326568317120507648619974561098078968836378288695752280050914761554341440839246652810865179732065472293817435935100683467421397419704211361626360109679143453030668561695759283528269309486041536848880401643398604864636452065836698714737991875483780783474829371244476319952478254046482427641406961230893208773942493149525519501365311598174301161144529266787147558464659932803250123858322256342923722180955176944575128703718435924974087897828805439028695505289526953831386703918020055768754786509354040719633559304155964804118936300365761317729747658349596412613024840561602913250118185672574016108228628322348319967955984077137222135286381826904993152105603056703696723692261139468256600106828410762256126208888861845629758368429218070350798445888321720674156332527012586653068749311920335740949046777687423329404100696588136771252309993066036153632689447277167013503011153983728504193123677457552227084792961691345622096140717799999517867697270399206012693629631563507433486555688529431476533339133800648482395819350655388991362770764327251024789170079335787536421675600213644379873404689517843949157522572983207565387466288055650961504404839508852503274637420996692512373183194332299341004182493022592897049925235826363223871718313540054196142679381020826180891166992214512382931524114404460750040520054446269943886081091098587574888817845706500506025232126483753171873771430217745045505932504918414176121470926512746212640643264772647491120766043323279768831984922347709525591777524863814611166230662848753900227071364767015936611326211825346726770260437095984488617590163989033330895006267250744451369686915246119606247482697881708065145326728932178449094075746161368127107115404809583491081148698857026098225153523646227273995561952044443819527732370410287201604039015141879326205231182740066455221242466041609046094364506921826743479799504093872931619972886828398409839823065295148915165598435029160120537446329974755985850308924691389418884976676941917776147780082095152924394927784378629535543467896245760729251121861051899483493831029094314604474786577744579449403446983374739256009939656598092905373824988409426212674837402756538830036644190742500891708790413536897318584241286699826008284218482097380380151282477377932057910979445851561965736765126691650583902185629477792373720377694162830063012388732438131019267243760226270070988341178958218193142385147126877322126842050922983324104057743698551854682979805010703558853741686313048760932615081669971861891150184379263860191310802793725628494297084229329596169323205267062210944992867705984011804888391403815696127355458259897797026035747720089197069643210070784313820786579158714357310600255153030376431161797366807868650183756216315413768057454004689285706014832827516025897522119239485228678330526338938442978875037714330750468288064492152109819539983887566781950835989945958542334936927988479633125583203457426262757617694920874377093523496331683595576255186926008298343122767313099503731713024149739791224363299263368675837306828071778313949491093400842194486015653921004895281395976358542423578097850579522673744999874473774182683629993630328848957434810028132828976792898773489504577089772067968382269616658031905634058373845047184251175368466847114630053494374191927467471232105659955914304194681699442413085929266982677387932330216297569736582459663978775454983840794462326971524275109494565579515098616954608155689667133660293159597263125581973413626825337018460147372239202316680166277637174393759588977394284594981046448386028792267403224675624496030405257635963953029368285311065324195662276566529203309589173098153220936423372366518782088152934703537905548797045723695480251655841871006710240926730310133798019379531434610416525902375962083450060114746624036135277565717356055933860811720819948791795750063965395461447351489326739899918115817921056478970247445003385879269102333339949717159281013422314210821001089881459199112675741211104709777193989389744055349308706707434833054477878216667143657942878280797390401115040784495675220856581712078305547880957731901798154984466891073343226008874172077848740793256649452647074028612364395778435159043611228008403687526984630159845229444505231049316270526744257873347462529789238762185895040824119636182679617818157535535832074432156084729544770989355789533500909720241998610039937878807155065686421681289166990631456433058626458075752232708934794965122244350775387308481956775680649940180822479190320635199640430033409180312940357436086983300469172016265709183120170698346207033091833809993666038921828995892533968888382167159662502116820480752432935945001876649564380487767201005363369176478093130100933918457013477335723891088211780523848417067198795835646267262114607650536434440818121929730850127560975677037468047646707820670967484304920753988377535096494470457657129000858562497470595560767385159094014664619474715106227980752911645139043232160386789438152730069471349626639311900377013047907838065197151456290799454381055960319882547969116070442252267576660595675358399160940029999880282309672374966022102164491083327228457921247024434352065098437038465411201046599625733538177227889864610954938905358123527433707809238577948253360612636065527409771983838384994249132108414134528279144807498109612110358375840421449499685869056256445894249998648761789775904880702045322001433988079795737899268037201835080831615865695411483064570354196583270777673773575783351828302219026279322780047099863799633494928212026684696281706555050720983143944100731772918741514817934412190484744223814089993405900284927762263180815391439579508699093042424343039541669066850524327168976665480770698963872966006984642142645368413160031765885941388983705386640586151004053489133884374168817329729005123182266671763639392027825054256888941875256051004065825910490290875148219106262980475229608195194486219192245862491351926938578638765346892020743487945278371884108286738427704539807213723947834781304315431891741407594502647410540326035220640907662560553077650518261139642470493080299074599975913914418662334715414539740598275526849688260697671159670544110758250174291942752836719220287512265255076072313732207623088017110510612791619696884584389681164813550149408975895605130596233368441342748776522386020073553590035380550759310719822779627667288726390874337398978783902596740637149593425245169758411305064080283848427634658700716448131726100959207629832379154647950882213390826236433832401592464149952396682063571921803700104505401065055334193285151625410535427918295811270832215373604914062222967756122332969213427169140605987593939872971211561439239358288077670832957858923039397385515548926902859719392470808712564617181624827117353194997037322421202296946853437156190100521312112081614935055431530663265653791261024158936735918002114698669412236461194240493760933983700296017323300632752477858286614933828622693057871568836224803687679505475069265256089846460392099126397228346075042030094500865228176622163902052656287802426810684928260589959911713340578744237278766220004068383918804173366866112032611989533989754286527208208903268659679395483963599006875971824397927407300231519395957084710371984125447660186959659342007808725805306843494967785785782419186057800407856581114245775484999909534643826835521186817697049695718772005720276558791849165347106273083993048115274779692114112331917038275234396713739457662399938955099455935460648091038721035865644614661474497534639709090482139499476560110605268281445590647872753054714290979463107330658014247530648961606286250790817540711839308888519467353538640359171582391913866323361200253389422394738168557656870627983784363307300832587064994236122034902584320416922408208599203250706953691629594033515667988196392525878958292846618487867269806284871614553679238475455525246226164226944238964452090432646450153132071021402100381528650842840046234920879807784358284336445860120650899789137991641445792549774131448947350592138215593795566875141827788657861024325590546479781324597409419136226133624466568985237136003301641765288859406463015711917701301155352663925955647984685970135428760018311803834289725416129271295491219284197847934964666374040599005710033650701749740547240457892256816313385310947864605471155905444555699769093228621877130974728193728608651166571070992275547525535601254461213936086731144169387704179071433134260730744057142778087756590128343460475532711354364624836391442846421311223772022834779717314091091601557259230305478293407770095352155440947879519655845142516164495311705524954914531169179539088782687476420213985859345588264756288293172117494180434642790139469558308400728726844510878747975422122551260518516308339359294173691012094908306197430610212504932222925921305625472775624874161644843357639658990567024418639180144898093127264584852121051480999688099527504613121148601190689527892286570595460082925334809227625872316095152792315524007770409658588311199594820218171331232666769148053639542265539896749216669783105912985504036220970009191656382318819214474819658474713950624889663447277686411255346073191120593641508594042852786392087310519286882986627078179418719208640032808473749087458752174700046498581371312512015130488761173302819293650693773312033919456618260334740081544638882393821284966444667179317330291481395952668050327257646902310194938535468321440144071088242392542914107621090868826463270299833690555980880499011855753402794109486885957499675344272155155648311125670934865372752442831407996020583514963924404215894530072717843285054272746272454365814891836778307235996971471713527760251582628819599044288083075433271935416642534059326299888175022064771562519867098869327060988107905651923185893453292531932620014425822073615874362818817530730953389791201213224791639673698332892815833903709500773981814622021262232743544247087242977411921981685527530965114121511985495861238774966639855523404317776357361557335351537218255475590103621053736355559122924272741903137376014379511472731986452901142189422032684765017613183930143141009208019288032422735728104372555233606424161432109575465802651413945239835143763815500969646394951766466139622806337227973539373704899448374708183982010468522815972065800435674108074493671369839551109811925609680630534746889985789823766567251842127542919313656564126578929523312975366023617799279620196112038473244429530439581852462252847474081167365859353526362011425742072666639829567932626798066080925996476406575328484795902019025594050348596665484432534121054219907809436790755773402705436825659097359899228074221616162767842366462891828060744197606092997914979684875678954351436269913605786067810757700528704347651533623398347845993737112389715723196961431804411808057978013099626334231719971855626264418015301343084058747602498552608834685264019425507230249119463294855762265058004207921451586339640160976482374258918212303481775323155352444885681033022225168035250613398197371759627211326134534720312833586335739497661190315961748397987568484148708702247685340676733070601442041535128497208996821144560338236148864954950763783177288395019698470971654530393973403597994080568866469704998658014725282885240841475523417631082854974092218607665310794485593651040264000816794155951875984151034790712886743724266912452808290134025069189025543537455430193218468413947864744402971980475465491235603781801827839202078060659649199426915972321450810387114686053126444226087676870836962256603780214664336812178017764450078770541984026761206022777953875568701428859700180221672250457652010237496846671892220415687880569043513454081937644112272793213055312918481759094309190320709128044195989509391238827254016607678867529164625077451056670712616910304585304321901309674829423765777573253043583177401173404288036725742967389625942058563014691271433968805087856272080971540148779815760091808052674423283561460301508542198227672866262702079094811725323311014821270444463385828890914740150315774373770455839066441575804342326373888009975361062973945339122972524958335832792861888552789841275160709566505708903909663213420109522677498418723892630499903691281819727488870147542869254010437717287577138342286880365948359374203708997005385487542036171750990004177364093076950220003806861889181957838934468398212313741929009541274966694454325338887105404794093077717235448817503193035334185447999238105472281820749469052590957001735413905703969948931667429885236905180955183306416496856162395025855457767309136547947224655257762327922258781025357892341961946908246369520885123348770064649774631597728065357764472832257593769488156168729569243966184850690637075885227999330843883441242005411775148098774928113893525024909995241823567041321650908871007877277822997391239823810887347473306435832559230473604558714482556996679826795266218976096769023384782695972481096072422247561114624320512951179890770115895824092131464492127772797435968261042383269464491098140630625539989297111542895631366193022154667867632757877447777591977848911749608866833620579306242272552984187314210723510973550406714717311036970238176922315346521235062377130829462618826904457422800079787366201443876480185616601182664668729282863881101295392672951482291580519418914923199501739713331455911238701563818393781888569256215651737572777484765533819539059815600064040743549011328798065275743235655242446705651811030190894332533037028993445339092399195252118145348343069067938803905522401451867971031940511428934723833190132005011371221250273686966037459479496742837802824583044223440522383951612960071240304154759916761536161461613799566936392480480456180292443552959160882913605050413006116233118276533441038197561795735513817013381349352411053953138743930416882481416332261557165469459751610001643561535339060325131307711333970520037892626465214704996931542359811969947840003348841063697022444640401846586532626561616007973765347983774306911111343849344003412867455388737088271004366785790508153066647299939252219006608370057048435557438369446588734313929315761087365894411059216020386731599054464244619799852957785141374045689143093278662579997136607168304488293596854261725903781997386859701416266809076673142685368298351176073597610132449487697467694737207472024251485450263485908163892664576919874628022805656339445443134643961562440551444173735663645545740493540953632370715202087358974881685376791815301306811565545544028265910666983084722735144672920099815642093127311383969935215874247824964691954570130983682587617202898836692701370272953858160053325369772834772973171392796300354250689402303419314051709214574507851263386081813412570796465621260228365986836903536362500994687127915303917370733807902259017763622728947224710643147396870895689546939217784665823539140228996946511978467463096561412072696125244140071617742499026712400140592252274569732497204161976060673233205796697479392501968411507891832952607865403682295340935247486386409682391230740307248385757858095228540918623169206679150886971041205526170622255428104554583834244437557194276282839981550140369530724481546101464214303984959792491856661207174263914872253887784064823698872836878192373505761505944354803217100911897762441749114367696951427762094691844325716981856506101351764226407784853267446340928442317002589600026839095001248652150225184550919923902610340499133710536179340759675375283839960658739094313809261953767644748940079387640925909619821629029435659921212071971421412515679627384469576491607840125145281881417306854705936507620457042913990059621476562710996909339996839072379582246415329893408218381745239354315969492079073674838139852573941938826053810497961344446855576619732860074655667613227065673106524904449667615732158684228106367042861184848947332047977651227513700748428557045187458965007031519346872985561334567008902197209340429819313545388666173043096524390639108792123857112014122194025792636131103484496781077802048892419163140347053831955121930832935205866070440552182430574927247741840708288487199332394861845330506531778099802111719774730472657121740779680211816113617788454732774445207426872775261172058564224832954559462503872272361116530804730338037988199410316561348491074073529560777538944197288196586703315589219839256278214251051907248996652266380919684864716588198467550351449559380268096572047159883313969847040538159468135823523090341899774404750242040022691847465001725533306143350903399981135913860313114309410623614375425321567482121327024156586613329062259961499031402983458938882876998103099410485901661566905398723681983264117711147330022069437763427251850343648229487733798307252033484508709753295612384902435535475886921467004870123236174810604992754400169626088581691612035036538643581480251522854816591633876203343427751618154824325535000424926509838892631771804988270650543825225753457389779544277586789764388181234329780090296529189056759575700355481520711591934345374294167894981060882701195089923189207853481047057571128363693156701387783916823924717048802464924882813664409824469275387460449611866936694385945844190243568619400835858967849821323509724004659544426420043926843218561300505982818396793798952791393242217728913342771994346122761678722019630171658100493819669857617924406715362883534460341243095236864964946036610652146677593627557521261093851776387126028956910022932889449468888568262081339971936263345958702529760715919395399874019976791806823934222744681435590836980311822394991726799522747455329633736061603841201358216700366744942971573202874093483000759059233164329927094128868145726266224338861907789379480307363731037394443655043923852228610493441880678443705671677681139564199987284316905151567305582200960236727975977623258548464788139852247533398762196293637775282225154788884477757184216359361017080310940122541928895712916773797182908822310451645179795534945877778131966769685665046523047833272339808536847436564724517109286828519520830777969715929509091328515185733037015932637565290451143362222371165958665278148551367837854175150570061371887067967798507322642773455998842752245500183241220971935422770402533277471336955491561796379691323865439363212616652394554200831826166839231168290817347113384875572315693326902767872017934725225596834377849079097276429874806223822193557375032021709031451347845286759439131838202198641390990866670066248510485988082832543299694438187047244110171546119654533252861001305590781470524586406988890604264954521992754353428588548324299889233143012964427182981678659320427655366391999659737185978804497492538878501393510812340710176574720819872950010047031489609169729098256753317196856180403787926755156139404898659878412604091388030455717802273078785313200828501896008357261947767186653476116773564818511721879532907181783788282599369355103154024500354434799883033599214834514465546559085529906445547719067954256915326820104320455636966338704015714344926500629015764507677343816972113024020480969972989563597444485045004530668033059034723204946301681365192532729502391713332025147410739964194217109269579199133683097423787069726893741651318087182734955190884618373713552448808665324928791057040502717309213212791418617693692654201491501767980559536219919076456743065672462210288952045144617458495310990422063012313499453967579309253553005717854591473136162783626215617005600187020742420128448550592805218690833937396620249382838242676131755672428351916110438835816938426651206452982446754153561415129966222024495268501252809342990310478482544169345275388191474555538457057597126129998184162464932124917471768426177871670912196272383980137629463060881454347503516803329587825084319443509331794399599026939494818368526870480649238556670065906583955447769729655260419555220467091000334876949576677259698927033629163718966961877274664931148201361430778214597544761483270552433096047412194211697123455088620493278620058207837824018249601593637930478702975382903380940290443169698421197093742899246356033681325733148748115509514568336032388232154383641495398556242825932250523454072738652020328983352839211299107302980752740335326882945830610882494394780529531909798111080730809435388219841374420780782502530617083549496005789269461078643409149427717131424037352381780142694154842148393533340713167258107379025359749411969222676758697678778691267393896500113918834376689534649826164383048116035912815664978959557226458494102735633263681529541638370202296732347146040233981037719348543615904403253607459569847595170616702062573106952694822828238901739120581462550453981560642538115702253536183831502602613508171116147906374806250446802919510111358912051174670646717557294482705900405027231191564682069445549109772067486042761664553791788756279779798930171629517028803384673393093899037102333002539579222731265386384106616634577862923839137129841881526946249772026903099131245199731487760142290667766864157251767638872358821690268238127144568535277551624876428257131907692692657344980250236137681738108789563488759188835775864054604032052721616682054386252320947251874503504488155891083042499448248196635189758422457475466758323855494234614656580807294964226737152380010190051101090310714620168645646444299763036821947176603383547512750351206064002204593137839021410288886198497910643611052958558657595163715912225076491720254906862796309124675076217213903366427331430388989990024685212643778944431529353333751415545636853937391352886523967088022015732358454619959336507729958130605862829863048991281635417993439685458431678617254459647171218484684044479330819550912887373888081077418826587033724989662802066579984543293452617328088766804737437244507089348405708768973790630669702031673470368398150250306766742557239949502084989929785587834241106953359407181311206856958921735203914461174114683051782853259144382161816073860187610621479153691322222689426280679350423699733692130973982859733272910628066968646191345301783018029676009847438431396110959645263001146681615610142176791516395089715792190550983220876855932290648956392545397535960598704061455721714031823693407772654899712875866106126389989935113281561546113109209639310601072143537810889451455045679672011929937585939132280700180399509229297119143021774695131128710337746120583661142822145398200991785433826300768349701536393537502273243087896076172093162179335633965469175049780619257599225444452801170680662966958619855285735094422663152104836235542391050441009755214062453662699680531404036781468573492161614981183260740541129219684771812640001805789956881029436142160782897993878366359349722210220630963360695930244784215727612150156205167619722789603102025224228387138516304080781586401682911865093254436662158185649630322265117253281967736010709367625351892369350454765710498006749386209826982859648545430904881565066238183499577656504480756895653072372771420340561882645125426657335638929457615592839643050487866595203904598168370853002144563529231429354279156154162759480946082579875654780973968744270816294118351620875703568419441348664222541818443914253853062151581829468933514980727348830526912224326919825296428331111207047021497250124208801900265021257660833510530667826728111895722745058976533026209119061867164768315777856934218109607196408493908124117395382998038148828514473822194323422525365839583704737727141294499261268409761967394063838481710923673733412303156590908698030649672494042728458946376682314653702417604676185896643646273165584511647438826752775828332928978611867175168611249549846935158958409236928976499057822158130758348561038606071656012020489361245086846442241422341264091209843732837395058658580000331050875591501434033967227970208727797677844043919820721790911475392570560330786030171220153851452550097649257723678709813977906657091351714669875012040724100762757156344546293542637735446741762709819378381181028760548455409254622255369076610437492089048080278133389881075337289219633341123458470339767373447185879299224264578221505337168849417193310571947037435873941583806420052122868931126555450485297706045664232778837613802806923191111657725149408544709436328608314767790824676736571779289359801055543140571064875113082930651784734145921427807082945015246658980464580011276740631141957212950260307690828082984940242229731432393880933388631510149711064805089338909007284789766625316056331916101720987881866305817102222588164949280507984168719565610576871455319397885628038373705914865979976024090670945548327794302458584369677723349393843288544779739779270795044195135347204818641358432617809128237641401104360882899291896378320165067489461799697244883115833968533534410696141627832824617618818314011227669311532158136759643392939598880458279587417497077420561956233738056378687381670212922367377288973650963697933770267076031975034968333482550507772892376848444574843591979045219173775738405374352308711976674973689635138793891966861078909081172507719414839849443798475314391485163141893846767391036618910415150639247696372311093574688445547221657519287381008569659490347571469814492402795029815627720153523151218804969047005136603147465381258596256957601412467911064684029284109779716385809789493105545485110372669314374360716110994846355238706247730302306345475709128180866856943669813648711175223126816496778157280461694394740762977871970869456575052910009121772410864782611327749987133246497432009193766902361082858210846263536962882773577833175021521924895154065836974500163842482102520672136212418338971672755734233161414845110784024347449977526751704667191393890039481477918171091251812844577179255375733372513814514589432909261247294470987401926270576726724696010798352705417813930056703506342852033882402768587445824763281654886770242713040451866926841588511329731439010087540515325423171337225442658036129087352691023369716133809778144911573239511822058827924753912046038681987483007766508926023105148095675498311151592852701915288629737665759025489119913215680782233665599441637752531149209928854482026545514591932515847747125416901250364654754937137622578936581828414988118091903426894519636611948104975578869544238630981751134756250799221190930516493642006847598965719539920858389674525898329620958286428229213349397362316702231065100045930353065229070327727207904663107115809816599280731300181749319392097859835497986223280813247626698549396546741224949666004259596088604114228494009682319265569920515190089482423953502158767857451019141362036599713744567484548982962693176757636821635134549234869693999186100326677784424054687461115700552887394777397981060936860109909024359554090299820450406917221023775173343650420665290319586450176526420816509221368973396896567157329804179872082276961787030561594562227518961179203497647433719296549405701222258278566181042648636461171394206172603037077224264150000671224377991794609086550214276838648246125059521465620638957978689436235774442392815845557849212488740134145774785602620711733222079727956105693950962670582051304777367541716967795855599997483766440693133613284764075720285209952395461639462115244155036003902982953917273161807104830042026603588965678798426085488784665505204669685994247691762675424770930122629904400161731289322522173174936728299186043687926543887519050070212110331399112253180995751187313619129152205895504215464700079582792942097080753653819509966959125013063792575811151997972549569304835378357514947458265763141936292326754751402762533801223771087333099677352298057495412451396991158399877967465568552212585103663892076657635883771500907896800047957209552196909967190483794787577588772804656080240334178507540960584099255701252106661626592379054357888223347881351898361542592938104698558013989174102538475498873796348809603323861267094696627445158353486710746424069258225016096526500255778002887997792020088904973582611660849803960807895838612802249189988675738040819031266661602767698851421265539241958347239649966322248272564336835242291346361476009050959142920577251545936668320561625162065174540942223211799199300054010468659818913834172714524837824266417392050561030590623934547255979299163073278093753126564872279347772879841002765452850299852116485920848315740752340228093063072006768730527254759433233612709554023730210598852798597961345954375601515089681887589487221912884679884140969721694911189146718596103155897054814314740793333191927136631820255767081634923084426527192094492365117609831019753067574759423515758005838501661821491340971221098259398469860757018183758278309884842977572310930115229064984165312008932688517410206167932684060384356552425609003948208658590995098217562803695870213631371117548604922571776531854462492354460878092097689267610527106114969856715880197595648618372655664215753943945027661048040696598387887110535589400452591245942282993335274007451529259324847966743349933347678297001543002082312669277976657998257368325023945231044100967866981565281296484174969182245639306262694888567577275765813248176397098909054410994864585972519225811969257632087671806629150178870632208436760179522270217881591782577839444814833519622268621428960029307698758834845653527911978101181828065919596944798474714583938589319181994505072637239525716441510755609351934795914026668933117714062067456022693784973500409416576902935331817247434827727275646285847009978905100226028985696101190571599575642903633617061628785282287200571031016054730843331603927515401708188134535652351384714678233904971773541177219010525725048618754881831369749235982166777735601617012199415838388806670773115332985403883351096419094884285482978345815025170277024802947498375958666722922222909895219770642466810552394384192872759077281967020627830771693464247572689614737606059120611267054506190096746212336595009397254553286913671955469793626991276932624525873754087978721969106584715426231027173726661964840510673672253087866807419031521240904043106021229855589385321021388533337797564145838656710783964908414246830110488657145346876937430852886326878424665637606990438947130270360295300267934129408057224579133493981117173527215099613015907402935565603029879172546635935197890902069844306426907177693354749316853981023009375933921445920773417100427352750965857356070331331691514801209866388895613590110975544071905101624351824811678232596219880387222471243210124094966776050954522589694463051643648600285867988906912820411459851752381378882845341819674281544358735322334832214078387475224944875751086375829495712939101014960589950702799905228705752011569526776311710613179746150989784452902910030283277373212577174967658089624593982124208099821714331092710090394286434939085168461163849072730397887223137869484855840767542718889159952202077596236480521871956069229244092656713890781580685848079724389775716597098717181968768038110785191157717472069075616622856459595579852282842485366649869877707623084553904760870136844670578435276080954733397976308455079059422240657975896462113880257013938697572444553508229839114124896919305684891966846046694282542136938410122739085429393786312267418697499969186114269841823149542722000028951632758449024355906715417616928088517405496864140456114656982646027642351827228067754406228203871649106067877813254725625631824049119021719976369761437068976677212221737142596740973921807166781964785336846190616503298031568779285002226689049843828957896261518406535252520286341457457090443321033349777493491527485936160437919408798682312582318098149402238809827908381869825706731728051899874975220223218225501000070595686678133974940404797207318502924673698617635617644167427423877760408827241127390458977251359290454764138143217744447068758076209954888888596775412914467965898116425526344703504188433424089317990312556452613520303830906476331825338772581549958930368168784960875586872407861135679843464038679023876726994004590159278264181189595453938720300644886000480912342439872128953448831449023947713496327349358953186448376339180426626293439307065847294217872165710366119176717661654222085793202460932125301839534572821898940629573574913967034785810606696213938990163287041634028946319909134758953396750366807291674645126017334638758869377317091909966577803855382540904841958718489357058943820515500923403407704335754919136867178860012118332881924042179051152265644114377212499500549429808706022135889083483090182026624559515300630132590061503165924647103834979660574134919353857554733107991380117045359942841212740761760055274642351526390761856371184871967632599706408607392163358728317017458078878579497663996379547341328187048192246720112391324225664035090485350157760187741796995314638535989407966695657239041459379153768854084720744049702740236527259713055105818539753590982978970914394749109456031333801432669814671950454474753142599358655587280907882350481203178292728688844051064019160599162387757317720615741634792674463794618513390072456639179217889829333302102455851693279274782021920343637134385690004845199094801902754279688999016253554323537245948425358068982173036330905310586723322137305859755798148227920794098856100009725382211583509811539494631906807795435369583497092900194108370173421547609850994584073730143038819037486904192858055110995890643281871679925861826754996009566526339463134077167724817196649266748777621495000385685556927088653594881147706560327763639522997821161443181220671706459441697223425822203704164186718076796963237757601452196701445766476660959710984956352276115361361990339828917531013151647638595957671517083994572137605352267946655030918063131187026653413805773157996373925771591592237553715058614556236970387066479957886021443919027464410985842496421310425889105317156621699868361064221275390272241634570617211318278069944032078852858912614343128033948273914041110067737009642381241013044776906125799780512101275979628009049949366281369012775862090166910013879587841136242206101231681687925432241796403119639785646401993322109263364343086650786517180599526597525585786148082714248714792860458259041300538326385837806605120891846236780183246021439852811471336255774624380008201149072560044618021725804692441012499133773903232366542842398331740617515075009433235533260482037455332904531305928321128254490166317271844750793571707312956029903323002791637549396799699115196975687996269034476618016180974942893956390063685136354727673969172491818484280279492382695686908353513177267601720509244014719387219698074957848884134737380334725303268318623158239531856970840675443518856044128660570687945266214523589666444133919337913860172785963675792985565997615185013160838182210292750381507267445524723647003186515651930849941350478803751438606060847950468618138296491446413911694556583471273637790838293140481693802086560701474631321870615932297991044709989735317654018495514117654538527306124672052009003703720862535308266090150547996301386100306064025476697132059212423495017678024083244673810914627433543365607002212666482679703933103322092407246798535853787431149981809270100451095016151134042546156402821559346068738188573880203843143372252554267426944622568943674133918032504846992659951879622813723872515032315766408944192705112437735115602738493041718444575127526596165314718259172270736106591137412194385912731030737433922009346656793253858695210990870032138791434221079016454638400648166666495353047371098560959020206077506890715801990499054453182605858772614922119668309988989632771689387722826694675004485992067808627344696329473999533257324848889606073441905194597056855121165852317469314563994615935782634895294856140000981846249171471560812676800592570709841000360850266921594455634169448329429928307308409442497987338867931176576466097362438234199486823965920587296999262801034381634806588892377729745387010887405672538794449388643543532070087604280388248881879523314527973983747926974072475828533676606859164497807601406259830854726570195989024875535398718076784213851878565677363164151704656468710276999885738920344255021799750442918396801186724314201522661146567356614921390300894901110564944225702343403123976229346998460168743585026409813015969201186662148093733727421064375701805069777228228189069738134106298315244414198910936340008022109613712570607261130578315698104920119473255943519986583433459098451143044921138714876957332223112161580561455415432494311183029114179056286653570250021127563113160109824004560283257439578100206243615210689651350965811189232655803200727799677570387371604845388276058243733058323203638378349830814542295654154771433785215313127586538616794299712327665623170207037494074343399612740104298957593175799708471695741997940126261264115446433387216893484695450032975421035487146360375559107695101372506281435909172416350051679964541134519201944881646233523151820796798111016054939753402069009405343786479429994506824946792752869776433367577104880276698366657131711273619073900591471177762081497127080542798563117441573299898496478925871162786111773565209733051678049437949088841902386734281667068553915215936239585219849079406835229451683372970197828398913914185384265142081745457652995076179411135549042219468590090172000527659357476373865236582699104041332976456018186356786650531125770356327585428782349074687991981185260074357212085166510334671820084261731758648729522529432173729585936499949576127518946243929130312767989128660234626608449804711833267120149838798507711941504299757854292812127578513337425607535260946904485776794517572816452511411848554612384752902735090149322005248026743855716109313463329542196888589126711384914437131781208302563915476182876355035979114123647733029089393463221048456882679246865993830887254236207163036704522266948744413683579646116961714292198481125675391996472930800130533067595918934602770747669162170201587695659336439311089388466500637550063171582988196318815424576840389916388172079797287926788555660487527863358434759799613721279586783882492646510004448208393807515006778592261725492783231888801796641446187658521496735527945375393468561887574493203189338589629355251179034860565677732592119129256500947656940366788569673408559224888141537947545247622626781663357201750602073260414756510192509483285600453908107943028845506674646063988921555598967184184972525393021693068380569874299089075377385793635356745631948948061236512834094309073379461952258355529085728293229616590294016862989785484515285371817716370738441675290362759715566856694077266611088557287157513777258338487453378253265999667181945413317048571824240032414167557103323088484150795052117603879894520058652258166246017441544643765948738086518713045916323522965177556059198661665571068226890573678972112521148793550539878317144834005961591845065126087330714135236824390821848913198903527037968586742180405038235990204162035286486156579512523176337050948079795991074028888614709834016435212961894714749175748344087896609331134828024282752866172566839834989772322923733137126388190544186147023654798842280122114886752047943723517231291437315184906157411985527450659529114271706058252530151312792198627299534003161374006238564942063895288414581292212403619832020559908768016065588986139830461048225845019554955077116128377775695527911875828101185110697164874175108721980134238297830751303162162484326223305975363459703635538491231985849854294335911507434826338711860896197979537926485599241305637737558926142283266315806575720410337331072575654859622407035235062789216286429201642512293102584592086608962755428398664336481524502688862215452699062477926802760080232743697004588260553053849443431995725548991440955371098879079996889466887978397461470322270603635524952183031045034599451308404027158153550653569092528596490774908370231773753795962051261359431960728878077603696118467732369574415448758425424855373721990819507163087107723009833724885681573695903370357750136129055363820872435486302606838148496082240338019968451355429882976235925378023122499448809751013873684709594749580000755220218990048645989963999348388593226849772885687297621611426045953904999528682845481184487333764802708978494476126450147804174038020931736829365772028729593103720293390007442560339942033631337493692971530496105064195930986318510576145308388973954449107847585234161467096697876982957616664734119310576349344017791454542751483023557378898628412140878272046316076491411734972880878471392435048044334220339927205523279814778328293424676030304871355030375974904741168605808767930963153267145477719936322483939258591396818089048255278009641485434050205801113698445563451050463567851517074884958761131630821666594412881182100175989575370678458235676921526124115561664399473166882800881089244292043928537215839569646558560013100548019475542501950717077452352966554284361413780478088602345480683512491130599294104722631257134712711958458236975621514545846185330955373956575386381759407190097183280924863718319795515654750978675028391207556024893650204951373325836267324853318206132321634456645837752543223296419664289933440596141171002957779503660777609225421264129461962341881766538868357299460088334056510798745059857777988005202006915125087981876393712763917236519014109737202640438291630183762520675771854251051644026476589719176570480487010009008515328161405344257747446976982484218424856715472488631468905213107939645828568323842436567329785855782935859235082361908802052521527780066750579368493940934881241476560334128538041394103086475342684047581167660638950163717854060613992030561769861379564282806959102492893699036420829527948946457694702122360622164231491193258808240260727872582957493578869525691151450374005433156620789956381255980417703259616254311323789908333871942276575591060447073228078437234618451242950305043794319130217283785072864155334158096592028013737924833548156852413687935748394453803194940485333628172534519677322298145668791918085648581013115850546139685100747355589150601611054498980126913067101097345568624033419079168109910809916254236925657240286315349439359154190882562851751586451771265212472479080366486589003223297442644129115244755575410374235807414104052855546886355404898388822370752073175984686059600638596484962214242076927816962987642387585339898055040340144639619473362938457153865285918560020281079070659726229979132548968340423078614415253303706215565565583477785048547679265859024971040274200201772630542880150728734500543129760353168971306187276706645703237263556239684919766503809401413466482965572474529550387004168893512541613895860300936686775339768905132873021831268775080455737140187166101821777169163946387445869433129388926318609906651179121280701682258272829926956626057698811035352467618599913345754599134098786580002098908386885272430479324171110213927007737554936738204993786812247257211659103483542475204791701490737657464408021617958848628339152285209915682417617881793533362398851918436982701325202943186572268817539634001070789306401563696215430888638245511051553274857504451924226097195463548414291148027420692579203059516226663778049868060920565467524302391020868372474062484547586207532656535143632241192491563580717699646229848803642775130614710164332681270454061702923900793593001534205933853859201359662076910747184196049818443280256124334393688976780713075824872595931843844219504465609012625401627209696661504758360424914153675992896754748671095721279186783314827966308921100800552680282381392029692624969734501853749445177091926574161695712288892648995597169754687231376949261772428467039181676977996546243950060876324786191766390873172575059540907764505847028425420704945211340294212986246543344737548457333274456413228860175494846646390716997729555341625919053061160519419041095462668289581544184680436692128010298477749355310718702485604604671585008135481444359929441614547499369240683874618283062765957645059354313796141376527654627217142592874942492119741780949419628173840056901377693340099947060853130755073418982371197437397651463407604084611322937156328208888387128536861254989130289417665526073277179689107344493039916065124660355094890331119870517651772907193899486760907602995726430561494654666599258146443790749801479372742688116811378096793744425088109909525184511915082084505361575238492346321049500040985936241486874771113416552881526570207870099413012232338160932940994031122767879335694414814453312873179563615841431511076772394299622255965124467679463115342764532310793748325778549131219650836564638810175827218281671192027247662702423299399737965861021300738094154472713948249867755527383664330679821122236584756391750368548479933021193390119093690635387653942554100557872471717779857731940440872448637208811777051952591361711945875746340686553215440359397204150771187808257666920357175890423924155277183323644758284401912419294456938817407903463833453979051382618719683547418072969716229614719522326242699454222155357715504789540286265013630227715347840479690902505615253343186245325963583620496918581314545301053709878628606678867616052186953957301303229645073110097020188283886602827911045643805765781880904281578609821108584378919184935380778494752530091905841171175974197804766127658908113677695865834000159192912730512202116412539850965075662403836294278952642473976154048790999173478602470214181851820618397969149660294379734077781265561560420965842423479743911045613789642481254362040393163414565915423999291258238149314224383586868372072724131328554421643071506819499830079202658482675656116821284791746742198232652481802522240459422375157484445821011772444118181943200134957898593459692857931346515953050640322903855650439790438846467323371666135822069679062758217265743786835251153092280222114474464462258859298548547919491873383178775983318242412688733796885148385870114872983761782307218098663806664683521673692733539330484980430849900562821721443093406715450181704379196315771953846186239260111811263062340897691864274068072062132988472807222330626804023437926972604594782333137107250613741885034213618401250209048115260109591787140118132961477765015099700074968286375121761072838768634319421267590523973485512599790360880535033980977885863394563832175935123948990779061027371324157991983674203691136040726189019622553398184029830421463032046485887678610816272509770496623691781076003272010817207587888048255934912669305359040170098677472222790779812803806427286218676303817697711872149409819369805802106561137864606161266721617453465712795912467500342601184592723775729031831458118249888542464273409224403070262746522485474282283489614879419989404297278119761021975189282814293484674440675575627549884564858529295978254912644506772788795800852325319431989690082737408304769985787315038998064847702299617466928544986141339911294522665055760868492889771204831755329893804392684996291349156758655276099492406230546263655307651501790358431952974006526464485909871494025462256533886024258658418653550607614717615538375245713513419479115200704774355305441628918514259755496356703221875260890834771629429125582039473329713284757367575782603308346862615984159616372855229205220081054965112371504496245000447782935210989375482551705417851449997640775783520661685326477683397821335615424013612531484007097902119113394252912892238404158684623823354486359467834762542117017699677247760109745216135814079898838883865694892524597785093744701786636392326223093883925214573584711377064616583470859996556346617617642928016622226919235284037096951321427401202355471366344527693414646834849631197344396044795165248797035696139697971358821099478346146227678145039253838909684914983468382273940912352384886960371172849559311631986829508595695677805935773650625601071370847512045446528910467327990898327166879443483327758160746797959347500619263728116847484428921369621121245880900211772505781742709816961403635231272908450872482706105117689760900641900861601336854722342776803209286260459280529201581683903607175775813606019041374315809037222507888229604631711621639092326153406414181208205650294084244029819170714264445935333528933765350557686972395499818690276818384413805781350698000816556773604040769233164327136140653167307059150439050076929067699536079798594604903936368705184011355047925444359712096171199249117547013435845423900175250705846820253934071195327604945264029029102493574924437057765781564592324235885747698139186551604634755611878982955994236473787796931284882479596537373275394853185184162606485572429727192052680632412080336758460977667393904607640913906766704850516151422798664895715328777536869266280617123352767344015024750045479286500635466337398888638687893138787253533283180422916136410814515992694142833545179485642571103730342394265827375599305785813462499069518668900639774089970843010308032397310534417738425312515478835121432199468055526238473899821917031094112393115138189231438285168833901117492487759944704026542097223669084263699286188173441327971100863907658862104883095566424026707048985159714351559315926336774738368158919655863549429404626088378529198141582487837628199091568180211694548348322362860975389535296892094710120048258601518420850146686605843451976493321308677471727116845695152624967903237646965092427144299675806355292833658343389534789903596764677264005246892490709554692082287338724860435007095095630082073636654079496734167480806082829160233126050026708132699418916158692073965961264729640739496639143579797394337794108552053513783771935808181549346385540206101042694457015985866609551001239660096658508160637407509583021054621464082886333514387637494515236472035219025736996742598393425833669576147636549270115405452736089625162486634136422922029557678672170946449071359552851696662041363733610474812832053527826838782606862609480337366842801739852887126549824249826148727416387362449367652057052016108559988224957155566376430153837450966842545337666449019468096517230289871364780670118308780166662136372834151354581818345005261855899179863140975135605668489292643863343745039468908106103131956464417123243498172827104910070075045041088643766713692529874387145584191261758293793444507645234884901429336872924672709373108395827136913711943246124655402254619723212332360924199915785038223331143233464573358231827684581028370592346379335259615572996892025443632889608377620277417774981459745479501669476896641658636532585411042387278737703281975211810231659933796072591949354756584604941071744194117370759249238425478585190157562635503702878082070024933913542292425605914577602755639712363048552502648295416749909684301928841979663747879633724899127572849796759653603726606564068920174816321883679912371508378172069272268657542292002147344216733918538954197305286677696349112507317073521811230581147129546659778489435893487757524543278045679498185547325330888774078993906328883712473013498595773961602334369113629966774785052790322426895653232767280110859209827570163264506936953985132769821273623889153589893852065516782181221112590859689262877795450938934468126311211266578420478144800415541300029417435528596200381887233311355984411521139631702757043542712407234550972278641246363882953406104453633105571149194423790100474741880457154854518713927347700705804606657687456472421848000190914293999056612340651476789140538084412904145036714036516346200566057549601681731489739648938882865186688676067061874299120912235853471589876667030133222119432207220889997902979784491970167341896660930601655266792376751606935611157001523928443500639745423860477635764905143372733049166247403563616705200571529419702212797138395428619770051758799007105052166741396196215202636602986583567493781070408356423400886776588319964562186711988438430862329053551709070177393540424529734249268724697605421191176804404221580543264211761996547329082330531667625380453315173521190522452592311601019112444212693324136546721276466318513675885634508576791752741938143068427699761682236097574875038430462248443239841900761336394303298925612674433763786772069956743046819184116552574982744285290309490520410395455186661535516691231693516380257734492787701828226698672445395592517511715066805468095831200980093754025547515221137391980748165443425060300444967524384921095177893396755584500737227351079932004085008751989629443473914332127134751890193419576448648345052273366463648669911483322953537715764256718472991250187719150813365585585906942278314572819884247211738838644962567873169987889041203430817084962759430999080348358664207171654360982701898952891224172143660086672169966343771650806091098940161382027037575621609265020445938069604100538851458346139317342254519219903141976406698474743271578095597210276747673725214066154186220468647782496183667936484494366846202353468961518190117367815886461434047515761418916710719484368607707644738079560152121936870521852297881253763664010349651836736834723586339801680589847492900681180821492256692002415982236362945647446289266499243584661333638578130219466661436013131421290907208795285820458264522456662087921535659357804806590756952122175264217401209398689453755366799287214459260736592825846011407402759037407407063107074394382930854235547429247565421367068091180441610484933300737634781014618629188586080319611566628655950999725164578615615237265534060650033155195826212100948894868545343535872194532077089373000138236102800368836124181253861451580112543428019141520140055091815630334343939612334910859641041524427251554170555087884917778880973972847071639436873723199071963015170195317076913051227339077845906351158038180516621029563730993807244766010258228829135765022506425344878417071900632548833320588339377338082272674155890557582184551271100166258833120749574734892849508167002201022131246355347486480564065134764226688121285855641460548877049401715898188907922224180761788079896739261305905525994505238041093207258177369059523986375740705983435716513000575416981779657480842960400660652912486899183559696657852924519083469397762466452119760008192441814292556469008199540028407628919527287068867422620242685387453384789289611637318789963708682104748176093020659141461832628209731285037513651316396708925166493271345304721249063913080684121026859445575924605202904621077911555940478600551814335513899259495124113245504456749039922696078523072962564906929381285984559655622669177914031761496853830810384208237458705854192052596905801413107635116669619925635930106803295965309138154484647140513389661787227623095306515279424955977646392267745711446418676715906937207028590372545828890564581065084333931206394895829431610480128612577377417513913298885952046844022868077077525058060301749650243120891779620628874015303899174691122232309466611601577119780437619281811889893465720597712968342809823532900626001781476320470399479216695728870916809514823859964342209069185993673693572274891866634635170818849446357060887678474892784833940495417496163976568773491424777691493536324478041483320989309982382017669231685767438121826914431049949625612546013678798645620273183461969238672983620446685089552572441948251964692267428335050789057937450274610774301763425926355831945403823325944373724249756662012122436795717448010508706269478675680037604869486407948570812569333995534573124186739066812787852025372281256412138934972960348898629329979412342003025222293386081775720799779725784753771046302667660266936701220659036378881453843929893884400343499642791991017938238514096623540898357570165094082605991397348894926837027011059764932623006511254237765049936431298099656334398988619470075635866033756952439081860760363472888345915262750394532343827723061440443657268914690348249677155204182074076203067838148147718005361447090496532247368051728978608228101787984982769251871260162115990761512598572645392147856538978248592260517207787522730200579834103726519851247521199436966226446612673549843219173934166187551130146300972806363136043009475826348183224944557019626463352585332116223280968181464582580541071502788556743426784957200213724569774642568853454594179221981654159388676451673059214964982383043024223652296971163841947390902311210964240307842972166495464994649376561180450374745250009260774326872073863511990026276256900232951133808251018646902746236468767290635662702829627179701825021473185398997613097803096088571628405861073776535944162166581517803510505504371175929368602439055881434108897688517364525151473057322140008082955146645051197937560305767557810513347015620861424212256610166226988866797910792203723583240652566403283807509556654478883701713747481345032470997927972711405193090487143763526452097409873654143041545147025539263550718419690744555379171336486614186624063000031620966924623113523051115833277461535910955531807170819951616912048957932059755439336872318258256383830364239651954881413208269035976112684256486529379112974365439712590902766760795752290074371383050533006773843187388892830910580226163973677167860235721395293044777355800336782624964445371479540811715306194653910143608731725649487804346244029033759514281650170867012052816078413327977635611492586624515659694481823079145871777906145604164952607421679863344618786958593595190791841832784007290075287523431572274313241329049664066981474602625903970270031115962405142782246946031488033847024397893868830928219264085283112710196516795482178608205239269647165821603037820833507999693057642702828621254774291513777020891982037099782076778692523827796241824125102468698527693483268114758614059753922779697197611795951703152113063068510505761409217916787032254725346092248673832319302164342605445858610594975959228945065376872512108446247109610193888164547054294115555441697670124710735591989808339646197971890513125397077833728260818292507012748620211728653915274785879690776603507221472747067286395854827844016904719125591831010563132438990473733368457502018607320884234086911524479035242535390374777370801328684422621457554253894158257693706607507250556017486516238354370052057194204453708634484478632732064243255825241071342487959144393636270089812691104872790307553191114144815681826202245744664626509203339674980927264944149117924306318840713411671880566439745212021399466369320070271085900799598651473903755769250542790386262613741699907744317784683671723929334808682836206638723482969759034095365908471364055183461764121436878124991089812582113956630815686034363846907517104162246330018387034623860766454292316335380261814388349579191416838902348837341496110790660687121447464457783774531137129864870855463174550701712595496987494648694300461029032668212372487984607263589068715950047316858945299883415861371529244406873610309464209694253321668988338267899089580689061235110658785006216391310247577410053701225903453586325550707518892081809535688380457443801934521853768966332776533153126081899506620043543190302826080710474254973906270591349230865700499387947592910197416253137048212671398788391565666451504887651119042291206071938068057632111741363564850666774708271242161961537345909592862336849907656806219384517595406750331052009659302568424852655134995812514610728086937549036914496483071091761517167684489152849918472760597901713694452756812720976681840744354328662675982472133810665667064613150488592977766363931189689638277846562457294898663524679865552271473102534683066276935025823958911142078611781408639689683462402531791932769796352499865754422899043040933362022827851793120088403542788515752889173918844213455557904337095897194055770113569912776036255782981992040829408106845719156717901764957345736499155292341681203357404662645771385555923229178477059560715526286434885154108634357598196325164699250202243481546230014670290459286208703262820339343079946516065866419962084319534091943952444651134061191007575808766470028283029534392833998095005695918296409675504355136679735019808688553615062249055976614775871670485881981570970366703411262808037771336250191806152287907823481098931319603336735517972407883720822848089173021640429160145478178428333068435564260276950708215093437152812065520804721148234925115243788539936258282637530905107019324192986815999345398574091896154542203141983872218851414479678400919744284781611335708326804393207965904060893076920499506122296241149014023506933549798465261992904728071201879623691842799240734048662976262279846868226201673642207931858123927326313587533780923821376968631972896881473963778585677654311742178281052421327632498979130108197736069434356870214004543812385260260865883260251323317163216810970077729245580746299564686945135556728413843803966725478666727059012172153469319785700019316937628985235247154912235154685448300377231867146698021386935667772635014900824364254441662023328301458389328533168514837663255307423566157176789431523723592432230068753614051550650663415146542429506234655145708638709335541146546699040511452132464532481577196899322688342935704403473618494323250529778143701599847997696170602813718663987802616665958801227393473333805825066861259060749632904372716150233475471088698534946026822929546473095800602777435221140869396015984271622486423584100186619163994684389869962121251047305380727841290746935114948742604828866842935746592013185915043378767624949282205251170367588508954489053610663146504337817863487174301845732918190116583774092793674724088564390402314763353335878985828412856090597725974469116782937010093946401167662208941862696821463696359975935209770049174347145326159083119764520320551084073991604908025006362041968798364300293467006424347511616060731143924064034098204322375091146575455011584037396557265000548209259130025808886648279912265820041481914561606752050890170454441747181401370818223309522585770771608872120541498416065647623431137461874019604994272878131398062682123231446136263712784959044032485885390125217877718589826774310127659343599813855898635193946342709125718829981740239890557463806942604380135544703712285783899904855055771820422812845321055629221141006130011110279980095010928249473135108254155398763766695557312108205100890697063390210506830669752721682380014030521820711581724593454898726894470120137274969251028466712663267610509141257597512307530462222745622404015502316450345277144280765947898555375459819936651529097230302438405215138853243100720327506990394979635645353118919808944817275050849000831612646644107092422534590240499020203481489950312478870196117072608121359137927743304816204381018659524522413427808689403877444171024885339261196100848353240049816840379318311371433026826771842518347206783684673157894384081248706423441337595444380312770938167279220785579917240563278797560392261563835682496624281741514682480661798462643031996455611856398641263243192927232702111298190042964588514905554642618993631160481376260299758234092257555975982179672795576483496686651556872014539050807819225652701180001644399943141817183385429526604886096269017378482119555316553075454185118043820589165361148341970806380550064075590761183516052831591181369420109924065085720742614308513923515291130469431029259229899135209466223693118700505687064909325477118902147066086844724359764068559416622116119459874067338521640869229369091329516400947205253960771996817547673512873525638296907916098402003855853232434643312148471165911053862769029388057694525608753983484823607031103618269503735725125325887610698441674275378160750151112821639812195340177735210167141050357816469464076917526681954755910728368746245815805989063532203861332934221924573589220301065252468118728779451023998082588383995957785601888016584503862477379286975590489889355979178893518581717359911139101495612583560413926385488793857719202921130552046105189709300887138180658078644275825399266033824989687623862514589891112555510888103531948710979133716334917315896453667030214443094698260643615599476427907213027626312648089154173287773171836902682547788749603520200822892307414336239468281493104240397103294606396554601517442091318220889510537651317264888155015417819275069065299996814938309821953687512082475473410504695815660853418117690120809527587559125308301644856153197641152584317688185774907798207159280772681311633958360630802342724716623684770315970457017919402994725883532618144258509874642404379040127336544478168362064807999827988310000277022864030900746518148979930499263751686361214359289176846293958464682724403660452467012831318868774127913081208426573391740400107799505720363002967660675802416678548073279211997023223051665733591620821759105596582638158244638922391105685116993420354031481424334244613038884574003462359747048469709801046342427981968437053425216748980380281402691546494308153057579196728084229958286973484910209114116431173893585854291812986763476472638564335856185514806722201997845291088706850469741088331456072137561384565766854956746515793051133583152869289391537326240573389114694799516330686078102985227951430938859303803831868133611848399891997390425915086082531488348836015725394026762265662886860704589468645400430346455549248634285385585867175031523318297973202065154146330329240440995287163934110287546882515142392773749153057320364863582191070297707541225682565842886455444596462562880909659981837660137929565400052889225548748984858754745679804096692420010083477987305951378501570604173423710604532098464069067038280505938636769306832257741689467356126918850322055482082425689390957844239473759986058369425992289439485467401287405865487293003782825592210229245405388652680660435361405410630387535101244086115332294936192253686902924791593203154062311647697465419892368421201350436557964982362140517553945872951553062536176802990995914164510319802439565474074797940616433366889986681728975007710506385114811947831462833239156427782212046638171851403545152265119972520924515156745555332362899832013951832620813863376606531269199328984074096947448992074495778603070438672503720427253287162710005897182027237281138583218642940767901674326579671982145734391472270706628936014502274810588336270508721473728013620958787247462881275783191941980413060228636548657610161512972049322971921016881948272481246448256069228073601736546261181999056058999998406420825120670627526331346758916608118183913170612817914891938107536363011247793988843267867559736931362230706883507966649819396334929309280166484288477183868152942981161834258155192490081880681282640708258249673066460646628447709214532280546227079299638855861883354483278784385273731922338367471284636052450197289701767358920550715672601281615408530048222449408843969801830559461361653303719547303001224876737670316690041815786870853917951049999155713988611811255173808530045642252498266276214524731509169795464535600087335491522542678956522478223248560572283671040702195994596934243981288934250638761665697590748117243890672910342694099218267108448601239727935798313056028528299613958731671457814652840132918881931162229521972906348067494042305533022509401235279444440492841014394584266477707334822450750483737836485415193843348333640998036023486085350074139974060001066485473327927081139132831514029191387043573117888903046907802133005359836000751384582554093189407503715300540538384093777617561794407116009755510950879971360801289266780366368018515634072928609682666963426116740086830932439647153455214072123690486176671488565263578360473467808934297935103223507425230095071254320080827583240523379319921816938221126532192537879872933225727898822231175544261139411513662675964462370961267125303016076387806249715917262983545412407006027593497201419566855899749327994626408689410726429035630937100925880805040028957033607934778373334251824417115549981463243495377325409493137366967576165195695523100316934638992348508954873117634811571120124431605246106402792930552740076331022536332113639768694442040739873586283238775895339868323148077632453831391053490524859356136550492631949369473020574646291844206218538526974141098083221612612817501646735474869395325368072590260287949135463783201136048299681180221645555487458403158983393133052699797066070650195250126816802823693682285001860753867838087120808998543361428557814166654566804372931357663279557281411157338821342473838120787412874167912556479807041773050169350202200575474662701751227767320233128087533673059730352477694235816466191246961549017284119537400767508269937941139311294105353584770930032715130851394170690585310142541167764937482485050867295475244697421912357488139906070021047247813673224196699381092224784968035504257608957932162930066108530482402928960507828630234141980143972829598865702790042663154558479260436115381958847165369423616774194959090282009907414319746018136508749766160166534096969089280495065729985503438703021155823007088284553172903716896799931414276153469485217045103726488373744474303426259237656927178646892810160324020791436536994342450689857912447842318848192900666582188867448828008044120883390362496180034976507696634834244747429083692670415170361255361703864031279971778411001987906642654511878698397515792512366116278496833422577619355380975088947108644083622975032257376565144252644516749063087498298573747559962501802266052589557343120267913769708540799001726947472814752175209564037432022107943944322617041010307067562686071759744776122298488836262000630116604710139192191477316366193002138193106499778707056630634289691543855197364544835564547031062646414078526867233006285850358404221758829957280549502853524053090896554520507921313666450913963561871779330577477849404072461540480916590101359224123771787732247164417481031219845036572466065328071741493796095185317457187973600159330158515646309280442443123065889462288191620477811670771214001225771961870696897281564745218977857049981793865114238225818519153731232490381558659259545010152389504342589843756115756227011410479695544421973534673546194537096111974027893475007109400778916135414310371797081971942819073049764613075795558452021034332730715926149135618966351159378234467446989698327654403221657872600829341483971157704553281910794496826417691108045279945952160646231345612268873801464113614716626023251652546628516103070005651966341744746644252027822016233843475094667159475478905011187044770924443341309169877984943483738623441608657845678383921015351641791769002590219738250513264675772635281569020772486181135792644755431593521191224863311011274194506932326633392254037320557512653964504737379541856937558621544604736930774019410407743288307474488996511542117922550845668542849430296274379178336158984051390471983982697312776746473222532480736141666663018916104237596336655885473945123492540273480908484876638487337139970544912710846973725009401803845638877718164749754716913446149474300811606220759976014371756153646792179717668669760386317780819817603419697933464144908740910944117306187995151742858943098444400205510527588506207977507000137782370275670823579795310496253420826185844053483045702476586294734036263454877255150109412534630346838007732245207424321666381681068568830218123162796872232648723699017782941130268501696452743474855073952205119947640115692778872564722730482283538315911954072406423027530650779122275930863674164449874894785023397762371735083203299799233734933894792945622782553799501177199944997378863701631244003411384628340531693218077011469333741810591845625069193149645399486294046282591448978464785327148766140268858559517710273621785633330206216943784942402311879001496823379454832928227942218372949457217614966902023029731241365150340460186867592438213484311217821358567201653475601482595762348911217902726660755504831181686152714761740836084464508640571455044848563818949108599327810655191716019881609471550100777296274100586724616536948715715456842569965587660294034594250427715153988856336122456627152922891927945216144073147810288288813226096338750404159838691856717412761107410233451153624557599252508470893926883458257447783161797591880814589341061232226616985005146643454580522053858675657271140702601798682969828019137487498241670145578053446418235120761995942106581544308855041985956974717920320663463062438315115864704370913048338053843440209212964480935934959143839250102849916217576467589673423655509180375390519041987541748286046109138068092452498276654587506932525944266679708206369842372068163878946840956080866856749593078938756072595145468357964455158060784924943753101942732128035483818423281574675897284140824664639061182702310623354295973301018188888763102492371402658746787324889594231576685752591879452115760641607525005315578186194718550390882862316668508721656613202792365917768263741534628615267210774141709492351394555001248475866111161190940999430852456762332712641167300732848171352826972552605849353298870642420093148613935600814856852892162669080324618931374819649115185518853110932677781741625934966330262881294308889475078516316941203824270107734423057639536328797189554525497471380104486004463592289893721556995679816706885676573903412752899749911499862598723035014949452365567911118133878716606493549467448616351483747395785114866292190401786147102249894852308709393824005420795549120524452098482470248324804997772159397239904864197227801802562508765502663907013663902264016800029695024775359992728035662128429515340145242111929146904800614169497001910498826286145181345490563791754449546376892397997996064743959116216617744838113600522793531167127196548696473327601495179313181364466571628801496008771619321301587121637399359276497794922946517967067535039883363990755732066557893930038702950017132924932095386100172868835451359788349992858510440823979184868714931765851886520702472688803544759245738186599600857892529491898862927906363605021393835407658923154748111663973515476491487281026455304233428222968174399272055884716459790651960832239740367517850544422313475779023702886983603192713317135063891168862321949397304346069047582429105265157850459034189240415168175235428053283765235405890045834526644350098369645688679236523650170271832668002942404023206936882717139761223999595725311048504200667997215346168059581532198035448243171483444379559536564386315797515493854672471714943425702648913765310116762162009068726709994156448081217536169320059970259095092677283219173365839561564534075639693487001681480813898880664897006112567723512057506331564504456876700863601752275174789574220818121097679771380092704493005347117130511236654771968393358913571271570761264522572555152496132563625127134564201150436281613430513422841992456031950936654076211319122971604598346094715145433330256075548245703752231907739857830865650493172120046668542979184135538852495554231525081519594592317974171400686896020887377462222411139414188483310543949437346595218749951017836321904308393465895214078895019388424951955682583885596965269602365473115674429662550453880257885552900498537642697415272155641085850478592265024468992739955042362803806808867388021109879740593588967077792253290610182399489777331713809225109726777291394874959595864264514409382403914398780817110638651242460062919516128331190907442882518660237968897496361901809563655159799017698797848026570713119751047280678654186705464879077959768826922665402080039075282370133211598127812434714001995999021384927917690521003948699583131516658315770908217310263305691746395844232833474697320852302262768913259689895213358215344842860114993995844521928662635654638323643499546794449878652412113442603610889231864680870108533330262848091067966575761143327406301222836068452332272386742428384493628735713038604010109906761061903364405369194363443466350232347980707540321402621130473183195268781644733458980550078289416429975242617664114009468479106072557347102043051542934703392228115164635430959976272406872554931702258824346541785741760165682733913005072186217240425098143952319315279552716597416461242601112405608871117176443362900753888593412603422964651389692784608699079871694031122649455531506255541267471706968381555530100129080880784644181205981537578458410787860814291969418681668771744142667678456540743003634514004479280518967018484129611938758317874707624051248565100257750795351195330013068505255490391102652179295683584451842799900312624661003895891940598460014649123348232385925412750120695657948886771502984339541000856440946484178159673650779205923156651418475635020702742234248593047124463768280000348443366342955835690859677761130917689771137433372105826594028120709853635475902273710333799774846368933254030177794679561088887615967909132129992798427532127864232878671213502987013207176141315847698596797208522003741578496726245773182764533946625141322029681136815006895061633335501889496866952172781347626992383513187023753252501945347945475212782247883324192688289325892931738617314510259076787477395939010992697719983724681930199330558788378818944151140176947323868941318468951091020786684608691376282263118509671777094104295953072152438411989623844891760755188223525748119904830422032705962588310216962036232346550078372012703704346399669355701570729175613819514119078989014262571783778873581478371545610621015175335255820799396171754556336434344285181849401851516673132975368858052738250880104193342815399598050772449060775787187468030016148246733621290263802450642035276937707400902567148827578414190528763695988095825719256828019504234454926426105108779465934656576701088542236970933984142444855896844492685858327374379058732348325632827728200026735518455943728100671684862682699248612331668462695330067187048418908954655540106465119700140574132797570065704415422995467027581743343427314817656524121215641520971990153933592557279020095479241484587410956303181001954743275502529789308288485827720065979556926465767803391590517210484167944348077221870060442650700228788487520936469297240909117518273797701465929949620282648367449400505608036806004521447352635588593112945974663686125618838127266313951764069382480344845028037069245822693934694751223467568530047363685602304050446717078892459072495539459228000770074522487940574893910397898998126206314317799493753634199496354462659071334490175512316221254479433008368607671478791443486967360890317718526146665209982407530863381842583510111556208040749723301743156312745256877233318870305510618343916512589455060009166962428014697552004980326829113450161994451843530774549642664524646599332007541679990390508079400747297602780525699074585143983619149483646371395307216934176587758711563623069205330293507912924169156845523367776760549072733106577352092011128426850938547429249262407940198753602322258764451501646850180273105294527820184934844084523606449098198994441599463720029429863007958360736841391502815068571072007065483425167807664780564579570093417163929287821825204572614648484191212281035116405997199786586705000193972609313903896029316749333845513715939637908594976246217911999546982037579600371832739257250502907570788951141126716688927945732718332100515268227945991393460955077942543125353122875651360423628128938803468962368154732195519007789111053741179792999295241283641150874622077549317480239685349419454204009208009352740052023690619125351342723102671297778419326508451446519715294680205652171817888793665829427185781880923064767996035809266159110078771862823840944269810451991399057238494534143894615935525601324993633212550168103038150192420575305554480310825156384185450715728328537764525992513557650879780022489051532850029224963071628380477604300243591681469299532557025491859562372019445698659514626886320529307530201204002193327617018637023727396579673144161626325434159997685388114184381383822590680778589911993356467781326374593238436468217108586461539332342890711143290685691544124175353092236363178204019579231334800940045400343935440790611314930856583378079031474577810668659727055199801190964974839793796694419511828541440756608767063586408934613916791655006750571436860146475888714468600610164907436996570821929863848326078665128428391596909542132766865619833103521328914163937997363493750031484606321120170230049481608209112009474474327473577077239620227820138618013310267415629968173479382350548440465093529679903378271444563951437582206699547437831570945407684121742854190018994799281043889467902945207675689509535654879122164489547499142578291911717682244478279166366185838435003012407240628438501008983146753443858011824228751060150978003610044056438489649861006017391118523467871569006368437206084082681801523605585522847926457942786886375139007549070654217541134731622540070787697347387233651340968432762402542475635342053988603771024337159300061366465571985822528626081963677344490535886094445894932074369514972500760950442246103377608144600076864033076225760735388187941311002440239360898211887619477962497294660893480613284153725126394137884675456313577558129806637242538941143662970432033575619397558568693806822417290783210608410176410824364617098138173504008611819046986296027015482696819639494140011904395576618906233676191071905497099688358845103203723525404969381149122498525729810336733213699914747339330937018308618403707476150962223209261781382893962742434784294829461660711089939943874330276030401872449691069862795861585976960308074693935405974331180579674985795376216075261587447826213353004997149678817581195458803488755265671048928925120780899714157283618382865846515975830153513880090357506032335598378406200487543754431591323824902047335198257028746123553872662290736906829282884632417101549540279833582780270494552853651830294049136984880347352359257912152568735663643763379019992958990298905238556108874798488627069635894673332503489130396898919590575959807272055773290180930900107289639910253359540023718095924688492024350221447343426906448756376952820734448316227901081702472149374701845893931069487485671223216546400388690317750737138266766755316913579356088504867081325289181975302754014208211561017506704296420998679933793911360586748716782584575225384671193742939838579147146755552961127921143420708228639506922900114978562439885660302226880443699491304217736852240607110894461528866648557852848071650731332461525028229998099309379501349063942161184973843868773480784621653323530881691899601562778910523710617191847673167906712885836091165051245553905180727955464162788012118663421109169403815382126944116119280799184693566011271936099528255378849951829386322555093580934722520958501445203852729919418771956247657801407479618042218797964103130452217053739845534501650194119777933708920937767039334617544559599133558080724030205639145501765147722272276741559759401833650659516571831710662775294955616768430010477096260052088237027529416472546532324234095562908596309241251920648902385816339681465327250420725112128445135276946407920919346940986141625988595453866289301096275520005441924134781836819835532623893046866618590334190473501906127654887292452494296094669256738953233793732786364900462059672233067912959243676529781849310506202280088084368514313856149753781071624002701367921913973113416832123792126038848698020826652772113572695127195379119127631226473699676777491747492179599029086773663660072152599567914863766141532853967376161064441759905830346655642923344619913711465743909641850040804861836097137066598060340385499354161887385047018563264416113747743362928495685987697137582568817194310973117057858500637477914481310062647856283421099795787519702212316502072554327875632599243600947942724304385236048925760999597502762195778781597036177777729688605902184095142968192310309202541421360021279552917557310506114361492044961062639343333493289204963781908224021216922976990233661645340610512676589507415635732026705114384487991456400488613562123845010739176891551767339412887524431154529567781017783413148189293746239291107324879517643768576980688104039400640591497964369279414470463558256289308857213866579566292710460005207629470716324682251863511814068252865908678115325787188186373105957616805410974223061612469873098908582996051896558330545958471822108354063163408666788614497838093331909060048702593943531675006381462780013683484823876155811533571679690916581662534020064286395520293921769832978504261873984330911299719769414347664104260130599859042813749891494873057071862401363455008273091051365018056774940944714268226587669343259998584585917728323787939547029202313735426780449074567863644907573763230422889128697903004556750111294373613090896262320696200352378554767520356641324159896847694313805122130415367823656826240137798214883324461830680124183783192866659860187340946258919620370134074959900141612798830632335782928317657675367282360030551767498504674625577110309565786298789983158121663390725516493390983181833696505141911758084106441163809124595924736411108386927219873652299241511153270361511437605007865589563173651508362904436919952631141687655506566796716913908447502841079390768574892082954323686070606634562698123174257687118561650629840730482002934376747122316680038930551475423924167257462729945679998975809468318244761967354721326441961307345905798044695910903196761261033400687535356462208068800443570784784351624835810395433332974067250325904554925409754279322929763119256656210119137779349825523474711061151462053835433227300342401824641362242372926672938668489292391020648746374151883718638929496135179817618243616699926954222865851590795969398466081300248951363043720607197976960825799915147303742128441923023886230044514348567716735343674222067726797665137941900210292769230057338395697762179559845402414606345724047279890416026979600194099478736648429368029301593287767843301600902966230438581704567624533994822644048592406138663077444101235605131654315119958547767646233033840136106809247317082746645902366058743636884027561823349511191951993643773172980014440742601169366359708488837791814594432969318815722959328954467708693678744181311665780142817040566991171730213397522920464540148861221906878106001229597224337785222775048831920542652908335947450363107866568695150043066376050204282415861434846845944699302553178036127075038634843324798661945056794709427266769778270325241831882467668997228237942045055733530996210045599745129978788619700130041082297382219928544571342762657267860383232139592169167140496122466900515137836711819964873485339726822830650398031751841035493246739152003189443837293156543023255362141987305728596944615516366441907277098727138846106979315006039817024430098342170423315973981695434398353199842347281627347061641016055672290363611105396087116962044882579031039345216985887803651802986729167767245712617816946429071785063677751163226828642340909021274471923094386700756672172465724491688796520048445782492972793377268464514650732839943788436938974181721283287435872653610077146444535193681564288468275920004468356145711895270892532528920048301471139563166427883945895915908221710760526642849835627545899228056227877584907634792652130719694477539488810367595760992491650271532923569578126361121834711559715558576604452503278097919047934356794140406827609705067398098045635779063550182467943289666836847481435454101757798019331696354941413580464484394631340916882313501757504009221548521742040359400765333891708313844034318890045569234693035819637388103201379847047524990234552050856429592641620351964761404903563597268244087477525019287002719499147717892678418949429135785908921172820995535242503586603680692388974461501819945952214615635588186590538173370588825042794342144259313183426005254667702314240290314155783012716196179139589822818531506162850785840967848049049016816481387149137706678301966544644024922165232582571871259422640346578247656293730679647254968702212470593684065304466041071411360501766596781923750114297964103240520679282510942262184495611313018836449761002496054509188798419480095157991260235529990139441227404089706784712571955729124762263823938073176900722631182566963932294624558409147954293175433340745522499900529888379712205766534991421299715749920027066285468358172281056966932470440809550807501188305463944988969045505200994423527271410661677727154589973751029668521861945753472374803521478819043029608549810537889739871163124389635381174009675382774072480156858047367665531247462162773120585242511762835810813555384111312992456679321116152409888513743586452829037256368512858390546514883912199239212298414640924782273369946585552010456377591515156243956219136958735463507921387973897961831359138980308979969714773516120238962018270320331836774533603409372556688328480038430826171182739733403904104125756971257816666917006497904524424718470151961954759324416437430977053037882236520343926703665996000779822256613393462259935043409561274908929784861656097834261154079320871143727172519320880104506957994606820085691446249001078884486212162420995031102182825796683081714655863689788266248142858585537841081109102481812675219804014469174074031442758978723373400448904989082182623007268608296813441944387044976117307032767807932447663320056461886628161479311639346514289526547628371044917140036871431390497617537958976778133507786359159960591971700330614675966397046123116632496657011937969820023670116567062693556176110576918893617473673490132166633756781831000846738036555916590144400073336363089698618857662441791334468349526126490571888741331219298581285679268156166087174939188747188985133956427161553116749315354877676888854556735812440446314116588579112641743944929699757483635642190427814357361373077901499443798719267434571174705071215117835672995885232846720653665792037487616459530984044146508534992636972346837056447660640169306731157390678526094621912791013414687721767427976204827408169355780185040513251415656183695549383221330898537383697707009525513456893724796878715763609750978087819091529171701278225185361138036818386050606418034282145802358876669241871849446235743920124877103643993952825956845004000365106274693621852487326764371333775826591218198653428864921591504292123029393964402832558676512999270135236912546724801239000528155907564715547454930679390857067243147047710097766810735849224859141925684412459334394792858008844304451762171129550313407703774239448414835562409943914557531877124213502939551909627007532751737944758186330845081208267119138010147053205543266404520439832133927670328068861725335392761667261136814346797220038108575961425238123607026571626608029643957088700393708911234493398195836302907682781781817493053962553092853272392148907797504383515760601466835286961075538616086073725603165441960057909123321638250422175708138963537662603088833334483450027779946435038940500406316946797662768136592580324164185734050920822487998481692048681840250638915525561222975111121035320622432389554070565939486367173492722807916320247663088699238706638319028866936622693532353999025714514704769271549768930429195249261060463122126292010400571920751676736738319742912868263284190262021115691544457437459124050724913130548788974298121531356633086751322370234643257325761632687177033290596851034432499245144210868810715137013906108620131471801229640718172325186141381769798274734889040409587668316090599260376250236083106840577500607325525472694030470609388271785266413807143573810851970440364420340154498177286333808754558405520537917700415988231641556672440258560409128017894041792054939962955660748437987193607738943300433985346425015442789930410890416612519209796343882806576929687834293867344517382967060260354371242484800316698957758190823420339493737092073322078377550544317940776819284019232723337077731658604673493030207263406678022472983001607138876775877410305307174873373749438080987416282565483747901777635569069067874827726479199302435739309166148358304152428680189959376805398820899251883370712619470922741291761144890908589803179200149028987723789918833522544573851444624430842395450152715080078772141354010549503978244868803083042915692174732110302044625315609815732994551814563213604371720117889718160215026712717213033230434484022590735246364143619081739427746502723502165408913200822269308767148975168789046027462204279326380837210057682310617806360045091991821953188989607195178210998407988618061933108510258771259424541958019897338960445964525888657750601941202529249047873968293679926774837039074731786599119565551446511684376882835096292346438770050745838479847252896225198978079980682811288827889669231376345042664081732830162311786983981546013801284085813907362599101815797499288544705910690189196680137320709235767696204087997524543571114289807990736675660330375248393569514137157456995185714921147383996943041242772177444970195556489348220061836478060956254391957609063710006815902906904346900715449342253252216867116031643307932451734764305854734776001432954803096161059350544110877619577128505312773996630676229349226444152402393311193326197124170422371711326017788217003381768521672726243406970098037702811474802723642092456976498520504405723333779796927817458551514910681906886947468641492296010039883544286279875686323028369509484985501659923594179204766094294716421796138174498133750541519022988154207739437922889082976511910457816340044880058275692915061535929657240357863302167701248745318371399951272673898200892699375468118234097356571833728095924837789764023695955405969758421905523518448926131885164064306741023801947858677359611570911570638954661779993387739966812052575252087856720386816082440553905558604991765603495468234514396021633261451660419806834082741600693244262320215723777607912561410029821283347253188487845361033736142785285035868672604651921088924380025714371184087887301764041722156468077276689054159533371285953538741298919991000798759091306101080206041722715852057464489434084216734977513512122019156587139773222828009498077992248167582498267851373887917629543344477246254981192404307325002186554029443294822209898326645182257880115405117373667871406871389364969262899159656603743235473057522279175213699648657861441938685154168055116103345033363923100712399211014486259158675636579931674917360591854129275861178433907608374800278989290093588462327617692383417068816888644566555438913311359871283301910790299143171456185110003769175266124799796952284190534825674179148035186990306658158830902225591853159047804420392286209583419840558671082782667926229866935006746750530754684299946590097039666041505015000493506533743509340142715851737553831913793383579238148871388747116156363462137247742756848840890392693098718707398075619929796322759420202997084334163717496672779860894329684083258116749197779023793136704987872763608872044821303173570041970119051466434836525375885049750497168623619895442037057895891621970561269688817229500460587288234287284357050903065201003824669869360321206890854769420514636889451316395161203124984266060809840168892764805724611550059336984711020008184419456277554428832986105488338119886102486122313412415520487768944407758778457235424929099057914026591353287788416135715980049558192847726476345075082395518953551709419019280211628400760428809826543972615125203153451445558043520355201972281058785637552788861669288111708142072516139408943256863484174754860199405627768877381581774647452316860520195743193303561067671715172740596445865031319677835369357713905426496423778656343942787358121613913147661297260669823029252686785412841726254707125620643371555750494322574264247212246899061799690180797235505943272731310818473942664339022547301025774534467525091375865784656359517968022748655416029746203006050513971715726233303596101470576450078672419612535927835910848256414687843311368652600073969046721674228036971855177201535107604591411149049441301518893518437098603760606738818495768556418382709016949891883349168497034805344825394809743839140832564533712894766662521599017344249373075887937827069238995061309627266738417628059051324148674907289679387885429297391507666966933262832244266423597300116266741976452351411862207669306825398302683938342962888365833466020435234771626159212505436892140781793100802039657285020689857275930903447332507150938538397222033851516075608210944714227342911485121071391216241844204402687018025230931394247200682035693945909263743364651891669164305322812071585238949792473780836820270094735812802298025839204274944440019546206929849424223377001413385085483466698799292867623547215727405564960948493557402932417060795199532874038017559561002333725569254574386262535675091225969432560928165654653930625698079037496624498406512775106281298769717518786033835110992002314282664152847872078078502050996221937281771702935770718005923348698349844480038108710918157919843549923450264859145307752926498958685289216656351371585436151488442991774201151186035116616286810613248341998151266370617460375792224174239845608678378238529064434370125768554155975235200882262467162923598757935584471636273431437159420221491103352255330150277581313902248153177938464103582058533792550985391980941036458840057432165609919697268800033731504270036012066026797074197135839507972555961581433042260042899449363945213270925080722871252982465487874132087683736902785543673432809915292891182546217547807018852766428659773013214797211771341681576479404010266307665251753319070555312339966718725818556184469254035724624492217401450785502608540520122956800265708776366988133522061573456928468088795686488041718378001538945352982810522809639580341284404137531958826048792313847464565759444659338090057133477555214068236182178301688987212344417944508242430777803423671569233516064727604805870107541985754507504121697641626580921717112477383665770832055314668306964578433691673412399925260058335404816179948890993151484441327550579749629017695508516377822941278742796578892235521040883451682346079332282368834357706482485978087933399859018958607353323147166698890405590023274265560631076789650356343132560384442975063252300315656522083325254169524184433324220401104903717392079044312710962380970585153262103365323699365832999514395848849076639910154120981533428041098670933850254276041476514393697827143662944758791466764418660471981767048650822783797669271197153560194297637494212289626084065135461357462180545302496763090639734323597634891435135753266296951196326192530508661261437963409337613905133575016970584655411469571370777236524344012019007572352774185110088499478618820520546313285064205000825933149405880030803848106038482151202739965326464267871884660018783932321500854198739430252748371701810170267973943219521056834233458030486783857446661855432716314403355444244801662181484612282562054594446315132450635521112064487419104291021924491451284414409216478614472831621743018706439858180826757975876103873906229518618387153999574958870637054773967203771858891255415829868278161020988916936054445621827233241164906554219234560331917529900422962393798997821968076267648743594373933936173441303736357981998250491147912605100955864177150155109488803435067095396212926195980751290005659378524500495578276066328219122637381742403915666134787659094251727286968679777740737122943054765585580963097795040069271738285233071118240454152934939920681202873438497841588247533154875188171193312446373978258586755201239176572947651701989546965622164036657545805839341925110647088650409954005398187169263495630285977309848700923913441176554662513297505074915047321675605315337638553931303526100098206872385707229655278107074232524536459287491796042883925989093185816472334374336096078665245765057874198693332630414360175670351841381723133735817282221010877116934588759680780249464352235397474659251837021136352989077384851649327512437790184941576194097140734915139723059968842601022078171520295421444869900551723224511386989961865744912754481508789331847536731556800547312927935385876879407772971298121113644573427540282728209917017407556365156295124507638300200258342494311354568363031254360267969650540827759882961487608666161832489546178469257091767427917142956146023870947734028623517126438479643978181066594359971579646402502408551770457374928273732178307349233278659238921382684787776837339622820510164713473145296396038932061222596807290456221862903345442147148205717018620984011668694634138375412209063512393276818955682756608600081481551951236450516233326630852526510494020038915240587067760740674591665665134157885032258934770515667811881882420255612869214325447375386837843856430233933559418100221684443624371159301097623992030447580870581449426625143572437223159964124534676786106943681307046616054266429328105933895257034828327923489129808654533893477517152849910498536650614614680663970718703164328372856752261380497501082525171165125231515202935404370256058989582570639937093755270055329621287799460764516249797848896035138970155581464780498243160944001497035904415193094466211455993740372704262756742305606010115756853998190239516822338647813161849171073167203222474867555672208084177470668017555740553708360162343300949088076790650877675050272434045376421465521803899672960064464973657118491921831807416628389325496738377364578658533741110393946365489820739306327779114984811062430884780421679473685684712842270345873458821671374977081068538568261334867877258256740810856228588577816768793907244984651808243582278844149151799813601908843985986004932945976625127073560395035422533570375672708142679966838306385784563104317005124482908983943104398548221385603222760398139767782045322848561866887033023678989767249983451328489897238998749322792857983574182120488102462701860452254937731936667841121057377410686339742031058142496956300578400881735324819748840998201478080061970801733124810236731574008660004860914628792621672561348004813386437105129452167775557196945110472692976781577832848034685353399988776238481238785485664737036474052334255011525908984331446261691498544081510551940435603195565731381167076154556847451500926757668614340347206783875423575132334359442884120521023348446441263929604766433632128025205198285861697552672227061737738691643609258503212940378685125803376082602880825977550740411596162179845942360461593856867794347331220962813145160292293333246691220414119393682932057472547830199022929849146630423129704063957599984193995734383504298725576705435765211005865495157172408890348660568473670098806435772173381881449842425059924356010900242650695722455550987358610618302135987920210421147932161563079933239996078171666894669474512994161995834270896867965709821207778632421716213435817869076578931719971816791358561572365177563964067555569571407537807145545430237858998292618013503792919931447878347849995292730433382891309098359197221362949101223477033865699493972638150575194076623984979170852893644786821691497324592878851024841532473180038920329020282475370324964343881990196550996622758570171837126629638219484825838070895048510580957846845520531205747299162018753960081348272657191730864917284526577201801396274361624429039712825927739764419594962494276244790289992725797407295826155374550655099073573535222395635395054605961852744561070171038686775360775893467025497573898868475282518989942210689095709602086313467604736895506331035176248429026135981670845354251418738169904504029466015312312603673697797041517582057168186711317847447383015793268342810086534544400777690685008491227667929864542246682135458936928547869068978308665627806531641678218490274369743872224718525129912901943595884678378474469435127187484144221024538025328783538748041097331509288702179820742177330778560298329816149074968449604975711194935964984396872438402655245155661344369847223625944388975469907972861545679767365663992624729326773775622873578635181866227178274301567817567469186232775731761134113085676559964198439582202775700674123243562498720951439528407935825720242959987531999386619340584250560624245072928214958503565343336246537620203315953821623636013800734033112370067609269616053078587322676686753128695251219206902802967455661570314975992019889410583953672691520713720984190271049340834581941948029881919881472147467989458353172780195813170932928008230326003193097547194001192626573675018424879148029060245711108397884528818464038292539399148778329429527014534739708947382987542772400024232011739684825571254828596151079336462513017082379263692053421622423872691809130008729454114102279630532205287024279325438849510499001719561837056473595873425371087957738460709963852303348967064631153378566643522515220891008260527535662561348831215334797136342570398221257922745256021806251003964759801586386075277605642935634310954582212389080531150421262941798121066970126133109051243888835440054165349786368551173671118093310205638301746272855414640885338665456855724318617127292853347157891411614874939947089921234815925680044769276813668409452488519679101193707683669423819187528345934334406656031651292203498726404697826008667200900730887788292303215175809635276393155959756423315991827009299751201893745825787783054014869543944808381554341467287825501113586607387612816883955762242820036729896258421743582491118632357578598914340736423494234644424390123613530135941452914754777381758825092841760930525666186559625449914636582177711158329041336652615572831881285853234908636250324544378589668477341371971504408796548536941642502003001843867973937160701848928750312414364379456466593590196463678337724398801972922557682458036656984416429606985044383836871454891589160293416979112399715263172984779306120777262050408660666644914165523079673846852271995051264742843166544024242327719049162888419267695758996645184852098612466315068145419789614541655449522936049001197803821727964419061519280817651304322202691575243082652902123800693016642610963883390280784913307646160620404185775475852291435023369946172830872894173441805899854318015920836860921481535639659958150912993157328080138308197044152635926514638263569141576521764379410469109906078606876729798587971243717160949753506433154928764535180615668127133167358551033510853056974916816699014024632945069725413778576773496408473071932129196361389528628399285401847513055287532172664949442493982961280517159512424038644197141346203232609293613636080180211994397076172163323845320732950258341136092601726677435828917106784918411819749024650617250174366651820663872117766416547848715594581791864934549396082533472781293626644581084395786250668299930573341701582709146704835901174399254773777377726632674394323450692972699851946373072875797308396022785970912805519107653456301662566429167533756590193821096157046097649301386655161450474380007212018426405116397996958995389924301916448075636770392312477851213960047345841955055232395569533822831792430003822596821555304265844036970690568912124293762954932925014582576548874730447220740036419587522747929066330198655638938600063651414059783375713769884862861652380027512508816323840796935559655525974057850900333057761020857694228601470030462803754671177414780879499525303472954659449253372893238330045541536038796761720305193313808903059066867353959889894255484291740731031134876524320898219771723904254014514739918674102691705337832644264646370929405234548395496285519675162706411266170705761958103566154789982953589983725361307822609383633950143171019168395033089035994891157878954402524121711565741613786158460421898013424077544294467656648288305905190532936544462565093049855441930745320286452985566384479612025248579069511862011706155147810708506647229342662942055994532220161511695741336110946932492959498042881248979434247436507742737255059594576744561053242101324244178379065545904580723903700176144095605770522646362435510727758135526967677361981408181444572361603081295412806057557999909651918437058476040644353890855835347132308968772097794194559573762519757662129427073340051451453555463461737121934508750824607354544521315489236933001197301847268192375256048160508488770403039452628930700738900955686643906697959972660102213191381231388210173126118104001772289868621777332627118065752642275215102921436354141212230504213172461714360033747469384985460157261400948607437207091368788990584454782394763294062872385344957319623136439873947955732679722698198248561835779722723850331275486062874978891032582198310501437949347096515333893665741635339481833836885254748777355946331260030260474676873370191240504893451863271106950620402009629923798546618900389271284069807299387277220522486321669704006477713799898129798682215789992448006099707560655305524128344157865654534208778649158333516231067427367489369020589287645042934759585724779683577343110667668656215426622617828941619815738893319011642886485273034558047255426846311867557844396208003096742210992669487474582601366896564289854952894963078743797630950675818685848613607060256905905141512739053086332727194459396166624049202002780599572756751920969359846307579003123903235926417653603447835484823951501752318110842886160608663670971431831582418725988344188489241587210703492944965539701144398888642590681149109594844557458992335437802271516628198246183308109155263540494510694772291945914485891155100570204869197190406784026280404038069004599194374420148322771271036459608642068050652850446396348944282364021757891890339697361066363969752526285227554959624650444830240453271148576644086180789093223705759478776433379923876286390045521016169636231649176323203785292537133960305353324685200999441544812567480072595067529112569073635569981280236535704352293899148964453970998855764041854983842070796837080666531694908729118384876538293790650725946478634536768515594988964379683466675253495623542282287121489864247903344337315562076728087593035404046833081182280096952421840260081854723678458311526737355628323846213384962531427741052290503069397011288861841595458150683624757398341748317362463321575228071636363104503750405328267426708706399279937442238988190775567423016336748602111247565081833332805585788992413571494379749783030695793293984941926060813407278967567409977278940284926483328480655742615576126305276245553462732748752638705843288814984170393324690849531486753459652337238596165991471238368486001722029258464590271135367541340854939544961094692875864111502317883811330763281486122199307358445728643723644032929590905241021387929589723248851731659433044086956784973617322676389095335817302055163631509251306039911487343890316845324962577776779001453372869189559597277132826986733694716238651661546572905059685922670202941479856544842291439296838238781803544325732493538129815977027191513275915292052263315075573336032940293722578384811117404029405196081767029740826590283123544076792595181349683912429727318442746612907501418863285199684743352260046394159148604225208333957832610064808737830414968259754923324720565570178339398325992398384941955095333680204464643143701903319322038329095295830366210407181129203895952583254468586969684992965785634187520917370465238611262758412891265570661863686770322471676370345085067388691997578631101398499355138132142967792456561107068349511691368046990754668118032609058732644850194519867602275348874346571538737335901840871677333156777965113352901493909864443302655605397597374704613745022613349257003461341384632917136529375161733538787209508087566085206078589687204211733075643864574030875736443843813965277088444548530010126746953537628639301765517432096817327440669065965921605729542215567631562484226805465900104959112206633129669786148368584674939645322354477997466593101950245809792850514442801394924709241999779257523896627846295923394986325342680771466161194930350528210627338736962399690162306447711612570249947179542145935583135315468395639506941303357066213435050958229309817933500893008856189798021893254818603379585262353552526809879877110270439513508533746097616978160538740062958470169538755966609947836119131710123292517461546942566647706935598743727597460171676365496528631051975819114415640822619536345916786751506791501678391278780377474455720452514758123235143596462269725002521482704286792363453923875899970547062752411296769863480184346410825600082571327061638854165151305941927320818750803112668685499559084907938943232320450504001828003677673422894844210558878271586292097753219404897419002742017029986840728608913637910212724572206597001750373578215514286974572116833079500054701603223351895449262961983469512721030959046359588853652973519449742881393746283288777775590097073954623780897739510806657322954906317539496846950023530251506788822045382578932843390430801025215841249294956838489548901237489121601824214249594452138162336718688000210287689626570917285761835741059075463901661655555727741134129760892743381659152218513331107060422566893839301909311592195830276231357889610277272100062141521914882329186969431399337514941640193425214909365275351650584273565149213636362307233864707775255831172420965252099822299484548074413035016276747029304482924069867818782035252356952826709021676677321579947104637651380822931063751912014992698553387068375103872781731685439395039610224489865099656476531691765091561584079608956352682720880273092844271038518897451152670706820532122205789229100974088455474640927823804885553984253113275502991814963459307576252465651366247654003735608558104748364810097604436083412581128726644791485400676438509703946545980107484782703324114816402905371659379510372323057798235881572396082256623264223301292735140644513168348042931640807415030236814556440429619405288240822254898634747130555752471891841846750581236182941217847174111748748621291781498997658399910273812527281902500111197511753202401354522726263968892775271151108242602493854787379551498366569486807077803421890148796776196274046975312712509409953211081972726098726496305422873563140398051980568830139866337875116687400010751845454875493679053026866980004835575934359361318771880356564530217987812508854584141393076570831799663445024190821546673393397107477651308731125565957678184595038827772965616157160077843752977689590400633645529520329748136807022658819027353430651367378470208955915432410569530828947152481493317727027539314244936867639659941813180964034380405672752547123564729019543616142443781008436862636371969116883436403786767288594279878375112358385870197217266323722808170732341952813132399548158851753658659653226374840606845399442091895760989386121002656287333736042848317392380754466518664905438646058410132860196124186763788799124944444786326662267962729001569931222064332712410087436439225384913301286777456938445171011234522473386715933168454667703236439223036929014487976519117356426706293200023022121152584165586178602977261507860053494285394569052363614724179963989351641984064630846213662439601357608920534637544860688199941551914966828841365239585687453915830961970606808050754652415145515641616931117829263821113058905520521671316977306481260505502074528801694689772489115398309273568303273150665596734979717144537729946383754927957622670325686008831293371416710416021178156030755512749036817280792195169207215412913342672077644400823492608992842715922643346386426663148431125565333895705067514604702987644864576225762246339873129867600175822260092958681850811354469110904454172488065963382935561027012165551639786208464341540039278651983116630334074187716182030768012974845251356844361458807530401598568093103600791849887970202568479781623167709505137556572450438552969902984950651315073067409113544763131440572575973005597471527794303208438216848621871648366132514003413747146008615682677628825466700452910969415684751332314234446522194225323525742140600004679642753569545568989824054636236904009127212432993667963591957731767276727852439345474085455815656600957564079604097743455644652112388967575111317868915299803258548465945133570886262441720000069269904423990531778794058829409472413685578194476924159919969161584684433517333744834413650613737722795946377943299687668181114998938738671010108073876732826055960430379297052407533222228236851269654259549913688452187216420663975360603641028703364758479377706419428910751520686909151520973608782538435735282383645228652272184123926301907772324420311707745781573584007421034944749234167568003172050336327923770475888870331733321990498859231712641258691171628386644086282473586972355528596031032047021267165894730044284637551418096746592590956003604274103800687814541320268585741966569575245062169960789485234291016821794162916087324221888435076786251710704586092228768257647997603356203441055417006706741249830344108534288754687099511830776453552148605960805599451121942825190812172683884234593721611553714668142245763314109177885762445071769415151755265357034041314410371891294187792258171093805812141780428314007305349667055554319706763587267362903803433059415017559097977888945324403833964235512151705834324945733847831072160201657535285628714209610441003908025952288515028171860319413773102078690017126501772286693854919374409025025885529928754552435609980957902667022276653363258652228134272757312376990031231000861198640357289757032583313559046165279871803906922911804122889536565937742153066558903119439087135942868367628052523909520481724965546029566566412335820768765356038499680402214115575384863275962558415102011830187889583657246897288543597886852370713327826102653282977587867702119103302474899523199180602973991350839076804103085060849141378986520964611769439466862678673985839550537691165151842484907563030973630891222917358195017043281931172967403812319376281502948378193200922727931267442755825632887820719438885447341220275869127525728956223764977562871310824031505623121203082407075236230692079912254954720335459995598844418345651185065006434552027790769078308725019129399639702475420422235512362577080593079593835857738871019604712968975972367143535812774973980447136541182315896025129838701095678938552550545076045914262114341832415496830055120904120207905939959760920665592850532272062051127507367641379553953853611664816651294371417492370743925462516369371961055137401866544276246927989380029840294622111028126779013917122585591109333508702243581973608356243656265546953786328863516768111570279828756358253205713204547962938177086124888656671168589403963615060307909317661362872341958958438684019479040498221629310641742103653668400810481874168311559603657355515733778164641685101071080656200492115123993273306248366646974412379641095337961565071506874069901594565550983324183710776976604157879982812728976093432124613674134824805010549895637002807196194592476706481959667822306827164381933448655650676246948238308768916104775707008115004341154189092260189331496137993578103205715171544639225504417828290089024346388360118125862792022198875836941301988745185387961218751950878697705631971975656466238912371597161497757234164121184285532304238769141918043814455569631228469037112021025857166842283758735001671299188183002788082559610172766495743284336659919718295673664754614903039915669170780152277932554916839898699570338898011759206080787112169972637088628423799926595889166523829323061609079736691584627865671620358692865655094344666587596179352018698878512483323323350406153209633682743908064933514988293668437837398945746672697317703926265003533777582381808287221213539655619337233545842915238401705763836266072143369753153812227663133393353336892064885904427293390863324009494504807116829584880201404139003425879877068526524115935064578108939624629350490265384817814743556760793275385711509925944912412259392664892785589279428009361440623824744473562422616390228666316316372834821261417913331343938544631610532296709328433211000045397968641348618824911839377286651206993150473103968674758414171646377080495846295910793991941534699721444633917058736130774667745460383213739020948664697013623614224973090908825058525652490685581791722145738281868126867534120460931516058486975941883113117777679177474638303355157895916506981036869622490186447818183270776927628584812050229151990158140375509501692264590102810510477628325538926398970998114712915859657872312630442328008596867441379624293893786673022903092827734967541718544581727778231623753879085175693845845870891641616238189957986805956981653789144163416254671249842292375648290044382705903099053672002256083841777407232866337323924844176709331380945506114128123805674944558023759301252664072239344008841607248570547302025757096951827564340545345629676910608426158830095972037629786640528122986007101221382901501710136114989543957405407424799715786661501824533605787584502907984201129285739056002275628435910079374992752572650147066068368027827847773687724310221002282889987190182322373678851971795385178680603709766543042183568525425777950541466748034557666193356687480253249810951954109494067137343418303685958686915977523963167400819556573108560717939918529476585541161318732571935310954151386817484584484726175766070064958723173052044928520315051217648276787177419430464778225954761192419218908474035745197125317947784200115247874343994300649947383598581517253890099441906448998104116018967343198279764704779747786905838511595078857990982657364664325171909103196980032487341300256863525067265500904304550108613247728201638631264221941041793368609664312027791110459735105304715860055806597383634078269273748187801876979592344308897129526470107576925971223214171352746859974822554375179342616322699855931565843834786252085776039315312565021378753771380221879169480034486780069334861684953179462467345570160574634979236991235722642730573726441766764112836937065959241469950463106811538568120085939008943904882167718510286814618682600632515266860695026636310730325045346016706811975235491572746639329466278503281443261537384159601264184941210801033910059396378278079243401656044603521302351496932913002864041879641893587269212711865175157576313748774029731329840629756851436788168327400827485030822369979612220069631755974489114398396746673498292915871013155805005674522475245690190892168164236816224892419256403017504777877220388417514985156363658360610051281482004863779573842390653206226517053270583888184953045373095474762063021024709876035273104113957791790323634829012229962587884190904070763028655760018907602832028301496984871500525758755456686364307336512110407348052840885794175877318412714867834886519547510615733573830770699979108544332076692979357482138449088557877079885544514331744545691676473377201043143337941242139882844558514126217945325579445919115941492443103718990773412390913838246806025724348512449436605289971462917053112049155608442810177835530782848045344204042530038577393264299813096361237864308819198877906225225107373808923550294401918746111285049436601647923805371276856364607468445386182937374117169496917485018668187449890918992608402353092039996177664942261577981248046356025353767691533407782819777475026136699324281095868047745389684895886333643979092317913147023696089060870419769229522536280850411496653168853811595476386490948407173857274755693261458102986597633111778132354916409151662250684368596944677836499680336116632654169996119072837985090965812058812626487489238047555498588571398122957993892970558075559216157604741665963722239009669764744732342518491494478688515151533624751873386479765933304220499142016551751145190354975385651772732486490687256398906725511661657415927823878601841399405041714087662626772387814362495911727292607445341675766105525841015677758974528742358213795700975771353273222028113240266452951756680286792477156923663144852264476618766863437451377057970670877608130058180084692147105015448329540238367806650080224376923407276666595636309206786294064238621482913708534093947854519763073235775410520567755748815852174334301903166764548519379520891472253147259077364366652192897557484602720866622557436285519603088801560843358102862985248796417781024642042388667166194103516102240748677100609105464454126911319067768801517265320903986315612046164451587785894027328805827730085991136440456921342564519608276184186584241876664136407566705938707635014187202798098374545496895911125898639879491409984938003310252730408955300217988600227589671507307835853718030290592516884191657700207983269923128745677182329781408760483280045909090232993508990341068841103897626653862297455038903762832642074545129445636393392500709507547591497754001087267819818984516224217113344251295886857733664114915212967738142185342316851956047153485125709029244344958239488762623354045368822080335748052071030118465814843668725031628720244356402734492337173739870711563078066003398435733893523278500906323507946405016643366322668645484985100356917696003761211630915432477931902171289324806746344303687996446478680559974836815091158521889221541171611345469229137785542662367690847712104486376996156408806538265379650457116415628333842233513000229953979786646556150247638786845316938185407540340543051886990406353655137162912148486977961775983904686559518337117743104167509798523703666420578012703467205102981759816738166245339695748295797000977863221032521526779919992313444246153773245021815769749166419029002259505136187756220587523212648807745153346234376410152893922774984122760383663953631675435720579319513061887497524656627622619680800679173357807378887976611398216227083506061355341876261008644817492333994886388501947126614136612722995108895966556565145405072908474450000426461965426283013528083157128767971316933329330150227071123575732158613846468563399256800906697025993095905352109740074194659510689289496323945584097413560913504663747679916761842373024345885472030909652486827514009493313048033605126386065704733989698544990357974091197466098557505243317693829221325624105772318455637473169672618823672047420517213145235852876053933459501080811942659424900308049890183406814081584978951647345958720670673883043986536193677838963475693895626063495752893541602877712396405739625714011976762411062683789753555033328717771707184068502678455377507514148620321082573288383921664712693423286548797012914326500640512123941107616238630014639046232938192439863044401225337276576628464421778028819158253940665677581346694684910607921120850685487478941868868757145068146170617525249486157164277475157410073886523504625578163815294459142158001848834719018264835860169673538952597020361789104084123702568620513124306655510446452364843533072208847112658284827507692295004595776539155377043062229273280496282985009575952140041368992821548041307883777707586492645394393619066543539599045014111276913544210623110071537326876153680817636896658403866595054246361246313937208996329599116092953169505803429516179499976583918330284030299354465356120530927729183022474250117374369783169516488211692071822318826459792019088681966565799228360994282187803220390241060814256568599543810366681699354428518227744689491586566796105075288205288006683256754222056881945978719200055815129298972023157784491513116779349457185464941079182162948439597168898462665646569332935058159574217187485139138219452806457822845112658350065835826820976461041880749306737900576795342078583784486478313507714038809693408280066276072913160996582994676501665190488002841307778346668810303103559056027448403354160024129961900976743278041913042369257813118526552144166150481859736969938685357118520220134801498554110950408222118057177160838417421097538526128803028338042339148504135520070000724859941450229488228086920727325915650906890848056444235356479832922931617896252986034072397304252151627056641765169560617922443177160834184146046468534093257196740019984013711031852597569496981802709445589445532073223843254815546077021515428285294156814945661107596285448659067193956432913993462543737941907614824649550541077633733500298864859874620310478248518545436170763952308434042420431579530402954023155527391470570978431849321372167986768559047017669010841039778378812146555124859085452347905387696369866900228754888793729844478949984856878534049088377569116542977984702694979869732742676976263208859962999629855491142324198482349697089438916772384999051595741464720071303785349538711959651950715858335122061980117706417010426531047087485175555783498161848404465810114496409332717684600730492261797538767420200709398314999334624908629132899663347147139111116967035290061682194305146651108273476067051428886761530701481656356665451580614841271123684717125469515549621203507843165384315312163301951430086973330767131354746306525788502127489641052103173302858397771999086900633199331725268341949903119124881126457653775706079148254625665396832459888796498204133233788317697635372038824391106853106082778690039051246960003002484457904435088334409198588846585865545314530326881656971800161746140912599461574063103632619681173876242348383362413649582204282316745226463727868477356557173830200138037017526528420448918763996620904334214797848736521952972984179986070159200033443976756285607724465750313033105465781251958967066109148825686584500498016404926837975527211587456560160543359817056910778962192906385832823282936878813942315562316354897682390689793391668270271826943174662492673177262086546320148724862579433312825911339745930342253679324894698129399226371736564755009964267799616652678164016687403202726792459895596983048254854930082023636268863970446918671716007547551851790336902556188938164118185245717656907146195976023496434345272793636876265319488608048148402968217217957492790864482358295475798939777261542592943663271165860655622363978910115582532990737783015799035299734610957269335300109781380241000005954949962396073101781984470644999924554995877987937182932800277374604163824163909296920322781737557709280561881811527317780034665094009038097308333171070554448635753079061413866133282571442782367273295100454093952351906587278036739982195458498520259666899477806192714668330617948246589404789093377689150510434754788129126780260289743966349721929857010914462820611087398432509203484726773042803583433171042848060097788727166239615948019198856551488452110155009218644600716761272407455097126319400674155134911292800367397111306161725393756771358839681801211577532715952224559082779818899982349537993033941204093779335876964781021528531933084499183534653539890780755005059880463894644483760503332974141340346048920252770733965462361780517563016689475576549852783436268336697768171663145931093066217598210751770055583131910496096185355350784911195219708656485053474882709586942812929949611047638253949082051028332899244408357451879085170213545718337662096005252958365183046068943655464710812595545785168423527555205146085426269765219348419848730625175666696658656969480880199924122531202953088726117423985566750144158677957898535889639052160337375555511368489173493369872555590417007883019203059346656362912387346141626948541064317046055569064728264314500858413154699168910797191593244260319864850144663163002933823760564915925961024064602619534228022878754636163231222779190591644716998312743922386350728995759050296637123943906431882256996808923615609115606311866608752602524488802715683127409761171869321813311938383577537068638149454773846025956746002670708176037082148400974242007236860740442786703177701300778788150062819322200499236970312156227280473637879315695110804910410189022057462031073065930376310907144421556614503213780144393746522904083081446044650807531073457033936583511452274357666551646320062512224871844024168773657819697330283007011854377121208347446808423491976500673860883734218075884780501877714290379818647060885068643988217175541900341969188668907803337050374570677515997802586759404239172437423232437357645072439519919011200264750159692773665413111187977329627568923365373481304879216921457232895925577930435443826102348814919660624708519660222101728096645693903439254134136977620393823400120043766210648603373009040131962687098888590327351488087283439346430675028183950104960031434468073145792380923357237795877497527796177005728287702363284864455584886834574442725598671303649929632796031248542359548075033468883500444529378392048729495809914817965436187033048697500906859747722679654707909536408300407921693498019519223627048095529763465760668637110619013111442149205230394483442300507802820001871526479225833643699414460621658473443120086571953712453146898047648048499684582377988331968232273482104109644193242381550133511941313146722348391581095446998904693487820739394475322991382266860648336732709676393048228555917852565771139466023947213941793920809349459586048559675911010448537308492668039826305818229867316495953674727544462340416710888216565554063493378521511474467541338190194761192927508306076886489664798808591043433243454541080950683776462302114268623147287849879101351365592522554864582549592967293675274487622230558980829059856852950506581130181360960007538288745528917386501385062790841524546027078096763294526219332499346145388852990351090002335109150753282201056115009044952423855392466210576086174735558903800426651731043405277884842213698325284707115822350816106743269757191927278807787451205850538341845007717478132382240773649258387973355797184506818750417832591332495764172180671014883352516316330050059414442396190683814625315277416961270069518816206703826304782417245693785242457363437642438728742151111756302658049358695375027453167634359436610638974365100231576073436469226514993131528682746286876251215918980998512869341935256668004557795304346831704034319705220691169353386362029572054689434341663838751480888281985242039368414642664836954032759674764367618391886704284379604595355296633114051422232573054654403835704202181990520098332729528286568983614039290263209754098921993367062556015755057371068242329230506178265177640742481151304059397958991426626473578756872287784726240578360228425501127951594875746518567077921882166395123223727098460324187343433049459472654405319068464027561045064905858871052910792717550715274969346051514484401544332271100268658275586528890548397862127926540453697560973144847826272703235095290032385237909583781149676278744911247239640531452888832507280429981423059301007899324119856746344488945101157481624322878206618936673048220994572634468989789524387579040856867463318640688244762780326431113472200882907603789293851226071938409110777964214223493637594491721762071727425761336803899918984543074788208917920503020455511205903912872030790581760250326469424599407657108869077872623356531702368726497389207349843213026255088737667884641035185504713374014125121713184952085936696123073640825000859439872106778978320053152852011595385598619976169808770176721922652957370948593046002784577150604117840727413683651681391119680201020507241263498357001892599703738582289043522312709166530954740389703644968057654628825145116265181164790136689899289873988325389336279495102506626568285041653998693885994999637661507765569153500891544422845533685479939328900017466408585452156193051231204198324647639591479615885890110654255940947468256641360447431430593412022818855497583754683848886946145954963106552229275703358662576389562450940508353788277978245964347428599790397185883168382348461366090565143004134375424354384566023793573219790742201231676275331949528867520012682952862718090877125223380933703507869640138711019396857236670583374394303932617395356197600391882015515113216331071502725712708686476017960670593048625432169715657181578406099073430081308297239033509374781467441054647310113046139875921084610026664750498429400562188353421580854693845393904618662395882273309732353257178270603721460624993316110174319405551076992982784653987047125229327552102864801117037223325787385332382710950771839596145985246497731836010527999390957805032904530564813551190710325272450647524364020427160644844087662725333799647194734847419136359493570757950995556873796325248221468466873431223403326378449112020248683042473016921252016697929572295527874402078888961357519810679882128100160689426629774820438861773189806106613980023549051062280944912969832351622473982604156043011093858775253798225402728948568614654321585652994312390312120472941574081451833447239006789463123116932585025132455188322596639794070563730554184041406911161397314269177924542956864758867673031927984450660929121975156006369263893920909553259369134829477277896876587892874877937137228531387166495568554018081311049039829293057983204197789776371910731445112697133029489035438308712605600137618125032243531855772057160753040816634656366398629602462449858559375213968218003688212432442964946215221436183730686114694074075790700901530554087896225272678157773632888848620941045054029369840477353837328899698817047432550901254661644334136834842894695444008278785880981312532299265064306786476354082171727676229244849831991219944409932157366844007871317159868478981232463335115101099794163318016947065992312452009267341300428484138408628230695467343792913700626497916001097891218683006372049469575694487199441928069990989992312952611311319722119723605133934546109489484574708449106068107845271319735813279065715324333057797751237192851014360243240463797368823368895955300166256756283012322131291926913876159991116241250838196235095843384360755241065650935656018146030659711311672004177628010607633780537661858859388386033246418757827250344324711001186956375894665405648709909560495098313410785615643075143612973681614689386340380281895465596703392235194638067036400726245343204577737917265275676305380809851841961603561746953931246376109073964804659714664739467368955658918734580557838999958561589574322671899886313891110474437497571056009549554130524460216557656316331482524114227910759277695472304917845677919285990439929900259456705093412308685042409585422517006832281030857402329920199405870744038540048793387369792615790002075611179723820530519184375987180102758204515952814140539538567401472292422252538938872797199046250660471076610031475259607948576251494687148674547899267497504014098555478325985835100288422625835768367965887248750858236246127765413029564896209141255370076965447391572461688758794298649626271576547984334767062848864044503298236277715901580093732838370891487891228904664000121900020102196267198243800738088720404323127176829694538931279693425432816485306359072568985753118714922112835556840628133275405273128058049568783014741508330483867356869092994755947656238434502323201757019967921628446634740595321981881844584074165016667657894543914389385573449291142686660335203981120334860556738437381527305087955206098804339687895648399018322688730751050499650805922420794750976010364795728642607219852817578813968102626048894855945335389683986328059130525067101794580435689444262817519980655203772408688426696526354204947947694908043519461367772003866314732947908704243862622956966422279163954232441548318951288039005866093864721215284415601085749861409637054787305974529668837457677828917872936574807538780352468552584043577611846096275273763573686783706876983912383534494255076633906340908772691756818448171072122661533366390877146290982230177780501484902127542651220492697840079282460265295144753876419390902892835972057926308161356319726315622717294693021664545564818097087841377531105492387300828988225221686765479046070815004839611725060348763496992433335587957859534258499965475796092535872059053709643711421044764035577689814852690664911344813781858888848558449317796257955890739513654179073995040740256723749169134144703361029763547960981664792750087404217305866278501315963966732865260917060421580645138194937859187470003122198751615307823100711796748885015063826740278327992982948989718733700429427606764978945444973398289935513497369701980608117839166890122848920931747686251574824792099849937191314426877960981530847077648204954462257088527436526075905426063725461495862185157635690100558438466454720416721485771525242485439601417761624771619341744241487317990993737158313712914843917605460301192041885559220159235252240140836760328318598005728728653046443683244845354944882198723971056964889989083540976886560385237978433415064547806499685365447079815682806580222317006761723192812071518171647769749504179043479366625578849057638414403542318052700340663296860459186667729236584650943194311440702148782957201063619981143878706649254518198657807707115142142103567379846108132230088498159782049840379937548369529305549105321610110089590467672820695636069801739452310138122590359452365108891581844954705358628356356447778568673917947322261553769106654598075486782976115151444442925105166184060493552538601536720753817670556991001252775446826679017697828028445884762404313943473178250164693331897423923674839784492509009593718417916904797626982374430649598618424921857339309257833746905880710918390924606105925971822825793707484654505219908889147816991035182359530295065716619872827949734153127814782192685049173783176577144319219384059793777081522083302137734190723264261003013214219405877936906490077136942919953348615796630125325389701029696679934251527061929788393640086995784026043306562342389076186462945308889352005599314099753305249339725621417161772643162757162995576241146862230369009596631303865187081994687685769966607658712919271810848219698930465424954336075519917827095194680607939995674783477496914758059025455473390386118785537148280766661899721646062806032993081842360680212588122486782776603440170669144570664377364487204217016230184117144462050186689799047724797109747898245799575230088419783230292380971631374034551676658100514595299947582072168629521834965238001771068183769444165197052951271450072860166189099021069396528541860867029349385740915235657228538511555485925362047658689095165680790924812173010119490738638709180830791279425661886356924384245130149805995656882925825502211022622312681840042850208367519077713789477070772435933899399360011792343094278565800703077271376027721616541286437176997721603890371983273621612136614766980511836198861076402556159297500747483142482231620402501229871074929815346121136547554810576444873898079331362249015390226209042797802421257319352646442258249605546895524726311085100380876765620958097424354662442097149083155595929717839578605273943376762331756352986934032270164452045497166663696604422965248765983891179934671249431034988941879440303945885744322476600827931426765120266543504811492933095712834268538263333043947294712675473632874460500268344289518241758599340695352457109254455663017966909874281504554375232753658783385633478604446370147254401543072326836971149261785073757396267617825579523573127776013604635818937452786979564798454764173127151602111718716869067473776339523570522525318109307357025279819873668652300640484942772650708870264414003940349517586116123961520474418390552885472806680279558600882573920406588535408065360763795155112720894745662605813852895611649502612678963691652889618845520196360653244054515184795339639381020930407076372746918396122717775101363092672032017854526902273740408166654192360960709008131696824635976562607760989810333737626863205214114573369166476010936897339758235133243154785796538660470930967366790735992279983890774726174578223943865999599002856247662044459820489280313572202610585865719837521460625734048618435298620967645418148928245360366460599271829445833889886950439183907621514652434334291778385369678589877950309202448146659595697938309601878284766211503019228878204698658945892266858690564149197149308701801002853048092110301011467779692767404254546498142449252806766567622723759820142681259818550254926809687604919843807881132813498877642223611762934461444176165309723209657088646875903507395780466939819507608807038338974960254899773444543309096129377677753019634075308588298562208450895650853338457989870442436772501769378494853971870479371153593975063775996118824376987547982804503719134036687774589558777714180976017509306091667309029352374140777646562902166756340642986343334049462864755344516226627728573983498580377792446190579696774642975586582002479336171623693566755415202404948704854750218748883992971793838477188474348960908578994453499780654710579101069322803348926924318390960569582399681235357644262940530965642672640972423924389874823293128369452914641822286079330141114591847368251874811072750165992521341967639726223917416708167238395033294676878967749700057230618436722431104330608152649522744813092305260933745210925833182497924034769548456822413468561138120738760696291076681302425866891978288145411893061886751250828947990968408061537088160601970374482266480685378710159455746460624539182175029280513045609510481949051386006970613995050267650549081922304613507965870918416904712811377699295072901794553900619617915128095655872886102354562688030404107852069482751581392263905684547930096860567004393336922061703950630377361890774826865821136832912405833445040176328048832416828447899592779735179895087006735407690258164544381610725872965406518377112027594964637865723430095671656292589930955282025622314954253324050995499058046316186470004587387336317223280667678076873319217935274177485084543276247476658192547427172146940991095258001015676585719926746256590129997461730164891049633941950325345059090111477092111402071344655590635866475372493983418162716547970551650769002810071937145194834794184484047251195139406703191446682961818442387920277234068104814527475086817230058327434390666226058331227220573434532924570367564615385785384744496512638975930437852108523625228140249319239770671485335309158641887917309365734089511749388948090379704453894320904141602990420355794035183944868487285811116665970388712126976414838132180947442966985739643826224156759491076311253219879326536698397834835211767506189905122203650975971204468288277351928660216911461779382081908102982131588848484575810661776664283643889202842436471335535917615937315961722551421324509660316631989298306445160820681905232993074534868221158497890746626467745652744677892452617620161510556386828441745130392795782823369343324219988139719193726870588581295349395179382838608519102039516889876283030794890289515139360089390802127198691726170047188464649100646423839191838692088904360161740200988412031247426498239891246693815737105946272834773033198365648199441217346222033484962516051400750564494519858317087886057472780796617910927234319115347681744656860905960956283686524058690413467251155224344433339898196968655778797632171933293678600523145367348336197911464592719002159283567880094510734822821928109000319529096283323238516704715074090366742437110587896942530570457015215252374678712305766654188355813634300715550023875200065377503417534588641987459699640564813660201666146507504526383979709866649950291775446137494261661321716576732562538277944134264757605224528074447441395348809701076208223711251971267028753006575064331297182894030243904911050743913648290902329147808977480509859639771320955245150241824825797608982284163670623115118844604204724183392655793465699284654334001684873477159677233334229993661373841498571735940559969905133758661723935331297361124973759854107702401551800620457809617221124115155967564630864468636443983670894151100483514186232541628236720136198299969951408080505406538533189556570942263928019853394659735294318385882514507407578565354156256447918160438694423748744442704993190290786557819273007385988296317376188543314301920659177231370566987080395336195524540215205325702497856879007074811301083853336115124359848363107994997267853818871370834978657272046280731877852850616238707574019584227122965451591890792533128535218854640949494949738357924226783615919840564505746102082310128911966388699042146166659176137981094781911202877953277560615132349990625650826511682687243912340915852778594326787389809387889540091134588911945697935997731565990068540623086789791628127878220954120407250247459714423055213053576665476719426882412101042167061938328264752196262035788410624406950746157359150759633389450631815140328495148548776626676270685522274046957167071767904585929807681870053596028356321598408858687439672927585413138051626353027129383976584044474524257733572353343238620343365677481076195609334261016182584820452938532285213275166369000209298198899578769683921427314206190390128924257586032558641603732555193475043765703127818315842823103972436859539467196011610293771019417951088830511678038943183413243113449641127867640107255797443602052987577566733568213939112557715557817638404966879008052302864049719689679781268441088890564516645139226517997606160012741335064750591389480226765630935557777334457157017824643336580432201961713124543142903021379017162335831457548630838684128386250943766146476750234845102535483979235166077333517842081993991369881100846730842824725589040606797076239426250331199631650203308436614770753777450299133194337912413689348839367220763873911805535874289874518385531082745369392410362006795615608886498762958333788897794747820551247968009385626922557691140007576564768753855786577209084777517791746903993801553866373733078365938695531471009395550205794812141213091659251069131165455489120542584528479398721507913432333209653800126198342977063479865642337463010681643655381182557713682641520150565201325741172165923812859153478868207984073348280713178911074142607064492006857508474673628883843180839049111714467439096718203951907642822138953698356074572007211956180963175044906047419584890090116226091023198684247940396646298149390868488807764332593539741911544041092859206208490041989479032487922292132645840037270657599255123543680705169892343120234041479743850363319946910435537782760277199397826778780705380516423739754187348789826485789446763694855285105087039202023476181852231549674221916254887647282992795522912879671510558201894754466454597999091760881249672962312882060426733399863432333564418328758640091612477928209373200278949032457086311568897842055109435387271940401023873482501477205279381205938095756999025476361623116386980029975170655631221704558449489289717651562245477524321672792787036041455255902186618701948028475092248053137112387813146130767662888208297424313178906543707152343679657452878950927054337534663223249447416840003084780074309111818918163194959821062191731834353864597752877281184594607936955560239259173861805199744106857393132976567785140877976046145244204808426786390874708840124252428572581387135711296450025057512589784621299825334838620436146885701571638509118624454745876736560241774484746388890285076495795405961763293485336953598778673510537521241666853593346109252986744323564593846115677814960510669132828330105425938110473420116587355119701966901724212907973969317358900150724716381636347728685652062969429635439796296292356512410171594544931261804937110876804771795600615258715684541836687546346493214825345860328741245358353217946365410605386276751047566545128645708461957612359659535674088017634559932922532549430540464993388158559439654168272501956253869338569031148855807203872926498155243624793515552521621570063042632713846133308165685110241032486425684606118010166297077104706813201905396005403321230727334960462794745128870450216420859772049478174928596888007927066032806498761319987978014789082820075963360581521609018436685261022215091322553355813406084844122174673943475305156829894333826930731265323365403292860456545981343512447970859181338817386374645241871678657426234537814936108217540985564593190714989664753276220466140394279649415432432201542344290450392239610689680659378457535229445395261192301896711129595744465623453639081337607654325395784451353370552485753356822096481482267359550753121372656040282267650474155177630919888386205829493435858637474797248882340271160495375956613869389640273914245480282621718386961684795869668877968139060255653995730796806266829444802738035193506431397247783361955333984643023223929034678144606208525980851195846607139951263233834022889759315051789884361356219443649099681872282059588142906499385338195515468845647024395861530856936228025546289662471596833380929774767251930823436424365955606025406940582296323316183430990513261093502424185478496038118428907629496330073984535964883322429003459176500262460422362792206789643157977759123927958353569567407724878356458414272076445069961566605134918572949058679976434312629793256462743746318588269805786429706360184116690394771892303541458267167804556404936646374092183660593000156016876016651393322225254070445732930918951484652431636543946234361267716028941709158061852127043173586873806467520917048666707856198949155491059500845511559919842506100019898787540071858623640891533913113753998258467687346343935011608557047429844565080896855766730899353084042538206428183806731787395014150198819211840978300742678234388621912229871491216151553994605633415352843808275773436514663309952635496971196139944491171033776049607675853318668431772942432962123433722599326705025616853140526107047813592320616989238631052577804684894200093946525571542010629120669219631928969765869168359137549278595224572342175879853678580675800353596139373888646155730875659758546662032912667440028351355112156661404597904569631884173835060217724246136379530683388024781921477029786682808846103327671255722789205544840281112018601605605958220181561507462869749094799967970469047557043571933533340527923420404822758862830284174167988973429335697594654370712687547281532031525483933634908096996501120767142831886392548093030144069655684513482373155191800396810318366896774661673909692778777206875361237533213286448817252983140180731707778835784846902268676157929347527539478965347048380552051090584496908130393714094421496487520261651085048087054779000846790189299356805061982232969979999836862907401699913246939711871739828612643078182400901485247876049861857090397324620256463623454162861107771483350209857798354925970504227246099810936166464581293256230387386960342649054186205699870264453980678016458969727970674832265193377129004686707036237644448016041262556111747117234899551257377036262964199459396806303854530080291755446214837301644106481995718859841838770695228599794857385361458118475150270535724986637575621249738265730931008682320726521761706191398044852543766755917588809758828014283283920384231259630921282856307524448702043463876316211270180620080416598201353712571437064875351560120507702005336412454576362390373480817312712055919456057279558083034595009007598140542096669448638810347006550417261214456675007350915543963247778555597117666985767707291260541582235989994743377464102995354347937846435433430643700960350722031761793809792473158157712553952480276184848927326847427254327206139873800571278677129678293721840025170095324258107825993528085274606373178424148529476534905169389972673186983037479024547458735815586345433012438830443549754058830281114521531625288499560066205004340698581557059469168034802358434077037119908356956669286945585640662309544169226836451519028876892200438063599301028781991363216865947383674492476673089897511407213589737404673493877286621792925676560869346256378769978564147776866775824874880863538482955426325411813351439931768333522664243926662129335081451001209913014516385125790905881301253369274243036240920579759043326442986037169947173138315927822203951859831621784724122584091797900161127769611074605377316545124718317435477862294756149382737807335213370572337852565667681209742882778135116740233605857559294409854580494790191832966244543062056664519708865289647037493958638446164427417198448602290837976246208876666635170658488781323542394678336817049070017434718420953928768624304528686010036085910309590484768025368731496356516266264026672864342256143142751614324468170661112951051166867940641256363663795783286240288511259502575506559773484955232710582144405883802739149145141960142677499136850105900310347390467077674689751484688852982674373889434987261671399636298792678016167323572353472592738646850815950010159992985158980488487971557954261684615592501912519430441628974915182429176815445887273560738414629552383306005417539341183414158088103680115755242967145355639120069588157145408088094433612467596186202857654345745916758242667193999164338615314407979140527297495717495764666662239929289107070538771544517306069357259268927047019710958741779991524052904737355823938623535631720656384860547439487993056648103868474169085993486320668390659936118882374454706482484820961279519052518329874840324712781359241831526796228263698372350417817645585367832366971462892337289935623863481213943489055557714777314358893378958153862667792095297841466567613845013120140042403841489765177888244807326848202563309668591524716362421375892872352042742757484817774426115862209359486810354278640151417189390929529719037525906891287335008841308538270566541624769625448186060435790260670021050803162768762339972081726180505798667681044751333093675752621723010159205554940482971109731010849572079444866006096202012341424067196597782854223706922551330128580453706432592857199726845809604519821754622304254864947585611606257221741744629341029537232622357363160991101533868970617415173060583815075667862595372601632234514427860921556484708929746746173440095506266323246981843772994718807179284910611515904302447256320977126244789628152793647794589875473597138338141185102781788323578844585172229444262051754386966790896181853832803778661306274564933885604718966024486342174542471195588857239436378866972961014727831151461172424516928480004369916747526166704861986751442614741811474945206147670185020232075365300111083490346440268852564738176856367573587997463192058383022978770079476163033906603427297505527615266223842383296804141282822665814597393568659347451642854197562234537473010662437009584867236491498524771585246688390403791501742349610203993688361910538070062359568712240562947359723081251097476330824439977044067207332739719749944937520704270628230165240052381819434509707824197358811773704605400315880100327064672855258754215602299964392498257436364497349320917903180745649193196424986930311947270723576942509775654113868244192778227528653445157749462666411370695935865168304496701237249090794823829764618603648288753740884780177927805984452364601420287732659135581096396049515511264639011874552664801027405799564775785329360127756874550407415355355313044871779730406457703251846511916162103641911654214397825247124090641256477638595318389241742291621480890359512977915342694712552149390181758667258942204219677543327646109367774485048913810852061978995453337301056504261360627937878047169068437132730670232788212436801514416492189656544896697542177872498809267355084161210172562909574615063030396091330477401867312919174408866092588666752855700532989016173358715008114550790423551210265131537946169263928648551402898612328826888722585589934550671335535102177139899587947576329481130204672688070220337647005956816367742918203697403844379276598954011162592924253563197056342392768087082272177851975270689376156094242398566663492794728625734361727254431365637546866697315342821861297997916167953944478333777328612677004029363504115443988913329109641106893215822912720430605827311317750550864241365906552400236596386315553650376878131501906543062244159475430271716917887643906965228846449279355434100447761406258784100331473827646488462029278726680938072510429224331560520221563463932736255608163249771049817588124328162414717155658670476270148702723089299522409246213007011523364562348529643000072239882276131096590151104047511743111786389321796627324330349368743714556860211501728615077514469753288012064871047449441257700029540555141784647005476683635372461883077683682692454734228394412390464714845890811787769774760743441620656042290384989324601536867292577185608590234134307993530297535930144809959671768749617051665546122746413300134245009219966573731148006367881448008252534904953427119983091527148890770578118226522379499501403994964467741737233140939214819740407013400455712582870582025126261680967617192912330293783968385417248620532268006038454324769262213093159187778839580277908105581102227803222593576164469364089235973707468170715997533186042503538665195366091582274696277387004914316376903551317878579759774053520083722917831986374118013215817213522697059888026886897084977962392315117254998376966714392751291686371677909789789972504658983021317151912971086106183953914433066515494635445636637591679065237953953809012487843522559641121963735332807554387775777408881615937154834518478733597058371073081112897225549121526488453842532385426362300981336337416795844320111382346246746997381019168520385146526258571273894173332312864343245038129709536325860521746420127502755646210330485977270618982876380204425239453846459110631297267848785424384943147400557360606641923560656558978459903146839278776159325884481929017435409954552539466923462115964623532879773841712294892713978925770121297530620317016571233294638372580255316532723712839262351518503321093303548927298278708842078322547221638152602490018157722094830386697282667759453994101302606819814621993634228423500133885259003581290235305121228140354979511512210958749683418563707171613032136156830140047234983616537690654275140805482654789407104871752162013206292855633229606315013193185533229614099882561013971865260158351877642470850133538569953970756813896245299490755589519441363354226010189711155755821884676352582670539803641980702593706784673232521217985068456855484598186156986456031648608319037400143314084663296142061866323890292770428685120534746755320851951064845275938895857051867770711416642064360622454580956472229087123797577013734782281942141232286729652691105254295757998487061660976900328971629638665820609258508738373449919941996862205887672783136002412285623486666677827207465456555860956737822827412846323394376635311459241350046531868118070346666505770764643889951756519772584146878210893010820068736180253078676868612127441587098306866219666378079474527091612759573447920852318633418919281066540072166921104907592359908307639920879118806211191236433943745301521982267772112301748209333622079403148852692758230478633135910840142283042411338691475262145218769400295514391431144415661815846208802265156099743098692406115957706851389577606551350707885912434240354114068345894009187819032250165671287614836494578459820446020906346489332570140031625063690870964595296310306433210682219633636454412483493102511035170224705524965096459517115386071932672315835348614705187732455414350798925941314418763593848817268500397327822237178056155898056082290595276466951207448961118469550229622944505825063616568585423653517373494803834862909754183325472138689667989960957069770787405480278186300842146440044076986037280220964523801495021291773888076871795383030252459155431585336474033294215798646589128671675566906278235125498187488348684617125886125361413943559751124020268193772625499770694951857001818067273149367248369831539705038894756257540723758425641947547655657093282405317058770296339384924375620579059309650109366420746642840396170876444786555371994232939247554983009158925729806489183547192249215407899615356793794953754796597819106531140690044072292476501219315158176019263880964966147368208974127316713780692310996769654791380361027776443276173255453023628291561081601185073083843542931191329515037110179382064731074976600822304044932511397319335151630029229325340843669423121053403442725168785722406866957717278847055838515386711790827413041549044813068375077826924739953220276774264450381391049710814916914234281226317010484190596302216246001994578009555025367576766277578324433242917337205505659632473171319645918958704124443906025399613219719944666620693601845652676389902726749673623285260724370146299615256994402972568803869716235256883030781779272299619550952156792001652180198359978726440254622932447409765053772153536266623867109405787499660462474309043946267747473466232656032976270228560040723137653898761044259344349883681553680571268686325559791538330619156863505222925660550365958206241174873512940340571567172662871040491740391907808946991708761101305084213127764647525993275398196289346555567310642986041756170932838818941739433978299537058649623153372256054519917398405433774978439625454089767793354784506535456176578003443135721807151050135231171915431664887018660504229874722351018458370169920576382338327199846655268191970555745769701154148237753277760615402160741281951252191899260067189139164215630139409572800462979522982807918699240752769247092998873101356398880194519711224812768607207615276109413913923144247542232186274401033525103361120576331990807603233648310446468265696398646693994446858814343539148867950598759291827681088059252560002385773014045739754400733267648508215731056883960957851402921144032638190800524550678758637400832296829702747486849839436853595126241778311220150447059809469444407970669448307533786553213495867589110073563251232644032653474219374580973867737306473507511386837422582772217648003379002632222099132638915825594628076228552682559483423772028912478520852337029874798262289870036154344186148918011071625801667089317779070231586131748684248060243918908036090621057046411676471259751783452579240207427066879320420426683020599562550755810716240732073982464000221897641593679898857804446635833105896594408122142899047111818639240444805016747161685408531095964283046177979509390728262014817120295598504588009622271501522785698136154904992530397538370483491364947453498795032103107780615521008332221456681428737089946816808800881596401240104453094119334497929438622817120190816864963445178373814193460056016164438796908921384955194355754021976874115008545401608361601157705961765603543149643949571140049499659379174350538327744947091604335067803345101335690671855820630156648953805252434979380779778212666020250868836941784207422349961903257440388347007414137680212804520433727825963497588017559771890476237912243907036012820022888312883569325937895835639910082650695683349846369994899106680518093213435601670384402996845072411207047349683722713861855816829921589296492668290733932421843284940936884678684285522932935941906692353418320804902692053892661172103923705538103117824641849041881285620758813793460378182399915728513500494316027096000079544806429878476637020952843950311938519173831742195486759733999299341605652387870069370813815416544678159614430656167803543577066177431243890447898040843920082970909111250683759804937079822336580055850462124172330053199104774825377740294677718123241172142960538031182007111063297389848362845616004920546622696759994098070772793102295540370319350302952058082201942427268683361504856809908716397368977871318245356620527502241854388666482312705015748965453668470732237245171792040788166391568437543123619750360479599013700275777700699599760175197501422473864838834099014181446108632481757831582539184601886733118382073048268766810693643494508114893891284981951705366210435764209660750132891645899965931821610364206575379609894613936885472217283791228025597367990636197361170274903500387833238394170275802083087123907572170925412694997195333898915994662934424368797538028568226960616793191345033565114119619377885951098115885493163697236993438371952702595856531810800407125327934959682668603319355110917652059093906876748611752231480575497272658857813778419595010002058574761824781857446403773982028526274536237264726207616713996738447734281192382719878145447535951830340179624474116594540982408634118758317803320848435093849586369117065235909997561507717577295867204671568157137435475820170257084204567418138886591157846994075460280296497278586495597924919510013021969567158005660086989873629906620477953810074407678660337768577204329677794410627941529102045508439127742522208527781443746493906735966040685310662188933637342527934138675502627494838487416218278884848385765742040974788884681427864271059227438525838166853497833770890057251523928984662048228127425865155539248785590871819784099945580522717996880550924509772951069045056533822475604790456221691398303650795152255881198808380262853359389609800538069983576493692024548215417058158366921146446720005730735146484561311231862952639808981462854896060458828034420534980706943871807844497829677887631892812776259212404916946727358657474950370359229956494040471637159213693508701914947525911228416881454507222412221772392837979354951453503664487990076331534616048920486482606360727327037506015036061064842302002737042570493613010389769056719687682535690801132260051439273872833124116668405926615510072298141400052764136658958320670283320654202883061875838989869792519265200611243479291268235628299644141124829443517050164782234119763870915434505787423169974448933994678741564707645591422405313936157802405355327617159404784410214153926595219074171218551363281220481806580297239556182605996093972574452442362323321396521988438362069947815114278709229669536290808907112574936618644478507050318435647025742313014513304133351778203188645706558291449508952453105681925973605335918022855095394678805458264528612525040604857990207577877151240116422132547902784114820228377833925314500945438981276364383458618198438428444504832809641250601059792732997409574848506046854324458953683964049965812641873714407143413380299299838585426852873002875457334696459544005418288089915964333017261057284465003327486416026838238239657785314032735961022468277046295080392959408002006605916808929951120813850146211938061535734219178524990160152067493082492656247097206723295846719133025626217341610813554258943889559848413385953456205438324263963249911595732185126175021332802174895664801753093569023508695051911697730648453678770628828775175772766112182809623604368275049723579262676295703344943763193093458089820554813854025508116423446960850448667753220284916001009838030397869499282883098178336506319997493722739729475235664325585768127102399237778793351546816522642702506584940303080535774498221036762146235663062487454761377240581681206618143574042678122188782270318818428298613559156314361816560805942617135811951108287213686600419922716298204788036574660013394426227291549898207129325581386493761976152322014340489167792573630227519512062050493645212446195038851436099798758468423220796822607496662902307365060210179210738432455367149198479234132398366532784576813646399538160457979294839588438997500238769461428611129936752442673301648665975451062398666315659622791770747551168465686886542555828318444700169785657089240980650518141351959323044122572315307845352553266313099176400765206809406414465646274962071697776224731312685875227169435517968727289186572749211014031583188759305827900101265035368511275938144869383693645197158954281772413649490368822788991213406293084593221773096552100114641487084511651795121655751892325812361701404548098150208822478152063521633413025026267985073079423352806259187953997309883922673947325424384401535561311875422882955416423814938578117232019130823172050696009543692921437665144761705759466648906953135041370616322121237796519131234858630184293854451912801641573141510902725966256422439234793038734280963420597881084073179914443229212487876486019509974593919021632627249119248321260047550185218084355211407200539595645500721150918315322457691735195742362364174390942393154628253669783310263678503721781364758151656360180397427231585935750484989704266263085617028794997999829831089020983015480643991752063746979383478974245426137642732744778733070506506318892183484963299024467801696546961259256682253017655610923596883956439328632739447615047271219539723127141569521158729392777109798854642648522795541435863361951751388446476515517295400722289804632680362979117759666658040686898765416573341143735966423909764306128518045948841886807851074870908606231051382345252406417392285029159330141009554255041728412238161821006805523302700856369222574912985028378906807034280199166800728298428379861734286806701853834651590531544347602641666656622111626503269453202585474373959245042159324556187259476373605103374654720496016024784005404309368851794286849471779240142117485248064519770233723364740209758690192530809109762433898913033802785051722451522431658314136217147238194740101797380563813340808941793152362053280460263335218102546754012570243054969340804109787209785052607952155653857200835719090663010632058531451762670945716517647748290477736711384618861722327953954498613155317845628578282256024601244177889752407751329014823848106738000717436848328253904784087197993938604997507147898523080168401823669579194099509641307502099667428792378106215064301768467072537555798113307005501446903664097555130376825651915896846761889872356381235143570390871491515702542589509096474645392847133860268829182998761864461997264153795048380483686637271762453001927839234805843107150231083238543680216047342872960197819224013150664715132258145817252728198566358342261703431211634556295666138129348522174629529201026703682784860774181489775504785139858723733322944561157734882690537817141214876419859002904165705833648135930709096003883582877863324787961285985813835779821547116044641959787393520237448882024106472796937961545123361740793882142186418270487086909977923915603593642156543011603311988723189427952257393064495541222121436607180924094344917466604446608693686021126267983053949104632038771523383579183326798193948363234448247686664586476294864297626237753062744454669101429223067598227683793758743427050304694269401057083213373317140065262176725382028897132243644918644969820677657519817601619711227601985422020588527172357248529357211896103567560157356320732403402637755169647483156618375473030049503604342077997865544843096881146456069739659842305376873293253782661227532475002810581218988718101961200871809645089478693035662005573080003912929206240750040280754779407677720951137449167557579231962033716695785531257334260422354342495095902990652464406552106367886466967793149519040973863741868143193681315135386497509402927164682331695751496451226252250808695989715661164540561924257461063927644933404813159419840044051233972402066377753706914297350990145479031236676355793317666248329713745800692700846116460366981435027939725004891201878908805301126189496208598494987226539992880574099652725751419614708895601767918239863738646135359109344240310444812943753818677289436575419634634014318099941174847827929972761195605639751203576598685203930781687957938685185234488154813975426951150062207658452532270800739241924024326372831842891349593777004877344152750964593053514411394881422072627993330252120880614949007185689097246971461751780495255948188194882320877647053554924126128003741701352272518703701115783815313132465259661412999200186665531181326153971963731433065398405627662959111609008512127148210687308644392287177202537578694985228856080639984966818874270586390414816603658028296696962518699004443952682183094821470518299668720053385553036061373107852046909379064655288212428422195445145158935518413520766986701917319849774855105137289830387254657110057649112613301874180613782449782914954830028348510261858478665393033506027974266411127009167936170111641004136816976873387399647630735973646761959817576475274448454301351316609575760710107229674147193630648289558210880031689696818146959532366048193258950522558718090776832223197881935471731299303916651903586756707646375978717632577187295275451673038339552952773506809203557378794837673952296103012569212490872628058618515754388551702297520961022220707111102719102926686179836370510861029709995043023606600399815248859523316805412978008674754990622674856129642366176909978766613933042538595141049184029933364496378599045166187396414690803663264728370197697617744439262494350189424919875797350632407306948631081194223768143904075098135696035277904132844042729686890512857036314059584298321148952532697028508662781095315470077943143031986369769017117079931093225570535029309819442361081734544692472130760071870409757248386741263663552761788817613030081961516352987103457980151503474301798110008503349608996644519881011935105287211606537354865477766956136861080609771518004402374202510735427280879391667780307321663590937647729740999801968506372504337807333259956909386345490373313480059840738617220617379294946460029916328984002516859219171130449446177601851954589350030713593453150761579866404167442265488845233957444389220038082007082445200596498117034408703261058105469516122458381023349701222315730642436700156822300536764663324428191253267472426777070368713312995173265348547145077228695590521014037533166245876689771873221864407413757781831845519560979597502046741296440354608265622880530029796401744044326453306944510489243267744234644190655576953299317813389519752284209938424429210663020444249610469728222828839003231422876074030015603278815944129992102569125207112716942401850713414829428058397494296401301110884513704866724749600511688145952739877102758198135074229014628960869333954198516512265903479997461368692043175129634213996246338474412996281884242862659166276615249073249977674152369809514826962906483348284922085659545624005145314186720198867081586265033497053025053104224296038434639659210526193078720160222773117680661869969877398630225315143387530646000370298452407091293965388128841457381993423902262289300123765377947317455437767446475796636326033855506367257280280325345663124381533125199874979465624045216502624103452228865939886786787689243260678359046824208325767817610509419766595178662497626186627635877828981069500698319310312719175933308413549886872444838652542515293740080744455495606825598580326865627612182268364930961501435656261046145405427332694174998056278173492527527260971453805938466151300991960551359503042115494807852427829173705080104994742215957206306071856664549272944920597733387414086020544971977329762956968162231244443935357541908510602109176257077977279541516511646412863557596433392382297945964368644671498725668876513155808385289128641994102663515041012701088223726744491179959596089604704837951971588984292537522647266101649968147321459005595639780619984972683058217644579099015523437436000026629516975985804308718782258775101272533256867598178917101364476581713861780038554228641145421894384350319135998119317286125245062960223625273410439266121940473800289483704944137070741875321881368283013044262897602481168538199114982780146762462634298908492287802197764647747627212958785843216606979998331732311868996577836115528612769849069882465276588510295686977478657235583420406135045135479390204693687991052361518789754819677682935669199131163502606081601814855144152737596157623180272262503439842409906567539607828642916372344039252842677015482099543974656868165456787867423384564269245759490628851655962843174640234610338560832464693758842850484871300358645550103402330192773336512650534813382382423874116943430808359313502471346801437977617401196275867834337314095905186146612673733534513159389478377777383838610270580220428015613402873909307764139650927657483335650755246078305032781707370735796678083626791717515024691095646286758200287304119080771597684820601610491407912478778113856936375587124495523042955177632181457050272840724338268207831150657610683363459927364762105639665529257619226443359480519518209065899601096284573835108963724399194867955853386626694772730688115180206558710968318963588228229029603872193811809442611729699428553108410951157826687186047269537619223167264323082196321237505692865618645235622387917283254226342408000294531124615193007494840160903340675783929692289395588896218604567576169160057197946413145642076623893093414862930523283784946258575095092630092158283247652508899696459386880757577421847215681167719813619265720856150405739448737967032382409752590772338747932851315888623104142895704098983671731164427916929920600425142868055923172957036273362369371566638277712067373311719741673878951062402456945752904407892977675046069403262966538873865081017439985177789677433923159497537070388225170954958853310004399642245103186475771322554403331097865994099283878187342052450940112111895888230236682554502792116304604610306301490479042220359442049003526254071924719224216808267469222139401552553637817672366536127297105973904960274796252862827804363680600087791114082742925206364534243094685660984093955133057156922348107802981865508757202399142494351020426747024205128428511922267268527028105260095435057953531526767778590283473587068506651646223862590130522510349394883232968200750168298998622773589844580300413440785370596572529852072458148560912241511033300676474591714622669559225825005510704655078742038359358907679894487153839724843863080409847825897206871369964395986279524858962866212319411026825409672143309359635364790346876076866366578099836330841890162412534799746523350052048873748251980222484932135414459570993919758060191182617901296102320480631341098744261938625799498886905105577562681513868778050240386530125104976669627534675911274270069183338810199763926643849364968346774363266930824670728984865613984191240766895350750365377822847380344335315784489835158579957769735761773423083708053690128129621319907757358416156616592232948750443447354431930047325744005221007337649199883509594327018869219775722230590727290050312165724041687709079379540818548060930059461652709443778671290231890742621993174168830655987486057234939625954392441271446614193547192773425132463617152512534164478917564050081963849814361617779841845907268383605106830043918364380217237498838560079912845081353090662552166723069550535360239553374914066613814497011998917974344862768544105709683966610601011799669706026309921523671781416035596663296038662354074822577682742039439890545126826864959746808694437157168512442493678234816340404322418142335328409850496654159113116922456614068196827208953313332188468675373298726478058075951521719542850957031472524218415134634467276340006595279170056433082244559449237871451952670434243810811896173730607055760843108037284679238222039249098852117306838997245477960110809944661589384671775370075921872814131688841880439828942147242228786167029101573848352801641543852942649065671309481685327026918764367655659251987182335664987096060617067167503130107213918939118877020438944512196770899186225987425883080682052946965751422994949788977710677058249631109918836198844827290437257245332578304847928831382442493881911398640045649596656138394048224839597135893630417060142398272612323718917843476118396633782600524568947023725985289535961757703089717376387983866422083749377327525791552911063650404506517827304668147171630842368854765634229483251447661787120493911274282618905228048464222985940747238513420111498481304078519406740286872369081797035301739543177865674201155516656744788529393054898945443473786021914351410641055761180651683502108898868606026054184820701711917924258692631943741012323485185340563828351760405038413109564130796317757015985375551978395204119765745590602265755509262893808167692552027937713596038410514901338420364070992238538453088969417921759707744563173944751637369281232778907091402139875516911403562795882687956385200145575892546991525281011009773745170752089889581853264517475519120658418660573249954551327515064409574906898110139212970391347474712674957866890511703864317273301446347844378980089065498509200709073223766006352954600078347427571797538319138964242462273140637260888381867890104751504445094397904062992304325417183261514841879094420418024482539660382332229090670781578196507020117758393206217632918708353199629864167217894349213533218929606319377926245029238229829351206824095862173767439939536893362136480651329708158693883810768100331670814296212737601968372488403986120804089815113738934497618991633392973591044140608371209487740148648920249991574614784279833685680686878378523846209971441626524014481877285957384701449386191431023114704413187734331951809925491778023723387657014480103778887674082830514581596790518537555405371006794907251979963005947882664191983418104312177885409900969440776664153981161866844214840452999372206581475438377585302678494540232002532510127633486391436910855018243111635410327119069764840509733735577076441524871136801202096093679714693578669965882154802578622278544913522694363531172078134409361709735541021064874500401355003490081003300618805980149669555601335567413658432344967911732699756508873207633127740694278668765874380641728273911339652780289257517351180974658472148404006187673095965808801348631501389665756326793965542961784456136814748079463839867114943505087406488870836945255031103797460617576448296582595201301326906901893305115511640557747231806488667989774650050986621912196414186451123270474769111866593319804777975859741970867326751126463208836207061523196270409774529958567422421240602280997760272507691942156857284640720615933512534217625084108014586118650713258463071243396916104176215067063274043957086300100469452150313361161040339900767851742847992894894408162206020837377450472555221901793540281846699764727659430856921326283402766335789766791568703800867773891612588778031035890928019375428440055047838985182005577456295222707322807445035433793938924023789063892556846786576826458698985754636562153038657878552467823838120426186829831639880761265215097057586375507802469792100329529710956944654736077614019331247351409296128194296051633708350838806181188450534849972607653853198593972078642007246024678866080748143178615149750117429783010262079292690105375715606665584403955912541298283159196132355942385527967236842180204038275747554494046365072910114386457267489833113094518236456403196410367369464046750969719524343916278544491429169099710145684632694102347820272757434716893657911030501520247690222679524274860296473198339545139467311592229146170280831581668507927486965246192758056259229353838640536183138575863277397632673204515742993586763422293868425896158354649333719694894051332771041169648957792938106525068787337958193856716171538728466571372058289237184213629479346657878657018160381415767459500423922337150892712143096002508709582644794972524609833830274982884028022258126517606778081501392044362273508609454777343068609441875518499099334189010588571422574553871404842272471951429463974655504762550137096250258012546933240110848816281143309631039671298780571579283760439459416653211460273239008246289959050265549951030023481335720780069645683147088653111021816383536897901062953792911809105079128328437597974488227104383959346224286094534853890455291765615165395764987894700848898501891112639663816587156613469537179769219794471430968750888264661579806247365736432720542924402427943722198375283330709847972604130013726129147467466711783390629955529051080796039000706213615568648932805726153667698033234326247280341870360757347606877426547536772417240353927970763975764100553714223410529242180791089334125475098070233734321769071255485451237080565823977173488893083958537238363119197511333648938843859090906851422231690320330477376414923030374497838051418794086730018951822089699764241750056753841094025354438486351352067581472741504463197832643619918839390354155732474918504577908958298491090590976755814491946700453835810940793385506459424842753787801778494645609322340742834019434107647314986685619949390630450530462050159501582197069938732440744699269740921956242466639160644046126809778009315533992159283571551518326769216573569757906969752642389490649852957252588518106204167222467348349560797257211655359887867619593641360587003072435621481468665074795491826516300487132448284191208980723280889408389713384582219250616613488671970002701874964452380996363705330635939064978967931487000975586179173587920335336332066201427614131328537094910228645041283683432472542575755515133183949396586602570187577512421703346823777360441943229882897735922584150896178289852066850695865672850265204732464488331768789077519255224858429127841376704801619537382706060333191630092807693111713760723150439141457703320036114652338202252343705278024210493220429902054524105979257722017322526570644832092517433347667819115644156859206481884414438056195907302120080137923055917213577070548745706214654356536562566868600304490614754320477211636559764850540755694840400694543753115440375504035403771157830417499080834471451945944817627079393332062799951581720077436502716875799131539683563485400818245622229109163494415806855048427837261287798713035992406302924253871399751118631415771440164868260865493399520665613917894900399755972443780041602140055867524203922135787592670756015187685414045886237151397291884631280850500148996537080183110903855876861236424332817070040279348429021545587941617044531560365452589647654090551682452109597742358270393323226756396154748619455170054444249224035774332021008950872960325726822428181667526520868785393584175156654137651812516798641089473392185515511995433457630346957631113613571429683154733941143408395197917023155065784517748161200051564060308553747533828598484777871213594007118260418134556554219311877310984958338002891296064075053260588499189763778982649889750829756273508104070632331217242040166081924426618427419694112046166536371451324952592235322470288774435762122535215410029489832022017133516287836781798097271343501193225150081031941151793928967940504929251444116864698930888682351507634525643848068114940606194320407235163603744628632632392038903181057767593385005268292849950033524504973014682207522257082410621074288159142868322148408298317249531394881339114353689857134458021493768543976517964570080834155570619787692944106806489127190604432379183193551863568227271734743723245588464580162529536613963159737242479914566411296828864949141318621699894308461447156642417891769198641605938147845544523332839261521518991529508736290437655344033286551174392339720916032626320069361531967378098311348023841636476958260654138061110475807668675435561427395206025359196013528603099884831137589485429486100176461636524992891427042334006201033218127647355715858145773343749230860546920507649737400861574104326571105790407662691783444187461452594398209964826027906421936754246464336860488698457807710586024881829048526005116564874739622635491707547002917252252104260726831621340098219117489689320353239343486207502490966909782796284127494902909530352896307812750024127598031179159432956904708910339277559783027544295992260821620549088660343929464448378503905772517880675820249067023249551453170160642302713285723531034079492528558405051355269123307908524716854980784130582026551167395589236957254415052685391647250371034933490498354843694385020895205833217914922768153973977014376627825064210626911201523946107546482511792577054890689891666430533190030902029776834659104031605137203677019058007008184723443414569114034971722595440939487959432289557231367632643779990011261748606461220509479303580111853586384044316945680384650201202207489370464035268757733199109381507533553863683013234858002031868511363038667250144309398802967440878089743250166022565178472108605678812946699880923997452456106251204007150445676595481040231058336967985101958860659927281623440083333346909815824421420677855544366326893496422816388808085949130754367729486342434460267677146142436655091883188059275159116700119683373799413208713470327899264545296702921842254475884500117665467194229657654938768110032114276173865728097972487779215867359077433077753095295181264647575115200213193570666885869090225592596391029705502174604282007317877462005236633357186718431158821763047331523625259205339503272788873410081841545876855127825645825791627650863365872790717692067396148260579290216407519823568027903288825530683491385921033154296601072044335790755510745436306355239491861769618846695345274219801045963266595853349548051410784310528724285777997007645563152411756130933959933040988980266210110651388759446925291747704982661757652678454844673814627352025811956914953190881380252742141472068155424932969932988567008991157243676391403558194774413564399960787268057041800831777769131503743882673212096218271866367774662147807307766309610087299501227984079685516409021517332515365947619076085471058648696999901092729609150111679644303380909044841858481819482427556404523444611775824836097581421202793242017226165721743506381165267885497323027063620468271037144482459988516886133446785850252425918930950215804419003804042018093643105191450139360917502054507571532837501704487356680661808187527289665570420154336733179775577569070836875034246590110066636308936957023950000989189086387735899970383380160495518952101967032234335144684207544036647558802226106617738922514380170232706874006355980142676598655351215058107217292808390140810374869904596042747276908986509718209845021821249504611431672000413249741802297681047007020712787827788505515373085206446789720632652416874304750518526941275631495053566788487715552811438169520612091325283225170657358706602464743486006909007270348118859644381431174477528963146400928593969441950028617587924922135101234698983669862038973233520711140110212612993734685753177256203863906281858391832890356336122851340063687567502544966661026533175358737483269910496123562311331678339997164280354633176189419697403480458557058656688238336580456133229201006198278651816514500622442430049354955637629893714731366958947219109515874960358822027732043205120324095153974841583295740704683232711047594220573802508209410501824740824265896114009975257369267212856620687545726039357428222075946644694488303017697357159356178773537180329542109867644842482923810625807378649406227790567684132521493575531198335563210145350353699929168900085230979863859060193722730769278844065242701310236113654503246238232045803712285432863859764933400421372017162579569905700660560377460992963163844036406262839796503991330982571170675623532370515633626019850278892205607440883392159795234662726016964651740687311627077497833194327904835712675067479599841734264461318798190279641957275192674353323592931197654706409534718646971756540413262465063298568401254201994721591672540011720069222380540140500007121438995655389300884354186699798584336073932010554211495889332260705338098756529547542003757983491963077197206228574143932404401184074629345033581911374491704550742907963204344781595308315217315549910147403014689741722121938330210702922614528903039071688452764947727703575401450380496972475954784632356144947333735728230125399204406290279241623382358859162487272507754569142008841680653575948028397142131858091971672254392676712106516923370380924234221240470082161853032341397514614325902335981773356367323917530515336844067973821614552294558112866752475019860438255464055289218118135697607173576488046320231400993049657126692489914257475426951674063222172871075598783348376165697583901592766883309119742911811710820188263505420021261189632961602388986019735523468538574336882125157522150845129510438257701344703296453973569953056612981686336468132499666342707483673254708442689441795416248284368550830428326498897286304111975761695565368450745802079699132431336101906860425598750519876326238836104559287236871836332288269742032617977435183057972492119973625681056804878013823457314867060110844278999917542167318724547746061092662803909145131821962117968796306910410529083557478366285886623045725433909072850892206797458843973899449147120302385763337193715541348264679537007325166578207735005389875695797920810617948640255795306349904723060352822411770847818887381364781535044379228882661828069316548717198509383968713156752049965352769847935635001641305494439682195075699349380423024834393078291445041981956331862947017464291687683301210050882543374561788321419896967013994545661255002639085460981699030263102714992356338337906550825227114082879191915578451974236654265857249043871830749271052061112529202703434185576176162008796412115552778067343037861942506399067942887671796179917430879080037736895171394213583930989072294014830543203966733317090603094541238423401732452052867277340540799006678761406539329086912313084511897359694050664359387481229312760394075104439143629927997541683340306283708077866848941619163418824494976800308222002022781190647510446818744238124731812269368462306303007036136248271341608884760320847522649975062598392902237547039147624500992052653138350317226930535064896779631900457305203452821535516488317911512441182491906635559135949502504622311162936545642326783490714091686231191365309641283176917997141039233617629655618770997310189719273257675506571488298926406493250535674269652069641111421949435078972662841171389066223935811822713721022143219806999818478541242958992421101788431082379123605630248707618706085550192591500769268615401981174228860966358683826404097158083828153067598983560544992431014576570667755547993399650001684093982180367351969880140745989017853597895946373256874327298507180968360923047651932623103137714717796621904811391958391277297914436604121482211156630422971632826899475994373545191655275438626240854401969544817475741276079672228349695720259460515516810122053800014635110364994382279276191689705844041515661844357579834171278954555075474717042311823862196729858783194197399602189289955768616937571363013656225008928085048950529058983407324505518725948353736464446016777850877111027854667590743877030868711336330569079419446527841443094518371262022338767328025372271492885175233729897554586103532691879062100657568884847549412472486260713575074531730648209649864975469992167739148252928096330342941267379696385390256423429318683407064310976543772047914055459082883885447222939595583821516831979751383277225018404724501570470540962548606772018889800064025101122834581710924381928965790522294911674439029144387099086734384611880467405503937754019821072068494032363042222397166974368873067235552614105163233884508926613820010913646268299264408018500753499346288395836859215339567202443785830880033402165576993315602752746685425549125488922735071057234184084857456293323489847291061902778000001953875289764626556836965442444309159006574540761948577739958509708937563497264108124054357072489841179229428667712726382290026994289954891623430833161378925800074078372070620662962966181889139986024773954966177200359227979806872004884222157751502812334695720260104983146811745213957219610530731375038507853070260983335843320157333632626163012135061108254126492325758453516115862521423946150697668325631211001791928618405982474214413052233472916950082643353953282676076004925272432081054932711052830273356241647449292860617266151819801196153315184062853097218632472554456549975785544023645782924312428770925980796642051035864033692156142195138637455330160064487251658459193912740883772741485577730547198154333433077195183109070690028765772231269116489138669163113722950316095647227737715639872668581215632277444672302943766425351034433917005837477784288423535387285333320734334338490742969726143103454506483681438531703684191990158530688866412243443434399167683669617848689401062169690868484644115262021027745437182885218579902181186811654036297089128525552888995196445813475160539999541936004036834365040573768394412765857465637998920511315288909761022286612524482329728943369540183821195192509433085694535176133588785323271722332822475800796009232727188660935346185149786515944443516463418511954393946441706147494028792101477465666249084802332730823047144512572168081969739361979539967498610743704749668556042551392778049348212597854154417798161742149972126323117842090278465789597852564322981660411161314938436020966179138484484794469055519488061233850895663064019391808750911829592635140992368753964819337981987950572419846447895179338200295336395434540006800727074837747629415992925733574900749997655206741987830478348404977069702525218633838545764806567856295506155947558252222839590201566237092561538789045574512905523847288944201991745682612189177604950833756098086684695604763760607626959993192595606231206081939524518599033026862078194089072582597783777063091565801035653442149635693678556467108939773851093412867493863353310795875590544086158451512781859495966973581732084399695332936045612971540065038644643881618707868189788539339029476293285127870741643681666377076413822994732286456372071000721142402587668421532444831232483357446804749728674216071818147898568223664071589773497527876004323451646059249984893854153048214911068641788876785647868477706495122818275634119627845200037631853878608478885065554777186083550508556544759448674912953632089502190696207627099032979412291287295543487143204748547060503764478032971784185645536015014497328872659102519563727945560577619944956083905587569041019658824567082291977246428308745607378228770514282218136889820733147821092166346211589509801210553360770901177975409013922101852929293060340296441393606992119783374384473495103836300769444636119734732369707819099105825292294614212684497249591043029964864184790579963462245167821564636458295828413878814739778007392857656122422341296328187695286119089173795247713415479851142863620332725644212063226477636663996651342256709337418918247807831671439495170572305566576980796195312064914153374172420945462107206055805848702866550712289544844171760588458606757242316279364559574551041452621593139359186660327776958755460217523410757256947853934866291209398452993977407520375527708731655493608755421735629991896884260682500872120490321584159195283333879437807748001741448953679562027639064602625709536737196606218822033203715533239282770860083451656937449129661340809521261804036211223658317617424406298547256353839141770046876188799317494241802577652664804097300671677729510338276923015454358521891523135836646276076109893697954892103397067550482200596604521798943375858094060023733240751864511638521528827640674576296498765185783013617922270389970853391671433886023914170593665779034752881386208353250366893748123023261482571638190691801815659469264757123454058734287532473068750148817446155669221940593189504259043810306752705641393942060536909875521119635943223466644846899166290305525029480962419330865468486334814041087163851070725847835351636486904083606283895444126734278297983679515461048693799078807297432649977540143856816900319034752635511536597839667232711419095848563001166855958673856374421967323197431049757465190161908666852144604983560169606233664596942569623717821790748684602092185209479680405501807573784226423811405470548143811324861442638008650377826379138590482018645167128535791658897347447751233644524255591961476802450608113544563224492408456004867987534858467848157890621059497455957605563081587969444929040959025172892528114133315426370614136790025771317375164316595970538499791416398000700808886814200533765632748415514040332683793434275508480973855090790878445357266141053717312444978032862015177694375333737159761310325702583588499048821747005920322054347351961458286307367412156636127328598829100438731003710221000210262379505108070719299162797365167016107331061265701329363330630961032340624868347429483351684373026680117962761662632929296281633968238683455967465421799577262385843042784292571932293793061724509752951702812892644765034992810181574898329613882190975003394806717992021179902781809408573274260493019283409890418081631987012972348748341646852710071248698283118093984619250975939286588538957000217622383389237110626370552513582561822902434978474689644729029323703048800925243119319185223190491167349040644944126044243766077279899903755007401790516499792917037057107388360821231448047843564793395433082705419573980274397312173317581386729906379309510786854559456875459413442478710288574961818869162365442289231506787475657589753837694463816302599137307347196411193377258283659622939139611083592805965763018917235949144111896159304108544588568806734937927763891255197848838697328454051735584661048173323952909948507332894736555230132632397480935483781947465003352841864581250071802909188990146095474251540514462598466993351114761471266733231173616424420013091578215526231594740528573903323920227877946299885772444576646094632366274194732460613338662390694548376770442927481789049161054854256372926173318517427064723028509907819426869622575569508644244606853229836255217490587157853902297984960530889055552368394068898484883819898555660002769747575221965926542679999548008572130002122930620861714811000308368795565285458004296732624745237516265720321265007226674691521760567261320916783766660760524465305485138602755694132079233824401083424196276960811153569509002791129284092201313375080690882484935376931051065648721892131620953478108748220275277649857774410526167223638450678658585623725717014637417189578780434948887604967221032844083317885959452431825187616692845344661410490233763222228721777931519097413651537847985832602511978451425499119560670400989134315863104647714138500403055815626148654611810329890111009393711095803964906269159334307330475591774527781011673055259609999750877656424969877629575627906855141045664884983475530440053037636228452839363966708621629806631683690611874411925564137399961133331544868474441489150636313868959770861345471434621085664554418894113085769278451698635404105864319568662323670728887126123852878184684471064477683044233326507217628463081376710410223068699159598453584716962967847142623909796364994870151186601336757304538969841387328571115759966107281878971679334096758101537067743188152944129411990316235529005744707475512361119549591144699039911711160807616688564073112312755485254583020609402083273182879620167398459472942380317248209945118753947453141038321196405193325408406486214525042302465777724764358392671993458066707890437974355629884944472579424054905750162162867720933557531932862681581199092780159232497352559064200791028519616205472172510897104255636631965470965613385223489841787474212346974438973264014313633495418875268903998765904126785332785381751772610682658121647144646970555769632426925731260111989063512527085164260502084367690810240407243115949532609366160205304575214901309485787743255547275966432515282934445723635280371978236509955835041465988245990336010635457183191476937863179033753552190235971619809721474520888738489700603755744992653233051236057797845268183794276385808687676120875157429758207877202943556091103075755720371196023179416586700659730514344164457467449281610468225273766959324935034588885803855002467648621806365893224659124807703375168218703706998682213973704809590238797147059016651153682719291017909505031828928220811556022772966537319739537381731043873650946742477621471685062103140943685041950420178542411149105644074631835071086928856819289105701943307889421362617497323558367464677513877822625429425540577590561203008900972416995386504822393377516853044458950022404163804421523734042139951530637499241340522180604329862486276917588655758685791428600051496946816396916189004746194936657817500956014891492716324911721915789706589476194412424059074831212890521906291065240953820687095483468896425070346948828202247613852496227900820627492165868579838721915101914571587428849482660628919559734907041614116864559013802659318052845149459539726960788838031193828744353215688440472621310839319817042781431514612395766127831694109609595858177154265953077506325763646229470023672002320128804410385020344135411265754920695611376454684694639995394004359933770119091133613065079301127977378282208029226897235570258191476596934818716481185272641751764116519101636180421035081148662146160319469572376615068274115240915777738943619979270389237659988154511446088647118793693524226773083853811443433176778716640599792379589116168672190183542261415307766343011818167234984561646144925277884007488035995721458601198628030389607017944400175397984393063626766099544025622999399562455779727059852413527273697695201960919069890258263071008493787836626987571402361949973413717031764271736445247640402484832788013148670056992860044964197900802590671710081709397982398527262791469491061045653124384815813339120865882954996682918865355250410498363703095811479346116985557632465798152103781676189234843526182997979912453317956513369661779009199727707924788575270192930988006400936788724483177727583621469923401358482256987836259748326875254119807560815969123801175586183231187179428236121280342345210912384489140643160139055742240499062314004402789293702825661124554863604297644232987161794459183905277102056818832460726615673298442766669173666281993900919116412346164751887466348429256795312338441742841780921046019429024872650460181656998243859006656875599284964465188322847443408897395088744695562015553673774359071317920469400956376206220818405021087632990572970904792963616712952149506501786822151105934585530910304411015789077774222022902964010688461900951687861973631274208643186665151960065351243403588008769470586679666439152668511726210308373907350152364339261160489885224060018303727194955703857653343975222277176218872684439200552849940762917343600424978476585269572398927749980827938720293991394325103972218812545998644208747747327431549959369260210329824484693403245986012316568287900928042837560459703021639824430037941560933253247425247604303438255587865346312081330803869399839791002058565991350916435084892499554959132529081558561041841421262250269410621923988530664431248365483484567732390579428351629723471266183526381966257129032956042562892669697395541096367278368982658873847604444560698185970541369093980480312401140454851815898415339065416625737079610791184898960841475927858933223245260747866856320573722095950203484734928366714687441930274872017509374021805749586957268567173115510048331512760784992102507551451521009588342324379397915908774351524933475438744813803526591977116017357592248293267450506050714912950666992098031476176833139641031196579879217915055413012989070213107441961445606215968652119072878393429591411022114996716364016823359039941109733010331086331788314482058085172285734567453173096751724975568250685758178289717567659814608410176676599125908062499236227750812058705456514293962266615221914266106972515481774359622806951695376866079988732485249984294488308413423959575888263360600501917028906340362867593666352624141219978612039760190811718524427060333385870492170552270955135463300093168862800784196560667070683400774083688026391997948049262861722827413690688077988632125827170138904185822785270206535786723626231946482068274147426208423516977069378641244912343528201393404803822160483644004665316160901050170440981503804672064327144008589326376264837007351830210587257626980510761169593099723081426064016502225754547168548144644020525401285841493975282750529675141849875191411977314303792027195725081539978028098132987358335049115169535694097611147279441792172154569126357795002003310684719968649926344427769449751086759921161895529907516183980508412795589722175959635080633332220870711800990206015267689845383247756896583425559652442366488295971739619540181913743703972969947299273808053674402119002271573546501992446093197986800151965433289377019919246501744780463928688073219075345082445827384875221666546876752435543906560835735106728617323665258348295128628168658547972018247453428602850774938210165684615626145286844317261072344426776462003343823255883608895642112170218742057294311748098221617713229047239210834695710368693308124777147285895356703129852500605513330345157923221521231878271169906321647224329886845859233826248888682155019506983717973305604879701895513419965551852884864708823449114396152656278389720733422928273149355953401796550698397355402878917603041932973581896814123919856861680970668802367132618079246535163434520345960510908687101192729409323423768695526232107079839245607735661182436197468431488348001320918803446828379448258506694391368117174325607995301846753613220769685614308457080583252254443094262387688212270146127262113488898646195251916683413683158901954728429500765703004984117890031946528366124585650538872316957211641831943561961420440239105733550756363271240333724965771910748910105542353883973399453763619293572022836892156584032093022396010596523588126914957466384555621868945642842580820065985849504217318124459526314686625561134881896782416250668877119856884802945277273276768129435680266185808870402947595798100351843362688447617957756542749125208699800905917496897789091232840567090970670555399006623252331954755521464799705715421463324763009863422436457250022954754049468997322529801314832783905524573772976091979015031819911009062492882328407393732711528212324299735745054646584466950732740491178607670065564032309181022945016761929201523248410229648639683934429990616809323815174994586006364740578711559150922061125035783051999865914831313088652486951644002204618879888699102694250560402430227072648786181316973328129829439469347883347877770894818286741148109975311960290165475161719372381746782208396836043252847348626306228385860942028380582175377443188407048612145121157845544656594464079167646502351278678057811380962061704962911466158648233542984289915084500709631187952159519162015118282807298371391549382925807691963008367515889980990854582274758023362652176271786925128975332021013389044736005062937652690081968899795238044982417272272629578265015379579969527489203563761935145152132267447329892125089402915880850166290190951966170724726370304381580622242858923760915222507362769143485182608404836848664655448934560284602147836408920826585440938964394450833037285351131566455568289663416027197142753598574861652259429928019087236190477230233371649571016985852827322686218691326291331279897997959307651447410010464024186021616867946865611879520439342673561362446969709552351070443553065679647819489253616122129487720489308963806063787800915839617852293351127592457115121888941220897288482103890241073796107715607495908349004792558622248208245570977014245688169122380755792926653622649488123268116230517155559174322867649051000342506517574250573515305296310351037051168848847164011378102261889335860994037791901896326224110273937941232437476225980580852181214309563609871432430744136668538982810254621955877329138411257572968431955485064149879220839358419372632712532638516076611468098844873166848791938248599837173366848787172765667797469769200160776914737425173670878281386592143437946755528449682056596260921319138726822728453259417116853757173678520031500165511565883390585972627495067829907442410268243936395614946258607465735166412423050870916056197847574173903881521208558961409838536522778987716358670616224553304886096639438382698343451478311884509698627118644124223169042889743922709853019870030648480810799443904875727595976184914784674900782078536502868651180393525740862780691684015460182384762490685543703719214160393535942141007629471000941862480415516068585151359152171186843487410064167550232993421620269645096700525903822254585992912681260104223012547546931681318794336871723386304440208316837937287137596920056054235654393695199925978539173549248602764272449911949827341863311485871292609827973555907899143295029812850938821838579162334454471519789343313574464618576118895136070458748541861002612255436264792250771658546856579681744435203471620990554145039070812021000154908681545617941459234674175166290322584456888061556564166518685882087384647414020600554298131558146168994598526969371683738241495269983300671374974965110906151484135559011329741608107568597592493958174536799621600634406801693364296775263488563135411094837762360162862711433022299265513908771652123534847695285633544775156351803903273502860057113129055887040106131186657737014506658919345555122371043346435092634273099870762829622842831884528264895326874238651013166503875680491388322513466505316334201415879086124448802298706634500701857903098477762834909381334394739666715756275436943606948114670281836481823858361885696980785217784905522180805813422616324073415867313308884817894340106506501780507933456901796469300898214304904303716404558378314412938007231686151683676178735412323001667604480900839669272289569806169456668942096996540395771347381527851211685142668131194132229038092752590076397621606029258722314949882175788137506605786761730825769390265562521685349545998309634196643682551995758609266118835625405879652406753852547465984605849037474215655761969782006479182202179010628908850364909172734858913680557865988113489969588183138570677212429984283134001637197312945579577980815669647867664100950613558632633424657115190659382145056377723502839815581749324377920926829522487128093976914728657822033131981232676309337292149565294332915157776456075479661975249624016205679889069709108683933503515138850687800300406112106645508991268898736511446544327189529784310408965215885170809935867076417107391131312151029511530234148740869717282992074195899960733133090802496729413579288825500015687166997208973563297133822354805723291084842809832297691001069990327106831028963805046151099280707912416394281840753132866462733495549580158318388772736557744032431831799103951473174083708704974645365189374840094908053861934487972097105029246487301544595772645638979918012987675182152750784860661495749707912501109920747426121437612863393338098881572305783328076172587581775072295222417644888155799116987375892079182151649911075549530056999795580162507770704693442144780883892116583598303348514417534183198608512076730804609504372285967909242001375903375280447813227542982925191962623248475054549129824602456722894691200321000252846720060776909604062961582646728142118648022286330451140335061603242571465481712850096841974092512658504073511114317248090534215551868333640674904053202001158544215263511741155510865189712058750659259563207554124083497277050013370555834115330393192954201321309729460240507436745296837249035262016728326982491497266334641174595743481763431586268803990853592201343205350570416427400404887062692773360896425874915240183488316137419866111039045061676284160565123942205101109866429434633992895462411039716505423751749968831180991680014388697871042591520134582399903830027167101416895267445324731873220476385759537567764214684775409219663450536206665729379935084702210130081895938031481171147638758792685453866250931327423013213799327960447895272880186910925304610782168222582280352995412289536431873464376214216209721082076784840014574938329203527498654210461073139298853238571987009843731539005591144132448145401467327476568805503047703001948111117393027075549524031314602204634676848655854606443668711414521043726400151512979759420524940217253958108433280928508245513410339810106500154500108273664897983924797787980982525288531783142896652919317414997017473258868148731038751963508703705167436464825990781477739018824090038723244104217390983942457092921663197200822361495868715280282959226078623013763389092321767694556693514806446450244937246994423476215058429933975717969725464170428713757506588315199463288305337232728170834481867438186939325762824611802430757664411179882637534889436038985491462808007921922830982991050718963570447292296295961878547408323517951953024274239102671031755262256820614546395170201840739474009849477025542917822369082319861958807783510763359256579999147868334720508700429854096617371534065314528752006255667510144438771681195735394246338913124532585373297556498878600013129604260586870949141149744551008904034089836871491860836515103604930239449395414938034249698056357483056810391204968812044014353256030796483590043227073218506486343187393582884599359984278026950754565745574160900229153123111441943074809999322091943393218253789608418414100372765807186655722429104962974980756079739353994181850365807874856437487234637395175878733843981154835274150693204962974267749103739661402214399648538758911727631493643475649047078685521906757097104647184342085126341020525431612853213420231782105101781416549252124677642437014910222394163145276086414628194021091921466853915702435957870089824728852238050213956252566082477110640636932528185801835301036842467123558041423376893559640028095209488606043446767662352525749507432670961509772353000578517650137880872217740116951289716175983558287738296390183010875955363420756367464339652505030143141666359802647022426874657694468547974867433219736813295417003670698257093751562793254829339668474304706289337734410622622951430838299677900719854926392366994871136932096748246724145203465844594123523002062931706519615752540308964065413577242695004984899840939948650271172996730141228434177943852935761667935935838575010190196612438062118604475026728241987183435025010100126802741344428443404662009860907500776710340685601171674786655394446377406923744902380490922683120007535082350716774089461531474720513214799222040386960117150695439158126207074972208532966137443660368250080083882090783272038453066883814837567438081478803396984237858095695616788188143628228432626674401732964669302312280984685234519794998549108773552011032653471923068075656445302047584263198663888953087380347055450373136415818084263643483157729061451221242843620611560747946894333470734407319419346840111577058208281394772671541577681552839725696286189399796080764363192884010980691170431941177008093697745452134352082743144098797814236555133934385963195686311109810036231490526992233974085817883287755492057151685123356452191898161116371523952873161689055760865260256798646739615075969497770780857213863880233084500579031000529343953169434650974629098739615696253055543170652499518595966966920604252549678686039916775608869693150454939418574430138957423913747739123572814349110375208993413780460178299333951892359127129723613668951547028010160801004680520896199175067492652651319675414729192488522164736741911421095344339149126208394709188499965419775185276206357135048996178908314213148383024335947540871999213001066445487517232722956910593379124254720508075412603755387739792197951532712040872262862517291494878501977189834013305612043096956909440564269029169381975650326510333322574833832487661300220331779638088648136275489722826466127421495278226549123243881741760386673034243642928181378340880393404528436089843718872261355213021197423960247978598397928775190050424025143852378672772391871918284822332744650430596866871780426782605275143764991299482022986621566201256477986729713789259965944341378453993836339713206858500395644148425302647369229247118771627048892722503319090542224504124795052229157750457193443525536628736825883726961618229195438717088045426339322156608156822356214494678692561647484319587495554524944336010610356239417137497274877329432088336267166720862754789418229191265541906601828708362431932481021801967972405147855876673707489987596470164613623610036992284456195262090080121300358686403453405579399698760592478908857340875394637046469507317537469749669839650142076064680936511095405515190496237246698992049686029109193775992714395253114188338479318339372775295602525198471374387838010213562897734668725634426641645263688696608629293794141340397275690402050442192426964503764025846702556312499616100486997287038001196451869128829352009348360358887020202131828770752461018405461025240749200865399614434250550936733516858635598180596656701056191041621374655413626783621050022028868191130419162353718493869312173489282324499762832442424045845965432029925693441994414547024640367005077918256212846440465863613379573580261310741635125761261480752921655316385528434499329073357070200291534511524425332439210668883257815301204182927816713471202709498429513604592236609346002624392481824334859138562274418256229347767792895684267219778044643000079102584439645381686302945859988324693707671289859718661742449777017202015734137658022243937658992150691011865939065829826902331677980067756532157397294416642850465932211462631253172406311975216962772546998183670615786845245994336905565248637565099152102221964994002082341109206667848615202322660568091079704174871563780013106306580955570161985568477663125878360605032636260389802217590835889598035873249962035793151860211719682023855675816073041021481157373140574441507296070739671370566935674405975736562541519458124532054184534537812099555227569146288409453595450927963323941788364849366968068317730797048126289388615826978134752782601074205565588024513030070982896552556870782764893008511232263303602756364167931748122911354396984399860933053576739247998625025449185430484122685188787517034045285379552104670811575176193450505794349282703880400842830337721089866366929377981694156309152462634580128720684609200658666958450607385813242163895545478012575278619893902522706875543908128376572129011284456463685865047037000709339550803987130947812336401494175489535319254712757603782769807237622529341418633586297683839650419333719291449125593220793906517291393877841438980921531986549047948311648580529887629122030827005823766771220964182627335645007832065498917277757538967105833669834064889760982459113032223994743662791579039530193205627949447663261159481301905279706001109156365600470965519456944058557038484070343776162308984248163363736541733536975430794854837128174266844498769769600955155885700069703063951442239368992035195470626642518945752134261435580933675676675728127291923891688544497997845003614145200752232897315342154292364265951136100265289846610256509648803106429021740757320466048834635038022812243684978809264442231189675523516880608134647930751071746947640461704882686607072182839118605064212411486521212473158623532945756055704035810682012257355742958803555186416039311481689576055034335055598896585324756846282065642251932106228780715293318900102825086314392944975293384434236719050486617299609464838748586860891927864098434448798314862626660694526795280557460298868533371937076090145161961215908225314420740541223176625049979379447714186514819963848401009966432093921037976659017120577316764994142554417445385799699186213778235901482127288523880668294113746673924816260549504925454990649299838734173572967802547013844396166496783135403348591931925080207871118791760410937911860698644778359893014107517875410099539111170807204231057503379446912918926480698432603012316830466747316575154769808571077075793922792133677579546032009508724894873957635655842972715437464770158117963869821805788545034878909662491927704248164631212405955262430000431412837616858611051284054592669679906482013165775632168019274569297170312416496218126034573565423735701138111927109601710517564112704261985138377092907227649031562953935477130517668941800857944850702973324629035943122651172731452736480123797173725203402649359475582846269500923233803769476234693395077082598495437262828612135888262452417154886810804087682787116273266222678091847152143829302006337236599066266224693163848143887054383619727818809202349756721420389818677643072942193933489925345421489347061173824327706025431671220813913701176022290081083565624302158658330863606050682139689174178180500252859343466143990359568404045088429080282746736588433158991957965564068860774326921498533059081153837997325639788607123656773605090455658504909489781645376305637183703947724414918559165892275240893808812833319371324091529353704374799079016857655873157332479423174029822318010239850709412548228407051802600474006220634284060639607235794597517641563266948808619463727546526305950381496336060284169065973795994199167712416216982593438094767069131917603574865750638884413127726356385069618893826314612594648502516067721939184015560305864835027421404067814111111232148927419947028837872759424247209328126530371666252994359257384188308683245800949189929925643929276754908641511787512210080664367207996142567675385362330644336741051763570042353260684955083332093301462635367960865548553745470476934368323705216928416763776249164282627761526702264777937528621942411559911147079370750594175776102467237974443414717907961497513293073760163486313342738545005392049568801448093910186272588599650048849941426626283448831574171732010361520508433427520727511364731052782329485111457723054256103823287936388340381918018209948166807691984446863317717495526598283465243554229669107796380245972246375567371020703485560326697920873798426173903642816012169343597651767054410603187047967425829963664649396155641576170399527480363027871111480696703666179064985451476684955847361725970018225909176019386751803830414166856018343530404930300041726207451092867711203868932131889672227545013524138857620565897812827688894816235058110262499024958767367899619386040417699290519096571428324753722927882788248590275492231311765319182221876025437683381351470477646346209576911525083869925605143829477352435030791228002774017415266508087082252591922156971569959451422572492262459245428914479928334260168540107485292439007004406828432784668222285468712121668768195130463448904209195457485706795029945425048191110760151318452818454589364452642871595522212580436284624645903872479496151119069863406186105657792213363921783087573668631285893226591908949545678009747619865417711722379378560479063253982166602714922543803270876448998569785512731472856919925482304166399770098350231444932438441304204665144302914224377673050589347802932120632939189008488765478818316665053528385173171779539153466219172170579342262668702696221340170373541019159300870992314168549843121858551609604919989423184246364943180833350958571858931995789636552688890393639279956559229075386698088269030471360529657927364337447766441221498368957309417278047377755237878936998654587382930636690269003565621534316573630067926315941122224158273377684109370988674350067913919103747272181699447776102153672382316108619382602761121944542573034677806265859336029053641900674486806983124716121536191887477971055643842190023369615229845420575322759939852568674045430271844453046836326086626418672539230576716607765499319291398119946200657615841610876674430833742734931919771363548625830672834502172379987482591928396903282015713204484031074031619926521320789624230386912281976371233484583670423334015768433462868696693202318603923965019925302958268666615502717769358068964301993109071640877601895729518785678159831146104017633132561747977061993029673209575038821325609437749641096479950263069347690222421304485483869119641552069727786901386946689656670713949533673635566187286070683011074875591741235652750308988712754914683559740604082779181004825780979664092450775069283847645929671235901905813411086239327117378519077244755820535305709960786171256784975759213337409306331167103521661309785147051747522472752048402799061175534538161138195555058787152338922103061573261823294122967789984440990020777135873434915542399730237478511484963432247685877694390637689976871035750439574584519307763430836982272930884529098019378831979029206617821673186856528933732739396960363624408083439905017190523350657793192035633955544040327204354597358751063009939753736685061172542421481308801197197936761644596971178220042770039629675064608373892149281355540863576407136215194939809312275011480543471639025868911733908920945615174243298977849622727040256915003907595695233596068548596345728860857181682944663583671694163364585801666978244663402608670816987600856505919750839491432503800715933761645133107737636403709792291622383957949328110427859580962441428788155535571557531601119710954230155688265251852258796352798711190357914381927323151010944569141265629901584276776011391022863908971954292252582606188751752191359322973816378869264501367648099671406446994919144233771723323752514026350294213658534678867283844363813097218187082162102178982214130315575918050562938530173020870004938017983715578527826700921060306884822086774104472131107953410999725753375778055098692904834913337112223042574410726066698700303279439830144078795243317840602980213452755845043649894453206597119115798780804840479521317831789731645823428092562765980709542265205713526527867369161888566046367991307225995153645567368735283733758807539088152633056265369499336246838448061952931185764851035946215340460924049013241280264053272382619289312222383852344015064420301077855855094039565268373000360710426057938606563039281442639308060617224629840047975472272959507527903419834068056416014116284744658248641975778638295950820879365067089127665943017796922636343724874078549613296286690740705213582679688747106895812028249721971504093294369578883301706462251821614397554940872507426884996129855638327458024455817091508430629161897856916791068085319164406542286389470119197273159685591835838303458144384781922890696005676592718971241723694368755209462715636351198834124244524100471579181889150888584194027459216590023047718233727504957374579299837559028150097893581466938474076000725025144492385641259691515745995158542000000811043745366817851841837809549810388384835523452347325447450424271494992160903203645971044725670287192164591216064072614705274508562727640606028215696373010676389886049412591972376901932545418458661256305674276931407134501392759716130938268282304651009461351661247059233643869741428490583650011521780558923780924684240057735532540477762204868202210826567628419083207930061061219851213729111678177988238801912942917740056163154953566186908810973840338117857182521674659813646524616040807430790461680848517908078896574416403493875490704472921952731485652420050005015092349041532130832477506202817849495537092277819026001298246572344877179147983233075518607066191668956826909845649988629737863385524161855116884774710027876850270846862269659301810324465825418816777500214252530835092499397489964288533710025074133523760744629022487235091462994640721192393302465033659012237002520469854381411886434620503303866176016039730052745219561030787911701039038588046316139016514883845974951853990400809793342007149929011165510921672312744280553170421922030125396548196342676593621224137945790851585240736664034399474228372679659172325805449100796533853824658062652922393274760339732189696434267100245936434491233160035784153541783511691737824654339497250827528111410600501774302730306878483275073810718331291145016604039372758931081325631299267556041904586540029058150645552939024966783438072610121646317586570170923887378014775982307328475020214213604106334126274950244692848411241878040663244766444539598209745476696408605761589251991654762456792439707365121754992085186112002102380102701603639402034295207429711163990841527370614997386866203065331408054166473220476501555666232834452845113964527618311743930124500232635543031750296061468085139491920949719990751752436678257208293776567033697438272497691106824572413154292879191789148842075094147041395903905262517456544994822814799904717245498830483215321798576142988773520232476991915361455107149557227563076934416567657558611981659675243144188975282717647697868285112356154517941796157260056749068480477798515563790577845338611015190278324903657491001933419902770580221603044824653629050958361217348565372903425904529064518814689855519430245203168427334762060150403920395497273640457013673597539661601475665418071981909885865694331256674426315989636050966392155040727985045006992756570025096853011086388436553544537648573298873327471092164577863276647709463225016733304999435110125320707462078865392131263634057856633517105520654112385114690430363015616458739150764877221717738502233929312639230018841080310905767470321970573052587757946988892055290914498958626483892648222548341955175159974903088126459680809656958224010925306580113776806110823621270248710205658272765819521762358783503148247865934784749178771033132286072554485929982934705541507150505924222482657738382113020795557817859476829565758583963479544324205038627707284906079997388340744324587613684810328382872746887096138865996025722927490445354530657795875901036024451299237483469111804096779521707338680219978748232742134986724071937615176582822265456600356459989541592735895467065167193921951430125323718441203992612771281042066018761229689201591498574408391748612783011163180721048331948024855084489748062593372261973090310783710912462291736168534543774103607441476401008178460568385181305679284031708394502295084257861874747647257047783943913270305120630182102523801420898971497571010071871642919187701526764388082073252088591046349147396628366991736104963840290799434438128036061429186931088355639518142823238506253401963565927792203195103440468135083273414683091064908235903846939610487853364644313960393912439827354659595031465323408954733646413534705711284508562263050543490228250947990665506098992259593291244122098943784425282025876400856224587905046548678772596566486484380167975796220836497654461223856155586435421334586540681618366739543180818182080823343403014285340014721414094361629795473041740985769481201613054204552344995596363286865285896031671511313829514045325297240981817921832810489544831187554358751812063735764038725432351750388236522752177712363342932429053497989054195473401843699054963487286281236965496138829309538549792580282314072219338435032485184753296346473665284029228858239168238836107497695325858217295710333114249560732556127076813453697063246984418262023383981820496773674701057140793486430334298675119854997060176944856593012703687099929130332169417480087930174859597166219262068290838037486282969764695090088691413469192935693944187657376381175998186341922061582734519155627684351235555935127135760112123818779812779071538783082903167607982497190906225218218801832950276986835730663248674830689443125863793578975531284113482745432304021240437186050719993226761506760314113028248817185126426767285796268755690953951060659900902934503421932729766953732207410622336530224645161213986014838467157963714738005734966673914566635058985318027476506047887394014145242833851723143946864343356674742392387883314926627619278146458369793923970091929444065060302097180826312987735491587496095952490544249500206467585089627244812742481492878799923272665374809696658945251245013614504203212063976832767738998870910195472899537482862610827537782862306361436726771322225264920703810908500519473870613198379420654798396698019877694163682712329647949042708976424646601750102419499853828264867324685592094441454780351399129121076288149837214326720423308075437567737600646578920280452352922386455335748732939795908625801541459047307233653259704015362539208379088712497780861083999196495423490032670779466055279595253593442533699403347666706644794289732287602203814921667626224453004213745101484819840765207695071583505895328349157975004893448548859785054292397694063541536834957274202698584327621195779297238750298049703213673934033135084990084837637937294625908718996500095069369797672488582170763497902107760474253361523868091685601153205387662988863496409476467952386030415214280062326324477659598481433140114817019675334315468671968929500292281779331346897341959574476221740715083659125015357869880740422433523883651295713646175527155264758570277224738878131578742510050325096994246553348163476516441659449157057399766632534568157784027889139759799331873213527221014019615614477832230851249717791305729444194982578553875113069606200014636848817000980314935073760382561026706129510916973074118820210201509856971847579485569670323980012312700750287411647762143167155078256406732991040320072161310267405581564809951621610489957721331602464469943817703624512061705178448348762268956608142611402611287835836229631125165798386479726532297296049955966210714304292033822601254028385099752716750580144394781188425118539750762944261795355927910970887140390108453137565327296150168913200040673703548066954956408357421757167067603119291427072166826836154672452740425298553782809066432053917322631343519976771938708359513115053156640534777040657273298047577970236111326429145579515314966277557014389755280543848376789254878802427024255038652351113533557812831375431285202653353573328395700256229036128647428035569187358294253446180991232945910077107539436078595088584387330687263489979737089575407428898646551918062082683355988413544006271829672777338347348093166024513283012559616969826251503290776794613819678954432833019004141186961419104967740982424675608714878687285336530832307359860611610743368259010909957856260951325305911990010672674947271114126806022808162099197282567660439840762967397892473921535857494542296141998623879568959817053188199658505441451382276104109699635860844262712563704877470355507758193935111047156042559260712435453909881305261336118033339763000731386539353042535580358264083287217625121439171862451402709033540316486113441315284028329652059098358313009108240187903446501529555650818711289684529327040471791651801040945375255013508837801323194118313181582534669608279667657472345811886597982560478088423460396674369468120812241618898736981727593323952451615415950162071008200800113114718761058994846008556029077439405051237865987595857758157847053191128664650204989144308990197446994630026433917673781981787004743606372645544763243609066734529046812881567382417366954997071891053652018644147483828406712920462400192889762712940036906003873300970634835461798789484095834383579459068084541380426930998298408450621212097771258811949904328079025689358775025994586657193741412120545899861448735408952485636593625864435462387572024113166713389890432131301094878878522285426187451048275091551029305928600809326744159493309672065854922817625442651508135970326235752983371310266118191456043842410858891503737371413711818964860372896115094883994346034401188792229761207109842949485474950389692663570613548081731544805298642367054943504516620465568634719778686685089416298217639886877743566869148856584227123475202210306474277908254005050062457281537709485438264402924600308157282665627318621825103557594355604768345007528339286803059522838066564088977467886514883676984902923180331502849001050522027514625792396176264464861899284139842967826155774452432333519847376851315865962606386786954123629424450427957754706238559423099740919939653889862361876882035178776816523502929154090612358665752561474611546555893647794680735179086964430392992054568132762848542527901769710775005412607839150285864925159028722654123135863252727996369586433926200831040087968457790236397723607754429265856139287280586544037516220131446315798234032544791934398174416645259759918098564377286495823559503800919242289379382180915625121731126116806832436931489161589948409425733311300605760255942906797725799424527801789755498602534784273379214676263681599900997811113880774131017553954194241426948403932885435585314422477173411251052945920198282791552940215380121874618375625505241900415721376604093316753769133898800332082905709042320628881627974390159619490144673714077107685727674137518204180223319804683197222137560444844982443131507773380395219916349745603285416860284127612606842307491413685943432903544823138252528445532463855236901019653002488149976497814996088023581220371247892800955967586295584331582863744938412231593555302861635878744334972795908253994511150196213135498181003495980082327120611862462541157064694640901506114871547341797449520329099221281759739870280919970759214555951330527073173609579469331691771613438815555452249919966229033516282170448246582750649069006440082228546899725518360496677448473294296445267898653723513104555182062168934242362169623190409068823385679887860702783211029890977500668014400182739418132862000674873781272729414789005020169479203582297625395768172863955458344666503816363044744210722441608932309043012132434957643924957918206426892555671396223527854593819120234265367794947235440201865090975299839541044181828998050866504729842054172138745721085368997697943541828558006450276398933835770789024650028386552037776142507612243524409663687379960962794884537576637196900718756979264818407730759353793554460981962562736963667957270566965062043959163913495075680133331206120602785991455157849640405860654194928400774743450814666500180663167881512426533864427050514830415399363417616165166507885175569227146653746599038060845422016407683240855678628431835534354492052198829317500067910916048371793089512889147368484916330937219611734774240217925427971672364109258351077215094997591043556531470684547444588668660850158791625433787683692516940342446165877558054747472709173521154910131352554526105557859926104566372082298772470920969900749693283709072711610861037531483344567603729291455753651037329176973467424982234788610746132105298895842056030292747795518000355034796888787113460283932765773425124201549593512818571624432394834029603121003378164903722001012125730341187455965076803407884318561102355116426801221167681297190503845828238068920855323949395597919514960946734445451688800080078659798343042808888876793368986369679467103226799171291698250414098131006218439525817762266127385517900056408662001334016221462119415035134651705912794475651860396325770127595789239965788719770386921397265276892676085519749048388109923996241380068288252599332292601851931338449976423542982376286275185722812889322613741395634286906483342818893207782469554205341925501027957435880840797719358222306730535474356869645743229914219925190797727367783775036551060173242928023694108069523695152657118531284165500983207088426314617494396497868147374951038954973768260815408371949786444607555872131478740542162522092847390565138532478987062667642245503295112079798239213530080016683849931007144453662659501678014361563229409450241704685026625325468702080758802133877454448614429245648857855839647727468417221789243267917417682684251025417429494373139974887899564401489897399401593651827618513588152167434842032014957591943850872851938767446070328232733609024755867317881897085043596270190840752663953424875354076188685197096718364406572504639877310387124520500971565820864228843961575816246364878678925083798043768342479740019340734167402921944120755827435052732460870601354814850503930493956738800085186796222322558709578543264807047731947471147214981748764784794733525193141236910088081735721128379283394498391420472509594893313957930890902663483008495086188493158404293318740949684252550072072544105198461519698410122166956961293278624873330777981524252247109090486762908554159075050741678060453915547694409872287642792631100508823804243296452250748490360605688291543799805930045715647482869831490594972938930576370252473072503921180071403329601063758296883824624984471537309483875031881914603446261938042174560090004683504691530901319297435699812292626757274790936368873077911851929469688053537726790542451853687833367799767444902899010416930911936431728515919825280688155114416590391157548542154417208857089564783061481506022340009797125443919851688592524129091922723512427543932282720534498237889112409719896670942090599492656040717005052072330918511139805329598201820956517049361939107324066505020837425827215547130746335754572016139839413036408767242314063929745361420035207556587412354087926483613298115928966363849135406510574338561049867303992265745721854197942017306040292390239697055845935997112864579616299332942011526002768401445213784660201187374413677741401505509350211174653114782601791178408618140589737635542382537380115971121637423408143945396766796557262148891112992460961425272746687749770111450510590001153109121036604653473715382897090562821570783103447669635489640958498348820061823505098958089998188830564973113354906966111136420211852656144927638378923926328397436582363556239418829330305392481020535720603132444003901032524448165407578669325305735997691555488884903159172357926540613845630355091620782920065245645573803165047940587138738104853057542814536186721025100623936136931671933950961720873174514309894663107486148590369697050687386221934211583165776537961502456063451802352778755314416070700469918530222321484094321036272001866524283839078272425951445264935805420357329948427351878594347949120038538517580785697623138773239151889295211969118363581864604938031341193448485963230707254762099277377926024861836206056636453724391686724327837187209621554713155485649952536050483371548298717996675354853484490816683747089525239025846296211309972424091179573971825649058885133261928741161614588517971046622196424717792940524164371492206287767292637506189817355038040438759791031605983739711345116412881544339045327173730073065680192676168578495434705464923857128456110644826438059113471613580162706613521768216738968074416477216900233521307804216151335082473952641798540077904703340081655904992334489476032277448611526389802005918813807553589072624941962679362856189013655912360781381088271970955098544082452135581759367447455412115601936691696406546114607395807199833144076392812444378404304492150786804616381397161696900073573157137546713982287548187670313669337251638616779829465800040948036303480121505694472437363030594588036157052073375169777047264755896824070868497848451115583839242229585733838472418875594179799354978482976503446301161914124922648059815430061110645364415165077353803887106611392153917669946134903306919046184029666546390138848947396682977826546604475890069132829404588306004992509267887296451434762626250715246552423978234515436657004840055589811042177825188946651005512383637091298661980643783738574187338364050930301109397204214616409283799954309149982089896177884278761196661312705912954911425064087149678585697649534644931429238470949341481653675670609092542154222422094463568091608382021388561827061797029764173234652694349558766211589938321023462105722375267286136704704167400839686942839348691275103893651763479807348959686669164415033488183266398841775808208730216635085401975583474808952787527239316454704006161378143601870655625097941779725574153119859381131147283418689782069955738856468421306228379351671976779215968292062797062802995858523630419485524495740370867952921483335384122319598443978430142786766075485264727046128062475790950176984430414714423685148034149376863175816371116542913701143748636633451139449849742123203628035576807286610334202396573160745466638010683266808409682570634997801731783259935073217809102303713625660989768871999017790040938217678414057025226388629901128144336165712166567962078991932045126715275725217675161236884709872464384932123972281357322264010997485098763132941044987830991303112169335292666529426297327125492272653194733642441659092842795681561219284994134345677212917579552511238255145782655429090344502582140389942804118118284706621144630568356927299323677987149340266764322505524130585580276845179002140285977156738251749195602349151798409688434448812973663148502422764068277240635123027217218234398129809001149282860533865676511058357364547937954638665941192906211307217917085083372705790770572849118493575373234923418475350351280893790265103647797003190227341233909502692613708101823376906475605646889844240519863551856252151934152693816508134817313697024949822110804709186808920345810023433697620461132381583824911948121804229461243686387239838873225636753256875541714894529383117801976942363230956880094829913185429256651366387809870817088680417596567986321951436959446551312636924585974767466613697988174172556409352236223057416393801158292655988323012347931678005863804623766137795906032524373883775194956471269780649471903107730319993433839685915863023590559604844295674809094173415492866560332089075574303402379763542240261813313671491526557490562131830175301645597251013771066680918742954674570091938984675124279527129989357916057863033665917371007935021481730845553165393699095538943113628271297892710711143140605858652780899026460489613265073514128115857722559553328088253111135056920408367223769336147999342651910945429624951957808222656767289048080805853089374455135995690406508562199374427733754419669205452429036697704790077461807407199977314318780855012011934105858503893341306562550838483887481208236388506138183710727671477336298485930166486925980864246113940066187984570834719443921331743558703381770147045000885123898094149917565339333096683697009385553752513088308115478753146338595595648350320593456528510160935867585401825009471276805781773545422406196837505901427793651460539307232448075743637345461317920784536460786342333899403638229779839409320868169595577231381134959174989708402385815943887720457961870666133421873360713841850487773628143130132883657812060811489254604045047055768637459057396492209768227703940802000991460137334314802209918257760693541883972605295337460791527138984458078285305847100185080727955922038199923515077125523135896086832274624857040815500558649630967921793437584730056841965271438865840440788969793858412012243177776125480473012294533767053935224970773450386602015621711005605823413209443906594841239286662204052159617273165970030260918625981206828842524811060520643442811045268495185961844697545197757333456684610447019404123061396670873276330188107297084145894225202911259817302904579082232805053508391361832302186669819738854166682918456238220239926682977474782223286412229817172159394275499914930029395338235924160347112431266579091463399670311321228211701583053789409665353068450909974091787104969632309814423308187611455831340617454677625802611161445152750320065349664303780136814847667698621345017320959985624804984688451829154593849110072901792075973929305069623094318725461452280759060649262744803704881969781502524788622224326893420996167317491368286093766233219450076494297220442646729521157899898186883178556450951728257594958666459077632439216743848088004987719791215612380455333593006875593274432267993734485584937288125404033341890574646160293606505109479993433050270000565255516234150363570854393928911192802331740373804087689843240563535029436082332903586653954390357960046369353211717020066944229909352139481569075471955340425652951859985335752762233575700053182338563240288594388559659721330055390940768977419112129797221273390260290987183072292895848712697337575432086244751588288611791809456204972400287487402312152109291414024719178991057534101720206553231775303638781606847478942525592207928838902175318486602732632311552291163084957555112085354779294845331668698395971912732074787607487723124501707142538667962051953750949645050061834574144428370565533403624862027396883152821606937474538393412957852835016224236321158670938607434675891342208787228808875715162887218375485931875393254825908600768002902798950158617840666058467947304886247263437532358937689596488490921589517723812931099872401775880002655815408227105598894015381777083732455902676892185113249484498474241986327382198417209701557835949546231413899376418111719159893291663615693598310375406838233413166761558864942307832707286658083778824748164767698389896575587894478201885276089127807910443635175358548517253675142436509203932945859471693048837825865858591785212654814071474768379853687153303329065697798943178833251303565539343628505419320734964947977331103794940518958768035919168282216595821043587708028712344774661168017375573243895396123305609029869367330576614279829789103501477976395309342106663891890472870118325665188274756125301919110410449549283892880216343528498642732423229669367640294953986674196283983029486813780508736898773245064445747448917462485404659615151217496253058073679175329416384545690091054680528580070859926342184749352706929876020288369784394786950074502715044925240010260694589528155124530892737721931920395332708505405834613779225718025870317369878573623105992740006282645351779166820457921714106064371989808527360451227200412609627259351627529113825693458950297403085057045659214394651603773663081825626714813819389742588790878171864488155010995335995932607674741934146142909629928197226594626424874170063634714113975643511128034934714968378043626167540486098536839891891918497265429587411684304147337229640172930659467518371348794741437245912119286170339630711522099260123620059123726035884030466726249647459125342252566412336481780834082582690392438509022273901547603448417779590183915050418249563538430397559011517267763915588559510353399609338991110349603219667532885237525851185260976061392459652116757368301606292262620777303766550367016936240926693876069555526419753590616713996772525854129740751897597965477204671015014788637575257210438558884123487426513995324069399555162953126337781736355639496862703679742229634876022801511269273437974875262229545409366186677930406671844272122080054570187507086178060017913845506573800925080454661949624802016992941961615563673575939862228598795756070866030910048668559627234650612680449004506699554198791895152633420719561871799075903722327043737309340745629696457410158294930280315475327184363242968607113998418615414272901029517748766685023100463802293653664916549225222713733818749403941152483055122341543957616499663006909838240651044765594821567910992885496794548011313423898663667822955548632112762628825733543314874819248904682957820407068411402333540398115583766891055377545980251512851686043086732174685035807921739377929077511477037939982444239687795989766011825395896231570560555132061223483053185633108098956594531330465889911102588604022124335298818864019300605792531028536305027732615773383360744423542228754128793228620720204082411851127686746567771990204820088623799839887946460639681980908334558475138423574241405720126647508305448094979819795849168752541851929108525528992100066313972583477319485385333504276896074453845448239092557850306949083009891020929027282165436380209538390231954338516232969154851127759537252845233531262537938410973424731498180211537395839152681289272826917205267694673613375041261096193959891769644663703384962202568014950691969034426335464988428553256795171947559623658217375910875729335266578543668089163989166023057914391185012137081350485360560318585055523659053374227782429706010672915374480502115720599274577152095769410663803496974690724772287771432564279546899703744693253512941288486967609630725871926964285584051657616338681482812775307955236474680408865176386243691413882425422534640217915605807482331574634553870191934861489966605364982214049600443596471415894799801462642972845734212339053109913264603367814003876478093962505335188181878498856052499915904111607737466013704501849201500542036652773105686089926040058121793458845924162897205899095790780151758598304643200274757253562158145172392696791076251064007344111059354768803512017329465949779685477067240270186671602200726186162028850117050675980892707922841615700004273158399460213052048494683512821543585713577125996323572087194684871145554008357726150350902353164196740475071180006387153127729905243617658103758138041842873229892280436429527437259423243914229350518850659499535895789111845683741501242856929105370223253489198500261056865926281219961727041116583570189899948224438929297742846916263042867034335964934244819419165054612896659138203491319879066668866034655626510718175832760490564025797285932379690765038110143057277879977024250270024108749498486457430033927103274941382891145003321989531325964847700610308365094307285761525177454722045309638782094242355623193826327413096695861594484433187850904374440494593861815715808388461942716056310491057272214563012346619194578824965987953782960385610724673801784193667525698897141144154973144566193683448931281660404065966836375934500879762032460410458691104415230369777962631142322283762488090646702698316727351163035073156192606770817451742177684205732763568249950875336651345410398342144830785871694969276036614476102711223789007688358680053264266266684454117459851386770338932965184075158926743670789075430817927962092178714320643763692451903394983330157949792056019819374661206492537751392445651054471021917489223913705251636380991241424128212051474354169730129495174075817729280793356864624341422896212422329631859152395706286236495828249900350929614169322501909424517369011074168916067721176340575563886830996979389031637195703841655593788405104047567512357776734198317278084558215853774981984451338197376383172157286154202382001813146879016197273431118608723858563000296664599559689588331492631349750260756024127415671351789981848815054538567493479317364824076320342911523701187174228917384994611393240335368937273237382908250483250766845008911073333331774636239869277817796992846288800463560955662294395733524211812657505346296193421432546791680785752031842113466313431644514685028634959932216009416550011316001713827430192932200897795105641486428700656709863996702049323335550857148846505779990291049883564055212136955408305545395872866050798769924306364907411050053796088113026667849945906929894797569328224855396182948784720884753525884491942843133123932895809898902218913954269258818410848951364097717059291826862459434363439659526386818443215637870298505911154659196212158225410949873322358012597575363753421766475203944651675443069516092667883904873947173580724882631968500689914054422757575263849667442886008782256780130575766432360210037819158532521070890107136228062472171870839396859872215812144080933604321661361912474863006385506328985595134427113957868228671849934827861030972255825035991414735346677543451095650823288211387907286963243513927181140191021874928371641493675229848415477411523583325511797276546722767630658069217401179278272280074569634899043127316205014782327459003765596294688190963546004749346378275723586797739479204955692164644060400017924579685582000036523335365721885626469932348749551030326285032203855487925379857102211762520540037460909737077012260336571564283896932427016368963029822196553553948525045736715714196898175764977643172573928244095835901657224757543012362476875292188678447848848125808224502126015064494038709652110172682965470597179389657194420314235326818284962055294788024298157231390066475675941820326260704005027717964999608238193370269946855245197546067752547439970223317388807855557739993696142847232492841180258258099361753892533488995356666232253399834590650613833070215065591004888335493821197418769941011329744323225454551187984392090347572334693881694740928227958112053895964470323097108695909047265149807499785956180321682525504867110586295759204213503695294374742720223835669980397868592646182698144748406057882277432212730715638231413367843718989941022279461889985395597378724894956044046623391215348528012488774395475318843305134119854263671595101610775803705420872546219081519021730705712238950467254964550363693624950755182587553377561670166959921941709604489215910783294614340236354181376666312641779624102499449149837008654012552022060766483320212927380998631911280796864000955610443864226824248609218271058733749478640494424436691968878223670815801474591839368867715190512880013408913913995875236494748332301317036082973297261560929850244973312613282359062052508900584380817765275237448527105721216852968828794207063945472470472744595483796362054864086456088372643261040244086477522882289023118786097292012347977323412593949914659599220620304972478954757596589138018847330969612138972158555116878463409803251116505419950277406341776128726749551967548259058515706907293253034604192370012815049740915043684996726536508928755746839228843998321941675334864380387089139522094687509804681773137354610179984218670362666507178149331835036123342208377430372089969984508358366540549138865999280763670582486090333944031887322502586155720675283125424583599902695905558065445142597534793022750273260076901572495429526163491953160047709841838341032917695253465354476035896343382737114321466660689464196423384863807843721263426740504975844851932146012979745541875412391153273609966345305321652722791508654731230522946128997958945117733622516625085803579927004679987400396414267157190248340436440389283259569786967824511108229815051472491683404026246589332928967637165626088665645607483235870043810566644418882464917091375348688286166145141677966853261286423190892648383469965741586206188408688215560690506901500786962655636507808881246486790063373396354700675190537303590430105929782678337772810894490117330992465827981671838415216899220826711683381268812408498650994208097959626725053746182064477850052077561104648849012733857283417114742103997467878734241507728413457713284115415691122115936525399513468302621447123869995065931144738430563907335623328397404116877299272461263517633080281386506970198581130846185548964608918310678245479835369224902765769358619729184885378041003972230535391503599971630974678887358444389807894376834141447303566405963665370964095223419595472010058943346489442590063853589615132218502286038829280243706174489816346550639307717117063003637998032748341066806833818064748477529132244911455816119171379350383346749353558456568621860591219438079762553991222601096206577352149242193560146335674411047161982654695588955694342149041170733302779124326273978662472751435725570033072133576644789277802476189160139382145744330539009226700413589794519861483922129900518911027461592379038339778650277099708518656096390434081512851917681683479024169876864212139809585781400327022452116496430640101775092151066962986042895900242192836616423890066318604593681641424497682146034295367878991747572922608942949284781528734179689999843094851738895976809725740736730420872398584369241145524438042467742348690604745591009993845473604011111916026744985476533498314207400464998248856603485478581169939977460340528634221192448226700826751296565379810378383673119934686347764306322760846556559849170103039496068105069926119638888122326452294451395293547081508471307244190040387457859510869473390718213106084547014607819288487914147200109934694431588270365669229224504204245992249694304322098512254384185733109647979322669526397970300734632022438495378812356238615681690322412345245646650873243041920371446349453505731374595088835582175928933683347947440114959418605364292989238298735918604293358150842436011051097573971325756118940364846476176207046731096786832102988212280102660243834812820430860230402722994046708264568903029360875725633107632103100186927546522442199902644837875898740915046979561847343655758937702665065542558874744797468973603116249541333122064211477990535716547075465301344833623407326878164381623793038996114661752547235605251547945952721633813788535181783124190455109903735110155139576878070333812114295046921713223366530630567385318111460151111674850566653482102995244673239096663637572850447040532253882248218640400395733467554610577616489597070685268153059407215165213303478315245989186342460494973980626290767922670276734746993773296183944251931238363980257560225062793010273949555382718349588904457036518974320874212567782672330572027410350359556674249068079728859051987682965193646349322929675812239525559594102389372932289060993890843119353262062517401342999804722030665790203692403472953885944031291992856989682954254173969945283098747506280012934794277830399978217837741755056194773810342444252412080970919865524105165636418486778592513442886753087825346920935483475619866311306902110068964606570084300218029432650756758947607285728090852226200093124792262273345441627076434750321071929213055996538929534993363630802752518573709805976171786818359450448782741835440270532971966090198683937405467538786895025866257995469017359135127828650091948646182115383278729061131517283052328996439702934418770458136820040106515544323881933272392232563559327514642475327132609547763056272664269118219313570706018779499829298377438654161237300770482812942057325379834548702929347428611287521620791633437829616450955936716262175573275504555684945818961845038782010080894274818818076771042209173212691120452348167137006417057740345169660219364392406711730510172933310930921164491271241532645190972655558642328998248122552713529310692222406732244230855020124415699881738524738067243007799584809872135734898248610146960115629505242916036754585335419605503698303311774570307419271141301669008926163638386340614068485325290390799210356980732011851274230584793783754158237227646357412107390235796937892804434357612875049784986753887197560458238182896626687079453177560436972215944778592284895227170270408338522665832613498784961832501611531928135268848032666755376999798045231674499957677548387542843159598146879747482158409045000830456541391546010935114785089369275172503962168307537432560438738433857349667130223613876415081959389249181398455725643266985589850362872328829697627048513435393614919168264365288770810240280847724091661993396637251576094686448353933284000311555610091758686010353650090827377285509706260648504815857905314027649984500438399654076780993124900779313712483715411749133623379426222993465996878096093849648207129591738353586489889058880832651378001338175407775869004588915054375649637696180343723035183199373501228484814779756429137300501136271703758064053640086507769843296285865018028736484944163947026042408446755643204605582931433722142616504426501575277280101555588962852876701363309447822954643922264600059844291741287734070830686463272428323913671280991286879558455923006094922041285970785375084707793089422453182980433670267685343298438730375111926529172724995954755818730239646550336329411681784359119232753447665164840953451792641034793035616298696249420732903430285310970131206834254113127052502674466818622336776113763380993179899586903316898735857326961894977419311603069699543320695749004620384008996014302553667950985229924308801185351159394937306714867526383177411805609796334208090034039997643202893181168603437464525002613037916912595728694540238853359366795283989807159454453113168068214896091066591326291941277932400072664758502677760967332703515362027843372835966102941085151629330410892185085865462860156559950112273907865723606518315128348763081659510504841748466211658861114978927486429341725962572704097218501731996273008120784657967858780689947387679859181604990854589681493764308790501556726610256383989509700282523988051193511127990742079744382678392280882250636520780893434290526948024898024722250437771449889312882981657882484729535988053994281959388860571503978183394369526367269438416809068697501062461193504871075222736002835474323206153116694951743747538781116660090592536637461391727387960302437179464858097662661359095048732999915152819996556369939116904473732184177334297159526699601180092998084717595658139509026500632633248651507294105495092273667241192005420533663347293437091676754256286370010537478769540233421697868769855660099395202643119552988915387466992247570425435654260146344395642101430614852080207869005818773042436317315397809789333600587806523101636286876882498970761921374127354742676024112429632396391516727057753495314593145386761981340904664977398664277070019015757834509901072121696021896717030809767408338794575775253743593773819602465420011378243073114335452097432361953538816732318799419937790719532059562041322058364274367277708117633019063255791405767007063663565918253809245886914757255645926142235654527713068043660605452643430722487949907566839914398514604649769055063215060423798036739491780691824885504495233047925984566322902150548313461594547517282097927973235871422528759133266797513785929028621363267675369277349115746708094728740175882561937822079612596268760448139100638610452799574745479039330603049975632790067422208860498796752023148317421748294189325316739245844765244151932718633479477427986699254852542707926770071925258954533585356423144763005906263421428407569517891729281243647205944364445351594056056141014454775476423871732321894800291071959531756709982823357898691865198680487703419688079961699337560222703289531513150986790893320565855989005568175488999211357743011917159016614674539243000787168299707015752599680240941189774561448142323322401541066913746396921197650472042887950624328268326654502774909989527815812567718158453848704289863804879640753590821479162295139979688633449672039466237543979214237435889110909292172000600733694622403959777758321058808977236580164868678926504113105143624879955066573942590625937895980825411647821909449678194412663555305928290076959244213355549448438632299972318925685543260091222159377413982334568134569956024624645225088628903397021104115227785634349393457919553282435341836947840328101157671054897708588105397861085383402586198103206485606137938998269991750225514083719882403693206879614884671958571384954661355962624444051841757694614855750260332706646339746776310960315418716504854897103723558041273930722450229986228788674161368484638923579019521821720722897507260483086144958509611039096226457513656459842953159492073506173477702850885481572718133538069521869269591013349152652437753512421588718386403470559595088459555172017215486003209798140230668986049436196332435179739122187719766129026837054231763547979272472936735713518907300627589966662625133646631744064004535698181667996409342482234065662292093563699135542301149045181293500482589770411006209955894937078273991897487165229532652309994882107771091315339035012876949537801443128547755927666109540780247379156963904069670063572599594425257905996186236192606043575968778122102001190434577012897108378960640655026720252821689731080907553770242192671799880337129616797900449244632233844992260924298593049096825748364193144131059172935559331522186548042984543596306603902537465298035226886647161951166993453416541002397561717399539215316313954637269843018538595575253138734659169009297395686196561085637762202694901532771237080541271539843436629190629497849119752223472956226430456866931038520508366169650187408142722033344320795978630897739492989082070779378123213219050715295527637153745670701994190149590862063608570977930668327169639469553301694932520003588093119819997094366619460972196249864981997138708445484353410459320603826401146107091106866216568278958689248506636486333383749172680205197887013524798530674829175151598864054248066194159147008046468299791086178042682096177990548444602393780425632025640587418358658893725019540101641072016613336418462747107298264167374524744683657687008370660448730692692603222294830018535777368543275771096150785291573698874969752690226590100818555862154165445795967175048637993093831950509441110043557210106697407151080744485917519944854130024579496264467179014129250731817673085765855819577485320190332937743166003954632373193184181900388649853253064790794072358425759912930112933028605256008639849364049644041969610354783053659814317731193825310458952486699954056875481464981656355490916314337401535317016607305173896181698920848373431968811005440636138114922613409738584919263628928568812684614601423394077748240960136886739702708889944248460373944061260824987902035960696451330113061189584812421874726188325976355203699007883860307083632094623262060734977636324343101157422727566607162777124165657574536934301407105541164024050398434491631887308350258892074848070963566832368144209448433061305663578152238809644063868811383087043332559956383145580756743319660259938331945397329139304492619908964530355885289380317918662627634031764200125631319301243271457042407638389389498798616995063307112251694211021159104847020382308442279696642751601599901847982845343751163645462534250241884148123830336043109442312736341456060012916990485867967281569178935937440882729386807347691141126845258609632098907576976146669576217191192119703828743264825428248677465294390125390596994492101398613479530203159812624425621934236646019943392692215419193580300989891867764314627808536489714619401189940803269432081988819326739008036710949692144697540358096368055036241090129154485581662455135397673515675394294062697570009795141832689211166710674105006884767938029386069210355110026646923474187549751754966783344252462449334201674091400914064622335862782514143794152087778614207707889480060848605305381968759393214508646605119683038797310607328029876785149088903456363199282332791454907349373325272541481578826929600616972712455204186254026979453315988384069695803326458736711609759938632992164014017718860724231751782511562460116239108648203176187018463230897767334514460294410126190821161115735537090607646506960334617699974375287323713102239890455215008683771912821467062284042414232073678898006575587772218168470236868835561413805626592337079217762016189575412787803368511296445639087558314548700005425883221490848029324877952550450432271895703650777869286882179385422591414130574569225544668152833814491031966142996286174379580675827350821205775023080161763322116234696744645499226488366879605818935463383118251503997071973970007971158118991649259709629219238072502456822284120620736581870693451181496813297201571903127052638569931897722332070675027261381624566565283148838169829211307249255877223379924120344520193355632239732743301313686871443937399137740490191620605645172114232798690040271024254743617355212798868718068088347089891507986856972153804603452091056374022797150519147246739869592117000173380109922406964287118278241867832575385061065769575903739205435719264534091747118621905828533551850496337959017569858598576239856399021070799065045692401414505672062996470064145815865533024601858631986529843779904595524015405746287350374264767279169272852998975735777895409249944265794628574237798412643563134144923915568711123797879578557921462832785866311283618690683174626232416430657228473004431539166940812084862741934465890497266511670174229270761409238377883739617604910550108396863327789646196004138689180703262302908568437260945984202697782568499657050766472745790713287497452381454066243820870658423737375575956141989519457887162635608779809772404975796954512660396782306997195346559535346259494176332740318126777010245065496096454242403922901837328787734646490271930823204151721992249303616480961803346160636883950009915151374623124665037273276274144776090450504471290337950306363387478967574932771109181777790220530526710790513042349177140808179394903680919527723816242519418173506569706401024505442856062449848259190182314976216774291161893951977004926048454418991251326658580750344226800683193369129847645940806090663316106619738387424885773094742818510383915533190297553158097183545403920313291369990081534621133089782337982622477015760207569770806631636086761290865322245631257292236470908413644711722840167002320563493701056629441757480407868769628851666445130567760821210462623377012719970757115928713409285316200671010220723640118607197911646005309233820962919704464942109071379255343813408286964898249314902328311049252312594032314544202289263071502721023939311252202974332982137587815777491990988449268092213513295125728806551328939142055114648188197145211601562668561925256963894439757450392141565532517035118892415880992814984895027240843626678053282944644546219800352102365416913778430467707084736074312596017686374100419971126821087782371111070833273870039946019110582623212189101604020863557842958440568038704851695335807773982412689037125247282208359938388621772468769686059926286917389162898276343513174809355291506507900088028903246760085156826478536615054675990231643383143591278171484300695178886942569436309886691502607619165562806838934299512303274190782759399306178754274792090907873940892610232852424868403429690458807909662391685069307467502047760678390198412335313364893056904155745779396075600599738788507781240482526515715867949489875527142377374173606778839449672937578846065017916022527358078674263326587896251728736379801734575398533488669404107052914978416515783218369533375550853653860509536795795137203713449443635632708252140170999059433381514006168834484027453706562104501442587711283232823571237148156027521622316915413920256074914943446974900566003858535026543892669567280353900433656196786806384140217568155238621891772696044541561424789528458458521405543159762744001772093861888300693459032534635112345720364630091004823281154942412247076193113043001221083755504476513754716087352420950165331160322489069926054442490188525289760740846082730655261027098803438362737279337525611638823492964835811702498930973407307302303950577559714930178786473404288258362675100408987112965622342222944185903316148042953895374860238364687434659726820591455451042666943922402233881785783312141190839327837428521088604831047902524360544052057909727009577421595788456902008656407586405668042066476899855726017397233129961336119110229519353859678274137735484936917598528269243417074384211740233769122131001910975961576950303462148080876537830390605198438030935597854416245560335452563141075257514122872369029277213402921678999742972415458278008860206492046181555480182514785488725229346663641615857268755020204551200902784918585975578977009868564336748620732411087905908297110549409475843452557944104510786063520105648449868319946721682854883302576624530156632250068175245131509501688986301421016285918232377285024344882293490680281645137628751280290188062249086201560277952463091869278662584776281570116789242376030891051138856046813216153725708326954675778359638257174135634798190021970168701102973710757210659088968397389674990640750384696153979315608700932759588425041474817470137904125640088495848604246751568495410217857541798134380492013665624733433550885840819071591145350857066196158266372599229324788243529277783952843917357885717436847265143594000784281843541396724872927721309745524220362480078849718155987971933537758370829923668215303066921815980011135882950892185890599109316422959331932586618552492258903720226406372179593085273923054995834275315030724702669348755485849773417824063768105973160981446583017890247811812099097879657754866047554226130077241633943863352096767528776136356051846959241648781533634507619064805229449457161731120141223486255280583562425685236006115798746935872062120703495662623915264617734494439995763047514433897004954034620828782383997783944959420034325158739686327199598979211369285141802317804434100407306077522391248293027594534889018375552466229245733468367393364827767819134257381252948937035349372272453163899187567519761305887717525589389373282877538572292283150910325897843803583801953573651712717986734949547402479491628655703160727894597246267598584590395850208762021175406003333932605461316798554017871955182987764628736230498043689587603823572953220382812967205924074619869106769246612088743251102654500351754142740678290775330606108878911289832935148992174941739341142960864787493806612290541940914524817236066139439901641099012935863218675654019103217471535897158168346515928899331821374232975446403863999831408974939402179313384970887207355071726725624853507057670872965151384057531309509099518664356234034948014206303319794939413082702977918555000835472218071708286417190779817390311441824873947424047810459032396087588458628877036863224153343627487896470698271163212663331482468184203410014841079929391777011629662759049710558894771978729900193250535181599612387928790556657522885519707340757265257292412603480895294108287309111902628876582219354155823841736741889187652490014767638638694334654803570558429646005383338340101367907141219810734483887023340141019033920283724592876140354734509982634778985547392500142998004803248364428993599065631952674003381118315642622545209432849266463779641379645324568291618035382185155500627470962571255037449660871330825780600052456780041167968979840828489359573482835811522961336610138669197264541836270515577052106761399478273481072138007682256922003531544857418114193840479988465325384245064646447828820830460176419423252927154094948453275442258060263810479064780418304235164325486333528702543403435198387553455820252037139297079357482156903990671863389231921109855872885264564167050034072593485595352859375004086988150053886505355662382725545531864365229483229922353444720078082299669832165834094631445191074642164468219109754937977853330602333830181432215385386070985278780335503495842767547483897189947698885327503059359215841368873885300678883699092122288802722093069195080958096993245744401555741803446708272355040867699035701728074980164886094332734143846556521166923997878291545129849379132564289127630981556900032671682448404103806900717496847857706690204271138389682865260792535642893171442936842784405527515492067277462110162759782304093188432286590792476434051512078964003878044928010396735471487528519437843960478896766750936932172618117149694131420967214914968902940282560248355773768336565067408208499231642530039994873552679667275404889582664578318869961184034821142778041489099023160674699883176701331656813253406455336002016471569359967190622125588861654166141209292027723367805960506339989780385128729731883708978602106590348302346621565100558284045655273463405346751225972774568963962240128475013849777587752237625624297395235076210757469365577536852161208292816046686106585810650513966713134439105197074361827791746634335008589411460169407197014943609529493280100174140078360939600265704816710027482541726348751153371608553120944462026296639015645326441179122300537331439589168245938059980110149024054023664657259686276287792891998141979986844344939675072137151508597158134164861091259476781485904675889145698319451879675125055367602323786419814009592393231454317432127963240220269042872080438028550796600182405792909920949247894186729591250371798776697584910601503237946450288754729279863411008640069234703245865998049218463305267075487063083556743713434673568361371030060461965865615958161153607304575500483142699633668381414554379830856907503761876314976436949686136651157422395892708594584033891631222249988998119425363163213387689991827004158789483642362270552658399243374405640272710613057856343697604127900064356085768722989007352706166511667162637316004611799125695569934817498562955912797639141867126689043386853804124610071021544384862932615715657035310916566137153800612013020332216228212715037276940738306778079030800158237283331371117113097529099535571635279199728764517189593058929117741062243905316720677192493458358316113101089014651965384325906157794303290440201532650675175426165088608196219045819848548225469056489581506960361070887574285822331885065558403546286968937681723205488479774398774314690983941930188322992597847514551198717979785563703537657536493566453293882306739676862280672623005033019740417041820440628111822942958411966892393175993172939830698048092259445154256401100606362898094973864721300812838241952853428345196232872437932591507457393726334717588048021090118923681614148931604579274738479106134187343018818721565751709580857479924047960599394360508148839469759685805823425157216372084449023330031245254591003528207718459846557073664980280645364611704678992614789533151426682443373388236760438860186696877580385161674449509018307367950450860794629803292147325825697717073877923219542897078031887730754963403377707756382605105328294698184060308487306324268528258862844043719277363997857574787271583321981670283528059054886209485345843970616795752114711056949002756099172273853655193793175158823042959399021553601868836465247455128335730506588754686767672715414176640424020135786887657014403917078210878886525467604513224382212606272872503981523982622769796262024420581930206529179606235687237153817393082925823263239621197292121571662682909251085797640590941321746999320148921533199918440902878380998199626377648415248332957709412981585038278004260353685547466653323559412688738612912580814008956816151540097310509717254382298899489971969547521632439548084221574323889655923827264346878380455681638329788654945244644106832497606174889024449921721535812239897921404639013489528209518033710156971541350025735734727992452936727200104454526429380460721552394466151494709360995568353928379484064910802717990621596072309413964854094705426205155660677734630811517172674794356475037213535566072950831288910591132285407644770145368409021732322945364770612737662048958454617263713309007715206396827895576733858178069828091504539563612382903915150102609442805059153882474428404888056690483303881100044725144209135783389898846429568439503953491352645248766144096442720559876129072745636506040490849662108321480403157259430887307154701502571466657574893610453262746868366191164600708386950379977129218482223168592920085535470388243669608587199810306683078928852102362722833630343547710610046650746164261605479556071947265903850789423405515887937114629663136011066668421106907395444474490381507023185360159552496603814488935346042350665069821499527848455778825825015376831723330476644632924804873768428292045520687311564532732713964741988695267655086161525787070886137076195124111424191287111820236409099825960013601642262251280183233177231061526761469765955300160208375683137933523072268331231141305314519308154561783930746645166011392979338369652802575613397411676333084285487210020345424344024720045160037007277311301309929133557844228460937087368401268562925044643836252364433402414232935800325046375114958119261654141488813423008989124254741753743033858859230488217569024846249418049010483700961700138886401626306564216289480685831197520337867899727704667689795377148030124200620884926219496716616439562135715776697601433685503560305090145539680825052252311299193608344932444893464988075092849403545321443860863604427463681323904356362081546045012792527360737316560653270235246186025927299355894873872750927519445324741354958605914427322481242073117008243830928453205802453604880881679996953512107487292015279596376935940770159984254119601366470414720473856816040787951236310511242234804764720880242447601324316200725249957728384236202835307831118957931797104704639188080241772822883947575084073718410970488333259676740732231291045179648660859951952819482186023096535858058863260379832364742162035237864893759737591263971245885298524390976179940494380989838652050228110652798594187124656026477700809982718050349660991618497825414861595178579050963085101017764599664170947066312478636494845607862990795591366034593328964750554792689962452133287951629256609755374251496549839714504857334422113517377691539890012974146514365616043662814905574896123594389810743828396625884299942026155127171041207444710067857007830104695474403270987272382119778849288652612755468000135721433479323477020499606884369504339060427566896705644961053581655232482846788026277673245299198078803839625307094591672270300165447219040897303654687574058067051854043918322746307644695684597271680148657671022675497221120818746716927916799015571747384078616948296714974117910806076522705777266369354695131603302876236990684858430784115510560121822559912429476606968759666451466502333943680077762163216141085084490742315894065451955699898137207380613659778281517742004430003225280568316996436531268333085463583639091224268369596386274023180788055773162305696467670794584429814953117580550593866965005897476198666251428720303752461978471882529300855786896149914757096675068387803419646814631938034683699594427508183828554929048583897162528905954178950025458372243157580965206763396486775956584663838552545793714156414282590452339407958813202477042190240173418477458355087262005490338772848386961832675788041119186403793002745823934296803305663241820017916059626429953258254514602572690932015082506361101414525879307788353901162749980477576897825483198647397778430222613872568172711636263052673593213875138369566532586961322869397767105538347451347918452555809181658646065507251514629184165413133724212827035118922017010531942955901890689134988283975212897069915811449050728046848881651068688181998940041872560769561434688831296151732801521724086400023931941058085088266427258632803845019400987250752476717800225201466289995298826856553949034014999641938293473266721505929527773244424605936404461277042245278248885304650720199670530782206633295332340906917176357259161484804993991907018058981198088574461867702167020920047726462732320564927735652539259347609246185092783139735032235401061380579836876953166764036494006629406195148943097935674985773076107925108969782794210861909870076623042908363680426633759485567846820088910442088143044844652228867761646726688531709422528367625611829156738715976706844765276415187292646203739709198303646594479415988002328001230224960310258150146206026861653644866979470460668587871547147163742831080243931477787369120768198344536170134806372011703083170568979707387231147058750115121510371804521744875999946426995526467872262737675552846671653745152235433112632540899268350943297653429656209215726101619845302184906214721205133235164514124423817481307962738446873717524222598352206488192793393400853790638298769012993934367582934275900749524932207934687759587439526315227662929079612598425311248510463727316871524636696198970362805504500013713323471500651956652685367263936258097323379629915469148542825873095591742583595475640942781039527496631505833443486548408371171926673193762703876149167213903029656669067359479427602975283256370873635976881641150036478314444651652612095516499957060297514211325092200595959028866764446691414342286845017286435509295216430827934063132445376338334443546204376665247858668502899320674587199128071718455051148636055228603449319870199025437498352998751359374434981666055550587983536070108369908913151671909038873154677105072308610498359614572972653558552106282620224481825660465000897829478306935648493585830532307343903105771908427081907421844318181567917296753310633745366683534021214519732200526308336266750322619094131391022743629401283206707895862901398938917823537060683052700852028575330008413090357239622660909992280276480250155857044600643969785980994630162414016482417384069084465078145747871672331228681484992026772695438500508231314454813793079022176333604327209775739613861845859607338711928492395538612765690612102789917729575804153657179032635999128662910134243441244120886829812887022142732244013186837591650696919433881670322126067268615080183979321069697983205667193572428517785331860917624595106230737201116684804172325803980992080648705265732640165533787177261521889181992151976115346335215246046547723809403737674523813866598214671140344251927922661761454217275444592294284422347475821831625705926361305377464441533044541511518164738125711158848519718814672878112942560947847752153942641651686578650365980631150342529243477887860484072706557454362481414485466693410372418361788078732000259331111050539676844745055418093142712566022710059498119064956294294685316095845227714443608456631041305151330688936866019703554288843024045146577180974474649136985219532397238268728226094550009796188077386097970070013714685173793897669133948171561703420797869989674863953624869544323799875367878584992377482961271505300509549273591700062334381879903639267776364517103126283265362964690871526609689697392093894423873273851508645006614682459961965860887909460947543610213577157100066363875115569161744232962937776171690976439789895194665081559794224989141444110301229022713419086704568161166747614981360966250180468930560343077115264851821214557674992563482006986009693941909635517569517191335026854175509354241027905643063501212165593071414125015291183805375644652760039247832412339432366246816110034758690500510072199810959989323390455592480336733895892797278046968317429455778951414572403805128963697234738192964325855437948821631167283357610755493365309498370061767401956517663573695732577311015263690543772364229060512381443960804671096101714023765598741546881883392290188418633697924012198375059399438150062011024813474887841115879898020774459004400797920433558849434811192290541780308732502833077402118127210628436098090916144973081487027422509186675478772701901111482201074966236437090220985529587001856547590942208129634256093929032785343586760294457337222280946535284173622257941561470134534711512363181950820271087958241910357170333452243484232937278259342899848842048702881333368786413402250430756420155580888074770842350415441440807205141654671113064055142568956753492689217672841948013991182178173746672022661139286912190311932044464999916525283989986084537129038105271988230910961891605369078058511159762919671273456839560813253769599179323754592377219402171916960173877247736580407233602562163981910747457436423458280397797305001135068839718649795962312223558982156352162523388178706375695783386892539309211561926966490341011989241837439887429580563332961886077620195041551177465522676094252382377351567270017909436569149633357530952351036257679099953862929551554903993246061473833700242367561091183771816519252932915485097603037915833821599401694703918569491808861418116620767680351783053491321633100793376082353119957567768623634831171716922838665142245891913460158184073545325612103334862775033816389795669483184497623344850787547462699769592563915776174153062519093056916001756330583755830251771972465299095550128158588126802542036319784055854311751130825071848111907565767102785252919619804782736724448718437368748589527072427729101715028373189524876643127889668862175059212345080298089934203603474500876369590438024400793023331877259674098785139310238860246120041392030003833165746978333159973270270886068990961304597289858227627761308979764325916970272823807380721031602089522172824631599261271773607634631444502113212609682229904523636276134045184993781051808177027655581000979617333767786895718541517197061126168264916078356226224970199067139959916593990609891210065126611867344568408165354409624187960470347376806452656882211957627538015819575257099718411949146848504927416489845661896733167032460507160767414792634564376631187122320974655663760803827094228737517382016006826307849585516552234896064123543318605465357110779829687272865872661479461846648875015774841542225340542193730997021659057656167201578446729162994401533605145595420186652251418977800787819946509871905350038636420245181200080119354464195598076952534042024240242817144520649741427118015587939258149323281631856790078276897061631878163473594392578425663080685648153662704664999994868538216573544957498687115297860598224731915311295189388203238997217466298365066649782863410481526122616765094607193800222764311910693330118078077438343189007970394175196201686867121684296478427419999997332968421109443936059913983079349767337014867095935684143373076212169684423062332887161432765028550573067979358131889484600708991248603121807593363496910097432152579313417422272497139191648183446972655069380404434299129418436054789934583132644497723497674310933841963735227619918552498861854055925109120538774581288352608953930853249395409874197872106082700487658388071638682083635586597572343390261121350449649619025217001793191499089516960206620582591006059377735429040453784779693202804902634180582525438681199954573354701285067109574135147891178176760553571756788296711179027599225252683453511160163353098134128133202649071863260402237549731335785138019784777523738714536905278965160714737575041111437229271323131143788667200890971232376333859398725450244704872249586013004049700099502590510519812208858498199021328500453232684001033621013055758563314340090402561422673373524041944160263427047622864629416323934269893733171470438076435494693277468692384980008974040640927224721577386341708515177449561080511025334777325126686086575065600302800829642956555671832702364173508264157106608072505075057133030417126200637769921835843803157338343226489537024467123542280208228754204707795313379083045303606753704448273489055086636883957076287939396222564978515047866810754184431670361871244036309980459997243486555496583592276628414130253476882517385747330308923117394345054375604882691027482456300272088024025492423967710230038461384173624301184462756043782546594046110384740303028713818328390067036059497655962682006981387188801039350477055641800663432843409701658922494501910651777208963508081730922152510403056800816422753774644943087354287272246594640736341552534197720424630877848777296946352605380596127510079967477036235184774087338683537837767463114154370135093541170514188192339234333877234677597117548541812058120662803992633932119353443709746943684966205312862227755172544214083204418761309958638083923964665010292904877097019636520697003049363423279303986973088977673047347226002808999317373021596968035581382928871432373239297389705858312408525659007735518487198654092272576225125368735157459498302136379156385847258922525054883995969474455663943874917163921522050647882280889453169899302379223532601560419680834928738534488781824224244849936586375709966671313551157563009386527178033883937601188930057021631618084390875102230451964433688760439050696554220152940610715534528100600492936113008350420959130283065906497159288380551262438562365541525994582588647661469954482969115508274179489791646723256255054040077590455336461108375644954491206520972134778282110240994844654351826760077649165235127879840881203067781204102641223780648557247336779024279654634752431345673685305463195012209215670028004485776423954024370988687225816871517207493470254673823206290571359087772597424451024903226389654767012672032284795539022160307954314550284787863900919732809541813825907450695367130343416980069656631898384063174057792937211900958021129447084083286405774778154552741194889260926153013353867989518554661182345628389718732191256064837198664813916405443103774834753450721225012933265169701042911809768056710085767460334711275770835305791511983782300933194570739496686219336866256521252916004153269355509397571899067966572404685323853315788024978944599729442742099373176678169377505977507505604863519195969913207350358015944929318007892381915448472706399238103209069640260773742912412643810492356640464808132384209991139988466112758602132714437607332548080689311819739719261974875217175277838076340611727762140811960667610856909992936388665335585697616933092587681593061429856907202535289909724417294948251971805651208024981977187321324355723587076146426171622595054018573328492890283585018649935546977246729312195149408793955820641697818692004190840101373501306186078130603627933089697219431803027804129993429599407040410572631720346777446030009862875447777860573023264513385041135645643443525166917300090747828451398470486446897268938686457457945157432959256938319496442860521525660930807084473862295288091979396947801741905785254261867537244432837755796951648518206688535578683610321128219941261859652788444580132350425240387624979311577469630380533415139259985025097768104403479921354378435163514401813503132084468770239045731293910622140788170603897455205525611409187118392702810882644727099769636493477950514627511279757948952975158064942605102476397875094447011158735492491723828049741629980805714433230928716908321053339824669785285801312499784184650580736466144213425394709527047413197780732107212446314925265271677655720572411726476829050960292640230972283368802190045448482790761110234861524669569917923412691989119075553693658702494308217850155120025296079016322731424514027744058535753220651658426496207422949849294329318338884408853134443213327769815171111455154595189134653633711788584419690201530558849270419091692469556662489091259083305347538803217145731100307084537121188685117605346473640105249671284158822154312548640694543794372452787365486310322844572047334925361635690237567103612453834057363820846765240775568096669550553616603138214558008082450243781511393533923578239926848262636418095213243651660053505005504362177280255381778674218699698853608561319570706449699668445654453528293071543322770261865575222476238199227763499410550425248387715402666503565735384271807403296261913609603829798937737670505976057694007475911212389587509230207234533800084065122647324010454249774482544879778951771540899857420213475372722959070504832387649425841712480278717038667059861988055027642810526816009019335329501401137672780615412839588387933776711447215157173841516626960402809674735715019677975714291010834437185649296648687426271366243256898150549929691736595011716596470856326247903396849200437028084249001873061604025050660767680736216746108450026211392986421303062916123019317106380315190445829198865982269482065944355699857081666336776118923729404900384006203608990875007486998348535331812492667679242970690970147276058592178186798135516980465298544214638058209153537465376381029557328586275060060234996266797860187487310918778472568285530066351892674576021940765031775805721765689577289176221816980789629720556668799965309848593670904039211284774584394648086756861806438582259510051621756915560662087947509268744339857981312220945662123382071413733548167030594391502487998938300529951553511636863279466134727743529884525198753402219433029032018323017953084702393697353567919295320072833570494272700971629619267215157053144401955754195064579181042078871702743698839858835770796332993387103658310296858653537389897513983537495967758416554734876370365493166903292741542054726815268187712634881777501608065692086910005921596298940945700932936069598308405524451749382839119060647695214929241940620393279495248737112385399192563403311421776521545982734236146246300066318527727280249462475348619341583503017956384619031696719273618008224601154937462288433372811790862958035085468367202940152030128233655013038242809398621398114035796521015037517303155855721194836179188959738141771534282999605448507148720644627097774698772271337805984453151805935159026477207493824548038313360471134291800481888771294290642053951953414226358091895909912841723730969565196568453283607147020806943635523271692059320230819206394486098493485299452813146433655729754223590964567117302273260092537840495921367731749738781852665098927199160549599486856216816924234081811409904986044681341279510318860997326201466982002785115968172148788819836355380305239648741024454645069393462407342067831896864225682319740458459340782423118808870417451619642590615683915937419813806020749947843112290462233980160624182293655950434792602365387189444449889321138107106761864034871809983920812253318182226690544344224585880944812822112423467676493468466646168280358745061037007341062436257979199100756617957699539141608547817722864368278005531157210399818317677136842353516568703055013760816305043590242517543705320231638723203083752748130940186838692605288628384116859879668330912426370175716359793717785746044463380195056746136862923302662431048517564665717436926805593862596116929786324458783505426250056820589217446111020523540890323944602881163114540927330457724130357705559477027161661540818845374932443146807333277151520726482690574263497117691900732978526534389460610254829032945182226230752811040649506945946280336494785397692746817291297192741324210145184717520129241698197581992755652032057559544835272671483210417599381698560847126070925971950394372718984425997206487492317685749479912909322619111249777270686877707496500180877120282824612382746920039119016379016905749617999200423671048664465767354146230664486876150657957111179508358199521740168729363230110768996814463710518344461420206297480340585562843851150457045360865457125745847611062944899922906318280061342303733984109596974206809200115461311212678024217145934959846802724470504339996922392072252143966139200264559704146581196097311258221185829018909125384289466439809126589237979635246349313939767643995637983899686771111626506362610071214665645979521106030649212219934037027855222631587753558089457639612993508559931759050448596342320620260161134353279638577134821944434018608153750461845702689022142284296714264153440933146203592111244786150812048900871819332597178689368188591603045881776884151690944041084624112505055242953624307519038836457345770820482271117688461763714831704310125169783906254195502898934866836473108786940289079298394730443518976466391315890082697185611525240807519539136159774876016850470702364423819509991220708204790234227401309906024722522611319157245337477279695207715318595221942496241794100462242080998155353467380961891745862209746901091423299250323664071978249243657742897347934818765257425958219589270097580919160342321292927066898557642816140883845473120236323947129219229627867176609912706037828338841714625367811624725865070843039931860650383228349740179001251820704052234630024772189681001448899104839133708614014614994395055613104124584634532182307945624036983244528760981622227754154722299967936338448831203446968121648455774683061702189706279410206041827358445550311730224379768206407306192530354549551084639376813366574650237919683626807982006721260285995146671509571299714670872644099162932948951651041025352616662454879699080894528189175721361383223416651029873677343749724214721726914015546434890861502743434412767853234778247836608267700195264807431670226509051746711745478495618982478876973958426468434599472640862561826064939416793684951755734651194795882873227274701401212884050722351068121370057303261118288244509194492707823720614783792693307479069790084974494390212661502139969116673830330018739464844218152060673919480307817581051650415494029651613693828079794325480016506764855146387263989795838090286429215804125050077179174161483420860459987543286434990021751243583882230928039608558703681241363017564822452953747537010493781104388135338732427816281633075624335481366433446437513307172195669186010171160739341253240286619586627612649799500087477625137707489919293597488233784837590412416748027556542114202626764535004539899513524397989215269657178413973241232024822005425239101433192020716311939817038848729016063490403088420485546038072555971460428619454812356535031377736172909798669119193339176694051134506750477310296400054383987276500758932520724191234100178781651569401985207206190583363432121145447183339197418521314750426506716994172745574176230426964508150727254913687958109391362949822742541680966358904638920863992641471992974798137003143575157422551344283085586053035975631624136945724660084615805669653762785105830517906785197518973989726895432369603706401698858978134087587339536845550651271900942973607061105032455314328562337189640427511668255813807756908465263199871757956022695811115251517574962313830681922331039205311682082974412511882473861090529145160157826152849914000057196555462134185111302192444870824089403694341770644520452564704622291682331838361098313313968445183379774113060310068961949292466507224897410484648405045733167219883987272460784805446817096771541983688884176825689034971810327503215901585720942297186247510404810343407569257492297038999734157216875387380261842556125299414040776386508868489778520475160201236222346503291834042492231286374693103365926757408306342157347152260504014937100199444071580662720993740743681125423177015044463920291156960555824811966185319848646876804490179308669808504561285820332444919721546411573324630801044933721214343748307781048061173093038392170234124963083913327291151761650795083151892739130410457113050486459313928082511159650257217439082785906395624862075322773433883018372701773402338171863977193949696841676680573601757325397809119666644317397135898688010565881665579566303748401209635012799675950331794107723595457444225614018856633015812669047284968359246045932210830342438354785121511008210188425220410443092813255064629601963209497420622325198246161439738992835280513266187017903420190894041889452772157332509109039133744597595427906385410080457534144065406529084162000025311436607667677246265400604831312939113552646974742184103481878261131312680008402789357564180723206581545849501413552006158294672574936431894975013925702593669869377379118963579225280862593998131386303025353529616019482811141987401279153409613580765909485973609310482423151854427168397177786964243192679362269413749742278619312396367118087159766646941941843109675538231277144232672480059458374578619879857624232680538486428961572281775490852543496360447284749102976053882801476904592205520401119840399202406525051390538622260992775723278111760430244219590590883249823741531671719352937690419430942147499482447706922841480015819525360756100091608377286050774357315820522349066571151020845425568448249070274492704174204552481616536473928044271637393323720502337862839324489489659201244076239144002184486445762424376448684066748457236016890341827994547102254970066661780301158826988813824398636376977226389518042207740020527179948314654111084078438583821212605528867725757391804089289055599856089526698880780287405336213361134216858119001615735171739199489259473121293609888042830034210177111786515288141299767517947394606763080207274623225367938860326768167461914645988726592975300849435287079647321994596412606731297767594808193783355738901028565992110365108891014257534311511341518401739239892101423353399527441153151747418615447266919255029359634138779421758949403063669031173143990861676394048852936877530442260755511617989589956126614885392530300670154412131135984191926480524304152116401283106207478963049054217917317886992056610816540198566831742452998693004352546655588431525407247094978578566507155407926229935090363938442529996129653869935846445190102654392494978161635010133532987972128035555556288665042282283416176692474321978580131000209681841634993276185396018934529434894639535066993872118187907081414975174308642623357442080453299574635211960379672880148663888963208191851595072463867492807871095751079761096544796898875107705389404093783878003072267015195969257994332335951588339718743726256321303058104642664788243699134298621345541527806643443492430558438077039188549917832428980750418147415202591416396329361772336273210655574273159701149987492436843748803336232058126449868964070248759769579527515261966265326739270971691386848326188236765818544542364601750002521513055156249808139446731278294358381865269827272429437405344192287186712521111625433863908752383461631150370878841115817962098819609940069120388015929624670872195508601785790219493223780118792132683109486935216649504470523331001175477111921184836405178821458699437769466455172035627954398757309855699526657918368714215906565710913041748457513226778088379692346848431971094092007654120866297148751210316759333462070472770700581562447322679642208485227669982688815405242657429951675387232406322848204103361383180852119522846573113647604835651227206947185392358152022489863174586697931310752057242308104881488000700359070683279734979441178800199760508944454274589538531718586757244028230821756519923838083344133586706634350658299064100087972984260540963824817110693122439968119973415375221087963876787809066681799218189421056411669122523426998268040947294614252278413577190313276853265718817809861026582519813810410065251896759714469698882109673760832220409348379217691247715402696643458801788009927800350367702755314264801902243659510922538213158745544618825457554541758476806772331934875504090581489899120135947513423436153327493992933208575667693111680540773246750491899712804481645858881453580742556890606177026912433876626738935427627385980337497293699498132899322416888482573671896027246009114335525168851559345411333956372278396855035800528430352336681179236359149162751977845934634821643614121002016329039172802819231469229101279947140023091808507756159630737498330335442552004153535960481576388665114749567786032338476755715874560275918646379016313558065499513493707773715155265127025056168181109974690949211948999801810588022524296308208561441596642171784278652046840616811541712407443561970877581721741757520135912661107089704329048479684466569369745931239846428644090782574327454340206697079030725138289394911190402673653991029139998397363453553161497780825896637392702882478506682969341755413789848670716079555480847166880316523696421926216793025520088593012549728020985098612751419690132020373275817261350095294808328619459084926108338106350271095184245495007690392750730895310665252837351166395458518599652018265477742712571622183810931177773796168136981272042936508794532083316007595293661701780345177488129849727803825413174508152916036165296656841448858578666763319143451652390635722451430834392519003150948725933047503261147607198287590231833799604831046545381030246487225843321512851415579872530421187398873064331299281563244577212332346821524205191782098127013639923066174895818883822236829680737697063970514511061311575489280552499070076990341146402346279833559704796337303199993983485284080791868633858035378804794993414979147880420094880016746306792311247972854031757764585381217540050349712491547033838083325041890979317943837660769184988904925542872480807614828619539584115663944111688328801823273631977563987050290024885050927135445266086448743267178258292399375950248192950877584822889752171282452038512961759887115134204543276394431180591363978199785939837652146924210754169454101683151646220859301531206240376562101687478077894051624245935828571485583122693749510436120720448894942172468896056246054116229190093108101780481926744492580257088823982450967642747246463614572320553271989506523926448589044082973918218239125580121045729466326116821015693637401677112760916281179548559717070645467674198902859357587681263011927191574853904737891904634244119728977371136038923656825900056002079571708022082565059803141524033627411619121140469861661328691066056481729511908765625157617696782568148073981140847059979732484969348563569745592319670876173102328375502834800393335086072912572807636510778583345403547108864027411035918367469415852407505938665319480662786797331702007672010173557552165378044799422237482843121000491130573096669789017851685093920837751815182733344860368009669537866478916329020491488554655193063078934306834655002593349289574815032396965660187692499954485088506301364400528333859469790455598315636238522466000819762710567605534742910105072916759052043263758887573292895734766022960437911796338159781986623031222203656839096915907026538742484519275548649752290460993673502695004952746797587120122911194721991633323189630502317085533537493535312066406664270429581920001882636356946060493362713871401855306278087588382997133416502751649879030024564596300791191932524206468157563291343682356348501356266297524585547547110289112531966171738479306519347690088274149464730628424160540453020234299228255034345919905151370031368039647169066734172154245393496947910950138452355113563054420381257263938590515044568263753495677747286551437386130569728819850401241300722481074376169351044188882771002663537017661904814262801079987794132571629375549755964736940588529721111646016119113466608136270084240970015790528544005862365106990560606056269480100541126372038000086944290847968318685008628318588158359011428865657847302680252900070880329192555314147166883365980306199780428736582603020819740458530425500885640870149965317937053901239768381155183988243273456144448777620705830261456081146128437650844427426453213033510292412555651519985407155954584219071699567917924658031673631042731666881238766535362109144301293670178860288690849233271393603757362243635359319120105206273460766007292496267484537116831882115859142054949807523492842192370349653559718370481433862937362852083986643838020106046607503714280936619167916775774751008540814146615791642272907505362300173244318760228138610655579397747288314303761654211736013395613861215981932159704237837360172129034979805134529731136372983174081489116614410926339220731030851494703864951238213334371261870514996241590476852248500624584850500043068762393594857164641747769094913491348088267967992890961384545155625776091996843635023266685808174459285407101757080081760656012559509624568980275347313387214269226976733997620277009681466242525352313957374559629742718574104696813652996238509244348542805322579920895702964051645327986003135704097395729087311034397901847173348676349035789640344937918715644594521580161386729423653182712692052694978441178918940587674426666644498326505019995086838370460342312599716646516049569719556752324673552042408964627267296416891177066076338077039276094007716133525361995273012047165595065329824646532467372692235405854344979094387629902455362405820938405375844742915141906341422355047258406407391989289137847292830518397502024848633556977654942741706243238031207195303934460598552971189744300651588411383424542029361492136412954246955729408584386882174487470071491631062647150427661735565882439124594146043524333678459979306012229272524257258771988789813584345547536022723615681920062538184811937662609777062689131434403043733803920597373919431641517282331352691307676469313760483242799246444521288732641584305164935370408731213446366138870944945392311816358034600383345918865441544518367549858833615895206480542431980010434172865960361210556663679821080725753739053923513859923486261001418480053493085177090819618777898783393496842890700905130657038144480247906586176988275765471066250593185399336565587122977237539492991756068599888877088736306449717422231320133450911720363987291104051830499289324857612171049607267122398045491268673856144383729294169927915224831677905014645613507011424752868211948218441932127339990975678936650058335346805827993302383198514976440762046975043446668281534524871060436525241416520259451827553400965953954180819711442891913516081651750924367533531356847294464642803491418781413188005481467582964639629863407212639384732894751483551485459289218705663797688775770152183655380004574119967856579085624804058271505282885505460480938594173551883263122839453026181534398633431130625365243633822168071325596564838124534691551024124222937072276036277624817972201765009177758328959680907449837120722457903286626495592749213041873078311090916519794645792620995542734444041587527228424970816175255043105227740036050431705831303757454178277251695110712046390716733638943476423783457212251341233982721340580154437098486410206333068788251820353245492992400923956466025201799244182287494655791602912662228934949298800089352173249104805396696141235573131095749404161092889799064861107470619167835765695358578494506348426804394268462120103481709178077406985052889097436343429454060803861204161933476722314238419098574912438964370009776378254648126254581929139910479283091514101227479894413370762446822633641983786137299997334117839245046277444639984346829856926539810305886959532675968224781511828416597757700621568055303586106189292720748447772031319930192148950415209251752777256772439328053361619876057918871428898458986222926384985619914415535048674191866316932563259590049514115300141762268362948872215972483384765680087745258688796628180581576801050342987002592568139476662415241672999937589832381587357442185389436105904132141621079099518192432302571523778633761876798073454501480145067956577666572326594815111610410779403906110062237732718423438571876816341231774243351669656490855400052376599325223075200508461003100486226883286446966743017570128142989578589123887972225261993670964739159951319732289422298961036287391695713305843228812118911392224165389324447642562491206103632032862031854887540638959434478304159439831538089296141014844895805133647573870304816759695720337097501395297633084597108104194412358343250893609858125128533307781436370605768270974017757509777266504148085001994851236846883542984158122024403986698393046448228654091662186225706588665331845109201848956386183449883790307197619198913857333021407054313761924302195605057697519562574117065445033815400039222865907793547345671577924870508971141328648337993313299187221697417780884804541398349986802070944797602006377973269714258767616009449697357966650052600809372295044246519812475473082161726414912292765560317757073841197549948541190813547604656253170403519370752248291920248723838819249037181273360334347753141428284441514582058087088213703709818616317340946415889872193724782256309335503999803358163794094891175410476587512561587825941261228364113970643980957870972459205493977560445328061809200899150824838860904017409045330389376868971835315130451790643982142975916753473233800296854041936721450821024347642433010336047269638092175846900992619378168746910312937100693267873100613219234380364132337047000090493896562913330159588404756282179775931660475442257645464328522136149083879505486257598472689248738183368975205882644765738320457542299599088094950631670380246388693078723203984738905990036412367408906396403325808754881677485506663545090804232104412099827729784403449541384748215724422295879381386414805661795203641497092131971534396994640544084585436552498491178188714282856949053041073877506506321349587207625222043596488980978398108347843440543558228957597753721292213399304008877171130283770766335471911594504454092625547855411180229740109600279360347539790307217987607485575443839604238917400655038902051534938090364558417370020655230326803045657583071311981241324982214804352494129975141632582622696041216347515645452885249342208477883455361279828508898547291676052395603446428414227655986252395975276497419966577799983164593843970059357734609185652840259169748204563047175509476290173948049693516839346521071292159481613003097432821685330282238813566990889788145865212823240104283627016654913696009707617067348520399718433867171178301005110904374517650536578360578281312681749744336293690982137314896465516253640479764259786368140495966745450530327700061841235661499688353345580015830847637936131978668621034312124684841543385155413889541960209173991491702390371993833307080404024342346561368134155752167323303530584128610987828152446802453387727765922201361314761788230579591577678507478458214987978595222105699312332555310433180873423109804263658708816052382662654010761486165344823175123609559763028853704948438947280310782696448851300883684789865335957090483077629581380772999825335417907845117958557475486655902178045485181041773158127234623218288886501187657301224273220793681068886447247038302985736997240663495474978256026142468531759586637755617827119359434660203902429421995146915932907512863778149853488193813278115722735949445107096799547652896286559756632733009354089660953923910060442189059393107653430773107348175281254047268209456244285204454644661911839255490223358382884434656963596297861632265546719974896210608058192608854773690093292073909587428830730957309898955717074218892855904548017928809502128139723992807630287557502896848662301553134205808464015338715585137110512261452359808730710324736590678019739433941750569356175972180612599494498180519503342733109295131764624305922217043206775754194418263366348692715157691151174146296528097708547917278929838635433172409436020676736676191280101296297317869860575205733126310053478877654730658032747783477043490247027288504565821156432093701050825649543805250324948012440155147358039022333328365373312200237960105305588610766994683789597763046023825063647532959400069363639353580710491375379541822691101944795461169949409007813955216684693104718268219553582745746483289228704792878293007779669703616404781851070947666660867785629285380424324552982880592815384781335873091744648436265188261674269844217468620286793207802561562532659715560814452052483744701787783663701458836154221408497778112604185386715944094956425734071459982688424327917342993236724777482774093466182085613025474167118584252131888625863055497377036483544007390754080756066473292636604491100720588504736921321165694754103042536596613349075959755245491670841687898600915099095275802599302817815553418035807098875542794675291559480046200271022307012248254272958046211246629529886248212145734592117936520587592552057846543764829349767447471664628033045320548996230126569189705693407884247992360821708594406052107937729035297945934313380171851548311999100067823975879232917513162973117375127314975421457158607037735958434039375221672303426304121037461234655929570213382390268139376941744947528468527545584085488904961376475544343714647034308813945614531590455319032449254140947495568290264488548400307620225349109775635188233080931841308229410313722733041105483369148951630244677775147698274841600383229150524338720946414474308909222766906591428043346322717774765208045481021334476090452539631924975853528121558797075704024625147784161852454773389860524279492116597271874662800876652799039390969246161408432075909768825673877019000944205619496006732425721612350285349307894501793026473579398872474162579332203728432362479046600500626091812119277068196068794001916030330631906196050130765648102675767395912714097235918713484079074106521077085762953474857817955472404216667304736500108430537286199918169795607419127836671426959085797196453066349886362013543044208512566537303929187710039520698529981322933957109701339909223996252360967534152951584335733847073017977589497347158052330426136905079118123787038714854938431627251983316091168090189309365934592651082026623021826022073608607523877684806614519923552488366508791947118940469767549814732621747677457243157260881216177684215783332812550279298151629403177036199874137219463403090330227642866483232591913810311270732455185316722522564022647396293861673470664261665280209783970146938023033590104966826056328097991638033552197199979340559766332164342451797161964757525737730433869301143175661795728268416603252731840867063958096011272168257186444202768628697859214195119815082134352055198011986231331888388294438017214517498425258628235194519717556756038477719284628882101399743666226538818493034654938180568719517457036833772602679765118768641923984007865078954384404279510413004293318131779599076737277702318815834588213982332736027959104895372487468229133374625728865048229535559358657813182086411860284738880446202561450223911794349034270360759446281088847912627790345725969772204362633458529196706625825490977701806430423513334652139226561842893289783820461824395738102215830841791080806048084101293926877045234229604694994044251947986089840828572724172047517121247215480779271168335828682663937217858092494417921139629636734742204054156395552492822460375100198196930804836622490303814980305924655495380065277504528368620507169744119563303731521184127652469846148320537410518168724058279998512326337247019796042184783876365521954952856837757043490936472813032252823423378344969759186507522358535415656232740657445059785442204460909651275835931301159052661391038669671835894640378854043937245167491463977574996144960959104758037930831868131748875709194192741630029071043446665312711936669272773824017111114453920490802216093042215668822353455936836698974546697829567213060295700064147492942110438239928841295656098769518998487594222428066076450271808121166902075599114477163002300937788677808605859072910180056863341445282330998554322850134235831954396468938180469065155228654644965743626694466069454268510270768586339988027703763329335416974470659092793597398641574374555513655689410178253864236817280921920149593097993978009826810977465206243041320633812644066050812806314759848506153645777977081983081670318088177019340498814796531392200002680357029144005163131553089519345734118563908768448946566396632705176331815983441406960778410346037891986063242833653743055010048068691157746907130313676988622080438975983137258049654878781072767481024439931522237170814722500381697731066171131830631976773534708361582680258166313441662675478987441973048962419465731303619629440729805870499088720954063544797224360423937485275038466943952949580729988299881261929619280126721879654670161954760526505674597915296009316520064178969056861552074591648916403960645094414646368055466636338064937443885298580966446557505612253959535140840457412788639150072362789582877262119263019679983683315737545305067822679626094882452866194908328119264570144674459523331712705083640279487489836380854775441471338806174369530666603481664099995361381522411684124091953107519005746450168596735553874139817946576127472169384491984063973415681419610479901596238879219362901715116843922414518974683232589202309763855787321554365752135353416310342977942119901308995845177041684800527565474438591976052476351434246449611204803337220626866794726695175207932857352795821379749211891847166094977937045647285048660019403477370303417860263317111486035859960200330008511731159380546598835421597973310037572007356013428403790256827826313544789412390604434670074217965603230781988129208760338392852699986855996348541166518854100535514142947550991995189728452901068340398892376539305013788734468433020482206501785528644590840669559140308079271476147508643827160697993393249497146191963820454160148408855174613893656692830669485486187362163627987260923195547595489860847678065017786586431971210153578654357918388946780991109636838202880873822022288472140019631654009698217468220471467789743599927165721093107733398250179725124785224568840578300962535499413463148366516465281238932380536884936755889435494383573532844357067771592732796778708285555483575521388745734986347482593306366413092625427456244994667474026928098858397374154773596091336473695917253289167719335975553073711372048940551394914253821268799620556028690661630773000183276998011644700109524699112490805178351567249067074640930073598556030648809543005397866494326090838985935327811269545681880653088424520331369725375980693895272855305415437978049210561061724534981072806919480415357859885279669798422038522719100638319558484064988093984703896119749530349918606936890649957913854459837494364363793045354660138801968283045259076908686392916230703602603524244431304888669358307697919166308683509192135860445014327644539375873747681770462783590460729410124628120359458126735296307258566892224268947466190289949778987465043698643978912039818050124018047636844701172416033337214887762216899565180818197920418717791021427682675514277600455448408393380364269715758314841188996496324732270783433315081618562790234798628293649413875790423020388747779899208997365628128929298153922228433098699483019802241522645510289770639776372933868786354253170510059331432202884638512626991184468224695342725862258923590123189803148054204412696515178371152908706438904175095850303044195532610125095756991690891100897725559187329725264163080240540394956931603966181777423615703238250684878033359615301005669633930911252093480474168643825304590563589949543413261392160259527894054593047472350848746330376397341724525466178245466919955992791999871830173542601863870206275942069382788143903690108286758988393598882625591932338044934022459477891572624388297583186370419736040413529015351960473277275661152982817728734509231994359060452280869158307799235973591815828062101247898890049453346846467819821828876302216426048755931564963998245498631620707463445547110122573511488949386742562999260965989503456969596236021104025558040132583518485306727451488892889700095734675225946714062917838657687834210724030084890889606017717056876842857117213521209494948237800118946358177611257795792470893480090368980059686909584587657649096480777168283237613764391331095191242001940814799174835316102571767326666331474347714740588903155914544446062667991676088219301901147242629830950270915139744693718575881614929686992477530317131956176641846525587764614290465042905909888553476588515714712682772860204947242332984712861721864109538878035138604673224723929130231244903892389101985670323524949207675245990358623854235237133751572968339477012985158946171133787360505996929570394722743957795753902446345853314825789425542244929193296790911181438184854134551758377854028062253721962181936781033475140625162673628728442073716399277473343660053049888555067473026063285907331461977192132597894417950987017210809026980653292756051493866383336087788036961045325111587896807754563559274346562189706034035446743134756666012561427890608294065985701209211323272390065188093695613630209441344603954615715828927028382597208783832898698603823458518194229436625608085468495888790260641759867733143853431665719916947281780546038240158874561571433901657367136456352141231411865983643098000460037371441431359277949022386448224018168759646329640466483244556080924980887750240293211634548984666561820199884844725410986652955514079092575189501221157674332036078790200129991695498823263792347803141275061021553567105876408049632731173795642775901661640450133071584117148035686330206605822578964512481004160912197826340014508639750201921114562007071507626147011784974522459248513272310607607517012320011731372902556237822694300814104433214893034498417933328368091763875047360071536456318273259007871928934660016756380631759282162254304242054188213125572216835478029204734284468546604811016623707600855220244101675967674222578132552590259271501374323931701736519541032212278036741421469562954168788181294768853664010611108331661851362802220784935666533453250304505242905334597948920882287717684064154470151387364977882095989464933594980997531559523552579369542227015158550002438543448254079244661107710161138353703427845648518458138687328315036950368303897582078242135987133058729907637608126075832262612913609286927171132902733148752280929900929096473702015528854082265377190257131933559950905190878073333166311848684482154588153466976323222593029700473116633640383941452639629542489944592258508055074369921063908136394840882590134658444651124423865692781708285853953864360449490066153354358233336178299067168968865999210364308015771387937905418016867881753422524013917218646289625291047041844472113624837943097634018481132155326085312539494918814423486234690697718266212967411797395730795256512877099055624990826491792612441876182553596643245709651048953662614818393287483849589159706795117995141241334102924339949478575674753347554344632751006685224122766077907305094391302275644049113114084925778443722810457787886541224492841219919262424720086730811011483631093050906585916665197869512930716060609836890302730131678908272610487872076974922541024764768869367580358193576539858760109059826586529475899746486275056970011617025276122918536460824954943932784447324356931778798089054404731930077664027471450517746483952449494176727806568307125356604670738235488825882305985938494666411645370979505664327790410097520043169003114302245646959463960487423442574293281794448686922710241189596654255023391949509054656214027612668804639056696793873961111270919828044605652936747505081442885617357225251652772394376309659478427272787604470520513042007249653320118437545853484638339770792682665371880524593694295400183939658909200452462358460163983575925856043174885886307215368564086742869784561145948964926275008601373033782430737738211515194612846749613405125516631696826756120046902601527020292539449715930722168807013349259804119545875613305065998037758076071606690810841236705982924891711578864868042731692783444002483188117479292152836662651312264150741679437865652200092797948209719051913560007430844595569500450101694312221232653300239679963601251862818317678263633507762235524787343699028979551326731077431127792043885367539079339033177183254499347551963504532406018918005924200744043508163365373066699959270167146083492048026555476921558441605172577260436909495080808589700481279405963725473747670896334794978198004371998964111240345918923591547664336583433495328262887261666878214080119269882527959159764715899301963988987336873473127658939028296800908306930387684710064130236370809852704432517960296764088015566844274767191252582387954076946642595094963593386944276709299845984543789220720418887863547802526256932708872021514246926025315198088301136360537392402116237296682526508507881289341418947920833724622221097360478654969763354539604877318244698619838117870939527521829130335631493879268577488505121566959682200734574839196356547945353401992055423634987641067062848841849702128714725409962097667638256279215400043017570672524580102636853079539900600199347021784832763187537316064712482881746339064455260000289375448405407275900242179749329575973320948773846336117611198584556700950517377814311883723140152642882174743813455991006103957207173349767321313890655546331373024352881274361138871048685072868456019434436892686789873419312604730841183495490492334530079215409365490578617725896162444472345965689177404651505388274863244786317596037131179053555582601964782368172494509334085067886096570760808890307679145241511176630071481796377478580257702493447222503738030459853304377382355756248475239031990671100240232684086709798283186104612312719289062857265245208515740290934541148603404703526379655323371728292458177429719920784960244050719511239360154501309842153171765742483684367544866549198570810282487068516670382968628008108271580727785600682309516289660355804977641953381195995046641999012543496299962359498422478561447127376964809358892874689313756390349185425448474008512143245240303271198480198351387967011022611969571151969797602178008709109538213663956973594441077626755317046470361270871623355821084118187209774945269115408828695797115021279377690403458642814716843095663568418194260307705695822180872393198974120704422808442159191138726106740996609770899713997351499637509835613236093309617317817664378924172821789684086489829777186920648731375456287439993415096011849084250542870914241269188107761983591610302445171352635242572453594516730470998726287472569382937854724428896412792738506814327179094425973547251579951003909607169833012544834664179231701430566574064151812105735053123339783212016969854532794691536745635806459321688035911536622288018973289533555720034166000442201013543295675977023692840425046873233844619385154256568235303609996062367310074019906152490914483990249467639011987101016623058951312244226124942918238044857822978514634067190080155335997447872202995892636966593091290578276942889083775519347237288022108311420287686282595760236233096549832726281555737163062006989574903221839828824669725617463531140257195090915135007316022187688030068852124455132798433062341200483671300594376762981912198180517188449701544203995086667315253702585806010824177903321772962682528086207026953287661581741791704862478312607656007319305773302190590341672292690976013288012067052731281331564448935901335208269791343580360306263626988941169776422163768013230469125849776396389523524119514648090604121254502341156126921112066806982173130025090574576159008464983749016762706506928406298755199931864864474079906169267610719923645596380333353438410750788862241041798880359798623472141384265097806676931395284358015803807167421141893447328527483079763004102898556496074075237498932559810280392870238042640472649200301898714676765501677131835607418499994636630917017586510971050817623457523451454757398837512916597266937837507805481500763170121421857825739210035468415368044039463558263889800768334968898343653816004083723769323686743407762479311638317869244149213039614593418449248089521390189506589430608978860343011700807887583555199755654734688377712042859269412037744472334044229930754512807538680228160984608535256324458349355854477905963943326828256919988160183141144402103533049641456491042815762159054185735113696958291097344833540535238187030975408126188239981978546328655087590762219708752139913804844309982333743084811482620859138879028820635005831365572509292786689296043207426871757136205320754224240555647484476388233152477205703777341230196925625856326049201613042365888304629998435409296229651853692762177604661450572595048281947620660137203099296899832198096909528177147006771090100180664312169132275367055191959385300030384695401116813168231933664642932410655437079137117538991102665743144912530517774224694864321276975234551140469414607961084092528305755622006311859073424320057069800357970509957322412156841124216659975693345386822507930204390317936101089229575252334229944264611243145340907553797052114385091713938617130301592547122268995194149869019725935352548388669604505400921749447358863079855403159785100674426911423424017434769427679254721142566218159924369493510819076253402128471208183436060153300136947430968882558711591785149578420172576789131578395800135470642628249540546215386496202524337972720057493694305247518304182440870283605447136775642609305276703281185428505549203481687780867762233939721035333333927328019952752291836574675696483739069305433356767737831060453698428558947374326849708254104727577966545045447791143398320951529894192859565513710925973497268220317108823628109499128055357692105401675082316771843302797006396720276566518653266795329218805495948950807250745591715323671405075620110549749844715784099406024024726806652016249391225074492075797405111251093300399896533560815437763058810703095944854650872426742331472573098277646171159578983848988833735889319605399642154879634689521636398183371595298156937161851198464561311180587608497571741538298979860769011256341509288186323672120887138416097767333805837058138143443412748198625677585154933871421591639445800507170559335707379792470094144029418240914465463172747241004085502002689909901153276370362637679245737271514457196148208890984583287728992804576520960834133466609233750098244046494091269741996066793366059325387073896847205228419001065490480232903788224586673609088863814421343895966993631465085553649649978132517947588122502015956294480396017526997736260070030590134754296425610011113091738748629740407941568239982849273224605872969714132863263333932462352578868097792254460246193841568626853386263392084190912845490056482997527342586377503428555225772635900098659545147155644523530466220442255724719289096943397980518383756119763929353054672440805935724472953737690238056505808457110306888738136716932872905773961709154376331279049954713240233076190983973514477199188024647682741241246885007678097929396779595952330550484196237287683888117223218692734255581412072337445511843172192956843023037774776909245028453928886127933214605356051472059995078854508949153055203511977901912858777433768913186045689414390959569191731754851038060128375367269295878320062163269132564468916700320717213456435530770918055631773112474790785079087661830684819238435898112656707214482890584583683579066892066164322544463928830283164263117367167050955915656802708230393091365011842905938971345796354701543506708003923298179507795989509314841721611495466593700520458005806628874786812091783145766057980937846538868970535899197030747554044301639532739964630283107227067397751775610988080055406059997302095328600823468205114720491650609987190857156735518575188684577392601028872336428689504521892892680681902821459371928002205871994213470520631238837567040669046326326439694457058008193215881471452309453489451760766744107382601603330524649797086754660873911940408453386802552668464306470021328527003866762560959181752491468759579011906895640857207876232997132604080564731702737901114905027309323615014250352612361478194856542229838277020161915127780296709509742933261945806341642437695806156758075757181086765190259774794331544107811410982695767729600135300160487631051993180469593540726622187830123965296228548262073921817914650666464487151609091828816348494566707067432754746717154580899911976821658896899224002619432162439358566728115725733185752561764646720371244797294102842267870184320588823469823718242031634139183010217655829393769997367124542378686380185862648096868294621554292516439532074631595555578976972753958705353930008335573673517700888476950985041527114775221535576985650767077081256141229944396696272509133524345872058337111182035994359125657008159847744533266546982837983148790499128630462535592907056551473186099251879250951340039012563529691768972629345124152572189300908387042463212700035944622304263197439451930890681606992674677086697471257994968818703512031698162696305374643978058805109548304965776416468313688375542504593041297804573089051416357408308461429758779087995472101567964379253836567547930584794126972592836263505155625978863820526936146188026849925793945325423558428179078173974716887065549008244308868602868655573299384815014207195783019778044304566120117246336447227435103194634633752853367129370202466457291288435065163993413497870480149649478746021685310299905012777982846135296420618137677711255364740227590099368733333048442378346328430524884451281422257152500333180262232152387529641750262775125039289144184023619838064993809924875267344933987162221064000243099128469566912909660520362839362302996646010939431693243201051030276123709616448514967006722430052859685602606984974552094076603305037885368141774584077014650537683907202798632005878695434759242060605572151911948621283746562206948439415537615443738527086497015547475414138993782009503869635151424127136454856197749661349995717479363820008823744077882531939098355316906261478379338062472847010633858995235707128264850671114398458699365070573727315554550176337102069690127093803960273127485090716532489493598157654711153949685315091106275233482614735754738760666536042813916251079035775721347441175234836383430375622357998076107040973568138959198393851989372130767288122864205242909445152999157017733918908221162811900613662257879148044186009226594164495378922542877591096124592749031595916620008314684968630986168157177556053066836096190120471632268601112884736562347851962975956055867266232197187900098675536807023526359046804624343664276730823665410509008496940111032304170435888379894325715333941327768691921667674230350450830199567070861075070619497288747313529392258409000037325404635912599483052761621071404936903708813806778732033397906887496787731682804139024234370727199596775411502450025307851695031369186253114463486951260690563506809127269875024121640042358842189049525518955153208528500263113063223913448627686475917297595437387466553546699194108238164838400559249627276478981446922867641609851102938168976865498146241191002314879791956263002568019543723649079268457150055450774751850102188821144982901574778840798081519804591884867918840503241403575858195482826693535012877962062603179264733133351974134330513534058718427585238716766328216567239578074564696441071466448225595011086923421064640985874737253518917352806133436401891563782635440579397195588537822901657572672463607249430192203785398971687261930995734008850607848733422860298349258880489651697808785783315537144911684577808770661040611355156121543135740354007497975963436537723630837899359670179220773842431973341703041959492207143112583404050201308667058175586253271347913897197972945964925091833715229493755832212425129281890587823358964944577974291129178814164379850381411615184669135629217224099752562859733316772947442092668330468978832620927803014718689197814271570149696657875573631332205098172884456192519255085880966477441148629516214281190403522987846593824118148587293779022556793831685094381015927698117455189455925907645789547106591688151985958212473229103310024291042752886490610046953943700204758794744635315744198324300535073879015128536532092593007599085455344613632324984646040418077873659922137347015181238502564105739461207651409180266491801801529100944717744208536172270811360038204008835919502637507695552005554053895419564582827778061044546358121558621253355947034121638251045068841791269947049265435395215007038828882671182339657298659664683311080814284988185302795190571455605431599817967995538414441441119503509292687415926771674110333344836360105863258440298810883025581575580985828598254094377975064324680462740897837315845580205066675761777164505954822276433032615663220276268047432603921856570052431099801510200665440273981450597784845166468958772309361625875903621879339639033092853431292557044028849137250912908546713305764949797961974154397242755172101258943003387733167122966751276243236125107976782903713684390942558912976326187566612448478547535902256224785173939584971262517418771647746748698052259170063527790301716690574521004535059050687150089698761996161383668669239106631320764695542846287964478626173609309998336134186590816221133686146423596541048660311266672951694751151894902326277763128552441273398561112426763521949833432783603217948476009997247386472973231148303815001028848177422028617678049746358097778824792442765402050943559306748123784237636598222415385316699195120162596617413747408922192994190341319280205375085476309866412813174606566301172674860872096337001403595413488441321063115643820554987734145446566879528301811319224981220358068557284455437161307449622032548493865786666892007142984530750743675685424906211826383435980494537637746106769447574159383612011407574718083634922474945318023917306553648104546023574633106239489347245067864879576932341786313644459281296519225014673230572539940398740277351170172283250638164458063476445446708604639249449088736935255923890129361641646477415542470852036051213288323453096552420131008463628673464199213836428652700208273353179927758636844569166473790210209778307201778027392931422645809430164035747619524387267445235148485006201493368965268058446552614771393880671207590307964592412084488730213857322164147220618187222438098600016374138431137435352768438124921199469594690461474551875350325917390373319386263868925448723412402322934368532311769195048808564223985748669328986044959638093165404514941444550477846764512124813185961321343135056715194587762197156452903721245085231013059425270953203819331727297797007212609190867111259580916034242605335430159821151425129306183729164701147104001743954482772266280903643334795900718187023031307881585503617999117970141091408368241859110812177401778077184926996096505435414640621185242165561947565808538494294732487470384304766312767129210711805225345155936235369591209340284777723133264777858411541514914812728019500772455492202807637172749227804180984866611948181655148532476972032062709045905457733839495581096932656583246925755417780531760920309552914840658433007557805851354149328287763594214600640030539164543727613591330474125717816393392521145363981429067005705716207844414798303637655099490398595816029923811514044450730636167008217769179838862260244292090308868911711174717178259001942398632345208451381631093145032847874124450609124799189388314159977835038224006884775734981911624421887584762073632658793779843076887609453882246483438412230281741052975655634630564197960312230635812807070959923306169443276006427540657247616656521966711903373775128594827727265409608549478039918243703286004030042290804787786710985908448449867080554286572022226562453500079192725531351655390062396825472635912743103174941583379130847985817066522071753095868903189854510405337873336579126808904478692983314853069858208536503235529436546327435648778219325819712282560384727047242852999187964886939365999567650373050755566704510106976004455297864503441439575340797758930623511916424388920447349901897829043965249421381329413045546727939815791598080799135709018329016079851182944979375286128503373615469729249314932836407054716726154139923880569509175927223715374805556148283285005616067877301054852383782564041470105628581464564411872862775479100277812085185827072133684061965091403485317272028459379663337691837955109097406646854728446487319676215349891457079434232849532840297241970320710787734411322248952367869191654926802457714974983090141074810212580347033146111945631009983943419322609756686970322254235110893484227518285307071306471938492105881455402621510097191347195043167658617191700688599338916232398630098480064929470095047569157556486199157023844264819037710699521711981910867244785028454376235792980103498141215567997417162593496384825885871391277508469368480507579090115964797101809639604456397485544185245504273094765888519718273888346198914043127027804508756915081015465221986497490778934941306946988878646692107681324062569800501126344607731803297693527977735594000313503212346542273331673913513851005379943840741699023197020065785918097848921472298724534167820266708306911028812714636256512295125225120504219001934070238735187308993169678007332493849878856414110046894504034045929368162510712960134413276942087532462301820655935670130703555011981807297927350588323177807260679478999068998444232139806571577652648374529860862569971985550981144562469059167088051516549167609061739451139157031062678255071869977552072494301890167997744716541468812350048358080499815997037144935975538790262327327511037013514503719613539386804649200598813666792477302640452903957720267186193713931716674529548796202709690800129799379000776911955777938595708535367203508894130751222200088260412721314571806409635351858433014054764980563410003549333380281128816881211107963470666898383016131181037985131647504861104924650144323437389158124527075501810892796151553621324589916156552082896088415246697289969530537767260291514870574426276282687244644407099502622301248194102645963646311792761511101320988468233344629401981695906928307052837517036264132850768718419522052874180912023890184693979167170845526287046754503050975507246411621822157032935241883231980616420427799770256954190165618310190827685218832866097004213016652560042281181458378687437035870431321747880569620324979921132336466248286930120820945499582758815114258312011183792681461434975504335358426262840351491271998216683779113210184968993386782526252308097272367343927063364515587394360994044746531741854481753222814886988726514331431185467411334830195269903891046406890134538559108016143659179882023523037373499147036694500099707348795466343344970615006450465139760659059692150316768522773874369376885887415178526054154278887047766828109534668065946418969574483498066190036896260941259017599911235570532264759113130179363808731917562193096290191409249890282653472827878915471770562070940095198460522206767778976685173349724403080721614478135644535651440980507677186350908566170359821818232328477392651031549499459339451810750572188477267413637041670810769861702915352563456421702358689254002883800005814646773754047959675402111462710786178463156516750473162189780534152428609607441996430259065020680222395911674640149085599620968276520896589516359716121117126960807725822135516872466426659292620308651763136438765618720139016322672825536295319460455733446829351199488265027776470153175682066929223847559517757905685356325083177917949829868834990952670035256202972384083830399578703320308396201804760304620538679523537048455208275120209959415607081710714620365100875665798927533795156879855674776033532138445149963852009809968181574655122539326293859021785038744943871143588546152927199618737011159437070793261350070004818817858879013254919887791321578707284780551675619425160411176866059584650902284344864172300685785823271151267755985827256086230810623031752219403617462382981080832816603203149422446902039227943941568553030474567710364687441538000477880406247121243530550998758057601493301321983116223332920882369472978042576607824668084278916561022491957697828105058676980843360509130223045724304234435166067215198219762417293257764462324772670309961184762773135076820902855769381357153630460232351364292844015862563888652052281437046143015543921186199696285956662789641992289958227647709768742467758890395927120294635886482859056827581684715739248811368354952087053697667155680679831850563799589335552470201644404242182092655358773044084990643529574989809864736456333924654069963764890411542147075575227501010235468349751671507047594091212352660343280873133054256345345807554240970442409019782042485460800373658088086405002226276071634263419826806227497609270966265652503214714030212782349497867434924327030320970442412383753755252406160985167464441241283992342488178873812349450919086235015405318807737112916588534288295340410440476409805486799356825533860606955445870040612194610089070143886194125684936174902418157262390993427872771625426327062852637630017227215060143550968532509944665073783416968141284861903065130092587863961265978610625898622454225418904481753043947215959658415219846751271488249564384869681659408613617802669428814657081023803164900483663921626112063326455139626324323823966052310931222350398537972914905085133262455593190387246489546947795320513933889850814309406639533353642554271978327375749159186466461031904364934757005677837792806358746653171785575928936716585325341480259488484974562977960966881920423390538307021479746464452864275996746826886560846373885885412530230705505069769154837109144723145206385946235899135293052742272011325184268682139770793041073893538912746342033857535826060630027685343596737996699734055815170102513599309902385572099661318097101369881565434814770557108992538003777906712632187327258737458946072740257360820531726950133759653771930532319097332419611398496202660328840942082398974560569389215854659795971498279939597611405634675289546855905518242722529429466787592327307988161186503418644071784526544651571702920371682027014806125070321827935720125226940333443885015301508897464299212200926836526917875026114067503405575600975194146413323672884333865455816220475699513374611588119731221909243237800959410596731251518997497716517461311936276505870556983998878557194056043636255013560502071132647742339826629345741270420279103262545510216382905490509599694583920066167817736629208229975610656059436326273164365405714081593938073967917466511324733380004679737724120393784951566731466229325538203370447528192001876372153060576268005614776590578749590522370289549361213274527264252194456903878669079140737768081941351529735170761627994131871039762204764573786234573320693027370544821789506408364691615993643209987260077450610349181676597324804445470028059771326481923022659597902085722906240971199521401762126773704784101239955182386072449318686823155701223874798526991636313394017043144782544351101669695227526712061530232365570976239762460387566348783973350510459192424862617333910128520019420284175885028787378705369542794386906183629611067310743633449939747902695672943199115486513687009343525257210400095773080069755964317188162961451584888970553804569949664564965259396828467555451748180612612108501119122720744553633874132234859219661070797013823839641673636058222895908764387470375618373077766988694169498290399954599994326840338872843048610642518757821344870234062793354438553415172734664602419754002736486337790240269873919546780856607866855833414993542796377555035528209208343590348514456530666990076792936196857463707391387766529402010270601332059815566490857261995275364405753888240393327470612599073179389815564246550427311339457466419617637802456026637696079313048777848862450439528028605371569259914175145131320652609069797770543067641954527253579442640403075928082230188586625581093306838543837384042804600441797808938095196564389706185069723495027544092608360524859564711964851908347746303449454275186848227553379491097808709921302169127871932436810836728486576204505578624429321163032409434026990672389745881966347053017353368289255912169572111785475123768881754720385566230650051539086293112677706123526358397180900687128323285585298180117936571758193722460372253902732744506634146712280646917718393615150507446575748318506853218301134841533936526302315010741782740263194050184945275498783701496254305708363953778887672038857873298423079970176041543232412416480405074873226009463307268850766066525831558133445238694627527655376347151640108838680917964788367793512714505018962969964525581194470369919642288023759979715941803975119466519979661466875996646983699025251219428129825470948185646026721626301619987782260786388552747467452673352751875705221740495744270402681054397811630875462341940858980267245992743632249410014348547898398312086308360770805284091163910099673980347543411387888917089011341273105500011960388316496984825587981451379636633746253896920093118818454650921733594533743236257539805532944644459053313053541947899313063162307129833065682961883754491387006465819561159012519658170458545464059501613088022215043889731066058782333334893727485298180720508488415188049336954079251927519312096787217766089589306669998940877836703261535268129438395660721492058300471880473054010897956433680917178151854375425695229781942088653369107372951937723166774394923349765497269094383343397344784990387407212995460344169541436535550277116860134973461938366732312598260783126990669196249586173546677201791127220431595491549901745135116210682100514436982267914125003830253019188601842097025378437210315640595405915639806126626040080819688733792438370256402942893976982635082200964137611176640347618344572201450193563344920112648777972270330615181755678245020261640446291221483649136377976097030898320681827215516167061790444034946973057035369440498813865777632611722880024111424889671855292368724725299729224591634296297480377715339769899195501697610008359645469586808699048224421600073366564498468109197336930096754967701141119119154152099849509624331231337385791344628945880211450882994085627357519057842316193909292511319529653565065607203317119384081973588467216820822793227365651089950487976054410234685382658990890093146018304276804005854674034236412609146496498477944214427479667839371323390548694586243492815503092575067505091793318032424028056123622928654334922453856216792534554152202212185367493724858073821389942836326908198457972315396496736960064932233190910006352688323186674351110996152232592793878419980093253640512717341915106188832878182997205150898801853252758716482134125381531868771488820234536263058609356970150749531921674410045739175245694532852764061601235042764897270868949763362762694945694149402833789442032542429605650482792585910145356257554802356963835335632092296421035740874875606573092550211658295416226453808641372970912027409797646536284534706971065878227809936953223212899229845203083980431844994730549228383798895722411226326826622382842533500778666228802787905972785194009050920613209396779080947484409377715314297734246667049886264464761533170873830772776051917685684372938063780702453034044009445786677460613244502885058559647890190251496560416063569595465431817984434790242691034035294638712245685112478191798739397018950179164913562320792414395978754134986113790305772512797626640879222654330122442615489553036033645010003471967628274975842818530206610163422043828123503765641592787906365241987310868733234775070833466414857919863422857274602900297836481949583210891096422068699248996197654279828231243430487307904331716893887805480111147175237682740348775197910943629474588653223477566216413210072897774009914645906839442942057814153867038438924966557581374016263761829914820823820928851254852496171863690557867056276239407956419693190282134434660214668604407434150431944049064179988008466450004349577290459767205332630105510976700212384233570241685016655258035692668232466487501008147272510817393816972729773595124813309578119429106499479886029823001413483167739242319366191227693069224723469846074501665315397475504672439030069779325032240168922871901645085094184581247518101340068152683412064160217948359024700687738098941116309177744158933494045485687746661068655956626022068475829387609074847069301852037278000478850960499864871421011348018802978751999505674181918831697745403332416821099070824279559449324515529894358150261929296393343524486717192032147111815607472380175904996726141816026502838888666900202326076635561195366530989058399383692300114984312447358851891262401614130947857933261910744791661556894869254028519796426951606229980266573790357284448549068659045611889620079299804997222123769457650976308501724932528592656310850827042772063313608711677411901387404475744111635282456274141334809944524400629705177970012372350247907174000244436294840321823005385097540022141330723886231466513239021733854547408391893848008506884702556257400260307385011398135483954946327370521019141191074624585269570392352179347503428830211504808462028685485903494023380346197735320084680183445209370980622797953084971715497379568283736566134862582126279494945204079727652737233392559314113980234051947843514235398114972207198396461797401419726598355213992285492424381443549308973467185260739393810664325821166095239279891520090938631759808733179665859888487572625531449910363501196448883077910481474629221381810897705562836968359694436021986505749567127678109421467972592318089634866242433430417623372406289498530726455936066294434143901845371823384647370198086220387533376594077508875999490979847831105650152344849754839172201855960342891287798827757976195656207902396238786975714546867422539296927895965733736139880557321081225203783017405608040152220845673967433312025737949127973219503543342185668201589285888613072688142672097151329237656088441586048338609275086179583962667816894810064274237707388020922856266684149957952414826149380846124138815161464622760434716229555181664585053062875851517423977132832998062844458682759687101910225984881115322162329051313428635159541217434031095998780372970804857454511194109589146219827034568834588155293701218572510369586719443784023567572873670498589427761842508386251410738464309463014069643975875067544108393494958338359441600551436194009677327159543741565224209537811876509558130150901076458135157619423368250543695963674348242070454490358997569480089913685100479740193674851997063935044344358369321883900091632392583069447486273615123165935968221041606685874412050789703748010632601959492017657649834115586532965104587562935387722431084378561193139361156636435055800709521796153635374165265571239852019568807857421634620888468101578994206417588661019355658052291191700961582006975418089115074779929473989856323620415937837230268943144085470380591748445066747657894444663231154651196948071634587418402644015465026039118858061602503587417663540078983979984340998176109282349925146057817861159419498661231319840618243819427232042155946431528818584262514989357451142177420845784835196876329531933420762385894295478011955313298111903651704345850459931399090005289340000743932234008600351979619650403623998248949013106717940302916832220452838955073509703672776162156329604919999288178094472609781680609908817878312097094429215714335452139367808536124048225463608010690073479556467308782762542557632539147013540647029473483597200478046952397725564428915593625204042566074294360818166582499880712602071366305263795574220367670865812205411706782832009896547843730638556910666940830825497477115043126859117251664359237709638063352820638202789193814153995364028629947129170377382070361209669509593369644466827348702290589700168078036647323058262414770909612260299324256594964162721425535767715763221941494344477723889308839390558145758698551937449705052701401113549596343735829633674211806789752946323124389052640418260309704271540855679893018609557284387951096781180121298206321933078744897129695505248529324630758284467235375420651037315731712464822489267101970803874008194747350605939572716433071331470061244939969441241700154511424211452177217642199363344401395433060639261987103486106188580908977738010244720694526556266616683784040420350011017734688489440216063288501060986235757587839310705930388936207201570496191262052932593399757233437700281767902082957519352146331563738157214723589495671314899050857107791368904937796301259628769213324103838724854097156322411665239603230498620179623319777133730839805615145384425957961775757333590904047720926908725091420020429662576053151242852557003658598291505409663099627756442926746047918164733483213325319141306985852116389680545493253679204631079707518851021152799884209374049419773919504111740818466039703685816921492085418450813708201537593686048012096114285792349641686263193184671685378834398116121976087177016379564498286221198197356570748965197522509473408141539004215573945533427986559485564561219829414920755196462006048793410451123724505059849923157190360887581822319132521948389879545646918932097324871548914025651686237999323583440051244637964496256119659374108136603831948062244209382189142931682136724147117359594749269736879463421566442063715341568395219158917332780508498291826640973153689901640125341765502167430405418061155004945538682176789310701672652856811668462200893172448121044524614146781376486998893724769315242461459563724796368532793775026783502712705459676893922135803242789032082088403711983015740821069536474375114482887665166135796098553258054029823885870899475646464117054379410067253709251059098858851410167518229838598614902344717998455396876852235553591403104464968115037014870067515516643249063761755740062273082506388586744507832624626336895237559532862570419846032021349583580640726415957057150519999733688119608447882160499694168451526331532986728860153440735643219659373759476649358610947141267199428727588439186704445958475214708509258047136670216897137593165807729718737805915627269697079376264573656839833732283579735488233373716641552871033863263777044576570772934153792705720039228429312476052667236747066324419454348896981328896478823208550068099681288132785538919340338589845564965126651362449328701835177209472312259159581025611780498229093687983341896051749279709474510209778864622576688194499961860826508780531762246107410677785061708647636892546744498905493305177179738397423736315670207797716673878010560322766863012276407850156614520426975730832713366129720863132675093299925094547676815805106617542169620556243678723018267066729480225662316686289390255317336713853003274483326918532739794269662421864784404250011545172053511290054436017266782680023668449169225401616288838984263255454713470298163971485220764487141425363890877620318242330017804395565247622834621571072118521785271260000565002807297495185283022417779055110532979120162664314832073499450597392194182800984487555854294169563018557724588936184396454562641038468639608596557251661943554620076954945111039127918398792632680454656338766854527024033935786095307470556048571510557965944470597166646064154089683910722042260931767372851291616338956151730005141746833222789220223344745424826101890859485348082967514826104538968718069351411246123798822164725406784366581371612673252616709819005930303790047001434597192994382705425742396476451538705258511362811766486646355731139594559695471747803817757991946799620491850609053085525940417234132236118270275993883142885423699279408301627233594389908191707484575825638654445166313947915618937826032388129386847182296232647817582282911392480945840210090681839052296095221018177415820577169097812128233797198395609543118920198524071598821324195284068787113260231497528080193721815804788462961790225472087706513609881385829500685634505262447377610881705756095045983987430491248705268953476685943466691321442692108673309102179265343567541140158190054872099331044111442673762331062615125915749233174852236668763741438740227165682854547682317489992397893854649852638223002918167877383222955968028131928606042278551681895790466953733392352044241311900379917900134980170571459070761185330704614352563691837571209407490279087471243152783645042610688218386520411610461611090667372139691683570191143230196843347401842449854565575631990134794652992353707739075783035059069961863188746799557178933295771572352491183720861157043083415231676521876436641515749369793270150547956147366310288332169958459002554137424060634942551747499563759300371149331659282933929267043525509747220400417441720906476956932777875955713298908512168130275677279564070070973004386881074210649982336762700579311522726530175240707173345448803109115078780455456953574474008758100233267182358983925669502397481450861970716684677311321546354552475392434242571525589065021852165874437232084227717898266048544225324725500594860320101962354489243639158188138418365494257268952721085573004666491983541474798157528495804729283456196398623595728659265424739645436616855322189976566483936376106151902036081445403402786957667397825266291267424945927372942681783288406371765528661168771721015511117291386975189448472370873422552264945207745195269117334496965056608076865457400365851144896307283367780195785086837463837635315984069823128434174951625556663292043024472491429630989242431130854318440907056953097774837003293967045486379241667353249139578967514724309469479643533969344786955082510926105281092859725445829422385070639038405899194566433355645562562879797801322099290707319502331691441372888599594204511812315774639101132940586783521915805032306436355747806247424011799363066690550989372646953757702983170059629453358475927812874642827400698343645557289080173147754991028571633224913097624667226738067225550074563640159770265074452785611398925849998621596664659002848380922244101630097330960705952015154782270977028963784221439208334719343179271323406013075927174056823668155334057444853558021545132451095481907548598197297004637068463486697392812673411969862733381873328003616036048506461617173529368816753607481213270025226473707092535073123772114404086136463180747900669800272402029675852107355375639199517757551086949090722788178887269463691842154585055651822928130844115856926639291529985485984753928586658951677998056213636174576257527030033759493925641072371293751868803369687049166330521321166546809024366833794415016905631925393625936041281685585777670268618451391908144337560233942761875582058859640412390852564086187934553555093059784561169797573851707073513287653399913476915312942561874513045226021281395859813709369386070892470451989982340093703657203806385011952407740703195620664162641181352248249903455856641366293056423610889956382208566642518285041242787372329846551982729155509888300519842604162252026543499009460734635042135316655848345828809786774101386057380326962729001835471290171147706746944218243591155223451985830187435662948697535419213733000309304581035626351609139278204607559483215798721380038909839845208038754696603494269695581252290621020534797092154492502188918126755893391429561411264748182860652549633827386004665328873613722764675673953924884232795333278630214848895028642674631629916116883500869423173332316911173428112537681544535037226132845563672957699831663320464215616540426134062994880069844251126082330646943300598894250797469545866595746502858677155234315315819476347945985923861914574194468399518592112016670912526958042522979282901177387399289556683681447247785924071178770266119211919644943602788865697127732108750270655181171516403862756091638934910726666760108101448056593288311019635517025112523456704521769808601377749319207386193449640636258998900071260065317461329490881326711636637112503094260247362418106739836837137770047763095609248419623376437325654388865244094373908754994148692544314075989332226388318453953236070122050004808920866727294107688576809831601332297764457370496357230585177466232062135726899512899736419848012336246609710935884565659946871869431700785483847452198129052002630063873754243422776473617312757501397378537664210681006946579508015550682133098406985562476899270703870555002391568106393005534604045724016871615369710772148244922217113509917187771701327657962511083982780154240907529470681809091301665062073006726546689821042328070656783285327529555958150449950414016457320185300925953028426630870993476626929805793018975431501684423773203249380441399615911661391312215294204684694610932965811225552836205466587022142511781700242494254674076408909895678723921751980095251638229895328573030559250246977976074182476964687222128138529278637403578787460640242694071733311313271423809667827750838480943576829187414501324752327101980080984780266671823310738614812307790066882806993586362302937797642764112873195618755712690876340758694039581809333401792822063680440982598147089286737086961924584687137084949327981344621978759103678747497219528132009601373733369687423086334674786327378708122493765996006261722042605989497597975330475526047175411569497931255756203933149109261727274314608461822952163563080150913444996921381455691021665886301510013874682603303653287022760929889535308913181265291644147852825809268536043927742007815561715673608937368316852723418691921297625715410047005054739255345211306054316598178748416961836150167904480016214125636880312123215890345365318139276640614483509731079769704591192792560740240634805660784402927476980301610260305869990725084822638368316084255742498773323107220275075531175610575888730433411597317395656758890012241183607024552646172595109286868609371640210902494337175519457534256826032619718583699757012709474597533045851977610378353904833390565891920201592858471060463104243038804392660563149591263782622956682297494583939558612572165264516229654981692275216024602145013429096064111177441318992499647029408661227193155683552241313737485810463284156417943509626312851679538969091615247029741755413315724034319541729276495969551164681898254371335401310037243983743486918416087854082114553652548185433497866531937134012227133818540296274796768754387405484409942484177358275144571225062418717447864141480221323875959436484868172742478625586577252135960143575270910376778928772811505910895241860866844407510931563052148716459921985210683398030494716904578178924114255483034055248906793310668721274078360969264037026141629702122398599217542661486826048697457585401856476033507185170635009371928772331323352643440603922271314345467335120949441171349230760936538537699935092199870514778559901808157866450957003563718248457204705976048469827577147969058667939356640869277943082147553278144919451831010527104033865032349261168431930901310130440073756100207717126744388376898124247630492279730967339861363639837090632459145272371666799360123393339961455037736640030040130245990199015056698386675378102167508438897956961942082279259333059036891415224363931719064453911008535989675018957045151765490888111828508286257982363384062889606095554689631234288573833177259667443750320033747572685542503806613125967641180412869639464201428133798158519492211353471368982301815392772270144782083448881953072895437466975445600598007997956499949004166470712150089503774695359505472685905465982839598506909968414425482975091402048795169969718975701425750417636101096160131225863003544983594986800560360914967979554427802280754617052573759578705123091868863275357944465296919620232190901817769133683518007813215994998705319209250264640857825065568330224125099476058435028356320204462859985992165565019363685532474143445705278439878398087114896898543766369436492194592916722094670336334651350775106720473178677999664969266684235003342439413999881094537122225804071446521114382852960023671237333368680803043307812006989311559705829057893996212095931076272675540682549197955710136537515120921770024511631561751466774443084382782405987354647199604630625467037412619208228113775058167459188169518354790467103735929360331633488338498492087804249377833248051369047054950367030770426305000461140806918374833317011870125408668678188559928393337056110344977542128202766692826319162665157646872602018027999896702757636503126721484278102080468368164394939126245817528142147188706183715472220561395817906504670617506484327305289618361492754955314256159966552047831449597036116022725035380167484825618692434521396322984704559945792413018337789470229870896682443690957243867669522603748967526484680045563424585266280549796233106810160383072504403372636954122656170665985398293287013678417072293564558846578575931026338630963425945734404911791133202588551998636313724243865476856023900927092135544874668772593023431983010237672819011176763996039322351327807748086037150675691328930092304313535832571787533150174233655636108872897395641955622488132056735495087430672522403891980275339708717639326741273340559277241508857189904497255024538489099966509784286986973614375041685999494364403522521155779935696190218473532429672583014111443500733763344279711542186812187942079599332517086180334392164714134209970230012129265385497134076839182519858692227857339249993779615729892697219461954508549930112532027074561070205269662935430048336100841647240297850167499066345200087503546649679031857513542671825617111506360976710708098868300292676569501653192098520721004806356982765167561064159860498076312146269610888526718688776004496628123733372420624636615031078102953340282052372205483936555619105514299422051394008945557216505153108755802335336070672841477147299781747188809495826193657124668182318266853641523173792759196882129292737864284820805984801039950619859780160030141250577192624900720069025829998372943073187277160906283325846692438127650195338983148397307683743882775272961854619047364199663535814579586536838272576185313415854546677368828520274329308895500745536258744557780149813975783725181108183155442131379412239925423477364631521204728876535241269866596657010473944894579362035801422069746952491193991769195179951331613207018188881315837193424450314319731274144565055526595132208283832329987378423727013351789068078377691563787087987910567521563518436115990317717317914723408277026492805984453025568592523828511145738815362673582274456077514661930165014742716759382775747058046590071684468523876044242717366231406686068479460501056236859451291619901422755803295536300929247356311821942504927923563385995612205243400522566901619136345239592552692582081506029593003385360290569484534298679371295352980492575764887720638461447068250669262228622018281430806616223143775643360253383775404357674768400942361618585468434242420394584037609885372856374874275360768702275078080607882688502773136642413481348554774490620215119174183892216297488329325032515041570290915164644242230794379465835670352912478829541273113662717455405672392665592262940987564724838510741021878069711000854902467684697866514196312560368235467937388404954351757442600846234124320924423857716519341336317865745536556416882269353970393823703346709356350518760467225718209177599073202208950142418978152917175467525132385491293356271151828151150516038020877690948169888760158703999720656824351240678197047742839702053138646500862172748706978175597679489736799887029941178728632236352456697864574217688078885738251719013033739765349274212486981895726554468807241683232247321877556270977892916791942483332821239583986161331394201041094440011619628462971160151703810460510682466275122943141109969386998624734824797433769040646689623396327077604972214047193926455878738291779061930718969623237109991000824688329184912333132337102041687293355332577597572844321852873156091945791567135829909416268973341879855614679799322988430085946453622886979506934340648902626276564449257917912815082785239426552939924961974403456063928917748602686602835892066422124792601697971259565500440939610337167746064224681196683155286744789977310329651729819709182898064279930436956751549392184039133930445099341967089247426490888663516022071166767318577015012558484480622565178168000521920430378699539447287186270634424096140557700453142083506252284066496542246976845972034533497103482404602871543000320583050347673112619545708848349223276367904538189687792001946450254756269081843934093423951868224902454440760184935972048966808990580599366863662273153338484379950552971529502172874412588990067344502664569458175670977734814935011860867186116250039375698764248134810224318701915683963824227055448361947549439611646590739532840869929081124029939201698361026477579614333345949640183191658376662757023553666791616070425315000536018284229643444304579171563057921872788801657168734992276067229420799100061632592556095529463210316757471958116134900739833042380475134833718674720033904160639431391144840002111956065139258024157577690639091415234035843500433821092391206814556693142765176312379866466926971746804154044515069964368708870710271397150286409454617943304267404694581264386968318621592121255895063247461655048756955569875394957931464005856784598324299003257844673216914163939978507497169620826646769127736726664726142738670268056121769316344923526127365572085201225568327469353168040410038834342867158577561296951745795903935698738458162223518431050134011634140331108934558554065138308607367906410295587211895841495687619431510372246304703915507868316164995942863391184073536344340472856498583738215938100211292644016387656888504954350578781683822385593340121905016311845783750948723293360337311233531802524232600443537549901947175692942429834008497895873945326112944060173403360335796888979433804261730775121947744221111901888843437319289441845682403367780391919509144738726541550687224905885327464576116151487964637239266653472468533108049731263973768460345241442493749912588265371605820481926419034177519512933115870151062167721251797441994094531376431337795111351847894298636103219851402738885613483229337647012910486513366193540623083869033891988112017630813533325410882209856374009621955007662843426726995676919404459341472144636564983461792824154794136192803317774780853968135557399727772184097591624616142079862715170583033960996647613825131337725861011067845941367916097482963071924019918791635588666831155699486638187292235066678105664437191531666078797159560823206241851901006688893732634589092482649702986601414171787388173913462837396551179411840172434266474652485952173334264547925362907612390182253426141045179800468881361047014324748879646089708755263223398797575971822879578566077754583865851917962650779250022376175284645813564152459321456689270350063446672142344595935895348612077355638851277391004394652183096170637486419170546008683072751995650999241751590933125445197916592551005378510489216349031199377851820786131479947773483194307092276420358638625311565901696349623019163113462614132315029189841558982195927816658632380705145399254957094434972382486993442260461623500109330246490922522483800796496839002688342903325011021088672666696838342189947205045604654256738517243460917258579320053724013771712486604498335773062660900448173115183877751043751434209500859082106328006326375120391477482736656936423044159721031656367957917706208345282899163114292598311065809678409525140822777812775351953087589219570414194547566175884780055041144585078469602337885454358496362750922027528882887319998881073970006930978051467797722125837309780478138913855269109243698077447102725672898232891060883828560297269059269168363319229860172883009574099961389072987917013791795946329843707353973472516447678488966203087482156105063452927740601742933099928793118683753247434598757626314441582466192987324306605860952289530095633604277156617216467644977889599556208131140551282255643434603466432913884143806791715999041554373800761816429758085784632519306332875396482860689985813177623465341390636148801296540016323407304479726509439624973709922192761860513239832363525624301322913001175436338759110544658494221727543695662671886897343601884541250012705627070180841901610007161241075417238384089690042975214508324337792496408580279735044858401739554947620137897978252251326044730066643413803137147740488958673716067634208375754834615341482517007976702258370006662263383091417304219742468761975651955691583615856698095789254631732786309616121551822915499741182994846168333642395894911402423751154470098551337674226576728481659054678262546057379951516753854490121398041563024604840782283419172310532423010107292664351573636328909563685708729672910690857442637136213082444992367818440670803680394499908958695752932681310202370510045932145447502271641383794964251607659135492374878835427049235089702462631832187198724013227619854794501229098677953515936531292719951708369604554446573452993006467019519162263849739717529486607064347777426863384032560719236220034677599173831767357417935298278451381527936200301543501689310225444883681026675309825647885698475678027932140342404002481198773047488992618919375415735988972794543415044542815829649429092370426358378719591353837895894960496406440420879380203994401293388417554408252383103271148038904091831580872660143722105904114945159556293019041836313785253270183876119164561637903085053471225422776696544925731998481004781360653518833165033949673798676358270068389539339814122007341043056987575562366418437495189577054447982828838221666906218914028027289242373634023187306527893083795031653773064554909226554107787475934233761163014561605468498953870409327278196570658798888311794453696999444233879987154403868370783372528981012306524597236881545922591925995491067984060085634549881731215311285434537150819512921804794276787384287787853340586346872119063932052488670458276722703219436136961735868498812603549300172133214317595116240771268609417827118903010909691724420592372280739881572634456410963522433504246316567606114615708135994097837155416910152411199061826258779913457219628294141553347045055673911078882074893975425543096332440612751649136867688031991832819346046514546125688841869407441067708742715666467708773641631005254245399793283678420273698292282276463883154975865502171865854292681432440778378961940472241246340887382918076405519827788272445191351790159267737597866610407843828699076051509590355475564663718689679829972974262586139387038889236591994237917967082629795205337306868366114529293667102681427698227005768334788395938197007709221481390548858961374278074441861103762380379618851214433609690994630115908982345527070903856941338806382862731036364718239560649175420094931924836629645801841377370187374856129300517870833636997558002311440667685039841038614760661730710896534117890093553091365651411939394499806426543544013109365726792580315675989649993864118061026874706833705571752318431029294813924252564869452819331433280269183379830277123672206089946705881724866793512962968566523922086081015247890250383465794831619601746350916222191037173188583757321534215571515381448041205074321109806324207419173732222748922830677188708962127737215404794068906198909866580183759542501856881057154918952437793006642771377443775707184074485902666462980493238697971815028894119330856635686930982422836599577634141289255731340820222753985789612406788592631479130425732194513842371827882666270991134191640424799423360314855221565184500423210530558156324401532568289785438236008907944270379231785208981719056747353707053676341152672773774782856361443790436191538754766286606636905317336987981244371090113562129895541695831970860081320146662943436111626938510634610716972353738074829686518726601262600121100449212347861565188442811200024969628125110296561698141639197384600290469608721325344131957373749032982263283606778788581900410045543039019444304193134387870758723364027865250037911029210175603811159246354211968847699032032551646431278847830727373111638041107575159876443538452629105503490292386544658411728632576786245609424021085740965215358220072230520744384649037087996268199286731620280004815348941274172857357191041185925300015498219808775546600580729849480080900581433145064078347909405816300595780353706332673998860055781584862843713784241899456039842245222586099573633320835558987259556761407764812328658970282480052553118788158148635587164670297376000579876241827619748303661306491222059824870723859498930608005007582744737585728446508559999260708806691961178550827504067252942892440358705771122508352781065983258761971771330931268545527414631451640138949904584877302412711267077616546721565197181795250739003599554424717346261012564653662790610612189961559346603716551761020650600710033497915632045564004439015495289990685926496194353434503694674168352563086099526717743533357632158419613133815422876815721862501223930044621887885760867602731914790070757963837055079401407942533521120393627196874792776399496754640391683519834109939152855205452303428331761022819015160097326573861544311804202938896466174589059261292325278207588905293651664943994041170651898249156109157523742800830616000165843386969878076093724215785138926853479574520467357489732394585147479062981021274262253650121556106619392792154290961249789569221854105130205584410545325712286604256545216911463515386968792897833267442770359836616152861566411874151304093283933386040205674690842819230944946627210392054813117904262630771495531952431774740847642471673731802548271593114789513797030704873628502032559094895088115837385084549908103202685661751375909980996184790683050973630393226287935482823370955610805921456559114781678601508072045945522145909613482821307382940929627645625664432038747635736991316519032425663683098907017747455439285573329599424715087939551255785810630631858540753918231482449762941966982391893549894880140778481496277481866928594844855626454769162825667239882815964778342771117815136729843124945641199695026414746084243868427004036691772924917895696731295371533692426695972402214826099973507500534316919431866661123959811361413814827121191367574156586138965151935219680837834805471107896186031190171493132297864090466164755469163533241745452579639166083998880196969426887922626307117770891944706602982952260559730852628441572619565556656454971608375202322119863505925538790970884162171299379704307363132484250406400811485335932220166126372441553871594407100500612770233965707395288669057894663259689861086895752439916403666175247624546641383456662114308641377478649754384445262763723167487483848879122105068020657524307923751614542864282046137861799904598858581258308443832053598069017977860145753170164807473890462347545504699658529685709866827102004709767356008731413748051089776151492356430884183107075691290171690533278996328048698989368462749102237427774677602372788037501780410079586628225592310843675526228174643704410350332264681029311260432803069141015023079589022489328556137613953868880214530879321972975595530165397080006192235956186473853356881057340562147940489450190773197027537360369048258076601803685141443713958112211291077263872142219316010980066495472444700562808965814320976414942049855245029310526300420830029601843007946504826269274232383779255394196812469313509888263458605704353240054559219228936972702815329424728432056394242238699595899911514292391179663730109207203289016329732036654582189310551188221570369547579079559864405122698292788741402651722215145479446819326242782516700350166767750810160318655997623187328187678642900624947119792802905996684313546401586810127208132319891295657189896194754097912418493308085300024276883066545214680303738952101229296160620679625235640340926497621587469319829291865560145976378261521998954053357024215088638601787292717913710530369853634840824701288138862235570303878797176637353303858712816988740408254125478770342631771906664313266719570333622138154996967541117498372140137159529209337485765405419623427154292610416585039449790084931197657248491795899045084526775462373386898411177521440925447802614641374288402751675048414712277346548548262498976052930068313418963046600971518416422831815802956159394891716062833524472409365560648390951536957927301644434297187705552234465290285440776010217349974572749880723729415557424353107574513567513362495748180668235228519569448622160442675843471834616599143799654124347039433917198666409440788922722321568192559094755780043737367254906011596545684088341190165918733339995786277584588331058966174852318077742287608120013325607046780651923600827561470556317405871907249534934181993214617323170438585185921077694335749551215442344388840969086494843813045044514251238278276673218869660295852949426461000214071137637780153592822060019876565745981007073448097368691818288149740341031671049657711582519380317502930365667529476586418500213007427264417554414149106269445179412630105437691939127227341425591826022259378789080460142486140213217545607179557484583996044037576710654831064185248907022928482824687970769303571121731248957105740162031000851551689726541265493227934685515056000558782468832167541101495939242126638443836795405022924188617288085145378996789468572442638367633646373364688533176723922042730087420426212967080257995136034868741485943188647240722557468638562765938115615162290396824792744852125840351542009347443741805233578272183512092439364501553302791379760688043510304025255350209913725312799141855771748147973097262420546294008161508895669728375822509562746354789012492755065340522597028187620370449126226082357027074871069187535534568344234905233692666400333172619183095245633996076938139123971168936853972807699706231357795757078928262341236904427149628086108862333557972222794270176688293666123648683900391369294552952833823176504146971796508122110838155393122203008819890645519697197410956500465471424681836365172278676690347444505865907062909109109895051443373170530658828815320089835190375053299921311184126295975066171022838488589437531661769747859880945602777202675165240972731756093844061870571941246403008722808277913431581600975675514167191286285709804533329170436036894447868216175731110303274703225608058686651230593188946256134709994416170588219141133332383961410130804527230509617669772641707745063299753379897790522231540146736718976148912445717968667416869517332472183841473262186757936356286919508581912537742226394273221270752014931908936904271465878684348983415179608088496572494974186679328028967488833968155817017692081034537495035907117023281574775540993326715804112317634805636292644169115943348922888765208114698132458994055194910871473164466373979810090704976285068152198772854789240156151464143694368967637143544839610061171091265935564638799563212554456987364041112285963249571499924680594202592710321443938826423186405114773697159372431063251074898845795792997349470621389889074357636709693900197071426105275971053773372501772378665629357747200528959318988903621532090149359503603718647331727299636039411542888984866989590139689720955793178147159427442956298420008513502801754165158234243880728970655325662762808627021442569791894982054719375742863185040844591642233335417468764119763141151540574273529744711320390548239521220171021527929783847513143215418986926432780674978615291378218815015208852151678335078112964011368536571970222467381924139114385913632750445240202691646438306394969383023914414385951537413993843905211037537991684763461190043455520993524686193731460452153132757356988708316417258985947192499812317460249306529529719091091245785649670217412399489061214875830141140353050849717082582534386795479980815935754502996418309566383437965455131300724766314854082313512149103670163742371548802320712364439452312171918377506318134069858469373857701027568805663688938455357628863810316670795274819376367611273246014835897412378431853978683928854436866442989880415892823509546350510493549953601840431047115072518198669090954619280047940629919600640492969996665468512332130199367654584927481331799854992679492214568240032907383618375462058120872564909728486182746517649839472126025617762022114202932222908810808061021474546360487321114762800559187742564223589776582683450274701517734185370869081160155012025321107699735421182566988014599826186595699025561235947645934714084160808690084024395524454720918335470979652046663342560596339628183912087919724367336699875232386290087769084635985212336646886626476747448763706589196602141473403283985101000415003384884305464845156454128472125649107715160617390249087894058020447107474291876049056808188362706164709534012159594666519591613715757502239495726895141490814224178109196166532616737679657450095973677201347445438704148120427742830498504133066662687216941960064285247181054048602595808356248212255108540264739637584548884792485004744700728576341699939546178955938911259778920703820642137555056299452855871495145757289913348756982385572457683515517004673842663352878836093730528946636541725818639372783438437344812597993877823578391472001116010504988712077115310100466098136782448986487544363640527099815457838974959619374639158286826318141658288465686156143075683893006937943305713767688628377640820853786984645641522094325764228429365983193940282006437998108998670463085198813635802770327135409808936991129922699361218979681224507825990210176636791928276358672850934083320344723588927666649182028298440085708717597242035787790306282428259799331321110709478989135630020351639814220690933821063729880425258419413131148236775372085741565986461109232281250759480886455565961479491365881286057971480576668104272499865472058382471302144688486058034599273358842299842652489924910706185869316593064350955529534810461220503582065470200646282231592417480923745730273745493893111883888955225253708798834747663378513765775065032074696940081061199158692361841058887018031291166623147552824647715389013513658809598196510773026327059611424317941978937563595140671018642153409946666790609342739569715541283993340404535974418075955354248414708933113648560154203247450199986343394297581775146250181325798341942047373616406595891657973584640990701109505244028078156216405867414862963278281538544899251454835861485800868409455304203076505456094533472434905259761808452184481085117847701852222241478976622329485650430470345846703375813739469210069157319101532247858017211305420473974677562427530047998316336044934311244403767290378773921265012300569147695464119607554236572188809687829381509121420770594350493687633812283575918880383909462151356048326895983108461928361549240075055225511974238073986174298238860645596096431871771663942398277143270028376061389629489671038231684442791104335378089902867249423222773950464096738889531881920928830942574598800395630486467901497082201684469891297913257896653668102261849649759158994102490769542065481920006578820739624035530189730492158770645552235611627259810910061045211419493290470610637886236090317648807877655418781728389350525607303697891057503918983435141874657568065227459301411844419998976162194862030799751661923477160465708305920773000918777535805771452792986577317378934181255700383074991151586367256184049139870114120537368226037821588345089157493426065864771118329831135153625945112310940716818171961712643656302835277662449980035804808342580755284044454254628221517646589781475346438151833935353158866260866956348290253429401711771687583407794681747900081330438610698864999455957772010789093385561026953997221364925284947352342786379542811827214798331967803230754981061715341104080780395353646972148934793221248024089136839607705777453965760598792228132050077659835631063994010953556349048407811991246649896221771760183899269645640580884535810723467128627053054002401099241077010603298124551250020223111546454584535711830790807172821143311460868230627434474188656147051255765727305501267745995577438528024800216168957142271004536844361697786350831735490044739759140201762537960842474917692845088238472936933358446266413227393305953694504481824349329593169534663834106760897467389793754771677613920432650754671981259735872628529727379717243166762615336771802977246632855740464539604700079600109241622398547207389131963021970409107410844015676999409532664354839076048612369918232066232039318285912016213260086021168757617707616712888131860972475860675137572238921554255708760406773259555367361629280785362442191885750130821427243599653928177963260011633555324259852503670464232982206401232632046743837587369105840605399360976469548078444682502446749131799666911530834899562752111190153699149328397038054270556705749937564687935004375184445453582308990145017177321921974155529609862653910522948665842660418078177765743265929901345508664440162393404838456354086125916652674873523930998144859361972916273823099101726071158649203972580782977643791655033656865726096116715502644874676991840142479553464634423370878365276171231242587901599228793127217422549759228629898970495955714011375460830885604832086814777404221519420033551467946646451232379517397065097802577285667146717367845490606244904909581290970669627991113473694992229740504466126585053273052017397701850662221328978944770415985384014223409752435966537639257191927864018205655395066168621563528295211628300354702820512177245618451086993632038022671742043208514051953509082399349415160277200101671427250134543309586196737347921460941928732103627711218899247084117923780203834879979819100646137183181863284988661890708942169742623756713283942756252528376416828082770711215061814608609013734359436565347651893085611398880124778778565004178494721818004172396277403361129609266769401579869210175913388243242645012981225162379814072560659731225350956934846927823070366514539444142012783839426116480529852803144667799030914441226453062004626610309964901709607043272547973231029550604896611637246359714515993571715793585330256370680110971394203989582061259919329252608980482670318941679253952841586312676245719287118470422152136750080099695536279945091837526269913256516969998762946043841602746575856014871551831720198969474610048301684523202737463862258402618651359518633952430165226340584688054747337226719688124840235946213614646557581827607491465145673410619917012450375687591894403373785132676484119305804177411609287171015782239846078949107662403689484836676463386813226908222235312125079382440724723641589063083876307574570799345341597162684516333752565080949795032435214846522596767829657789959887494227873132016530798005785183417965386388339821554352659516301348508506293053909665578966324540328764476971727492171220742314689999543315667752547545458155786971863154435467008978376399725118057519891689389913477731836458932994437872813807133948338941980858232757207932582232784080934129948760916536975316738447608218436863897427394411208029373576398900984035299172743028548145191255182377762339390496936029906383625240813837541306557738711863070805205594922213093314605130059398778088214249123053155551117555452166348663699319800996771830066352955714673219342356725809657292393322748064145098353424811157173097295090942740659418286522643901806831081110049853206301582513154046670331579007380078353809764974824762685458542352015255822276143103463976816803249551966504285462051796411012208714718622384883788801237518552744633572764743404644103659561318582407571907664960745444957293865870981796145206546720747234967369503755119992226542442328467139392599864203959512731871414740928058828583012069692139630093129566696647245425917341852354149812210744027255952438471589721774931372702348698657957462755592101043677591854521289454625750400713849699521996289879249720162630302413670261375584011264177057594865383709745071262438379448681900202695446399472133357840629529471529381645417339171251999789046208629420047972655257665711840859449829124033200242404643246862795539366562892409555949162316359159993254953145677849454141862337607188688108041500755450764756388279901778351244936410801548061765293972842888377070140360080322387348980606431783815409784572024147929621331783216263232231369718199175795283304415655057820108596519746838624848098550088546503564870306329407107660056134054163211786963058603708089337797618692542918262296185984762541035083094931909120128589283194152291510254781675024727488773761136758721000360964973420147981389757431874963853711502549887952357099065407587293691098619326795057046739770161639769082029324126685224685305509758978347750964286311170020517435355398027165971835071076681366921931962427178466286657410606748359377482294922032020194649651111225703309671984614408594437887520025097297026115089392078744193415030333730275954914737028333638961447124871396981770569409291693800991797634786380207298800883484313242589128843060061276043169505077912908810419285629789400320626258719142373946020654094435176039138552039769020187086040469618728811836278983360539404383680321720881125757159587951231516782739999292245816608691746252463002655507127298323013073467346953794334728605058918626618013069880128120768535076260853057651538458529461300230956187813251581050635827427322431642169619595881116261471852724671852762475212907717922009041098151693271902419388572814619511719279291739993324403838927039848936839068577569830324781649960487784348185384202384761224108377670253730908779516059064385115793973204582457065997153218117862685416891252748807997708740405841109671255256361901242894972444566764253219124137349723857678682010470159831527330812954742959384211207150514272962510414024081958452299746328350159505917489858110430580715544624325903295964846424491328624411458335368390134308178361671541801968796581933897605659139450270353918076886910661856519321983889214504589096601948367562624894307152065385705739541515236025014712897476819598199620683141164913380549418210641292785810817190464694940530252370438664374953712206000957441207541985140611102902957041853811005485767359362285166828819865049887615437124025284885059496232186088239530202568062256211753044938110471251540030823609543656846010996581406295524565220861555301240315463528303406500437444212962760174686662801974614219358967493499105534082117040543050928094544976326001079987180573494135534841984359455819276538735055483343000987578043869917314628039469046466149620561836570375824575979484631745349831526464336711350000309126133790795567450641062649911140497452845360231858900977810679864810821816080514277009460926508723698290015521884879825094566757758376550242656928323307397226650695073044719866024508621691740283409788511494664526779493198971867879238921054974086731804484788261693490153985023840078433835151910639422936649791414952589308797412514904095427619813988795953651497579422502079632629703204198800433611177328149368630815233387552560401902616666424314157480089264218928850962063364513139616486382904036870363409484295737446289055530067819422292370824455087649545726035968967837567579585051315062322719142935025867846602251528814801213999556768379745430585976480748089688768720668002738145363850493503867282736749696180800880949408022310245700584989161031476585797862512464485648551944122104291805197613539186135750964311066842139203662915764402217243824963760034833377116052843682233782958423617062686405484222086690895475306727956967934993516185619944766707521221271164393355107299083230231228363265201037077896295291782768438309256559799299203703295895149260210617923208830956491947361536417448595388664751253142582009504960010323191897182716342226633774862116542653408925666987434800538134490451977686286967976331499873000263377580428513263400128853955355533407015391068891337801425023401815310234731413307775613285112078236871988272363264194493690036755346501701751693853297489994293829961288773711282514207743705037977836167768230335049629128381033991987478844967375180652721519983853060973471476733959078404481812873682375978589174827304588590230817717087378863251610159298653374727627430210322039493951835442073502997678039914146897585295738894205087034039159055566112478869951843334365739505826219570191328933250076500315249162145814071261914752911982140599343750176090740593942253219615195589574385268706601887009585082049119007551175780327193581461194732758532641280125608491317484213601088283173309523242621627082838977296966191723319480460388048036129629099448165318321004215736462741962116071880231121025175945802071620637571074120683574987142939046718953412244274252053674794250585385511793120289422022941665196484960567351068867462414676572468598853558505858135507972292515044190754162354974267645684047015878284212516481831810208978882842609283112844800803067921382810170580657165486687061440586423936694112317923592454277604030723566505641231850538651606275302743819691582816549551326452109815218583282951580897471500604803248164786662668855928531274692203349517552441272441699380864404448613593716117403057062313910291818635470252598341194311120651751517613996236104495857379095172822499508925586125895869255792578114271928985099665966999225907177369200462806815884191948805899252684632722328262444231251957764285506447434675195734629020981667215883713736204252107753439373502532084335506175553032250994714812220026482575724038784725472910357714685094351919684086774875485298259507472851164562828299311840282094309389163809499039237072561554611063120039804816686347566133559835593701586094563543803536807816338047965637580847663104908613603497028737967483506847847696020636955885205927656373586221026825307935508515581885281420784932819943646107224386311638077918207985481273028451844574157267808774597734761072154112982980820777523053944892142919473170230011477987729026292637465621682720292038224012757945710964825815528890986413188739153917181958585684801765424778316451968684583373260151192133397674956026618150113591906782950906039397531544475833644785713636410670598314827479061624080108632271278437366733625955372219212437551492002193673301887124351411633305524122108331974579349864104920560493189118765447565820803068671557139105462284816378422896350324182669958752000770097259537921027910775892979739142137427015973495843180052921027567414880458702352518425468788905619521788704430822555473146955593377949760749286724164143492507198180770041972035745270361378157105152199189297828398014302359479336796529593865720467115467842392977852079073167885364770596455810971104906025457664865825484333312144321401990935988050292240551658100525121078430750378078367851968924651790800501500737066178462343787289911536139133297010772271487014674260965826249809811555456785098556833110332512254652404778605912531410715992290599101060964460166160900361889494880504464575299852297084259688318585610961860584397844664408365514623602850192361452925064710502578420039754903578986697685862255549026025022461443896881795885634809913491323667740547888785217495372967313459899942630045439777244173028185288441217674440245585019218397550131809917747646325399326906988638421831322688207608632787919490502013687516756801150099260346586133497217899267465426742447474984158499103705189050590641908822566025661862025777577125518536653053777499516112069850094407128497014276887003054625947200073690298740293341080302328970976842981226250092367290040332010234661965870545570149074939902924383590719010034781996705864797728771743009350660590391762418631643669377806247089821142410117566488566446886998752532478131634475896339211614582219687295542593982145846089206116855281207691480909308358341237110593688343244440151664149788788889044024282658877181280550662208320581743527203378668901131005502959662460800982373227614755597972317127532947520058211389247577689614525011967989296165067923246410760370177395429529728534198438422288975973609621458751652888109836747622781429724271727985150446806541867979452204204379019962385734586733134904765496538704943273686755481903435719778185498663073594455861078093056028143201810000074744240704749651883411575309811207028943238677912056146122660117257415590310707667977676501913522618478408852316747294745497337475492605749030097977648521947900411397753525414344128917270313030238578723725703107325874005152814451961188933494186799216855477150665306633106181571958145957448054058434648254022160800086052268989817312606681414420271951770954166620510225802677957080794667537144711889374985311630948780311365012800413552725886187996277261277012234068700004687462549773016433733663737935715530808151145787369697860503261495565759417588269891477811764362036981701340606650217005188890984439749253708271111708263054541814948974770275435880611761058649400197331735161162106368829331763012476289009795873920565505505553208629301817207192291312680746700792381910305529286283259327637384921764230814764682758680414511475376896525456082557130752631906057506829221055091308747093305747655490760744966669653067453011691021945836653674093096254236237926238235738062308602718529212959494834489307160989274077854287184920682448818578421683788093657531896447687155415833010615608528035770041063194105205435274442668027287678891135885682663354185779137626858791143099278183630751754119272195796787042944056893876094923802640011429953098654134650112600322310523803279228613644781346188194728959807381512073864741319608581520330676950909710559232108725694704157632096021882898011269720154040210621009634991314282847679050060012675431930879692018413824613377790701773885044225389128419184860605749751021415486275401815241328515131815002639541063271215315616903647434505312509156246318288048777887207207312132737486374146362011788600597478721805174895943790282716334165070526348449969067501304028150238431996695153185057083419869116689118197641220132708147065721344155162987520038860425625858152836614011407691968229063160182921417565571112278105354232492328648791114346865847507406620288036547887365526268626921407221692842750329325592976674276943699542038555238921783765534755503512738437630844000287417576719827998960706296843138533432531158534120523977127682862731019091467756344105111632359432589984733013358262840324952886611193411653381215787391034727721756813002865974925502552592392918589064653377107221282334137955883370390056097624042553031413201639841034095235148758093249437491929222861644642345158145693475828783664127441611390555744033409807515565843055631150515433316293792982848471894242918057688249274466093774608332430522060152805447400907864557177250651386633404306844328831817161006369524297339147089915715708133077982969452074947950926522097812363052910752223418493480690780120368355498600442001687122979165776028620255861698203135907100123440473791487620641796628141302699568123947822686290085137255449080036777658911033232005726644104461657044564508032690939143291478092550199713207631983153998726180677745325744481476055235481256418663015713051935778820965122461011110086709057249176191197130762061317576426429519642610399582353312459933875030718422093338652502872621837621396261897974746759543151000239385282594363222516098726115585711443387730306505719266586582596413333492822039649360346073302204133837559492937557921005578821429069939015529432375583797135952366767081456513325457195993984816594202221188056386322885563080500641680703548802461077323953314468056662935826021632175869675062775231610595219254757572888434585397347631534897900369852779966502162276800140968747877588920374013947877400163364228292666432283546096194048993763339740379440875864491650000855167903699813087905491761891251614637263271075559099551708506450412212712845715592859359697484353825270504696589666555506633157165693202836784135506639868552004541964841373771794501372160985518184762649535310555740007978669056513656496842098224199849271381218948084619807329222737821265257325113339776135121931441132781554831607989202348428139857436842197488283549818853252637309291900904394006337671784305883864050462108287235690465987231395013869734792449176922749223492703721300856431075548729406621368651200660048308805755149541192416494593657416265513550986650004980054011701059091003886837686600363449724124160531538779203799383477814171731513365716463922168572037155888696861584068311444893614361397637862060773299883692204038927804112836112019704278767988216334639346094764418166884942831905387726198557795664254180491249931217231825740308237497654707439813686940506874567175003264439779294119440250156819534409326313640083224934012758655924264846512678058987037963400766886315532759646153917343164879474741639879236392478868802594738080257406489159242200137879057469374170854396235537436698523501660596189481632788131426930931343541977275951935846206302664361148947380200447547810331660391938106626535236107123614362187784988194656523710243483600656747087492852961618819504107946023516442925465301857559473304581097533416985180220893382054272864841903012657944875174998395131028380457767423484586734872868207210836700854737189711144168008242896375893943244149130026765716694238491657949836775952856041207789998077765925155303050411032849889375462683033729648623702589025317856754408204395016354940233331301150986131444668986396210529844312094672717647936643933045661231974039707690384622958308525255226388534666132199805170849708605626459536936620395497205359225172415563287504840613323912258163513664671007570498972290816619840460809340802610364962956772934110399751643948784380632316985978601996494903590236038507735779041408471924524014152970859690063102099993425250299571944415623639608506300182749557968408785002149522299107849207033006255182532226215876301328568664331603045316890575865637757766732000275651351474231192707909391624758468990504487163818459031245985923772341948154284014054273701711510138329273402056727816868322215159218097202223574272911921761464482190947304093994443471986326117502282271954750333204419344544511293269989369726380808813535088860483000563096920414326712422761013746103676240392758439111066736506865621947877093951807288151977912643147082555276914114928596499310236883781627166758644202537359235563322165281106769745634529003044987478935708120249350500735258268648576550794520286578033045509406999183849737343459785364089011871483620822622435483795674567511724242484715713534909224146989707270420808051305302346127200365490361055278875180199627252017395593066589738724905403011939837299591961039842934369449673757218508536328914884649967057485815951350866794709837355275661523849947106086321517280337481373847391327825088535208388259983492528525051328878317940346881804419761832094599861724175664746733764572819254593898297685456530320949675720068945331048253165820485938187551172083941596353889310942160830142412295526768258097926420029139219042816529192017724671702535585682271060311056840735257283104549030261663129881994082210599832317084766264331032356141313703727734985807745639657759006000133804902066402766876116500071757725840525488213796282388256929731459847286448131278368041895365449883980210289696356495560278446999639999158269356623454663697386126661478997168414687164913575629950850953793204802518985146477091927872771687567882119083208503469594030513186192137215188189542820438535415924521547097396003840518415104766137519351217106981962342938321654750091779490431996643092144075037864110449540412722520530984917073442787479219154673701888910956647166695210029190984378528829126020050633435453862777836870970432364245037524553758614380004034879040011927035539974497479613055484759731948190284632385308205672905066301602010504615923094243032493844232929870157671159332815392161292274187471869795966172205711921329382472087318481040235278927057323715797227010038872399660503928229173738670988575082783505978881326862245165867045746810132316307850997056846616205839402018828688167535596135688408903686043358802303789991094952470273896754748828858475233807714840283603869656563936993749533623299831843086472633072341694454988197575257553331945764731540131873754680733128009943193674013273242355974240660220831574465475385538225999441468800526279798639527719954482975383318595369185932045273260428680385172495001604929580172000490688000592577541753802459592520372341019296325982248467153849729844833511824575915542622642520725207681646302012754946819759713221077973032863716490634817606675569414251024695145559916809015464273998220334979259179593672488651153320677198046379791985842003576987420091505901472740064184192280151007166356442464145445068816459415795801362492546241710194926867757579127149640958924171538222536321995679790388126362957072203640033517404907067902632781854516655728731622748985008704499999170683629342128478081955651545630187700454659969717354526119885901466636410687860986202215538231279722023587073997241202698026831000229676236522283986842411400126546109921450207766833202979197414407926298278644395484620495115572336526850938415935031746944342416400851098584982978266279205574743726562604115445289174402284424139119336342688828018823095013659579870159041612239688758206402806109707553916746126783615517643362562030548251260547475093508134780257055511069007665542671093588776641597034621757818050352985199201095775810709167571316712728630149259048459791193598341280832380400822239364048903169458526701566458127222675449878413975393617937909811009703632598834660096504607615971345912963942345126568246981746535267687484223888758398721246347562025989366063662214012916862251966905375009134369584841625143702901772939469278290321714282487809940226239399056017232825190568656325221020068590463372889732537297435924300034618316737210918637146196716656807282361824868487156346959739908604262626548848030426667976364532765048071606118729207161232978505819137044470814115489693870017893797706876479886295006154537778349317665044167133364027621583604378545514015899090739653661626405260374797086663225545183328357720530464163552283987809845198359344370922278948332009317895013186290362251685571057103748778712461513820287805372440073552024680952103530528680591890227712276909210379670313228445039630569842696568090720731411597723890607786924555690410197595472503157317167434064610601618323958823638739848461759233838148377572662905597970020395762802433276703102539483202379044412635924433896080145744552682468156256500438671352811128592690329640181918311078245009525535873405005391347864220120276779463315156314350204526160793958802556402978403858738302353926594177373117795088074696809078605308093013652926290630163097860870795125485271031768484971066935266880376930226176541052044203325986676741302372607569054396729479800978896947825225857176134415825235982284541673476402758697170894917351819955656266017456327868598674276132624556865427355850288922250355436595584427615129133189239746702895772896636484801080957343844369789411522629295004894112437505885085047302885221284411301037542105280235949584215692889345729113869836580150264758607690420097375272588786575198996287943342493372480639481523504407711802481847713390653318990951651612754211332248009499729741979400288492878945839799706124034628994464836845442201103703193777092912451944419653229970671106938202851788675697243028480609848297277020144706811503257180598645226367342639429128259682261828089046847852657190410336099089583940110273546659650491741261810969634241841110718965910634372263691392658554052140463012392359416898501768387128008921491033943139511832409966027330215006376510298664739787595476526754300370789044325398781070641939127189864356253382766783265930491142609937896210322469076038119971524146406441777299384853013588982935097537628561099590559635115263352583608024997787891024924397724759440431618062644412975783404251077575838246318355203193192272595219825441050372715731419270473387644999879559209071339320517192270423367409756757730561694331961235174961840715221725194301710181859436142219144913479580365427286914023421359070826693460718821544692093284498633524500142411732582006980763609978641033120058193353799808210079716610155139830150584499033341640351865225774252683086231848866297243522388821639173948765962123548468322677514968274095591598285351005491625104570322466150213373820953966163334434536403431823570936582359586552695801224566164816420375031207549919836354776436819342556965578596981730580820862293445006165769461215919808872783757481467212963004046689588979349505635123172294539933782936543739358396940768149308271067259055822272193871348691219569891104849129772861234106161266661390297350524473623604336887625320333085213414633454091657117516870151123487985766367161376815633173217613661856975011381598940912181763037058234639766371916270614814710439943688482235049776624811636378305926235815521482213581264126864527129049567309204340519395874200614784649371975331067162722432466865906772748698935422282411156126375187326653794202830174487144371290881003632643890440714994815562561702238689298111401406153597209472449141634389230238458218994944504077503388627730336453063908509043080998818592331262590371456805317148101206396012047896659770646332497479918951088459510653812992401848727503246233663549030071507597375666133492469308751070289482032603749216910238000412115069679509806365067494978848655919214326351431820155630168082736667265265486893616890258762183084895173423990305354441390688878667722336175778752004448547585589694176248490091498125980980957674363037273411578253191479954807929992691472318311079899829018542713855201977100545860207142711501073328005613021152938460986877681612809893804991776029925873108044514825111619056914823987809611181298980733663971410128169615260954624907849453533387632978929882288880575681285740084128595453235422374480076522380532510475974568500637767862481755827337487442383822687873169674102292018612210699825022768190332289194795711076277099918746307566867610361313439930820461747867224589495376962757691263522418128842507197366270667314527952213514331309802037751046665372720964262078736278459822183424230871146309327221806151368216941779179891321039023888218532432421875784117058350350344494840589912042813857497188196740048284320765091815928534637157984358179145973663235732826436614993308986683743071710209182399944504004622000539890263757056882331137646004718920796233023237890224482969209815014528058943974478489601784388363333722040165996983390613751287935823204342689220281565528421688186427220566328990862636491796361444796120518418447668007167837010905505965522415956904214308863204697559154066262333105902032633781356968818093036634883846362777621552275433014900278130812898233631780565526002650688257039481079504742847335743492030720967675520392345532305534751994818041642823234725014719862175204396518221965898395885769963975005883647140270599661006050609618622327054491051834665838394721370799981609350925228029745580260163869135422549109635783646686538042376431606795377450880091431055071924464073016866833656112475483845020534901146039974145046153841980997828519891885144691945780849085080901538725033272899343942534414792226281570892678864553046785268873388574217552174241910929438870396263024009035851413728115972526359497401867191732721679141680468901853808482790792825977591067190548421963865322659870513306098164239486633402634274296678834088400919251928555511433923746754638652605739268032067813272115987806502754246927783482242013592488549760998673502778879995481799646782913913980508376618354966916562470539691123990825930970923361484125362701569331492644668340608209557265848485222428147363508810854993880081085530326870384092439872392758576606662850650423647821144442521862868908025858963948131795745201653792866682134379252959067654431668476888642934041333878204807992005837155264669632184693751603934485902762849808995688766803337886552842305891235659489081940468079645059156580569339661774308493082001977381023227036312719034890113262311581487062531286195685842739947971646130064634185128947376046097281298534360245344667672046857836317942521324360531989659180840551883222494260025657176934026344969259242143469418308060232393846160113794878330342258890412768285377077267303401524588940152940206549411305497479038978170770671596551615814966467785145029983115077131470758483414370532765750686930871942916797340409898330022201257498777771227990842460959984917079943383257391261282852787751377294401559609589434881746229058635162018540357039840658381243155402833376662126624061630576432420886721642751047506487203860756464242539272489167198341565452311262733543051532244501484099733610444809197621092667468256768531226733351627692610089807729156327657463291403991125032177677811496672624453102140389697423541383890275490807275020223225302976916953686486485541251281402481550906266041786626818287388029175703135006648535834006169883442772889447302743088771117745243089006174960026630536234181510974378677701111147440594086156495184205227348770052839620338344430014134365183866698120606502656022276507793846371752306174593761127459829137267868817649429203974634227865305391600037653602068794706118317541571016076834206889654849042472739050861296650001447230689231640153010695888481322836267796625368778336863504068643950251203179760856320927695726810965345414626089372133848926531645151160400546466451628079459464215964454855262290805652772512880967845796040341973025408560462675619437148996128787007871386111104549979733111424847642091641367829152818656020774866067830196293515893516850815883494018282282057965455560462960310767712498823640888986375979151140850123754032321082036493650039489487280083351009750637371918670434311718332003878942136960882961212764199286216246330929769426263584358397493339394210853481280332074800720064015922054093390995565753241967479191618565822432906684477315535768496717834521845937774081580157238281422715236278054028040957692683486679790257583679644302958461957843160770153714465593204419042349145104875287536626877060734976671305699023989743438328866510225604131884579431987176279760639338676888545170892237313898299356111370464026354694063575904436198079891791405171664293919596674009753830327663981388377968517991231222285370542124304663392062203953711350298794558183055426454518501325170228217117195122418691824548577285441368996829826710253697562632181603125457969586774030389828853422243692494872379114771066527459879613632060231464043965165667996966836430706484711724044438536470781196611723044854186253129773618660781986390437411146712315657059724025061620694241024574039076775880244706114784503481643828080773376605021477210186610757725073411774727801389546564878387671717102825191821753402217774317307968520771113038844280565535923907383125549960600024463714427164734157200559720110720364083535859623890268108201967776930808039407402662126380360850215775801354447410272239311938894311447149804213400593866648797372730877875971280318080025369900620984417251732975219103197603224499651543847260278163204958690311735985168782624340899433915332987948889984267166082074126850731172625933138175898952280275185717643446622409214521170867335332870268086738623839783438399814104049877999955984269270714601875992299089340142931609171003622304014689241047180033962411481357074133244116273221365918120910593904079621832907159673268184738599512713402919553755688004444064397307744894441367120646153296582969491243568780971316152218149547737013028806940386507778252860102627422275038013774555194921628154513953814974097339798725198387833100119278733143600118120997166317934730261843593197805232046623520961560466996748065373705100507722022065383249636379255148712893378568953055069279048686534087065966498372669270156651164886975211112927392285176478687049259860641089757716699925684198757787244157100798628050207605366084774157041548926274994064650833625413596613897777097078525766622816342877540745553533444880295218646076509071814075337042498910015255936825914610552750448280200827428278735462189025497517954176868893025922470319742522525051957227992947485155005997704662832046507986810173949165456083981050811006846493054980127096082136630334130059880506337132687264390407531080547979682854318232628161681617001694587204672590304023079653085685114091557364805636737318354902100321525339101849554018889712186825178181904040158890383922894390593022729649124108369184286072997846081518733186216244232130538651718173410220474449411530595772151233036164289823933528744470515988734932953152602211861766757499930820326042788371548275595167913696668111654721709234257953292814105871956395622809858792978888023756003577114568221293161468237998910121137585323298780767337400593180998894920283294571153148143669575893942477652561546537513102076271284708698110246803362785683540890771476926458258726120787561555380490161588545208684243852325514077993087243841329709357909908209918137411111953916524767032311121128061968715280092702475931303856002181043085339178922817295394055912921783143144747171733603167493713898302757397317535683191076095546971144640370296922426448719641803519326257023499027455657744941113879043181574335913979585929687006977223253127252749902759710936065486254152762348362774194602815674939971207184856243051481105639289654290840537229620241193535584421742671605257083743390249378213775808432379138661971216231742866325442378051913780184763185414828797013089712432946266434812230347239847261860749858936378846588545884198881413611474864825234627723848751056319898899172092933181580833695125210468110553959275386238804687070548832501809687846854539307228331755434406205680407163684989965313233046347584286752314048437198879327046515639955201675858605083894452382706527504726849355736194705794045878031720879310044421560901271045257622208140170758317429236706755693557260975662433691777263965157443750988902590560048946054379222274509619542849864542981325988167566404889550810478226341147090067266305393925471662739492314205413627655245898725681136941562554385171423594934824730343619740023051488011898497408496696811358919964403375446189778214447671254486327372995927932227415607713692209392850228325512805233723470773171229164527843511902082861733531212349849229787300136462415775091519912193375133008265815294670084759231556188723382624213741287061843127110924079186523175989663920773578702909521529623799273594589227803064276219987882144406655472278155407809946708070213590546428872672104047714374409686356718090860324977435552098006643211178723353382635137497265994467505630476597324801606346963348960661426926017162064944993842792093014484750363398342028905171868230983193352440636484263378356181245204884937733368425131249676291566667887382414688424314746739106917965646121050410384316488069645268672489575644468037495658678585154314764934925469832199705015037714895861104766766234386961415869484831222529891760069562066194354681888015656333708719659130060705060401332833702251717837977062088751479839035928689262304728646545962982956236508913807489093669927659919784129827430258287465046600043585684997089778673148224095161992036673146764262165353453301393997858215079418218127871096094638611240035536031210380654228105635415086086965520688000175768569253916506335532704256728274304732559385877333033282309824834313766396255364974675993993146270759339580304893852029038011521159479930245905938592428236613868789511832872685555258666624626150173939439520590016400198725805308360730556845393421152623408918157315535248271237193796360729691573518920613309113298229467100818269539155846987167129106129139847174610921477169160381154407796402414117146503627766455911659512280037922859213419763388510134747047606708271175039579253910106146832435354967921059084208304181882868658233694231643336424184580354688317251550444374936501578400577441370289596808026383973283442353706705471472331192461158639014178553104251680871402140360950012227404057484681974242936257312679671675446698313160858757631199915098840670859333223541931303421766167905826066721633331741656800546237426155602616303447816642476924326781248552951550620319090954986709504887900312248931223094338507463233865998422676063920461266101605955666302674141077300546244920885694187192400460425674001510546060856773752291081255875572041139684462690159614167581795894561975343693511622755404866153289229339278561635700093697346861242906033069490776732658004805244211136244229460791411357189353308598977449563912402680747210012725635553549553159145732100961835039061522896074175029292813427865237023229917539900964547693638869510572748131334766464079630520829837255464794731506184345163829382244472444588889946806016524733787900152248241705403476313735449768818228685525663697638418630672958934527748425929207741981149395132965201617651517000103989406278437807280908309550982565741618837994213598464587759813531243355662371092488507201095290357281278926519448315005764783316796894090606407878157416776398477767454258736663794092988151950420146026552415054192761783657995228283135751050764565135192129991683291356262747823831308818442088292768063357064226896475311812197802448814764720794725275815864224899271194976667613965241826162323561415157903520423354006181675792492906940174920030523516074063873083547482218010695327428648126187085164546348144833059321967260656012176082050927561812257862026827768638163692252760516980444190446106909329215489807959188872555170389286887323571710077401782404878120579299485504932005933667582811202842112430956223546643764292124326381014335577918689720096748879543399386193566077751781625867360033218652726841925713271742316479905170163650188319180042676845982811652072101143796571588148472109585783663811065463139096591229305746103564493833544153043885744026727140916091862705343469995786594196610674063959903878325756853495239429678293342279725369305370160562876379473356221703813600902300747269445152233697013973404637654519076737251228928734413004695570290769504505318252853106013738109622329476713980606770487539545779575908592323129000385797441574362848926923618065377501145598941309792179163589803856967737084157565247926844764857508504844303348778919396000108457760931043620901988948246691732449065650635444460862041610908737333898444925318041297925317412160907743753615814303540232986924208144880760811434235349498778398449727666208107047786607149120578041652028245308827886198314993112159547788668509352969180943920911298442765097702653059737740421764431044749875700054114269975302979129816776531552397528173614922092799687872012004313378258079219720092194616181411895485541404302679875104409968714281683361440472446747574926186551836150738294759911916070959017596847382577384614446712450309910306011397767547497380310570314033787254677968050512645564382308339223191493399675967638952393779413554919912800591788281143457696222587426817742146227237571403002721565664312294484495988106191966491514442941850615431810837911954931623107641234339520660616528231164238885563732449172542682304319363868981447758826196088754535647500659397664461248750098549898935400157230017040862963143546356886794328906945591144193351967884134622936464718873243474478338572263873788623298891726465532568412781015457852215148217020800979723334780951326851769274247277745471962656726664478724349415936010491113369348370362793604825011899205444619443226388002482316129185712735539928403542104913485725301066009527849960457600336179138127649030814210554192364290858719717651998671111483730761906169805302545387458874213053941330134036181019979484693118401088354097481034213743392629780144966081698539044993710024478364247514018789226290509228125749410731174336629105118184382732955997215611227851077508472411193263817232289264585645992838198997668797175351309690557899538128494064718734884302507916051980000983296224340466698731173038026463028950336371473442970700797325261974340200531017939480679917547161296674957285477662489181477336036087051124555308178783230791432289285866359505501460178937768855933120746940031241520799021398989228260544348188255837036251481312968491113343259747325140770574005233468107209601628952506619495507097737147818700501901685530226505049850512332730985768929736422441994371918161155435787103292903523661667451293026518113467603462046971356045685340741917241969627958531375729772078837885532202629089478329522174229719750411544919173085398842155260694991181910609743235197609448005816365592723418451794885528116467308208150888388096591746225508593645984683302153717335582342374174868336859738458710116015928693598519589737622070881384047925197313024171694879081414240218348918251137092863659620353015623004010044098131264942499336417141693822536089524056769812616479329539837315785277500434497603314850609558202909321145231551603516986654682932102002084614041525832428032597961284841253613252104457840558868904135658606098274334814756226653258270470487730565020261898407748208330103598540526109584824499981047887679352846985496512331789558236141300986405166375883920023585186186990300918206116018048841034551138612903531765051305542039506911692433102274930603321306087704406168184665906826537506760163666447348342186133660352478785114908319820387530013052094533969366741613729502389872254582774169110078382476421218305828006109833592153021153211660354677185097950184373395705940794335552793111244480222310565010222368831258363164361656808465862192441603279274630010416262319131360494264762760848889939409013058783662829447321970018597597332640733147029079324821646571204674737159725091108667107257250967600377658537020641187153030660066210134068476373101621091051688415604692699982551850567941487592451050084949807732070286702079903242134419830425905721832048182083840242849189011894227586107505138521816486578295648933566212634218738901163492241946600730839333771822927401947475083394537002648134740022999356756557171350133554763344756838811021753627899243471169954151976400307192375251244010428947377399547941440646004804635071831769784007640761452392383340482292814468420145389442157312241775004410162102681590834511136509091016241779401479918600172995824259911575852546502458530692567781516743935499732918978555662285595272619747263015965143944577254434170086126537955821460304023525671770986755783499657919129834639820122632915176020226000113205636185085836431278761708055035064549906101374457252701661902373568435400256076345609748581181942476926903262022305461127183654257665050712848173793680797364417143337198757447058460810157733507040119533559234226530336130219765932512279940536356471755261402365748796812589007919682054028230129529856706160433799310660542235569649259743844910627175688001404079783906450850084676274687773493223712040360906328046710737948335229216069286255120548145206811608595267670982185919478610566287780864899236580038704281337859277110293888000000893202835892707355557619403449366554404597460707524237236458206451544407679389745624332964973040329689902849789593932551005508426707574175287899954280402545658647480526714091305293138017633154500586786321956978158592346391931363386926807564152099722732021191903688067624687838313607127786272513151235887354604120402761731668817459887834763484132384389241118277067607830942415341012337924059124334048500170425428765604124724696797452237211928793857907098969920557338869158584565111953901567790502709517278413947710397712629522783212240109368141069216036178319779362444056997730527885246780998161420531824699135416340839034142178200893147425097032740188886505854361612695168481817942769317832613539373351538473539867683530717747906062253548286030051669700173199414188997374046577740996948985732579334543312271549406448956597383428034328329939896633015183706095462362413948361753581870702270721512738332799701650255382526080401392325968426769720108300006005904128781808672569386995824557835259093749232441086189968786263990655029786107930374779035865478917071725857656790049675306653929419263866716753625197831726153226818745045562897411625786776991363191479488655789634905950598837669617034418442813411159945624511280047070818297676655565529857596887037062591292005916901096846641268969171025215144115330925926211697144421186288115119929361755777154463734986321282397864524111805596026590523168684765558021367246732942151083194228538650592516815721190446119324290222753882070016282986157832172972460308961693670227728055654645304226619757703832072380550345419785064495191159483876479541194214622434025711277682860420314162542500584747690657231200794698105298998527493711562754356418145087446709784125612874054944943417325226129654122768442541805959626114023879550329230465676376783266115103058143250168491116813957090124913192357311260200208219593653801916009181096048075303024566249864720976545421527662966746412319683159082837445916321915220671466670490478292486199753280602754554334743908210782639369414973235546468655974007226693365831276764125888831188254384126308400713076385862074084061667987437750527496024918099072431415373670688193499709749763322865102007789851271436482038746377614336110434716707849408410548708535611719609652172254974689716440245843163284613978467484766393004992562461414872087924893206157353938844935915879129154436175109886170868885837076767673886414824831808705566026289067149667763816221204663278148995128616917703348405548281408423724672911583681954207244742009024125346207797318398737393439328755076182176782530486604629719239698105401244017164370445319232769418413295551319118172455469705602800578605920846526718798138145409480233935135723662736777198234182155122099257596950828005498914070613203590485557377328748190776205349579626600146270286088066123161730216632094597150119742714296886735795254099663750915459059927170841734822725009363063302330392747278263751591877112121979176522419255129443545979668485850813587080033899086104947399521568717981938423072705423134144575226791057227212715406812559662487500089895402069907237822942617594880289761567569538821559505015887371569521975647215969140045359837402446945853531523557107199466246409421473371314753808147558837758753403784219611446231692388385861696605117301986732150364466687505089082047356511465000460346044689471509511707510051782914618050145611979482451338993341200465017593901545132995487905413921312277323773173001302783546679627123411174753359610419657053602901419767436490534202612300302011366447240650049066966091656535834801636551188250438563123016222766154965414708814307798650368031667148418023983520963616928370883488620295462906765277957676332822930438797978186740931469345905267573051625846417878858477214769939840831990874222228719883379586506196936499472112706895198760325821049100168786668390486397124858923051045847802718013961838419348832239866088553683246954122711074137581427452434995653925252896305494497941863271271804175080354027310960989128924599685483945863459190227003368535157050814195313870853010601419413631707381089924638606202961534094068381199191543298674477528365186491831720379664073316091936728893075055358555723015233853170355787362661915463193314250532126026715357818660614873867386727971691698032055189154010777845732068916623348541714397322294424713495144561440853228960969528606978533715912810018341073050835174143750713659128597048125575241152270497683819065899761099252587501325892636855435736739967011107305596142377869034266473984908654667322930949332562081227035802813995365228379548462714517386714433688210687119890646089767149929640021244199181938015271343835412328129890667549777509209579521237742977200085875558266533050755290900901432719701619632763267879747151650102803151131301761918020481359686931632212074042761080564705383920931220171388013417277669261834251401128772914741051614185935566183174407824260663089502183238896301644133427690210933160460033192984365677447219502141142147201459749823766541418014575509992969275922094064398705563453732642165303598695479231086937840785776612753338177797127629333537817806595367044894442784950710605587105122547065982953842211699445969774206401637120645525583448621159100401162997743049024310951786360080177193033366160041788933105717487162327961817435009533713529585633644117948981567832016717679264047859752714734612722099146618282028863824241458858788632069012454453044167301750738624589608546913055565573100615999311732483442039558538451494099140914802581712135423146515933776151383043448815523774658592245281875179101714272364268151368000298834973186551271253123676796538410378185522050111534124426512491871890145171198883703261206985307412478547050497896201559002202230490604985862842949385400887181957881222860262024629271795102751263451941814022390871106405731445933364414996166170305417168517082087521185596947005299149675943942399650826532982567837494898573832947455694024519434301089522501126842617803063819645459941571626307558484468270305026774010494877325970717652142310339551888757440781889100643476556009516449323653403163807188245394039343430880916974250819941988140340625868223381562917820608315550158809197176414760982860900263415349868585437636648883125943936341558027991119585872444935738523346332626367679110514059106680208806886277963259153458474918626580254656273672668230753611993338113136007175216546672506343424481867512890071033191607350361590045395042475277568272927859828346881379017537761072935699107950150056757675450280081644811883013265243221564117459287334897929077116051776113490693314210236609803236543397780769746450169501610362210360316820718549168792962556326966196254643559440247464901991420749250151673035249465811755690929350533841699935397039213390307378352723251071223705686778721353203071354248368787921564734128772610727349637902797374280395935193264071636979291148570174892265995717899028601872955588851263537765280384760282298993058694493419044249742063252111454736576282637527298014870971309427814035747592820540635132677628375621789441290270651232423789435600573856177403376819909028723539743631607891608105019227526674010730180249920435398706486473929462681924145885021464872569553839588696367640294352585988348497253195872578009257019190990343929341795354091251243896766866181249583045367555370286208861294941903936963926238319011093389974277289631073265370692924338116670235298559805627671732377594089736101364524557233535592712346511599798269024808677233408347834876357493297563635976436780176215880539534134363034626198475384958849710816664975145689534247244706768711580550881969767169525440121275475380910134118520999652429209764665798308990728167870532412254252001487735827332129931151564242888001457577542435399974852465069391953257733212176381584078489195027969434274788691233809423271591469919687309827252598335019742943176212550196656992452797906661565289597019499596802138079755144442772320897057740487997909286458764927704030246079389292753306296622354926567654277259341854505223279054041800990840788709310871763440209683956850118793073102464752316576478911706178451370238787356045130438996704889938010956449941941628956266007489309263284356950943320897187512124368191112490053214247512350847003332954986411238599377707286955443207143270465986992136874860109488082672177626154764900666434005411849425751630143053229301147134692251158682403009211469104492614993017745854410530120633884986895769574495181095493490527835753725917381000742512650261737565311171912809049791988160597712074894251248159777072999462205021819786533153250123915987309390702268366515795127353253689648339377843642360815681152903214909775935227129344871904444932496494057954663720042916193719258032129046636573679479245547926918831036496089412621130123479868945378182543632714601666865350968681938045639616317105336251153177480159242574209320782263874022325095588719550406890566459715787966454832963083423714006745557433945739019649936053237628412810072061651867305811026944945443980768131764213544026201721177017954838508100217546951654179885143059586126014420522491071048526928621499035548556838452316684404429817251394227317845036895100433317686172188439880308063002363873758831521749699983926953862365628159997351117773836488396885798734990808742102702106142337765218108304234009526376049626847367933401101606123611026088539029365534110794754563539815831816728218910927788723938962870334528371733941219893189549794618104583204438873577252172173408813896963037944503553299370667707156729741170542236413572334876080577679928582832178632452988312636459924905770768373327032769814616189425047238882703937131621295991621201304348251939014093570594775970025321401740551559976263280503931613191739170590422204998582285154338872975105634676121537972551510152461412101882550837842603018934090446393328515425181954325592699920971083764454209285966590310216202741323714943982498601234139008741465212058518004732194832044936701864867841746888399908039135766849277613061512727772361046890275295024194758173949057947940134731796386770513139195741277740027418357210379673893883251762906537416181785234901263804022061248180134050445541704116823828245134298162182593177935489470948411934272117990101239541927792305693201905418270811024517429819339869163483663387016814658117014684152476043905702492694051847857284063671448429554608723744582789088841487281672758794423016141482273447232795722707937813541373047871644340209977914098957612510017604706009384275413953512843762865878307275630515493265002172578381749831262545597261549649534945117229580053958890499043455907191997056515959616985384248815057406268579371820162768279262778985820746478605054932443250230683310657181603946562605315966891964710556964253557852618795884651686261842018946777813959716339699183034527705721517409218113089146218646028229306200498911696558510639037186338400234518912954859173293775632557377746916889723759254443651164129399590353920928540311361733337789376877439991631802488028628528678565538703328521975762395520121459934522593897749543636849264821516763721506611335802554422628267747822529408393812177229277493610147516882356368149351703874844780113566424487344061201422432412213419792978444699139459791302866305959733318621369648939936892296266036563773553600905810087761666305793989357725359083098533546602833249377159198838059194870345782231610907546785057824878099343089846931255455367474002146569569770312874490784345639665358896121378645777486361468640382682492918221641600318968766646719000001180980145505880634096692813739427236585358441580404238564741386061241930945880488851132609885847304157764452118269857861433140818268135522496504396703595157576314943614223732074206010659604298940029881252767174366293239983712387746819197765592973625770295941114760943845781366131088829157004675328191331548023090263471856496092651396619296572238142528551629914393676924791335980516588819203911445939735999248800286335469729126472716126187021865344804481902765759197580308369933555243319283277569905966685137880745263815400521293330916828627632216941415339412415817223961464735163815509651624275175992469159041502192727437383535065890737428445160089110191538544580279384715257499407372514678233288279048698642888229727608584141723147848614109075237186317983166431471808219990591304544389255789967628053433242153807680681224214302858413267676084642775912291609210805761766693917486861786367533451745616959586144625858587689143677690971969040239673843758920953182230940710957193565850453914174671950194745832332865256607770277228585056218645985853847068295185818156215687131206825880749348489414741950385493236782543551833440799202095027397305081957012131782778507266226587043533948090543709284080143565660756048173717703123088442259507702049450014861446996745969621092487232931155584033316747611787986792682376442350723187729209114299466150894082316280900904619871156215395890796534259535687686720938669430590166247373348121198074146855463625533169112254918283744309249163960002247834290717133166804647264557651544367766861505674024147560524182665207634019737383495763430786303851669553094573092494146151800024072281589078986693314437409091028862306358405574316264426826708822943843912521434390002913555919234823067788020548449157272095612027518152023645842427828864479677354835836568053394099407207089639307896590242993961963646744636591791033948671200841362609301828223208387717581260512138296765985760075204651331970776751648119341734201666677411607700682129841684228783200586263327710825223512628230205554072922152993473318783693710967869672655992836063564988916740093747928665345833126125259669602118073533220928752571549766950927331200970951348059067468829879012314994976037173399844624442368783402184681719507103575492221200327034378082181607332849853822608992954764776186051609270837083268822984922733474775937054361589804573742387946837617587469859342085612293131832304537906538422234098156916986352472110006791567246126514596016118120888341016618121852932022865403769890504929396160206311126218768092393567348876600101029877399797136419845342863126856743078596514701567835389275928236033791731781449728616729966721374206445064107246910030224935684163111851777254165511445566105679410953503274124874194010339867904149327954278623774198502756117624867655720677942557646615216200007926270355299768594123528831314992203979109723996008783279597792695945873089936021143126869454796848595557174877128001231508401648730965587632687719378183016726584240138405885666370424555972167355663331524157844308185544721600219074754080226211610834095762547139442314190728531207677389534163821109184018969842232566809017248183307172162349311247559969050222101018997497961321060415153191356713765477370642968138406979252105355799577510833395551234248278223513924182960063928249808362383721742517422452640270138044814701491109756362396418196680829855713371827108831878552949733594952593334001809199049736688018644706696956732437911156817575729697363180310528437669893228052235900467455898564941850701772328482636525191968520474089763888316213161226437078514492825163938269480081794894472257390649033450731528905243085753788678067406046338964272996580374303092542213671777763882033541262849972165704783505423552987677660206831838409661129533510731525376580195953735088723259525137153501633975588346645732672161539475975185460900420232054587871803234562983339171351485922596057176224937954759446188865881845807788538682269227165075888401281088861980724735577637111742481729862287366119644381945757687137716913606189139070100855528714702811812776034418277970615996236948923946620131346656511509181641354797228821920807360770029524320252292443805593586891292639908100650637325891688393116490193825978534911728419725214194743696047753518851244310102104356920519821140774387071824737015856568528905160779618946615038519591300703246055127328260855793168590954820000591872443006766222066278678133050300840357330822681027845466140790842003139967621314745812137741979883644850835728261002394038537650373260782953345996394387090659918941030067162253189431712557048294341991049410962229572899029789987658450440857489887588170341360116008823472514040041013402520703201419850984779126999822812434227470879266330923688513723839054219868395438547981499052500882689757437376485044773962616874360394047544620380516848783809104856466852993200372912202530264296316726275085134584812940406849883060822041201597186507021597316753116611155247371712367512490781148462809469081624645342022181138662194607279990586933092118986726109351644466724315623459431076322487561269800805288785124211027933346306137860724224441140955024704751820572388138916336759143611521066977506693258361170064899478964388490314414631471107062562287523453924435201850538387567327053565809854764782346706437241050891568637088403148548315884679965334094159923995185655835924854500652623006136854125890280505161889078430988034157152129343776237917616258683255644701505104784277838142417029496246547285452473757674213810089342131119587383447567296574987332431775497553197383179583531220031875606588711689653294784246280926550088604857880818490867892799070987210265843016548892418230635205664748427307848704310263206955689227330828339862311080399679799228290320048691513436576196301423028015146723326447689352320105186814293548847077576838773235495100152281766734688289842201833479661609320334147576048174407733294414508313529194893373474255024604392311119249397277641877524413978605811664453675806153817913166763311117854635783488649114557239404853661344650975050500888387495189815768987821755219625337255265939729921849736740427840533865651078885935573310047511631771952132060452581427194862502949043185333662453398412425110852854458275469222128980651231196191912295727890686752020289228903122340663243340238753892228043420195174293078329338825333087386968076091683532309284144067392227900336870112918573234579588708647654542357131261261522457812344107698880638304686062908527117798913073077204209700633948008867275509648644135614334528627249134291936454343668093020042034933255043452130606682787083310657504467895627157189519868238262724341329286500792179019749007279574392014898186277652680461700824969006901011349025837506472971851232946797180181952001311347097196066248362447442585276284728768820587446341327534321792950578226864580204943607690295565205273624035556432796547545154473980253340820664378811572579579808121747772496706866681785054899603987742400066483175945994448734252776222895099600891803821169535683090179067144572857619047629361442817911354309704297117987387819626685468726265291504681272724209263303060900329753041973338638468527651830305841026644324243238254744822760071463506513487914793187773263121383419619418807788785870576672885768911808728428862569750493878631579488029788703077339867738616611144535598343863586903572293302025341652435764027268616628111743043109411007241872473605471992479889091336074539687627556964918268538538916030154918858880370104511990689330078688450231444426275974521661337171671802130462618712321673460395354194408376597986385253135669547823510428227565267683424951778702107630503058597269669328773892589029179607966509963905616465346729792814583613117152705457561666873457834820940508211569323129601746012791152328579178306780817150888270998479482431867286212640292842746980996075751394935788480501591518244559313121746642626572025628034030761862947657015536074650384257248846919221240044399358128321610151110791513341935219476099821418072965505266892131681032678319105093106671403068972571495222127748341026869681867693615449277778288189659520357350869978059664621133369025534982286376766427142914443690906639334395388761128366916590819251544267291919763040870329561487031752374687799126879961454939383960431209376469836550547673043812897846163643406713809670356361098023454748391033446059845784605943668925435629193868211944619351216150609855785481893155446376121031883097276670689958403861066418077583516682820000493011932838523193372574824762243449880396004831535037583321606552196296375366039592293190876239280340730354974194003834298163264684354715281944446471738311551555710557206622848572881002800445392908916978517613556459404994534070217292804504900364653468124905769134866105774283329507680856314335632688779148960126954415045746224849596889465956347363576465068203233994472886449941834679063733273291968146346927160003705113184447779950943197938415815114529627712001113604973418195399092312546898605519623943134485364530739732091924097395093278233897409433339129268702531300963740686826992344545637569729649123838718752254001047987760044094412380171096686131803777562064617709958377931251554499180688745152805248076930820103637405622482264828360265493662300785126652549311701019288519768007207315658323976149785815876967508984763524484537658746040858437914251871965246999926576750995570535557382108981083658975106714761035820916995895189029700511216362769598011145347710182107922143117080740262068191385664796390698104962795576482494501602023520010256069906486212856951698804602432285552668539454429008232770834591551131500413723367303809959485155262318814445389534532881549309795807252862356457792559757078663298766808811942881106796593734988827280434803306705964614196022265551843550428175647587329327461624932115740471938128475240770990405057301083238199836572226461854618294581877668246821131523068566856739196315273550528507223061898521886917145676899774525157666397180018821705419339879000320445389821415774171109706867324122443334868443700796491624447266048259039676560823716340752855521680276282926412075966460666632293842497583749851224515316409659573438707917835845009468203434566766833005882933273692242320078322182243023022601820447531052638618560548249540178661869003222813876615712322024226809691293023375066110711358347587064099123390639153038001483501316890865556776464326524769487258169609521905789107579782047842499812103354739742192617585790000145774734043007479958340104373371295599450762287494946175945175970558778957753618370312607934109648774047488273018784585468253744155600410650255109345432652026388812873450715456903676454504256276932469261217212508418218562187703931122799938134431951871226392477276370105520980178653047555760232243850851139574660821232727175767993846447815422161968481353160326634965336896691902488645254874762209977343615047259628134281537121273414450811441227189259461230758485223671442413215119556526501703926046958289127714118590141551286623889067311492631483014782643697700626664603371015327179247568216781855101916579910819043485550911155013388837933313142939356170711395780573584783843874150108513756752290804197354591816222075767041129458135896051491993667739409305292998530436229181469398784997383646563648480538046217973515051541497938572907115210351730204170391130244379575618838704818474197022099750760334209913904166918939012439343704688461898387203456936389034119173017337229567390005951643135311657272350295852500940030200092564942262156855316143201240516755174560634793243005475863180648904191555667749034528407232944089487657708841799333081427160300347862747018905936876625578183424057124507229037243870010563200274314756776273046493461734805850956920238937655918896762483754993951959111249197362706260315185308887851026078659822056268546953930024973054515593727999357891357899814907963038325553000648981666977615205624772286806329531797057669988630944371841696428257890912378324708305275002625814429138449905008114214116012925669649939767164179594673022013636822394308311034388142508153956388022136473685859089429988686635056712927720384364924492201124869228270721306435408151725022096213316287935339657196853861938839509629488713730160627504741417158881645608369706699859969505400087202324015394593484177817425914404091757375878856189910398991230350172373746902730894400874965541022869158188621266938567698998289719746853545176084782713985168394428638901835954668207425592970216246997287749783722930324727880463066617819846549583401149600081709756379747512428062752333306027246819899233194814751344376327089277091550835287362365090557992755551323887498936801204482092315373159995730336731495191844536132755802908507650493263892428102705111579066789706999177915074702871350488921248274741933469770852717169500166291255347421134233771464603916517397508966734196844928080893781944698523652957045769724914520510175669137444293323865254036086894340295306256882985070202874121681496588867166066803136565874035095484473510229660013171038822253747804308944957983892839821248859551904374173542451899784154812101445027188240015033346034940259728833631509918986086192971172682182607996604943867818894534890527324518516714678204981758782681865106327534416587635492403287245850118728926792106917104608037796745274391131652681980896891637397873412455620220007702241113068162354501524034805355885995286728194370143148599257913435108119926694050144485805251438422017109408428966913619071688071378504771991287904265892179085435631400244804285781197382863604205888440971667454479297426574535668390819614458181811726319351420542712949536589402498249831186774862429006835315063795888378739994255137286103568783424059306885709783973536709098842794806537314476338723622358545501992902454486447329234755229653740997791227511685195616172319256717999147682642368879980940502554537589056452876369043122734108287077851086799329417658993597704906388189546929932327588356611031480736981397698579943036768194885888302356510478778159617161450567368503956920074445076658817663361497991373710511889602224652312663204107414094032901721252835784947129900430408561956080771426202538228958993588378903761254978630336401340482171342752118122199885694748953608086258316180807143930468230487148839458363737689640801911327688044107602164726295839171566689291884763822515822424475373586788788707488335755255857379891371044710105031365916880158187351064971286772709358917937745612013502948800284365129075645079173338969489011279408004886467996300451471923836318725910467491331212154222740699155814594397374866851017614816454271192301546538836843506622621783257019887226276639250841953185127790853741547810844991581700883608630409298434913035765260886571513563696504052677236979469264796880672627950283584703093956902599710311493027198808964338344946194596857788103584746004720917956493415636277095824124567221673507677539511190695037800164371942788927643763453439435265307484837101271193610927877098860964073868643251655560421384156184522542053089617615676512911819612557116832494839949624578655174782695556000819295983057369990170645085537103269545232957335396024259520023341217720947452308451597227075393277788468883071544734967923984315089840859127746725313212267900453757119685852781298499669711400315519444321478172238126584990929009341243825872510686499800153440763971227604558434258030085111009214617866208823463122611994518933786839874671454495844308763552872119740041364496928624004856916362519041447070396491285859947903867360731554727455519905614457940428737606063772106101437711080016814486882119203192449930030891227611949487783143338117844887877687346245188942260234979599674278325821278553963161322659136894376968452650148445207121499292877685849194522470056538635178922310579658996621467597640647715983278012358160072296896293114602717411757005098757073643849883176318489197041171825592517020040903128632654434803274658857345400059560452687421099195588309483816628883164878543347347901086310694272574296618331529529462895037775674495922447392842850703473833191655893759854525538357925814356592726882590139237922270834339373382172577562789496199775887872601472151004405411719612784407940185654514796294615167240126556323355745543679066259600871156222032729406651484795245925848797966515251313682957674531413097117596441146340905984799559492502593097893060121011408251466589172691592492396525880655277467053006409505154195539334130256533378659797274866020538225239889777749410184924447668412309008278879980614034712747144889607919539263807139653179085874171098942847241621754127608369423180401464962974627080822922738803774906651485449572177151104847378283895567070315011259222772049920672771146102452001087863000018156393203386120393447497751177460566681789089195556409030272584904597888844762660912658904998508905449837796757800690476719097000552285468593594963463310916916044519624924138801672295415794477261196818750490706181510838856036493515741513657528019421339610654700996322816850136609107015450304435341454406898299942565531772300859613321552148726821337789496769606272605498298912159523524445763970453512683358916577213695838397219305099002788496658584030664486245816918155776388350676092619930424279121025978651319026470773752054755276926127500316748598794450876845287911150876338153928431722341006203346468431916353405985284123657427185503522850339718066123921214341056602787168652170674884755215479078002427285923967289475991126769636324049362060149913058841407919303700182512246764186662034607658873747005253144835637041127252162168930218783675515162670984672938427039154992456356243564149982913712169481841660524697028544305981030814471001263792925240361677051058682706185835128890782448800383469339615968514442798410412706751713255529141246571969165745880073216522577948844402014287151196560336193959566379462600559907007827601870557079654244102516402685414775113029415228796760307949118211365284395030313757679250371094378534158894640900755909450150117843187601708215596985182544843522452278365086710182111214389592403404772957334916066833790920827846610225055382805813896767862075468315543548390056014166794607066395193448728905177281158955360053958242391687086177109828190955195560957162372176504787930050663035850539830468912137934542471080920138955806391748694632843398671745742609879534213968144374484468606672645452709367154071331998091966900924135625289159610907247812758536398309923048090615153977542476396809857754107597062334981045050571377264702521327687822555546068587067437440588832936092390545570662194321852389700172832324314170623001479977480018820027632809225124601311424252922470124981834382384318054854134835114277607117097147854222302914767208852814169559413924975804548660374055177567271099745901997392553875667106404008327129916479287923695451121136232312486180034571060559198316075506459503460742912753864029029087884688377200965741692353611638387338327398709909238367595169340766657936698606322095653920351529551945796330749056411105274220095070155159738617777647464123094337023287782399123718908821710066748239772136160735957974005446934371805604704778488358423164724877856106699102701648001102823954971989262202529144106921383679467495956445457798366930079078832943073390441524173177470600648276403532792856759230710555859644434176253348348800959801585895597633611503061063906381298381420240241861664381159325414128889926599671789765548053342426975528643744669410667480349111233622373774987250374448996278725483642022590806700082082444861795387466835168834782223719874219218472681235971019937039596281539720843302145788708780897200190426931837677498853130450241236854768074498824968050899165996586565577279401290272543892367965415549742481809084892910090439673781428523408259877890904102806255709477532937195982740087033895575258279937957062908602668693537319187726557440525324004931495396284423015469750377655815177018738038834888162127280538661365220945334464073604385129040501500135193514793022196081092779539089324829271440447377176634463728491553266154578569018619993238704894377937931965917885719488550026581615281389172646209922176525814066767735485833087082555608024329562179416719952578058579037270508042058275707402600076709662967195201078545134079325843831724362149650533348987649890750002541748860295259382662527620634759495522611665692045562361840522329064203797127763106403331646964299834092744484228017195607492239221509948575993748722817799730463032173673510907888311979157477459326447484857893036377836024495381425059899879698600770802889419667729177274670660368009928815859028677267935769571712611725460803608526066818602957926044981014962131625323504192539800731803023698349219006427880416216315425348561956230102899652540011619938527661477768761782784318260100395465470357345149224478523063243142278529053331311891968952707136492402007858028474610467542738861127533074624302362401161435265342694945807621875919469414732232041132325991714315006828813100140378036942510455937506407079523424020286947197693763112536528255761437240196688385008066304443813838197942473800355417981973518670695486717288751681343801452768066097541123771704815974003471187224576836742988498341729618291743077924423331051082680918605648908634796883764214986718774663493661345604796872718506088137834191811914088849631968706575622515142908500798229597526624363725501847094755529416571955233275518346692394124766519051280198257700051239726159701454761891819450711098856315512246740693209175308095644136000924493051428893392429367944242345813633077479750679980479897293856696524553412424115710236877976482857618239031255493960258568589157965404964058632017853637840449213932994481135927504219259517980052667460074755238748357033638984053032890561969287098148823486415744646629505580197385095761885609679275024087725937014327996744688587619754221426169374897608836405630312256688671726426064801730486328721638524244723110427932085958414699966013147308493876126052883349389457450172779596932473688946737328700005078838172473589010128836281765072812011523053796933769483437199784696862632510481649714220295903796502171423512340927524928097192255928110194620686440611591200508385558864308497818666301624953370627637214994105113946514835631731180130999729682463238520310320758884521650712592325911215639735290934704595232318485901765533607386008010622642872554586060332502592769795430365380506835925071952042075800509509332452867663214043763668602129598366905976489146676300418338612883617013470464978007573453287452365836451500801956903255344732628922174215722964390551506696432918183384825040421094063769974246412809136794408412464215850434100003276422541967331732290666684421368873539262539247362927550427599664445934900673341889481671026229874280484376234049836592316989028044488075189587571752723609694270400366018450184733450596703877739247418460539333903781880635460665776609894202101759669256748649436407800393107177879001421237946393951306613255441044560633640564398180156660669564318889939378012006445180036146612391917411050913927453953064744965816960197973179100412495603107037779901801075122685044951022220985947373510000826613945067424261829973637934760241426660494682564619835008651573338067644540359599373064582246107204282955321864566443811137686440143306689239227087267378503251949314944963130975101660676551613685121518005453890806264061734565300469866417642417804920079835067474655196688094360822522099202073854868391740549828120160064911128156847429362455132765929496764945803845638901447946192423496376354070651655602218753318102580595822499052587668536474358333159219703234359039656842537904948980606702089343110737205991434227901656669992923230620618866141216913650457152477646181632633020499980208356346535893256130214106798467121154440272146296186331914420534300022783129731650734190605627050950970052412091593433648457197168800862838602439763132752931643683230944742808334295321514609901838182025796186678797850898419488287273863248030572942829817866755357663409583952334173803082078530439155991068097533957863706613107210527976750406740702873695610239639094777471819879517589209345400309581531311249377975168656580398431942241283440546192946227022525883893516435089802957282999591784409636654722992562841774960988675567639621222254436036460196256499805662790161500067772421235998396565459838479638537715978429766710405346064609774705456731093359898174520286872430387752347237008857720295422313830987686360875082498771103405455482318256747666150686549805279088107450256688403503916357118282551665874925170537066041467129276444803826080164934580092706889405289420769860030782060482887415923169821311288215402137683728414739619311680817639631081136680045067760898851304394415299454500780652324294997650364090118339462839550164249711819326422709358238192459173579810952212561636294396498504283058829474466181123196827203386043818536553645512760285181724919860170775294782387898647074744457306950535307599786062773593155341028613175772445012810811604378901470205079483423714494560394085432890577920023868529151916664753902440724147425992005483240536604220035324860374309308921936173660415128746631150013881954692991168253345056972929950921514906984653862471830898825097733993889296343847339668530543164574510552448560214718040488005894109060739493271728012723059519176009551455041802332960300214506569154304173095946295840527417535291011657539225391903211086808787793928632572271788623777786486850636022490975594029169757146402543004364624561471142549760824341113487752483097899224466333404672325283324962117413711818550378499684854481115771253160373963619145250119733259603156811707826932324743498638352980917990271253333227944840038020275344864533951345564003303222765504224870035492046009087496937448361448632362123609592492586968387656637992352831948191301574526775266781091423799740885823679044078304795042945093596821646373033907796375145991881294801811036845341219266177323869029175909690935920955926913473953210031115774200005132781532029730993819925509935426005976525700808496932538148840285650347524551791209116892186472393540316020802140152738067203792567234378925728801114127428771735084456699886115775001473405925400731559633049987389988483056654284466066438810470112835021618559464347766460122855694573480055748972164333912054574163910098397723846497191387135373963011319436687927950357779864941913708213631863237500245219645823549267996047464037815309988973529017254435349679267644569096157225695469400848722538952886990754936262718975704560840481521355349194550187691668570936645467152063614184770631712093339837632507430935823721135360205765755455341015325206979558698991046831985952375537327283016304788542183257604203265806591451027625518584965061693212316712506892380472413674013220907636203071200196819952563249539642264602504659183906118007130147059353299570456164901480469438346007222974796069117273210700937814554507726446698951391953082430354391349427326481128657255968968717733252407667763916443262730077468727932139908817020506259553460149235921409163072823993062040366659491819914481698568860998529022937508627944665411947563390409294498636860178673056956076251301853849707201500475753384740313026731901899817355318062187222846728261038315865632819711663452844446900145910434147914052391903252069550771282209415728379109743443642256711193834679614670277392767302929017936294135867285737881533951258716722729393521279022387350835332959503829055305263511359079775546231272663177412217611127737837951685569622927329261400512102427237825275296772581562537361652751147062887031589253041344596181889368831044087223327638548324763353903453297172423826852920801582528947055943135033350628855018970824480954793627713647188805001810162097532642223062030810595202319889989663764518249739506726536643800236530270959214245975538688317897688257697173553817351071184970946025920304193081031494968815551315044485847702969207049440525899430361266401366611208858633895660193262280824607083729307287084562619737055898202876240476501259343607027255389632404265973251986462981690564789681459148611578000711088458575483348152415433423307147676660530749827002249442574944362034349070675013693985594604475274490009645400714637771169416850887221817729608473529222835960693529053409192923174178403055595238450261000118272960325423166812266711844738324070161082051314082318970014878341095566433712548523204476254998318466778667850679404057673410497990807893034591820075182490679655968728862525760972323604182802376804697584828940099675145493744274846147730385831893859780280646936047977722955651374907982686244838909720450058710812388008174590313335411114006113156136857394441495097499744080358171830869152427557667805179968707308161268712303445955048884001824333758540229690330674136208478566122154857122230306672634435926055524332534225101844733862507364532131652071275828280309141815292873247475767851852280905910315270561554503811209091263774292192969752571729954951634523059553898103516894174129760172875736890102464508984296556104051710568596340268093772920854733706150454440061080380024938700387450536232231691758493526515373986092718221994128113799882776831811361983046573954099664614376943863930708908228996125544077655792691926185223654425416340789062276501392761624724879205747368303616468452899536556496911728353682879793480662019952169469322133652232498180224972456019086550021863290901086619860151806616328832310021560319075313943964527657653465294262598799550979125135690713486653606231336651654802663699236115933528301522972792051010544752310424348548390154387653860535759029559461462618500998886843803443356695730652884278074987833459012395919950421438500273316737629657537968963645258846691888459276149474500617085976635182472757414006945155744401552342217996219803546551479139346059560756373149241951588787936940526073422052230503676896619649913258788040914589424185507984929157750110281214374191059174966103563470939251112000752841053004758345992396948464815522054926699031286634562387547870313137928762362667122197503979106780477318994977022115477834112271500361655251614606629624594509357421564315958458605713689582862156644564280304897548040193750076785115321776263101917404979699023169533193924489640222341261817121412807829030532017636594975549221090616614237765706972468940209237362496004398288849762377063651170656736185554935735353139222408290920779321986334635820006484412010746353952875133398650334750233457457204198324006838668833022894497116500125922817972490758488271411144160032403159032732461909538948128927201658276520207569805856173609777475481140503911232082538267870650812717094633037993375684809630041736712959267151058492159504000993789758174510912111075735871802256459759434193881742268411503068760211790320247709326527523136717923660815850936584616030499021188741816741693441202449244944782454378667298810217403992621305525995815078590840531086618414938446219033744613021443248704205732832433936518209725420643651530640841359723230245579507272326785117541168098275939463133374107256035934386542249702318779281908655513191681355730844089862874412055827933405265108429291936333982958755757170107569379576274307099462106177288183520139852967999425614497922141224200193904739409470422683136491676872519194699462886043174630400656687501392181868662159758622678566276682449997043005407474142225127789782253411640645297857325487845295860393241359389784005186815831598736949693528699686477054994487022103006947134830507863023192248600769788166481504006136431671120559309855910754967286418694655545718986517385179859717525315333617083021962594681545235928051338637076230553774751315128651145356701533153863888033305174421780882933265469503882757030476462268755603614495942647971819722967172360367823099305392550634931333306219661873635135206916750404440235266481078849321903421277368561866839760488264394376116274122936483216506297868598865294438492633903106132944742705640160224700784297605162376740906634632764757694274248617807674101466059412656395314367932641746740900724291955665549742380553547956930984839954355024877309235158163372477678268263690876548644194463837017694975832055439697998343666160735806143636967141049194357270233885930385016989652375813141102709008965726562179585952119640860290931363275698426706340210449713982105013883619562652992570410656492431999650357203766816227132521961915052467991101079637947972676717477554794594103125173322844781731543394593132229692511978173682048568093673914224346487077648606123335280715007462906150220141071256745203796029942950793409669446208933617542324793031925185502461043802725296672271330380379405166545443694278895377344194177598427481816646954432797512074633894193250565425280398064989912799370349565267503613239130457201134343585588393097554339191369081792189410512304637073856327189831946388060925517993208141432927164395081636370224940398701159219951843036782457688162864196580711527639307962066869002208873504359244145175725788420705129874227124467290119171220529070840818615542827788428199143814470075330678053090243269387825868208337858309516140343418457579874322569607717317474612562536890924746795695894831186873998028543949311551799355660974266962318948656635882157790117419005656542588336250795446904896641302350670981643109933615445849008047823099213719878710879397622278116774934347370159100619509376888373764099604512891699202170159863032009945698507565767873714857426855534359614615080287193218330674714789912874708711566319080408063850271394109925114711970328185410555969577666649343239942269220943686616169383408811320371604149457982156379237742561248825500193233243444370502269489025316632261308497343001565746741715753753183061066213056363370623313221770244636255406801455543202241267218806213713029439185311903946746915254377417401910614710063010445720343009979862661175434459278078677717789027190412417740231907812581865461872287260319136799265481314637416843619216005812275459836099459894573008442390147795214701990241752988824972867588844438943642980311038209588213999566856152150028360471700279572826199979725964163897932551430240334695989049779038566469471496616155324960880544472096380927876093556820369073608733955285023706407287988480600918793843454013925199716381666851292245935930002341997978047406637300777081051270746365330670604241819134027413438781910160282957720857349508039133017543455959979073661609728547677465074547978506781846468524875498205355716609032335389584146843407959592502362736904524354413005342408342888210608049910238994786290765390729289329720395914774450886645292914080560953974554726865541545052679752285927612700850881946075069102778130150940252442671953919704122766416626210029550241693225682994515365966384902570620051714393018256765420597506098094851428411887676031412006638134930063993136015529361580319962271202622763401940704013776017582897472597073599478549095204066526000886543651214316778111540870979880953395419409441367871100115741159689531507128280309072346118936812935342305886038126914485098822284607863538158927671586875435800731622558877910896076672664979324266313435140434924470221981365537767038173230446694540572789686349077530674975583217858044097433761767064978745769658583565826357213774479590384730348119315681379468170362004950266918221186551549401650557098230937110816039994573624570526662845917254771258868132337296422341405983843260702484982342599753607278216683110227488916492613517196010131481522376791332836849197102769055105065587131379544536816992140637490806688181911136439072272137553747443401051193024398629945124684641135776114377471930665784705230881509852551071115932386333067317185888907033945949754980734866209559587611647094591412860926652969425868440842644810478511422703599426629475964341119840733356632970726198515348088378451245142326452190303752853254785905320754859692512302783431092222815854622707943156309567080667760348729925517144565886914177973199757912685435536697274941904484106701271165220812809642808087532903732409951102244345218208982252314273368178234896097872694431078056279979548573252805442101649295542689111601728092082944721566491264878564828737964700203295982407132473393466605994728410946468590327619572576227795582353696284393094803074791592342834358627152421233229981971798888102251048491360942127701544010658789682863103794321888011054320861101632437531296166642545022793431596400395017818009124031806706856318382531154043817388688352143354632201210138200616929126247335271077285784826506211590440061268375585078928596183808038404771457060822033470344740354638980712190815150519683848190470020737931978244101659916796042619203804490831417908564926739619331179138312803120915867799712506300322568693815208994405541880267761068815471759599401530614481675810257274593537476875782244622760987236680471124732756338908229979343383038167615241472487904918913022409975073392342619035018470210563245701600155344925435007130131702569424660344452497771034864320232952222461555785016946244786232407472860339323715664793560786216442649038455012197500920094612265951648882772887930707937321135763456351242733728932210500470908991605378275491387864528180797195582717082573703912060614196872549068856417428172740113825682270796357577697493174007571850511860303357230899477186715146500583923553639625177872261196350174645259683648617557572891757692772631601685266855985696129467367995361402184432651547275582182487892961739633960274419612998711510333670307205599016523368010750680003338659894276371395317153396331242394484211341077057469154668088523205641055132314944954281992078618882868672942137551531946078005351172947219139222397941424504803622464578316699025555924894697809167872391534077994587297386619552202766291293684904791405273988265750865270315243807613070691608509684193745844022965619453349046073459095544480252743857617251678215990677138668397495648870434280194873101145246492518974027297906778988195186096469273323218115114658556659389287018859830052582925201746917793823527414462030416276686653891401615248446532335206906157743835451026659436237611952649829593840751383637222331400827518815147658645470065597703605549672641437294932587107095721218803312474269571524064357436332327718126107994914367190747541967493122251520365767921514944755458576706896630411555294741486918935515508766393832108104213744904364629355727765839544385841636064859791517373238156961632910362807502874936833883538239981929501695937329266705943611102002729707736903923383410036187421324866011664262983922502607813459047401885045279921372446902107972160791290829547781204845987509317451977440930382996224005663173920901359861314545876032502168981522323715454084340664591187182895782433052027229708976282307542490397369298744340900912722386515081853222977403752354082789493983091546570820543895105341175883431038070460900150065866096747876181946591197445185311665777615291776397321258831451377715956136562206257835035286886286091909234530318160138791889791044850472573826174771641899321674687827496217116252867340114069226659088456229749715628243631068220675066524373964049566940732124305455731200374763185675618631722335020417158848318150260465133942419745871119944075487484752981769832800158492568341238661227560641707447501830146827979254796158659319791245684768123294570002693635782749180535435492227705770204127231648636240029030977305622734283705817775917327537359856044896041226568100263603185233373351127372387527973194518391183865966594187502637535104558365639411777746491876605951793710430694825943955471940946499913480454252795541836824591605715458487654635911112828087279705451666599424621546193967219528419815819795565015641084087499347296447746362686156384377973394905840076715183297733531499053200519882669433372485242204439140575459284763125449962327993267452368695478086226323885303164920669148364299753717881463320568660961246359900166623234253444715876400401335734014060937239903291727365968010430430378854585574324593273761550564525837698032833607552652404657864828468793621311629492944854186606848115556734712377399827326990052252282503705939366425342584510712349312041307496650722965051337448247239769651125227511901760131682376606250174440018123091171489941419806670011694011942910477386556196052512826337473385670165765748192499899894650795445697683330138239598436466778514040383496199738839441534812622278703841000386830695224680156175686994591313787372856990733719232144485409375746077328431979862220042924098804569279446878248988673334279727643619404224190592967032080525667458658673159433763253035619347606731609858031915867481614485791892651889069753585013770610770334789820126014897694314753673882552584014156472043678610764943796879165099715508090904282522665145736911583113552295769739430896061978354307913256490051126919609308778965667707630526829012978451183098751267523282050156377560791179866655997714429382098785777008056854511555607546235857688349772967706979390705396525183297227633357739350593582617852060732532603016524783677213313111085822076762936961739640577895499572713129883047326775542424244137241692334656289175810156191809020845752192604948361930774447466152479401925942911353445245595527269986770741414640338327686285642829781450506261745018453443797385704841037509481059583250079221131920759040643704554761757548083997639660676135452573591793818975427997260158993327684761864273975777786174593305307908838748666159817929368869405647370752929384618168528963854231673373165853067705459723484979695096929100470188621019620904480253690940620478894891379417625067147095376132451825871935406739722294863695548553320246292711210686667716485773498889450475232855727904781834470689646190493083130227654080549726159436054303824547957040239615640251985770319486110188476358815059613305445068270540214324647279699532692709490373713096838932621880353844348224704839872617449184114378011452442717407327008214377980306604931660172481079401156537027187554860614460015772546713076935890237394011349036827508432017426586871938692400345676568366529640855165153849990394173798290489647941675363035670616541905917988996495705833623884782900133066275358779384024936137486345044800401799202061902585144406369478267686534048744499710453471551936833802555637365694611086889699036911907253473068078562142157000683056735205860156968328915179549410193940310132871754370193258783233232365776852577763009024937970921855142898448715028042117390373690624544202742324134490992504651997659170096943826539519224334966133279072621849596629213766863683769897722725892720182881377390031528728755795145844924455135174672456850968241850512694528873150686632420498723812792943082701524879837756706726135494301804145422797727677014740033240851364786056660240698305991736996152609374002343947683085687997462864032324430132351587090286233567700650391692788691336773749186898888170107670895852711733329283777682648685689924491858990981247049922302622554716281133623388128337497080834148335852512566010041913471478545702302159764855933651065929384822539536445914274100869199810255750309202060969119011284824826177382691630668282078571441346638271508049516747914309736200173936179837928899241640707714331544039462940000491578847274997590683768464353381477683531954806518129692553431418557368490186899245748272377036325376018233308387807898657734130678693182660806857914364536971351205238025340134930269526067925749422812772193141462093827260353527074674266681496657009302078375987492998178756147334287995220894369618729947417585536552188709868737195814610272799324956396027337057953326668630227404992927740079708265701245407476992615425570037826323902869923193967077681052294765211972061608076034684471591242665514639327856526096249990158999738233567373274727789493012957397583929463278990106586224578555830303248662305474224376632467535747518767821464358914880166626500889043683775881669776942818383079669513678167583457764020566957430103883938768563552485151093552187133932537729141227904625022270215300436059637195578215987539702534803225884011420017269102769888292863078469310368435645866561311230772726952602818912417043087080737465282948877470988425315336300078606061830327692886388716004212434993420390269602076514202246842965406981687084134143220603827680593482036568619747458452395059142630914784320895248062831537002852441064950031738372456693240261733769201765207308069071013849938134478121068673587488941080609344076477645157640277768929466440336726850970455652405789967065606812409317645784144544994410460792129192348170836665655391234479556235195010243252418005408620035909325602992544459578350826778988558757830233391899849570859738834276781051092231574224353927507368903759558033358080727912614619426659968096111454546498091940425744180196938666329325869918371194882973783699596507737771173371436935459319695558189478667415914479443124329088360417606685831611016458963679954290012883842373485024015046395599719653294214386664092648517901290197726456212361167916595132522235286236266153090283398017513524056028398843857099961364115707423559998217539200451223190173046982579454849135985749550158941525235725374119208200972404795578812740350024707923389342341634545445145290874379553507413657047252545815240249695047896385396040426998007390301057783777151867516452071703756786636367663246136444961695941966765759976764137630210801340466178545473637613848461951513532523415955942698079027658085169184269394604445959771997297787047358396443363761697175144518181899432012908274720206017702643842118922510152331884351372555246485139256143867697628709939833615682540616256832822820368924566608058468472144048346049949903739902660546893090726624907843028875438354828111407955722793857362462611174934659907019487909082322955422056214690624671184726619150858855216246894255640217440510385013289756040378153533681258176299347487528902991179474896839788551878848837084362349437710093665476194919000832506640441121034228068322384485449988260299826353303477994889783786094913384840541827323050376743003198311481054166331430591324858269584891798768088279752536277418248343305133674543365809542169267892531032135582249206300431339311277378381238990142496150574162850804461834269532649323298829551634087023047159340119438770241169670368197590279371184022888403315056938401258895144180642763411670251986873305846456694235783993167711355376779966938324205525922960635528725168657378750746068238436937313659294319795407696602859222432945699853977760880756756938865278796128514139252600574812979128545674725260590139261310385597504067983930934511372684798874435823974102628489024424528704127961194331794081195640765530859752144211250365716306033393094240943465100707665070360511698226880744795290535042843081926245963509472448071248001075699522253614559286496209538978597577372984275648116926070294850537757037460689818924554875279269618881473440120701882509351713854160046541605833716549622133881398025290099442603044664453886749075698763951655715995481257622111040627980303312590722472047910637098356589306237961320777636947567945220255245125234856527215452002295264073413036450107745911853192128750447363389531226659939554496413849220256553641980239395285853673579084748815516997467824901146718358644403582341475020116458716052979357543518565916458370384157492153562125577099410831898301474122878074730504263235724748412160946979063579296934478772627542773246981098533841646658578247889058062670026381973362235961813317147381302441528259036316654892535812196194062697220214664089767039572315560608524112573594359780823027728170167174991410772502100824080661016265942751275492625223038662404141100531757685328982046190567539466800738209330734857878534533368141937141311192165920556190842255781252817497832019198400330288201061190032920257363386167982369483741100148007396878420414422651971774983625143203880796749126413317810811727469764543977305237721903150384014184047688138916583756892902367428549078711043805140545357111253502171194953355448445518650887898885065379969880775179987125262401815696921084837886106726471215544620751625858894157715957792304661864206345312860537698399852528084158974015403528167334832817991331504195484792685295156801303858379567531628507205990797293805660572365482202971821479865428892790081747843863442184603335040409130019384707257630237180683013289857234292316126968744438369321988125001175534033968842611566279264142999200800384095951833709318739430609333499972070041921904382590580455739956228725033177978549003436671252639399797202915438929741710341276613734365607561674844907763726459622430118001027035947118386339749986589327156121645974234806899955644799364673467542410041574271941042405136173573037259008241583165160307754770853766756410636791619311482565429071434647509727348177779538901561372554010617501969547868076252301932064773803311699659046615072979853324711443424139172504010056616196051343291536560882657688399918829316251256653658071284699982064117743843669270813317523589640968487343199967621578298628444141193225817764401230265522864775851124421555338406938915133160863366013506165308080282386510779740689344648470647936213692416864046963731010639918974913952497607130798919342825648579553590986837943358799038009035784188976666327277987874359096850645245945613610132614920063050700991655474038766130985383689133471093616727566309623120313255627901478865675793484160348466774696811034750393012103897508362310180557277084416125737247619922653051624576259609808916659297950728434518533886536491748596855729525175759130588168840374033635764545019721289469762022133701399117500257719223845572009856585354991629352469392261149714664649450625531802661372444143560030106707196234195081809887620897579996386953804780695654204584964620095755291112731736769151997910226911102713440986465073780353038805538157222083541946478837412453891070584701181923873951831476123984217399739750927080514483159423199671345438339678768925508633338120529012135689258029760269671058908520631586306895263027465748063317254424236625625535607049549439502880534865398948415300417432881369059980304436931879064671362917695856857276381816855320545819447756638219897279057058588684025574929593379169326668254277810740862313356947849453130635140849015538615450342389732905801532716554069984210702817853148557305667820171211922785934946595884287220803076495249800328025847938502939700774345905059820606304462038541748705994626154302063327438435099985955169531096068283179453478236606174456541448236319759035851047531921587321089046525177342408715434405833981040794706796322683144469475979898391530443607820306079073916855295114101961055112196568007626375267030080770654124279569605599241727847842118548668936055554314978993455496025600318134798114311015729102980365866504252930263183439714269848184669305250332087522752885143648763813394045319644256851789117934899791837550632965489094563700257101678119109594109618332392772567280410215065722979588704279745503257875966355389704527364589933278191788800010555746267261089873172981617473094041871853753942329296934267805124097288530397362423728524182570723615009657794153284317043922951874485702149181780185912064534322134659446927445078419309747905632970129388263361728258777817295019422720387401230695466947347132513517546216871811539751009602069839113573953390528846629990267361025568535228862423550957598234514090756015275048390955906104473252113148587608567197900756233569141718160387101614615614348122808771285617887567597866685477969533028543400913724146042047714873451510374655676825170164067098763844954510017971025159282294962038302181902515546952827792881079284917001408901529546222659129621399835435768984347344447996686016013661626661645475128991011711950395576405230431055297202184459262694120355795630749245966765257741027063477825920532223778365665809220248288788732014522180268073117565073194607123525784310671693817646041507718406621661511130571455275445350100023399421309417239304288952938494968786188512564099521488335580491284195384119745513665486977428263851536181607299523436398007090085025008732557533191119377871161648203081087779902281238162458823381735155568082251282350797928114513873476119354225134577079596321448320539757836976220735298476526085017964267033667510930258884796954921550057464971787198269438335321579562665957559380571226315743789859517554092347875167187295476975133505435649698127657241334065539138494686628875676786981150789727564928761781499931451873906017793799305623282321399566972232693149867053913713427269525868271788460356487785582399743504260061147787682457871061595527892116191777853031717043852255294894147524306266349262419638864719795598214322489138817005594212725644743539999444289023735571436509044293931591663948442527937768045294933563731012381058199283335793128672587612724010425917648348057811820604373757351744815208952183897240842305992242741474220942536492710936840054937995519643810601702036345585494256817102712759938111800217899105250129422121893519572272135096358877718308695567289605962777555232983093610494758101579294153369927216127074446740805306100652222877357264759542246895490608235595788311705396763400518704441289494605538981931862748793473512245028544194421726398926659640190603403669352337888408705271538658793429021578297507143816591943032180220599189631758412793485022038356937036086653896787159147747461590658326852182485259610449838532734454976010483809743018022379084626432992329741631426998273284322355040292763757574468673355367836491171187240573362457606772131666744091902269586406137683498693776232510756229124648594728129882929953510631168952416013418499169703388430563048584646521031794940106290614635442319874413431409401708282409363473052156971594521458113263703495054067041288200923963055617392471127841334175379937393879866552467195969856449882024379299426947934220929395331216225201597002210168162758127156025190750891996345069933490833272218546896518014725813828516434342770123248035364781202088089076340919066730217339512421335869672543725137233468842152875545543969446300624664839896446988168990734076075151085866692773603528093386155329129818659403110627624964221727435576259924314852544217162203023045067781712450583824654975981840585443859564183266594850210524665120708346312879951892474311966637070189029702055737020086032636554681520883524146212313778030380165806238850658802726278679874357405822838877884500088218616975255262278839802407139993790431592480641330422972000378285186859480294959859267913522588561959460069224438240589931948244404725044721665935711369300607169155707969060387213554055120825718226281803877996722078016831530086639027961569082902775291926744233315585695857139930879250101953494335928470231912913780945098806822583609070080430047758578574031317942128358001766650253270003337916088196982542699389870056781369578246431614165144307717508458612141175582496160368903316433955410773326587755424946290887268288256662840927471668095458914405353334861934890773204439764485338799920137629929328836486691738613625132303401746134858560405173694437960323491689218568972308565996335162541667476353769357788016204659538779655750733042827933238195601927751532371469656404346319046210601670190357657931512262195478602926516058253104402070470902051794134052657193574447099298029918665433488753673316164129084646133996444530429802873204322296906842497034782107959058329680662321741984463914403215164583637488817400209866208020622622988613894821535796710429167224438379180248330808507812684797707917719605040862738684596745806395391587855888461401143330841664546890847774545716232440787212651790117157413420595260681121261340780922808583344128992177694719062218703119143042048166476086837501256134690879195984831744266742871646940013131304553042190744598921890263967846765446328634563304041004293526389754319865374783663303653974232459843419145945363495226725533171708174369149554974046039559069648088060041194771130391343920528381517713132442834315474844836491041201405359317650179979036615707983146651358795128692131651810184198880235536011553266100392787248246225794707483194273432299446002923912869818778799011419340686375046800342670561290561826645447143617050667794566436171829801473957498958637576773803589931665662829534970400079415485615914400948763135379702941427707051035011751481293544106733796301512095857688457119489253367751163590217341859875219284753778192510151840568410632273368254264881915102392438637080822750255773006529168065043497244917782109626023476987287164812546024069353370347369333963088548312842992349671553173941246602748930541651034516272186463718436441772920155480049136351630952400379833562990755978376363475765081715748751931402066037059231942828272957688943188767060695650824943748781981830983388078346623675533487750226131086882701389158657370950339039999081612019009278578095694645961568808112901711033803178263149433611015762614484638195884150697844969751067787216188298003779750137613173015924863549938194689476536795165810879855276731935351398040163987780961179218941297421416324548419191252275160007327185493388521695516861634773470376698169255516108476056408434733665119221820574365118701749626193623121067381145644131690143469627850527628743672489190938832103957961829570251425651381029931742085491177926468168637058348562515118852522083871695542527867509053175249263398300686379064259181323699504080126369683231682664263123346211740635145996059674293663455702806662904712335860174012441399230881721420032821221808690703743778509151184240931840299406578575354068658916234725388333762818817033626688058937356037326894732770866962781406558503459042521552993741829617111753418860845191814923300167012224464682086794871477983757167787908215390758146397748694342907115805691696947192356231774500512176708433218445240902476789773161715709295191264624966583845774436092216783463539530131484727483038965428994279031399846570930157766961344424607156406794394355419869211006824955803239424618958193033244097263206026398989040507103401235715199345326701124092677442861788856691268158965445736040479103361082257571895533121548250109456918527062675271644621437121790188717577677147907412539634243115522532374907457333124634502993057997106894258435205427109180841176476667730816819641747729042747890980432067627833313457936486045235915392043856173860513230601587963234353477956607772730526959424673111572985485594492256207667236287188815119536415627724086110477475625138078450431109720050845372426936663254173075154733107630965632206277979532439558728496502501310425368902658429634144135229495449851945458780578629458495815347079873962643103977014931280994463886121529497658965467545402707355516334621368722240828126788197303807086740915874053145772603273987164763645218622411840600206313158682721600819412999222475718127442085999998460486544480620743951882432434811740681104190593867765092938544218803968569543445178399993081894492158119661506655249508915257142833266188829394276062907078647630961310237667072526247122289468755518935007728527292315375113063825841089246556269728361220034080857291265923361108527814736840036731480040130398668781046995659910147766179741844837018056951500782242016471723982058120522820536785675740029024450769255301291679304536587605145541480720070365630884917961414834874286681571543820508707584076811929526839406881208296729059349281968053496777304590667236201727220682691993281796663310127710845354592176373436424803217185557075848678000489534993187391649857734408093819235531203247586324921482090225192422405113453062616877891193566009691115060800791820041522736866286591014977934332199537572702629817526776586679962725689573012282598752129892435169173110354255661895667537130095850106619748226538663319304424609040849287743190973331119670156933161976282617236879054564348115962719663056733622002687998334003428696660150932771801717088372053383303697883307436312174084573971389688211683569865579298968878950402997557381236557025040680738406598105599504170491132014574954934419555478289315567247328117539433970388717200957829604189938551978523679961186605094547343117978508213321805269936946484085758820882147014525453808347757245653207744886598699501770799096154066912271984976692294333261198316674497484904985128079548980039630276303388913358407279222757980341858215164722787404954808876452383961422455763533095438893852780603206730037676489294127148652207894629994577127449460520779578013544688057589721657435590033749471471509607087329667824862328542106833475773958120486153468974266919813994959913966526571149677697508543006426138207545592502867744783165572451179744425624366656531423003816213059326442971885066163565582748777937555138912212344932183140212647756194509348176566819555453794448722465675540370591723656370239969363559242013269324624970784550425397224622086535237364774462319737992543174209477214912686600741104708204330437294888683144423768854452525293424562831990351658781428659131857431657956398801512727375235265695870713355684724789716446397828688614812803281585968254414907737160530582136200963295747481247604807749675490739457987233736937906508572200228159251879837918209729755959545501701170603423977277961683775091109317327030006177283427445070746171657799107691502355708944511379059346863852067021566636027218037606880223630300439990296782453377186385280520620953382154527197281951924351714933242676527399454018194910546226160526808947151929111500780483614830226786152674822228518608090670739958409830673354579732812978696080337779784896497596427531581229610790488677081061321894404033320738630421261856223287350483149447177541460602710047066373709231676280741921096827423441207275694208041181814302083808111429277175804914648998981703805726053096875841754728306436604566144018122360641394994087714506555320439642100625452280420875021448293898116587147747770227265396291902771877890246610850847562257958743038588726951797049487269850627353677026906908052338750369891342884011315105021289614374521017992670547963482889612156300902212643004503586308624698957438665144616924071654078472759459668651397347341033928506882275808760872945546778666169714518890030314977897721514575995293494414680848365785948558019847101892712713727382982345801731143070002577663905561093677668934356106035975930617855979959328006617999684805763112900822462170315385891615948392147177036727814616136596051962778804493854762967389421951705370649269016281483425860396409881073669263887726692493452019629176425807972452472899825968621558133141180676680711513739704534039658205855568432843821601412059002063286764807622545620363228049130277351425805312562463762433026282746848049177756786787021451865590910616393349950361899281470363927236395870568658064786737100099486880124419487416700732659602912580870273842987805635497421379209868480294114422072977712435368983793179159164648634969301051350610075452312324880088022627070627662500135473306133916854455726875997531478787050793819769663884911538961790661757754831566179746238576212682673984857509797614548547028016644164452578520064712224609584956533510683490356319227109945868817186072922901154807637841782217327793538942422342834014033205944591779935849499926048935495945929290064398134542957402733489550622481932121769077241580876274015842044563355332131499341968058708799335413763822256261620801085691572010696848623597118562970909050673279290543393618090367431508887055645952802723463010095404132649391364784918148089827053932171426174863758723400055806811208649893008634755314523915901624951916566042035818570158867241620411348154570322724837420682055633739527643496092897064495540481447466356446920959841094988311061200618176714560175972530123236289943044911515929455246616464785463536026476440921575456377150462406763824377473905408243559136601228161118788214186109064129093007702505937453980544284485770281001799673921062852540980100720368291509198186773984011920364343623670666995826626968872888549201530318271356027909335475269975939786303480807775267786438421326992763867934224376830536405911851369726849367846621278651327787031348453283877554379300821506462361208117421190476522515402321744070790899095758438837832240723224548911930843371175727843777086976625874906563040726804160760506159727623691113060040108935887395821194639279590503971372028201098132864716547526793994104310887497295834367165216320244181136013684303658237030418447676695243207238432532865356502293944885383631369085209443209765590474992322838361942573990667939809907185476110437255153046365488789605872617530662608747923374987954651648156775145870124782212625394269129389317374916117567356469092747952479356135193591557029357659321099122815482977732455789930249885061908757680438766247385037732883609074436339959213900122108127035225108178434394274690502443253327703787711237626533187865407749518403905249572131314914866298810718264650997996165984437187910898206352497093603310070197432428203673774469234909505133248790084157470505722302229823103709782887477795572207883800975011630355093603773462522209088543953173739236935018529272155495049934632716759500697991411879483655947726539583500869725520304535730256585498525722143775654836482769405706315576560099368742529199975779134323571218139273864468088448158868114159461288735241790412797643928376466904246093038848300954919755116500348001090599492621297943773721440995688560645264052247783110320242569395232689880137404895361351708529972386436147611328828377228623596800552071832137380196819800799245968858718492344611758002323104751538884073797345271361122405784823832972098751155903525840237529212893473792387552491840278104764617333376999701173115498893490939571255688504452651001415544847375127730813963975761933293780567586192803139262305546060017721090510675205021382938889874999411662708494231462010360823381209506497910316467131860499660550878911130456743190409606370898072624959358792727637721476994429287523654623385310511792142903161013802624532975540554585763362223401316181900243192287318791956259854854510890277550953411720967807156102141694573623839385725667618620730039596268792293302430021329074570737516428355829933325688999989005263949936065071251019660097629429421754579478994844927868734469534350875287206928191724735011351312807479588596782921733721698866659932963284244493651479854776551913632727674791488342401275908990377797156108771527139709376103664760992933810899262083710349556361310165711045013483561368021161614332638806317054586486349255562979321072007161038583030510947225804339110229980229087673101847027666329890473811481816419583933261951800103847037340020099275661188971992850041621037956093099510233280946627250273929061857268249226960681325069074743250975994341426285181374357458391436530219744310396088703016691664429184989756359576871676246769134471297271933188181054375555802970334121299311703468809757651002870501251033017656530008745134713060650809169977995550450743195892380555756152984226590427882132400239812168666776580980155635325145181326700391096259834665497315842249132130295432587659918217832965132927842577862232855839095375746458856101440179048269438155633696216379480197877453531202688440629356116223500595103139027765729570669120712299976700318479419843931106063518645947908606976084548773647790837747500280773360319004726090764072641716737712376456099685753333125463878209954865806953710703718607010117466723791178340375467344619064930342925358835681951653837110206678847219981739564568173977664749996242606379823538911939101053312832327145909526129384518816670626692638228113080379060133553123028975719172294277787830965337584962588201548314042923136804287698424518126664572090423241621845491875480086702372787400935620056040464728831061131939622930177458253108578387203223968469855109676834838149314860226165969039025262176064567305150902892969835466592535859705094084320679787441823073336996834380602086333196620385391110661881399841810266291176773605418633310255656344123882371004925245800842185443025406547304947211957615963318854492246592181946584993733624878664992349080801898012113453595917650113400063212861053034212702155810161076179014829149551619853667146615202096804424448221461487462623167387385702605825889333397965413015713542471165165720568220498663912888578449281137615951763265740737808077119715043141108934544059669358253948181234111450427213748572735036408868581946290772737555667433985771075553277699204094430552123386196052330092668438620321910037183863270209309207669414497728837733178295349228469304670346062187708215345456827465259731445433488917717901734155142980224215346529779938591730037235321340090327720382425751678646810050796661772887886381681014847120625183118914099230054975741314015538795447595076300994862017802925125407562853907666356148010896311760524368253891767923335131591370001424202294651081294065242011668747512728045650495846303950369766484387879041522680975268913422399815444382442513525013017243899861228133209083595910022410582738218825453531906540609515873562892396677267836007617528596476431981164823542564557048284896491388629932830247281235666588799415144271560754344411298400445599055851485356153837287035946141170178848759480098130827205997393232791077371296519733004891544439992836967053269506937909240103049166430759210773661214187507518539875746653437536652458745765481027962727495981762855861927141197329270132409213747028253170301954871896235735821781037784645902795282907911178538140737165849516833130796867471974149403919067743280434043274458615601463469307425650277284707227463831562109408896242920509745401721472891180057866426331117487113762766721206398077962782419479472907457855052276271091210692355306205135336599299375583295745447853338854919786777303190343619493982207345609219316045469922039809988410074950547473407359775832399079521712011582052688391935165039700951272271110752075629584094771207785873069039425876645008900868277408257328027237904072739996793591968048523718748747209844175430565869801063080247296587122053390522372322584000998187850803226589420678149667553271249939137906953515521078962654414221924864752907564485307725500882485897517516913867391121447578398768109490179781951564251741409994141269372918696285033207285883841148345258108660047656920039515497433834290734460656443412429133013810265935499444680456352124564894689993984393189551274966745729971764700801557933016621361708479898847513429715945677673100325258502964746711830760398460756969880412634019044892021712911998721673514216062683792409317798794991827508038518892913425593391136148581095926053436346569819196641080246906242783142970147423797648784828465329480761909292966142085172778677485089222025409470709012018391239807767382456739277902463968604499713787375323907118314218513196092447360883185278486288787108295489728130621266647439578912030144690390627860715413548326835055823437510250536488990356585925116421734439842730814252222690039824128513821188719863033245980086489361242619327171646311876027786509310430373530230243289415971904293528843889763935684486732546575233387476922071055735274181389261893085029294281591705936907562934959243403735982071343988139047680544459850942338814046951188146320880503234128860258212224094119435970824446381364276779751651206033181140517298299474450083209132990736611549002118038004734994313130818749717022684596691020537454042551813637657950371400191090359286689465474125166016164655548661840007435880368263385320417171012683042384342832328785435257273072211013843347448851185594725969492825316278770970951886644890792239572171545481633775293338200815823130860803995704009336271174442561553187662609411244133135817746409466625997117424790572266858077126392009523745796159337384309257976017993235819412223672330104604538714707852090713846235868412740548496708126228160685491149052463112763913312525924100576159947697680492874311817085106767701134398874463429191067616338480069529763518384097309930590878493129599484425672130755699187119776116630849805986508291867097653158808830606381883374663271338086186899049840051867354635160405763072865413477832469266966478284944963455993840959210252947364395203198556088170538499877275877551188941170913982099884368857847212104359382511726169769557110573760935983374240520478175777828512860837579165724155615783298045014124795470484310416181449532468249333250492342041350098375237956282285904946122982183030769977767666392338605266379424886247492148870567177255407362936558467587018797696340671360663638300332620952983335283151228500134819193560560837890763635539986434179046490419262205001747907426026504348969287968695462089836247329762984163592296541507177529731354677504575723648312382519288293811309828854636408652726594697414948534444754396676243560528502849589784961770702177610015960696163605013386728088417739381594770816227839421612982729114194650717887775096013769257837784313336606009337000237423218757836572380726491942731047822437040197579788936233696164146460727538743363859488134593334753486766896262059212170930092372451966246687017628939775316180634382020775506655857305164432545285818466492557462374918250317875967032349835533494244519382831532930162880310417268715887315262592293053682054384062549640563227163305335326243799047414476324314396497362027292408790414787502252215193994362090591858840127023130152213657450269014626424477731199918948393895119133180224651031464577779313581184206089018466120721669808360602295855330094631030200391695455758278299296825172543323263318008845915265456631334620407065755272587788204140631652164422498353825498636203410507545672670637563352627249879714325827340592450548172827545025373977540282765787557590167825425270328405032428297979507804276369134530975092573117369220636948406802275356105459228089907180550029242676850522762009292683686995125905100835754411043565722127073212733731427018910533723321363525140053765850378300616731615918786706383367970500522394596181553749426335553688115829301988980888249205658965767168907449414619351471235031036945969268625152236419534077175298821273178224642964182508576137466759559114473162418464004722520674741873614693492021463517725558225836897088995321227768011633260613717432864240230332574538517336562231341999363220004533819660965745259819624953617571659293842099470479095803974665855891415304240880491181756846630970135133586203195783891187334734314913091027908524578708108107517783833954775531529294114851900835017240813098213260556138292684759492172823879077719482729605136183033301759485589531634120776227781587303422666535296749637459459888485648188403775184094479929157459252111895501539766908717811396440107725418475784462429990472536120463292769448255985314076346928148301019800416509783161759626884631751023943804614526741420294546590262603031323594594311743593861807223618598484729963255666064985579784859662255692312544761391498772721738567024002946940885535896263645543472817261172517968769390561977783576639901711360496849071488100533848924621664016245222295535858701656583884400619941849557827288516474521297014368045085068496138671820649457141601368252128240328539869504942471134318556440338768146202414316547677565435988718753342818747596945846563903273410603531449336421241899139415086339830395981878713674714517576823918390124317402961468515917160711665635787220608579936680513115419970801949041019595814510182589240637332191180273033410186106808837363521623686601215323015184664290764350086626394526572519991800320989372181473228175979720032157909288738163099338675656184045453583526417674079416027957141397359825278209096032238275472244569446503751638866699077200503600797405301107883624134051027544409677736437838506593173102647108801815860073250914136859744323565857451686161747511980048082959104185319171572473612826486270156202243417321395615897423026437858108512043218667600548027145974896022673516411642553902041199528883535698617949967286120366336463043975500133196308273221694388783094798817798544999683024588833216572895235372786174813726094769167906609063425967256067105763668273192324604714188809585773077010294507505607600486585282339957851639188984641960114690118099490118258888891896270645848088868538069355218043875523051568386591051362405056509926483108058714687122463522133592313748588354812545286631304842138693837895567824351959451061626579576105141458673244632470620016268243232593842961845823638282349438280312078982587022329766248728727969855111678942472269579759295080917579094012381376701876192174471269656151320371417255964202267088540839481936436369181159002067405703789236756791238205344172044593968300824778970783652767092673188278754226008260939324074950779016976697245529221811675356012411984967554207563619756655770578878141521887058027256229764010235018397892420464545505935061522852486331481248240912567100903564660081210773415888399378964300730139301197227773490032688576816255312124966663355243284812970105620283710587040569733771401142801593419937289908937206489434014321803681081974838727399644884595116443764766328037484186116372152830312680024912281210042921920272984625437115059036323145423185983334308008075268884074082019785220351538934452607300838998499362371183931600007488011370999640642509450362753485413008504958816138670777493855699896876255419643091882693915905401210610205037128412708801708803763225413834081362635110887120748467297743945233986596087357528455254147861905679336674407494084436171639512240737402840302584753158428074259379521231913629442026830969776028517055643577003662190296793639033398585916789881891177395011492459702800805059115075525109954585314623768572488802162051281107885912831786795058238287575038819268454243264873462602919538530003811140045242570952927451665481977022517590664190380469976306631682009939736548417636682377050922619441421507056937630541889848388612210040252808303172672738934768102994448772757298719148322879473956474183730763904377720432622328550821740173080196980507661995059437829568568146141330869867328872181137728485856742089508341334613763591457878457576538909239584338950452247440053043175179882975352346401531460796061867784585411964972121419841805613150116083118927855994544591539356287216919270018736622298022724642439865721498150273541354217001347728071453317297907258667394234221037695578641564502270587994375265934104288756413986539357580308064161122066185500269291903265281559782627795292809169315950627875144145834126575250661222784281254363524902955057731313705722065770726777456243566630192672734400092569274611738242312617995455717484424701048081823400346290112333476866189537893267564821181683052031700412684704558327539412802862776498462366821335353595013115498555066252155820338891541098498684716903774539490626969950012690622200879676473092169885775976931970217117417898519976792509962688647181293233824895913558460539906370862841683902489091649610615270589959335182624822654773931214247756308459105207769749332069738540540050438510001089696385407842971596207797325140136081181712114169417638395797659894021721968572686018045925079459373668253856052211190584375290902985694646378763934457708443575506370318003239987672677794944243330841131210639776872582529148014087662164232014827360597512208847066515738980198591251257446027941619589418256639098574407162059482763926487833790373778046731418767419688569976664229533679755163048174360790999037889116653638845131791683371647225168205456994726542696110982318313289187135283117131245869684509434139961358145885871060770658822955915693555522800906151556960829050184260985590393967740521702918368101951067744474495382971394489710292833437531538531136532841342810475045931998566515890024537922658833253907634109754091216561223908255636128774587419703299504195983728128167460268063749351112165968347476127302906558284844804953435153555069611058902135037627639280813391708596503377827860618851194403533001071957435494825008905337785026598873102862272431191262591380969268170906524177365378867915944988714329092540221276065606235818701717317430081219126650064015284026516682337729109880919525375259992912706121377628395311943258561784020793799568838642651552868541790535797750915790341972318838532524894320568116345271717717620772465527823448198368935772924113476859040917583831160215752392345573872782499357685228881090721119156944696719001504874450429657829847032649509165583854524632284888753671998820645539689563975179870906110631857102846063623880943887535846243561358658342180320358541094806461598740997697905182421022909273448494213643074032221549113622564933166720105656161736806658515859963131246600646830639027773406640668976601258951923837685462602829755077451523444364959450994063113448763521877121760863443092556867923367714325135402990011309895592435373280148935538780382206908678610696514740702829707877219679882275891745299077448622244984635056254311696226515196154309954991572617051748141949595936687864619640119854797165294854514123141008959497002320263557601988731828257174804977765663172350084566355345632584140287162329797320338111001819662090733638649087206895743729593012653383769510275747842939828164235420457777481846143575442816068495153437666569627863942627400437442913018866699714041267985620192914176983258867643483283725570105058416176975032591768505005578765694896811775875362432490053888873529173602102105661807161581489101661984886265549278841465065013579391298717950659017170452301900968905216395277838271034650433347136410111102770991111037157865129430747035241790759907899594635378673344156264812591260414925977542125625710757768591913426270811242713617733553826225379692702219179589998586379606864540621638113515561421268864163768900349399527293864086561148491668138185498736107521193563729218612463976702149952244094840199821974535828138244101112233007004189870336693927745047009953694150162313498967830375405463030348702044646082837104465479502383614685163829712356326117031481371248789083027645772664850453979407175965240569516597830218413195240116015864506863350665016659058677493171440931090846073461562160522016963028810486537035915111618370127777084173681401544027696724360177270968094319042099642761101494806068166684955189491239119649474921487736732096714848691531499104356695443902671789848740267281641249112239944402065721383119514639657748359906237651623553185433338804749117198965781908821479378350716909336007222053095217808499460972063849924364624639219615793423971776456407199578546562816369823916353939460281625153905841743216699775995735085866430706087790109356278936973184361323639063062327498843955301586571928970702312353541318966502004681557506181465914106500484290582293494992957052159196934373564443238723454155500669232809095840171909393053244385776764495345405839846673551810422813047525931668594796184881637062815345172249084736592450847172538643398482575703904801376167288706720928349790647389538545695828361202888620025377370099934700678539933760030624360789251481963147761000454802242376910547849464725508087105942539151777134013546405764992913416512184223783035209882803013843468169608126062853431482572564112441273686663937167015856292376719310606661778671145541736401876942022876361132210048830447042523077058291609295591842373523171989173276888124348853976621912600013815235394796646523524009288901681082458288272097980562013211757810302275981453345441334151638293836446222268214768833270447936483597721757628161466530250873976681962194238552588158603228201762824978461718915396906178832774520411463076649879096073501231331102653903479484735985887505540337529651015698212147011094238370668560454541255033120734603962184221624165074050850229294200464378464355488158516931000231841442908716267888825048016130386073414803280274506114992288843186970433974366891402299966532718881803954056215900085483445650695119437516570699580072591291662714765833080626792456904962507642058512403449178356349619513937877750036492452378205816600883936077167080741561736688679647584818769110741970014908767742062539165751185815474166403841813808579061198695370741061056395761634282644236351143817692519386379327678851039441714462129221085875497761669050451321536260242076356001454633222092348622258924892207751767280773941136338043306058266917565549573311195107345521402077455175149889822771708301354349314162472173794612631218498071930068723790895750208410497519242548317804907997910335550285256792042074385396734457278759446186414054343266029974083495141848879031838696778675890414702531692068393209646234524331946809512162097552781146723751501921183189239449089193121593883913771027530514468583421940299660065400895113986270284003674424605776457279845948271602646104368134737837629510624857360264599892388890362348588641683883724493087835434590300933667353604256621307781127715722168415351951828310130720325966155428393072576998398704106310528989961551968499399080696390686462557051528552109055616569468651320448413066280227026834895599922109176139152055966847466046502400598626008347892319581936620151651339698139173464281083594514017477250358225320936033035635772706507890261172332222191817664784852015951861529509994355049185746725629489288002828096288052814578584926359462307555817843876513832705986955020334917019631565394125220656773266572867667002256365151089416173617514930322730943112319722864389617894645445260493892381669569760183417320986601503554286089427941698055790632672106896484346568974094504746876396945541312323694257513331443229498647948541690047581602369097392770329831927722098664123297834106897181731710438503678135583575176730007297189701895379705296674664639575193591314952985324107197725047250504627683273625662594113395122330854492494223860090259119993186995613077147076260928370419579945304667919939050351581042671283770497247450592606366851554169462057786151101422277520170288373552592656486837780295838176370243186046918639252775540203541258339685176149149392543346137258811034594442622659055565137269650402518645344188085770214619596424993385775104852109825852437096090067712412936149891566886444429176996838114901689909591153355994065496677146131834624228807836413940886336343661978677588549226789069684947035280642613026924733077817091394548168987345214075101107105926471347195766163530728836003872670019475887314953649923971832139966830350397844159560289693942238723425815589560379622648884904174094940433242377043194200525915940037740874131098145703739570205995632610133275897655537588356500423857198509502093134011653319565884979553816365014928180329860669575226577337355079061977193931614041107785887505294701816596780087525109863460665739407531328113204496529417244336341423532363459007362166105237677578539540520137540411036533979459635684873959919040590181972349777748769981562343232141610179858558873253620014328308304018724792277743421048238221314972488203967435696855842751964071340541545119182436765398133659350110073778090933736255157240137362754548439925549453574227428143941345647431270702449089094113149517173351023607432596317529747105292371161717660318655898204336233349673788905700538877329740957731001502075133553594084466006835592102789474214512696533920410568782902808822133649534461881646102827694836589246904229521232759801101849459168434963004167370519445568548773344927641087668558398129505518372874806450934097047617787519084973317756591970643372951631052064638036269378416479750922138077698118345821482687173594026294817966187561317789339145604561598578645430408841545384015372891685197729442394245898952672165437225717006127240769963055603943500584219132095067844491856580598294831294083333106462642812028369122375942355762752011246764891294739194978402527087345403800675438562079811076700899160383539989585809760807136034853539037940722807280268300144455464270822992781336193715277819223878032368908517906664319751851751734135637181944506694203770603971268964585909748314596403530364088877682342940608623389229855757576698361348681149524737076778238728198515874399616110835449331029891587648311257048404907171994925494866980325634003504027017028965628815702327649035297206383543904342001237176091088752580931101754952142076250570703621729625007355311885019139858278604470060317271948084321489726080107595964693850681816547429132507145752651692306030017164024691574692591701090104053106024092126461552664893361558928838950504387892680613465404146584756294753121844801318881365120834201054033687349838690965378776644477015543590674538636035963811622088133499249074393047472745671119953165304941732691631221444220506039749049833386898895922342630883713955201368714074264905441998720079667155856043551302465655442531927890154109976463805166411250658451899036092585054428299901649034087996846633081291489786183305400716685197572408699919362950714861539185098941718752982227501996202144114915816191263086724974614792232860421580792066151720712494654322722689750544563251194522569692469298273114408883214574601783061408120475113515213351311862995783912329678340216214426377371245875100750337147849520049256008859656852101166941006598784887447535559458291644862089013821449572564318820460417942910430257858799477015104081361136115925171319240191918710787792696389978954526260149288895475605933543760568237489996988951678923282326631605384647627948738517064065133769683670592659490673312649352867771011657577869844861521039189646123252951146119676884253844558497150822717970043392658135196220496626800719420359553884502566080863083650118790148061072564724752146729477287239288769939701585072987848731942604263908137874478883352582827360593733266089307188834097799360178310559919309031298033712978337376829261267028293071532371321165814420593941743906818216318872355773322792785589009017655179391979932369544931383611311140856557413019684680790783075172718300686047309463595813350896611293939610820558147800897856804935968583823423567876437494367022878879404159767037185182715102495125131871782548788247930096585753499570160120077634401518950487933526218863375398277248039483717914647729261116228341120886608689829264069007053855716423326118148176110187677373027945715888870566528873209767443236176862023639139924463090622449877024021943799294639827505965379900998920218647202037098349125142511045312200817951332339278992184419292672606754985999720928765586745377097888869371676663488230503764990824178439056725749835600286133946869713271767199465997198380122954014439220867503539798900601499876501226392068159293429028465826215350834566705718451463421599002140698013640062446895633160822599395139794243640587451587681726490427907609706474740445606510026612568226802478637245033948399994966953575668261536498850717294942088082858132013189753466845532043407362045505368150797068218899302308534038931581518125030430131882133858494936450098384353955252625589469920562791236762702683026522110270217450061087027156080228844837400201194392829801486985191793353201203899851875112737003967360676741919554553220861986252189068383313648291071890377291480487212733906984663553702002473212867529698211130172959934104658909432988763924137172620186676741384949889048891224100964524889932609206691607592335022057546181062824606889677129999686361114411583677778601724132946095361747759493391960597377781504971715806479902362198006768970182443654782042660054370751947917953813121632761065392588481143938250373486095438616685724432703706584593851285492069977853045296536749296853387235530149220708502368848862845622065798447753038633322805869221653108005331311726930577215840041016690249617296188862651165907862405115635531486139592625704326975686141362813365232928328320848592969376871726537940434475513302290697788039950864518871947165937754916441974531009854330285530185329033081358789306491181245110850717761421910011586837884327449002737051472326891696485866905069459696342894531166488060669413974440301471395170417056607248199482578510043234613532782160697199391782785239326289202971291406250887547861274805240973039881290215291608703773688716707833384525559248327821980117220567735410100873890585203310120247386891256460452139572236935127016540726298736446731976314354051902944798495261695344420491733489665725166265550918736369632934328383411060680978887724642332996689356820682533621790003528739708804393201675713369445677764737603045486354164186118787228328623839659869872773796272064955133177981282276881936827417390092350056854694601890662271826830731394978404224759055297182708865981171371964928392864065144262222297779419021581890794477268361410130619414424975574104700956158080393826191746590571335285207862534946104263317634656211323631940855248411946981947640121020872687241546955949572078285807376057328704137205931387288058145097794049895015868658366759871595494315628761401074696504153141159463452013471853601102804172676404677110014342019015094554644690528264101894782095076121673118959801394497290629340654567080020381383923426512635999085733542555115945119743697745088366811053289288436550819849028595840609102155439813867186170935299485543227007635057376291569215173362500719510440251863449305641360598671598064808487880522400998797292948468547186029048823368649932229360838380427236892211324433074795672632359012646893613582302035701815395044311235704849536700142015790186094231680592075151882545168054729426493423962253432530925413316391953928485895430716586346581741282971359967308832666131721004373517237616499470443106395437832589567392848455204913952249177489305687688087640340732976792048168859520849718688925639100154349911326085000558452708485881522721330285891163856607948383318978993394609199494942586798294340442707278792306571268676971986310507434499506251959622403152142847012811990696592673443780723771518335714794726112509853235376104488702230602935526834434020463395089797187132406728563357476485433911249603730747000838785974045598219695939793321301654793342212964524609286099142068450182994221685856130422589326665733680345639047839915038257372084659670348003328779844703782201308497428407225929546870211771759870041951640842732171723033849606639668854493426889512192320451676105069626055134024811424724964779694591020680962575690260270420789371252914848092165138084208505827327784312625612855705515482010951297245110905243145532436776939509382439693114253095222674864181538319757143567878223153519561341953334104860045662230188392148262428555807446521640556260375168481944513115569451861501970405742445041633544630518665262761291905141628868436322122789969236853608120721779646072547110399813569661615759134647599217693124440377133595431054547854747361162296085849813889037059224077649481676619424384523826168141197750806357938119097484821477977836453899970080518742474496841940245596735795518353805417503817540341424788132894179338944120083673471150323835153408128487582970507409607650878259664550625942944983135804202101876129589482179859629274585329121179308024541173687405681068873458965751643895489867413798866830922988962563965083433110410400518280527060642249898023596712242357265141214345312869750230494532082248995218919505451531398311410719998424651200676499837890394524331330928795483670728077354726131971167866538029146962158911591703563967652378417657187471780037510412255579891352477714559144245990768899596194015390097623152988383988280066051880915618520023707478990217287863758434570432221999747401283542800232775848974506331821001956223876543798075178624305533720226776419818588679918165762650963383291610080438781061868586811379554366769221972167901893581913126050095581585397200850780324360541613586247567159926866513302414207977403822934185149388155091409399205404887285733641329990560736240043128978396383118247125789723061200194981504432843893790515186288188588736260670042881552579979359086785031277269452030146900237550716203986742359859645083064720602694842086606817025275691760863139862553884438598926525509317297931515444740311928829825553403428891830761096568131509494280509354878521670160964607146688393626348675668774975729990161289854145416537431205265322099409687337504493015019640325405020631343007768112112798809104903953310286717108520545978469181126663735724196466465945293645021313713154792093599225408345363190420182306077823094677317151288892929068920139219980317655711530935239080442527303821697741068318392848659977735186229995764570573745958628887111022662673224494568726287632406692427708505773596742764872673337187752632514916013634457030211308639414912348766515116104126027772611911023595010609304586648843060420636486056810009504152281082527431875234234343092754239104013681993050778784490242674245286116855350247573959928450532713589737803738126990277309203102748231368034355628613195838507157077628479563397873543071474815653000228038031833651104586505339923363262993286523885145389155857585701692526147424044128446115406332044673523403391211844723878357981804008034043837307467008450964239535555792373886660173150322264388601631768522014946113851344965804556741360898112947329189978839151061358500222680481235678991036319260090144061273892613910915110372839790979276359217358249342242820223704516712162259168380185505227396953281825252067855072762916394199068460347550629802778244314600035162176627911759698966086178206520293224933695052628589968671242442019910490649548314634419059876994170823679845030418548850826887809296402597719456642975848093328945167330389209963329693372041376576663879707436071010475950928339209601552597274388067320701898470463668115001165752383804500724991795471213969145017030012806953632336428458286882003797840542176835907643796111657766564588459180713904287530203828023928919998928627696583083584553267149921029713961603422955084533302847760422964527518290253321961833553183979343179396884473079185519141774720463281607977109350061650175961269957696951570325095167025215028665970571971195952580636064583235209778078833142291815259862381621706590248397010122581349065586516894024810821493058300565061563868459049585377331746530668617469587025301463102595811972162270759240558865955014359790371167071793023687930947341144011081704290854382986257436478141284324102892785890872777606471678099941002856788371276342421157469150714422877511158994671650201560800838443184599198126928660611992271833934079928598377822331759733737808602518712184754482187315827832636880018008377931521356319003589088421079720409017074099396461415204746391498775076561391319924482881215825594210619013434928123611651013242335642530420988758525209550459284226275155560266839572172396548546791807400986675864396239988835939421847632869100838468014886096726337683009726444692811456767090864448326683765282062420689873500365113930580474934494765308941764707129928107492448222509381765923238924069683764570673633961104273695303130408190034686304358035750731411680100200241613606959964326676876848645762882728119850750026896590831007904175687335259404546411731257979263879704351669403671738887398283519918456904093737005006145762166457800638758518816401771856243864007644043305716896549024071999411232959099088402461614543549663295236872459363061488765318183063356804508797924943290969052628162348150660534654229632190592872074608908243722278125921620356128416568031852115794166794320664054070661866006941370605385051439907959124583148234087051797745668308536182866278219693320884570948013921009473908296095406439478726927152278071627494062356375867260885807784130046670384155653429227998662950236427076625758851005849873571393182926242659261041159217550471711600964984328658607365651506758685953815661647651887373643671287371408032187128184577034993369702868700202124336339151534051161566120854725859162501835565213317319646711956056686921561877984054031646558233015806653523505830617157885480973637933647261295885523451178936626408757059767956746612712001257925920903632039654709903194993298039876057145124293136945948512136801455936168375960300606814094458925527081807783743227689113365400327421250902065666789803816931842155248347781029223962694482716074257002849927255966357370789512548278093816949772324972138960496360904686247024754844597951716808570854628917343713927395126154664211206444357551033777568421944328534155642903532692458965449323697328582345727640428491729770821513829498147487034835986052941976475079882675563494276480707606280048155332300012160528395733338519269153598942363408195498415045985606656311357476269002515267468847424889943864936462542885031921822841830094543968355873290282443183524135159004170921269938805312586179787548030854656816392661306622758088609559497699316556370813242463147816354857360278356448291802914555167627428134218936606213299041221114822743566855593184111170178725018084563646069170835604986636961936196668076940447859170723489527267615499393114159809918973902615627469980366236567394962942518930235601447827054815597546838703819681270561824952870837298565863774058891146813448456140228836402907975359520432795264271471250546589591672955773011497442831727405635719470074828753159495981917545739524576814470805141949817606419133600411993832721441838110576763510599476825607050058356541666915279254201896446260242681419169072589021638359377793780806419189821166931351793473172956555995472704611235907839063444125619787030385299682670932523806872062804365729142870350956010089914330124480077190783060035545133972418563376272557904890554166046184279673855213365612181474876746489738883304034263988837119817783031407944824033341167208357192729232126289829137591084156349598650684018832610093728217854769574727955896613909588259564270302085385777724542525652789658406888969192640875684870579009750140680606779452004446890373871136946184180102711880157448660959480791450416755112491958644235292687444672645809111808040378767754848769015872462880352038039586202680741689308847464343975412604005007210955377124206012891676906882781810050007686705580928730912808534213354782173195966353089652338921266754867498895644655787625523266610561529903497781373136243099055115028760862969927922883294791915742326040321054735833333189653319909953516511782151172757023146744294111089886055357079926893475174310270532019855433974037177165875542505512596483629431364712043525704347015474157996919470980276446948320357450063167927671488234100285367083066608516707277686199037959544635838168693969121329623615101873801353617920788908501676586788614215626427365321357074389654997288635068568050131147537352629791301719397787390267750682475272304692434324112920517230331107365004913025677955242158035441425913954024842195629650328763543114647354371780798860383070836944510903856456403204093082983893695473351612399542049377668111672361941122575560036906980439236528214478944837403277779130969209961624722503431117084271618867328525340866557001096661004922241500035898317735064276482180774902714004998867647331789747378689415601414014385674339310322212444821185043003471230278837150405868888362457926120229213508686504657352002768905788023256119331268735588033875629884354460017735233123089253305719491940803793829068616121775992870309380621797469613422104077029532939445423342840690976051910674196477297593087328176824819995341058511260739073052749622666444912725090385615438894698163632210548605991461260555457849013784230050704927020313253720746916709602573829145290360435464884481159868320295036846461091694886343280805335124619343274044391186344167217766059465057969640337897200722237805509004034979000089351050558367745634065240702721808376464902576419841320292063803048957068800751513182339425338307362273338704131016416800726458884585933857999620319388428881651178291186593467629866612131700588312713728191116978649370841061190950160331394388930393353015611443930197396281514890212361148906256434020888999372040460593851242287351461710466949395560264531395234749549572472433998647795823979616439420392062886567103760637469386677307016230974127006980503498591359857469932263815981887632926895391053515767347260363606611187870561478042806033536231797608253128797848384204497604676917942478440303673239308410276150799780339435630059524442004846686646082155233162091531458160925503264871113183282556497374794659618144716642091415445852042790486651477537558460988667442008637565632414124983408208448993839379216915246820460207989494778006175908062781723693102171761733430329441772077808338296336279806047745731986469355767684447609419740499502892247290072807709785228286623461866232008788837770361918080766917137610400096044620927370417760758842272733324561846544034955105751425673487498623511011843294979916432023625396160952591273500227564989259756073265231274342559065794449134671599881024961460570872517984336005304176532520159580313035454307455293971474646002276734935047299619455710210217919877675817741083460700197256660195310315206503690789442527148338147242031449464467785237506582661209379547108435638545618316952766384252492876862201370605163435018026924407164004670816394997383601668549072831761265802391979725258034117944640570534752653129796815306033489968062388803011881242204663371765818247727563160494380336691932648922456053418251765955539463677813456338916551141636656077914932094289650715975537869919883249983033634948920494296860830689122732492587300293294036117661094056197450463548120012271994151509373322148219347855138768128680529647800661353285108220930784839826468824447426629718162592356300898816067551866250141745861920980338799452464555405947168038644917695402642762447509568940064936042419219246222382369053599176309197544500899029212929843729053765750134116174747558526243046262906768738282329111210974838789611248651297813463096911005582082806615032407085516725388715174654516311154622951821686604401414742719545724009958319330598485412726084417157604837343878989937953843604819160334551604157369534133458021349224548568071223216967886956401606709087069494931815873587731130560468453360929234903190187709763602529271161105947054225171544365454711966077799084452622152821865862350728101701233695820926913245292219569620313986771878588983873432378074462619044569929366308442645885057651731201988235208889959460470993904289514083629157001641669645330692263722030293082476183222675509909486155809887606461723874540516528348640159543691975813852680802945327528884633601998957070294306214135354223574650732301833156672517235007583603756850536275705813673941817374651022928510458091627507998801474095428191532298083770886343775338881275251297992922118911593945419500071046867029067189840750052038704081238457590120166531106252340829413541017816963749318250094260973646581637733334829882908756997605854336563664539103046372372198941307204342940090450927724502640503202431296695646338454207516967683273954416742523759810199037735368408898418950053122916072480943818074553536393013187659182609047435945364023835036093083322419943538888313941335127116290126076017917257740248054199625128602119921075973884781805991819621963699256706311628446670346959354709140346282266573736058002840009286724447982921959209784185899980916349040913260975052770908551342491664198904177485551968657875599333860573717772085904996114438184797665500868950224427585162125147631828461183937695060522722839260944726874717148050111272140632569999554342831969478274187595935089011949917170638868283749823406200247181765480787720542939094437226002732126557113961212033137075422291600920024614081552426468732919136961196049011254814602050528164104568135994464022028366005963570649155417011102715677934199965224419976262488922849566843208298685326751826247059339850138803478475822630313357570181251905016673559039660433932164445554604811528327953532691230074829604764344201519922791307115708181248597325383791309420344599470236035967007731742373678579826398030534536200291849442328656380228864903998393923756173303180090059439401750806646820749171813530761513273951921822494693021635042163197559314560731698707933099704995145401147667878439839791618931934652197271962704563717019804892837254266874694235970480384909679705075926996968907975567283484829876415149358845201607837857692363679800433283740643969560308048161565552830289568972911430698877197695100902444553895392540704895279972668150469603177409465136609836477814147303104374560166064004660322680236085966306456533047218728928057659073755679024275203206959249670821989910506346566766028856644692326534578861293682156224987911281223004805480589927882028389563980772947889517329174935699240937114951646629208311551971618019406802471281888104865995485935162918650725870492605009111865258112127639623730284562478130283860435080967316888274196872353547637321819752508107202362420175537172111797754479090642561752874936939784360343909055349445842614034768086388900632462984660415530401731895940665049141197336524000860424784746664997338459144012766245796055470949371988008255985181966118328087419085481516807507200745711291011938618167134589993930354231260162307630046408202877096132493450663555301454585774880592985752125955027531141931505585043407609439923408876863045790595022199602745992300140730874511709364005999373071476409235727074181934967740032490788076715182407520059915591410480780037683818059059367529447997877198629808688462852387455177860384704973178557472526674484232807051708603524209282841612350558841456519937641097171553537016330199686348333067632028419892239224571334351164301966627806381743443551622109760749727648319781833092679801025127718823034006907764809595835673245780791469998319068470844866280790055827527943471957202928238542743885283059854717100983507195156292837816065454940823918744217166289569450340766176211170135382994931334859439482785096195775969666089309088255248200350799712729650289409868288553496333122076842456581966807350938770108602700302938924786673429457785636815605330193604091270716767059329263079568132325023719021172592874743365263991852650626083888810746398194661946077787367053337866684349879231835443455179327435977650346873188239113288676747064336192783586536211368741684272235166863553309449438456825989189347549920594116190996792373465206535772517578166816414959535336179370668847743495659151625566623975360488098628170239005615276872277998489925888733421988811214435461140437261838078340313567488765488111780133497042129796822939051991271280741499190536058129795424568088796470383049775085010394882534526786689535714187212676946361486393996712054185745090993748245150724923940516715326340247311840196302036710430326398839342232489439414795939093525030733247463868366895877705388316917559397289493606103010724758600317280236764144405522843950524684018429430045176869570696571770025881750803122566147938761844955584383988994053072214257056991662289419741080044711139952598506977571168617546418601777243258172295977347871519887343591274385836742769937150407562584831152425353066490274421553263319125654083926614634943939684171865498288672718210690696579367897015267327200329636520727789366362765184519314981990259950591622933614129745993269575838185435875981053793489375779924372823077564124272629280159516384106034823379366812312105048890155250929250218333330085624569461617568008399607180377666235764611907777615103216799010719175890213999428160045923521401416663703966968608336745716353819440299351638463158061347759539043769959095980961592229283542691659541900427991539642717919986323979063530723911303303797277490171701012002118913820696253273949425743057055503160718955797044020295959426720932031327355786994803147129320339627855783373145250178216304070049797625706291861323398119938350209817194987696513016337539105806256849487415084860520437003468742767761399794715096920446259688422882327506004703522550650611731715339544305095730493865669083562177680023306499523602319501912257079382726020855732921297181457657556547549511919166741252012859657580360290139553482842021943590341507452030267941420306443966629387981404443641257416961075456680621943798543575792144666597851494278830946205740951913705983503593583771648054637583661644256548936002481158029562076192623488102349702356668940748988998215158180862833474527030491363707536492138965769409152140178670677382635651897940212314174103507055860275870778548831255115362271107443191699234792897730487540910904597854067716343348731715911693110738999873695670905789631468819545784545166038086286421335909161454618774377169088550730011094945557079430900294792397696885467190062426156868637273376514560736655813771131120825086791324865576113750408212566168890403458514532059928543440047104981385546221405275821928164067198769070689516697561340685974841680924209401887780604126257359058260644601581709540421786959972149161283914000022280263387885196807670539263678431331541382357194326028688722576146359280448878401305168873748046620504606990419708594629404752032589633305108079752831476952067050078650763954123717234611417247167068092207536482759839978602042278808970710684073097089029952358086473866233256859944568610935816745963290717416367231083671791991403618222851618469178258625217248784387369104076895136457786997280080231162469573223302970064643084484414510264296196153732678817794522698684385711357830478206389807023476494149439208582409504102349992106032105272841574637233349073805435335374251097121987490312223155479095930970564618314166648449989186740210081391229051130612326349473437561394478088485455024214035096811601760545265463315302992379818989409711428708997047706341800257744153341921410310459036554405833749056680862173340212593255728929768265763007506128149143424913718659693156317406028142214225173172209455168166190877349847037709105570578366815263607582622776238943465342531286070449255609000404421454379844519817968460422031335696162300479885876498214493357215783767563828259080310587826711989147194084596594262606285545410066195711696331995782184476475318554752290853168815850706209084145777992359520609722182071068836836677749589489741013970798302832223182290909263235224605055552838871657645758192270754409209794912874453638087077775065901008202097415999096940488630435840600419370793812661161757356305954720452741911875440076365697586395582274592874962793895352829662620796439318310436450418136466215245023237818436251931463349146082068894360330906418090931147879120250166415097277557879039892758435479721192208272686563877127768344129855525063071518468872221500686416325391580835262955813996888880808588481210977110604024399607580013133068536852926946832059364112121391312100433259156873560689455476061573924676282108184433368055769103703647277981610520441277186869156088464646085485832531806760906963797651660437506833405023732230308629860544402289605480528269104875196571989275857763550156516450188857520561894033117387512943274239815356653655572234868894946684562449301733396148824064518129480007689375532100002252069560449637498695840678614462744293201890931047227959262066527737175852220808921623658041326079888420991383801871030023832862384027165351582171245376057334928839165885600445013265297848707573784970586062145597346559632673390494276155867445606587157995187270511915810370786766008230392959519276532852641067518298676367598710135062965171285481469790552667690582440745818000630919647908489430243332868313034911342905907777600418167214435796125418171995663195175247657678052716594491160015810436499248920385662330591834340560617819800132253829668372655425212137388150856603808123807355048218499012860418149548888573619243672499315338344034929928356621765938463237645606600285465302405105693882216372213841754302449838671625038731255113599495399292909429158422499384987122657445512656614865932839902392969621747287148123645969132700322314900057719608949905702932124731606312774751583180152465986979953529532374766320451905013500055669055309614953606160649340076043179990147879651711867623256604325684966979172930984752959642332477901843023939791569618959876030028293889579069304634321405779418999953054609661195019070967931326512153004100306651195817275311666545954881088027869173956717012837484589322816324090860595581856976425370043843060209095370390328801577575742421159581346879053338175997308462018615201096235904364817632643597429133000963112167781522057625464406763361444182290152391257190086733952081318344547891640673638274782890604392856271582048084913141714568544520012496030619595460966198221453679635704917957738769534605972064012642874931508126207812726470640465951667794304085431671848614505524661565812878891091828367209881374258099378959993470909121720365135665796537654672855265502639853451858553663627372128633838757438852823298192471137084922044201199406868911564326015963156039717384128270875352512666594803191334397082847307832272745609823023501066168971957340728542323067529391028653702211262485684241055959281316004490492795502914827179903769271585377173709664109235883279538740410570747978408976914800373120552207863973246296915961247503727882684469557676255448990171702517817246765658286545230540552528588459350909650273674106189080816659316778781792341642491454478831115015922588539616358388316953966430853888076664435129739098945113400578890949375812414283232306762864126353194784979974346633874248697924416787740046127916275402860585553408339283477957881264954267509584382227901663340314900587279452350063966909669170144216712216610376567146741210850087173703077885378631569479781451356875960778018815439307143342892088486767253037959843088589618625051899518490120167030914976723605709548448396019423004797613174202733923943998319090426060771899516758849818409145025900912379625222526338687464372395152662474246612660323532597613377038107719104884595461122369358415135929961152922058972315473785544542258452815561180563595535841809409773396588077707968741771001561677142831792112334160273112710828690591637942326744541124982638820468318834902003523691762144509414728245281331856473025774265197930386952275894181133645417991921532037443713867034736678593043525160878855438664720073531539780816517859300613485353467679158326827766402621067931259766537639552646935787268991402404668917391865180363653571863487283282407456645003321039753089914013588195375683309300594589893974801902329603503248808383644547997082187657684957607186514080680975731568819954080614559127097657572621334912723799283076356469573451075958743494163341306632833401219118907476233057348744657879344286056101732438408399567717039018293013382502657477593283543654902957312060521819307262503686272365310841882090411636246340091550297664625745161497619695773141160068050641835782766420640578684997911174051287040811018985407136553283490426582257450832586799914866249534627273710838197880040432404297633813181349926296682273664938554297108715286881178077171032338831409558373845779213546087812647438360273032952190273198697282476161582389466392029512653678793737653470823800533313860849058003563612823825661166048018595795736129754457550294111970418630359842646227336924389098010412456624479049670513287273140137879939317983835368907610444747088578396430081545616454431757305106529359210140606313031513570027825192468975498957939371610016712069059643903452312561857425612751583171013819358805777859260070888327425986396330035010878604252704426335931408843908748184156460755089587140312086662290916271122633316563114729027489817055937854284739082869060806540556646533284446199590253917197214588306948482511062035445766041966765339442370322250522819763463660267908044294194151240678616135739665950795939206175779743182550075344330053157918969170553983193636904084152492642262741234618492748744511067647740153274640141044892573519136685243174761235961168862994982887132997040279298116490484482575042774758827559122614152938054547307930347692214891198946266671659873913589728702467424433297354784272176867598282797858079515675278101161278453104692830639805356546246326685006423628976008597784802248318847822997105026159970123264953444607237326635124212653943536720763060248493896568914018615979726709809212336845961288769826125243587576098413612518240387755513709632000504775303032305925543999440280993241983931159862408963307988642179432561328939332889773299966053371977263170353722299953408587808096579420353148303616065435228500017848242809491493165559386056012195736116028159212863731848654494686619557674473926740000948604076636755064326580789119662305392747814166606989707875741297050773856043922621492868112167632034365879405535494169168768130212157747001312405776742761992410788307918986921460326529318469174258504205678780823936173742871638904338079289232389514160089005090239551447617690185534390516795477507925388716027491904422740945256867505498380171917315312163475390586538254580725288427213042880576934211419185578141802116358366874734757768213396059937846237410261838462865977986405363386398259327234898867092882459649880668755762079948226065914284336216443518874502617173996788338372427576626300614460031221118723268968284235032077517976450227565165088575927864721584348335394219796674916295046908680093795843652515471773810722671789708792177610975219644756431696403511658506911262713770123843920813577545287252818426002624857813925585058077626589518590344386184981532827799530834857380865923466841036075079144094464416058701230438770646575063777596832637700965161042888480583413583773541442670161548541051182481645391558659664320006240210349035667835768995583525009250916811174819822555401268911417210184908852366820956787619782437876853879713935642231535100935712123107590961210123395822434869011056660892153097556787958132374740580076906208129438236377859095917953708067692281866246951232561735531346044344624754718941727412476777637884769034569716557357481965728383459444015591810221915426612504607340905235551961733844562848131322118889745353111512333239537023723715396153176302752207305011358032756488835370892481682168067929346977806867744438635017408695062042560288829205277028567338003868672533624157054016524001843959377792188468882842099837291252982375377214280872567171214998901509270289318569747152470106409087699382570565755448652766120874123413986813592070592385488566817067982109758535193146575817818017192370861211334343060964354632331665160535591274737298564135078200407615383622923554613724952041876352856601966050839625100485310425226072023828048193270915740959165008588859732863718971537539957823300617931493750832641441622263701646567994415596127609495491114818054731054739180654047972864113998723304669671684364400692763706416754037740557058903997173822219077679019376191165639799322377622617293067206394174272101788697308104055676030036783011748831833571921691001690430550923394479027712900072724302656927554164090847069769182819998404394886337415752511978783361286289142614540117657911799355587672813585546832282123651677592801923679436923671230635724481624232160127854705033738513978187429271335701207792825785540855488121616819759993678875419799961855329602053968603510775066706888469153110325711459775241874031905113839583439977040090437601144539927241851226596445949544305772388188019133600010776083472528970200980808835003183568751418689596748313092314517745403891504971473657316702483879786542787635329126803436696725699774489710294289076247122064369094873569136926911221893672819846058287165972127564594407295208622163893056406355413867744926167174825000907500150697616157793808156695536899432388624264574073976062578580549757517384801235253719563921622054145498508710381970029530853811376177364346327233577504288188410456190750141261775227308192690967976913818044194590035671752450357146166602928650299428148716757209219265446332602736992898114944091635004530802442083846565297762614312622730889200163847176096469440091131678971914932615986825172627519831399616088130043845185438267151077943900105879243054746552352879164945936083152654404001326250711499424330985634862729158934899746955401892513217813678624379013133517652486787964817798624776729573379458821320149109796519587768055596855252870693016678932004771195785673580446217510610956568649447682365593409796836411416992185688127919507289959776377931835886469039874534881710207655986376078383953740131282356821397860381233354491903981852299893075882940650727599328087933498290127551552732386392137823530564649914578555004310441225468615029327527270125263020431000167313388416201719567820491744742035801874030235512585669964757399300833999774913289564773300831864513422873910658992078029999307297798822163228109125271746861186950378435418688521124500489217739521617716504116017605181808945041519476467143873537191224559488286431878407289099035034696808758218280086638497474522359110589536842922561491451091275449633584864713835007608078561569640923795800527210928622362014007811003965281879046939533857092868676662323239041149789061386418883825638758795666585150446832897460479506486425035274482249798559488312327880580773967788079786009841789440991742377575924897161266915747049289666435738843431672362184159141392263417409159698087400309038161740855953133897367527944594147576013270185999233961356522514664200755224916062527747714144865143420478801930005014078553332231975442173797131645736865721106111504194268837577974223991687071938116961059460913316810661662968403550974298140591668778435482071664748349030582257566811832959349965941809666537969558484013663915505451344520215798593645596008899637644939706914387600563081711772840761200582490908345751031476164847239589690948595678262317117216423063833967785632350053677788685659339214547370701090461689035149861808115744110133699814742233160901672098093695154905438139336612503603612685594691400112585498676158662345472858821417693504851875478777188462277059257998808326543308939228742857773753002457122975495547039002424543316732764331522192806585925334818906991745202232444025659052214735387906777326283922852790793926207650071760772225835973348199128130830065891550695215692443437506283265203590965894414289202018958980290659544345467977903947576990977425067115927312001889997008185225266655700070172352260075695025801098691952366095810979152853902879195546084603008805839786616147980973039100880436846511384891102288113137465693770099794015330914306473895986325864537591886492079961217677125922451310714828855307374402046780771654384629162084316953589727692610163170450153541936423437593601343655538215186161975121075595828331279483804797869431238606296191512738109204128014244392441387773053260484838892772733610633819107624526730490223036197103057059467274304497928015461180245106087724150191634939800272962515808605820130461690208152577187973858441311481887028682886985485763846380087910656209653060926558080520822197585051880498922333921522189098423165993653100893568589028885168276608455536348516498583856387864397337973608903470616958329379633588539248023498940306738858036191195660571030747579798686676940899252925047395870474325430004264130132717172004974867841888215958971909156248617787921638524799152839391203763019178404037816789735745399362687718395120543307157420006677292107468042481839501381059474229309783882024063664869985056393311939141240352449344781396945130048941585702141715319376935050223132491750994783562982505459586099567041915311947114143000588088199463053815283580314814069772954494000740969119621053443484238585877841674867004952337596227754932847472344460300896979537109922645252760494394917998828367360201704529355294499900308131142298893239881002158161253431825056089425381506901782973348654296832268261522412026266929039397846930077314745802296208391666488486189367483896907079932359989641434927875239828714436934166647224466025444865105218577924441791779652388622009430416604911889325487753752538999172031073919396105116907552871135361536329074346150958155591475144282724474271806357446644706442361884148324263485063374426478609034296984827246749727369294234410175554794105171111218386333843528953929845658429293159456864234057343596387067516803474820186408860256951951792849618805530152810182800912782977974323098722487388434518330766796414451848237487943668284327502836066778347113458292271478522596274703713540581578866332307450519699656738204899588058123723477264422566307622050783787614670084926615546999434569682544300505611906121623977006898570030869877565860399569555814191677751657168485395786096956915565394055949053868146640958234980598402867748972237961933800390142911003671064815814773682413878837735043069176256724239398387029159691121724984558669986119944909765514209968299752597841906014019068917460348680724714803614032213716693453433912488048234448806790176253812110947684257614399607381057959588890257855381121741060145163370011422989469634093450283850678872641121413902475284358319005374570396914128636139067682224535434003250790230405806514467901558108839527592114846138496837039580530989973557573248304149793373973811830507644033836713110126548670177759553957906045853032708561172605335580502222339446367772031575062061930774251485366876666870281824948428914217274662518699728718815145549349752773201390783978348097205841754824230325978948598293992021524252505155761730879902906734600998409944091234230545379775236194266871905157140942490824927819436980296056721175755307850899399345832138933093109266384372015006927572850853098533044918261746079401343018941131544243430870987553120248623899184264044389950697586342191587103409424284802314448725787454421663413037639925166181952760743314582068184984587833503690649534225653761185128690946575638659353363507010459957582720393874918799042277945694836442271500096210979877623336042232117577433261449941681559070928210390889237631026264421136383055085259538994679437302715330241366565191924169381754759964201206793332345120129447124196947959286126901189568003386690985252831678750506176811560059675176151526031357202799383463870153856212222363673674527894197223043713066509123291382933286002347324695165103468330694778470169747698976730854066153248773841981686531482883055449081686201346979736784031330391562171299500425439384498617812255154407399551869809884082095987145277956762279083299208420564835261873858582688398030236425099557956882553335214654791615695878175331869089215694609916929494634925685195072826050362277974717155218590820406256174042862900868705116403099917300620782528738650323530803298215154832864144961491103124897604148458102992393365285774952077136682564105249522045773836557886422524652792576432599971579152498446082868005155401854338397089518535108783872470105496120212815919136352008803657502933998302871674876820309967389006339562614235925410661802768400723070876712265356733827766953541244131071304031450399073144338570157368046491286226965602200804101565801951710142343075970052574258361568580586806646187832649852467169001047423688458366268949615039070617740766532967947948635962689767324876751227264172024263563822779055657485759331232667755625146113881296494857881334137749511857334510999177014899197090727300793224044574958380406669885269439675521402428129650662554189503136519137162340967899258564291287230374697922825326226896532684912266992819144456027423798466342641511702307345573109602285415730393741719721816286046531274304321940969219510800162195269559243501769860571748064891347146668493637340405222805653311727709827640308575193450572359786214933426124430255853542345705514319940212205145172694142970524771404304091876393029162912732921742603477944435655962522075249067192685115971430770278826953823392711300340018032697146375410723136404898917365195144338816563859271849235203872535042146181996324909479122920979861088829751711301905356238432737572724591472860346186176635401797822999841594728823425039543135963505505362968391191435226493208205219967025016572682380404558161127160759341537463857469001361306715193239654535054256605129086686659562997578797901184534227422544919093969387273994408325576151096577877735646019340997486046348139978419498593835070258352263625658483519772334806690379940662078747796994082674390350609776202851294755765145666610357347260119960162354601955420414415651922477531421654937709112508809781131537159982556040329929413151375039495460215895044074527266703173426606237802933468741047071657750117794102530072149451745573706196444928284872966805187394300585846064818935639425140205806109080855093771947660353664330687423228008798942655152503293768441109529730273846736981939703881572335036769752378573008086721925305668469568680556349119253629837248082983855207915999177565567252684859891617967475550038451636423213387486391930501560993455593601069272611312718215925487179898514026938991314033004452873219137178143293553979111388449893807811625417311718658809243507377458152546697247161549182068453413783275028996914044879802082910573804745623992349392024478490345483812482288049157263905023387599334006589237373773802564189407620056981123863473141275677787717359062387435963345188520053547245823485777620479664225572219067342686738839508935668545866351451014099656949676414133027107689556348681029260457700362048118786160791345167886934171654629642901045041379292194599153874133726532481926850626857074495103139581765111168829168707948404051034794846548932265904445867471266133754860849296960009456194897152308287962294259519028262503574554394741602711715791644360142745057502816806992096561109701162883592271156228661659381381334146853561753931994894926391130332971339071627206162488741393705151163683953305760547067913663818602983723991342263641652759137695700783363162321297751917071119047973518724324384774245866937075404258108259630589918995564284735970860746702456338542785999204205598448773515858182728369393440610134086214816320763606933366617182579739488406323659284629043204526851667679311358230723949646595999158255224387681369191163048358948323426565091080978399658407841755630011091201294595030011633380972165113633589912705994026532316943168299807679787471110292582086961640112830958424058532435155692383311998899319840892389080852064561514291770671284158570175687095695735333532190073975189571744305623175747579278942502711571513516941253888147601393952069360868817713622747931525380056023012459653164814343499098079089925509824764607795028505137389438145916640255827019757558894021354170115619403988686957789290782109155634493341498923519719709068920487973061828289103496595473635619870213784596904093448091255456341672268278838232661706956383066533052864616633101426628347971697398392930105115347278833530854143444015835591124745855363540649308977527071291121098722735405754577142807792514756907722423638239499938191756478963256758905463124057047294878623950979649654887446839229111220238437794080978466219310661648738936983598582195747217782788488612747458084130915091926107742667012417102057345076384039431915185702154103406797208886276458707314802517973664625184565522414904308726556637051942174661983283246894066377621453312385390612692153673761516801184121277112404917750293336860541727417244360442703589553564184148060167438715547486026272940143590335931586458452100741236800967885716448666782196427873469283577796827560201026696732898235109904719167835623410456448635764182785015851666497479555273457916457326980725045665754980468797715121279931844161641540046253203194885493891192752023240693886338708251775216658646399173046748079321526597698751896073537728293003191609491030594764346468198705480444170123021851577603313170070930026868872479346034126769453055956604601109088655950991513162961224222105151610755824282594202513304253434655491653058494482505440045305785201328888695838940730191389581326466592529361677292774524427536172268315687872202453293442370240126624556632891934935997425998761449756000307513921396123138469443474237255086977599598173902985397167010679120373753653113616160639718570167618170931722763736779434058215785418090212742782236641086347430896228834579417105267134116998335286542785601945776748016682569369026101110579069487825877911997782859002128186493084800237222944328216291319513098399835552787057904885001887778124547447477217574601885926686090816203078041847436211789634608578960703379955863615125990476809351949535063732211257191643775105737313916354960005090737672220924200310329830880234232273985336190355309546212930466536914593555238551104860620610799954846118915507003824324501756465329155013132363948539545633629713638232214709538068143375555665459665689023205908869984760339938041326389162875963226476549875707762425006097711084644726844685369017398510976941748517530971749772477317593634558904937152679500400163030027859251615197177896414139774863636495508827828350590398293006143739647342546958677038211385227416705273927641185053398374306320527890625960896885552779716505542150439314917133655095780893336026005341617601005765082432001211220076465653991076309493778207535586156879513439044026601927170623650920471788319560003095305732467144085747672794608958514262809881457258933679333400354582645215841778264406236358908987350070507591029281488891514274136591738136056406927486161725245535208787338537380181265115112395334899323406361688244548579217767031584646675111275134988116923322211535893936335550602754918573062213401145686481814314629910020468760513413568021318348433862574100416036543424254258251038140960716977656625980493355607307795254846258352148593379847987366957642538321076732465311854556081135198379739115921492460638217294722799344412010002729361997417722389306706288257689641683961405775968664690626803535700890158546963690871438075865102122412785022072119375900835309156049058620218122690980955067211638721398464053569974853262476656003678032742853249226858448145782974170105717799356512551525682803573148995336985498805539578254293723585396061276382683837465650610374448551956444844180600177195537024830738039556119485367551571188183812316854355457897832443654313875418306994717109095355770285042400069071190391334190621279069457730701685858406748611324566193570463091155316701903409528549290168226737718146487796599524187789437471895027322210007049886490529551839961026194003574853660693270630207048024721243946774884193310771492307274421394303995693853389979181422240442463701501389896590596360340930534376297728684922482778405732769840528500733272687770266850737873517064303145924527883650502255845716428003843101153497412224481770081864929888717391956972036079060223568281933528331498669515903427807808563148834037394074465700631919376718069186318202465490378387594102511739012099168868527057883035632769515829534876232932370348935882526616327919518672351443187729334951474051738797688830649116374079304132271266545413898570862248487374118825330170975581007624406861309702384292769823916903189546084888685688194115981659057812274166491095123520209106935356759429639576059624757596018024999228512738593042068514040918348433438179981756449583795855507333235660939934537375826526106184499439798685099208153435726379737227194235766078440154322053837544126159795383173547402134196925053944074558122644289924580469201550192608192132083042633889241443521818791373256470614945224805251944600905933293076594078142815331507304515905918224111674017231376686428169380858571338721762151582626298121880253499989003521576629081811657246488468842323620371166554622696245608095874759994143455065337408689616929840501930832720184500126695879305706972316850848692311384699691910607008413120496066033905256913052114800411892687143275601725944770588875563638252396607802738317905484512993758282367189640876656108113518962076808494486896839993493701055253756722667240456582124310792632065129905071484490936375987692275706875340988468199268712786348751731605845912170493353848918414757164502796817979144657581696881607457789422407461286440885115708304219801214992115358450588772844441116954481941822455687165183140500944127378981347387667746825986447697998602317469038569384937516470120696134425703295789657252705094368039084940003663079881729256755799409497245833320586198492029924387383922969679666036274986961029105867934859428012645305605754440770125919655298148473421225113828718290859228110323302085883855981526235246420135333436265736935582961338632469198642432215134390009236436709239678785830378072117999779049316916985498850062781142996307070188877855930079526502066040486804918056781862062539266728874410506252281777920842724394314135639624528064651265093311607853306981606673876885410157931648413350604428198330126354857499130853888167911731270671417110046478208891890643104565035101595756502478171629881576535697183918408981543425851211126305006980466269885940581067402059800085783325024921509786125945950284666847501813423023692965038389916105305272189032304327137774432382015829050273323904481461083698738336459766948232202862987860155428191007613948385011820682747506766220943405661363765245839585399592964190352721077676072613466574824228843578063997896822281818858289650134859935370595077823857735782821496256651261520355176091864807794577442098994041904308028988449471176444348989990381454734941141742112816781965498618075383746787922227821342716345755560981958688939501161758538441582023076153635830550646305613738607996991180155882994908571248779362182441244702194879728814476620879096574410116423143098747584706567481868257182830413385604527183270022799077430936121198900807170510004937395642785232868766263005324478426685979832119027113223689131462101080221143424819246330414947703386529979016059115174855153427460478076214466162916024250677928293671109075777093820182840283452781764562036377023501220493478321969726827715996504431157431740711236443672631138180269261996783927911719102232701978026484727475283008716505897125824926840635685279031260363564738398818518411589917394660134916478253230991904559211349234425120249455887487343018037408082253041479518008819665655257875362932933918374849910582617288108261325643006414586175085326820328760326068440705181585634984409610698399386894996766246212940902395439709524918820535204780549222486557004085853390594091754532790231694857977603656651003347674808903941135012801047875920208634441349454490624645671238810503458038757237540610894453084049341342212404986811597489849124218780029091550256950406040310942855195418491758182296820746251957702539155865524599951317414067792270493597171388260154626478149585450246638681677338456905498771338412915065895220281509644808412558595094061402820027809946653290671924170946852328434547155702987063392631793664681799289573057141128945274456145628746958453539163500842703315840807882192765886882595711111663787905556280365160195221429128750454264446959380513733615669957765425072678432656603910840657655580006657472710786692532666863632158714266752743112325473497543671431924197884636166561663938575146585187445269640191514319481146637008557919335732807947343286840037336446536700359524648872202576439753668087655321266923363455549942913436162088664696396352274558291242331971976121685686472180723954533472468618014002458800263268203617919387614678194537329170970972093732147768061380053124581350986882479229457465217788625396204113826625659214623469578310012084425905447929738217584237928365491637323601968362097772504676613163541278174675607449247100586001571483479253774954059040279580543746094034207292148235038944687821378116132073602139346864699954491433890110755399143452037787908481731074828607743451665676458293763324204934962831056005363318379784583222154209976261949977155956146030125411090693312706222804390300477403952708631508437186515067133494444401066785006161844258008648044929303758890928520536874983158398254564341207558843376554010675915228087488624988913185382923049781720136580399411400188526375935180449637479362089979583301094079303515483835965345735653112433021214771906914401846346868914520440009143467820994193672524790469692088855418314294561731421419846559518831134477278935076013304364799462684924946955085452182141059360345239733080903154665093101199004573744392733115487404122579942739685874218471855139613362065448203852316450321883397050978043667400200637834436947507183441622274660639225825032992685288636579275421898260736485481947383615079868648125862249998857561567907470144043928566264524593767891841707620374706558990919599384607707127793185378720000285884685466752990606386434616185422147345554636021981869913065733104460216177277186097394295627515234486761837253554932161328674387510978668877181882717413120309613070288796294517665386011209356329101798558837477378687356246839535481028915908078170260433240909114807195998938773237573491245398922658352107873732252222495950102423954394664111392239695076376484401452426594539939772922947418147282973064564483597763908693195257224743586431785598604709208844962721690676695211455831929235833812482239917497109716262917843563492020829858108207225664474929819843895249127094750674246192217627888541618971414229892580779831486952250000756385155006843571543534377249966151610215970531138233662033349724789856693711831456045096903525228586574978773212705446519056923419639695507792751564443364572550078883207184997747425308542496554985528831247175941668399361876953604013357366927265893103490852506503738988199461605204910104641407325862440092108713134731262609766162058636588549761584540824803635998147828815587704898270044328570795591547948204801780219164411174067458832567120292332376620158644848147560430645935142343434788775235301274224257612995884362445731141284414131360354793906351986069048536840573382380316399548167655113616647547039097440033507261456939914307705688726271462386249778010784485422362653790529303047840085658578748902592131143183603279795078652933506180531515845709150129843611765918755211574019056082457098451783139538973997880695453831955517117974456009418922981003791155152286302642395863719142640938335841906363866467053545141992886899878174252996859450365094166112630755748158235829826930370327974654903159650366432525886402259140618955011994941618479578421194789248582580632457911606704641011509779960559224112613790971545266188071532637806590522351759188809931256710299829762048919083775927965433211929016750768936839155124086909798734969144492156363730562972991906859834495055615941675395104569303964393844312588365159637672908993488360502274475473341555911359678064369513318493237005748938506917938845795763846087058215066875557075007087219864236343250845826364844818531216764883309286438708409720324990614619696313380542412264198895244677504952500075815414945854561160166408194072885353322010639329842103128361571014361228219177795860870329337412377924709347955750293738140380037099566434635125421344375391861948416423259768701676461062250491588379611273922632696291417838727944959240011699936782441182482150922126288199570983949247596584229564211022450423621875212103035990643032325202625935484310587954777103185576673733511500836460565906117207108829710996529132670055118341352509236034177734606921280120767540665141834810246377324998538916788763583586228315074353970665385976606007170144894235638054836181643706294601546563415993362246822795267910181416489055189621185506728398796793443502236615064403235076199530502454804932521033609163704684966949531046769235028808972215988341639849564291367590277807920094048768067089752658496141234789094060917231716525321604579931652955549253433795407970366223598011055107109975121357567012257565734649836606212314585612748452369175351635904932314892608335218384339425029028524222604745813430452353882596874640953332641181093725710791003817901298532490921601058800962703699991834282981853801354490853071793991602624966840564294356656519086226008591230461577047430346278735888394130559495152148781353117549904334558932568937887468248695872508624432742007244727133799358875078959117519258038326368684499687669263323611433346835034521429747444754227253145703959471258445443357992976388862085222155423696913764725908755484920226906164671100877066894174789494056201324642258293609318609013765648706263972771527780758853929600195468341587514623282207767463490462673152121644343817284167298366178735879678093723603731978823554658478499881283868811459931035800528244613080727487166094874594285231653956690312362736182655437303080806477374341912997585049797419823879310538982810477323111482565816021434335494846653673549355078596813170151857378356812799835127246810737752232942329154749011617010137334427256891960279508450399003118139319119344270128634418072011645293277559413658016433425587552294589611576192244612401138663723446093968372123602658636235415297623855971314751046224688337184598700307879495903083458292199516419707796875897946761806256825667565264076399887367127639210515423608296240749301532843456385153959027033903201064332903978629198392251747581297782555838024862992470687698766222518288998765564347521989294996106286400452233333005796329842111332700008444113034429387084436718988104451549426671425986100634720201652183638863698449838311068753221316900950333372574301689594430793205643053821272172216114455372859829527878197032060552170214459196722699425862392393989350477879081472856758788210702518849773049609190794928413172181250761069586314419534086608005169361930655506024249985317795148573442204043359721644848846655667469535861586414417126116490790729160586151342905690439328137994795573798908506986791625755194071669470867400593626384584903527491048406463678986555277064228933412287328062664774533436957401996814092097687015730154582429019590657590020645514004662813154615479286950269761884162415563572704092869455821238759829507899814917123152228304511935666704174245867659723114267941657349906153374874643245255925749596286821333103092439759803188036228282724682457043987083096089858938724884645978549647715304400777503964250442969715214931782219202617476527411280926566494003775869551965908925899624207480057145546861140785568215339054723265828387263842160807509164409689529119997600719928494153727770438025752388223561597694162647977894128171153964863694666702482328260317076153028662271493308786582409527296672134121006147118492068073629320845997181917327137442041526893275570713468696213654822320382879116462957649512447893326146070447102164505389432580715290506939290297969197566107912044735282258858262791937924786561173235637065354723491970582118659963325730808498232389575323988050563187130734610580622238445130399753105624575399988006976118090457451951999442397055647428317598422897825902668452803979213154655666567161645182969805024154341421196991584492088605265756422435069897527436574062110531164630110132740357194042591347502882046917349074768829426778255379091322020923361283505352764324345988036734339569399987833713246748146866198841607547844398755628930173087458752351090919736090350312562339039699731743312747362988220014597277322211776536836156871083352360663651531167409717684780331882178227088242353286951816870010065221821708547199178423926649501861280929696935935400969517464074765031274046256755474705031425098001827348325626234812607053734763373276211183853095663910470810534877857507251170644656622145827592945746228574229749346691274017740742464119449960543774858842188714022828915428975681412096379296718835321362440034604207549135099241839753140337631479384114294345035506565403248625069202345979494019964594261629923292477526478744843048154399149291179809551171281222824146688248945091210093371779513558008050341177136938341501197453027303645489831002762063640222505841693353687507753447485573808012601699299683423611949628508308378907407575101223526215589209709464707204377318739191337163924947308773411398355339478965843615576524373513054763888519235291074004522944900044928715784126901813774896637423330516039175621055860971017304398857667233008087040609613923183353378852610197114327857602362485803527735159506650138539756533717003136038514374614056852389282765970548484891301016307983283194983947050325029284793592133557594227112311928975861315778867382014554349110967893866743138248250333017721771640425436052757832972230139321096703917077283448327405128423667147201968079625817451533458753324241151078965241550171556365942584306746488938345954772189331057751673100229784312712371210631484068048689031579010463922428721468669356216752036653630632643150725671796248007626411970839025388031353287977705427113522986755928641602800885204111830565125773162311622989324847940400530671208902450436528983524979629356840324175527865108694814936071194048230076008334352689487486392398479594332351492428775795582958049303015080930138144964802655324919187825805124585511298654896329555251192093166156760877151594406651151213918235425668687590596029965713184911913814147263521338500515565978965764275176052459099778945449069125831545018554993045255735503008498440305308723982651962628292513183404847785520766177470716592340911946837253775560486557952857042929694237946047942775342115829507870839214365899879791746515848479194226082018050156313157520965087859864417187335783716322288333256940915443749453888928291076351605657226894280925860262900070906475654229642028665461940152179580582007020213773278461255499012122218141176250820249805489083592216018699065603324610669218498219680161746933548209329465005638320671770406531289896275550686636818539222541249077186016076019737490080082140679594594008249978996387306054549912855731223700481182923524661749155835771473492413146153989079416536178956955468122846829408819256972560382813017064595186942165164526564147719902144852488916528325126591275075468119268789142766171653136292391700170675008034676740251648972878943035774118686096604769362619865467380574651143617456892728116117448566366215724419673242085706282446427117120169532083911952580425581468834900004788796430987363563679710792596492723214251757198011123196413090950490101773213980610579650234547006574764908275264760690636143562619415123340480488157441927038352499196097992172638829768388567766176201538978056603864206931177441201346155839914931209562029601705047083513966433052573740573876731564369092441963038343522551816085066826675417329234520767409156036598409268242035064182606768665357701706785090747320717626669636843187599346291035141026934838391998284816317586586953755030869118034004291426150748499445374536594075808068275818298638103972551124061641605142759926925785362272789116777365134477608410941702717380655549389293358998028894189280898921290960768794800127651037657760726756205985336545835455188492384588036146235586853176397974901874912924450172275378983351751542358324657685373069969166378564579233758070203785499265433185665876445093981520625623607405076993386448547811287156956616675570649692738808447097614210712384357983939977545648717675843988700484989623419766456753901160071227297957071984888536049179841579228713821749348799505414717415580048084358478764470114663759546181667955882683763520972664122687914844395537060627506578588209437126496752496086458001822734133328379091053302076573045828937548525582453632162055626610281694821820908785309831212680489808812284494373811034751243290905234158220628381134494718436565812470143508644130784547216244078314180660781809386585787775304247860737534750947853791424253538781546529520746098316116796331481201245466894816230669100243237793890762180991790909849303761873052811457295896939765106420632880851685943236588757437881629742618249148911692988630702409871459819001949222632673915796004122388218350756628494233613581745642758095157736303934534725469510712961369410691372737238513617416847324436455287319073875745869199285818982883864868018791704726443154583528519651425870761183154016831321966948922394596787854953098562228025452979014096644120507952386971420250013443272275914300343277077978645096824165220804056096149799397719563061264219167616257431682146440718129154859334161767143394252745783151018032337227938062511499458195732512941097364531942361170693545124901872747378564233435180848616298497462755801466657581323273509106027537321585428214207274634212216544510730729747139139125600954879659831350990148221954737032179754834452635167202725568250236547052876905094338612241339575892791474411357775705656855711898569538786136220694859913538097959721499509516472385016122184671129068054719399069907008335899407026921645660685637617760319365052941221900900471650972307286975784123288241469601280933867074916178522128555205937264150936400740501919396247829490329916404275923397563859491733893111535363095355030791090233573442460222296354431885057961594604067791029626109645316055779134983466712509221487746271056513437303896674317665159538203111049484929914333867871488788890276819387078651118075680503165102269811884888088859273547557102279800435593639838511376106586768259266676757860221201940610506607340693282149057240889305766321401045613994766461029410256612121176148601839987540039986951328237184657351544058209565096092333609723383375933650688120100914225628333914184937417368463140754072041088102557381522238950078179461411261878447388485671181606591283066649643381925473722523357878315953702307635529031338560055912314451030403844496865208412327947107340265484976946501981506850485946371039490119725159560626022631405728281535561171248118337523023100238900735119330827893756536399269882038495888364686907974193826665978768241402114199461989179433451592938395755583042054450760511946806774723846430502167305200051664922403678571717914287013494402625517476879625496956785253962565148918573200916017430313726687448299647606778585416168667470783618414099496904713210467271522334450603076973860103100580844543806183302782107885652210028527768126928282189377823909185744699680936845509741976023187651454722753023712020793843056156337304101643968200169440193364160604179392469885057349177482309978162789828635615793304676321197907397286029396389571514234542477863360072422457778253811137008729146737708822884300362567376180907307199863369063381430782469736922709083186858514304421172708335872836287461526093974640842418845766064480209048624358307043031336922003496768938054453739950426195012407845544142234295278184520396452323301867305450624556595131379012735342333868583698735036694389261831120110847463018331606067927820472434233930439967887576287879900548727174829204157999558415190276711999799967574862752751138735360936537464797705048121421824770785873753189302974346124145263464007379289370132964320647120715728209084319995427155844978108163233714115964110814987529845712575318583797248829360957630282589052562986160382047026504906848049812777848722064030512844627832555297715800145797651512538968282321606550162574181319720180507922582808426509024959164104316751660048696574484993876226502183917288772628753695081426817774669489594222178536465919399568651812418171487719450854730581619472113402410174484411883323445570532038272319728620071183718253476981997835805849423100629254614116644698376973758049972604895008458208349940524084839629602657864453771499840954810797829248852394866648552030958626871241338474141275636967556118606390142197790730425930712351244151775497345105921708043123404820029082300640397838564885069318415270491090853695201946606906861749653063217004797731482922977444260754726333618158924934073328567907250052438572749027357389026225831532430121986405815524167220725260350430203893367769446088409434264158006902466583063085486034829808451327359148171112743494466950006079690210875240482246802600453596250352049475196843181539967287235102945892627671647514573028448384359643878979162663939317444346655891703163673464928427053481178707653220829470615598144484757654817578515967117202200285714081704786481072056075003942647229110424040437792627057390514610031223981589240711149348140423146750118434124295994633448749703169276572721122395419771182512853454705007527362430464913763019831088953489606764705054560851365831606819223626686559380427802888191399038086192534216827623885030214532822407044148896507664573405685332566016479541904256843896146288575173523243142862924399269681477333920294483700885590972665685148720725605037248052645941930072617281526352388756302346368648409056998665513655278871281078487108053167254689946512441791871657900165173723594964649572020273671080992792182734562793843684872127277151232227330338934591620296894838187742783526790340838291599379212018593569085061567004854200478178337352290487041785053394350536351396956192249029538308703999143445622518532925833584411267327763548340984712442577624833135445681126266753277606641812493356470599531503239326946443913743959969472987825923566367346734844516149859072635687902749880750133013351760923579011393677221340599175519273944964345161402081409511764725777035002791713914471145381931365679617333984373894119817738593659476986082895773636039807976149464985106570736739942389490685020443182882391043265209745253069251277239714270227985130427496162248330066749041082422877939685528091578283133173995299935973719899250231075939995321541510265175546282101425976514242511895541588831970348721591988829507109816072371930323758227051839818843077844327841455984693410854844038423677281756228369948696774020599279914638173869776926701613965130452806886591424086705305718259217873139277857730549395872303488511094154525332931206632586908099433302061733949469894925428553309382075143777447268971294888501493684431589327842741184932083298416782564326309565091949385331106526725338875655387300823449524064670471003743005369955376106874072946594322034733694414852205536710477542077258785615054907615344480561799793036304207926911046004853969631875191122444986706274323188277040322066817409032964912761893786394015499474139714189868633699083551591807096401241914342301008112767564833038159982067671642445673130510898160701317478044331387896850459183449462940037061848553812119080326251379408827578228200326667866353522364797370186462268213982201119755128532662133896764110379739723190964807982454062510204491818213844360133293039729296713286219365553103804025969657319091568407123873153367616140832493298198973680418599235283303310103259585571190921853504315149620037175333461149707611184270356484249849604121825043408826906848487119001894659318302353394713284739098487043131794406867392188903621490275076614475307948895721493351146650709548147021577654653177598715188262947557440553364506718598081765483248459502138238002015880289058942290659461717857850309288489934237088922981844417281591544929559440313535739345348556065684197607739729871810088282176276212804363566541288420496900766306176442480244149776302528644549573001228981738682030567550880076131583709905071752370332917003861500332961129078662213095290749946605874899517585038127584639270728408097024537776894863705265683352249346342099527452969615987480907545298562903096058306647004934367478806098077842503566920227739191696368233682474564234602174542796716289440122663305781053568777806770677002577120521139825951356576332666802409763886099171667888679172153878274230375634422729194653903316311510003601151996025144825277262965424008192896725648122725503111310585238447902185924815543004893352778198163407339100021115315346405718784974517856195361394110725396883952510870119623862116936354239200465178552596346732901661171973373080419949249765996088186826527846689005456762939245490367913844418622884215749094143203168868775505252671225464829764226891885520198778503011391905084022980488136666851778232696596682743591256015795372931119117664333555955721447929535709646491225517864101735875730827102496402443834602907841855033685654415499480919925294231776490807974412516842592640208864894749303474872413310491261480629503135411903360922421601279419374817281942893082534810400564252527683676552268793657007876620082958971773903683777867437356233269671293892159063670731160141515383958843075420651078796917801829772880119240085543126023996537762636980363855366514490676424507528640501983501529083378637136975064054875109864950872058461058621553243179262179084461858367359058948441199196360028127484179673240159280977092320263986951320339696991125230870716200372043716142964823968795180175168223379442785815045850966076925836402337690364352878356315653992339894872658742643195600247702997647893021586591447745327441304084447473198992106281695240677395664524293111755126959082118711964273965255311792380205287671947018026368922339669409815349799324235512943892905320112641284984415063646839052303236367924066180803124573062081125941948400272770506751579203706280968034895553777614380645136950408503496054318006154159772146563286146512597849750547416112047903958076442327057050369938103489425132848293296428657233938727275610891433192073900030440368766646234721049923168033130417407105807610199888571459910444608625668386906428998076308888240306770728015454266914380415329090554831903276289685990243776889979738355104007567315795740414027604289677394946468161061250866955657017514201222886132979690260272350057247590667893266837164319170097901866859506739528016712026301113921954285167047390078262959279786135240417394592106702873217681962370994685493690459954114875511828368263214816460266602931633282104322566800273386502139874247291933141846941428069944251734831921793072666524896240346928401546980587908563179878590547708999902563436663579429476819090031906744673760253871478219845890370943209546678585964218902708171905674550453429222483964050930375642719085814388423074560345193009541731248159344435564417620220206180997581145434051877739999676270066820596676674945050332163179246736112234736552952832771984024974467953764943402654396953713799160767894553265185249269228246467964011580022216264835074767306053930871714322883824037499928253567678514361923937606526739384016979707925110255235756029074896637657036392514328793096024152336762714903670438850078266339917432202265187133948625531283999300849683189805492362090275280894115602186473240751453143709297814127526621422012619142101666434572536243243655011818042984080431665092182735200990318947789708732843062122949574177759989036086877935975294756073988329510631188709839358191702620373151300920431639328916933337659259241708176215683701982104524574743844159452205777828314181439351982716037863445207864729915279449645831106327385976044109863492359998667426184721850792324518061302399734248096357269390950487006523182768361257348712799746409701102497264757306812782114249267145267419731175657514342974455520317466941895281844513740198770044296787079729348794244645590763447392982393342116817035459086864462625437998177563591886755503500617692743729919079579420942350466878380300405714883740061969997583984029631249461015674637626720987023540850385969089565057436617100676531779723355621373970175148514746929546697110080762917760156956716139443937659765133840966351642170760193628762707747556114081876556237760880701525580734030279792306022363641289576365775377267886719891052820044792610619805613713262145258722065044074924331341661715968649207817934047442451067306452936627869871884663644204428458719066759473189822725830678975375752899484419944320390631049293551403041383368880735524549847240584992536397757298146819981454105858559471838256148741051731271364315495401615894055570805231748712565449553138902856902037307955863533271150293404666847597354029144462668081366328033507756131708860973478320807839397095454615495411125991271379798806605853530495482097204921044514390769263164444375012653308171918834939344024418828581603348697610963057461532619674034033308315413564405218773756766348155344999432973947205341800229067613323075227836561368383976486200828739791405851190865431361433708299433950225985863490736118708956064079045228970754464106863786121268367974492090652354045799810748272693670723589741830725128079214979175141460618034639575271252048234544618820298199450386251583070030090060225222867251551539831088815893008736063363122097285092799662190433393079833941540438275400528497520668441169195558782949649804050931278538999160102800614691844892481298627177169876665554705174639866282647718767609636394801876601977798408554497433854199692785694401358582895609775459316986645779528237605412519661604629798393259778794381741704964203702408380861762977999216705717504771879733138520991824512271678310603275994127426127698814860996821800843673800768003828547844639152697341400777070034088218236360102248056445132925880026879527820318422403828631098575545881401982633239874514299559290246283479436373586210172257804091319279034263408602520841489792092617274726535127274091120812985453184717035711303238529870806695379938003873662980903282945564909175242964993078003848382350316131699858091302093587399656528275421567090839866990284429949818267505587055015371564089099175247321556286026433816746177219954450370384827161733376424164983785370321689102807766363069211854235754760044521525975092676061275992620376822999040423289285834769005951727794189170831978086488719085093107004609017560137070739339827252863289102651144780136487209500492447696473983503860619615970158957189174957215292654675219197295219662122009570450245250555707912568486306245944650116754649958434607761797288523936919610562488127598590635864254619664000857389910734213962763249495407490316191501764121301932835096840257679738983384355631968136259570780171399856527889080561679665366005148692196691594821291960719636184209644252545857224018179923420361890981728884699840728691229301072718628596800554521612747331617562881402650692602845347979164916239993739715160972844262637582817843191952701498105839270999906818973887052445671795934442568854333606962419461744427586080785888241466389495116821757795858471822264392319216883172427617078326378130247372210250748365361732755627430826459565962200680363002302692477408385570676652668182976647855205879300389271941898376560777670264609725389853140554867085856810752219148837284629694653989286762307615435941740530024971502096720138262073075788204259353398431972858599607305356973764080229470536178109886664339122776380914863111944488631761940528247407540837888388791031909912263439262409368352251371532498773551569748685394715823658037077897283080585547316701445145593550950535591797508103356276949675236306375227458114364240585928284418986266001772176808824806320097958625140736357617017454566287276212031066460060157982948798875878853956545050182368179525982821706755896807864079176965717208417283039929110427220057583306027565614288681087420303531339700202802575459693087955644453118742074244012899458135099590522883046038339648818351108599885878745547995691756107225592186477182474623418149017258567049838276351899135831006760502149277479263963373666034140035905400949433005443258013989400638392437622137639377688351215663827938757597717583809596313995239963017533397675217739555953698901072449498898598966841947236045589049957952871685952383314019135418783011925583963469110829782449384670283765066624858012248850234262033672912451377875885800141021126044334714908034793125401469369064660457725614679211281454809794694661824030682332301924490763609237879655352552809413807269217223618513266633222730303812806525472371491861322809997059834914808116891414248171036441184812306258456305164241277259533518354704612782140995372988100498971800282188648952119825966511074517104290346234598657058863998110694285096987967901620747246789280245687714631092978975350377788921681979934404749509048887105662863340907481174177178449306391045590765274161438134056631793400924376675401462870054478578948761026421005150622073556281598655691901542723627204735743962015335835184437093946240510310931267314542022921505405797965332509311639220919872162592975811952713940234280926510326743441423360295810006719435804283315803542058245451573227055412848781169802632347201921990175290560204020914751852641646095699099873358588442901883402719763982607092294370012042244996564970655898034812979645399695817615230279641826663915503306138381672278440883246999030747492184113458284253240722213936637896868461454775565501724843804714618991555827047148572612788895051587947862726671171281843867427464642559461517535631835277367745524236945437164634006749551772616039708254479531405388001071865831225301179394396743992340588811009419415038649650504152945089341784731293363822871353897773326204296933035191739034637947249960751894271700572051707210466771738017641981489524903966707916712035031320495265463001551890991814144749545148849221883414866016687626339116225961079821595040511277539047403094390699305761033331405077490425722721145949521088165575349436740248664026342227430188293482383921562298835816756642501948191454402539263750489624746748712825748166091927326722470438923418501928143913478524772140188329973313066214528556663311645559008318127579373245264232464169700506165670030441214381437221517917424224909408266799578372422127747520689295743614521916363301777908256416750744131238361250503564801112881711899396903995238952848879605013980675057963687725850271545433746129861521034724586432838149279758621982724004682724323786417569995524091960430468882902372945894826272688392473698811893965799305901409682152552024709230243402948839047930552884692768920061669130574133954047983540849173052849536740384098811294532360563919844435255451021675625177004454080179715231138683841792664905773562144397332892988180828130059813983892810604513613330539324870620025254623529465787788287436675890231007330372638138215860734179456854723804369626898842903490826740911867346823174691280944873523325752763134808175803993380166915321190914753642273643988634373413187925670624606797737953559955207161102017039969807905479799889588840798459323593698387349084575418746878272849588958839398910252538102738479129260292952963550635120871649923696042454620613816043282457700615238042379466451103634460667792426764019030769302074183306304534067678284200816841717788844771421243424943986843737688697936833733250025267450064123201846466976990139295382136003590746260825805548249696593880047597980879131903202582861385980820318827989417952322367433946177733279854174539978133370548488722490261971759698170949165874627141603748161606040512630032597485178140586388058122701920878816561791620509224507847161985074560772683368116102315232215972836459380323251154697944363753166579116903740314255006836251485407872482289118051610976885041550800931554576219546053652495038845119892329811201312620346312928679247414327163677563280067596637264394632505776089652334153365291734622837057260230219435445864961906245074912518871226492991323736899316687560947692729362432941090065416846069166533423540141910934511362735779519482902370783123490512882425568654148731149583733074037523395646393933256885190723489792439874708552146270020798524754288760094990961474509228538676570362336105444066983212120867358875728594357200265161975549906505066656835466965327082329278315491468746983258895135716951859708852181741409840168855456338755481856449593126287256225247127188202706976854316972964010657120493222007193777606233362096500705668092438982068568395459438939627819514314329150169635866793332680875209275914130208076126404802868499469295193262077892277069250652316933110376576997699336667886447836862951705738887336990053706181174661458156330633267766145033773531799390184642030777576623999651055516147018718188445818069806742084976081304430051880371893394992888329302628497612069624686764617717961885943055956444204771525453316929849758704106217589615059056028864595225443584867056946448868324230842914471265294993523811264756887356748873398897716433739760058483188796015543181046990278870083645734360261609607246151506728421118135273560576893895006401795405783217406013089127749076745760267986283592446454111281332667345962882041258558815050024471743189905143919961296158510188462564161916609300414659089561966082965614107586270251601304178512661420387207515689243763687088720358331240309801840350332406664588138598575718127502980549919325538306001744444385562622243698462260209682861311304673645471248443244552316934925524217551031602707419994274831883739587848133510630336141000168025144279536477188827033680644261552177741983619257522284737131686882115685056922518055577346207029208865755861804042226796848002461012226681459487829426752004813692328339983455798594920502341177450202511644946074485490337302159150356621344438677999335785354668243171434984364798344613400016794020417003703886605544016037145485532374422015720436411461729077251858538374443148720177144275759050111972402849589757628549820987905656725327274160054522330317326882105857782177081006418182141950475192376026274196778007862424267739529125994836067186769196213473464851478357296418520536373681368869665994697643577737674798730658967076732494709849972040158285650767309832488781902764521042170587936917851738355290859730354018185350528025736830165137337156357927013255180895717396087159008416073173601056754597361799653268481169711053229370836091516484601920427714845339938120689576728191673985527646423727595358204468922230383665859799395215616387283077736757863459868680952555055645163790765597301514521129296747947996016235679176594299846082690589644096955251506005471479056018081586533873101754821786495323321917266769184549984252851417659428287613685291273972050428107210501097770314920235403055581580674178871439943507111722068775998598515253606283097396711128203356162326657181121554039012304094582291612704567829665563041268536556729825672675228945640676259775882973423487910787694600638938448613607455740669062134427161469534426748679745332714678779279610456468698032604267101918328704476129505798383750593783306127878577915194284239504215210263319493612504831386608605928890065065958112940286842064016264643969989618477115016183906422617584598518486478313774815849542384745849318873092511266261376594742464771183283436083712644462762173571779703040812916267218981063596411031847223326855196203478745736835974557364766939877916217029606570347596136657590200034714568757818627266954485318006495131185896402835080136741478775065949575166104931051267757273310077996689528185974301973079496241089987095957269744853625538727762660701624299417394026038889490787456209305351070456439932195199684088161733507567051264096253002940509927438825359392019205845714017494956323770307238155501038096941158090355434090711908124056964595322610963759765861760885026955439325719768082189174736991590371767780596708787332715265198554490278272295184160233043096069589095521215802079977922410577131257644379906299882843021021339583220589236092414629973514363190447888816717260541678926374576319907883688895285366397904483373832424213361560012935709095368470062317436314607823920051190835002096649038903405043012546212376903430941327095781539884409846751848872249653019193948855936084965829341005247622237810730586233461723214929791717622617156711022492540441030094751617610521417074138520154763453945812190051482628998829266285347489627612801260984687280019515484286902101064235911598748976519381465048056310710821848504210507475759509135277948909250821249683027905271686593358073424430469010332269088616928821419783952659039776774445086584079965506236683748273244287911611156694612001169888382168453908363358129905581621547440763799620309914379499522461715620458079936664487369043444242226920293546560020522855547779222546801474085282420562588464082443832952682916516204456061832398071292262624198346549627499868501651125944618306858845506386514061001753355196078624283951132557230877730990894100092190283879277154796919694837514872242294211146535811393269583802996152849406652721418027205324819502860536763253917483624429103596388920580169571176408787769741988910241484015735715481080614153537250928544552614429006239979938156033214277473272073607516883825107044264159933683010685821101222118874858578288247020335681818562350562321854990505169596464224298729496447508968192827265732899100521874075370571160233653891360530712320982600112039416506387411280990546814054763914393496710132123398312897566263305254667141184740198323790582863575881952776171944712939607364380705750566374705868778270591765274799170572472970707692301960073924137492043692756764914521600812442662678868070190022236802000477933847339371833525978271968713611320638175485046702321082723910346460120060649825504570399808325664737683226888152226266319526266742032635959989393775108442699780249417838287358972385351517991257051903460833549932662419452196590911733787477970464243203026947921035375168588494822850733763256214533232540288780348551782516480245417645638504908819439775250572983972257985037156651900256512340893196102940316582687137870259446082555862583419478814742371430860403438586951039998564007452821357757207418037951344184653664938281765443975270045471097585561440292823301813669804075090718554053757389550578073506079416771947393141836577421720442237211305304555645265697720086926826343734420574448810203799673864872762367557537201562081785185254398761377310354337629474130999835040087068526849071537921149582979523065651586051527355802442267204064122927452568921620710714783051453237778370404769594648814559391129817732770802364835273234190506983604500792852717094050835755037693115622446443780004834134985207416582993191162633198290956710440499494012546530719231109659775347896286169878470767552291069974720139141423980551076511458420692325104006897736169621699801736290098244865085783569027236298997824910372944520085148335062222977360081508434711346822720884141693569557540799082583910228981494696809611529307385321148305158291131542137078322082644902725623422368884295107460966117116955861736246815419666298743963407400704848229460138883618050234599106461751328669619871462770595312057007051298904524886051190333030405562007264213225683008428580373878061568225870973537729826509826067857599849794041473982259310559969980283895034354038341957374339605326148248762758637147807319576729241697442793378456338662360692631415810049590481774826605756333818290557851241592948615108887731512765167887151469028215267034685985714812615639135964572311240245063368852127392198264303729567890886690263721928483794924675993775741670524900686638649215986979906572874170504037122501986009514462283116970124383301126730589783245911201640417471574881875129514711111805036991925848243112122709666500170968700101196647703589685007904148577362635868757848726413223278170683801837138737317788543283921564144138078890961982426129275219376676462881909135018585962095648226563098000983105659532345516469521999992056227839992316325339511963603215366387799844182968289902397114728519695783970498085953265264156777489901637142095188735492429603615702614952181804682795510373193716506213051432606057314406288777047593230029421315599560174484518428842417150961890573363031425771780513675983137789586061313743314838103307082212255680442092480479792904895162294824542639770927164578039097975161026376829958665812267580653510821014277194099919118593542719292002719220448137107659877944710329028905555943936992055434834592874277473396021738595440563800304056461161322595747249337848789087814905978489649753103926022116866924052167312984503396333773336615003983554173764720624147401608154998106425413705401653016347148653579296177804890417248798211463956920260588732940372061738654445711715566865987543045647519382750614272238883518566139787056535504946163846663649594247303625082103180104314374967982623305997883260470632024274105525991658491519245373318007462506506167279109262539071802940580279092293119909722973996676917047657689061014108983157775294600786520057081711940436609704653628198141252734888656089611281538087955937832606943192983762384224377691297142914129652849211838627570500412525363893373338013296966066947925051385126142365403568353610902025484640052147303950955038408126919692646422128560558442311004487726251504907044932838160059286649531258300067363595727169196221637873681154089505364546303201776290706290535710893514725129405814458904698209354413043200260226005018367671015564728442054538182590307048887987224526531740488685504766099169427612580545230468954829987405830631972787717734768852429936075257154582439448232619104831668553412943428549008924739972254964008051067622963329332455693036116311180489407123071102132550240568113765126561573212459025452171614812167694055039266112070394093502800068318379118302560858109920863344709036176171205147819339231671099402928293724672505937085566944860150671273084199160567484952989688617267449624873691998587725475744120494158850560543784542796417553645320935046086659438797286661507836017330273583164605865611593792471016601967690758188834381572699693938092074207417015660484299532316115641523752659532745357473506230392770661875423607956977814425956804961151318855994984767633802248650637362485883787052097986396987435731437396783973142452436245679259820380680215426694683363002381602007726417769364019086705289728112715698812580534665811853894102991992271121920952330071762533467630146117935014093930485431496318227509477484903630469392741518866974749911621227223689037050632890341048389418285741653153162665771555080438221900673690025296817219707775686676041421975932433845478132321566320424095970185585229258947986805373151790397343198192020785783538829749851876830447726097881625766064827035864966619472846374678132372918056827992921000099872750960206615069734281454247028037208645706884910581594606665113451625918108091679777530067584752871566952415630226792624569378013485062717587581229416732467311569070210534141060903042124060779751917414770726632467497694841674976779337465346961897387351366618192891166856171033201388515703338895894595393843774503184462677662171130706706701313551118035868177816811120695022321699661610798550510394966264735826141827748089873711730266637395114729846136692839722129450242700755675749438854588557638571636932984174201856598359775673293934944192481495699281734077102638807562814687189455715425773161372441881436971382218681502719157444960236275613331442348426163653716766159949184878922748921368938717119333729049925584571517949455029954455706497100647380531126137295060761284542645202309161504972785948243950038259396713197669743700916047917998440601995467257566155360143588707497130589723460102665624842969576723885086353232472735616670333498429102436806812897180668341867208235358374968302016831653675194093980550067552374335484873476594377466175901459833187251530944013981813381825179817378397536936741073219435149805335371985066743883560062194523633735454253243091658296272450738343983567381589918384055916605019262538579105638195895091992214411937386906402710124194346476115393179110264232037291842452155616685853503960032160996603643375110793283399673859422200705528846157141996780281088218087127642492090490867971150254802583297145146217870326674274875153044506598585618933779019845531478892898092025823609838472133490602522197580457454646833091699943950817948689590617915361194942004830541002185206485277959756046550520912060547228988202787862457246330575624165688522021044285383328856343062669164514631603169046187210637821665777670301429213537111070020990659961110452304929440193271258470886124463964717045161756367037921629220258124761829836719595636211901477766168671352074110590979468731345209828539655215383096984104021746781729249426305151417554664556915649693933758812640306611319729345727084332557903103310272154872935868889531906734642593560712274563400610829285037278816451599237432326968569695901685784023616210151990149150940346741091066005142663928070589508846414243593223649416726933487836450255356360229976662590792994745525653745281977535976003917214497344000113855210308424752002565880443196598439387605564678156323620047437611455069923145741622510598218945906026433691958488530761753344561975702527004338682196292189024359217205699501047482695487940564754577850448563508191912333866415545937498164820985108639491004728061597072157640506393645940306293736705002817591108676121547553200030927892689610203590112339536423756432216162556491980663078279003424467731404111984120295503960886370205036094635054585116385328432830263443260626591801172402019786932977879236889415071995198400204006872917408769970481944583344683915775693782943934359706841024515071001071111764543784066451743829253865103300252462382963035663241077803907926774615562136160393364430111757401447351374619417783999380047259809011656230407042844620974872320109392933611329244520972305742627726446049888132988922453618587760800276453027065605188839578493973680781817360889848446153228399154248836737914426827642062850086361907797625215366919566634656003516277310420322129246186562309454495322024331727138755838896528240355143299201890002673777111653504183230529436189861579259910975649973752381197603203923196778308708956290382259754824747448923606713327682989893010516127623853262988473966785439382766731500025107130975812785183587801505390709912442525701826938011248007753310719777204770920269343252098513290714684508833447297251444731303911757020998269559868831615648019057882827480806703452105538143845084630977371274905911517739674516295139955410747248147350961859178390732264676063714753294930229234821144355286962976778261427687041911701130169793362633901152081004493041276326117773301709304669575175764561602404802039483200932163137498046213418651115293431475428255960255511887898273255256354646857774429661713250485122180023609496427875664727938431737436517664005721430008453126507796643150906090570790285576383814957658707594641494743617335213161369915507629799848626777965785464657134320637157763733858789954218753462348393547136349506417179295135204390640102696112330135799605254053021925311182172051452216731533213299391845275712208958137326566832491175007161022387252280355911174101444486754594483952284740924406318546730463271401418476256168883153471657728817479627252096744950990866988976391322434850828349558198132430820964919771324697109486328478062212526321916043957774709977893427486761652641784537103856378999755061531759761141662404018833419883304970939330028513018275359873624514771238828376473933886610823418245838922159592736464669017600755396695257752032217069873348821686574265404520578002441200892087382466422688089195693042057521778773932022690271845640287685165549296455058605679654862093503882918767356414649617213384514838966063502855148526040099116286657982845515768535212065558878924360453255744551003823186847966785080471577877133144653363096705811666072112565072612692613833587359592814041413733280800616784434319606392897031527822768545792257204994721709078643927473161396711026953284497064713036509244273473145533057797156817551733383545379590616731176856622357413167083889515224719990599897071985036629724246486928579388962643615815745402958139080368608051202907517635273967555226599084551674215192880382959124764509974378611172425087189126712437785437130156074894566514219212292523739487112965504817049913403224720456327551645463931829609751890528684330844668899004291052208690714751511174070580609033368263237482379251359505739663729274827115499866279539249989134265846534753920811689621397847919028551077471115722450735803192453341044486823317458828163629397009678838705261161855951227401000908525097227987374645703928267081162708558223640675512622305867946829447036148205513832650237034849905381711708804211583220237867190271985850244194226325053289563635021520113362696543508158632607081678408000871398536489459924718271763344270673075236407716299467618420195973056803118551482053614297254216833016394318339037018316483064522440117605251023151847046095250454586527813627218987054417729969371942981368172041183786418652519847211744287303955269219864862050236790580398496985490986740956859327494731429818375877287728681442776197699620321704054098378415247651708945130922655306537867887619903209399917442927734498199924828966858521856413383224305253772835760091838222475053202593564852666615151872242633094516042927328826610985967984304285640788451205601391095326478384211170241232255810145290718009345771527626856566250290256077147844811488245486673258388112064311618215071130918405462091691320187518567959891361418580567006139047824306101909412770195477262804255157776807200712426331789242737019843188784727050427762331233812375680255506776813430489859870351352275101389889548024493180184279856436449847536278036858927306289693532184706834316327840286786253712772685880568509809924708539359658340906963962539346834047127127073457049406652154474341936473371321231235238183771603993077784008389334835729905605682015722262124711864352437464616687988844249532237333060758290589220330504155728547308154142617012082366012652452374883705809471757917369028345344154716942165210205218379030171905985479428565236610330171325517948917383219331409839111328587116278207553421694894165172315324038931051338331092820252361945871634205834376980423555639499650476300497462559051368502256807168263236267224965614870865199007733464988664640541268837907205056525041044812163526910712485169583660624673235293111996912734809104763523870189813664173906711717585997676692078351095863513574287589481246273824893891232144642821110815178817280831580874439573394986652870435867071740669808130143712359197958609422771869458431798457195433720279474097756272110558241612881421465064846320273485303531532304376026000329609459003636313641021938733270910604850833770078586759034493943891431472477115001377461637024804641706757974093441134023319191799065748361487197610954046631966623929940149635686530164375768457185927681298993936727191900262808769980190662057237257284588960186691369527935973032221957223751632767954870431523214628816179423061160321116450701026792205744926125664409362983183206605687975196267999247572440646341841603621268748423119323084805494260379540969820925618211436658138213449891739042004114625100243821744759886668970240330973446543975446921846832764471071076491540947263420042921610717200041526853047110964326303340564824886173006647420460102246248856607141183211079471364907673210048679606160027946532791536472367024132420745658992452477936825862374462121568447587422604978184907962437406259887093360233497928877529557503528374564257080587433618368497902352886990776877054102897943126860401487031975102542378169986781017226801779995368367188386244303128016396953134544218692760778192984695689839214567671760840134359922601018811638493602095061449360003361738494330746318900163914317799698595103383508689649126047798922269040898457047254336177438153581614644376668829851768485651294380297989315890726452301283272458605483806619552546827867986383282639047611052436915530343952565744662613573354793095440360139895206406635842844407133833157671592179353970011309240602999938831117600608453390534273148078228113320636360573235109389472332103344382276227256934558713739705545058233699777166048273075306130078187395047582569522156214271178981374922566673420157447451301364733746146597180670482168897189750160093109545621816445047010175843224449119463735315559299279900924630647106103808872733834050681270441561428495830262751310174554906939532092818679339656735331751545153446178090871515162832970064764009943382128818032860485486865216606228084186811771750202684930091134026559048244376257609113227163835779928709105060534774338682262222577395258993318484489744304500728314774709101728403973378185795506433235478825351565938260373844393437031443895002395909766217500444573652189902414415425980966114271682016883692403306283736988619361938766912070999168542090272227181952008336229054682432967485708646250093838970032457917426289576237184636805504534849424772758356249337444170836952167934631461016888542885496131678129543659844655273697027883944036739394237359559157468685363989138090873047810960460851508809057590221217441564455617807247286150811443419060145376460373291709198851947806178031805546089773626392147471514232264363648711754962008621108262400840685062652808062117303218613162513708602207617772473626197815192785654595931711467681150122678753694151564228485348160449377352537520295213428292311968830855461603956346610465997108745283358935519929561442670079713374519919059800772684146618360489903760319972568435930102188564597209425272400211341954535879568742239013586468155455800692123499883311730535577778700082943385212988031201408620027983169865591141593963777971614026976259066857242979730429154447754688727359731628212316072461404231006246279817516018494541148835821906212691156218965879699862865163177210530049529617060765526434062889251850649102816745856377587720015900341141590351447323174147541535712163730176689270900899297967772599216000555511167723122948550626775736708795426429672057551490460171198934117289816615432111253060289430401137055309228397832673436793115534060285775769783925261060811164758941534023295649243589649264490616835158955227854372334364839458999617195804837689041941469290071148848046113191470922614806885141729583568183752843495034387604355748043409687212145736439997105057641961961928582762963419951756820676459063422792696567548211163574683917469033912884332933854341924570850303812116012714148490506584514724452775562781930193359238011744482355472639873899366341290095792260389758363350805343769687307451378190383649372567829874139864418610115305828027807915911840776541935310991346204695118032705533048462893197968431612972169818173362472081659934460173325717876684346565827762964198453443889518332426243414051969862882681147765718941499070965381927934717278561732599162606314589138048544584650251530018054733055259223201606575915520485233892172134178521941583981728502962638442994210729247892533873192911316988032998460969626223132069864457877875611677692158371176428076529541298262416229276489380453172787964646436758428504134692804434271207620256904027125561112810230799961734668638973721388787768603959517886175540799148232522808254992703726827861724021530540474298430894476764939908296585333925511188517375092521143339716162605854994288856481864460773628346334662845186279133547396675322191344466267343750321890456005077715575258478937267708385031271315122961289658606850730794619704075761453301280173225419765792529679948834295698307894961871567352238578208280280975365633193844511792433251596524250069799720427463650632136579953430189748237763398175777308945557545433816888204601002537858498811870231240622473995397239880907031006711550019776168916003210317361813251733668910015350947495656198812623508955810197966676276329008658021751435607771803977625030162654814797148238754865546749025485345789269081757633960689805809859098264800618106682563484549784043900545513031787685481042749631087423950644482895476848307065401767985482692453815830432768747469138648576084715664890033780266325129283266639525206345810830851543087725011505506545042155053594092695467854390851866569528364664145690373166577572468446617658255442038051514843335815767268896571181328773061638530707068603139228175059221534669442877796128144484775290041743056901205442087321411355196752892156358251322162231482020145575670338381320409966351882024752390869413367605682073015541353576989293406401290586067645005633952001638089194776340417225548797183072404235044128625286735010427320299896335704458987640311827139686311146240891703681349372056395830586064367845453910972132871940436049083175869085886337351116437643410604832545922679932740173125459435031225728506574337781303556187275797372334110566162048874621823257016671142193821331178238949242395867707859447114736410757719907828629637596458106564233624814707640024772854561354008675840822126815971245356480380336998069177719861477200620317245015545690568989023154931398424920417797575664911809804557102429028523485663161742442103777794785582406955772881566094958943710424631797479888419584587542591459915329668213903171083226881234741788745858477841197876494843194383739064094422802371565069763860507675208624479086997651596061000741739839253917370938912957232327017033526248184453381652677704268406555082943924774159006595330236949266658966617207873275000949119333806744383005140067062024397026920369269828368581016450977629027676282708972249415104799603701519565400868989649551486271310711941243935593349802037582623658116422055049545727139303579479511632318748018077388207349577165516192626919441664807092388358899961171508163387108436976448091273301673529808356708966417989690079272514376635715530914001137384702353529336676813512184096688331314350409122460821398908320675670574227142616475303170539415542211795227414855070563645383748702597108795347585315654247585062827977540781774775962323496503701082219220449041301845640091339865948997578634006706515083166222421414189322608094969711965086216382226942493558169673590598332671405789744650811104295089495623478932815699524560090775071895631738153013764430585107039426223915941429293587648433435608682822998612512575133183707950625438361094172003354029252696200963387748665839889839349658289344513303354430052963099883484576042231173203437968158618498135758805645111595104991922495830240318683161935335580877174630562452170418139781771987372036293420672596684688871509676545734941705541524826130706806730556793720890612359105539183022880955638011404316525432130260008633429469148791653416340574809181084790829718266847922322701523376166394073185706967891654932380388012725855103781395144498922396345462552857052135008993888191065346195691687178053948366542517965985241484995479833082777443830304289992237687811481623860707273348086669714607776508592907765371199849900592949627199147807706372050520546522958779536994910464339629782515385352208630830723795562640937339888535669597491738932495373260338282085509661249142710172432486389773267257417233045893834065420353374398105127274007680062515442482691560535290289160371301067576418883807961590184401479319777953558429038653067242479290483686050213898045732989073259013666109606054947327375789488740929795122875533412811172999069088471013710712287680509236742554387129877192683017157371800073141040546993516737078803697150079866365805380765664739518919676650625440109325645362446086903620118761877335623996778098619097709205133434805365775831680390245526041185178507094822091659209803869174024557872999067420547626415101412539010826665239447320736661118440554607960492169196147013678710466195537831814668756365030041076298388210138009374106558637330287699551788520461866786273599219057435199543292701686947200418730646644781480081782429875772088830706489767212742660448286370690021583507683736637508851274084619862273453226759483263767513183965625971619310212593045416227247844904257755086740422374585134565542403260071992982495792121680330496217160974221905022691084032472227049225568392772387930187416771728617259015744518758350641417224652736986380976594947483690689565707532980256946376457231980772251357266552619526869655000005316687622470814400512867511197431863102616004580556927870282540992142706596122584316252878853324778319356434690866795578680848002556141192343639203351623739146646779737097526607597589195590741819455969256535454048473787742199796919687288778806520673044100546785515525346849225152680503129994015072618319157433845075032198237466874350864913213847960343959453887157614085378800316140922806064097776465819413854619158715690018555087556059163971793410480637626163702805512409925187676255143707336175433137399616206210962914045796653938274274913607061478363542151831201049438486206904080414977835288425151234450766749409767146274153288796917187632472180578213957895509611796232528927369458354037090773148443699517087375422080603638739991660308413367820935622519717921268167384579916686782795422912839209546483800428959303708206246214256030110123250034849825158670922750354571027231390142765284386675327535910642478058446240559018445193644868933823793318834757855485475618837642694400678385876333819201615342399289373567528446993938755010960160006802337966069475219959302894427518845289547997539030493757579316184460013364820572963438275537737095349078606244081563779007721484567864492586083986649881888690104334101011030748545528911276752863610562929268548542206501767918469944595931058030637158929264080911400356592358059995736885136042468785342531871051148200853660859825871693382918526927280270514690499147002993939091953087574005545524525736507527528359050583117312890162937934311571702547674747906104362055743051973052198501051035534466829097003057211297858006278664172791436630515512457082788190742013157083884055348117723262151630294933607455559520398967700490118651017016196647208266850474979530254080216847721133011249394030197026448035829882673548782676595942523702636403494311303687573800855710078138989528801727099944642625821893845013746991381094970459283200133943588284265115878838202362686276775121336979211120634542504167877534384058578242009906929853764912984526155516490869380166698310059445949846769075012061593431729729646536160070948322891569433626043411993863069816370618447751833487593289148428290674905358941665094895287755215220645048450978742446813410111649682734968797615456430269570590222390892629397064797877305914299982762103912969477081534220169389821867145482035284058812925979494563043419332311501076688947855570033191557013903478765917641137405821057291871675708447585277153004922713432184141497159480688549668912297203863278755712940528092151548588760658180980345163506042913410632684718138387454841899507260365444073480579832350671124932081437008842174291455801615742339922289358410897326733406061078698346755327113246796805780378250800193613210271110378687342992594799953297894812593486226206495512879905936607435950938715437965232070594832986903771235044648875664010725048414998968937078519807718316106094561770989995821004378526964436240416328952347626857163558724065964215728055239435454358982301893353783285562349416811026836410415136617456596564188105648004803143694869369471827642225545986628637320702027988019388994209265444893586228335535492489264705168535932818623967732721624501841794402035318920444562488684818632059951804590920450976572706400362733727789151515122904021834828227931090384533450450783600106964357666840086575760493769707189917368611653882907050934010945020225485573798572868347885738463402632150977167127049462153801846683434454152012025751286440779471645037542416062975278115736303606559458046715129580862429490016105429958569415756426701103378504070994056437771856219179335354051981355021889141272017391408412629498703926069519755759684470496359289304545897019420009460538648116245189946063859792251537356427063527003130679481126635553693032345468468419189274302132490605442783867106844242415371952252349553365448092307174130995183918132994682906627739446285794324162627085171374072167156417717571389909190823166920755513766519523815920929701377403793910381832367655476062931759897558459117541225982879380273510514911268786995466395829874232717682773928372841839521849279991594671597011811143644866290951156398573595734772983159565210244693493103665817807599700113010695366017463770099546247150246997668912585466706809614559458466843722839811864711136721992518227539932984525063981210811330232195759593509759162414778439016335486288115276374266452380064001153943467227437993687751285457323071663303344470885288510257898164689995040338473762835649262069188443741416169800368473057301518508521104562438320986146263609600737693642791699318536515382381640802768043803957150542058892036845459144640577468588875588437912060190788105027627057817969290457964590728363268187209538999675344856496506383330068641521642755767972035575311357093079467941228316778172770889982900052753676762286960734588186882678919500095118994658643392382802838388570145802241934350619505092251695381061799662617656104415992502237413786601920825053327407246555018645122230738743799792387588715178338169176580001568289443663221834411307071714613783939020094612113835752530574931102163171030543402584809401950922491365558905793057237665096475957347685746813570911264358477378008285539132077996313253524745474282743821123918126750491040098956126440029912203079280013352782958477982631064060599042623515998331311995706772941050847541637062050419468310046804330789895028263426518428607766697526634138878898255095561680934329648546283792037265670883031632981432650691515571324979418490142248718940885520180101798424621910301985072450007132092745186706297252639546471649940465641834519690817673921040285208641915106576709599829283437135515353117803033932192528857403801494009150302135875295130738387879372105151625364719935690624683392163466351001310919604256190896330178671341386464868738328172738068390839912498832149586826551765834433198645664561917939964105012663675953063977267051056033063913639008274228388966660218819747987935733975160104028981875337848446873910271290649503767827218420538599046519422622812785928047373427462259983205808137024382373045599825930619752574833443762888122353926230223923555941187430609694220456430866947776471920400755715579693043469143704842591905149200063729543715062732296946210216006848992421117369972888769796460710798255845287798617854142303396232798693352122652413291392699921679766384742751404460306469120423030785237258895807348977165574153108432772676552422116995570015542481984580300392817484407096459345972165977108660535966285198352814821589055820122314800891224978528003261432700539485839744629827968373747191277947718785842414175868777791093722740171751735504804173900617178417604354512746701754070054153792178818970083959758514878024294161250457039823484900339576125889111482387865962756974109002128567963180568614589213128855526239016583150026476021948126075806095249033393219022056969686759205742806848065009266882037655227245784561762285396428414261799985484314549331346007209234297603395047238387923426070792820521828211171700498774114982958286229791165660454018315024185612745569308913910429962420886033177398889881008957128194821371706457035621855991229141626950050917641578508658995514199160509221704122527397211032915590373521714481542041858834379061986731106566945898550839352572741134198348481823231383152205132022089765070500639590272906742306479682236585516833877008454543812797993958725743598773584271494480111938144053830591564816108331203955874219673591586858584711679048988113317170888429069991448057382738896501709004413776314402180102050469924301344763729562514401729479870078878268830641859206444019655049616059681378088468395571932388604041284326578158255208966400542779032320522204586483457951550416887065809208999377212152437024038499873267356705672148363489368753152619987176357182213768711467945507927926481202530837061951062800116037031972932981040938623097545398187974474459560546331967587959840535660042398774935755317328454033819961037779588158973966451238871367110523156879457547406924901617646686604216767486396119640423259577131847538019277988692737362364566292388172731084221682633426754155710220511040728409575025366994339384863735994252153202928485307937092398741886329525074151374969700871062700851462256473409427652511191009620946657036415389002446303926296904682423118528265281581826042364330446728164631406911032970079801459334506379573428607430906149327657797215192429963711322477401510097075313804159407110431202279358152286570343491769166039556887117562807437210231119096469402987440569895101287544833477683356870361154891137039387358893937268519703271308573609763191690986092969387186724744372584187186108208357582899749942512882035652118670718139061217443242766385776214427518580775334428547938774423359282768261931414394039498521723936539660386244047844028221155192058078392147093125023538571931144014822629984366982530404542271407765650791416495218477836479653454400399444318169413220603628999467153889546663739223471121522457666570491622634455320431198479120446835803589177284562854558740994572507523689367985694559407559757269217615156180466333140759266147138139130696731958042863432742442555078313019556607038406471266230767625724238260060821777622107665174530976615503244226922222156612738585867253055137567026869081760006715346320369835861980966261220976837064991065379357608273111318440727220600772808195374328360968252762175473665813164821834592032916028916871074151822872478308444891284913862326862543096422243219533333816064248255848514335995840358448858556382167343074418738495940613857182032939258533475562567047684320034298473688380088433879875373169606927576485235112490590570991044438237147495061078594637674589702924620145302315689230585616808394970988381931288710567578117648144021757052758229001692609895326218210375652187929453330761352190372591676002776237920528105262852023992380159790087805575147788256538564216934578629118723733148877061558509891210224676299370197193102234545768731607777302444543612478233710075313153926186138984594811726473037237702008457822020992813119916298696496093413184285109892666340557489037822790158413275680712962856554376591612275452078671781254996476708019543663949283558336022075359228113783202532455854111660879607092046992505291616146141857325439182519455002550336484610626087902267031211357731668059205253509708872716766839418304509100418912162426751383011513993678327248363714088704838446087108115195237957351218785848177112450127123246446256167321062456109820084789937749670547759157585523605094497531022257073337586089457391181182528032466197179048765243396801139819159092968937793564767594263409521017856835918652725360546485847817663370734301410877563881909248413243382746205092561839218737427350535245796275767772373170536371081515398480480100209779952330242071164952401194268494875408384892839368889674421046525743987148462254412542625859305690206239009328700654656466407282466446978434311121350812510458118354894139234890656965329674989597938780482448153865720430268927144036782223305426958533349203059790199745597318858387575078062865816379099394110531335436142316702072572103832406826603053925416357994611536379210519651381124945075568339669564013597633726665174571060599548063203477235318228358035517674005319764675094611751874302916952098322802850042434447653127196323058785790041101233027857614409031464153239361769910371393144283007658117363554590605247147554454338657552143502279632525057342904156674076269210048556249097738050055414821716245567971546771890655656718506010535142055131026825109575523746565081559457205579126430179897745850330401870259532717876824188916041786025500366031725278405896978577133962367386456174952426483325609070667030053932835158715921796919204401180250492806727506244265541252743292091382821574936657575140663036322827501150798244994132434816297476954610482950558518261224705845104958349896548824986689099607311839806392215703654226646881462037551486514942868793963646560695209345432996415900437038645847492492851679290558635531000992529499622621228957119596615019947107387381907078355499996175260156840549324775879693446935392871966372514663405394324454685929740510200739699116974918587323323330354650502577644009076398558683114077116752819498586979064464491044732606610287570787711533407795404237192030575592459098759949347445654248522178920539661776708031767517471524161110880346451037888820540486729692699834502192308468862205379041510149592524047920157152605436720621717624543248994962908026567419180283819529785768762682945469360265040629624859730623437783106277375743697683299681497932410778013187121513836414562100478130801707704012977409053310380064042795002481151998200278427170789022156295459654316601875706814581057857725765672925902808557504404464856613520859702349845476709809470627715832444127139434892346072513581635377960662518345294314362868654937989630083223721416841757747846552086385709676505446050813892951007831961928706880765952010909820662018373218605575238865115412270284320225401067529415119830550171339864443663181774927040126752621258120127273311871341970547162840961954762755353650294595797837010244663222092872950639427626357538211476244960379241780520320283691329725838796299290463353876816836401510307833472972307241255657119403616780759930973668841618825086807615127885290466328633965464052154248870201983240411692929289895386577363432503550588225437084043704874633345226534975121879438467217213450309571602552173142114323770334609617913526725046240236716836655366989794664103426445824148689572300715673961652879687215808274158332678241755734216140501766096260366841003271011480106463820935677057796977467187986558735627827204330675027392488896343877246564416579296684057385337960217515810294411732334588272007070112398348165873550042173481697108512710279164660625062979741085324724895925804578480588814749199456202762746878824837665229049208576383574734244834932290933393540260712617661335233947704077413150168603861077705947952728516351933281453598462306324386379804237224719853089664455697888726004951181122941395946106633534583775441638154833941531989028797225875711460297465346800695483795554042732986220373995749159629946969774892251613629811017588647719005535605373273563781981897791378889751694228963461408655526090064942860329613065265289713401667708983420051755092016447560161270194702627109366759961886554446729451195262110758905584433832666848130609531223691016712921406029108044415507586280848248663293679611666544633171204998154323214874220546466059569738790403541727256538825483213486352020386434616887526901104799481608657853069500833084110191465883349987167611506456719813868763472498500278941598875241961666811052595024929926078549222640626644737913871297999014440521458832833063368042743208747974127014933516634053796185936089385775893376709811251273049140394779871429734430987020497808302640119588590659411776938319767284080793194568530521098455243451271631576647017333898633310829123569889057008280847578440635745626691865971001352675157407030259975825545798921295126633950521024438901611847451212325521755011918211335977860484885705915310334177860396582112517773400152962558055279034170234650438354904461736825757817337306529942788737616874005375555997279266017022269183341572567303332540613422391147438806909641646123752151025542584742471107171358330862169574910452080973507891575583058980628993470569057164667674170117817270252698265999243427116534829606358917068588826920817426971330752734103907371271607510225137419764314529328521865392978363693282741970309280883542329901692864272762732240786841143145751124053943460639980732390037531295451871856914734418395673725594512115587847025265442952061322479013901195435553217420409808167699070394898749025424600776377788613585284301267218228598074052908451594260112364243646067372285692261879985799935747260951717378691609183014917583788051093073803254731398143263523382303603106063879916727117733791267975738076725090897666744276167109659855298750384071600966709941690484208335798622056036695302342702595462794666705989072732147452566361360227421842051973253418800785080941036531378429334315395855918068478426621154111408863342012345766786908991056438637368205129523477431169079024575734371502873905201516888685910162982923681642591574197816197364691030722177135725849760443362899001460641470133812774906253214656890152224463663574381073043282940640680174958509507952548968579489865224375559104958407305977300048232095354149745930973091871164841753307800923554087195521496057229712416925832824561009767123167800028229241173002898615157996881783464731368570686687997198909675526694706607085860340389879314593815422615266471816643632112817536376643223300945348459440892841339340522173401357835345902894189091493413566756596756417797657271401309991602194839201361993215526757855649787727164163371600059614285833880350609366099010094487268257985871733282559947011689234408228073133252238464896468451968820818700219059932074910403538928527515689923473371412336878029684410828062662406695050232507062505440206562596213940242714205456579462446477090083862812860911417956444728648693465606325007781338858997474605956545640125723351578653027007592037738897600249128739840694453681380652720767446903393562459512940965008931971804375623390137392546892177645136490625866154169737745964046410613788398570136636967095080855449115334748629359508004291379950113277685033521271043695987415604404002965541946292376847236300545150651958419867089919054023310166482081924951505929972650571956999451636082027134962886917333926957522884376438917102467020053110890607699651571145732686808744543294183500481085446439985549963518145762403400976499476681258181991852940849549262719569315508808495411826033771438021325605965476625429200619618944065073199776917216979506604438063328385141492510796071097132738067335039827142985649673452883826847108410041041294053449165806530175137961780869506283764945616895045201352675767674673117184792273490749175607495703448161453924553556196611479607629896574869703648328401287942058867940554879172688653430001162637313234997076214952948445316392236132812262157783180015663081962053963511207911363408168699700630626845724569836968176542668887348063227215951196053586121558470860332983731944943486378604189792051567126888566334146736705088368402786390755539821971707997952651317796178874529178458457676363172724421123971504944631912363793142005654835337234678490804176468963014225782837181321630652915156878569154565280123526119681149578686603437009233808328328572232458655485030652534452417076929605159070726700781182872821463978201791153765972491948765234511204055997166205664410526735666927484483650844228507800520767669629618102045225414201216447161456963199992211036947541278075583339625260521076789333570204701515899777033014404960976427554420632061918308796255414024359679871141732736453342237593921698168221028449037792512787336735370919019904914652295504518016034044708340488743270181252364793619277896765753824656417972122375315617452253902301667989039692593580896161869846887044052406324517410592097522992084682031544881694307477722106280228106413475653890618365592410266308220856192861290146082830764984471295446533585287817624095295773103637175905788045435911249142185623061144275243141560232640741984544103969548621005173261267664658338613452511475722673107320553327922181298199252745347208323970172729812693449707720810121531513844293471469871715725423926110388335204349949808969280628842338094974125225151121018294498931939650274823444699281260717719176973180845671345732385402420424458826931718865260510959236782677193851945537221369491970109806246164934501272558433505121144989284175096643951013569871479903256198541374409815931877178470456700834565350396927568112292600434630636613021242718690836925838092950877719935271842783356181577240453332460142893547709307724588000081854154135575656462893982102686180472859682997329678495564405023932224379672925033408067183093632639335434221952815319562293966322642386072086923990123411000792943398725219577816691446062769607926541363647678789363115295006847599986068322716551445283435747862518245942426621791053559836102351345471008682689312888128547832239102032096397395482930710912775676342875315289803887685152733096898332466710557076805996739146018936482719762607770389055655118917985213217707788554707274861155677223639730216745026033063746310873399138957282163070291245588046268955899023048001077990358694568695008022292037382317788079000074762493327905129065443255069240189285110685471805230472369596229486583461731169812851158954957943563715957385767933762459244516999480323484223203084449913167969934350569180624206543447348388713518434796286354788001784962566314693053085410831464024707680016648221751505234288424500676518201785105564782926100629488161151375407656257134274070544310701710072064810949164266737452773656210979736104593642109386097457265155940097109212211095808145266915941303513836556436977395789400466625702809534111875570782937378840860980042832153043418972662952451982265594184696059381540713353949014010426392066226394331206343584646973091588052138748321268398171698152213972815659156984206391680787970783232906258613318448209997139839325489724244283987561702996086543381856630669105753994703846414547081520186333219455593021877882263341780612817003583322012758033859993244336353862948520626284041676943173338932114181248682654203089779983639149219700142198792085308024818261502927459277652334107231667789266102388355651240461524949658529108561623095908084850651432922106905516983757667196016659111819518903990947064406440910109183558453025451898396578435847819027938337321271585184557859788413028565985428998939080553541631192859925941807449612573614632205058760839554484650704208722781913927019428158280622282032581034113435713495083258664154785508908231048584025914069919023214033035362185609511806865973730645227913302247384732674157909435373650558256222756291963494114305818941870207691055374292505299207320611776537962993836434980397375311021096088637414838323374942357713175006237826993681934080697533542231641025785939406593297366706844009378663976531248712495695721322381982425696450603728260186091610709717036191630335712574205159735856622351783661313018293942847724120005539527193270497687542032018487502406415028017819281108391660383690958504997096352555301730833520538583564389608440218876108912353327057383617779263216491299717292782988816750806749637135649808015527677779284624191296930200054924726406443728862232457425785595773069735789089613459574829606477364826699277556302737276566093571286411991568952636603885021387241081948480456241552214000504884046122933027573290320942490709864974412769253747907836783818322766196004415931275657563121437687422225366230762274742184109938672389311758756243564912145290545620137140020252116960372107037543062996462371763069723148707800540469994988016360326988984229174624104365196508277374857934124256090596592086929724751432318591483162829381060982569128120950016553579031513974281591809118960638009125341820974201832020115903135462894879240436296408245877579096021963214295557399928612955593300264306355865622786788355675374105712344793457038859226502761621938278748066080824701343155366698285388676162492910549732667168774715799254930343888364721442379849328151950147588589172086269968125712603139140693305313193434894856865018144741034044770625399377735366238429182100991471788140809092296399531889370284525737068163401431006797621455167425714138071968183654248816349088456617241332842111366549806060950540814971540741198437493858125296551717530622951516860477489463762976440254554237578103070125404798690932476646916608342683816439698619717434882071381058315281472285929407507442787674890622974167760403769094889055104298433017931362415881816749198519881033742583690571514574782306823147022020742216943118316443831500398868886268793759931802262078590854063220161234126181130816833377355374179497837965884176317521969567954435988708831099905161377446522837786233818436718105331993134557568712295428389306328545039253329611769356082923167032758976955207334445285416624166688233770706251358293974834519333245229469343548586638274438136925855152671860894634292525790227713450526440896701540008363634782827359435812212694443342229551613071443275810432042901967716967300136837791787305787722404313421026846000487837906748087662080470218922055249954522861530298848196312391051354267585584288696590509261815132497122566602242742628416530392575576047593284817428574542844706852521813916887718656043672109701685841298846296442110155555808882912385831422779655186211309327567719380184935332453551480279369093039006033996191071019254798608429649780770734653039763407832371336236165168364326101375774691489651193215847977405233544649528293771557362722225498516985225725891728894454915142896289618543826793602403453395184324081467577555448452261442521266857556080357420037684997603052475399550652282166581365912310151576877650910505407960834152287690090542140054450262036525044404275931778469285732013578445674327610284646310509946317987323423247923146118227004775300345491694480216557289468635783720387231815378007442279928731412599245959388789115271617225419963720982740936654864795385140608342637080208995621994910543333296580502103732368730585097546575269331304691507000766263242944735482813886034233369823269040757227354714628134399960512674467762767067712759826913603107560479447342275462069933632341798641037949602140159091272664664711216631853858605645885916623879221822603172519101629739394692016370362395537117488580677493390298599316158085525553538801419320538562741303965575318280072103849982707675413544218418385804793843712122189973991402398149459767383704940362678234378096851674899758516962385724747340718812908423905151091267654109370927255031059286171543521693160323726230819151618112257992240817289314327040287175194171426451387083446975738866483867405569354939019170373896379909117649812801242831540607347332914487006426506126035495699780898668360592237381141790275091269255611918607805529466250629434083221105435450093331244485252567748284073390180191993777677436628155912633993737301258219876209624348488246256139492902668750630983663020905722733975559407069007522768251394520604221228266922375495133092748241365803926047093694335917045376340846741756760739241133170210578423354729100787512705954621242620808503717607815082704080454297533312860864845994759937402537365559546186481913278473055017332471432058478144995118794170906161919517328862019259132649946406959566934242847133795627721341108709300182208166353307234868948645545421009755772528804088343455745862368832923009854854022649202620583861953276749086475048877504326576329542372901201452609962524002514175509111817471448974353877955780205215490659563642388825933116283142792516156223027631692602503055263681257408389514835902630233269531627596265695520628636848541590397505764362595527550883815475683869471008221754443410690349837685604767106188989094890009825597941904790611509631695394383615767224114631847453918513792843785385355065771880814095166107588943445064086024346774544228439752702904899982130994640159830264934543208966713214243519716791276530283357616418582624194907406049943510338008504550490965141713011718534352186996968533331962564314101423542278277306206380789639844411854361152509395066191037870717917362040255984913569689225239360345704724208188805009840669746852368302863127658132038900029462943262321085891574988365318681438112551488522037619035602141090084562126907770604613764800712015197192934148499172965301579641897926237919531511244651632831228749563854618293151713138812961496252178549178989979572570512198632663095981914900490874564222206417575931449049561871936784951704728377975395027675339740462664250262454703032674201809842843966207215475177646707597133126421108361456621888930434715167326487269674144631536715410418723265361683678233923042342685350537487903745496101892114353591071939064353130914125753838446630109852555660216044220243432249618853802394427764793266471691165786304042143643418135803394557022336722709205858939963616801272505276187155923543378929427777191213909570145794798578136918226223156445021532542833137593357976208965636047343977596126070490300286728257962833423967426780941708124995318723698430833153535553229303932889411646030998415470656035376594450713920043829479194113079546043316887861589633994261026413041526262737798559329811183754073363387431324368056768823972886092677052259431481214524680955439769374523876564313506709268965978050119986604198721322731966671684912878613581026985540433012651249212106082307708579292366522741157475360189441956149729332437868181490368727699120761483208599089516321599914378836223665275059353999812082349306354733798032346149605804727757809917967122486563809844696845722945035732227157443919865750726028338626444564751265614039898051102472250649879866151339164718366684603054806420089876439370205955244746471452987160871163817319733550930955270020287996108184065518757370950435644967449057186164854531575561474764886671798240818204576515884773199853430504161314280002966521654696331826412718175444488442400238831923511010111695908605138344043450534088968291413614265799543358485558605954043638200428508293799219656523862872802393975945062065364431460550763171497790593919505237732961152345592904070508196381629885973853692144773113188059204849012969100908577782258641711052800576085952526905180099184721022681575203785111913657244414302332220016889853823352560736866753840653918554900738006260810280770669000372640919021512876164521298825483984486381922843453663294573183500374258000360382618867172161999532512080519205608917503995116873799954746072028607126682871048554176477234170609023223934350558775838775838322699983588770963937124710318292789817413574469894070129415934024675539111968319405550056486599385579904309447220198727881987845766820665037315619719625063068134354381765567692703912874541297533903532583360370133914915885237882193327803804946523024815254502505027117831671611467375531102961135088211103276603508202774671778438452774817921413210712139228182090245334411388560647070242346011367741166627766991926167011044479953201695137756523366917426366320031594320341924260972450197430609845257609439862255775609601168977215399875520426212398199165699624030793914865208500245203613397237312865049961360854632087267479791706993457797244238693910566452793534745451745070008998573680978651272540940872735543803189771253009377655447817917245661639924241902937027326595253589373272153557582831774469320531315613985601859196698133095566731610530975645549388004640032081547670190453744688340534504165985432674988820100710812250124794692415631749049979850416161698144906541475265567810281586158667516846175453010873084482047775523136418730014225412889235370209195432464096449136457629055425965132180191187100223668723258057181539128366592746543796704396473973209461181028849924986951546283011459969059283733830882819381658592513260972073931692773780826772507695274922370271154126883450695164087397544364554319804052700389714247474796030928100739629591139334325846615316214519333296208228180866938322551268512086642239074838524803348594770549435939613040527262171493873637796495910481735262723385343721449565142376237865635151435725975051553163457294137524749327087918152950675483495945341053083181381202892420501881310538629787722255508234923920056465554613961424618151724891067107760809295269566745833760720506772531654764773552648607582164844936977366456300733378282790044615480172189946752720392471311428023101217700999666955828436297028579744032082883744389851391866761941219308756840722121838434360931392327146318750910178458970842258868268119840450662909396334367838117883106480896809218284065629193715481961236441677406998597815583236218775612331280396051483738149369308785351389321307657425153516451663134169222664715012212449911416874933534794205891065129200159576042320463323168742679974109164194073992381268118554437056964868999852332649916287035507177927871215765303341723195040076603095522536742442531679816474934348044340199449327187698559153692687024479118348598285192046062398100274146241817104522307443044234096735336566489022360370693290321481210713102654049810652562958119967201812011553643762490913076855197269090128895282056108403198653674272245009601401031423095387977113437956251527597029446762606958041412076238812593601229596845846839099081585837390456050248969327240945985791110953325315566663192156180202646578695665699006244038659884602325128945263593414193660838658483044647362650737088304449682868824340712275867415671547308936871091304940670675874885071470116637043714193970339066478236613258846243763066362930477845995830660187094764913663736858318842302650640650740929827130387427726713497442629523008044954349665357306296964691927275194600626902039140583996519213074457069845918009831446640387066422006649865207262744755850878308390674998300647562731519005157675533565141181685971386193632541587616655380423516600075241346500024382269738600538583899668938518338336837932675998811001177089680819602962904803727002379151450688202700587177386018977674747946452092225933365557847227117471565152437931902867951900627839858243575603584709878972441797819722179439526418529960509487851792855265836712450651095025916248947577287755613229490902433254882710251555049931373433220670183738339613045969611648114454537966887984993320453641184786157592788458930176084731638415724061508611497599668462321665538996570411422013068479683490028357790300874943397854674423902147734398421805118308503411081760586492789371875153776498184961004880699328152417625749463923114913908989343857945989556842855468848019944623676451130170018342176102900775152034066673750722193303377107823304198433832848464393719508455309361294387343120120997836020230197220893765439152239834017009744740760949096693408684311223514009337699869623798513846366925438805792198687000865190139550193986064681036393054263736627507304618880312007037673397213019963925410307676118593457935196647347632661545465148200618688989072921947146428118284607580635014321877832291581701835503387597572575228234644311403604835975786138462304302373389437856079317287011021634548014126379313029739819730892035671832383134915593069246665186335355595286951574793041481402390755366332735342400660232260567984245103862625711693509683071412291181157910066110167734796427349082466330025885116925316556115181186295684542730063938123103192712734880034832407085243734785093705236426159809714806447515954469953909098225250210173977009585256699667551857358852927687691897480515926251217789195128265523473815042426869189014824288384343567734964560701504877366978834553273379609843277214309125999418541900574261726232133181176910801077580665808379344139428707471992983313230624019799093100253805047737577145798308599573084805152776940700354860896160851058464146157693405853686024638480644510934059140956222019683248752703522984885140670994816600776883917982242320253224078189432930062998234687324398450661759714589316100622087319332066186501869727836498128275607792220787183663667219130809404025205017405791122181939688162626826794008901066798989451838843543122545532556273848472166452953425656260648884041376169181275854043546368672413384334448457310620219193961434751865810793951837339669093194677705185578988466880925888627681199943704304745677347459358341528051899750463586007961426412582013371315080646394332056256049990495766817929796404373030531909356626636275517992173983644427036864959485789311815673741790069428343009465266513973618746662031435606591079629758987872030145982059357660710013776479714299335327757472607821976326930196954181835143798195021851187416106935810581342255042667316803457551018697273730236161323514696235313484014546159704115428727920423631324068285199770177122985302650283960711878241308966273631522077674371996521709436069701023109202653530093787732872645767560143205557924152932148103496306223435913754278595407261004768919897403765060648030615211389573260118392780170198117070166706580834831306784252849453939403704801547822789652373788829419452149687464815687361011735705813601603140546483842092911691878133345747218436095963417302470529920765365140977054750133401736426996434784087262650394068998314210543553055596134338669841689328499833937286859535946402757498825312259783269672246869846075080925305257115071669996359575240390795360996771977585824811805161678056001634304455593434457728838883248294813305725170018291470855433828862904734232923637484028272076137974444997578477284781372144521730082132866241795444679936778514493144813684174518190105091997451686278060764630663220388361339879267968590207128310968765977857187747000863366356473706260854369407440930318140483591453524735632231724145611447125461842623853133680815542064734090092227621308801099614090114822913087980878291678158224881961309383576623386839676174591663990562527308145441245621961449770869126187310231223156374999294839152124837576352376393105476782460011830834062372588026475131508393047981753847713994448266355959849297063147988258895073895181892415229225546927388499007502264849276707195752218458100969330815208398250594470425446857181438349173377398606758396315108373871298822215501663575166430570387642567438454139656436107954688937978244932046608200188498139958098576480783514214701700029312030496354618907512231818638761526392849090163219764472226742305435753896440546167091874243357811881602392869172316512984048389154510592080617481212289104019913398304646745799774902840133406046003552829195282766060120800486618575690718098389471729011105532533576045067944826099699108554881346412664320537852935515532388852104972251229070822879332857466448237215406250279200953455719933899863656727448912496337735748017680896426841214462780892758610123134533066582448581937236699571552494296232571537102358702811530282299312507054862773322440327644147661748466630687764609922934871984741231912990360326026610270996203546216907681795381346343271505203504986497544499064718733378289834872669242957537831999155469394671168278011156568196551345022877120129798066363042200830976592377532063242128483732168029491797894434164327105452160152826662762633354483468795426949234780802984537016612377050255196145986047647643248584333689138188941340282291309028859784137184829952038521423866482625721849323220340616234755893490577545625890358676035317939237014103460855986283164208458799332623540420078392424315247793372092907013421174323440882709554553244582868830468791660380616878665677111309354189278336318112386057592569005074002914228798730916550089120803998215859408651641100354704254878141697112467396104224044049700364419318511667511508860082444142902387101613109032434512217157296418890645426121368288759068219664813493669087933685863197927285058825914924267432223650464534750660038409964018261176012973056750150620901697136186354419291608385523232140608793053624432609232139297258118788774247492670743887700680763593107804216997757412601762702202103426823131393385265107318469187443175144140518650459329840743323904529750545430193313763135177649703438893316188706990339798802089805532456162349795705201985194966352862995210998969880688393841102182237652878763096680153512463118260775705348133911491244390359095940590692810792956893107582977571349972025131743083629775124383797003740548997673559762238959950593703699324446375659893799321059010797173799581611284757766669439696935927356635344232048264817864671972365868355606839463617075124106687310458443364172110738928416110832843683748923865126378802952343843501687558494460711119875939715384632346745230591487838370188938032624715370005891512878859645610073280125084854579456712818695564973285542995394461859022013164701101083104107484187770107928454386414775497712869648602808089318471910259530091974040999593639736115540035533097124359150755288314582281925827795503147180904689668626990141918066621751574462487116031511533066432436807563007537115527758236775248133477186515193018138858083199816237118782166031826166690566535636508332011658677610934342184426454709035573223075943331747084100579431100084997709054160819485186977413271383116842735372157576370864671031632648099774983250674915350410481037390752732799631964578204363884066742618599446048342369761113622960113813393259233081510560770453062039964766017378068273897126909365721525921650388307509776802259664487892404010468890577376696614177993243228397765626357068210975090216019679421821962583827328742192205188360790976284947874217152985856316193503765815767636243902777124664565298904945024352644859248519577732658469225686698098430043655963029048863021827015865545596012585005372556915420723073978364339320853186076598787726883230614159806796452532988552946304184383324065630800697851470046512788787179521011273268985395760208703276133913910945113103695073047996617745556378637845911608058746536631261708002356405659027823717065840683214316682947406940376872982124229141888575012282877259020490730367898484247592472825294314717816998860429275046936378183556239326246553946191896854109153679973209731398310292905651508053062498394733186680313500772775020347948880189690473315646975212667815765608141599345138292397861787971523617786795785494439724185520716034783792652048948872241371136627199372798207750781189451257652135500132206992373550811015191036536055116573714485922397465257483048519207011848318907106439938356544773106542896268928763947370464160624615982948434446658783905386189520435219557512220285126705536561436450945110187434349439369072142767910750169956071107336758157521299176559157191861516808308698376293987295055567716130506771554572467875328102219321620235946616007481519605328152403515739537869061517680341173747791052843863671567747761212639179175424588156976277553770779706232287975275891077724148507451109132913699134861103132381132941443083189225870138197067711619697821875915722021501219460202643918443242782877301527788865446659921901634241878033538761919111272290513687897141359940294586493299901642829395771907336369363944748411046510577338315681670359472486723671310985364489437933688620987694002249828608710921981540436269014125826734069934513578988023316837302731145147888992431755611743464818632409459837543164048958139031145801921994680460090703239015758818099852105302779464725195814226206289944951438791254294646268139571395887408421455542159689855695818339567892953828303644576488137104053945078425650657212816393305937121577566293594412444045702482340333555146947933232024052060763511068472549833998567241303653820359825675416635460867864445774259266559350646382564554687227918923301342864115250516247367187690911476118238519466222547868339302643339939558646053700818410377530678736424087309360427723179783006721308020171069051193828505399231067522932488339172368828045077785580044804072110271966137035854241980873295519967826505778389539765930274727370195395132306940366564790030276946220990247468458345819483919940901731286586602375736883369989853248041968570888206589684422233327672791191381962617588970684489474325989749857378989665676162791752849519773321125328532520354236095921501901693377299716363987969689021722635507200392271604545225042916047441193442231267509297403348999552342863846849547720995315479974863686861010335047189719985942959535152323428264050965389973775306516648575443023278257974850699862815040893652936860686820876653602625717406913358819451643566495088598558974713540032090920739798830741094633925594108396636596856498221930452857046191143381343909969208604697320688730459569675341130755069309404602240590624033376619474327615437396853588051466589456803437300308591932405121092280505620187710385424369159001800669892055812156051834983407729501434761546457622059237253897692042825158500646219474847454411874219835434331228809773696348946830049867520084509404589682230120807805505939688031999788533464187580105478253172035094019360321835832701552395693974133235740134737341371266702931557312031279802520599692961694771097931550468403692583334759627380289420663594000875954705699660818680588014328686957006666630105792900687590546464856093350581044157921280840141194050628242588813094842295171952256195930190523634108978881617668802083191067287283479979600835519666069051043235877454785669928197381501776957755855924640888103761852300451801356815424583909189949855388761083183558392894607926647123795974452176456695193321053149191494262976373527033540003335962559688271091547341790269598297699867747722709057974997734748319341599666484615201198216998915355335617101959095120669588375824743200387096982388409878745316405349629659550138136221109230816620966161235977093267107812212821054320614660360994690692289432287127914393535698310830078775138753049899353895818686392234846088635339214466872594924341715331292388934284380497409417278810829454469225632074009330656612493168860795994993820065019885336189896771766798007487222707041012780332691312333267734845691892520420260158238698591647372159333878682040199297201292556897721509476736072904896741489735525630866381716595309324751692204039132924425279559227950642026326858235049549720665670368703771176073659215039477287676644846274847196147734462574742044148240564558893219732148400815606006380119643061982028168385700201735540263018557446256620987073134373140048278643125612435410216650623523369616579034034867816422255647168107545689914916887052660242531819040837632243054231025710731354437905585358637253522132400746187114020904315074695377879343067138517901863179254671671349477707026530492164441545944309375689984461753266454336831340683359759359561770440922617214992865962276930562851414672726217524562551839896509741817122718294620262767225395987691572694835074443176222550930273361745238143255280976322161756384665322322716026200358915725841667770940853409108157952991423374011624948451728245789866722850617531922269383475068080002564569070681835504262387942511068250110770709394066965125291002341365497806890034950839452556340919095005948425595291363290374457874943454557712822962832306630427243271355181603788019192443637294583417577849282836570705778341723768221589845864699378792311331192210453791234977321607866129847016012191041083885301765624457299341698074822337787702154138840279882496384383403908644449616940413280005135865393162426297774408523710931895013411791503139049453488723083223942090634308922811888194443921866700557905993996020951799764549719386006569878535396563117902085280808204077104749541240512603665513733604775389837488589878914560190334985769806826893405955805117451555242309033187103249066851318013287748668114899810127221531076427655840225868396178700521242778854996860775725493346391184273563085389544399241667732686040833590277548180164696429649601633838179224850791031179307830871900115252708756461027276486230753386726450526040296790685429095449201988246048373423893149802341622061556012097151051342972432101757233015592260264470437186673020679517167928840373916097990649480766486819577202508395897657312475588027755850604750051724518989488261791013145602234764866611708420283000751730460091603042180206386114218652548940455486542065004327534309842881235760213608298829392789134797712773647668844442292337483770041920803681247447363788140545513752985116599906913239014790276055973300511983734015975230540237397619366984336724722921083162526128327416278855564834642789731669394446662506360851641027917478594205651913376457611824387380297657626222307204096705753810028138096049932440088655325160364502101536041307300535769738091768949985177201452696290985610356999438752380032338367704391843934238934423616782094810485441176878993650157083072241858647584480620765843717002944824837197269558369651108443208081497359897956709081892091398993185663981415312624162179273574356572039836043781524277238505360411430794744577614552774347649563767481373299859451569347972537518889913869405105009122526322600527873385582819244402841892799806494433579197768032956769308342465995746998511688716088892663689180942395905456170487638468027706011495924937400602778093739036207868035588254005978974321712723992621682525081120529883972340479672251500840276550888475408800377154819883509101480531493230755392584733414467177188620432653700506915516139374612481818530326526515385390491837427552823213895585086114263090258540393783349402162246774629744506369311764149422327862795795312591035885026941145990964835677376859619105736408237978850695700141007581782777137536526678561625141708643270272419425283090561673704836623897758238968203113578424187752686623756832656002981351895414857943831768452037622128045298935179568503889342426244211183900033430261952747825490042070910076381751042469741844141712888528879265058906342888518151635791961674545972127123686258793619692077484839960667205906595736463939510527649813426976885435217763477189622831350860838990248270177893162998738688320903888808510607193975387275768494021939847561886810163331656368923339562117710705951190188753811839789572762023246505203604337187530166194450245928393841864544065393894572321014112260811845640177139128714275881715354186979352219394022187435368107028138417056721890956492722816365138219178025431979850110371448574969670837816058142410750388151224788645368291008891379013218225186916127446549923569515754109032220327946893629190953052797709485642817282419995323769117082340351667971213994404108185375569212740524658533718221297342618533497807052086306235960714111271666093617553837533975694778023985388123370666155622726308616738634992002685613701172267315473769046963359081923080008480171056123187087287847694703415060502697913417987321711996618721429725595013613472480135198378403174557017346027956721991649745528124879393359107571804548007193281874619584376670941327641931561671563147925292569536893975026989847074907042175450702282788275549014696135997617345117072884890252321094638472856668644593644380214319176680945847529257157475989062035080134946875328096344652202150833690672784203453269069808762894313973462406518238969669575339152608286486424162653370560813349670883848212528684780826829867205806730253815058479285699701969877678079222325797610621672830021916577401825326944853331114049353789585773072898660625360627274632376074697902549294840042769724245859539622801077278630205586977527049796306946866242645334008523779680424294509884270034866010869673097058385557981904640672614136673604223292091664911206451964145357354947583248167630742215941264502323791825876582646845805790486337970842366537064576872848214578071317906732206904499339430819755999282015788119432772995249066566664386261791597109582584385978140411948795378496676407278924127436372128075188193543258559898462789079471598613957372348717254245064693728606991858428946967252866231963197134402487247304272513155644604826236659756633687023361647299277491801251881866027773281316465801899580646410194054431945415682846170029114162322168384999131147702631616159440817650547839747966333026032069258889541557436002630196232806386137388814329651016190890036992833506894808409577520865280918428011204002672715003644799342371153547301180533808525044767246234951379030436310125143001026125869214522162881027475842371531967769788049200660870361110567916530401352574729625823913316000801960518746392810347159967799785623535789856590086624175707309712772107987813877310457620012341932992630622286650570654193644289728318692053098607232212572844429460904839314939547801735652913609290101450918031177517627094455855652165150982676559018929551238311561913671065324952155444402753771786421898180133913177665494784918230001578642734453930954368898362473632546619534397486222190662929634420866936708158282452724654449813943716637545018642628352006905573571939601094082981910707653123353957537248566222866102051147193396999731330125278823390633523543878545581308159210847992330964248718194380616856007096775716733803379906967321084926808256616396719988120357147973764251271923155777492103865166961520584210809132761009535663376266103106340298261186562555583605703361342336267985677501596458993060173819385270025725150655725184974120065012346736281370798139403912383738132397713813036129193746452013632282675640950433009493762253435650959048062621424600473767619669802197167112252898647462438706808742467062371067993403047063707624607308039078155531317130717321907568468110816835773899070501655708313078318089489067211391624756899204541806639557999461561385665824237098040694898427201214118126866263185016376910064161479044573446845283742600175199569120065212767743397484804502519416945547324757896597150251746475640138912090282846571588993087249284442134671398354491044082796116853246492505195533739848096760269570157021667148636315938285503124887739785714679573812420078525796551311882774731098345252119271329809020269328103456617964844902257519287643830717234685635046992169504911535961624355914014463795404069820233077237759149176281211197707325860386851161113828004730910570503877714628840411614753737370603021841359470964501320305062125126965318174018953556946780565355657815076066512495404706413080202430379387270109079718605180437884243879368823610536469212755208355314043951070729169794465626035960465303336446692776440213469444714303498476185520259431606650933066050888815750732752715978515996444640101697982885224089929446262063124370714081859443096307114484287743626569912641938528670094252822024806547566820480001121090345182943612265613660988745819483254000522995402693438125284811013367955006982428916550983110568093392826135522333179702014560328468807825915731234861979115340714426415566339512876690111164528182788686272134196451869966632874608702501237984970193210490023778045368711641937784387254698335956527418323306259217435538262007858849721605921316281989770963381198787853062598616084731530942238579148968112950579155793114049139811979519294850203637811750120545873189285097938249572354658085745392890340281813827362173282862049080156711003198342581896044173398943083896847600052041607376183043664220634940266249537691345651205515085666850513078277734592526239750509527611241619073575412675367749601388374297061794535484930946685175476499566913501715397562801328437463065719133948111673041652588930439802314874684000059000268028063069331010225023550518199424789238194939410570316567012478553481141931734327894791185819346685906942210461245658033565178339480087245502759435052843476445073673613343559216097853954924207188609765151916684874829631393384024532969125443725864305503876264536600264455568282995776479640772217428052538965064934236821607831982519940699819535708553517179210268958056316053405882585543104708721001687089422989582163235126146785047027410709081771330638972966976568870462586823630554466090373132615205196196845737568197098521422284526412022952101434960299072688662509180578590429343979215142904522066411999648441482337039958949777027808746355708291829734671088190348737138793857923913280446131538839781224122960510622791034357591409631581952076521375767115165534282546225893153889557311975025025184850735944231007460241331702425120453643039222796527029708604556842329869257667417557882741718993396248711931298829045133601007962565805040801705515305385772631932512706594084203680251472218950941337495152766786489246249886977535001154334718874439962602500267830701111797408355210944481183636225067363562862735777698215100303193586006738300570844386397150921817415140646598005313845705360372676450310744675644965938403375559154667456697018211659272630854518340303152453287413992186382985261876696621974195640304188394686082771848603490618989813834528349085141911721755049619679633444962361277021693371529844758767435189873146938179440161546411125724830330821210218040059854155494657834499175340792393764375353946280089125571715602442776967486608956516941735074476324885113079371601198295061263603332378121402442709184967125543218044103993692552247685990469946727974139054166313664788792374346801694148808033219908237088541893093816210031967516679757241818263327968164161720537589915513484277743330223724750934530545873176669021237391323979783187913747263309227927227633457314246963390528227539794306048755283250009823304305459010248567418544067919182873870731714573538672190131441547204542654687713067871976001004191688180622543917856300560338290773864757649915162337748535158866175467715268116298355332775767028606392384934623837809918276955739143581096452342882655108572839314337333928613119908297913214572008080071296947761030407968066856767480915638053117910444305618144883805231718415559468622998944387297929497848301249349096578189992256613003383312774207638201504730491916071118375862639032923589293006303511122837542581648801196157883157522899219405911886290234820786479130281308894309548251174444803402395053623739289621376840605024785546842534358486683419704814219168810254348178866433256157827450104434710488975076986734690480342599910569011293381282451387702507205814870481169643519281798591905873050122067234550457473772223933451290839729836740305365453775726983273021328970215645139272530422365028094377497910736427487278138732469423734618575424863788341727502389818718088295059023800861058043017762627262250968025130551289077690623932535059447440279698295374042962432663516531587891822056819711325319978418116598511157562750563299554472059683870055865681323344040930133469099078673916870438772397623523247169985711323647567401899112727649684395466268481334063466619267532509570660261454079861020450930958388013974812096838712132057395818831780688482106981896334355258475949432708185433800449056420733376183035898757734729712101721939508012532847298250306673263354584348462926140145132759827325705577977034397219256804578680769399033148096768149078258294117798699489889466226140773835590812822790648880845234146729971587602838131823895421754083547856569183988750727744502878189953457408686399293914656536925604231466774009167998414815032971866987597441639184783595507728197325971377745854591475392359087378984668609083710457568256478685285590755844235000851648516987112520306031992586485221869409799944749410270958255668771944581353369976491929582138019814435836143799874422484669456538649724774209730420528751630734131296083108566748841798799926730979392896240249113892829662798477095135859750664933856733832224916416198916542910151397371809978966258718556703568274238519825377361256204712135434533543827737105861615912177375770324705143051811382172700339434889814270612800928318336549722031056757399618098998434450079633790175568349115920912670380112458672138040654884734329795176380635171218753500571675942886535652941442126740812555826241574081694450434806383830437811127361990032008407027841722785597245286272464180692158356503354291917791806835011529220127564711302310226180924208055849956190647192493113935253758693298962868596212303375337494583452022718950588475647525092646859058420816725795192474671945300327293713060516783800863807454562154723733152492553453922418037222526832678540203494231913109819827174612629779710228166980770720064416807540883577299699935371708635218168928560460436907851480920152177769213502935332077907340805680068726543016911442055944217173329188790854074082505941654521667177930590031842134275002741204932801268788725063424716594903333367547590079001805462908869824462683407018328545442083258784441973472881402263847501594049855375954210397637273562133923665604900639734837069459846778455355649586681591214244591708039826488882849081685293931338646524052483058205565400782324587207826651448168784215677232086399597033204124026944173093965190088481517842298450665187382903586996126127889768860166405910934195624690532048875292684249933790042440304322025743484465444284222400736442656614137256933354271093649127670102941102048918253309548920636210443788555893363716309942410112952139731267097324380607416353942124184971331221989270530602558614411365210716316408527765728483476952921301748545331392657672076624342155776258061833391957879002184164926668741131179647342236561320099046956744280668413389858607300116522820638265173792484042163339092163274144809461489210635788519647758573814042663103677162314920283158456380863556079100481780452743520841257601602587880244119296555650143601354978555713278650823348176914130631106280713889692605390406385135489282235733009728959017923590075276095701976902290314600850848488499735385594109102483241873379813012476325097574289844584111074399806670201423830795689920622169955300535824823082174931352427149767919530713365547238327202982876644146295419457220671740217211439108491848652520765149530070615616334736555611830621417281087183599224254534005876463803878477903857037989161280725303455077909961896517602090878034826932434523995528912472769594888564792393416823280219562455237571168867653418938339164140928933681773436086121735390247583804485037006835060387729148004350311134855193296260085945578523572958790925349419894764471409652018116891156493852275932816900090846567245811628036911925969049459375304494102676778587500369964992158196445120165642103035447467369253828515111248982747005490728263948716811592526904096736036927897681959411529467728422614836870889350774249085132355803101023267507505846608657077126810726652659650152155869902846911530117750808466225802038121372392421843414197826063034247063688732184293879230911808606357472594442554052217567601845222032889806048488953255112260195413429479430216569528290335974420581484888354851845454894122108732661587074357871161611568262298455319775846957986251320865765859962941894834072289090566753718208465498198546133821169951648816923573664262861902660976672383363465010444691185992640330201506740900538582498392049664320291144390912650109214904303920574822174398600067300781217511188657976643764823812104518749270661230621455818979696414137587851033672674541144730519934937672531372805697355339798072292510771764335538600089078622701309419257411359655497919598300469221954466073740871237424275946301842070341829502934632351608395691253525015041360178653068447105764093784344443496177321506610923630597215501967830560754252404738490882329060385027570899924659254052225660847092492307509722366940937566888106737309714755169444751024507693128893890831600976078746748140527921719518446070377205167551215693321040365448963152968262595183585352080019474192746985849741343345413117399210400669552506819194612326998838621019523059596629418717874270501204944015721405026706373828795750122540598994727715883361726334350089523350205165761122203869913825192526754239335649564906183926884008443743781982416160937112050560457795322606901331170790380142507520823303602160219216218131890925339493711659138170834888772633712191715527494398735319482700441330834248173178536530804332948439079802419114172137892398451459084951688351242318817499370701691534164983350319148483553696983564854303939757390453682200701195577552303725850262659739235465437917537438638590237036582544272000593052126818225658706588586017601014690249153797864648418011463409807292623377735451340728140000734692110105147819445288551741938989544205622361472918897937494946072880023373556252934647108570220175245105701847657976697532122691399430228464862962272584433850187680693132745554838223550043711736189592156699154148794547832127899499419154738695378240678792696998739097904920104425664770897614666537946805209408307142601865765442989869964291376521498497125011957337569944584786407770919232871283910409751705059826534380184495262055366991795998525648347514442219737576793298084564282972827247906184721454141522857591107776233561552556823329524075996499670730812006545254634544410499822987799876013350512833346519620131947139468321965406684957491937455326596518282538167947853408128745224313468264442380308629136174810380817583304137991267154340747800413423978039405469823738226598487316324432649627442407305256479936528994893682085799206703897183110203871838064936609452134059961639138191706732284192287311967725591519142699899893198088875784677970426581574111924248556967691483654499715365911795456852055093920506134080173490938241564127388898484546147537610864557598712472934916417809824959509056214701430456352138210575609874601885201360780817679443590632596236940594595615879474465074902560592891446686581496252675135864942121802481265793691422735077127424926775452746188283195375839970374200781333869348559891551600940420691460187623700595717405906281650484610257825178669412343553834675159091029166879369718925442851135891876814916441242441831652564146751672478917641791285576222462269448537312240114280120254178667417724223665651954307373278915916145319354426767459943345458259654368544423342397162858570216447248246586897765191057043008701429688595396460080689840490361011767412367810003616285942824259807958520505012793414084923557425052599717843031218285161871936581145107043195719989938402666369107534111621758779697136888215768583200112513962253446930523654671334804053604920830762316102899130595319344245905773443767192327506101720923285744493412890892229297967394520340795077906732931128455770291417371632303819165992998407938570456700673015534085488010919732325449524423610820738653199526676571850747509893002250318683110212983045590939406735190699868954660411917518087015532411022739043800242926662875910697549207696458485633727336937388852558992628797848220008233636906810070536134798701981648371438978847628136112390939710951018592514978444399701063501872037130343877793253689167525791253390322827947989289365713121973341785420815274554350922080938646375771575182580192224706447527396717551890530651635330089234197693527599727365240333403235098014270063222733332781636807650063505797364900707694862665967266835479801140451796269419356808124886237121772496910383713783551918273413065821729050819702106323551635005276416508390334450584366561240443105811811551124914693160167766508275812111218808733648395592066894016963307521497462986575813387918841758464439126369846697636356732211583744653726560475709406117215737903563870131545030427801091371890342923399910334372232511259122553120015784368883716183821158515523467922355649433275081462890781302351981786701809183300307228433200757320300339564723173572178911400170835498919956203347622152900820442254975830197174157665696151811058872339676730266164054163311576639410043806995184989631928742276052287386228334641389628529773193059538719607863171469788559834029640243511098685508589930907776519004664376238640619993869347644670418108683738951919179173926398906258621287960365691453509594635249192414341852878386129963246149333698771333918081549766596637345763721082943296604018134524951833246880966938014160918489353659840689903290523588753736036262275791612063492039155560575298279299099058319432028710846439331534184862189570014211321330299846095305650494177960755382504157951605891838535558579436492669212124114619266786081940548996677761689123971935793613677660850229896242472316969813026514473899697057485492962371704864420650367130398969430863791420581846518154982914108979591087501077557150287508113714879725753922306804799406712601523701057470786626178825369828171748461059124687839367843939109669454178982835580835205722291189991983868374717119470021447280362041798411043655472218177225667371099423960722261438237508795779157923217751282620517978993113136214938668686069957432560213203840983463707726364061435275639107078149941810571732325152779506108146828595925271403368972022759822246842509349757004720993543470250421018885797420745631380349031677195551397443290972752526862282750382538443798420426494175347453484015961814450809204546122149368342757228584226042527912783472805313660090957998545356036154860799092606033367814850140762761418488370773672446589349197755380572645038392811092816636102667405630146882742508137457029099834510707553235269641872099287615083067373681366891031207053514819612021604951294923945380023004428922695779467780134923711084627859056454930838672937094228682019164371047242312994692739529367403986889453169541789984303605683247386597818081393708050910707019288047642337635125918813782726881798180285849208155510228424399525099942245142579107881662541061138822768852993180448982507515266857845875208358901976363087351773069947639887314885444985124490498334262307374468471143717127654014937725909353533017297290775408594375710022670447721719702785757007479986738101030537638204525354182756884283869458360708943416587462498415105369815474293721503020224349166257713674902021840784640622916590224352516827804611735279790288736873724148838668226895667446534016305235827927249476560940869324025007777792532466848725248518198189190322754587640674066105270210824116156713438905958921588905989968209913810384342968843832960861089915877104342216769192739247914626805756453648357257480278622604856579186658534262305540125796517186245725078828405812054710698084473584129375949120587681580641978935230364282590347292145449663375374419961903549601784812180155840522605372213710092484125444227798223632273800411038846985427034557431537134439456977164687051979283897138129303967693372113894831799618049000799760805156642544772913516651353771332522688038946089415185351509478708719254862417252915992794237373671232516514859204014876087000780522806016246341280420799236569552417563911952719878054744592695941037250209129317752624783126874397002187194755647418068071029929916732508444328952564620622810562898034324554213752211902454595935685150592149507900255454217061466286782159476337032282784330295843302024432944328549903912583993374973179077880935190508857991463450178644062729021108831135600338248657806982203775755289357328156282011916357601457985537240796236467539030908613396159964163671232266236396149510152606760523074391669028686386888352787647003047417738875353191047555996148805738302962686928029338819696128146248866185103953738543698690890232949818149304906114737343698591548006326422361755875008621978320502066329893258518693315083658493257937397724716895844399008350683043754316987446288276538716613566605380404343657061566579741191313894327312617516522124904764325630082244289047915732824274878019156813730301765550371512841482807193849971477982751255882008896603922930121243086925795079329494379450085882518696601639512869859138265746538806160158401850611138058041023093198215358933751695458438212424892564416904185447646770599181998397051278332621695391843744678599015070163503016796764197958799653973303485758330747461832547299089600095728647388974036022469893235484135501333591308726903950043931545107283782651472237017282331883808523466382189805934359634850762569439156148534554077128460352807922016648814355350701721447418870644757037704891701978120434446691871290637020320806498107863726273517640340975718423332224354649114634986856169979386290103035498213060712800887266968432523124148751285689014870555824070404251632382406849852170816240224225145542754136930159741302116007961621634687207162958099562555055500751294298307321134782199549154844020842349801345339066899936904575232053074062900573825794616727008779920433478313062443587570178727250166986211578070862907739084745480436701019292512719532161310873742683469513289378325286261531632331345698346847377616903459086862145279850574503246986331521654101730508492242666903889766073276047897424435289519128666372794088011755173042031597665400199824866713757474418559838625534378938561779039168083299509583116313900910941541401605007566455842753048621242166825596493817198269756978023115469056344246918262009097366431262888539990393997107426269000888041690082356162808609121477425837713879597873749599209392588981459254332614054353235066814125114253577180899209041864540112786703198814937320764426667531503282610890293835813553377340418323991092617876546386424175706816992452724723270334793378359636407484577472171275871223902017824281692299915505228719612647499250270219822413787295094634304792366038082621091047323048159903513785833059851188993726583994280281121893456449907577313793998526236147428665211666408143149595920918974935816293246970590911698567509162355423215369554720755740350266504519291026421385378754395703732250674746310314035200436122504722140987461742012556951942445198800756010651654929778130374147275917410514929586463626796935330098368943850776562626178497455466497376971352972167574483481869305105723470479992105632727778616257507809608369620005017047530822342725909036057852889962844794628803241591395367223857629469048660278858030066871824634429626198071356921179116008953175573894484425781328315924279033598853581937159999849396499765139136844759084217523360677548765705872092370341476384963430217520774441289873316260217979828614229381806224906649500238328910701622327945533467443569291625271245277156358787897311569175694797990766704124609150952207953113243103221138184707032747437886636632377943986326092410824725557497405460927447669236094920926645617790139449747894767454058136228745250725737529519694653644836117700784399426781791890461587026694629582768763567925414833570545613756031527534760505199893783498299161718983042716080333441906867156811874573155239139668369770814491046686508563599160658145746089029540331646025827095367383482892997451028530093783608756982095969829163512736252425626681906199034799505578547617899473591592173531777083045383660415641624346151549345940961964998621727329759646189890139622118301620802762166695969150480786241650234500594213064280570755387901522649552626404947858280885295065673731789474578211105382158033532914091243599462291705876406457042343207138218269918146480520215841827851201580431870021531804113137047753658270973566137867922834252144884663166101998264122237228693484830122688224151609861900417296168057041989126833225697555974296177050444122450259937087400580215102667343493222419242703697004923969164839796245608406006575063703944046118258681699256366600556543538078056676536609002801077526525713289362337015033043804101408579427320709072030490813029552570634367856774404986545051233019849974135049738679043657049011748494471858494179452726645353171285604934348194243470396144155459010278123562869937243721466035810671153499503560976810727885474161901678480975226359645838443226304565589071930123669397944916591707993723485770159089642545566251556856408268467463993355769451630228009928052229310018231214122391228487035059936732232776973669062778473949031872602028122623286472505711490539505194286299613040709494418960292533249138043985055478321242440552453099423785639834254984481858522373176584526908861845583922028874410810425585479511328094394234310344399010679639773699105107997489790860529381119726708076744035620955696472724439210197660857010164204156798122215859777723677314948540764848954305234056650159837441129313607389817058061851010407514798103040328424681107428271292330836934578449965312263073309345566442053644822391514995418714411036116883684801775548231485330322652117575826996309453559075156628850478529559055694383055977124349073319285940087326824878482234046959073270805159305830691667754022348072423486478092875116278008258957964309712896544559865715439533769677678855621385191688031894428508415854245300697243057102229738396979495507695093142085721031332220900276522861977561701429959958753221684280864732030584107037613192149288096942637555179266420590200443782133539220090670565698264571825900327652397056367291386829351531690035782035481933653178189592993154716269721327485641918771773854840379354609767695171959409155529322721705023836241534940403511234247200923128094077209795072070473329349827504326137838142285239532439225680298641368157093667908182182023847946037470422545726821251105196359215187879701141998490644858130123906628547368087347163342596570979881491147556659095963227953807205927523200883611235474419026781239742426836972116320023360267534520115386129437370810921113628816983893581597760144502831908255273150355066437170067236925901657719615228038017581627229749386538251285029679566290363614928848544838315173005871984690066659378778343217503073435629419807792689355110752252327187259460389740478380009467581255269075335346455107701969943725945204066659297382165421361477707596190404864589146183381378556560655236916033798619964691896507099939315882027367516801225906185797162256586962845664075652359893701707495057341736454570537420714729982906051548513240178505222725492620678254045433713207597737727447993636475905605056694367925932030780872645051312533064598994972951194756871002104480937544343013608640369260051822390529048331021882386616318003226965238257646067797373212769118435344800427960875500814787826512720700846383202955984584482698917949427799039814125853202258532115487366029547490173830984960443506595653973760524257046222544922480687804573247431629223085978583671631047013059881026241580457897587615030972711952602276861994927579879766053872695137945398901346404681625508407491987857412399561140359997574771689002003070075466321228061877708217745035958680784501847308374882507016962395521051220108391950186070743801741622977106120541024336718967507459042429581011607469290958873469713596950063275077148186079260105582615284870297119178018287810617476810002491107683534966724159811237194456569249522027971541927816641788022344233471523997023244010645563782329210749981033157796325352806970685125859690308040482787459184049661326422850293795474359056252330960586897066950948386410589881422999108858184065822014240116928503804885957547746454410832384476820852146095431094379023412289272874571080267605456633641518250994473510598922513135382667781412950992955561813102415026392492748652530788419070995246006912638516855126619692530241642985950022453144777172540247614082479373275389639016211370376411015919244151890889912181641825533898244901087902746774805214026787552200119112519310933616138106631329863908112293495968401974675976223476862211243206171779637237579173155331576899341350351994444020003978332970191302062891009407019822938645324950829852982954563298461164197935108139351466499205247347845023575257107555157819325393247026813774822328365139114526624423097417927970231578380886889243373804133453332164247342749860637220769055213785035520190450571058500436832180460861036309811992826530956069832118814421528479920135429815777167107994616115772610865691578056169721936749024451696659135832835810282587733558327815718725331485383622108024617854128124736933362848156778932648760587191442650274831248444285642422912096936187731781524334980589287168626932864929883115902043109037230671191327171670408092822122927345086752303232575301618308832382314651019865129208509706519604185907279029540524987826989788201316152975007450198447127833169476564771859731499788980164633866779328192737089700903093256120995556205796980528426467356216927358996089683776307819704547077509936760492699340874967777290846048022570204647022503915989347592847884806269720635871459058950101988596541672914810524833456331681277076308925228664603978498912097077136155626340216305839560804464390539118393483270622320453640529216449370266559180275367033309148916280504219602317684038589245022693996714536097825926903354786331144642266295922972098078730630721413732067699506720419312147705356299508999134411115326792702570369868784064072391194434902925825697347472383297742096895476428568889813005223249895679811352033851461819308037161570048549763631623446155209788606856515779732796713968525479838300979364993982927510356774511867396139466060586196070885433140203535415928813315541130763286174452543756190504860992795160644576715945016299510725847043344216545931494970820410599907193543168508172286757093162597147548286165918513961333027239865622288355145953218245236078549422404084272160228912292890293831306801429206755408455144233528061555935889815218988302882039498459754414609795609683916494528856494255715725567869606277320291107742920333364122469531583938378356289949108934819517644423763545298230548625592390203746021750458238685235323831809981493925473235465783610464143314501214355284505273208688563775150704374860216959956017235490582840198143089827356124649808725745383533697677795277419984468089167162293528184389672780020713554218396558724561775768177322063158025060533133396699105909938004191991694790152792466896383639308315162141400544297992702383219375150799279568060499696242668925128525291006241900756195865714710673275479141255869260353751860811443005544332256034089590533000712006725859688143826646972333013532787774866792823712710620738450188977534619815542934412185078403547613637329174146851132675371196925660051991268521732267327616366695050945513404356059178099307654032076256419817538045688723870183289348271170368198866374643194336799975699909755987121325060064803406573626049691595965101841452287184097792030350917772930600644352900009417525924917902192737951062730719397205116739889135829425399625487271389908291567029985795967771242986992447464596366573749383597784773910639511367908434039399752216712119077776194223139070749468836410120483130894723880576622913333257453900050331797649285299202691269670923103226918247216067030355839742194830614337062903663439439277611766206870395320492414327480427576372034099750242841107755537826493861017055584572563316446228259264054953191839021512927471193919497212162955271028055433647630992066034815639522344739665909619685773079634943638742253319473800845404946510270135887833985091540300062563887755408082790669656241546101545230472517789131527359581578120560471657059563097772664512551703120847434670453900617297276664071278380405836816378057010835343156304186721317813361771262750256936786829896921911137385794396970266817976881286895246661248153042289071867272779286049214893811306560787967766395213184412005500665912860433258181030480452666444612077179110458323558536725426507826173387918342203067057306420580224422918769677303172599769825263222383967531728472539383461515405908454029792131923239097377308249140669003518768357091751863690321047306950405008532829423273655358210255741265134561762597185298052170274551774618592266030535459767207533790978685748584847580093459636716528294971247099584794608753234530798680689118609711682808643542705608967607947224566768449036624135998731411271813663150871731359614831743929178981113404837199307181051240739256197339815707857569610033729407046946661972897191700797392408921250931432545124054295164831107072518769803320299145381405297007193076555143370418858830611323946833471616294828394701827441942142937227901839766086095450628518253500020188933761049234560194463954455106642081398720592418446463624174461445851841971770545525390916235688870355872174019441268222485545634501144547317306661072021594481347369872661970648734830879691529035424680310231393489287755701759987032873605517334272146133928326055794624858285083700473479041484234160313116187740025827825571821954698580301161619814853021270255321913048722098619343762838574052240240374482406528686387480127695647894138986088021049608639742563230000594177911709532460653139977812117292563596820141184614257584726732977070795525664904206397696706833283487783169421874322606624111862470562576492652268169334041519185312875067494685127618691652594606695102991716641144283827484188281037501327344680475626723602221461746325219880950737589143096221090953996646951566644537729386538245159742922466620021400814392207653234111960642193440833356838489775585300249224833492824533787952249773467781550331277969267572829562307925789425551368031256569908836493644601561636894770773821507645681261303747262518495825127312049524871031688362089196656465466531517832679781915931921890551743840643124393521120207769602752252275603205885960505615060097737561250726778514079480292600195249822946754464603508118110918625930258572597845988138869218725184828297762638224146789302369680123102555967849066842152558884595906713376414541050889255331199602585444945854634907462323367797486834301559378508336654552033355495342299759697582541090178604570461025041144885048412222783462922093964159710955935332276298910331988160436031317602276444222925144945987918503639111548452725718238548862840258115147298421099833895786519725190397456120755997509131130352457233884904074219736041124735337917504134194829222242107973505105687205175133003706984391328817155634234538206464662043497085593546283908299904260290068156367545554634990983235206549483160566973233846165410072028269874285283804340239793208783931440208404127667937985163822977247107842476977693067529531844798725918917308563061837466375935007704722411273330702584037338527987225864413444338375592506403761013856279766588736024538974377825776908050062820032208581738433769576229715736364778036725866799352085078580886815585265362757129393181671611340540729170539544763712810661040682071466458467273152575823448578089812649118414911586159284543390898189891577880470672010616685977988057318505110791499020870933824400851792636756767251455444387736544846285225635877622014318080168974074020308999797305666026947284441926844878382986170700029611714974901190795553725852543074609421381925790178335688384044844007062071533988031029508144171737874884761871484927024151987288616054279934381690909437096490431578328025889095568120330477763961686776290975417986264168767120346712660664428629889963002954208384127486322288546637131604950140915603191135694711677312337147760227427390151940175969765907887169337500201658808121183605771577000907048528053551101728213411876051771017683871407206281178743377224976115430893994941503353287907131590325733258107953801554514811642071304770233687064077463507510208072652819454571425090481059646520235799894347838795930982582518797520092574789982549681074674078001162547973175954534882932896177543352159648087842703548718063292206013580658300791539443476965941338015489175114364241830338200309325583736647162858913836916106741376381728770036326119136254151863103747125480078922432037485793890242798516872111015369767912643744349573257076520329494912824220096847937597929116710311465038919948915063497213311781008302521000273492705071327422229038626685551280350588184278937298637562618713872718346066969649097908379700347211472510241004654852343667050188625117217577296954824479184018753025534910232108714973383069818234559666969562115023363095003353130652439661735800411200165114678624144524784021505594021981620746056113487811857104063755143128865399845376777942654322053865557926310755286222860817717519104308681454576851867209631124414799805869041177020476380427241718515503213584729852859241856025913024725488165102253266874403658245443784558311077585928579915783359747529713646556658915020684141095537956953307038769522974987763892103826266853455381292777765124438462301823996882578696669122020694452999238634316788376030336335766119185319549491861600491033932936518727954509587629434160887784219075776501322739526269055447962663133456953850532126359093700807018631475920805417619910479072331202184826470202432636833416372625262911641870477585707503943214396679178966394276779923300374798654697337116777458935101534048604628737223256509863912933668534375024431544853340889778249373618942509709625476464323591973376686461294400790598377748260391898778768234918172300483217638532279262562528033156842533796408004765301667401035132270793904645971673492994554209181571325288406390780902680372938885080890310161412030382942458890711033530619128876931068429261357328072817842295786368891271700886778730575988577299158777151723574007958889965656045665665787639647798264074875466038985405797181095765430384885321272081897198342055535245960048707374719626308308454550260583986783985275834449087907473805853472958508872908839417731065600675450349524787349434658442766752456820074753367348918124168019560197454361252623873515614988673899532440361147088301498413982364640923846456609715999109575955611711329752740569599416732227001072490863407492232373347896014483775569805263306289702831217379990429951292499493504733889159393429377862839226211831698703709282637975989621148723401624654132576326767216758612039046303455177485479894556761581074704214950333172027279529010282151597203657650863336553484655209365669549543762274134761847316753684289555255332347343803047454195829217289928481686929448666104453647969354047236412452043342014330088072670958084144603986973435406142701645034708515088609354084373133514350516099903862442633033347509348151013048296551979359164617786158906834872896911314399538580645182761504118460656215140608690316959789441486813110764638538878592565715978355425000934261775005933999582262924759785390898311746582915844077884278094788614746978507206633163883065979137637926495647620737265972527256159675189546754809985578552667506395028373922350621745585521525612757777096707379339239795446043521834537150112406923068670825320182322493094973639150567276938464033089486977715760541459146784036067004371454830439279166530723047676432592956468301750144890963489282953241588903145651065899025356973778036532261680644544640894720558651020739760507622328269767716750004490868176489925108367063591087324336483776798982620743606678438593275944848386589731124014130241540670962806403572973119538052479082636121472901836335524874334829301430619661065303721308573416094093550073710164883107836734915038455977864917595533438103651794575197925372217722782167630179204524260050082362659604836552101657723703122968221040777655811967908772786448624622291908764181886089864084926519922415812024756532582983507490495121546176889665072847013418320226697364716734070045489223835519803465780813008991733204479254865430198803247580690354689284931246004556091123260824873683340148820635336222897702693319374701775750569057110297464915087121119804961527296342509802584239310792170856343451085409039632487295287479626574908308027337412552943298986036369606628868282809159875227358473376434455793998920187941844348491099956137214164041577515296317970090333853744503317027701289306493013751345116406695494260454827237921991056107294676595906201675341779853936169369572296098481660943696825702241843547627135793143519399794654430228224345835816469356307782682083884266996762756608993677622351712516502115181974462442392127634306483605411773724267888929634280506164532120020316455249374227914134222322338414907119572698093263561575349381959511305676574811245798336614275201235431239094133362808535409337616467094182937767544807915447090266952842885234064169568267529490694994547648822315197990006983294806494877603603701720872138893379450907193336892970393894388373802239654498134511104271829836545343637602985074340169913194688297617661004590461133401780619738291715683287310099097373883965935967136369692660510036365048662133291549765056867365112993671488261985347288624590702263700004480356845096743793922756519402185180290245794833473849100253352766448794857094156765683521923098267057779666160716285474589520055230453481845953668452132246492712841248175730017121637003484075179420705818591044926378830973177889377691588899172548705193064645938736427511827858342583290124213998804743516589077675492793117766083381004800105138800746278067807338720363376850741915796677917327898405019920063529945820229013109474719517928415754894003067665971622992862923800435615675761976621780307754607541208307980939142058586322532664015170632482909458655962404759126449158833316147139311933402828350498705930126382270124345563573700598328405536445884370524974942049363460202834976250122067176414361193450779610134139245609340033348406496749818050552691683256558743862064118666600729461867504612823004791204994601334224152542614645693377704549655206315201065182574062727187693066209095527467982345242305978125978172147351007564866796403084093236231804362979450824333650589829751596856527446797918542191183935243607441458189134669137072407676497246419159543093524402761199954329723927325361365896171336452013205419788159341766860022043320967214571365673507661132591851834314542870017768705458155504082461594174227608077343473294473657925414445039650476468632494256051740122076257648337711274700025731204464844917220625355981682355872660087159931842794213724746868121346907828431271642325205826146930006851096328197654270423918046349119478160610435590520072847733916118417598466335871679611360941090671932947910581098705179425590408412329021375637864882318986659249657617282213082192770803766045190325193894615456902023191718359407509504168647214088751783129025130307162626305004877979014989162713294108825254423637586846922926748003717524983010246418920710516417131775401548256727891611540236518938591280900403077445746115618631340628916420878953949122578834509194260209256975988715262329516192572809975956832476133559155459414889607030057694236377578712585423464823128260421022301441891175935512376746285547707156116962743548686041908851114083165209713422491045386255722968186459695177933192038125913692278101990975908429424289772141014904996933278430418477517568360903262023349625679706799982841922026070792097633672133350912943136764171848703189985622776536298183697564880690798342877614330056230993801931678521231227264134110987236554977936280252829001467589049883676061314169543468922048666096586604284832072400936212810551961544718063001566952614678481747059685249066268240229234057906081961471182221661624316140872348146766836229289116085218232211967062594600475211218762614254663493893904667278327545040913842095739732356331708404286135323184243679171852247985248714719497318558068739717608725802014706631885068896721274860944847876426088695895232591184131995902935650970446959154861500995962488079563120899631289952069554468877855216837559163331208672193115359031124512131427575401295271633612044916347770146111341764223513707410026363699578296718297741629794133466545178487465518204359202122770055419095432034574331290897762319746374459331204263272600564876376119496581246270786536766910269447630224720435869951325543099624399191678899610073589256007345071271173891905315818763544999903511077104868022871611329822569677510041389388425380504813365374252710658910857649711063282045020428387259536223088417174552984877414825500833633555698995076610545213483579158875045946683503874941438017986295404829272303190376794550171967239959571337269704047575034924865707452963906386880648311257193894760207760620304336105527511163717305234952021463134184543858865183531140581328949245435298132806725032403473265833716820306342784256717818737055751606302618172404235465421955656951742315392320836710362910885868230056525096747372292704219871997447115120792559956648494911367477633806764346340328384503281893019291135565471868256267951573399623957743584782931039123755974152593624796187567564817646486694939125733538731064568340522689468442529877214890630455061109665750439538928851265414371548602697964045156315101749960273019194521211201538864905223698306857450968695638503881226632742335255687723126040883835463765913345679954543966276868373916397145858478902724619425193759130491423927106769743141453567115305514283140302747737229508200530408268861156208707878552371871847856425859655789687578280044781085578770111302828458513590151211147919354580988197651978483007212721747758900927795622484566605094016992601091733717342070827320280561681015036153287569887052742458460787197916006537107091290718947911837486495489229423881121522233697803991391621562622979016000108788508829037831354511936494959197382333453621727065497551689774343599680728776088334860482942831466906914762403058000797520266566170199817688442990583038396905874780622483536864236725949842177957987046731327228265687249534761607123235506093554438679021144468739078353849871354042770401607055114558089939487547448196888987604503021049545489846703760638724757801813360015515820080637108659962495951718675753687662979349302152078367137884070869610110010080539641563561652877340063729838761045760049133996550294189390458880266307022737158192512869883149488715717956519123349650354049401202562496642985161576788665876956259931259763589722427524859844381909417485874521772367130369848072913127201841417897222716769167538163753922160274312990334872039049392462925980949560208036748658978889685321871595148403721959398124556543660487811197656674366998273229256854701904684077646077280139248976052494581559291518252950357299466041388162996711905232069794772283771911600666226739757943156358791399008280960213759987594779374894995568847229840007072889354571608920671853161086360371269462232205020722956965425766055835716006228622244502522075015339909337009353081345449652060423124232296582951421446099542580885173490455194016832503370089449845691057047968311908594829247258760582035279507673966634311271097883694816186430566168898336263473613777571481234933184343339204631147536990043614035286891425277895122512267323230665158463422035220328012426457984259473129215944702714036162973608520732018191465218913160854741948910389705271427225021312915400302888749483617442329151797941458703543533999332683154735021097795661919576741208439191561290620375834633318899394619602681278889984598538626104631091292262053591010734854491375755528807902679702504645770320406755870348040139454550572652709757401308364698522065215846606686224067112120273493284224592094438408788496137428833197946769509262121679585344647524523421759250159447858328651821078422501926290398071481060293239544561828428823642873213140560057217719613919381569255570259188243536067687270854969480759425892250717803985355676693406549672190314856999139332606367710121372687036184315642250921554221558697013727129894333565925444581522252455090415325819362970790379682235158622814178541641827754273986565219808196423166657435597178209221229056873201189650435188792279499974256590913260406575737730439861821945533333047127931389207625003298870605271869953816939717842832607562695535080512889437684445149676244620846685873130103052979469107142204275063677964638644366264043878224005563795853535375429092830327848056811509305767879781559585995163541214297688409336502141405568855023577704392288416763136724770664359229001116919055903616769100764576854112618685752169330188277991329847396454599384705587888526668061414897739225887906672577883421410248330480322050072636696677474365674642692626261878304010632249594033807164301383577742001958301675170248042771113602170846725446209233583518339778164326109876546746631082648136927454926633815844828389007921175678552132608631716166965647186653726496172613480960093886478188627850618640747617514027507901376375146789411437445283997821912833193782139860666858923452580901311967597045477048043953244220669258686679649572729235709400096933154539512029304588850124198583835162128978738350891810232278497931200390158489778154779992677009175295284768290993420024786609004510657473910421897242382278892812553569028360548296658476219179758759385992468042720843169264716610099050642628191431675645171227094610739479250599851670054355612840741970476882596256583977156924104423358045366815269617681959755254786758681290769984948218847046563149527946639592220936277148689599249750081310179335716668799250983887924025021923619551031241526716144683964496435812573432833623873785553314688733447183985841826164131733833802732659152195390683585859472240543727766096282003345279938576405087831468146570623545239419975109005833179423504524130058136361629936873742491386220777093548649672786203866396811611126663405776877908376673261072655975636788667003852129158622059799075185901192900068101831661610028228370506395962317034147756536461550696889767256333575852529777186017013228381121095764139060523205588513173450815384527931380255307802646393411778925994873724546553510816227399222853933342211241459198290269624519090116668562713478763691534251775133369817903342636601992962607945260257217460085253359733399063339895166269042798372858231182717213118479800490281996378874924526453404540607129813972453566889225006305599395895911032629921833630954270973430213194195675917769008161214923299837149926386772100926606952340661409560827257768810878568996707047954636637403784819862760431507805156763873288840962324250063368887386274048792537044707895397090894246760961177134806802194784738757504823064176657200813720543135179459033414673643487919374439749263911825665529986518125271125980136389967002759309765580411018709388360836825268975778412254024549105820692896337861390538659506177356559435107326799511374939000255687518182226189243928939491142481424225522992243134331416556780630236857546315702919103114389142470102040247898919112719020942578196561132243486396514826379768149241962417508946420374019120720970395045202484519960220699421350283441937741798327632254665597744971317251015173256117212104583968700543563129648383500180942833269938093248632975649344756213641073923070285521868101951565057557580132420796648733270297868449450500834630640251122588292930488116957051829947031782531258010933052522424994631870359398446301194742671029553810110078519793904524800008153886504159723806818168250579413114964856892526940806778474534953431309907629828130660784101056514185731994504510792703167407402590858928962988639255095072653410002246972845795349394822481664232509989781510766584385426413631181441341512228087422837834317883279376093732324006909751534358901814485569973335588911438660452128755463605759416453178289356820004392171641509351312585631797928916584366916372041604453571474905219045373852843336774590735419122403442317680329438682440689595563833610763195097800617618286386435477867940266050604058627086088238465011225750132909362160308536698373119000361460837393717738863201098544108874293414835514689819663034804283585025488263445779925195419841061581297299569831252088132658125988889202533879662294579509066150761469155102265065149888734238559119762506618436894137084539782551847707927679785091320528602445397478471205489601658424569172850942414995081349267908421980182717823440695724932720195455895649822084322710329221265378828286407926531253466318896342034314240430198618704241433437176415047761144843660010155732129805567558911908753484404106346481519856918246395966151651926102340152755684154245102652531640482195580243707477670604732750279281971910270935892003101919394062082736281772549560120223193259187507434931324631065014427313466255922921178814304066607096327071227085060819123960510929826180487742583519332154078956170332298658349130995893780629927325859004649658521651899523681811631855653895032470353068682920703025471716456235022060085371886884567119740454356595514590386057270876902279347182761328550704823598479204721001168967748188803661576565318049821775481962551312524293598910524620867485558846201130630989569349230601424349822228234571341668923360392321877355179230688488733180057629218218461966552035926792463531393519709968060177372084252746424712099361581813442043570197748441816493851340411794647331127365234594311378781277628760636732580656668077924852040018811702708839663106734027928741819530350231234853707497599671780953263777152857694250347699566429237842237019521575168418485923602953119457964907578084272933924857953146864768566818461994846045851145866001721441808758741962257751466111119343605732889080070132809955641585166340310044603935398444816110551215004659584967546316251663270703499903267760983176314262679432178962570554594595519227475651340155960980948872248193101269830296301891389360040735073848579722956276533093300775862017555553482712580871826849105198245737816706069237241751032723627492132861877452256043190620778611387115387650443637122933513833374830402551719349093638605888255221176842246558061401109437434693419738819839986418335554587158819619544988193219240908826686976462627703402321907742776322185974347492828748105816404068104634060936688321858055334699161456833408417201479542273053899401330077386682579987713042075588554186943481344955226993925385150152132380066937375482034619607663165491120361151826687265602969092816791989607204063574484214884554094197685473729814908189847383011796342653761580182104327035036440128252780904114515555117145528236695238786917400805057755435043981470911733550485500938367780911332438956788009147593204380802426031683668731959390872844322021009678574692177828533490875522373781325025017833697530222064229451118867710831071027219965404697163473721494570099071805093751121028530663259105836653319841175678107898672472119726218460728440125048210625945044788394452570196307968382514794065797620903654847121380807785380769731528913409921697523931347273222550230304880245647027122126372273238909335176148739478941789720680028826509538054134089936694794243983711240670298803786146574066753121342350051338247247799741075644446298741982073842197734612868432496651235119701598261900345431970383380307972458755754003056545796581124881422258375742514375672233864516181241830177213086294028483294882316695381221124539820698989768490087793890918782025612202750876771406314566138820949353635674904800982246576493707282432578055737426093078542031472544104685692842638005913476477954992059146492566893423980495999348336258704598005976197401295572095915465901446010725694920234173942975883289065772176215160950596922353762025962175564153288271302022610247608389925656812843297804049349452395149091602025707134026457099273605242828306199542798463795926590481202480819656619873215140505438527561508577398867765105417526844422978097485546414687765351326268505186344910738432698577999379475390183520614095553394250240855563257548717703289482385891667655664416631740806886775643850604087523906193822915978771274770512553163384760526614570657979486139870929852677962435445415545800960227216854204073722489434412610969681236726790355858362440302519007956640512986701948259116993917616176801116400578877140451101892304897065645343350106175125075831268151301484997188639052363335687809468395531332594416635536790493290147535903110202501852155237397110406636258402561551353438712491966134311448381894994663318759809279290253594615177646265248182682652583478105579986549680703639724572878057142294699558216255963109945959004246425647975114625508895180914451112077345472070636981518434507252338226301964891453845752034491819144097520188750461022843053515744002210234301733020156332137509269339469744801376520853882417536915867019440776920730006055467496570179891532582843571957563196217733161345183625394956440425328095212107696094026290349202470573439665322369898019583408619250029864839522947603389842577262583067488477303940170214540795897122440999798671616634469170331946442744050860552526304214674047940297510661791918048734681119452283964858053503226098092406491464121264424439488913713628502749845670523587657023275672141931889683749565082035001081012300433341509131672979409395174444317432934737807327140663993542226576486213104290404335047993867212070174676381618040688907948587216414514100994513971160373746691808830954374204678273027564768063167361187646720371303634043646024299264940579095735230848545989376075228807906865941137054054306990904074577208084804268331457256569560273610735357262221064109820301862115323229655743681172327329088658783110752099024650967838108205395461979157745951543932639848558915412588667046046746965314042136339227574178164339696025855248843314614091335800259658353031815540628105542790257563421885320652515065576481992333376548636987541920182047550303925371130997650814845970205116774493100469160156442667245357473652272872758038587931939064717204923324406295000230362239830315482377856437786968314294574507034128774075022325223002854855540374944064492416218886286730702734894366821436710465543113893823686539425558501203302387709679409460154377317802406625266945188316090435672636537199436010280044106261335136064500325997846844889095972120219295403664338083600344212395176308052997556001790835281237208077620622201586112524134622835651985937780948871727524617036689540727255750746942081769678841578252251297540914512172434001459496072203004798061451572300339423920956857218389419663022652059824970305141383275307772254747377541470107292185555069960960754974227298314703070106141131580732144534523793301692246975468792544788773695566414645878940017498896569207778735021542879739388388061927436687537436493397251387370100276505809765544385652016009770462778789002205543106760132866924682239470794531646419574840603978919024176348285057206543538182873293521539566090857086542109622754894014518737605860946960701084003587907887671361705760163608485007797339526237788899566344367258335368466328274060705042295160059981231401720406863220621379777628643127322618732520662897031572195994464275356186296178204296760537563270925590834353516147105605393647349091443778757195963942771711092016112400973809763558995821086279919634411827833010660140405924383911331985424767235307651407236870324892869395924168695082921670450828117445279332894909542191817937557709790075437538714466868558512286321103823469897029726312970618157883613510471173474892113847545102485030165077869290476526198425148089018865615860673184639852514407060867591881426383708832571743055349357051733928490700348203746549076828839953245179987709809851891504837661390454963369017505662992051287375182528981813162447733934112830328740273494359810549880734010213016021536883766820957968087696462913481451935841093296598843952074929013109449811818026103917898542770882130104532011928809504349989180343434496588328325911770358731380320581849050585729099535532858718486882062860867436388179906110317214775537321013067067785917076627145029403566885774787281007016887464683060194904735552560622865234564588796447538866072549189317022530528593442704183359374261435767500518805557992214134091167130511739105333494773153431566062417681794595010480382435476119083969680481808005694656358884354873492161554867500101757481911674250647937040986181160013108260712903213107072649625976041362496328873880066964430407115757757505484144389068767939148568462930882206643320626547518849350098230543863125855207808867824204356622314568914929118132586873493409982290063361173938417876308767222217725322046617603736082591813069739206285316104249132266436940890383487675748391719331928759863128396962672177112151685915619401755228416492641333244699250255203554841771084809230154972199949184514121769075243682106055303379799736789500463547806066739383610245177508119155409666125747443848231022957135358332367101848562233396132694299486112000709930500477171915268236561771266415180653962254144985112725317295156462023979898161003307452347177478498577155174185310387432415763489011172410650478353192155379332733840208663686347846354685751355073691760815277132813352711228272076772529555168872881637962479832274093062039429102551737849440486694365059396670563841922457939973148977670039157098835783044323058960451800388115162461121223653587429508458635620969749045844298090323550958891236138353620639319350463080739483233000349140779882733936932603657600023218174029491861416623731944361450929714616507615769705898275219632402949147061850611228447448154948748133327714136951881569531166787517996768269156595983152173051182070594590776404238220381727725390185898020258021445846866754378961783277774153604839724047792738633263692114167081814717250272881519009009791977661861990895793220588880795327948553341677507837472453340926553812254807374274378989620995076663329419079955997222508629377642100854429696138244091220253269387186443863843932498770987475307608874813619758801250569816882611855703706529682585354228735013381402147879573058889674463807746078998756055859794771970230261622029559285160021739611298392399249861269379476155813969184708351352640408169711336788316298324525087269723473406171965316007366168871164639693956999088530304421476607693730158130067606906353655771749071536559111311093890783668428793547215265300902736865965223021047969598354599816376054728985577826123160881998516199276716348626704111700386091482389485296693805615189843267991059133668282013749411450966840883449137567784433331970444435136951497299645317276514313209633197790939086595797476021407265825536314753110604437481711832498896152106363289625610503365707650730491665614184035607329397301948539657570999309616528551317368702864009526921297385803825495795166723499460496814620339011185036891760575164073109013380600781154933364132694129489067026109364165312937494494245414543297683726753891352885855277848136205104380143942903335405293470294050398164597983677365212994475627679153374609544305446210267446946311107226776164532548250544150796799497217334398335928641795724153504217977119822639730076192627183645085658178447097899256414984053483490058348239190479153705441275596750141933419962368932551649887541273050841204010604420388481848610441980939353042908957833629612707173760048130358476196389847447623484793342861308799757112196525284921881181425313538571418505762820294532087058488154866124112014341540895251935791264181374268592845835816281280873071058402665864122699322807968608151346769450013450121766289317728938387254736725699384020244398919042506393805039899456394479746644878082009182132279352097768113780170303186961884232224813015800439170550398047975761495149952148153406618389826573944844238502186791578621113766788978692651573356039079203814102301752329571470218208333472755699642225109821826195137398552612005100568333868226070693640238102586924581273112338141188143648057957571948778457999120810502649325022381246879007508496402381451846846109635022682549647428884645580577105576853661894939802543285518377144088876252132231686846154200324988047105752292024172899898095475378639590308721997933232872046481808764948673418787969816952501827089733409017316682698410591950866051601637518989702949119738384636887083624576261243291367565852750405813905927313686453804233580423905223677737421721604181991872056683164768834667918120320151911498553276848486453434328864610134859193306950490360170135922709449611830808881544264506280460761836060786727278381874180209559572422823116806534513664180534291771942746075554751772165436603005793644874227445488461500997766744381217930075391585752933476148565985025088380673302625170563658796315956904086334761702221195844753731756336826099463265657828893646136588487927552617127339119305271227456892831024390479552911758153519946840031729222273963363671770519011050133083455590736920366320944020254405476433307364621268363299497283830162427868252111022524221059609916302476455865602371505175100529654715552592962314038677259401577018305396225279480334723240588223264710632966801020408824732294180476837217153799175785938651515901346143325456217112010059964851515368262021438985784727158803055945153209542438487674620226279760781403267290165174782821860222390003322888334159719363526346126356437459815461414749556518986537498460514875473240022481041961414449162839305171314778874833262225591302667817665565919676969632970621214988521951267209484465901776777949842306867748628419427887379460357927437155857379916969876634340275488612203623306280540328357594337499871913131300288031352430005947277590282973840543993476897890617435744156442672570940748094803094248908321201539665257540622693674025513210973049825160826727824599892949878053612578559569190350782707178175438355256237566178132128542678067945314194930755627941479977248650821794160212875905138897394529583128591414827531099443920295681190709535611512068763421760621652231846364811834098443995460817422819525079084045720832336673006113359571706132108881100907633861760639897316329763272291284147687613147731285495848491558913797681748125084092794966871943791178467098072518365359211069881368324274910071070865760916176361936807898055488770641808788533225096875587569903429720974739316098856883729606543672984221539662949728228312750446558728730574280497285529258936798874827401347931209887329770162299904003864063186259991662980783403910361540807758939769146169501634806730418100341931365378598665542495758250055455616582468825821676039808536892644135770594735556033281186200472311347442331354238295048233775121717038871018452373173240044114338741321572270585368887766091403912408506867260000744817238057752113809903893719438030747771080346107208114670128277024265034605842219935971366834533431249764985606259729771263176582909558890740100057690494513542263942950651639271218201810974999544182286500379919092065155778438756287902556728271846530120248952769994666513078850061191763136366427262791203029999457955381714617675300161308272341932755387005701293797927223561065746010595476066829985517943094963212964420043306122846989336498671334987665088610815025257959886358977838307074020936831352200813231593691984039568213785796209601326942749158671544128055896009123756383187405316335075159105525931831527978328662083311892948402243428700250516346942552671196094972738119398663928950489955233719933340582577683232222326724547225704925238413111244205674817654758356722689952743416080983075850067166704385721152390572459242148444842431402291884013415370528749901228259123855314463413725079113749202029379407067546676461635998647888055145087475165156353633362659762248139469200767733334150431390908145420641653825192916320185390541932535039183220218782225900030298984945845136995123753162245299531805450899875074574486435408305638741460296024507495143527902530875238114921221914557593257683715858519738375039166342972162300352122533073393240760852611152292834198976588656286160729735722340102938824372076085441536788865903575869867983953640265291952050127188709911333833267201396580668346481356821122297007916625816497168835248169150908405181833036938225032363913420798400700596013526908123237194303068351466943730180808635997087950025704364717275829503295211309293962986987497245250931680772130711404829165665825753346556357574799400518956276144063352353375320114567481136442891929444675855003126735555571963819961059825161706317401971900782001487589095454285039681149160415719339590482500152226318533751154295581334446009080522381643843749082318728627669697221822206324452660838208725294273949368535624306196135439120781584993832806433933734798633444913632114910154668355886948003296955960187456085603867135267910376562452949161419732577291331837320649549154155605863051521955923331622469604973504859805777910525311416539651166136688034558165641133340615596204053552052362898122532080226914922109676801182645804734194728548379556973642173208373490799171472722524097646912230081462092820319231030637072981391947653370745775954496841590704341235841303767142435297608839908084388830744073037280045270106782770534779147173739154722276157345865323363913299190026159841213233659256796114531334372886806739299973288366106980456100067778679869691146849687359038635228003316244973932697158566862669833717026486657451376713381569530179035314893699963966293429033771257414976071926836903836435076740513399346538362989202476557979182781019932572510633377128049309453083399168599705828386803512069061341089222408186984062850581468321338520707869513811639699630329760862822610696300950142845810853422458138308240035304508377192661005228667397787795517514274871858937006120709914818482358897105769956846570656069162871547657728274249228079031377810944663516315359365595906005817528428532263167030435368341157128530323768641666335107895652035523321044572857530505996971194346789212193831392542496063175631323194533559819508861057381309941899311379936332136173514020135466469687360447673469448582098164713203299644728383463226491010633904254729029931000561217503442073133666457568764757426234629271546443202828382659415361815811014429700484784183847470210329518512626299800376575262505353134148889415655011646827396015542685474875111709973174682628345856491398784302023495598108428308133141996992556631393299847029381633335739118954985542448639830970726878912228554758354124825090591345716709557631841958806386369110632453735957694774594725234377179987885208558651154285324346906601687429149158540847959175652051170914574194261569128190380234710691942148070823309655685040123544853602411310464325006229052092720212266415044036650331032149481352206794929554998270182392026972749230335014515617860550028299975672531046015911444154937013438877574182070188770784600705381175592166955076109359778264129484592595794322061036089697023815672983801695200763883394943376890446259453158240641602809673600480469205676390486553277847651085084854104966277456220567519235506012927066131460450823878280422676034919115610487013145182116066986552401689154044879849500017530299391674925587961594526325318717282317095632125926025385504684629011671119755141619424789911808182248169235878172116116733623497326593132317284593187385638878830635718301456759248619341695735958702299980985512606978663123391044921764000155426384362450279304476289094094235759312534846519109254118042684468744692575501882375711285190281018528379146354591843593545242592209130173723621312680618790408848469931758943060997992007668668936198229150239398615397755558397954195681379511719931396543444755467412833745840606935400707871459130023537717868375503591358382762340373014373994556402331019889174519514307283157693466960758779896359060523449087795206233199404138460126387908000978882751359962501780643909801077425694412405616075337343653906504988080827064807674337882581800670612102545642607654047437564993670718616815578815020299441716912465742829163922206588557313506272319008487178705721696225709900400401246397741646958901513893323690018365093137880847747317888126409921611150624150667438917340537142283608262602679511091448750621499428871673174894387242840518602004751373075221148056268856054958103553898322124320465873957633719297521500089111161713408078665580120316176539998205905838035367890215143158607259739165065990139357755124517703822486496474482070622573442212038431839289272583013893222850387006791481315916337133044023043164775613106976550799618324289814917299087111110753248337564947462018524860431796553854823538978997317592462659352274312212766940982231760131068553021761549233814610727663924093884387067754670384108932960365732735251066355118127774863579405045244012162761449314955174355403368750135401233208153055623510179718816357883892946771140195657956427485233820975449841002960712866801352991939729850431327825040822164605436917464589512487593235948964894981961122427730065406836263717242289004211912463950426968360723379469640492206498964026943609168930608827770228861141481214593153695287089384273284637002539685520194148071280045820528180087417873514262821723506439833984646180225821365789774599721617455682851511744767611982640341161723002148772846607068622414681340173693199737037167569694805477766231971668296090993544516738560941595931128879081170580148642030627989755511379383209680392998057612094246636744688526303929830505818896699233950320121117367512642239129689445217361952408012580743295111629353132586424067402680050959149415293510171677551782999966154008440675304953377066148307882902385365901637900817265002267441197191445142456301993419810618445983212075617555255463667297231209392855008265398812863175106449303157530200874288734571965216749061459486813684738518041343362795920206741170160866146192377731298920929590652532986159886129528320051769010951412580496676194392180343709501562386749691360418497774218702917438936705780418093263379180888777956459388059363891849072258894840824898825493657094379614601964575725246335064552769895355265838989026454332234946081788840890462420434586657924251171363636030746603577140339689205824108100021227665454861118176195985241722649868220145954837311160475389183084021734943815845201973018964062148424185978734899918653885899084938389328444699870892392004210796895803321944874714024815797529052493613697764965593062948111856571584545885017385136335184200496598269903408585029139368341815466236934392739507665743902516166295746957736627600695105669661115463994019029880370096805821952536095728159051753548729099614008852429490825014456771040055600263898713601976171043784674866814222653042796070920809745756595968439699042892975753269549065965707010709656585444570909228774009928080667799204125933146655185385162326869655922506891013499918099496930693960190346509011807240610903351491459445669435591886632393216979203915146745028161667268425884717251235751176175584616896054615837757084738740546304736360870618833828733255258895946955332507420274810241160489336175862493106753070347283796648921947324591873221546291844784088362930338764250694008143163048023397140432885145369413672094124125807185273712120343413545193507689241108825588716726982983417356642788579152563028948048465167475657032039944341813936667909891142759122525501017013701804163794071001389882622313997241704492316337910083818394327619165390206851608363610757711349602340817544576590282708677118723566573289068158960726195886394088287784793199800874295939856360960026153760471236919769209686919029696651870217091484188786465870343159533358519869655023281067818201538667927052937719262847728611976893168271915002950293938380729481183676460420946651212338834871978644698619220311938127631798078616255886629267013800164590655521906670526259683559475301687681210286661953857424557667005383178547809664020609310510651238106041133406142622667429766317005249783559761278613145790473050524390333445483457429625241970266042079585327764664601239657446607262635269066570241606061488712883781649705163015497969373701550437728880561770348406754114515815981337921100722830760262787575327069270658589541778960154419892140957345004086188305436188853017837657726305651735241258251290397507686402173701922229090060102374308980561013147110323577032987217076552320560461475700368788130464762735790082339405153005950919901806042335516717709889392624557929200879988653656074376727105260402085811974125320781590365504086367220642521808604252682600825601846648769154645128992186071052648625321397402820564862408257073946136217117836214832942136731882589099135683079700682521404354561268851315281178661300521419449041094762665937194119656147957575080740419228748563346819973959714832974281081436921336920024575780993701474607873844828111226816075736600246449394081005540715924954931199940314394981575751780213670999854417665467340629640339933408932468797367500520273997594527605701483394987133563035909666209008281266604566424112413851815278291193729448627239974289051843227517749591829731480158622967970787449766991051670402535618386537171607463676129090840342467167409026860853915320271586216462150081390386867521989342372171648182326853104877092119054667253452904098348685742023811869441230001035981256292096729917079904941978552236866460117396672881488521506183879851126477868158310508837632567060354224616849180675455026286516001238754275785118383066457721137107409138086514379800362400163133878247138875190163393543967670143460860913209126297160530664767257310567425024555777169177617224079569017004354906370183626156190672945932180091146221832132883725370358248850797453152132960650229289497669457207555708631808836084010264086699823464076297364611053285610800156950722410956857673901529897076056031079243277309875574135372927079927408151206722565881464820230532093952668318140400281542259609280041441631421380720042611917176644219649626483241989754832432600982999144481764566868505501280141878852849148651235072173399534302721329922715055192372068399250090205240444720370541209248622090584169239759974733164005993258027972273351960512815703286305293293389236185298167848528331232207601894266053599220916117383322404865381968952461118093836865187869358426714411142429675908286993560256137180790026858875729180920247665190508641170159254608475882043414942258075073344174794178641312836238265722542668391864674585378188406166838571348119902535231858565031012613000403906433394460695254072705781414722366536283291727889503340822547299665929604740363099732555540013940330827080412601670423512845803315344181545882344274203162780555087349856862267175751391454672559845702945342404576841598974612956904469191007023531135960100662333612667559567032469563370281303206483501008119641314052249541231866637429184021904948377046813005383827494540266975069334502851809155131409178691496147331030044800900757236424212081497247899679977532674770607659735222607323125417142016800766498236783471533548741673557746839331690283557759636942751160031800518115422354057237633096607795892663821509746610690306318867198092575874822395469139138398838637183581673896163848897117942201560142943935051824186738250879645297172480352297970194703691604180210658640706383214387104052292500981498723661609296493933886788678608043411186266795832526646364619429084661176254028253671581782342647509921431048223583782476041095860838705957283724175045422918845099495506214267191158620142011073279171704362147318844931893896171080604802918960432467472095407567664660622389741643930405778689810604431065533167717459103388714956251834894233577568915713472703683738025511655466919344268310539042328933426968292466998589152190770931530830075131021842242158777777418614097628077979925993244543735722451750382853357227203532387285354888189981936950101329194274913928145060551764152209287858506308486861346210703332616969972288778829276157822127836597968007521739835046788105343968655242305451510621024597526511990687722463337152475979482479658917505158443014063491543705423962423691726186462610289014534349288834200720549996896144071758568561094785024731038715298761135048672946698531863004102473586986653351392289073444370653374451465417877520771711079427963059441814429218691643642417838575606449697181703910254841763891469506431010759442017631263006212708469886833563409696660934174864421529605104937000973964076611386890815527866849351264164646706212250272176744042048032916147949181836424441627590690697633418489886666098655285983196568283700918800564606012897138034065039719432911832253782292701768420200308384344395934293242140590327743644500542798269005516270783583894834335682194007790852843203586942170670248045110782852917681304846633257606846462289406663852710109285484674654644850681431507508429824489269487326769038317161692175210583257539142681733163004091795411867934427053558435505765620213454707087944334034849196395756957271430383131014018287895177070980645085039468919038932347318667351695615919206346138942244949064528014922608991838475025123845560644579123226632498028228852934904009856139805918215184893657527214128266707086498789795967675018900467511104730326407207689971182775676682986554221087799662126605194862992453573946781669428533111204253353146892978417669704783884182622726259591159547894728313037059422923100900202804342849450909330339712881914330694596762711376799815879384900421996777608105980612322655093403068065460935857930428801114686886468039758300437457804098173421262545272912776791675473177933712251205282221048432822090835360243433473908220521790680040268654098929805061144990231938223163381207445621856981949544280244337731410418375892696087494854819181619057426717116546399768736432293052421812410580425182472768823672943579997057225487048351251629787247641819364587594000064417308315541388832948855113902041521918016691082950722961736654480689884476537326364682861502539355557709764157625960677695109592389329129115995266797760272530373855033579698094725300192255429726577095849783024701956117303514324844977215885473125478039130345322781395545966717185336314321996483902660594293934466034400477001009563095115737659089502374800416192061026412234700036048580235802170943587490162753756406939416163003660384803554790239795964506379289201483090153222307816644086806241681689848025406736537337155755187036033080754443629709883808782699191295034019709570095729964791444510769576373593177921985925592737402831262182572204356466438778279018313173792392001773904421506497283510547767527071546942260644994618781538615068736221537873085337966606419608500202014762724707858483020076237485390515208808146963210405873610976362463389774148450491687625229587737522278734374825313795783946324955287205875473028208728354596733222264105062103026640093338960958775926137817238706398079909135675861138364522808091791059907656863855398892751620468870132167205188266216190902511180059886724619977530512185561362901283302591703821369818073916955167596957181105596161609326951991823355738533031032669834231686213001921956325766820812003638435394195926846980770267368040085090064236536669505842772751045392123554036302159623528211336651905508914615245202769571698673048065225202856136425289186805494409603942006930239814562917716796998859760631854366817837205800367227487653302934968881317449391915027418815631035386907898663070852437691261294697086248221304463713780396220036647866371645787170625529148127665405636753503473250757826011566883926264046952968395062424648077126298951971200880987843549629990464597758947370454468809498833134273614500761241473605658587224209377910970051275221470589874840940910527823368713483932267829244077710067774024701260667154281523612120713232648207971035480526609297122693994122164235699277976164809622553838182646636505517566447527032155559964358052180281845544641330562077918572639492246560297869676384458343725198422739849247364245553925420365889310314420724111583924506616612992652945216387974202967245520376737914442077415473080439218392420039196366326146858052357507627072988559660796331231980735232619403537679103332057519867279680562419089291744162997886419566892214009429406476991305688342906770419595989227242623564707679106233733778347659866768648867804895071497881447269277998348034561988453230299781240898871696467156998060166700467591268407155662387447223342156072208560783030373022635686037978108152463331684452490613125023630518904220391816733899948716364230174908056049149602883827046857898908474751981736474712607766303541750069497648791333577544896412734660843972500213588818065730664927508268338587862516241934051756527949147041733137634056172126371898101807168463051955758550456099921832356089331403620041516568820087911350509857245468353081070956765860363994868863666358443045236664861247184306537735636397177918201769380857458402621698987805900138172364096221269299956470570284556312640729300657423283569588765134705692181770012876307970708526234159780640676558918061518891517103341902250239225840297040431081201495722961842030797886530367335422088802376046083787601043800740761849939773426483005871458894284442474366936666485916201316582025572495107308515678638384829664059664181363312358014929116159342704962479163789352650759032641499109684490341169339806468277470605175106822662423796736645155124672767615147405785683500751079654244565834989112281363359440730787910419323138623754151800108908009399903559766853801085761547753871194914607280259979554387629634958617886289300999335525015392498069661223881987931015033912860636477227253485624489120473576237084339703738686722447139491446152079583474007389215963852005252440671052768090528849003894863525248012760565215247625064126740330257406524880328139828151037767399064881616647395129114186722949828251594422890626996899932045733417666776143462117089391644445729950704416760727124485079708333625907365361834186868734219720402986124678132659583806311530702009453980445659460016628202216957981312769944819164434209977836294677403869735130945404735029106441656200982272584708017072585487362130754695541417659195282203721284616167562224828965126607016107225672607248289089217434141289008214845648808562613451432655934686674590838009753320331734501237537320886176222018119871324280376927560252875503624770552315113516723233382419432141380640479451941473007704505637184845119583066292149681785492496061878252306573782124049504183684096955800030255501835549907524854165643307662446184356548547956165338128262294857809962963239371812157746465183915513470513370543662292330944276928201277849722417914587746780631562439558123084589599639589210505375881926018594053417753634549622226569068332129562350443838243733187935678849223936872077672510976164182192205836440571938751650830974401842369872416041534116170517981490827206138976846244003262562612622539365035787313111811303172505418051074728429986676471586172564021758559257510821735634982642077777952625336001672585367937451899712743099821174368381321925323314718168432722993946970161868052389849217890771327126911725267703983666530282639587273610208415566869241588332614432349273199373404165679930801663702870024440678511181309524318561883077604178572752353386083691682250414093576372744135095206019436249701103069170403839457182339942880913316045024570974831157944702880416108809937439588301753292430940997363294562431747259905548518326003642919763693833653108572680646275978899526902563177704730958984784725356882140836526052011844460129423821225676698495494405019719252774411840115066623945642006535274862988454531231174075469463786101759171824512165329733869458984761304042672046226272923551026815181489102905031550834011166174573820081635122074307293616629928719602817688318687375906059246652514082018920321772317707194396636756274136956016123866138096779442004066772081501263085830088515821615630065687874095868715029504653008508185110356926112648111715811828179543536624159630737598988905766099806652491520660394744627592151191077377457660129541480700017775300540435214442000623504384999161873949270579274263182258947722673947183300048940566465002473228797566249492067578234296264618788411607175326834538511586509527155427749157046949615214795647315428870032494504979888795762689391139267623217889725422008424559510312838328251179458002751245409941879905788518982717581443846300301328329422400674952127574120188830664811073056798788373081315778711529697190499232257014799355386776071670295261374531502889219139890351898265222378349184901941083271867580774182997918380161805387714271018786909443108273066013698737199879564071782596978763281412848045058136556184431354006890059531599942993680646713654067589317498931373652024893049155414431115204536663534228855072771321757313438985385909403733611131829999965988061294630488572057456352505800017329406645276017366432554749074145847723822592442752822232683720344305134966907474451173684285025915879313199867148038963493815864797428569823173859047682561984464229789602602651374112304658128245951048668337275540500728739955198583432770942295887474752975461650197834144642131302445427749006422533867493076057219696972647219967506578925759161035973985938070824797493127869496020687514189091137159270443680993894083219137527861708497881970652195024998608159170057064629208403023253444969623028401079498940497491830678041556468039086463852769441023048904779081283818492305556785501998165506761940112254394733862682173711419372519219797053218605743084305921390510699054142829639514538597337683417650999170625810184611255352009465773155295550258942608808190166032306424917205930113202667216526438056991429689821211623892147944602234911686026170536906858391242088294339084437697945485079271809569880891225068809041991913920569825392057050303194311504668342366500570598931347697547569962009914958919819613517747309821644687608429994217051648168669318454743498066496277943294605625017641579535121629359104367144426874898459857391831324067274701537077154774387958415132308892360405060651929449276553565118051664234123573302893657670486534937219097490655853224673307274072843114352610744565880648244001975344821890706387985043621027852671193864206504675548936374938600097806757843128915460015848929591580270926937065758630635024977013187333985415085534295180507416853645575759611500813931919543120573020884068604543756139602006946977045240237239415461284749178414709261206172295790654704735665719166942287709285281889122300439302376754034223979799736450001856783085902443591633092630772689556230338176098904026856357495859456168670536725680610155384201843150669448088250653744188682275503276413980743275540724295662354480910125409681074663945976130761616854967600970278814874224032222937636007904352430852174333319076172981876911689163592231889838152397453714568096961103273967331203918737569957323773113246485291256258442538518291609991769868928933948577386164403750262030209646478015440742142597190690162207612723538970825123802917766973925195387478127020468410673852469660721385421089384727762899663299198460138954155779622874660793182056630164432456736625810177788756918994182468600838032689566531341096321238320925449157786485503839557348445267682101429879080776748833630113983907637824403697950522620823774768807818533799025775299861981985068323529148694397055151939092544601521908626591886398634717857174085403421443833561265708360456548060292734401670889977285601843853557011679207340642220027753954881047491444981723899951781610765105944274808576621702627094764071929300223007268179576579325007304284219173329237746513208715233108586002919918814568070726876422360139121007957764133407770489360252107507777493491683022432859192455089183280406164066401567885701254056526332059616474556720731189418052057243314374426221413354276005387473889076903976102124526465154768168493841410052652965500030237586232554157276559829070316933035315579860395894657414479749080025916537460724251491949882322413209308946384112424937240917716390317398565154836794652396509981641168918915052608000874668827150737788123805528741097524062870246878230704623943363040405538542143464010038958128494214243851616410629973587363837975114491317663618350320880544624161813874265161755336261735047100763943863551169438928778953353372971256405803853608393374072153201661069205041486370905191982633138965484733256911378479009156809870548347601749709512982086841698309894854072710871000172577605985917100280176977485013723455352750725986508561190246746547793490054334447671246045669778539423518182100515305865442247028305076829903653847812648769164337632086516716329257363425938313206141680775664458035851815425117390078946120972149417207544863542221519384304274826555095039562045223130026671797462207648692996554265827667646804910654184763442409238824078745080873108181498684176272328862013601540929967712425022803595158254778189423034882083603759300522030381919817751543173338305861280034577097020955349324505163130925733292032229270516305099772001427286610719714758826035481626499905527962321473714090214076627798578102205724856917745040191427583607990990869308187576436627602409328860884599297735033518233740638222977819810181178024161883070636422169300742659897921518938041579529684187236093289136928553618059652166297573813300875757128042754401751503368259759158965708582747585980913028888172729466580020227213402363828490426386738175751665080690911766426074121602485702660081106173359119658508232728081582270215763098529533552777479345867022180838081258294386391295604094180666810831418051523318957025567825286095656418936002628466022269189676202427988085652253898592241701651563462276224521765852573821642224558304808965300502809120318080409995308377665375197898000991695741081705336703490314588566467742202794139719901822351658388698492200551871730381557225684881960910687188302596352753886601814753464659496515012819169878816289150191651468716205540843635982995421525283903301253469804055881044888346970819314495085131762720588772326819660690896323674751059952664480928256726119459128131587023564698068774673072769702922954442969830224255455279552057612598499296805658594810794089472601017629910627037220578567089794803533550724320511176013336270482121963146499299741271791931430137847664570162899193394706291481447636555005901032109799577963348474773198963631179886627735031326642701126635762783000468036398323150767975994188627411552763812200560113863124383839886768471880096684180625623540237755094134670788598187960497534208782417368735989550759953207771220046915722715995284854983713689207488499108805868631259128182101344458659223007209003026045964564770413845899946122968452392232316755848357761326591494433637444956222179257436675936669145836392742559486435790091673947891664578497412753877555923515953429194797091590704203523858824839646646609886394190955829149819921961827819051289007888197454334912876936502933105666325364143443906655145453484884371805950287455035923799531883265278544197993742753559606876835834165629255015784972647166577059569547646690004283468317778177556296738491300038579736832823337286157091490547621322036659965031336812648972905651803458606042536055527254395801205525367839840898988299571908713845387106873998383547403132069502256714476122971581936988954740330817812354181279876888272854137951898142696222258113828635369434118646751709521190648978819020787515476856861669396815649741418307305660247774105658577249750549309542359990861765559889854525249769734685909845882193920757009021333287844795758098693197243334391675082140966018434412271963041032895806915917468544742704513852737605033576795355978199737959952936286877579761264216270884360586884246454693428169648963821913240664431415141763271237091205569612281512466550108736993183665900304479623162237724973050487199353274936569564121127549517809130377353650043934654412974300109630388890883811609261534898415986106645479043604598497538765566852256408986561828246235958645723002235963835242456560254768658203641905767018532055164415442035592374256155362429216061540340821654396718588308866471441045616029172122798821326189817030233397924717489693483196658401223789635597737652513673055408501250217887617706255271859045508013374090588592632337633114560191010349940713310726891794171636018940964675296349958183269615276756973557985557589430694989364229367835237330275013264267204927470634156716017635861660333451118364557289398099889345363187819063193178485928558536074486028375414632410421027817001919244876105480232079869722214554495819200431791813722991458705847051418751223082753419933649504224836228528882358925040151804918236459112058625095354653016299096205592127148353805506032729844357301303700518378608884910902089788047171067682111482536473487766069937887908535396971482548283638993592625347203230907591799526750344181755338442980600211725911632465640682725452952935779524935212217698249427853697304002884730287776861844976558778271562059305494006683154630060257256243454955811608865536564781525734584722507378731371537086881370320241742314866567384750589790499680752703136744784998700283913501882320764968570342976670714206488005298011322790249287377674496422149137251756368577916082163844866248995155541427898329024259558459640305706268424483657843584684085810140555495700240733699769539101524540506483221527417039029388038255145421582328704717163151128152748043628754506286108029162704945543738135499554774038410300786582356576111972630408281605781786917057879217175337890649388592835891220752316803067424877369062186356109871523441796917831655305664401094514487433073639707596298890399188518922708530743245477865194883711293094626251111068321923024171482494926353532857359890975408015538784518654122632073115440513195061147309799978226694951008013967950700980231246584383924240783935273948443672542243498833355160923929956530544741574289810767471497093311806929962720146593310254793753730000184679751311700861304203441081312073102423486528503130368069389321846652453718076082567631169499892730145398165411027393119025834489234593573669701880138350275657291829172193264390536097128981556558078129009761821242596983649279888448108075226614953596884424174299027686364348079613497414151623752243827775193996599616489254899409242441242681506274904866830666709557058338831937920996410345567451178070582370980289281668594572403331378739976578289267385437895253478129641256167388598411825583525103101984190244380582279286237507712432870940645444467689358217436381509591532340195355600975724413843751403853990004164215793582435411716771519659443751404473509587164213592584305714490972405859076080790378821546304174159042781127160471612774566066107424550470307643194167473869890953068337207163600227485074161738715644514742406077880942966732567247177589885028040355051119200861579069847638000142846677401358947787381843903368020736281395335114639681723780299002925238156074968502210730858001748797415419100205073286697958922749245018434047073393968003767786453414644141179849700296530609780619243904154547597967955208863364630909808093837346213210965005219284810641609076542471149052709680369290094480631858336567585756680900774596805901317501013957419088583052081341455668616595480308993173696317166963725015143247116602023493815368097633248175377971634725292281254944035042055567056381236946264859393011476668966261872408039709864027493230951616984829738471274302310176625034524202173553389064054570945867881512116278090425499929242104427134536705835703502771963657031284364579485752404840191199870066863387603625992521357490238029399674244881295241954261799191050737131919237842393826342991354667923775240177754798898635348199775764215472213777071593119435552166855644856122773803884683627489065205696224672165703857990081061270118515852417883660252015075203977719046439074078135023258268565558812548963636525309161259754432106416608613173731013041451773407739693514915040167135314093909002700856687217126088459617547762291508624664607426871039767974042472886454387381745812572776608125308063888355770067554412316735407257115231241766508013728494641958908837902244980190621978922588051487114603402005197763487962875005756307070226049452034000301073872274825184228392322442242334772758301575997354752942997485589785223696123415715408795608944497480843488189404658900367673790630703311240921569364126275674981647580417277399800867087477818628318543155977350849863395797756096747020250521921690533063631496236859238669495052387463270754452824520444442027072749847611840772989621435643148780307843121573943355208579601117526339441154544747908499150518445520596794773022525272912398660924718211014320440281825258869409643876084987559088831005806924205774688657022006030667820131924441900735512264603924109344918544175237731882715182483382597937540215170280413971784612949355139316253736790466136787873350994135781869154728357643384664342969539520295648662494005102108919764204050654074414518425751461854332024746453613303432436502878294118462861292893958526670272886078027126643025085176628491313992002033203673577039175128582584749994753823863850337760875550655167394695350919040384666706016550768460120730597052475501962589589832781866626157593026139452476195973099977426393258406946602971348368029340180823924051497318551064330633425895901118658983776296382670406063986713459186001190057073517222152173639029426093961495164100195739661097388853559272323020136183632678753501144571963351619198457250552568075224522436300571198677676645710212640345930389393588360915546139102708646617563477354430681358849025561274762234466063431827276752322660839089470229610498545450210380219299127911834848018661417680444459378762336806078383789352372566415675420358087587245170723119744718162238763862838363332020300956790938150146272240360835541298282650756654057262106673147798122353294480217113785184398190833179193600512136844779731754220148890351648585391840395761741083348387906754970843541570558770784101261509677490484589184347776879216341428613147074628767390483445631931120102266113684128906495713532034953976222747124110888626380401845159224637495764754948816783950770530401621056575939982089594171190497502295632138285057589080302487389440316682093932677755511210857282459262101342529550360212761923745083032195951208058157087353542000373357899703114874653989798618746126345923769181450769066249144587099117503674307866634829375292511036901340494151760702284784604414179826663536478561009125478875751787186430108420413209902682828914402957393227982845240345086113103842120187129049252599851381252321194376272281218021729177171834560816199373984303455243196472691314792507208905409514435230542185823142775258145923154127666891916871589935462958178148235813442985554513169292020363338039765977435339383776467853678730969310797353234086719167442542617787513558917380167456418754382059362463429089254902803532314339037366842135946423017358991632592865044954428220481427531569106124386972668243341634544464110200892778165240774273998358071381204527563106243802212442127956176913241466983781415906255522737800611433950036391375379106756805788838936653072140526300063070116032627214118678210251027839876658190144505800725058341969057394823765737493107550856528647243825560005652983451337151646567068148635994972938488114882347532685641555708644577246174595553559179715323337097777763609261218041245618351986240548906049853789599006980635004565390012698230380047788794835376683641097245783037186232550016936420577448456957979987233276250457780947583489711532569035466240131146052491526188817183526907415066962484868862787907564623664772194135264740480509061236636161722624843097065958928335182185356477076412454604488454009885858447601940758240210761003339443156334118326455943859259802122255946197553408435153424122056676495045360054359723138845521683899732425917602766257708848353018929577723663451754241747402360312012420745722210965836075684760189427672458373855473479706250865647927064950913381905764225188698020784560857215781382607207630746295508401676427156521347566415925661493768047430495932154213389451128812911334863974511403641206945215390340436803851551998129581689273891200160176061299453763039138706118147731396754349474925047636020744907924072446186483869876562967061843738985915485279138522772380375868423491171917292624465634365260588349731409833755983142579870912942755120209162067569846750236421486716183259662049364831617617818749801779850019778604108135884083983566603615596940563076049191016220217612940893829254531182374723991977568065371114213164020455018532477413414828146921734737957297898426257091050845192837545779294765564192414592219561173106592240713751989797872118578696615215479850554409515462484471762611653390111987715083832754347683042529740939391462825204026421664784153026758954929256960746362086810584387457283714677245995261066224409314010057563794048132119764204012236792336376096012481145823141543549844987403602496295240494394216041418017002985912257068787110271122655749391300162263311521689605706622881777495323350859173495246432198927200198620262509597726984123778003856965230854383789061241356599697114811082500152573271753359842639444310456420605462751118477224362843303116981998424459292241480962406402799798813000622842442406387541467511145106784275247841589877857185505081141259587404848437947845539827617342287663916628394470348620557895449498587091018086925949217771877262827885914580882174938384855546067756833126664289722903295802734402625032435679902208558361684122736609248950037055694523892566239783068991139041100328740935991162130496034932430180183052600100860963975525215258318101540638502465646437060380434008465497565988018047678848329318140672748560504893482181307376402634131205059416451644455335364597102461381276761870204382433495098158705460240120943774723350642528030858587227602173703103059579382917893274393987320147166212299109415835125380600247883650006328329359390174242381801095418074014148396338393761700410497533249999757187861577650850543085033949352758033036258253297406737215396335853450881745445154650200896091381420709573747157462800598294386946924377842213800697397311172959728496441028728659559664151084185029501197285367562093703657453538596045454573904791135195018906745536075215467767925449332086113319455015634683201089050192349018975379031987548766173250794861643229209671923140759499347494284938775041104018657162538545086343153148749821947288021247959857494145544557242580470473994259674626426447785522177002821963171387450106081312022359706418545045627537706639328891801349290407629430571054124193377284101306508792597090424197566754589974233031250615515900183966509846203680253108304281053952028065616354830923922815396325987845376096198456562120355462316556255460077624807467037200357798569723238430634178728071121768194519817512452848262145038185054281052033460374026131864901165201775363646094006217821835098475473388283837758232898423498526399369064775987911054229463064843028754490476387812639675424074808501827960047426160002866114668360066387960106043505988920948717960624866742474156490342180584430741543979460025112353773590280313466298628536488810306961370935271483623431979882723433100395392946126380295702476217858011788312445531608039828080838815081939787617142754048596312755814234265632435267978080215621124160728850063106364060534433058550519213830487647978986372109589599351813982672038320784749330760078668631958190765777989839918856560852430654159658012476294099050470347493042492388214935666359318989020788017836912359140772454792226060885606643771195948121675502908552838305934221582271482034595212094061733300256897501424926423255629761353380004522946751586438693123385517995877261657419314114945893698501033198466128383705057516883762623742162166889690982747281782594642572737098437953725007422275610262420971400382589542715213839336434674253633527421067221654159110959618425635153723718589490757402466813000022508453242136488327648468596548071378422113972822974652810178765579192550567931002582117247046381749534527757397612916524547178568383105755885106717878343604870530349031677436202877259098234351193955858722736130994803484235831658391233025851297741255100351564696335199730738524733138664775869370839370549574435420942903834252341932739732824719231091406032712518934833336852387635851845516750370349030200373908778241203109561786317834289347898344165008029162457778176544018190426434560982166788490963886029903072555363072008028611344994574503161696609112704815522092793047179774851546016009946244952070977459406980423617685270165040066108718991753867225041550174509244867816077471013522682246879688491556101085995926324582140585058297978383434301225132339911505385330624690819196623330923974453611884609315471857681044643199459821098293162267319086399585969313246553423729625697348391043829428827786568357975632971737462549088558663558607961162289564315822053539669996999719437485439510331449006448616236994980899440183237658655773065010630373936196309420700568087136825600564009662395720377987101275079489732292186266573151767522167560471142264782446327708627878264047687053657309935304838792323195899396847085818267843983856903711304119760037133452626953959294657722469420216129384010253210955412887664017013989338497548006116739179420941860948751818278752896649551454142071186683335465689421126894347481080488838653089130990405423001355284534782736075847744890456489343392551108874727368016599513222248522609466763663857410938167889157202983464659419357075801243955500564922246606109884248450173994298390812005804961790543316742397123591076163085537351623360292788856649253570286402086285538250444105114494942148949953832576497864311098622150735318327843311022402454711231935958523925059915634871805047545248188985885872888532886940857006296913854892507492228816230870723502898416241981040808153260808501949412391489698345378289270530163282220053678489615734134361068103349634939700536279745809746940174832674486483561351080211139828852558654288285441151546459769498987256782439921458877192382083037476942776064329787099924559722312314370691797660150158391777141767870124271177855359329194511755832327086076601597990746843351317082290388721659341535685351097504412334608721101846271700322439542509709099079418325067990403394214229111265099835355641666118853981682617601252681243326408875274435430486126217932606982024258463832232666594498344515262390161375842341249798520868134371697976516644498623685046286302695287478102694164757682791368768146443215614524770754054405112493119668732314224219495842454862029573009099025230965652299726144864734368349267013109334782651202884986380348557914963290170516426452078317639157133580714228445563070361652770641253027902090539069728537803865543461685267798161669553567983919162735564809894038223009381821502160446231326484502510953635903454770097124283456670909427684252306005613383563242025931582583067858108739716121033328618638478004045704330610717332607151047512616873043440403508954309855459384353631022384952149942051781690022004157391033228732746093416294108582753004367713204832218477989937945876917972548221166572184503919206428361521446181280933821378239354568977405029159370240973112423559800929079986537213028506234696233200125291912109141354771833928354057004598491339515850441915374448986048379202951787232447066815164196186328964443078416453405027598010364626379300654763964391324512976487119057713341843431800063216577848109845685558122014336873619082918124393060522878329117953561264849531863556913989568933244350861251821046283236776038001073400664612841508270702793722226922435997648221478245180156772300361982810280896078207845644168936655444037116689206100976135642086805483027735480842569202630739586076371751768028645996127230032971263260563981727830901054149517476746890685159273658105719151482450046860731144363494350668733537470094373703751047653463503803182604097129750091961349384527045610341991525852591928498045552582702603183105406051818782002605890856084336411488705781153773414551010188578213099977281806495589962968545551922544028280164512985686551105019465485570900624458018977005849120177002942251268959629906466037407150206727865049960289320681832582659326460183619101012709593596126963422641478007561048872118355081111262744333241364715231637088318707863140458731699695015784295228777700418449440877765270029261199067357395609371939453979922074256835786253505102107528448267848205447714081205092384348630068421731365105116917684161473685849429811723231019654744549830294953295207602838811229461682610412308705287126761329345410344468880962358890510541800949567499461507900663030608942789896392846877621633831637718340557502705259948011649047192987310006333493083589148110464633028700232686973250917647813060452599270873892714479336812825441156758416610194979987441616869358889675212022219395349995142211826989637750403972626395285973318965287047601723381775585842948549535634075233931411530792040154665507369384172035410609178848498929350358087805977980676006160397009126869866072322301967714308859350996137838295562407763179264726057710608174758210808076706289383224173810912711701631803160440933165700193578307630798704973023381183507837759538446197782851282480514990653959863975796119191040389807513723686109972809321963923589261202070399683325299487818212995506417541111624439868509598286318154496025263372328905154635271338819144696966310217915790761986492594926381840575577508671492399593429907629924676170106409164491121248836531440978832075819337779987498830620390803006564341313597087422021525756394568369672578805941186764110345752065971096682466949094783479754488349264400772832231278511412062553017433102889994860508555785682638210309347484211544566551589744953730467257322002276840121156483996976640332320003134848758122540261291034335120349351011198487476912830130450376124575663976083076858483114072060953592928199818155595225229226268682861070035632211515431935601371628320451562967718923753225171898798267233689406967993974813422624174918356069525323599752924411292069096361424822058353537200655317121114873183151188534855133857137237601112816359461782654362124799760827297329471349330424481456210241811881745322708437470747777188583020740708562338117844158830882508689631171296788609207603081908636757469660766119769683109521583860423422619193447693055899750645652188849381922499013607696630117087993206042030822222214356432889545485806846054215719564338087349785853210112302857163886336935735014054905143933198588735258692775608189522954881800335322989324594924121976204135566454998845023146279129244797472832009314215148491890043783019534545549953934820782775845146116207787486948032589651766532811323849382252191494921232512236818815166568791872328898534136874439116631329956616692976793717092289741769712122317383871964496679658022554236189409516747689056485442186341640003623415555581928593489486999275648996130077920363045962670364579991796909511494148761427631728323756832796980346594311806392338052177941338175099670214111487115257845607003455286535394039106317539436881038089141714989715998489719599887810799174482529820284191356293906802831766097409533883905135110028022342091348816680507959716087905493765918734673047024056997476645207886147826044703536222844214954263493392148255460779583193023786904302417841487809666077218070602502330462299631677058772503750638427961822741811901286113891473976226305600802171971164551267162382209780601567880650429634358953289055231345492652325554072638458478293731393050224369842839211299930828050864569579896992298137207563129817368928547600599069743221735202307251544420877437087268129176466183875762103637408464609615217408845769513770252497925872433384799758964798307688572670959123616824446175192658498487922362185154777571947530235641799485581313453616400093592403118647138315273088897774909627108753808770568773603872449976939709601275182427188489682265002323150666970690391586497777710831505165348341995259978878638716314149707694752901942459660425372488012826646326202320365192942444055679441595113122814180594726283466555414336744171391606554836782309576873832580334510024509586207805221010100192918926261662896596225267767915024011634543283257225158124491980545360804054600227030715105650578970537238425891713855294034493721929999888117539424161673476002287980162622221206898528976995168792888469070779752291437328354133954954302478525271503048343281514139110367237778777095836183908076616924264154311485100497273359853093208760519309119772566663737140021720139088962825819514785093368448119347586425990048278934640729829241409138107571345558039507415875633034399639008414632195057699803359483759740900460421403466037265031565718485400199554364030092354050453186590332283663242120054821234511068137841123828236916514620564440791688673029483266994206263302546652142251429922905201880361274656784464594201769544663998089407364264541717955980710229269989656454699941306719822167836786284026362880731954253566748122421055163421428124065882909325148550670342947997310417970882639715642426498393164214436895179541532988266498713086989490331393416704903405613414032575050228452571490504347121695228559791892539135101339388767173625833169735580338439656511033775018477961107834391240015663018222602993132095382168861635980262099003816897998907875864557421929917712265313042514012691073152416037733351885221236380348820919708806155591553287930768199872370498803498775754219068817733013215607704997460229712302466781247748688927692247304988526033253643650566519632941305331402169746052048882378675734485324418152938054552512097309086119756024277463749911072158934811288485262689748028399663654087797019684477661928641855236768796928802183443795232615370079134044591181881816288122901467584412592903925825771133495543121186072696010869379148536513678670064867832174251127129912332560924391638980179189188172542209872778468054139046562555427531792020140661478675066419097403933603436782777936791462466192093230041644498904355399661116067828587579962238636105820490782515147901209674121115109307060734765698431038123381156484461975727776391254944141429334785162454101342010061795335028181403223476761202388976648571166558588338212173371296045992925524380641835323989110312449313147858249487281906662758961840151089114143390421141897232529508889436211466241053659743743245124729732895388489575958203826875734501134716793981075725583144880704280747959033196365836007408092151583302348338081753973027950959377228673215717378297530312780112640477856635283259985026077094221341975315577142691647083537195058662276585314442680345728861766217181464064446213871889835189005719695734413177452352496241307462622578340615667493835264258298588537083192462476504582818668795919315051645530654008027163529044107970662619971852148650147891866431182474478826557952947969125286407549000571844517070618760527496324992523953836564988355678634323137406018638545629969138488540759622147966298361026956203524422929183929556294986093511116905022588675842966023815812391532978193514401183651256694532890447486691321059112309270056258066765407782589586831619122438693975322228731756573996274595878461982062986891712279703959666634226602528391932572785997796176480215246964818911768325776521824457424995706586692652847915639782996137684316452311093210897973195822018769797664616140416229493022413815618212709236837434024593186926658655180587500346176180034168723691884065228894343834962537528556672271918194448388187551264488949420427260446168926047509779442924745685234562716748462806208164224153692635988739468035551087117678471331663081617947961561813940978673398899115010688474262758750332465224473175765919936445622679185768672688911674145314275549295868781773155020376887702805902831611601607471791382796126026158928692037439092749470505816637311475209303845494644148933959816166476162566928372179086040196940473281969283445785429373961811563030582271995308376531146391178919837231536980254127517819463959874733918400921140378957744876559077927011098178823021438585284702258568789543571697084056792917868675631703680507710297286594161725918508397694712771074380810017187713001049183866566860679763773070819450493347201497459569990894086963909464969621414977487298724690983459679384630274411656105681137894898328769348561233508508355539679542340898008405142779300255935670030799074702580131665792644196195639626232021653585954716119674933435537273282035534732782220176285532826178820495322174029763020032824798611265157530983204363721342406079401623578260126941264849483068978557227396455248084427839035832518378292185402607203594932445310946667136943547678207222995673654368913809304252882353880052979182528789170729262249654025329758451345239576677671578500207529827461313218967700791543331060128109752644260261234488420202635937422623769221007118449682467301468944291579088017255052662531267163508625835068736249114202537167292835606344475229224572714459987484477632641646585885475136522754179752857478951547494628223762226462619620018694980646972819729140729740002590772962210886592205786922238716362535518480796432117257428689827363061875727244169021390728016605510053957315404528886391125336494912037310108519383428216287106118166908624579774979683751823197636718110533037153504480582477010034983095336210549550164805422793331996601460489210667578106445469104127302016921172360670853075428082760485768949491292781037643471394729250706640290328725874320053087531422462628723717746852172378274555781402239809150591280433535258666769864337659682776029733370962342591803677581308984212425531958107788936498970395636072366858061101861794047084930006015868152940021555112625569991274471874380886174361404574929913343351429279692900074968825789113828224366436522305422456805511273124900455525232079921464681785368058183540979522677619429511018779585036756642829899030075562121456069113482493080576088781828477560885679839374470666375769696567738117879794417657700123673584365660310400366377946176063213393170196967383982664596853335650179542329749472727883657555765656364676509393268592911601787700805294924721814967788064791014656736687603966131932549289865354282556907237603958162446339898825828170602829996532326736671830295971648322891331588398255377090874407779595384284513280626013850809623468183781195682359785450606324357527676236890443132732394235217804517072717397289302645647510203148048545104599050893790995040484069824652593718332320927934098980077514988458275255649104113415657375239277871363756969070250224165199854892407639432430606888170240431391263505426298618079426293345346981399637814042910900748858418103427386130712617156159827634666220367901439114895587125978916299294080250575090620967831399087929681071415354646395243737678362948216927557424845331099433619840591473265098216432583677926927203317011981925032033668638870466163791039571216903318301305907588654472973482052222397488208141420359129327106645958104003929943215769946472506774358346332429302296332934913042446110752585393523052536913179424682261377145483556412360400667801976359576561021846250224430443321940432750681280448291374234396381883600798683289259020927817724443962169404380065111728737659439898619743392871344166043042939185532505876193226031159688667662285316108402677620156276892959179592598185468973003644820205009309205549605713771555980413692703999419750536085711842781063740580775187550218640842518158076691526065317453188856390287527946167203318794166326325597939581341522131956644812277488861150646414111425552467301448369082560749106657363459978118338556903708148972247381839568444357112226098933354314483829600768072491262374530923772268929169188413973065974536128656961808023659935267811097272589736901017331150704792245415446970826147866261025896301941405602163659649791491597463528066606521956977197457608314470511373911836656409833402912420055683897028655306190107177311305279045255110030935119188323246797777581169704285230538346819399129969644812977410907358613907227942849791366008934482615171314764392499275885976445580149115087088824947043616253948508519963518484440230564087795791104399735967354125747292355540030252260835779744221832855805443045715524276779908419467470065127713369749114312255039921689810257508983972970348976608101510109793958067433477879498806731706622999798171646966008520468032784380564547652608215092668653616472971823671208490910416119751517647235526882405451945260235806504904059735159303535471021790309294300286959516174484027676839198332061088126473615138056422709224100590795651835426437794378530860564703592961891433516221991567922444275803610831566506204445007076145704411745048677438365033252043983293908055666661653384302381512546867917619396770820177575027650539271516877869491937810699415667721825893141943611757883119305415850950597323438565821529851910002062612318309609569764698481247866835992445842295345086376799400256513932407744974260717577845666465519169620416720479508344127784349231509987984561430251563316325342245110545812874870333805890799606296337554061240960663717965851653929462099966422276854361908385758699368032391486888335706523964477819517248355626443988748161062328193850873203216858438981121703847032412692250028734726577373543139179099425642540273171345882560405288154575435961756581915288308734414655527790808476909689104711315983442939097082036263781456720120861687713016682053175695311754799606027133893033778374315297372254527069847029944930372560260263155763181318197563365139993002802609300692221108996033211337287923447598181441046682293663491829936550102083221376599016335189992024021086721098698288890701593007445438022530728693850615776448011117975833306643264047590209686218218215253002981867854246315919830687625123125367083187986617676405066456083450953351841287009379296587128393895901227077787634639097929342514356885415270822823111873015010611806360235271134196442660066265992888675485771197506645048529626420365887787837297969566695333918195373652576422267609756367304289478997598969492333251201442926867696932747057041584980293922264884370738407946164568828359183266421607325616689539657825863025732221266470138126887203582643099622029960726984504782818811716614622206247880572585444449893338736753151170263446422115819912513369899364931366275365304921405469525111917854992419511994159453530451459814932370367452790575312103288378574588710672208869095802179381507794691917590480288083864563978625099790155174579104045260508664301672682087373441799161823648281287613779151139883837169477551662084723474514033483293521197574385191259178181397125771246074979392093205010166218689954315037978224844833736151536376006465487375371680118674778063999263839006540495120795275843821081376459850782480257311972948568527838142869180077862042554111642967806498517712575884849953566115661187961701025639103063754841294941522648999138075337865314779591174165735491097229961513929134855919706710647445429171916788516333637957606216800682748851767384372556294025529201834836220906150178579273896227283367923660653806513495409656244952113563857559499781328686344510229883773126415363714240427475419069968901991815345133831429485670339352530695098034052634180154080714966747669152826335873482853471211124791842531173858129293146110607962606397703295247457073054707598570191864227357561299020626815792782242252356944196465773076055159317808090895978513978396246833590946032545987607428010674271780795343216628519161101676833233156185872972820950749562509370783458022021243048529800396579412133778590236424237977115191613909498980617689060166705756976151822969337343327579632330463173846064011834839755159248543106491040917170944967094526305788685371991839868107711056765372728784957266472361036608276253583501797445603913810025639613617185587921130977250546597290880648918490422321199251326060355271279839395114664253779577205467902827273355036976321495145019663527226734668283011458995860741749692014114451390660063044525306285199780684727449030538188529285710617669663922385119814989106733876313947532993626715619674488042093503723124919434396254271972151629181473811295023994615074328494046444015370875916349829375993062372748330187788871178520463669914690769663366981626768722612972715643973158724822541593213022229980159094592278415799764474744357060468609443684772893601119947277663940375075662859497775011638863449354248553032664694823076318169966368310345106892427655674881401051772068976544686426512756733143486044476859321843513115777124218775441682130565168584650223395233701524911385195263675916948636304949081856612484807793025624322074249952038118721305876155231032698829376368793864517843920000232802379250063207317500800336049680821117489124147209331644243207094013561990829899729523956640425649975034870733183424811148625258529265175261510957931583565585004797071398640128987894737685227927850131272402760997810233010507402211942798657615215131799707962740940419373742315823924699971017469541947681854405830923114717606524556296965260355158345177820459933849883578447732380341782351002748438682990007294098661942438929748641217837221740327177700238841717780418250882276068249499522645341516838156468942250638258880478281443920461160376833983757379626447624758083254859377009628504370648992702854158881954708936992984140269522147998334830712574161488681413010297465889290963376197182824454607806816624258429250238203510089439891568123705012573065503413098998891378363105637740635948455493347445150590965735578705578875759097557329965565379307216264996151100404257824591551192729911459805244770749260038436986510785687993710272908918877910783464720676554259158720752252514223127539215992148673268332010153029034363910346621593985223568423684070423142019761001379378794469429598701689041913972901917756642200591803536032467337260494453054914148982141321403085549874525368717696522625021061822585488639592490890012268596192046973981316235725592985094900124910991367391582176121892617550016550780903185715739651355559982696493931112779665640358587777931537536348032149498158845269609010688362272806840373731991344826385617694874715868069254479393298612196046474140715833355970534418195083849948741699129962012557461250271727179620509022677861702928726361227031511128786245711555249395301271595827750868070438403928197865741521530562074990984473091305436418406323058282030668471156622502379606143971044710217925708927918438577790050478285961757670665654826416975148248003922617094976968017404937139146729228635980318072293940642078118537364189556149526751009822731852060285887687307194332605156730270452998666871545270824280422144510032426664620764787200935799968956529726489130004815314014479240456011714007122278578715089569155216923839109370059042136206852878021524357680565321007612539575026592928753946377001655860835211998779744418952849480369696683636626145011427318381832870103463825234264760922900263511762286018780969759651489487309747751818585166885852267779221258441714667253886377483297361206093616615599886599576063999193996901634883325046727492355391322363653884102837784805079792347850772023837847731645785039798697714074147921693071567745171574634167545689741256896379814749362355591734064313083931576746028011863039239368083024304984035693465709949151965977378852820095906129023873616287166326292209219643901112642123241991986932466599707283432171779130130073603659601225044187932930050115241992861124237178870895885955254733056409517061053048839253975077575606793655933870792121318215558524118639832939875449872152983581772652359038538805733668067840676806742896042252406517183781144425247921302474290548236343607641485789603753452539080053569720395603337173347319539453927780773127436709470316208477832070505006641715601568483898734743550505544527523848326013368204328729323722995942676427261001185520328168499378500548272914781114855395118243707704297411771502166839744398462862767742873167519124989341673671934045530937381908514506305208143749827110494959000895466754622108734163561654447588204510930868683359743723283563794630581711699233815725674529767580599423392244185755946138452852396034239805411437512350311565893854023668561103270815445477271872426136783445422576256507158871017241571396053500121986443773750581205907220655955899931921296760497695541992433119569884046900477673338970400644875936296969700807770607436751003187855323977325590655393139279029422558699134757220496405536817343832224217803861564364254890977334813563464148342856164686595567482568046287763284088344083907961643838875630518881728723902073991574366386783159933043574031327767395302113980624666967920311701122725610901829133151173135601240664066945056737669377586194093639367463037684282635772024856894852420709038601262740331005053755529605594835699368684745010848147992691701898069597614381569134950804411604272899861927368480626616737938364786788118431732307899725017867198418131911398955514757171723482289381281067229407576801994703362449373897981885327674083941834891174709005794232480248515683025758359824315639903425926620901406719636345062776023338720909704134103458093509393465198266633602990682507761656667103515409165998861598651808530741760965512034805521528401793099061072154217153033066293396818356717372942245140851441216096360954344342601395714068989999266435552424466929418684238104369105040546542213679573316183381652102776226113077913062365630710029153997115700590999559757526160786658917231312621482661363870217291526360822580041925740521610562475346308260699538557148408915020467698099611398921321661780053776569146280829073854448191787652927739698652327709688396870367025660105025385051278077729615330033880983030806950624710913607794113860751505823717968157780492406066289895442435799217620999043870225255653471597272595032473446290528853946513071897938711412288766304684487258096089548227033461911370353359788834369890366041595601763470995608375897197019151121787684900596984898656511071056853609255562475533183400951269864571364922101153454241703871830358060282337044289346751199380461650704706195893909754375873625844563879825852529137062142452579051936913464925515550863748167712691737812792150407400458710725552596797302924239925449621435651851570676730065447747584574585367817308866097241419174871638375563320008857752756401997814435302034376983904573001950402010425621755151082532855595598910660549831739783578299319104532774185178758066187941489605591656519565627750388186521602184504352783090926591393278482095386168387490787358643447856089252271650764756279107061852287444607474154672392981697238592705074633414279579845516979566459100532903175230532248659732991835693032881335020299017375190378729502476303658075415344234538684511974775909038548507581866652414219757898672563984648438000326480884572206812880971687279016291733068215092299162004221770057456628711138791195249496745969050151733468994136770778344281206513089512821883078538624530195911100293317978693362688262591130100905114821466214059176971782334422992298631961050130972559564347644965311100099244944383126955418603157517363849267779618802147342056302494376614742724557060410944823963840670650914648710967029617481155964831251459934007111462303309142399025344319009350687899176921498948733862999411184085680211213814108646149232290206785794571547881335009967897847213169218940704624270265540474672104016175163468601833495795772068868033663942712413245283940537254007224084788717181986444868507149979834380585507828723959694733552473429435269953954559544160449767008127260441698652181652106945890710213987704685520750590303970164640057098667051360162673347953105801913435485842889177480597516690687640345529012903571269550260457201368727331454307255158012708425442756394700061351462882585149076099571596117687465956336036696694339642761322609774017880954696180640288434506880954219277127038596212417934116004717486502528084973431142007218979347469732844401449896589846827198879807559338072901971120267118819559726231718176881971162043554142248713021260483598275302674571743660086681111283226025902667381492194286124279048431819765934076534563586463983932040621815271996790061568784663194533762147587750777529519858641099244510400001664047505311916087306826357470018610596828257254178632164360393180773980149514314582882277125752284494431735744321468467885602241014923635231844198040577094397438801385411071137411136513059899048274680693722745482216605744455392184624854216987212150202789416480395474765440019525328799267011262062017671097855517733625141340803044244354312715749002848925155609865783332827410643983471550498633136763581512353587690781386371516622933258313794357592148242356446236692174666183272995811359004655630491637051100052715771106004709680491610197748473501978000938141645121502987179690859610324997871448903446249761250159429763681439784106023211151564330690830850741337492276770455544181584390495593742245632309432889258370173799151302653855788119816710574478418822028536366098278172186926219158087846758667321046043439775420154856166190685773039260926607515139592229665791040153478227363531222533366330101642961636204063898007254308793200466314715125726614715380568499971353770368496069743039020408597080171705719328395755511445933208110066289521911683731716316014379728171752044105316837383524238026630355677468626616067389885305045460650808033908410562705155813518640987537429440604863365680948201666606847265930069932220700215164136882582806156586361701913891494121209730515783628292901103931961879353886348497442384797623319645941140969134396031112708630225916058411117233712248806152603985881486392228535897231311625202611521714841091658985258633133977911776176648106387045989470165699941184815670835775293416979046463061170549660598547454438591771777950591015644077775372436424653086164361410196173120531554352329852637881618413533107726471248235621498289831333816760084583335979364432086980216241965902438677996279848591438348434686860925792905508004238548081038195000561547557708931331602403679380480218156903986113102426724159562716012063384625582981472825189485575498013878666895379217915369163441517603209257894158155154833610694093174675145212981663846434426544851638166894176417314159582183956091625782753543638384992316410410466297220322179462881143248061947594961708812580618709862282965774443718953165438496186292645709423510487690390707056502358396278166962802222454952839154450019048281137992593265362178212648768005089718615966676976261393020450222234723580090731631179497175792901191225441805309659126911399602004921520260302249851115622321445549525464618276531031307208440924326629264456782506803311012100502033048097257110492701683608728459084014750000444937588398028720777477428576222989877246130606924123192957201610753679928561244811070387244504047879833157529707838060057643180073595316479217873910434393829937409535286529896755500944204750786305851024407462273335531526627486843470584453624482173073946183845858047800310051248310035733669096797396386504180161738495304668486067251941604960887352156397471075779687769028147512888103037543233802610031004887246355615072679210997308746657978058650953973639762667818631259028613507025806554502942507079311654416323582975922703041638726731735204898248284767844380088096449206395718559524550665601622027976793236715204869373546172010796708723461934431582522322709568089402934855576095064718454458300091192468596181073505661784604938819695124625241127150263791010344990379869870601579264966195707816675435810219420992174271498505893329481616019807205340693965954208423576590871235228320581745726142150320419544293065808742981832601193119274242029924305282817264277415115106319149531131598126051569350320155618859601037759147896595186283363144897368937557591077183977342280397849558890353132983819625874614385034149056444931302147002228414966263849089074300302564664705789961472113722983937470023817965721470102746938268003732415167351460620895472746165173069209086798998071969034205922312818495539746904289631362887047948998760172705513895205385994391213191006395074810351263672039864468654145365117612207755447440369322456938691537518188086220636897479956103723201528313224011847123918722881914156081537803699942817575157644675959045090216554149669098429399507428317743749506736114066297605678208747369441723826204371588031054455423067930173984950973240947779461432231264177993409630051501610798167532402553009057576492049740999908469612443553385686354733134336987388273583259761135388925741559340754159016173379487231536744768165598700518106120084767859333656444069815565767390367750213239600624738163182042412001903521250293860458260135881803816790988857001957871751648117474745982402274370509532793229868328482717684459096101346956732700820992174274618228161021799456193019550354793151031174784351171134919967915364209068717321354059729966939941074733099748915929369938264660863753871085300645243047236500585361631333366081265378009549950700301792919338093625288935147351658028876767325358655159680710513618633240426818109577067563370507887660697763288236151873173512008728568460231407395007505902096083238933770090216864017862354701178948552996412316146103157828459077628119486435508198755357958381958557563221373121975338901314869021739417128719399009438298014221721699942296060126503753671758858103742903978258705165513730444968551564174634576653718194005590663146505617728153326687766356963397955504663229235070831133925246834381221646005152826760668740682746667040702647585711850539547189057342933005234065507682850595559148384321944240409403867358446547661945740968583469983817508709903350418816352226411700159188074883409486980124218351290530733226403511376168963191934704162894387209798346063681870121997093474937598478411405157691183955340100218627511778438325302552593812834266812243746698103684723202958085710259628306490269902535295090464174026209182338224974164856443263889438175072090391711012621638100254830371898868118975685384169441354390625860230274353801504144187057790517905127383633239727785411897407736778292804067091448681405854135730297441487984759878941548587650886899698506086877382543601995183940396335037540357221706649969281977079562716495926816323535652600298494303532357440071663046205137862702063383243811429598835469490758474322965544697243221461873336312156610454976441301831940795978030271046283209176354065459834581945079292075560912679003927611754866139119142822416628589488372351629682702645193957013352588842259038473479068022992058907155582534636639844022648566759178598879590438509923449152769971338857173345076422715799577533402769192024990404014317107452255222975783267123690727046078527921231851844055519169073726195858579539828903776198352258599044994052966843389059887640407117205273374032206061540022082687151979254622551907341164239926204911910204026328182407265915423629301274994962545110032997372262174122759688024205654868219048769194228641703314790664327325961676689061123886339056579770769676479702254480516388801113609810657370903584999364898630438990985937609509267743224697522816469267880413641964802838345648721356788722608754158899466838475935295933185960701579937139934656089702740820387806370672736240391419926294892309222043469118450847327705664161727199977104608647764451509943767676818523113631260491051270630446826231370097485005474890112254008151334143819304400069995730725769173604993711964850242485417701183860226884236357561006394625859124543918391778833519005062357140121199018129550129835976286475585233752207161485182938898661304795996757993137142488797562891328659141171579101038185298259063608009322291982879321943732536935834081640915782167915093885266246217539344937450222838289618826524216408753650466897111560442372315821049461951069287066651483488307558831049557297049551779669812370645460587965725667966361165018443858608049696550006014154462810980319290311536825991245177563529711313779202766909069193716294830383536083445687375750692373342469683483438281187012617757154208375507360818500269904294517280759737970370816686690229614224227854682335113771997867133866830757971013565514118361151663542948539577361366802912547201475098942065614875448769211673626729279155532245856690972078096268125627522583647710505616541247353067897142734705880378344229686934137780842062901117646986542747158806382997927262724677957216132564210606035283703349747909139420548675133261582389850431332454164165891041833527190090885311236012374336042515351164033072311753459060430502815750701218520664016417788851165582630123771188535361514936172295846028467528387092745418593508600822465303924082524464072379839884170668422495914639200070257802283512094375210447638880696229361679261762265630052161400853465973293272654525964466854478721687495550401585793357398655865478839632247051726786371556535517484762701083776863623758758341853359130837704510954034088825304942644029610931896299951782045980125470760285126070548038222635804228052952869655129737006514811759661599298443563160031404119148026113389516151140960894904775971918116852111088777103166167759896456684718265530305095062020213450845212098002102933666749092973507475816554960990071663646701434433030605727041560945350773211211228767799751008412258229137425408391975252469131420565781663461285183827265533632906524711542830831788432479265607933991744718696185680386132668934946574170323734114129507109353331745117893909990535778725459080161098855988317309412777533334792715605479782098514762667853764658393592118206503652751992492022759427942684952473100629892958351828099377369662037851183466470273784878855559317758252808150239297186452862741965328072050543378197522575054109760192603805154854455077019428772872917921507838045597921818454423175991562322127751395218801112607760984771077772727758553281865391633954971577937512049492993145554885028354730243631700879334153397599765994295427777427970415781037636231818070598007812873022412006342012005773735202335597884888129464706116086293603944824142188985580296548819503125181840427906402941570814254297415341963659082546383238317885491371096373399507270705710371257587494197933213160897441735350876885185076502226051627474275986983050957623693591977231280612110406398614893850244883422347179798493112838267430341377174038319179243770211679511688397424391054816400286816829647767366049057316020169091451478486068341223789490323482457607958006985698682478970643717721754403243331727464157161002149320891292720071998857397059448070826640269532783858702551974946899633214033696331351574652809273002936570339103114487884512908517907787104732668280983361560277126929231353324399804813476969880749201770402097386770539802936111354620288224760398556021653601138653559122728371073233421706355771422249780962988997305818385224938867135250248104209111105764255607300276347108541944208859107444886971967515621191504858007986655082089193004568887944495810168003586893145729222861043512981950045109582666806224375147160694425534826488095884183591801204998025160096023092566807263686149745134267297676631039114786187187372120875103885264230233209369595605411018971238340807723670370436023046189800185000238432648640735338399795275614252131317728916201651286892834068166383280269171683561480011012378146889380523531776366058258905689839668741080243485810807667049381548078841695990008849848399976947774980495073766030731235441481781956434712666102565987477035665608656340142058261948539438604106382561075537796708685136604459471972515942353274826852250823916642942251869146564449824997587143468602154023894964090381156427198699709558443518905984729553332359089078905286245874108512649335011353634879272907500501604994083825544366094320048985242622335631004494422760046526206313316099703867070417763369227063299949752774438196368689683998385763166816238558609902289336313836035802938087263037665188848432401758714306300852866066921705250685543853800643246619176287609654528567149121912834929618768193987517642735072671261812918313048851006010592940346511748908331828648889495732044851201905383453397789730605902531465992461344477494949244318021818012029903334298782182622378607458377417347169384608735209382658374405544924536444159207630051703331620540037259068525463896125124952472327499513982353192197189925442424701159493846405430503285789147802701781985162753995705870591630357299982154954278920396076204498035692622254026341027604353612648809033302534858156520599649182775947327129905476221395603853756956202819915133521773636985978516095916846944811042256204694865530831994276919736944183381480911437420292915980816997621349818318872322635025206261372043492044220954466326802353426907456254030389121281164083918432029568034136350951414129325891647839154226450613526967408658063979127930680222214241603114691258259460934421460499639299022533966640771723688452634345000587311525865212670067023188302385179072005402816248333440689334812793365587280733813440041851854136798982963965761457854748289347589655885796958882534183872968281404036446100078441876071443687040772703885836506694278861682621767684512676389041889707180629475587518514456011756685689837555933111762788485446965806657647976874744223862561752871360806455234853384467417123123303559479731989377985920209671393666672573603248831787780854345876607909910757008787120851858840739768731884687731247071814832643064841592350185839796739034197245986071697174757944728845966728355256623697767584434294360136109125155689550035241867384511855247255236635553447767717273492657057365754846770771871442294538619257257223006823142480570532815492685863251507798091581590683812546132966050262354520179986500887743466246728154302189588918514415442399305506301931889065924108017368243676078295250408878597412183492646621466287030182026387410429577741241004207766570621473128624085364346987800969055881002148495859611227410289890558511643010912110672410820670237866838265867535500348429771432215874166588865896690415551464975925166123662356818319672652924724149407301072428531388876012470359244462850929385615143518414506781621215638720177040040539096154455041983672901747802714645170675967868325314744170460316847296042009503001145321848401375442214907451039071870508953092888463287685059027483278613416544595406339947562663952741347164369153452967166260068215695014570363870988366678408893966713626224656414349705934355783869619327299839025832611445973835665598288271214867808945246750028839013606370491257242475642017110598966057270366920389696298274463590328767183764818916627721075035042732861646017088320668189041252221052046120086974987188746695851476351159898134752416348178273006763437562462207980905497407041507635505420061029120173002017623834243343625642764592870664956382966490537826680869453898139152993546179545694728570746662066847852599593368099283003110172480282800508524735373007592701817247654503957233996772436822120769627869453996906455140654815153671883001351676596428581951820526765686416860729593650296334099934389239987934262385543439919785519802007483285668376795263450394551599792285686358433663293775606958115554517074179423184551441999402606284789273693519154056800816017137022433090393709940976959889462086263780825939382016955128522715096346930659427662396569350074173460147671048682782189276958458620164491766109416297197091887819630176604654759592093613531102748982724045049427260353231854593925828322771359320601559687702713102598688022940120133511754518278112207263526109558022137059628327217137518043278451262060465122917612545235771620242938181502021179807543332284144551233126652755661772060695213905215630528101974693087098645707011765342357366996245950441076349145739463208263131569953484502477590137530287065918651511607697459211729384583947863861396332615503447775297444996178447437975545122098829087154417834389708504448680696732177034522231407405451760188381114310120398129609289580868905810996631526975592949242454117287322844780452900499177521081310319641752528739934683019515962334350319141750791634673449847599071289394863088340427358160103299677724961002457369154271725579152475741846691935569064881897788375329505734471187550451432279551853978341838304770059847957681050104782886512048210263156263466244602855482008269409624691876574579738718754834300805398944841152990555295701896956268234397007242532361285927500420808186353718433334152258352640820099033071192421481743615032475897368799754389850743221564872370436504067834863852205890935701249226066500962874632496561685015759769762792266302610428027778783379738892695011802697853340263525388151696370838275485858852101942830868195244187310021815250268280105860535804998231808750823943026758172247589699136715460777032852970041765334019004970139619586503754081971648477048661087527989085004564961412637290505664147787740116132347183332018776335991833958407438842455277378568410334894026425740020616654629482535902763082831541406338956480154950378614473143350628596133954922538145790666794059164157105379859258108746056545138526347164168018769262269236480556797937021486420556563735807446093793464558284322431358890938932847894719509534241267844673593787346660356256029021456277432867852107886398719122167701102743498327267391352679652795221339522075496441517723528281121134728666792396003839539041482422741920117770104875494915441137705289003405147670684859319041501009366280069581599701889242843468795924464732104216698824107846051421873541262153774702518774113783162130626082842010203434992963323396053912120620085102408702488157710607483008070587571539218108251823130875024925406559338528549987749134639925876920723509991117830468264165027694305282205655031857075382229608985950107838173663956195459760372315090417457164488591888589807546399972385836703987888173643031799763912081393523459805050046777796902641616255498239458164885550855205009504772344065318831142005824067738219871263173682748894768183153448767651600799024419930730971816596376941159809999292259036171598509729486795088764109629027153940742775019348450134621113989157284372323835624192817497374382256334614477228950517542486321050475728065662333256586725013024242126218720193988369260558828681852719652638405807687435188206216906168089571471394660370130267803109199406059059897144629389107065879813828847927966139219167161725417733044260190689878563321641654803450547611391497743672369186121693124590894779339815576956189164243534212303592460635343737571833566987892569907025152934808233837228557981291742755846054726246524366891146713271845413767956566563368366813764890642978594756135034088427106596675547479335962148472068151403376293207385749078762415529731422042177609738452260185593504801203244541832217671900670103864708120856520318284979287585656814616840376974475541721329652181896249665445246388912534602980808375438011993683999134637484398693521469780134682615671990901789248630489283809077045332455166944458679929100427642493543117470252710704075642725339975402756138113331228904152671369440135144389075983627015530489334332683732245147142183842103264421648293031667762653685734179834229445390735657344917101419174654156772555464105177064583857974967627472109987555259072838300926817778707104605541495411351263502222734935353139309351227277989825776627262551480505713131817682166328668166050420053762355006047350481278457023869794800644070509329191043288284455007965355340117241411267994354477934110677896895563399256520592106527243155396197858685694569642776696709270626255373404531795517764312286924975932696229184278575874074082128834712088318514323636863417559435123831533424623272384181745738644904628141070191733003955059508198358643817298081183346877952228529392469134757538716072163707350949516852924764430234680850501550387988454353247377723598955179731071731958710180361161011542532517373644728892294717850723885421067922848129746358132567487850068641809931394575389134659213847846100224676165176390360979029428549777561589774096511221854234611915856391058753367715512562606319648617804824413540453649593826910094112160264709596424520081782052538375100050769233802033086222675736152129248033464932333796485359955117183603017516171798023800143964760439667810517288444024420798550202662746037708686407355871867366412980389109199389323702178361055262144279137287401184792164031692890967362514937842847063656736154625445895730138755156426190630920071542692425737306517145150979421160573696402802798998322724397264918290576760949402984622287784900813707158187267274360426540339527195782783732301888973297573370369833408511006404254211722424464654150706482684850144118456516818604602677287022877850445479072680792893162879961025574623362839148017597283129977091625818698257943956700640591747174973754381703125052329143500415295242969348869476258008698116793314336560792206772686198495580588203704037766110003145327755119765217723503677437820774682684268380208629670426115221508130252777386853909631654384205936379025167996546827292835978099173795229039690894348785696283509890139655421852640483660290792799745915914724112994405287761633435547662510662787035151345349642772455469414752126208015723965974653797689654627941643937767727640263826949167995923970582365268781463424178434958235971810098347446464595378570075861353349062684113463115824100888043837189330520067650617405834289108252981712662247050495919953157841793308833626348053939284268021862586018216172212692520998067290002099400628619557290757323547467227030652735159948053098001454219825669523430683244585242643536565558040011622458547400033515337602888957736658825344188017765435689866740876905795385151369468832999758634884935612483132350995275867511478698762790755421675396104459059051227592908582715813785100385309352821353599618833850575015357290480297668431449886773220394257773134867982548405812003156408737029696146136479575619020562803117666623131639986984453574586456213605918547509896814030461062411479061172674985060694012248042320767546886027458699357090263274042817594373906941488119585210838908585244165275469930701268047573822101559897303135908164818842481175588165916588545940036190307750981203500361516505111182183815343685697528872728722375812317902086185710568505543688991909299641920745072891206534163483927665135983184362539962707528338875702809913020802058192112024107437803651832502221173557360677639590287652291691038314072833086190677641444828469142470971625811646160024153650565648598671421661024332207673732536377497633629751044823389857428953346668094547645244032377467072060244299012711082286324848719854287042977936692635604889465356205244320763486632496571780369854782395134847687928637257787835635907888800610290023586502811164389982806041302195074219546013680826795992544199071145138051841752494141385850869565131465515380012185138758159387921968787396129783758074065498226418591037447859718952805437591592650358684182780470091984346954852198441945582298381012620108316823757966791162456601318823645051350684491129486767072432571001309780184661765413556530078811118552547247425014542353125787965592880614268477273962773067884550246349901754369252615731181177615098709863482095151296706638492108249271469218113389738989931628311781622739524546837144374394814189514029972674301314848983831889652016445617004276738955680829232138741341968407092002542187517528676775143439669855329881368430227524790997176560457914472952513579233085097295611797356762813664173879308074031489087399435666900344941408383742484706780826627562953316884627449136865897791289049422559115490107864059482710649147758694962535515407695770505905265698364772587947774379465622268545260331794246023278905380629259537111357334273870142836340800656179586414408162167717692393353136693786798545616833544952314146588509438501475155926614953997239353932467248256150561074196847485797910682072822538809455862719047295854148162209710758423935879364305324828494883102961224818068887215085847719095044705355079968881840867691420940358806576602309343607262365861150443731595409374568298971524367816949092204742481966907136078505312061671387425201844144635090647414087934125406003486484379611883369941266782461028570040449401103865299124251921991951623458679152414595210670570550594059289748398988600992216934632345294709733505020545792762745486746291077373220858049968919804202568324200754522786783751595151456698119196624854684419115530274060419262959094668053649798427257859104748777978469241629430968245005013297713114402239847592515367259016346599369260567865814148161904838437621370458079427162966016997216622746131515341885336936031656399905904912072923494190269742190358847801678991384311975620648350951371817198042635674221166684667586177218189001341018096880297249389038018386459966502893028034400418578077243539549008075553590840876735372670641759275441371728534723944703695238389985091549536254946596908300982027471183141464603083098680837862391894445738481296053619383929265326689794163116799889185905882414845845426073038166037689095552429183588993592271060684848007594303001477073795200945693039668569461941087769588184060015830703106245600334109573018979664291096691675610504465268342967991695277488885397842314629726296757604679880612372038140250792458127422213383526350176355013933843612996897067123930449898366478612639293182739607521038335417438446323512287378756955728479667815423568725923985361711725129765205348921647001560102435587281857441842255315443241218416481435639049700616703802193607470111832561131995217002941093781625082836614822912322510181250484255142388275369013525372077090477720372050389218992328185905157900242778012639346722281280016475364753558823214839603798699787725098101808073884406520259945826775328827150228168688281357804131516295991474659077595719302247472959026699869932880303418050234455083314227379873955243526267900362637514675386391685664535421155582867405787116689338857912200621441963134649310256066840944663638659552264560645854844579147776806766752871631123815299214404483344636143880812201187679791002907821151498664167911902662789013237288269010806033445089529929275685559904860327358951181762871206186352110234069746010664032955526871099738000853883834926659084626428173885203557944958113377426878934123981402323022696167945131181214875090646806909422560573085058890481720464030531327615125636696529366839967708002316227313629853602641375264810941402477846563819195823610720384411936178095244475722916114707872811268242430294361786213348274745883495450357001151822410455693394381801884168338521474309673999764678278637210151223342159689266557613562413101214179303073673309213259967127201817358830939261028619920714657714919173239961625084497148889443805705564749566161686337667975472615694140758886477536076766826401006505151780585071843546467869759974925443655068874712029900061979031187007340047289695323519869724412691521456686151757121292734407884312241116531253247998948159017574675899934030854035671722196247797624446374409966760791184710511517161893465252791053016613197824254348291697903032246670759026855880560374546506380281685810405488783547354610914885722450354505992716042111427197448135830438789868396626873536430896130761772642139732612237213583544714899705938072555028908274852346116832754519478817446155687284342174083854236145914438691008230364684285560931773881169477016979191185870700823254455699693317527252686407591016581903084292982483912174687761732822465481183715156932052564189776819873648812479849962341788999255021580489696919119011060795726562876735011210137299794307716934529563952384768656374280694234235424287753176128247538540681350192711233925626989945795077086675480647836562668547204711259393309025499583024789720821747028665100394423444187079595050733589802190601370648060828689837772122594345244376775286475847344229597519474945951927338874650962679260666342927420462679649107689629113705679249246010909640251230701884249671580348332985757711369038948409993103200454674395009591120280919527552120954816066809855516717339711906710845635805207056169621565302498630947200175080206734199792123113675977298570972500438626596645264637141310285291120723812754876157366161576959143964682423646440326807320743148372565104578822797531926453259944296594962538820184453924344791369495180015666455517205212431129269261868137415383127464144397462072595190748847168244342749167754898565024346372400166429419233871296958044840614012017952170644998468565598574745786444748942684182699673639605066808582448744377585328044159414419754912247427548234462055808909954206160976963041054739946733719303761019592033821871731600217293370950213780923362880517333027953481125631056407289269170853974735502029866299947650802064443136669206118023158456845841024461427443156299934375496644271310893596465584266074079461170803305064259978584056590657755142351961611851716487463033442078670638902417139400108431030063646403388169707167470742637425060832567950965569178028302461635915904448980481923987010885742504805310442679336621846201888041909710931234392190784606154512325558334268009029914961757410155956369769018357707054998486279059240219864668021073193264087257602502791254246189757971004305421791390501629140166495695639467399821468779235140728898603796142179458943733081904179747130685822866994616940744446791520506293381318897312379700236249287232221339587031754624932769326591803938097445325416358934166195722726803926895150642065880907207539487644521800807711801744264230124681600847889885097912848695434855025028073775723255404189623110815613492774509319364126143117953127599627469317950097290614650452462981818158132165360597622065379064338746911595619262341641190546260716251915343170426605276701475745094109640665159417623552588787964686266094076108745029083453568386689046561502950184606548797440866988506063858501434851779632208565568211633238350001624616763367986697042127533735518877151191871374961193477094564845310732700768158460525212356161701292188290562864063306122679628880767048385473625994326389946421955256670466878804333469272272547125106872461557204566484598763318277659055624157819694023472542846218629154465941206910310392484930506726385791083575046254090246023292092009485526914933478569053060393856360940303212872442215930782929662331754943814946073686155429950533845069016093552127672783949373628264317197832976462870275381299578346300454639854692818861143659206402899662366331208411236761876110659885115157009195208250837867094489949411078792337458513709862146523210981544997448410033202938020481113706658689325944043858307352802814883236347304807580862065559245780192788709892811870363462177372976391695807362296866318672467180201206749396025158313192498681648909133049572086745721173209638557903019160330637874996123496682464064202605882551354187702341257149176968651376078042567449048822701527756355322696856367945084453603705678786221547734846740521375386013983380136256041066955137714432889201694349676349043467923543306656427203547100394993830459293777065237302019432394026528463089814551864203170214643541999423523828360376682651436869444491599802105673717810081549578813351206994794410820178496572914728256671744761434624528923291296303294240519723300537010949758191720500390779710413845908605996699659894419243871917400369463128788718028181360671718433590356200867847008919737820654778400469619721575156453281811781710691537331457664623429902146968761145124604472012753758318314320623919413839798751914907190718271352908147071638096977029305515325512622398454288063046246719096364171807832121504584203388960570513528371578498477936521457476944665865516030276819147453274190100211976201027902331730250345281636150890385082393906628706473533592339184993391402095209310711423316271816866915760295783309561704017678310348234857254789809089914310739924753863346399195794759198115819513883829273491054591954343371969531534065312866319840994416099017583192856916986622756835325993699112309923106438166545589331725085913310145008920706563042559028812741723814304063390597993809054589422243585230592288596669250983135762849847070496162360555198421844578681751321897696346196780956438727177473986232116132089061356948582956975362863642307306280401959150506616824793435915532778288727267831658047640744249324735932082544083717202525480024925593777640142968231337203539980843205084878808722154678262692438695854536070205916000400977836173789267200753683683146885989504726106061336017003936074680253411676424600451711529674869464067024100641825475829713085847937874230601836871847416401958156567226021595891827664187453759937751587689417253214027179923742876840451297908937265671734134228967918461283116123201123625610357082115246108923689918619933796025017947260605799188071578630287236502159766723156406620392328212659613754609793163807955521204646747706650885327340898748094612564335210838449118005816722407136303999492330708903846711615377717888094879437101489133328817508817454158950215979332770550037283819802966946872757672541375614249119991816586614080609475488330984852636438073325944225282424476688910293883628806626007487294652276025392697311741844359858433727953530797950782457052914575682073038100184717809180689211231046615618954424720263510482632601973888819490585987101095528515015373967942443369361621498722407192821033352217561174852515680777771405353421344145049605168705881131946606097364830898342816500167829980194568880652746431414007868336792961908274876996203032354243370140923707999161039090702990051380922536920977124331928192562526378687000278354420041801557588284092575882868869520391954406637849447384877751959741772975599336827345435460491613776418856700466095212484285722368917573796919824187138763847860295484426065007383811150280042115011678640582935281682370674063805302368849124176640247972447850594970887558368877576265239347561550242302570008719503588270336226810572603044813211656345215274036537403588605319207685679811133625435030076120195984372292983661801132442432026234076066314719059498149351242712575530277247244339598110074971961811027367716349935164455304298919012765883750067097298428118749529362150756117158308144326041543035787301934979240469101406660772747548334653800072804393250328249150680954440404111945436773275732085870341682662815620182283622076056818772676517544302281818811540280133943003583510807226663356456999909793511066645664271123903532333764764231447622459303605711745421537087630927640010071626314472857493262019808551542188122749630248978034807455641630133185288408262762968509774761608268862636220563378410796437646288366229530336015678468123206427622291138902772411040526986542170907408668325546747194263400440901639110519486772554798796481946922044398267615167214962622782180107166036751277535912532836763363101374479341843074358182371639291502677931370678099003095423260638122123325303170139942193007148004249518232850048030796010872908808836312430015750459805298302463031086608969772965383367422618973720314400958544128341258538262756526841286829692652821833092340426614711731927726696605899379283286232631939421924030237722969839309924068517460812686644442556808347913904106316448688517694716119020533292516780307217506351574228225201630307437734604499492916668522354389269395473809937114101835793075401364276642429988493308336476404440730546313002651594364316558519483563844608860668481678505991451652587965417742845416452533265230174094076927503514262473987570727933889608038129656116898552773474211634225789574389158645224169787216532595350142599777245466925207338390571813460848892046895611063041091727996170201546692101535897451245034047323974266959348543320510670288316753288543394325094039599640713676332005294935319403827834190713424712639045562969460304103541768365895829167075189621765291084333087602588743580271340378258455379282680466554819158172792363235922301993374591791451572344610062463383475826377283350343487513476227322617255380915392932886538229674978706239472775982900814797725288153650855810620405922539300071254323807662097756238735423951806574262580134477114403156441544281922018102593756692229624087121281859135890962016002985705798480445304587421035475712629855986250806193051204524158755119218717340924493559074925745394485232486674310755893773244159132958591071099035540838063094913442023338546366327706176297297794058330961646546734738537361108454912513356954322576569805328798396559461736592839627148317383817628242604078024145249837153257086636677517353762817092118552029738997348558549573190434664196612644886938846409987166707578977153642055039262242125337211620194106600749394860114627744816270490152920202727703801082336808794409356543622074074708525401018340112376021603689076259861335902444664361457309480654506397326358124896827009331665817339793708966270271953463995044078617475755822851411978334114431676997498118814122159989005243782168224577905859818879861117725255224522227465863598062099476243744496686644066237147837801007188046938341062498620529535104302193653620208526544637580326785841204263554131936807303017361001269208118505097650997692235183642403649179792010368760531564510586786070795771752034898931830547159270031031696763794117398165541674719245734427898568962115088715270954465894464023013371866352814351517558847379319582189049058137816447118222598498069795953929405797436373589503837027982462208512943376961064961319482778525424114072124579818879679451714068753062391280198300855451864444419728815768090818240299894276209061656261437680091539578737483250899971453284792389959838940336015664399548142181798643486820682308728535941911350035703008171518785496159362707224664094710228373825393888385148580937097165815487808102998256178917102458164980971415494979673043320061216879833622506214159095026286876960920373814723846716581354496225899639014940610634251133724271911590226247691682503595548677803700587097966438718316424893816149211539978478039873238775087990936223512961780877452921727500685212594320192604812490636752202364494517819121640889110143269535770218618170314798209183583634198684902731334660808927478213417413558634624443958022731534594477069445985035119084995354946816643152257134004633520108004147573701402737623069027009136775354587006993460281089368806281116703825166882887643442419135308910327410572025090323056825093085450868220146407881261939805344572057134630962511975384139664178342369284261457899882326114036106257008155342888899086747768541061515483027685100016590608167430532780288882854906912590432440597185906057289136434519958473873554272167688761316262355477989606941042154891450324692915998008603885885817579434882098719382519102737394220191283636131699672864480233394803538495237194581135560544481025981795736623138113419425991439853829264106198303294797557183090193986496078050806853078550553335465933663113485582147971318334480942891077698125045120935596884876219670786729429494213004449579514702461122129429253346780085140249236493952348742720719455971349980764699174088549421964234333872178470802369498549168373263687788444641233575658364314300982733407825887296927206867182026033763504443874153108364894717101790723772478530373962413549574407976428637938096049029410828625131731362095308152602827619447679625592790448799063174770056502828732392080130646692391992745180883186222097611116462172252155034987430597024427453581941447198927547489535167036526764907446534698972210943069393595235919159414696040101261484170807035494094687776222880142248860912338559875714528890974140223491474386343407528870266609512225231798737181983242086562851430336216223754313792947209464049299076588466613848173842769945437949688778538501063258014445125437630066751236133432255255520310813716330391304987254415905912897807756319178392574655655481092432696186866193717486431168353078047292700782310113240870147797552851039911659559838271212310299068863139600980772672263321924780194855046047124854095624580820671079790938285770557977512274392332015136502896444357714560716981655553679556779348814189625056525054436606674804270323635837982742833174947814650632597674200264727904181677721613749978514200194478472737566394996393666119889764759487462058541040891505577058550150444017170953616089598241039509837653156717937247428311069833328024835744908517877352698533201450540036205569671524876095362606729837562482539803400381340206975774363817747145139772731278901164577490272316603671187144447488880093232318191740931713722560278090871623439465461845022258129784134304825718119012209849502346481891539098635527785978871678919894443552885311436531239867786573469165265817546280701016542712724026857100328930339935722794510716630039841477079304469809011356801570241431865620052758211041979004666640190765317333946707059227599921886337956868168181970631784375441659798991155654351056540976095420572277445838026815063835704370674364183726182722331621132457064185806888609356096313558019096004938195956357974398983486965012170083967824870444608434783928355787364298952982954989372789528510443655140384013919356785417863066166587429514787262119238555424093584700361124005722470681469221174595665124963031340783821590988899802522392842836941879372694992527407005028585726345685310416261793067049989103993369354165257610285532373853317530985007814859128869730333966607620424717110437854268556049697081587801745369189208004712767413134502636434747342667992747098115208304656274588960620091861530516761698115675834631575649540762086330632636674092669548536352751437913391116800400070135641550302079138569255291133723010111896559259953436271868080880567361844380535097115872939053201662391685358262307290788977194407488543178011406966393644976817490354211769903626575132267878718262272444069715965479112652731707261394789127153414707624222716990100363032801116043028842382820247618651133264771698541210917149119294590366451557603009649662295083138990757192213018797766029503131627919571293466226668729374321745918242854183182093770152087085359599654659627368331829657620959022170409329981713786545278966162380038722021407187347065696914203167424389275416994292371108873286853782646070653929275161709440650849097950751012796251400983475181226577801906349175167670505766412495024775869530493974252806782852559291713624160362819791850391985674958925016539253706748608655700889328459003026898347670660736740850647981139352542580509440126333937428514913296584621157582308964096482072444273764475409822621585564605573269510678142098283669355192433507887160764827021530656855937244656162830931040549196619080560961863479158402509122775150003701890580147383576025370738349514992285297741111103089256892281875795954542633496960217680828178213084640594254087443324618573299869118607036398030545464621698417639066677455521878420524182536322966622507415516935493887040092413106394574905711783280565339136774201186780865539934285428423323525808935309049949972235481355323255244772324941847149694038542630362573069230880541256727613958946197384974461497827461743687935620051018883518508713870097108430691138050731402383087198325893142426616190549348226943543470937084066090414010474195296799297704806402752112557067813843394260019609595688331776556280727212513259183965139176339820397216049287481650237819738904500333136859200647492662938701770578802783198355608431189066202432881113840605059507014666014070882469087384991184261239549078304806538059290252955483857223326328759303174351350866805965985623322120369351015525714408946651111321752936399165106992323438865881551107739855740570985005870768910894909372165400418155583480289106263074564909218598242330586630476160119354846942348375481857312522288458980183964388821673026452390938221500691559061109195287128760909469866425716373806946003883901045986622223951445529042241171118403454601972694653014074377409678546612314423275445798955900227582969669721753711770138734525012204592030511016037608162859104413595166703736164488082917497609059685868721281436061674344590503116974407861143288623039674408758716927630031284397049548360093444165176024667179276807285893369319938761943217348888405788015955363475524144321937614294704630689468642438832422624238529953868951956087608818176725324833567108301372845361074056086452010354923545956399048412499315907178654440997819971028703420979699664556319803288474678252858018091356807013519401102657486169859586989382030102628763386614900657510472887754676649807523237876172206987350203701264785862782253828741042650941495616176512782175666254433749479824023375742163323044571848607174088248156578298034191171882585427879148036149166858742479684644385926832332766471219332546387840320716049627273397279173606656007177977425524191328228289240041510489050336148957582507034248431109913413181619000165611407634451982535414509377224563438656207401883209502425723161143200156087800224906702369823854071320854867372988018181631684916339396014720881066928785432937650614322218247467631785671846029912348702130092713436298262004537613079610507471640430730847240169157226075176332217068934877636777230436041538195861751128101367959122281072077980494565495433980062514282246501176479749100782986094424639696582271602182921692266573948992966546832211102811130648516765865018185605395739355716497196473173843370118547867889961599605737878005492196409757194601952005307421751327386490927848972171557432087499722809311784815182976650018385275667100089475553269907195194689573963977093284236381175621395819805944452789184599838410474045775334337590548257182727518997290387885853630714725525338142145833292140344103294756786844674766264616137894780969728012502960257458451698576856362839865349157211404655845010727595249935522119473453141530566268442739116096838064228737069404899317106130670176124770813326967530082120360450515409440275105783289139724293539584781762707464567401063257247060086329327211083063064578462046345186013875781576177933968346249345626951133772370250354748059010979317646915986167177339602371592657649744874253531400338472256081951853107356861427978166966928818247499609934296309093295611182339220274579008157163765779246039716273451940208872017394661777397500785167945698341569082610001702533123582889524032710003741523975067537558994048232545378137626975668840034834925714161343552732670210091963989139742715340546164456154257393486988046512036549866037660795263095170758857171386702127311841867261360300058241818332373111782220372419761377022916192857884401579242054820548187712565989212283309225859714358478774345530381319075310515099602831115129718325427912132300205818649652993462769715098282583657715548511711088354006625540471924153230122469101369940723113548146276607317776116301422374397025298252051096809134247664574223225453119739302423469019033866062065269761741123034262678978726533725695286616274896930231226102171753351825930920303678545779009905129618714973305396136678348992854877513584829268709086106612207192432972375131855538814517569706477352671383825468332717108914390096707502931452901100616316028095538132626825423250757526855683485036669593049652030420063489106512867295448916384733803966455612753303555609810051871350181410251339131243648021575284297575327876179047695943251432616325326082430308539728564090739552082511271548117462394285800820360523273761154357617771248989466876189676299814022320141424320024451503887368399755324808548944244408458639679538756903286859832836054525585279391242613268149486914062350120383017195188385294487315861671772550623370447495175608412985888887878171039527165599497979639433552108495801772491856424101959057518253515019573445360028284889494613286599049723445434936703211862355411069280521248724413550145927791166304714029011671521646736720580248369918589335076058791629867185444025929982013215871318881839151677397412772127406542821543353115559711134730178158923809628532915144895257557260543933054237278832888679833315284280106589087273664320862152641769785223293976392290335065452127782556850164649924269809717303295899878551819647196706651195651994208185445791980626266030544158905671166036939913658402792854067330907186018244227134933180284948683355341173043305341003476793811666474676110600092646804302853357084779766375359864009970738291376541285594898294970304325407855659814523811356522534580170402123332010885667500915309336647076398791912137346152110702640129667382375922046693296745739500421371626645367257498238723878589981260414238613535898205311928916505060223599024780566093357324699788283430809950798835035370232637917079668667296341674576419007703453569115679283924038483336891408247828877712480166660730421509413986314381453283272232774564798014710365925516775538514706542689181762047357788553278996454410400591017817702720914576438735918619191932646072778097447144057745947322515517504374470479087322059284215224212471206356398345246157062886318032799815288221111690382919310166988330362845160419933384293600388361643590102341064371324934587468877390113166968374692707328892979192923485047098369759471461832770872791320984442093747112068092579421993346598009655439485577793207766817523726336239593166329424030064573305945699729126015661979770383801671823542857652589911492535993391526158483178444924343087672361346455298328704968501469407293325135405073188045811176033358303951329339504788855616867205855387148643674811657645764640048133786408698772754271493527903354112765361363144392213300165257275436771633120381281763553324243921068817427352980954277308059935408324258155416328015634885863229156751298096224160355100155906342649793781286474461256201513028776434383148502437189261567715472349024711281152711112585423251244064656948449815491580368089112180173869691137908817406073862600951247978793588539298606528459479084580182860959065327277671280098388603901328847201350032042258882909047363280993713129818007096404318806953136142299208673434638743289656224672605650259578003723523163825475582525483418378579687874971159163846992122517260200290320573482517339528260708910157135364845763366035511499475751960553725295634300775468132590729476717246460521090353759317474469297549116295590665033384043640081034251851183263403946729870276996163833756173709422319824406226812985804337974055651945035454752660221413841770512499006105231057209241948091352320642236569605348831379272214051069782544273263390406327099947787088013241312118671432188852713487314610811462929768865459542496242597948408800143232088960668259913969619853626967747445841687272140373342276510552719689682334379851326480931033026369258010086723468614558788716278855877291638311186566861563663264086482000429884553638439403405915070336585013164980951238032114073031334285799657619417224378901582354958739602884390119063960447245149860975753387395523772273889039616439534588596446600039818136840412667782845824940747533130419687682844616770225858236461483178531147433510547735973602153200099164818854007975032602831674187231427339543997789004810697715510548153203111498912454168881542542855792511200315689299315991795215860027860352454874521056100842163431747782348692817985772855986684191518872413952826453919455986593686672117221399917879691838335678912379495098438818008662194987003890784501843007072905244046265764181678816245200407545370658162830552352070443070263958384543048136837539933522112968378760684933185262460236132367336784242023955100129597868175301685629544608356839486115101690602640475025654588104105157955812822644254350539208300855209654242824368087234746680747907923547033715070481909950651045915346319244330511408310409512496188786759992061869812267992726984542940155484800363012215322681854907306666044261711808817089805316519453682077050610566784957675874633657368383000757095800780979829821686463104050591770403755857668959875760935079121243798200081071250593324390913913019856593356391915931104384259609740689823805606681818139072865358504334405932169838053316371062223435767627621946501855895892787159623111557753928755261532144456022890171735666480134696246663311166923363806983308397042840982953021856193478269051253085009224016617750580372488042658850205724869556710968715325502341356702190220700127972081079702231789867111445034082003381063142620881465593040019288376256333949289543980434845733277850540868960476159674034927210980870210050564509945196421133900712167312757375054768390708409273825943743305728263114361454453647018156884674207216584112453262099804040281007697316745171198267122779094934529484583869717314401953122448169562301862699344487626884421911209700477571753210616431983918940816628364426103702288224243579757830115445413365879879764223581797050746336686841182342211869175308542448696102579378445380190696176666147522723083744719061368997220367020108830962367169185092981895211098748277363493003403799462128501264044229699218371886462781780365634458008986371869153125574222899278280731166740850276494738402624290153442580129551989555702586667592047152612430699635409614229559031237802150467664063798913507331972727231756784178941379369293264879429032153052600560285874588370536232298460908325976687037814518370687758168789666297599210923370088106026469425343100663318291887652371597104383266563233755453995418583886021180562854290945542708349122358239135579775032461605654416760229681822714524866604963109495310135248830939636171154382825038572142522467493232102540305527411572115146752431704112556332399119247267125051184821156842452187396025922942686535037091358197169650567200312148198021737585591721163138460414542331045523565051376262250564523896069878960605361156617232783594624112077030055350645083911434236325728998936782778113441716285692801153616916921676924278458393167483924136441930211760032077467145352819708120870861508772320820504301487365399057058474473144705065918272997459930272177864086811644932769554819286516802530312475535930703116645109481723701639043836215719456042272505178381296680191785384303500976300557795496323525794566092937580970185533087416370859650344691359186123368191416991717359694379846339143866310770701572884648003334554818215641036198167279461187727265677668028656730148368071688392777506388747115413267895917553696824205522414506904771626469194245826021928858042740807254506566595749943704165920033353199649744629702266678223446173429101077247773546268525507078406807117517769475117331547206339833079511572738865312621823053424641316012715326798230952740437921400950309356042595492022664156685020346298219606260807383576470608830606715100794085259379059161323871786075409257460727179362094532601995245752614439415251305706926311625498323311216138979561505436208805229609570990172075210635961492594221369217004059924493677028612406358643969697753225480185669006027163378772294635567440531497594656871246846153256351241909616926849943953589485571396417030549638636313254322593916791537341566547177382614542442101232444733793617194720953037120382174697381737246353419666423554940179276738500845012051886972198030431480022765669269310507306340911401676017837216507812929792255465818388904117211204691673171617317935594236757408748238638680526642252515288963805671008815635690846368217735273004199693391765609221359813656434880939444177452372339179435029199659342543699230839479195856939082164581279028911571306640042870221661851696715255716177349331764844166901755785588926079264830960717813322728590085461579812649490759397825879980707543506832972742859873388128465191713791588722277184695893065894172610820554027527424085442555843903128677871595235598078800921605346488289081550202828354503286953327360825998568869661015737165040045042885238043561954668278398753409297912544547503257720925926420560244318863438778302196352955259913840248383577037762627004282644554602548535296475664920706000704759402166652798829020414293742539084154814305779798646728828858676055382800937737514209763870876538885783036114480779530840945367252793679051975484815516417071883611752050556213144903491277457617225822700144094726257736710671397409001997056947175378891891788019291064601696335655366419950626724273223275081358073353231983807296359249086614335171895502132594819109322435987259012886768186589831028570989710571724370223752404090752983203135189471030300050809839033989730592180012165149197001067149496757403801709852021051249162065557000045152949895067358965659032573087044967132856846124629148415364501537840619745000364339770023669528138998758084275558343450988432732618124831679388410256870032549415398455699473194715484639792501562193312447459804530367813583245456793478558320034402052033639089241770907855309499597808769242348706591939182437758821056488443336927245218987749326451750419108977281356656683710604459999041320347115766034308530518515841987612866244491553866950189818575837228753639372672366612641820139339979448208058664203062549903817452451811461581065674826040597169340644386885897178685217205583457645887565705892445270691005488829744909984040317200792884401340879362920285544951670521006846149837761163776692728266463269971358582988926098860131154096439214681115894763864081948894828754737228780030019007033237530849810736069067612369292139402806461568966597779385632960790545186783537322298206471549446856341233998321596514854341693587359630498159193020460290009231035548188328748296883000302158307169446913194145946412361245885468493963485647017240995709988036483895541647301095038963238422208851144013703694478865589332665014990387627630154562000125487925493000424238729131347940352744167353870196935976769795204898198549437774696074221617004808617943432057008996033546287698721723774087673191181154154029689715961477207125856089372885346337819505697687180239144389121287945989989566932887421807641792413151654925069000641583215343009360062681739125704622542274251894970671763435516935533257380176803621466430813323890708254230627385577105808877206692009895311378889026466354787407861695539537260045705521345531327869977479804334881168076560112512033627188600964251247094030154828236101983835191603503575769150356179550644406103527019586172420589175957876486811887320803006002763775221828482921478591751021788149200422226371244729466453891680524707098243125058345116255472395813628864151347506710778683920720581066136930386484717378114224956358138707537014561267714165945714640664005525430126959709133754735760084850791385046785146755971845903947066697397318746014239416154301173332576899271891948692840210811927816703551162045043803208886151712455073921209165332650876608828345981925216027421950291373318262167943739763815289053702841810511595147328324020643340237124143035658654921085778599029485762064571162752331708230815490792845216625668508819831538698575173673000385604175668630753160296403992042316168505297896628479303387714340471264530562647485627253708937407788549474657393082580151241193697098343631083227988581444211667942377479352871669123147843994717406556457651465625692880338353803602002725021022644016920228781725283124674557538305564261576846331701465271771819598195840290239995298046144415830671848436825031755548104733601849226453070092770178022681004583556511587662034555217249990737700126857162546951444381285223190242743697223727687586566270741208231568782398768640033817871342755301123971816604938681114610204429819826537318777196787609937664292313855587961677921730466463241463848550625151495911573205514628909609027591081151491454978976928088640457808924405007496880018765536940674011347117806067313995939789169071332320662468402011172527269374181562632259994614655453699424382191740635442467484874634857714050964554683781768637797510195956757286759255491409047094451573229983318689390298057420913285947562804275788251723819918494918696453200428165618051436059597668892983089004768956973348202270637502153570936326462328086185142651261330110137080242690901280543551048009569706059908154717018462579787610013986399307070701359234290253817568488878632344480362863915803146877511909245493043743301042276156739294958910071821063360626232305974053873295318548706801383284118625977214332575563079997895296297028764487850931577878183643716604242577187545307423996664176240433181668381651232032615854018860181255655878832001378187356827061207564695810582009687940948643917807682039715768746448027069297724293350899066898880477672774204549925925625320132184965595253928867695924125048948302835911847550869419214141369868935475520872373603233859902394849125578842474784182379671520784192127082580781976718773075926486888113998862919774581981849847724473517069135935673871964619510785164288451148060043871738627750928709672712630683317396357350332728365355780098690375969902539091480051812979956343612039140849926258113246730432209112529816987000671171378827456162379818593761004429164878192160403301817053512093744825188081941017072603586099234310029600768579572145482265079397590664907867324716581966399830791190466743329648470535993839374913561133959405181023945697194533693651353242136127984330249940146979135789833059585920996453601731152090797020625052904386626035882140384015814327787634179834624198336155065094206509706332790561297392740685736523616735612678089455575679323889791455960339506201832297180101306214345221975603215410881048648969407554232847264813537856564331287242383132585494859270388422709976276916738022184623294236243268577970047834200047105231293374928633323018951026170933285121019268874272993108054235611360846047444027611100072212770720638347891151127801819417980945604672329918858500986382978237856317006923525666968725947191658026307516303480492391842456695629558354383234870822218353854950178981051040552231068038260107484090416455401856114461494389373746214613917468750837650889790033939085866792116454550771392595848264038124209890806517818033645291250377453827771346860941389416303573000803361073196532539032207576716115410142997095687587670910779978156021039496062532862726489375632884956079301795959319215112485844492993695935066079485502378432833190242461613482689639315726018923454836109288309974578094474939052068859565309751728922991523987169084970353686048020962474425550817722002659631338211159930160319470636987449845069454015051081371118355038955254773967704436819616319606387056426197123477231430294891892203810981710932760482201351900616396429448696550161110880750943826915641245115403283405670626519582273479029156477606677413727570947368120424817053649268145405096810589344467435073422789065921284487806863653064227754291615349208243458872450053800762511183023010319766943760034658365789784700031510266552581507454542372430525545727362759328085499405469637128641951981488451522888275762229167953958534932337087049292084558546809939985983010569516981563654296796097615075692961769736249651534594718102462936623207269607556693354078236374896020355997045883482201979982964334869195177310248569979961620954509026735350066310996922540556761142025405344286060922820461964352674192653117422904988321108559214805355935377875563718432233880074651839925926613772251945472087629727842356642659050604151487876143996815819127238133987323757464306727015934255758436533151170326890304399028786273226179447694147042422355985306474714500342313509378749507052016771214036887974741725612700063251963354570935185681562668609137035617177709244543416133052410785118238303956574210850930468252899201921344064290778249058544303253787123130476304557013044007795286733712943597665821293807573506465502256465864424385751137895711247785161036995088807416025665302451889195266528492172572581927057938687465004105457909665851910691846117508965790824228252779169733132401295530552865302747216085894126291388157402688718835229302585967407963441612133134486039831367876090451402872646534642253372165693381036807515103335505905757268296842138492922274869817327018940200079633952685599439499497514804024152866710779025995487820985315295473493308535015762580244378852108305375714924629088286044720780126000834747195214102534611967757849534029113642403280941036393098029453824388264935316500936186241446720448107524994995857977760111676860128066536349147988309715383146987536564412700526835914787295846170022985309806866070146005209545946770762071591348574797189866704397214489462240819195197069734598369920794723087189916445759914855030888505853108411919433370363373230508777534995201434766292043366472997824776931913522407115712921807306549001154605145161552794472931547033706094598517946403436245402368769855226774149741260762466656997506725131181893050201556044294264375846840224706809641492551761354819005398865444848304024728158629126881218856730662707008553071289405534838055916741780067913465673219983986543148097074545035058000811876249013043084946943387264597245790467063092138254103547856836383684125683412068080265246954314821361951655474763748868277590085785235057981026747958712087625001132649711755949679933953680239560504754699883009490447946091245266299717876839331082159855813792465558472048919580364388192436944345592945108993511257736776447806870104827785121035887725616623770884415362013546416989747156881350926669425842807122471976980515291880398617653375460432001655071845705957186686366604293651809575119518464837203269182479628892298851940186249880830445244908914470406809155328141743757254471400914116276487820944688904898417438556189945434506359876313338521296293996783049182123103373338898163172207162846139952841230444104265248149835767277669879676540218699252716681451137413082569353048454956009835195635950716858779961476768160621328258703781938906267683237533481331708950077066249097150360642197782578311561445564859253554936185684054622878074371027656736691108925979047840272424980764780903860142502581545593358917778122566227440915319517382560949496630315176558682741541914016742679702393600349275019476666201623807004004564311939302576641807642614204275276463172674274853523971230391037614133830213218070386431224131011444259902536395713091361142700223716110390040128225328574842628609271426811584715760827146867673434820136116973291951476112135879978804182930751074764792973809695928516634592838459146284546446675601085402567973686088488836928598089421075216919744225542892569975097077375958363836194440892243334009490224693278069497704713306323552906707280187202442840290145829246095098850203411409964147351854914447641005097581190062961518146613765722242501486002433440022059895730945518551436741769784251149645111638956764925498309376460091171555220565045307317021638465714967786554734973354659710614064032016650382075821910081746568726301205328818960143247403971896348800851688546984671375771405006202952363421444715487857619557943277761502108495060898325743085059776252620792977028419938610067724096716345566889528192747460513910746265302221698929465615057913616284161633593158220117426709866234641859046949145984569945914861427734184955471235171383530498552982881950969644436358058286444352347449669684983285750340963794411473832807030959713348158642028599262166524750926990314936922890950264223876203279174791019803547263333849734986921715226055975333737679726333213133692161343381483806727587586021928370628629996335498932658372538790679095535915963202799950344877588318760441104991838730249023189443355400572874563363591202923718196038605966919886929578321569088684573451187324418608146193616031451500346509269628034440731015043510667725713482300182492207146137615145739826645164374182717438178260049058252082331149341551639860086762669403934190151340408314520935906375015686867502181616087030713542084541509083436039942013168902100062913832744562681528841489442411935588845683778760752774260771265791534704822852791587490606281795067713557181385509552750037212977908678343141554206325139699036265631719019288974014597283671962657505731328141508996452505087059242025687988965018427889610512736321313015053394457617937715096406596227225679777463180324457964883357179983813416899722475660479957366732581006670201917115517591566270282776838460922874051970149489347874105557396570147296865715408422541544731791784090150915707219953841972670880545617787184136439748363566006138890695262215211588897546517474569251893415965727840068833822692544933529244696449625988730573385500917751335869581449337159774836770304629305562914037469236114203171204952065606977310423655383750639232298198698659943244002515546604842225217368536679448477364957751212927615832866598564699158799533796738186755764910394962588998827750727836098880312450089490446946578286580731197926988979745445811317712908023433521031730732956120426006425903387097121822935807620665394010078196351957097689424660287187208043487964052116448305473557231482959145324097088152122353846532601246515856305571006228071257480903586333607001868407883586907233367205608785842337362010096069611560949381309804250984856251524296715856761016278091492663818906225409247149098862210729035479719149505191792147791004917449815212598804970612562843132449733714538281441260204174843926428318664684439500793615309934017583052099872788856670442841698837161010507804364607453412169637827655425211536588637245727820791583926950823800303042609075685490987745052084051407845210141173125991507832247228639248600526712671211369869215912456196860095755308944808543047447516252132531648642093995657136957028095833148221397046040920233685911911849245898868520631761828284774611235930775065339354570842053405832337431550458980728073198068146935886506111454105012528613352394144064547687254676453057218190229720578051645833074491286231488389779462210005408494450023527959951051861463107320917187624656463959620240432223373692826786654020813946936538066457573469817852565880006286955731998086819587930437504231412351220880989916604831038592186714996447025994188200930620771418188579847628370780068954298631970712060600453772485893301710953095764192631387160241871676851954997590646294660073499270384254511810169678290667185507661143490291248099040677395184228954215302575799045841906393509033677713123691690151623680751636414804724793550993627767397171873076175579318530822949397215800469109360238271892085638536344240708452943723773823039470681492402533990941219321814867297161509353274152550457280743709040125436487342669522719328136786314864733072491837649732692961030411874350094393385791353603772474255959497232379482659415642056775018066150946406742376902420832203520313952918068186745617008655970672508566773545608253927016703843346001375876997960513397002350579159849054174919217609890070524623311484641794416763921585298296595499756927450144696761695620947328971176694058230098535352131462527033525612374953000667542087830323224304154336773638821830007479980776194971865152252154814900005886513878463801242262772533825522166358844743334356936435526996662377485578091608738013909914722769796671866864195662648392646761082500625939005009380645837068108144578096221687316622158326343352345946925197265770831040725517800231662022126911854253537071321475346790095240318672525809642866257897736504365895998831166898541767700654505808434631843779763521544989695582861107013649445765465029703699905606159308955177628157308538419755836037574361208382903673729081715246206009465751841894279336404082228608665159261965868686222806698705373638199600306105068088729785831586677994778604899624515322527805149087010446928906382883802439189758642636691167305933161384620503918799477505412884215995755568416327191467508496956165839423696293437702108647032039726571069903429902255970221822170215932247976395757590142085403184273544279374021186914638301123080605097650234049149545302345308571093150382367615119257578436383083507551717780586621569165725408748950130842834928880330995022312212957908467727305487068088695514295633953416805567056168701252263829913525986267185937435670459503221011968181319695147086344246146149175477367873584572580843411245763791237994827501163829250517400048754558016661316887782272169555388796306284408225842458771783942792808943642080035158562001977409271410679454544920941617979045644855451941742898637445577385439637149558981498757311256601954432361182188396578406766038908965479171028668739334771459505548852040338986644670783685707283493250171561797771812287398587998004036922995084431561128632131457186857922062295205378950020318920803773272951886868897717145943808463969171626106915595413950926531924373138297496744854512212132131377172514155976190495417995672655511886222531111908770231866863547538134411832239701679608620896031582766124044851195431606182497558789642507773955186992059934786693928712590324048676646749214881267936062600266791627187395628116335374126231776543052970158405615080751378543700723920970202357676927644947572886580908997295387620670547462649110374531528094564769674469898614737803839257709320981003973431587055024336994782256473086808505704844965031005876936266992159890024122528855346362625771584617724104941196406344479870722827055555494962822186247973336934435180325002915095704569032765950523335265888341113753084030269216163777100404633619844531605568932339035366555670569285045370922541948961362129563301814669571686993971939850913948879395268887872384663233272821068903327663798123709679059679334692610299071928703355028625967901568854681409807645829492502452256783992557550802250740459606902263449627802265979256108331620281550319784285782334777808981159771510416017722236169172544030937152254202319315056844213155503921282856439839287624775849306213845654016087203335576253867947239134590863077949086105308972138289951643565073647838069785385861880599063680454059868519849121030411999098051986254507532772207289748313746166240656654093218512785730756112065526346956886743083381947977504697649274389489625152610514842717054370435094140840657600358817792764440316405001508091456814333380985845202388665071635927956273999105005363509150914307380214120241389526592688445048684916270869649949339148944905387070118192713233055762506023508821258845005441479956730171166319069711780377955353497001148386163754426293547068914142884433565311920850788522548895579526957150291230462855307838079862138551957347776851246750671875479481349967135836609575245475469904019865750177220482114780523226378007447606589293935014006274491742028192192874903360953145788143200601984543166388262542127889629707924716098383443130249535069511528472386480563716195932118201518267191581123999663484432760481028142175959894465149051773747817011476175801515109353570764517554986819861035859957377515194082233507386403262549248453550348213873880671483212625521963641743871853388752956811192960228474670084343253538325181082759109890215658303932596082189547072859036464552210266334409785238915739129982500414000780231265285246621419985057594269705700601850978854754409489941001232137745392999430094311743420754263728475189228690931931621344886741949856654766565551461183242951136134366329227992394264887729861832044314741009292664294528315587748606716369340926098276967837948170713814192851083949750380380798345540438818616161550400319598325572420915916658724373391494465817626534495644498455850226111297510555265144275210749294880481592396016102020370983634159922719579230141879904642606527642472328139479758294479057279448857935973745226762443649884136775422505891576234158108159276842539787406963194158067486720129365382588638829380240514077797298978789789798105927846808580568459712184719225782701901680542786234293375446628621713589178747331942118340746374862962519261011526627831126265029969007985460645690925751603068338129277282209200221417155489409303457426423637731138034776164766095827457328721497722869727238348074930705565632313525478467979151573748005691346587215083500482803230262210656061082874422922403931954241082609963061732652469083653550098821520433853548951730978025819256004167403711415882698232330438339744879360741110013234269918183309824595254734086290948748012834237854949455458523027332780623194911867878796962908569213460708024156054916967110374758483267151646885469788225499355024919226632942302262699830383976617292908646197270810714342623259533018487548760626706585884039108871520220639854214428391758948636093364794144001464332035641374687144311964426363209960471333253106200920948021084395400016454578075639187032613684477776327683845454988561666885738496835427096770203484708734171443223215442322235875452589519658082709179462198758237702054496411028244038423405192196262579806022150975263018560819006595113212360990098206409570744100047718803183069654638064566073487184985350804755247677781017265635649521529993624424804346043825777570524838380652943456211750831958290860903220831117465113188001047136875552276861026244268919007282166812188606581015225353184942643922628865927187722105152382320399444897169918687110086398278985750828029937436972686367118821783370185185471587422205182457420656319861359700550681832690628261449297427025283117345858581547570746718736087605022243830803325501256949493722687370559849721132498447231060259759574822096882842695659537001148064168721307206194398691303856340538224024256204854625409019826099412718092278863554881735954030367694620000871955147803540921524140882165377142731620382040904929722090171381203820644298514216020173712703395966174383044528631411008977906243031689067055522391184091373744587602968963519907509652627052878061658929052677140311888855635129414268995509116086113125051522983170815501730543346826195465325123549869429337748141353548750887009514605200726610563434713077507790923117853106169015329469906139380861772763590241523137821963782173859188146265613580944820758570730030752682034701172563173706491668548823174974031965398374691615977530698553131770108980201188709451589874174353781824872955549350234758101426345216251473598994167644416055758293899958426304788186621895539576334716114732030805361953983889739334716779245178921664135143369574809704536530135361063191670903793069405824264493943931758165675626119648716832155546575271529859934970327791273675321972637911557645780038028919902362266797669266229546736507109078216707095278308723522954099638659879378149594146920781696545687924336261213369775347012121063908850448906826768203063009693528263079354195107888780546543321734156374559406846537894422720036524330590395269232061561483133628006533389663717930475615355051199519267480387944641186955860394073377649478050439889297004900007513729816487000661374867755947219363066775723845920940211901284965455792631985597971385705908712924358514428367841226971379452573387492242116654314946063738588714262456876877455653566938743146301292628215305271664807056238252087688527542472130719419655768746589320412507630212585747236837492882398763878239498660102676338898940785802552417359660621878520527223984619130523988899442805713769919380631262880195682045743376617659670061140614521689130143625807802693273521120202777494604223227486777616316476353872419299845575316723218433162788832027644768483925163113087037500967319719747066097216069720775684823533734601677405682393685204170181778298655728060926216362768208597248977439985129617877548706390287991703596005109604193231787199642080953374286766122328757843454528414700160338531683146172909483205025737759681614124995843316919131011780233169564530168638977414139654989890033339765739905558788415594575418356902596210947919604617386895781231573140178434732132379129931469593432464557669831328052740140110391580569948151257620481873162149143566536856784500229426561161826961078073426703656398839745574205809454779991017724435151753483155972929267237466669829185039985721801809269654564791949803002146353747392489790215414401957454702665414300824970278758386036778213676299926526965736374367303214206119503400249423079837358347894085136986786724669008655739917569168425346317844642113236246213827597492518670730950441249066195757586959551617265798214428007423116415469050409694687469169390179803277735107803182769810749007118682484018498616814922068421065235090828319085788301535288974603679478520478841060785931406532706244045054347078929229593168483835236676623348185015133532611530124010626318714882094829131881367639098758269692783955236027866126389448944374048959696045769387763248385700128885056512365108219432676895117550957196116146286718769428108975845555371987886357561403859264688387356817954956259988615020888546937394500080110300739470754905735896209248261358400885998081939924130549105100009765321645186712689533185216406935161310225901277943519651421347423418763200226403867830191269088680109345602316302152717320042600175950325253300914502133953394712058456471482311226596597303899717167204323826391270596481432683472088903263456833496423649147736024958873428316222357154966462312453753732753533630337891715364687231747240242162210458919825116179962234675499437141067583072309086783132923549766079343594078147533157950162959268090922387220443967922656553126857699210241077077303606253657105035981850700489107536106541359280536875651464921082626648751960257144638164551732500556996589514048279490780023095032137213521450003783857696285082287529029308330819946586210045032581274518351298277023434907165223040613130496077195730110068339306520418533263679890378524309580477863624092142836876116823537659708429156214940321201206982892940412026466033951869304182424575742178456045680137283005593760434083826408466000172151071297943404736126002785079672078582361294008337649055526667648097801889262983375938455062230684547195338387073402678941157432954408246459939663293854907095788130983204219493122841944942143663355589966707201168581294020212511383171578087243375630066202430316937313534096427408931064715075420413178513529402290744110073051251797536996315050654555187507553000420236985073224302159980999503357139202816184937417097333331253048103056355413751658313867240127157637823632783042778074661867492125117025653939595709532833047436988274811223439408102186350008186032546536491010581430324139800873062650591760943097709252634086000629286861447437171529230342690207004285013575417552205051199629628250712589017071067832277655200959400377986642592291221541752869785712909153165193693700667291773875494519321281086628277386712885794529915280909333568276587192363361243822189795242904794152025115448754747097170361011217620109742186174161232129958727844053496764619008339545779972876468693820661145259568194097682100714530093084753595281723315778156041941143827687847534681682489789764873368383520738642680342253322407139187167601580158203234542920713720108136299111344996384538809145551225086125582888594001493403137499162879667006869246622932804397013299948327837235186894937116813729567119471116896290475853763150279069316467133699234968806537133867763901919929854220243216740545959214594606699332182503766162458815885825568937079167163671698445749993670740843659201126691629959226543808120763121442540049096308892963151699809887545432037418360349557452693781722297623241949502150788448805611077676865044471435640868770448727158549094819469109597890623894801493229495251275084711142413380413443538557122743838997749195337201888137828783434506608431858304543083945169310362340104930403821684420178743725499928525287452152744710442100538200434276597768606499454294171807940994976843057489315287585751282444932699447123627748667562857053547740736522031205018647698681300789744215224895678057932306238020290448743502416856483345526762631768923522169241293122819506019839510453777091502875918097951363359866941661120358271559422360248237314749295991005391575685397613198755265627705444676651619230497367569749156928739236477625382919933842278520088716158497138225711625809597461545443991588067964032167843154546259429986824134997049441229252503970757785562512446981403446815240417890116438960297793117407435043981004252260903474574787629473726949569434438349384891477575964030482729663012436154001681188998443395045280873519734489549559114938114543409703981385582505117809375610420950432046619676721683028428120643882318329404625228673865872270641214749583768844533208069348645664868644754609314446850847750699840688026788393065554441864109653188062842116940174380707015507405537331544274346270279351893845621323585281358467063184678862645113495730689093696540614529573434286397440816955731311189246112220534393930601630895887951905504945101998944851733783256296060403662277811713715233635241081591541562014656108066978133458601385633206144355061171988735604322617109030058083137265515583768414426890084668406639859018746948607080288450286491357433736311349456619970251003754642602564898150957750568356667196358125076407644248889713918602204607839449804037495625697351152819957691035400498613996607481507065052803674964220232471923679489194527979015588757366263428953782445177879322554499938508490495375038461319810118666186582907232583095558965131926556343793413118373235592178905218827789671192352269066702746364301472812026565946675071351454917602117841299066255458568700373534351272900447078018400315315796949088474460539907052335713816239192741831815529678491280387275397661474965847953549595587467450968004418442075347255153483789706425797896790609828540198389909261746947612924037480576576236725875069355081107693448172144946436239659573212730783740936487009694737613893233378149584315405340488052378325581741216426305431816975213545500278843287971289344120436090562243607298280027236540791087456876799474193920888726666621913728617291604894330335212220378387675196026918708866734077816182986325603375847401234049832863552444011584302250833266508776258134561985730496494836752868154323816999341571431566299506913310396348898759839598353490797645470137398924903300617532146563947160889738102109827163837654059515113324710483620900796743722364187200142595174202961200444226732523668252012555145707233162664772892447298445090812358863518617697229062097476341904469011202006078464858604382188444775061671906453616443006758502316249723009116560684380966129693642230187486530473017115684540563981093658672565792804673057618957039284834187662088536872231287657235116172667426362248586960884822336003512357974778794097125748781001838483127961055118718690498137306170497331202322883785858889147700451936076273340555845763432224919043591207290588152311295385035032880679075435426314641949790674741134298680153402323986904768371835173630400054009424741768478939475852422684529929000321966814208039379087202236626919739060800956651377056569053700958839880999669478314484913661019129552455428266406430495390535394182346207690788869472537943226918608068077633185967051519472578276645975795732447221089141072954177383082219533428446310574380443962415405054483596773793585579388172794109979876812471182275003681910805441241486713279569571907872793105375712356654536109102569915406118024583004640618120546198705260470278994004586798501895243934976260514517389217911977602971908179626635901874560864819522557359675110636120282164082196003574541936871522554701987608302539126006192261451549434642410130629919819553912056082616229303475178659686134294404588401468127975774052181405451564481458095396001551771489300458794752977841597244973331237645783680277090722996769333538026617363086489712682641079445201834537989305094023789474958701377920061854382685769229770972738243911575764337625881078097994152298887669635680450654004371701267831823204822160925405191171733571823531846736102320092128678497089884896149136677322204954519735701797780048021409798039904088546186535256797221449461962096698514328206978798059330827287810091106050209134672655089546661818620328986408009890935136346185398797103632366136396330701234044138143619440545102282612998379330549465658536693493722149440093768852145044677538343481194239996564727446153173363973457053981944066784434205297286787262342087504078936724805166689203103942411564258468176264534525130475816411508743660755283490787356722076458617322782822616823912991689818494508968815501920440025234252306769331468021801471885329154102022157445754875062383462370140509556338634677041996553506979883288164110239465463004791848453079110918514720212280569389148369268980462374569952134483820595146110079651400068217987688094374658519701856126353122937968592908322010658991488786125074429613317595037881684928164061252803702217244265299395417800705283586397086852890828573460014076148129642337755729618778179903406736927128153499924389714367539383428922075623572583970063177607378997529796711545432080593254549899726553370439443247070260576667312944685160547133187792827639607412724411835194211032348869925653676916117830531221244383940803212241194321263425701055220048216564259834441114846324133816381358467997096806079538557586650212179758580632915166899742920858992319431874169613074189182878230269678701819358210508091909172952794348476334263273101927644894347339124264348424074157267659839861680852394316839282501371534046445792993974765137279762604888380776024543875188114646178592732541944968181322548237828495316995027132284424251611064464191128747607623057378490824719155992110126115449473658088965723541444873389588678125903722752110411479739664036017337417964625866991335619606247773822636633570408059301598103157805054476923822952055255575292864366104728973190387527419673214313612369633094575350399347338223478590785843080118519847258659230885208874016997236372850594216124069329900199935610340608144293218116954108229180612726439800592974352677219185295074754808547749051838569590557721889507219311647129983360542884535228800259218023977427257786781861030213629727875472925676318986422734630257596074694892667643525765678943778571988637195602739166822099818596910823793869402311218114244383861230940442935565349819557623597593690225103494846628159716898408033637542032668680888759960128237927216787280913416695511179380734753820634925274690435165946118686477508807306426513169969581665433525142574143197405746580497276357487734062972018889532635331856230557218421268750817556312213977801853613762087884663513223680345244523071515965162979578914033692624054081137586181253450153352209130484382310144622140956865267792853312858887547132906847032220547819641151991592466876466635714516735237435838059694518838629996861243748392134699748029915274634743499025106364841707156680033907216905781759701038666204208047960858892458040912617679443363421643387868869133813061576252218273751941113173255386495906760019026210722176024598074819937850468321438017078392114967999135258869076574135507513438602827027990956219600229744928934063679762754531413652872245837067464985294710977064254115679989891229489896902816609193909941506313404138980654517647927623486807712897715602982085929244080566636597041465338483463905213960839646476060316422552605096711067562241140913091639320644883317649755255995935031643443194060409376824878487074301988946376579395234437516213793439267141451550003118825107884866789469638572408450712584585440354728086656300865213383424031802807231222857042502049248439696379322958660581443369934294434594334924384407958528488040659379757446625155391294881478819900503886802144587159466596965976682570630807168156685322193945282070754827442862037563784040175667385002394951263384075270716689779832257744760760815168764950713379656104238736606127426292913800668524830385956274652854940805020503922846317417482783133555627907491423898614113990692015205930135165408643985516597218603929811528501585893412494371818359680364993832607342651175228486447068889481722061378821411799046418485381109528285047156287224970764006246707523144529323469025397550756516719456744344717528780953986493971178983477184676654349062921269812686926890395693908677777840772136478312317212998981397250916161967888046408587432134482385071416780826944370959828978446181072489908182071392201978014488077520359119371863562865414529911364544967385945072902219335963325332638558517558371463677720972312706097789889172428215015154288316738934889528861195061275904656562103242724097279682438844709215204619321172306202580164428639145346650184316125401482429719697441223128434243504833705797443562366962358527610956150970362659801954414452447311691100030820245116196942769101620271827685643275162941814511615150657702587909688124985188796401005340902412326017257737415234521338776039595130126769189028658684127255774901802627834994459989107621465432923935559299704832856044490794556176907117253989461012131151799047149567174264163798395711451072207479636927022706644389754462603783899516348806884753180849963523453027003219359372996354535922553352524065934091473604333372312025148104031001541761258694077208584588922220780114945237080142302803996170020154547976343572293001370165120497589635027932374382728703615377249030527110022283395899589093787051840057633158544123937039782393328953177783261111125393921379332691905127061322474040199293424609734223753589447872020962753002375130928020729035594394276546454503241145417650238984675991143699771051742947843902502808983856273785943202501911087551259782664697375608377779610570492307005185691494054833994488734219265810180691181445044182509701493284232777419570805491652533997891800540913988043782147314784235514811393800741283385020600628963743421082229533289819098570447148293194431897200857836524675833788396499903691072630184264231764202411137016695910301134145960137344523976280829188855355790343624336266631341094091426924337368614217916733215985851149671230149524514818108810857946881103133659114444600378161967928185470348222920069699648116793336586559805888645549896923333048248887221352269435416376049213031988387553123159000719666148211228584958173604806991151759623091765353334276403332969556501545697554249304383998287300508940767874868176891988744396627858834091540718244072618280411097738078778990221469275078985696768569509069960797700670829609219852812798650266876010660563531417962511061247167905484808318073143325500873440041614819188720940177344858003835301599358697241466588360569378649035945297870316087769004199386265734175384619550596443626466288936688500920123310499255777317022658389104827188529606774104325654296473574478063445792499290795320424712110272563253813161527257482277206912007802617945827705623566224593854034582955862371558233084717426006922910117433669854820097223011554170908846507055870749397705885702662897565848469257347854737515640929974490822858056215347349564711175010724675878624243380794143301200004541310379289266814484130821284423537990637682615852955468071820819982294567350026158111835488816628575555465723961887557528233438982877062811348883597489025978979596771333122145552693640817742523484091622829187658469086427800378528982353414142101127445864635386506442031541138129316224192451504687632414130875634939134078987464715324307642510059815467248775771175671624577563569701346812429375091256189087347978876058588786671179806813286014482350317359614310033061432011011657116021866883093564143122566921148506174845882152285830634456302325713976838497610004420363338408120187901323284300802025262300805133456000216513223996399458515509643753262767127254107455624796615958516015760979206867941604885793196681445029020503389611649739669961403794415066175561062721047906292450980630395842755988553119721593135870884594230768992886233471792528212285838660716841521368138354667732447416802434879757267786269044762263460535029585224281415276047123656080873956794278675662004375717912406489878602091012858169507919728303534678269828933474690110981085099093152235523069039421441812309321959769542321765825270629414880492800075439319855353065639525789443769535955586897252491856661542779849576043399479547505105617265457369744066535507699426978816628296953792924274508826295675802301659804542292709068443470528313956406802160277966187946993883364824939900064391439101431554914219769047755446719082833064376812586699312726695420888252635888278449703709358156082127657143680465710554445226165411263278813957958849385365375382281186680633082384479208024567544994823680094307224390595233056838614989911614586083658914437647548561787009342608517003857347189000547544202689248742704017678265535423294405518118058468961047099054551847518864022115164743574679280001343050049450707600563105368179529940790508629937531302143099066487508610941335123413591938794003805311046298024598925729476882725258621496946869837244495608765382835949757397528177489140327678303571080778459617688444543109389657033459459602215055478221505471558022220934649898376958804596408847513452511047698216806226565477628972283226560734916120462541349836235722739225329086153670985942760039475318584579339677602056052352000092889828542105178528634885803243282570633748265472925141740681020863050479390040048782952526506059709834390485519340429759069484538390064582645159546631849271796869992376628056030081120857488826774010730207596258820172328136784697207027745520969985380907828618335893410899283718655281669550831324920905079620740751031328863759966143945651585887364670028647614202643023570548612131883406870611558705525910083425965494667685373939768571228271867909265534378729695040809814836234288698619485684895857593165097497225354623009672443354033377323679096421118553426614030780349793581909276767392349977047991069728928552867098738885318643364629107492499232669665086930251468191611758848829495517776696944038943777842177709855429382629919031716919964461136498917881939861268495218969389249699062407872754197694349748793765043561681830789784793551019488586098334993923587539505499580418523016852140645320508671037082364310868209062258520405777471651141542647338447213007267944338161404976837402813258963732014884593832035527906006391740998743827636912921153016432247497324790180750714635262719193264233940667874824201436226250500748923096379161868758578896405951008272416560691772240941013689538334655273109763074423110994041682019842673844563188420661765449248601615468299285193302765758212352748602879562846951768726239817634959770981585774535882191197296348482617416694501987240346815141613241960197016126487674043070070333227446759684136356423136463017685671225570714272517794562739594751072831235431635348241666169454808004680295847556658513554616722577197996672707090193226340450798213886197240377419947963324133574327394707555583136342089381453960161366328466988113267605133966545321784528144379614349826618211368772497867541094275260051670370497555527774426624791215478143984355975414112862385702958738163704825170409328057124317405669133374567251981883841671741014423541462746342434717934808102987014803698783556061988963620555776159792522922972608095259666802899935053447567134817260788951706941496217305420852291757915249080704073929329115862861251745726277967028871748148991122223174530122925813434516096917445601413346439237523317056008609290835140595638623239695079755550286486966934238330528689750832933999690871132976081804723878220946564780423392353379635672228975746180326884539311281257668086113875619270580014903222437718627436383086436730419537654618719736819287765194919056231638129829067339627762260743743072645779966413262300812285689018814529416119475587804094555533032118176928701887147639317430953569939097355987155791695809237171203098931427533278878525841321316675684226824167191310652922354492577061051900993450998869794071384934921830870514502012558288440111659304057893211204869225369636033594804190868703835568932746188997769734830467095038319353775433407705967776929195924440300694744189436050324359325968673554383035609659011350276801595347111665140495324878581196525235261413678561155780266696981235627997507583053712089332740765325213424890291828011797025240693416852288226846724624931532215496916280308264422729206805265308735923928976885572988187874993700031757202745478094815076349055463411561376659703617578985145259218271252635454247846249671150223466610886595597622734249084329430440089940870074204844292481959227369421994179189916703301653014822598780272688049853098007262815323059941545594224222983341976949638525197198763211986769593270072797482198085336849549224706770032598135094440366723324008690477243813236468309861071507994127350675544373428182885811723417289967523704355331234070576809760089044866804317129710643672431128196293451407273089585704879137971291112354940476919579232142722974113064920948395232064277074411103412512659430036242497814241322095336999956587427112738089372116198643513618375183168389548441793700763376299955093194011688803751495664859064060533228065212264905934482816765991149714233415807768145022062931958193771616412975510885987763306153914411318248405366414609524527413005530465258211073536686919981970286010704670274477644790025262256091469747666393055141384732186002102018903160155968961336316943753959774958994013749898404675500910683246488065945792611213882640064508292552565624656370776394804534245138366816763785550640285366269596220206546406179858614668334642337351714810829804673486525583408435574946569597574891382112635865112406606794234881328809826420340525724073798547256208663457353905271969218627207700993196102564593529754370025835201460419771420505630673930602743576494755388580066379464401932562980874998037416976037354792516027236180692731134097959501869503095746702356234034345155149715654522706833197102405078177281148628997335065346257163604329516487528450856149271010719755930575077231615633086624361212009820762725129022651448453471206935232237998039179868439938715424821328589801087745010904208153020427144544374974376228692822024919619137630072212497526778732828743954200548336948533747886530252054645887185698585066830857652448512561545171660170412470614854077273420485527839264147807634236195323779647273629347170295080897684588163364651433108921617130753291061069065418441491007243690586103017744548710336184476997435484987126383650076616253094734340600904503403170748749113289062336540755248857249384162474203077901348727683325774589429033998562256383852648101853404417546409322577333158669565940830667826009865525104931486551052851417906244097075877583116128147532993350615871900165802501727176899323808586128084524339884111534374993403315652610032068494969838590346069770521144660820778427188544787755969099514488719509384032509554827772744832444640968958739799999406986102188603985412626532554877561796259172964911215736081031541239709401710454268016365655506156484925457288332578914759009941593797228472834385659597538962297120119869612199925663912604042749832546468104677187131800606155868831333008052096158147718746303134433394846201032667101293214676073525199729916977947699798065744124392482044885957109683171878151417180183554481181622209932576576659732755841482449013688842343895477504105717450579212892856118351712524577736060969549159476942279769737083097426492493558160456852911622208701244506773093707570015544024754352968969992631108916126795836863661745727448105627738833200550348785274021247837579240291464524650546068152705228441760685650728779507933465569280505245038008350433329559097560799271474672452408485808532050245393581204125033299681287973337499872763004569663247585022555616813383397211015111156317617660079579018848038142001503111199092478039637682686754929291571560440666736183794385212077743445026734046948404252643357153237519757117955937807104826571584296052243130912635071355926647718558360110486837663720263626296452510967501321249625038679466921524246706178466040140645781101562648070994200266998757898063493363671291642359964732868591643232129163956225306790715551923134305588310808354260512921861724719585132312975739344744799074723157100882572840536183253203637908991560779071260965022676020278656734027781536000012602329006271923336377775103966330163770718237755289651331612161629636439343459247758003345418033485852441089135951583323556493837940386758566903637046624660670693456386886078096442328654481865258815107519568031230478696642485220963154534064130587102644248739916022968216193044331623467197236109868161058684783633800685980515779524678991559189343313961946884995558213026198582659236380002112411736964297062945489293303070149860508710248260762035641266700594438049795614948758198040348422578221871255919378515978090872941547566005680117498257748177609632868388370971310043635566906277696606575950401813610841629865497608438527455595323550288002970608658396012406865394588712517615981312032336107392864579149320834288191941773873353252932077656289307468391016276621456883446853891612727983973209085178246927354481885920268930881066099118561517411085292721538732365116689774682650432627393628781626131639034644435533015434007994663722185741541823688793567324885070684925734253668626011189401984856804748934769589871178415281050126496281181125484425507176742650996644224706739087718404172358322206599210951756909027231331600638341176418023995304613390003824915727117969868944930179786542435175935125047421300899945366192240821574295041904952399683520356485583049143743109965421302298245468706795119409029045150637609497805241448154450636777792453967887002182731112790169890618489449107233678831225124979395269167551839088037032113346445970429024050195759481273910657541664674579408496484313831686513735778236756139104354730860585179036843923583006494879904933259552575779151071892528447116577743742940317314166667659657127103074407287930199552268430680029291482753993226825490793666148106385795322737600972291576527714128852299625695589026352418863429099270334722065976691439955468638057599055590032382970600046790667294276877874495333531974729057262205139228302322901987092309747537498833304388675630488544730550267969728954153409482415983423905693975899593080629510928926330791633972019705044457251279454739405352501635585423174300969069904632182816491731640749939865556144299009109223884642654551361192374774738921143124350666739690402661025881226096598331112425674223718345849120507419786191379115879108563244301225702854101272176141825413082039434931060034154951977389522305351367669008147002413079107486752740618333751949124840951022642313788335521936185316859751783435714395792863711947878681942960680488991404980403861960607372148534348135598435933156337187280605956813120215145272281271726415211175022312267234345561760162485491333683266119914149961337213212010178513753535564875257595848804343460075180624043925464436679808564858566237027360552597776709636779760858830807090459624814140360721504761561313156147653587653387720002710579954675111691769514327045012956328955175766909247715248984511589984485751737686514676009614206050804482461964802722931542639921613374962747049430545523197219630765567118058692447841495452945764491737107593592458322915141840246674055055626430943084520390195872124661333342463088276532501652282942915066362328231341579795633144517922785872788780225960248156903890406417742686442443345895717458803995671757997441832018520109921927391885489674387489947094689992517465404982513360436025719278428680507176332732732810632466849425796050464782228615754791972986687739639120199431349373361356744859991987422944409714863175933523933803204595934178795377743153661881786736913420983972216544388328888486460272199740527608931609053007288058109100439602176960343968260227389494212449882895110807692977247035158091932830101500980842691790838057268357073649491156834918487772153114558814395972692574940448706541068587446920682463270036089228573798974143932281240687135916529006945745088775633926439412572617867888958378975234947651761565074569915834426485355696547165630751668027914349424102078170577681283320525177381145969537310860892177645043159382125454565691057694877195372504936804734039198273312555582243178244024613939791719407577831870174436481364206558077808439061118387292634298473340198452538963305958389578229167815181356793502367903618268996294654915977236524103244129632474423745861956356689533155025717244767726065925147622064872578346062101861110751447986072532253896526738002990443560317215138104538294903137433407929425003783656796939432469583275577962458839884580868825673214866093216724610397513654278622566997599152776262301042367265800479788655691599589182520439914912381967762682928112137975919296552593524458621408946649958956205913242770375652589829666798001655634600696399057880049810339310829292999992682304839347770642884567962953225117423411851174061229967969539013862444914639865302235635931221828499918064129199324155005689900401300176095116272303004042074147783412479210817573465093771327599442062273572357962811834899262628992357092701523608279240311828775222904644391772755442782269462050092469446130656704478841157864757077454658787132783019240460104023054748062124254040221512896603010415152347090704027597875737007957351905371430669662688854994458386860605303270150795241253127081429292305655822636862170091545836958047935738278450020949742165578889829987078793923205473415679614174777895932395396733859184008480438185249407074948196216316943760570254406789416731423291917248118140536152134882077488927316549145465950197471271589242015395292769454537046956884150692489542233008382063711424363942299430228036414861550388102414166728753087022704094733846065130243481257258435242532707097857916264716078018264156348797931777512648360044798304842326953886846544008468956970155614999558991165549712223030866111298886315155901846782253565058823901992779031585821222933148944674160724553513296922188086395475362231788830778829604246858840058925850755613445392961173692732649676832167036793317252599897082564533092333498663646345361429148383189558243338334426546386679927379116422745236522318471051486933527309564248181374262470815079716074896004807459375082619866543113561612519230464063866337045992889650911598431260584259528139501037688207507508320674468175906891988491952925090688196910889248067724080503197010449178410809473514023995288483552837121187892848314498673266558144838829749679490794648734475233362348292561769594585177236902197276723543426229532580854788918482418131390291750623710408526979151071599708633278571567592045396940577073030750925097426389414123604734212895284259322637107660961876665478424443514200262588364797438782069665771291944620982645412195085909774026274933932367575029771311674870479351206934998380207376252895928151690343416247072904198922487094382607882340847381755863746926704626750976305341049638942901644590715707882490212665904419143583674375606627406393288393187032732480564035796210846955126421145602515342114468997297550426683632305818033888332626925717017137355993170737464059372611227899837393999854494753408616252966277700175051867794601600764186605309135775708884258660037234193379634981772977033845635834627626772645808171618664118831472672067240150977674917109141181338468748025342382190621375156338699494686807904664708339555410443465954127264584084363676668377988183199311071777827154606223974437719372261960014345857132600978854960857858465688308397097977812678593254195448117725214148002795196473590591774620027114638590676540582283423917051082898627141062238730014113082962727073727580691886671531165532513231493456771312487494787152551885096122143446779392019433047432312178182839056623427119653073523516670204679164903120082992659271657538555247496643543411267983014228810095922506339644010116893104211114316234713627322146642998923017179696495949986931478661219446192015415273563585697075546612683971906219761582317045493342176261518595058575735310059707995075478381689841938021430654506513808467089092552305633271150377071925480565473470172051409015462809293818955080708417177888538636579213714017416389270693790898738788116601372085385597412119967555643228541058610691971415412166885898482693779340599189648537129821257925403806146449937794702274713465118035841596247611193340791535480737412093406607565061215048439829005617213542776181852862333877385749847792333898654036344867292374853466577379560370309043247383928013897800726457205862981304084184667078299243860752938693850027229818024926762322200681312259288132037841044095816463349621911132548833088460426007627814934575848913219196491752780521803352185499150852207212764146604500860628824831999761970652523207195439348269078935980210434703994286090872784057603538634357606814054397498578368410883420111899557139170372712949267851832261984704552134138383929691294873113575043002679407725594855362672662384902573480873436078716839362570640669706462486583993623670922769830702351327421630824107207024162322532078904462222211712273743084845539903283303972893826827466808946180688263907649890747947435271140493162787409081544343694194154875644862179740786820415866481296339701917419591068922741613679381186226960757655537673830025443871779925023365632669927061614983302877792737177258765074197717677993317846509045528598701060515852870387183959077786210839172437929832451801981089292937553242297289581966275222798717915765983557192630258707986598448924422265868123638933672476731005715207709753665146962037593424765945711093374881256694069905288124647967477364913411580745588649788686484687137980120593854049856351459146986790040101188577074370127411451012789028093953069420593993989052872330161949168725649030022844077212687170020763864455981549364807601730901067580889557306245523241615043596796784137202696326486497275472063651873486618528174340711793596496457748272979920028335391481829425555045896609882808639683823509685906039265653197917210412345602497113352100324366750245160038824359136360967199055629345697515957503809665320849024866049136750950902277483920839555188545841661537055477840124803871707145994792988528277956316537526595556503958189790666342736618097571787077476497156859493879373792609080924287635304018832167954642165857928217006453540030468733104776036707389627163053278196539654307729782723036032711886811910036302488728937136571039327785059006281853862369740293282396797478997666515066307493675293618292976073787746979291716375884251373502718150070928984980872383169544191968620470051111284487886257463704536546988038848839355010442317993578980338475692483803402679115402563638414662363826985300083427973318081970891884166748514099882833603716921831826947068203955004181565921640369477867746926186110677356701386608563263511409214137069435359454788408524249880898835275496558873205746749649101748043942553431326496684719430500772909483661649883924426925468468495321340216920456700360974380385599509347236319229489429399053328057572913983169184020859130739071631978029344525304015716583802231268284341756087810377077958360447510219325706734808605361183350678120438035265471146350560512943700678385298052239765360356988852516801198418711124419461955272415147897859884383801783334976444707983250442498245010088163835738090674133795690554913375244347857055854332689055642838223050099881691624989621396881713668788087555504617323523430246036843663435979487117381049144932367112438889287022347002310155633671731679887588961556101908379505408835853587394021319711170159559551619469600844353405991540660001446934319264707411182515200166025110849837243714301003654017753956659795970144376121689091018152146162124665347433635778030484711243337089776427674863163063834581188692404689048811754066513895341273176084605652409405374886023926452507552074189170868206718237455399460557144080008522025100205178342000312959822980265094497539769032004528674086951268439080486444398494741746894231424690076127046092690695458746261576769010413971969032328051254041882243412783450370411838815119071798488875270508399946311005718542795340138968001125055361782793824661511276213205912048312039707495551538777407259033030051630848458617351352256882647630293155935719120301389226615595015556838576932493062003577070877012849007014229921668499597979268463881514208310885951116468011324973812571732325843394501774220180234958747788037792292781309155466717163945087984821749597763494653731337926536217494586392924576537009854547134120219497474816882873316646222901680303411634179182203951811177124248673906770743171288577214995025196884273768871506875626114073203141625699633671179567993363323508593933139977177068339212620556114721777161893032442278606551110277133188132990585410203153434994625571683980380565415066523876371153971262518706471477088357270097636714335130801560437697664371805730298826655346927984459670345181479774881868285272609961227593114717521570643007384171823339183907725121215287030733680184700175430611517920289834088547750589710612607420774071653706710839013015250232913941937302104773774296600548167753495272450674936449675542733201901332634516398418909582931694977727543110922309045266320485338175383308610094417701139465531298433056316384830517981514049498137170620348314991623654198111374264311690106970656127782229232513903372399642633783676904302646534575259434875192194654302641943441247140507367971376919406912128410952501276964592732723966217485542104688433230329725474903180485329770086918485203248441728327312238170330831337050571459777643184894437717734470347021849914165724160158738265727664611467939363397670162276338722294066793164740856745292980106270438760467532275667165648812726022964464186432628071080504955481381557737472299169341337627281107489166340561833909543604169363897950248939039251476363055041381194135924975939545787889335128633859053903779601779358101602138163919696640026011741413256838554691996883335466384939291899032863281812016761067395309803298523314150706630839008506233946295263731589084751240009737890710442019438079027145413457816930524417563058539862843680424342344308459366538785604383212340549216611368365615238386996655781678092409644014669821615339339203736756199890332235418309403848858095051052407525542006520698864755022408274212854729095683491950970505613121479547116422170019498569059379377086845122953956680156998193233310369514501343641847106951069959661747910634279193183199143830048056914946391278552113829226138198869220325677305076341858151190728730836929817771112584147481042293402472517950782532710771796924865030834112592950510609229161410324296107490781257413078746494327726789263402622011592054671479042506581149697983697900214137128365731880770441172435012093649945366041560757336842690646233931881341200792759360907978750268681715093596725856082089772869262234124222791041880103539742904713354877744506170998408717921403377098321263688788891380908838980076058630841301132170222683059045746884668184477978930596475636880222555553628851219184539824442550450660356565622615202043074317514683767468378689125592768930458875895278010727796932311743998540648914138220471737802878127487337858359076018669518529830732656339359759507778070643479367364561306420139429797659137125990094406679634445227541263077751072179302811575312181826385113211922908855985418470972737331931846996378005234313203662485490032706955361481151482830675082911067318835938211041336865419214705574224600226079817650218582934317279424948600873440784441151697579912096709287395144882970753595832078947420588279813481151366320711314171701577014922674943230542191633257183235890518887222589077245477700405409958719525157445744226771377922063260886405421794888106676623291444815359738655065368195840057364072594601193482684533001180163136433460341479753413812482200286678161048301696849489617972768471341400189191568085226643190775481087026767630132047084423759245906851635568317293809912730174116736886176683790307145268369604216955677001718643575029780509506804379519353021018240824973421319028153959291139745698671783478437169940408514501728859481596942757063095476519760024559249286106113345721802952815188067716797507467308090364875217167197166196820505525813279610737311444751806403884972589730344638448012405733420867138825442582422434832394711307023045960817388212927495174462490104610403976320599574680652546555945798847121736812394980686138498157210312867743355725328912809717784799857811937788663210881940176644434969939659637224300085585505812519242271719504090486618131695654754020352467756532289217195169192138936109847522826970192158837192191955337919076050973564193229074365172551864438060005684434358876931824378884701745236820107047642319659368577768181143993502044495912865119383388926501396296080996889523236945215609293124039317006274955235938355324861343759364064707494805324229166720813004753350887638078001640785306964398091859666606652279334698443904341830425836015335892593862880192339107645904935718962626086105167620552032631157636460251782191220111761458016777754667998630085062919720870111028205735793006095904527174175676766060622363731772091865748806179087668111972114353145770114627891350301461093721576943288390723476311233290136538552983087130500698095199758899313649528236562259867911897131165149479605939128533829682413782220825747073748393371713027035480450367638946089823282205921879096941097006520728412259916723742825684848043009811545386165057138015550453837939939423256528467385221698075836632928916563034651397167802675216761720623674901315589179127128082193487630188727445762358842115401657818248269208431089743070884542081882974980609971542135311716692416847902506720440820150820671018070273306146329989751904615399503191419898594440344590921691185159821671708423600515160675264543786670780509391272882304577862353549273946705748537067203524055765838297767082292809157950703033633621781359744956709802845190450177656022977944094167166133222326642635686458087780448302338925917500910956507305875317899098556698683868011642758894448010500650634960987022304698596013235221305379567067472185614471317942055700706486618832476212511013041783633629581577406548402248123955601840011299467928309138327054098217543967264458949582835823793494502525379650679785073190064310719827634845465573654216021777658486933331035023135142787892630647689908352331588640979034717107134535460455877427074753708409956613184549782171609849524026620768609249956580200425890726257293742432794707774965261457518675368925065808279072401747839915305969967810852079166466630092430140805926745335008842585727140850231354937602074817111823955826433722225484134636850736172879871812311122516629337377600795435700598248311746176065098091345581546002145585455315484935800383256067180704040038554730626170392557520182530869406380225569766440225312266663609629597010098413032836895737281245071374501743725079823306100454859601708229007881624125105605792824213881210112802229957841859774243500170512025039740086668935797535683593995552966829784708430525393770406265305030693629209827996523418215338125076990660469894139839273819295589160323797138416465601110392669138087955424941316645630595218415837854682522102964873915209451620448386481028366099082547583323826157497020514436487444425649252217984858589808265496815003968939638256081903919969976236566927536291940365294793009534558311690895798914498331477377087126600991321106646940617758793517978176930813579451311534787941584233645242993781007105144439754816044786176452223529607464519502333515774786450786929622070817186438325112331520089892922219075934553187247706861979400451050874507920581363264175248194443917418900675171092007048637457442699433438738956414388151038850991558470437685804358946847951180356517053694016346003199868545843523537883903056637439207328853813316836652737540600031164491669648386969229004754812049503070915167948094016735530038234271681209973046816780437938199389289888878751304873645145994379442712086291078581682422540928360763550880113938780913066675724306908092813802586987156427969914216905478378132147857444982999908114866561042512075992870287519517712546730309136125721432640609364360862974882936126466542956141495010695111994388381537905673692665874735605828239362216846595284778174372681307164991907169418491518347350524717452802048719589833586689178758926998471205548297735016010316332875509507066785062900491997611916686203028604537356471140105809970420630180330254079070248066597124112294432174268986291271342094552036146644508493848793089402896336916276415927539549062276704812874969281721164803160960888579272277540759307927566941100738068672255149534504988044021611256894753204106641155978984472276664013277693791437257561621023874145539850858478781693599682615629285352813861914335690115658426260121740943011268193800427486305235562704212641038073012594933187134073176039070407211430897943072526895952227731923535291841026368786488835601581988765478419799087212940905282725516343037312796278863465957591818753581302578929165578052168159786660831470823326346583440504049512573424478706074589218535757181967546047653989750702631680976832887155426689337938425503838386222685955281633390004004269931749798524489254752975939291307611752543655319272665146245103420085845488205698599138574474382824235404349969573470625301502088337740185392264334251687870701282244874162982846085824622848635662498697096669714522076153220419723605579525722872076518223868642242620738207726220364883991716971440957341424169377835307947212025700789399824979727732082297104958248328520895327881387226023563140189601887503279386626884726019729346511759904014596450554014556113671649538464917656794544326978252670832839687767561627543431330180683100318538571681384498430670778181771682934443202081334680420149011833383833471554842131691066255218452389329898382770489762423461616250378972616351837826715309396718395646406658725541435467675154033329055979135895405605075807910817746005299085552377723961762451525106416802905736296314466889762401848167308621590380439077803037842220425442326909118990425956109473237376096277394706607479051658631182001684347434004681784701417005228774866439609143495127747221405794579517801197219463373436823841401995110237742442830978690035822192066731291511166434191892124392560831279125764886672598662237252233842252812139221558299477107795747893132184786211239083040797068519166359552085441081895928862514618487111562382327634769974868174889824276449961949665784835643922153865333175574501889890035794233590320029325129660501045511822570694255229458090906646007827698717168879027658955540170195591086812075690341194288907554118280403547473691155243347310684018241752501694760759571518477205882408287180682946459795200204225134641556506938119236074136547617562674766106487176591013774674293140104301551569829693143776025361877643503723824266019193149118774081195288130304556146073175962236288641414519738197737448767398759823194799346317931746174504671314879698204647420528204956762634387538241004273920575012096399510789009061937679899065304043044899296867710800530855653442478451173508594925409017831196595702374633056890333471762613195115312854265644053741939131250820955706316615323700522080080849312196591709968079572873708071612483568951989582273406565464699508323834455004138999407821268273539315591239160896029434623516897683032886756616659394161338941043604694132731563260794114360005037806659922439934704118463463604682492060185459851182316452826991513338024163041160254913262429380898851117263478249804025844312310054353947614584181560184118056745287503063291320369785397988580422833239220107081735298831045348837211284953022478594838880329699992029979887903791427664142697522886794258774401530330776472053262564318177447799501370869723895162318127551658301767127355067931726763713070480195496485034552503784636076666520649334904476264573243981757852533391707331289858270578134897563875428081791698737755539486382606992157123848789110346720145897167024720561193733874676465973128623330348700987402606490275585715452850570934974254674769320323496971214261527386947325657057679013304964088170483750279455103455967821138986972015309441419195534532242718927934686026333351762203077575330336417454546265543741734769375363495648115462346333666614584760508481605622608797295912122921534234434898192203396835217986622229120313938335751025950783361683394822867589977194959097764912505231254233105841447426654731988735836207950997805335493766885467647268690591608700416092003570444326175782505564172885382445330318558614315679199591710755350028262606589320319681860832023583131072059915587116918325320889950634575001211497273544337338196028266364141804915235151138474862309183607312607550053714576346638048182225358398410920294939050011124516007517774176891568895299925188251135740864606016281526347776048038238031470635020541093595286350871528206254025976903650681457395620970899308282726004629335857524046598747014140021125327266416468888249138955056265814709271461848208688691272077509589990799545666886016279345831801968794856194404355068819894657448838672146923393323276690082604586638119261167918807332293180343082880536010543258125321819317227157286876265609765254021056621231686906001633871020498383518454601080571787262905968221922882019011726639724831431768512576678848191987002222125374457723819721002063876317705087773302442426105992771784515111085517055872065379279436698045285737640148057345968915726467399955876283821186274952251264378815728887904007816693323778784465695975020252608886648042693131470292247093322773062175322431762951424451167513321823217672376040192969322526139026816027045949309622348422759976966897328628720417881327460379909517590278211175507184293192514472389391394316509467248881473656899303511362407641850105884135852025858164190472527035418604075039241718335229754492222677571788943143943884551219124585181561324994015701302139653499914093094922934605294770616515419579703756136882599225111688106378559311569980048694672173161961580833884552155620068226274904199404501122736209740541761891407084910549311271371563360008726616145664103853652500627552479049052749590981383197413158501443193019179344568744873317925070863383911651148354063765255185298744141671894112328723138142834591378668877574814677855732877526325041147870281360054684230933182142704714954832684327436164782054482451902530818586394591303605227011980429959158533911047870108360874709156199205729267376172609574577528570406294047858199455067933607152008326363445036264592655254221231221807747733919770814171513688731216435988604852738608502865987449444327020480475741608355223286390952708519729569016839390709789131525479141422713174040189921492582588164077111051816342155297912571255693797659917979420841167510425422062173709099679657246445270608019149246481926446095780753655763286353630389788361518424044939002401852693636239040509364067556298300574460502669132297774869869950078407730747297658908560497649548116275126974001336076844869310446636495862893137499857858007017899298327304485625571561180140276974675500447003846268264657610801748732824602574995924696606047930483445680634398725132650971097429284663816786165929618818934877726323351628518092949640705474671043129837601231003041723546751227571602559246252584345725413136838441918800081914439499708087740545414285058816330650862472893606922414168217281448109769103593300881250576156501325367022107946922334652296239018444885362286115712189052245810670738459713339629826578601592308720312343293343601340298487989446834186763620559834081083774330237196312005485057357832738075252725630170915612807480664027151984294487725370490639111632185059281208401883039358196747051733448754912941279726624985843375772797620572885718579001791073203867327053775468644991311942383832191795814517556234592672617788911098318716516054044939050776180865895840208906817977105166249871882671510862260200239591189447763034494060694805358390255303531765303461587242759506091504549464908010369693803092904034903224157627611883829058647833377671220173816814530892722549368173009312887777666501058225774580148978092632125993107023313996683447588696936357890220402982362175784849874250868053608144293965052205314095902928100915968856321049193187069661533447589763732043741865197765588088211243106658041723859941292804013283191079417051048147380684359376323103046416004389584890599552332768688603711133198235615850640482400965409774362119801606449081055665901561091425140108421272564943717142186432315863526397234551258406389523505884808895514668403631049784549532619029059811706173139436169479911922552472738612441993267470838986553182658885348076121912869847618513580147088350578901922590727724113365753841181962374602333194052777826854387489921986669855367637928376807720186711957234933962306916772300803181439996195381628766739282337196423616532297305984899769066738269740439378569903218888164522205587373603767013824544234267226429633574218274912531863133326195851948875508783335846839359584992828252531796519689692430076624398232225571586951360765309226323576127706935899845125089398028128397599348306201606720719641355929302243709507320292052551287247279888576840948937648795811950526978920394587963090939966434385398418499271009684189482776257987724773208211452374798366341668582750014661536068124803749349794303800674653466487377898801779665880983278597340558665449512421843936929044819956422420490351123042638210123862948117308932054862076922159820397086107810892848595959973228220641052558885854519212214695009169678950425754613486669436528639270964458007536739602882720592324581800820653486708145014983723709876558196007796849505808609926473475367497572718564072690991065232163491683272899625228117277056115360089862343753252532928033483501079802334767861764067272628308887300329033881464140051282736895477209594536696370728113183632043573575646079333364218034381101406031456248323163083795702162518098609505078390620391315269271843115858949128029209395766000589808794588475996420083969892420855552969760762819965609270077213801648171777425221217201980427683751279168663457202095023894628774345775213345311524889768405009354157866834262194721099246571072668827691830468816414014766795264172712467343266685435817541219906805481579140301573276927615172410800333445097413617409635631105299246427403471497458136665388567939189258538846543579196383126546903578286654713146760697415752413603455840547418895879926381065719940503951187512029736259647732141827811159485908743527626013960897234909365279828779654210635808091266921478950991660340087659090275662466183206393680721262407286134885605510891600925579011431520763350329563682023333498243192709167407864575113339509382930718594249982922182477517467095298264221389282020349406505693707817439041915054347887763380256729678567736167333553844356897093159824052143045270416975627148842748242897519633502548118281882201384062287632252003511715165997092627621705263745241526865538589582388717074408559226636558750726223520750991578343331305621969645908256219310470618368753608866251734199516715431237437350385127533243030779924785114104642732690166532315970409016171698717860134324137892574534991960582580538048887600922649766420447062251192716684295981658361019256244133352860618989882136025827199442202513696294581819395825492919438825498927006078557001830693227845105413193301635291670771158317498466793553570289960220468196607071610637971285907962265342642121544120012697305658948544435165069812507246120234150428852074249640967217885009195725776746241865317449998720168087980358819215323694410790607097285160060025674298320493503518991912941935178262634776005532097269965369932055477056378391881155335174554204102931526011092750688507740099166725634114010647661482498653724581018192478622488002712970320425394350909249448492590475612736201902493411148495858602691826504106631546207081411434783170546631659358399156810876138916814839347074714752734891184183140899842050171344280230899142847320674894539426567948467504200949922057827026742553286250922688423310250806839599767401583913087424643547912941051336389352530594601849779015370615006643813503039782300801860121698482708047187106873053201556261714406565207648800785683939832768041148061272837566762808001220496137953411214716328767862947085526849568564160925460925524666197369352196520465528165162828530916551970561890596765453976024631186542742009286392602722118872845209215781935852861264769129788209451078500411224687895480356499059913021563236876129803217019315441525267646319940531923335041256516056499057865190920062894378239880567195557856173932331428844550047705226111140133083625739779267932692351813983301937799761219411255507003726022306941395976875579295263487183659134328637182029898654420412235271301358092088705801677814270511785990882951593874600815971257636552939416021348520271194679123024171192114909849112450998032390073698660332715580717912813553054559660470507824995956763094513597185898727300885345616251209931011415351266605754927274847617171237321943009914664739948945971888843417067458469354758051815838692840940468767699919888190928977120445885460142436056455047665499088703988861090590641108085237016173358551444816922143965695385981609708193918141323498248693901190001376074660783508266645569567707875706605155336905050015265256879372459679997017777922363618599623246212299105406386160772941325033372547646682203641269901374556829965897559271846661731379988937533894243111490217884616971865208415370568389516474144256680438304204907838586254449332348179971040521869057453363977083252527527544938852223263282757262773984150328273367257391081424925976504355183702955331189006312648311263958615191908697125617391978182927204974711235099188033937766490467541121928603770241481697281973019565092724529110602713489885461577234045015116662281267486762665331211320241107460127227611097812102583410735728245286382735183319509253543266640513347041302025611949047611277438001503371095192668462799957934132766606987018357375362270735742668272874439087454330514597709132892216923930236349347336966983029205595414781992153582477402281958508115591156966900982164468374956671656693287873145573662522357380382981596534155061145249733069703085343340781065307047535937315152560318080172942400567159030320011390761688607393169208439173195287573842729202657383362313547283120306621194301562393686265701107844932911769245808467169672905062992305233798716100178973476066840822192888146260249918861071198350667777977433951902464814898132559897974520221627756746557738290306414083605832583520523538451237436836683528885405031984025501281975890130339257505524859264157614547936529887085000619166160548570472948592962510360459650486408036655036179112255162752977156627549229288612764017854689291757062805386130400918404075409856784517608523871891954023261275242243897136752778819180095888514871631027943624188473513051710358955178449665831553136889215372929300283981625172735684010327687041793262020044494559692719755399649380161361806176287872970161764527059847681971493454959167503124518497878966694553567855267654963087428327687761248815657105723242014968680667675058547638253598492033582720582455132321092450989577035478747167044400869367677821603758784810662442818389325876272947252507780282746096961080329568534025442306327693179397550931576182733308685373604677386833592418020247212282293571623877296968027488074456382210877076103076347814129190552796042256656386628693954181474754762748043260361698446986159918987324035110156664727735999686488511631232738789093085275605604644416848524055352505526755398717265044092432258220232340177447510814999612354673919508803722407369174531383327675486509064161979557636023022032307526178981466439819769745752845143653972177085677256204633622751094426158981211793625028203263576866124406164932545712300194518701348953326327066258422324081995096049553469314491968731989390793392300862755054861558524598109147661690624638565877250539645887795182286223876780802869137737952110579280467275425483744325587584764608960198976433225230065641411943982816227001052551901629700678141476978187194905075628554885231470681507535021410198499623576493405747270404481707215556381460647115947588586790787191778279900808967582413747905051546002498614499463884486372253272618126208551002097738133129669827007392617528630526787384654345706025701073204806468270804312386109459468608857253248044108945095554695627801823237956841553361328675211197496322562886982576848065538348845101673634032359373977681451500330786516339497596181699996552070943297109450734218549099301689629903464611576101650661797967981916423118663235010028818093322551985373057089464363601869846978322676875084779502110401957552133466912779650003226735573433449672953144059003381745898310645170900373483384791292347260430472313710356281303945938491232005062124114251244220775002985138984829990465467741510761850497496664142458387263179842215030988740138418629840790152651023052060647958450006686235305855003278132641171577504510574957202580432821232276997988730315408833685260336839498867256295664394337417029485773154892238953468291466126309694883973636327013276175591442926658847870481672869580737195670718819531133992752988261483739149006147483336185399731929908804541977423694587635344708688253346269554645668778480597881557228785092603420682713541636371789016523346032562364185304954978545807808220630843164417124665910238597362492538054154602370815262822519703653046425046543208898623349868958275710822136608755828391669487350889881526842239016043164415393691419660751338499227220888999969244623121050259089191880902115193396211091870915900701606389046105697209925933127839204149412882356450592960030721599272380612620645500776071462304261858299227934187504787380028850801333455182683230791634201306297115862788896849596776498350600773987216358799473295022966738433076289637993622046369127045878672717337135329100133855980804796113354310486423091235399406853635584457128948361384258796041635665137194315227767143989955772676322856558287593670976097532651487825131660157644809943874853976621419688908080452194029304543177102608158028469604624642482755383677278199021253716303067439206141920291928019661258643591997708375637593847279232041178265423633449501141350445185345541278655308550337689065873439756354318768919678943471193898281791692233056019652986897662742643980518819236533984183594044724354086410691319002562680347151047843097890287072914770041531236054846080253377195819845709579622764607168370045326514168295403644540490519221845229444907889178229286034222200610215820680537347448379730923473748372630773797684807752046820800026708243095389495902901035401676930277006160876880434372604255624902921547473204304309039995221875043246143587049495860226460866213019415076386426607550209375708923832766316020605520554641110521900562433522101625992509382246451839337946536677433976350357724767988922052723950328278765905667897012518773126310090306665350258569236118070714513551171317736744167668677225061260317688184207896952863764536575127005420388650622451964274055774761630879641191974266126720645567744688313573263138933710318880415533208475748315744080449077242033882174169742031520764703856965368175362120528323341512874351464808936513225612351475617482813630352422540248224657477700704220647456206018057508365115192445531596449780206218161692166813432633232934300800670926321483166946908304241087884892412051078114955527814923263106080900647871932774358498386035677138661138337790037010370683959352602671035290934235080256425449885039820532410497168366145524724626017035141575428565612350763919145602715487958182241243692134184027195874798417871975397541882480125631410543281762602601853407831229574431433602829701929863354275030831068674029616377336861781573440387306786262793610894686878269973217418588319161933423557682510828267516468533944233140220665305481655039920894406004367783755161969199513174068439233570097668638836709561887341908453460540331319924084813259851741845020748557369181989252462244129004667448947010338584840141330479887113130099106392313982798004486839141695083864160043668456879912335753151127249744342553130838901351177076480979939513211649200136620198413599582383457789508178462212078708927611110982799212577471690084116813777535799332396966140365040012511227815314849045163357519897025862524100684788829440379382394823346888407356841900945909591248103311051342165589110432017803208807383958550890356980312780316147720393396290665617461748674819641231060569744530287477322513869561061346997773954438985799979780301806863111727502832488830928130413316887115668892307396117610478199040145929814701459646972759941918667574600101144711089796297123508809888057327554775144798242828650539008717812430791814985601471193243241554475784777258411028893909094677323805869645649783272409685831657060582962634737301875731983556575328838222778377541320127544501069894877714457474028568937501636687218086417544626505230468727710493559316020216221848556517144093272616785202627569511357027931958252018103003323643814407624995128988084329813547253890853154807950208370134030925492788395320090032519666582072957934505494882561768459153195787194800822292929230308626913267355313052690825668848212184205860442016417678955721419490553357673766777068191886442208842596813311980195309425258102113647781385531380132191193701508265616980812337383431037843038452750180830619500022100562717587282080773464649982739505419895671631475955215347376631133224686086365834980219416428329471202506582152762105656735412517882498554267923705638884121377790041304678048290269252456032060345608343147340557605752275546935953507601695159999615707397628751751600363735056145564320696763383963569716256458735652824082075942269681513519244973266143610900231055622236074663794388845387213903692090728679194243964099383932499208855636644466446373800274709277684550975478812005416918099860397877415030951136681612543004842671407348603901301672093889804811380311432766910105634116533339242582160831346000323724890859735978556157701084500412328934846373724492140504640786611348004331965477166899169810557841785829808090000049823054709736877607395885606942766422922882220493891084425092004995085690456210905613184347413317677330339649262825107774943795555431911040090664103147213995888564212161633302884281133255653398130464855841960845765826310277822638431829012681151808431719474135436412011907959326763038340982873626262037069103044680907774952700319664274982510670374020400950868142206051563565786806583148181577944071099787469835170453812247391906481667532989121231313815332723324329205325470098705740999576906570273677848657114420229666013431160961833754721314250581453121512009491090383902457519571594417428685914561676707187785058546563763630871188037468273370682086317916079897554529946173205097887212759657594418740400981678989812713160388968853909892933875962178736510952901346645105223528944517305725642307984570330137225683515604398525512124520761821861952158800695721790505753264228007228096222711839635791811234638783524775623543421526835654031120772300931405844767437492458044718595222780531943585275636200717502968556852326014909875684090290913157893898989672544620930208426779097768759392494249860055594316694156391519286860187615915872399883844108955912516496578882014523713235855839444642721777871747810148305127717741815361564806640282209687688882144395089080434402390317201511213235542778158220732245803852547757339775513190886762884762844277879994695997601016480851160049946253409944614585257411117192987619254301828467083180850653546392299261386799579124992167112606815441489757096503991407292043556045589177855019119312446779879059608238196688138760178890823352554848771502137961654962364687826601894258690239570241615131886613923189768556392700137196135339712526225293737309985934358052768029429837163453180160132485493641386100820212708137394031332856166280507348549660542372532157329519901491848394881482969166116552114580398091953521962847130280669886776423798022047945829828860253907119105991915833273190010906215485837783506411519266127760515902389569052553788569833346782960419473184857712780111390661528690259412993874026928150731044292359641643987867514408844663687428538001561407729421141686577507355042813094040263734844420966394061956522808452727012648128466997666244787708730710677683003109889167626063945658640996546682935288709275308970762820981352199575648850760477488469255014186355109051025321448282606452523286676894013277002508701996287286362372078458726447158105382400121559373665943532833811346892569844672330413793536453095962973646367633174295227577850563276439428480129454247323998616551094875372381744049284907518897145803650476891803769768923988868090714200932147259763204453201956782972963605072937414259476713899950770624493498992772215722224890582161600146155151748154553793429345497492503949458514841773632087207132219850852574884448820055310322632562702907028498626305709115264582372634385409408914334456608530541570913475731247867694235725883805376394631279710053256596578048886434670699865203837112485450759766349979637535506622715584548414698846041138780332053018258169956801847047645453535821648461465031930694902548312924128578151410997664146387475213839251210738002447647144783763425341973383738993241476892760115099423717686986945895546291543622161998558504620354296390595227999635122021875238749054476878781864280943235378972691948635307566661217662744309129018373714540126663845725702316608042272549807714982706998514661979530479248486127319606413957292879850903934865439125183867692519197573298355362526073878330424172105436147685109516036945341736576728943077148009345097896811403632893733678028048098924596219811796812476652795553805847452179808265337907397755294326297155330780807482648329570233094684296118283117962387200886305297841692499626872686820343949506936751080012992185600357354905963243453836571970065911097675156987555889918178043650589525671917010316002730574366194558187427336494761232206587522954640820816495614929462363029242767032510356677230690065540781354844146388060860384620425825761218626653322599818260765396954488261227142012814857708976686478901129083351385387266712812520294294759006157582889210230561116148330571089587389621770154116926267672913073355906884560306748582151030364207905649717686567665309045706626277893583904305107258554611939143799063437534896760412800274449841531933535764533890090367499279161396960014840314266019320920310032338393818474230934678838073925073447460735341534540568942685492320249759463069816712859962973933234190857052344755445725597423684834427735682893101197360687915955622584011215617837975169346708018242291843967993305323222132025863048456492836565263610100541181071916502453213986662747152796131606849964140004380316928855568860626899531990871545211647503156675285978572805554387696200530403315882913479422022811479939161761841425363285698408015907102049004057854050753062912512809022701783994977418314241017649142498915907432096065523819866160452467941822858290181594805767918750957679209883860784248089560183189934834861410966514893116554755997465392688498233215121179623973169487755752079284852368092120721935771563087906924492796860872066272182534217458682111317240236609005004562742901727846904115056419039986701720388214080697007946971423471695220629793315245724308884078180544387693692234396321119612468460145281101786849620341818565770988171688842876323359162144014824230371720388952768002152045952321435665253054655646859131369530136428261178092985430189212437179932421425921832113152963163769395809298224056093289736880110224269053384669827136209095603448024472165492806928310119665216885102555410418998046489713810843236717160916424465415728289481028932100400592201187258506351765360157017385069549230506836997930544036651237001359540015568894629144003817428784501981568962273264102387946737607489121430889176371025532108206136966217805607950501438238910311377006812606086024554415671660715622611938933825698432975189951522361882169560171677424242696607678958220119131997682912080861970109494205215195048802907344584139306827654721945749288450138204769847361973179629002091708631301922832246089748922396170657779512750203764386297662749629250261414143155219476041779757359922527217433044223081950120169299518821307848996051315870154018304087844696979775753735373884022921729907083453457253085950403960721996437119475051469116311637317450731963445474975725119704175253074208490477162337375382817325071488894123520174918048495127349986289416177236575675775481468106176476398940793495445973355834739087516621873173359929799111315179881052494303449288517979050183194731277136819065165352155778468904253070605260268010142631552809772554199626766709973839487285435528090567331110074360632490164546199257753346063658074123406797388750671794292613327567336819017735275076972383355070964387673073038863062360650129464933796521834995736966968054989712941122734919934834345051896413548351261458925316031553277677343740962415737404177484713924053864794885159661267608125964374730811216398779440177723493653933882285493196481397423472624035980347083443464498004433243865927009207642007070112385027854001240203926710295590522800408713346195438383061850649756025600740006325518024084110562214657172945781306179198495037585904802056299426357285525094714442078461721258943758870249096768695198790457662670929265705676943327551199328865082095407800220708436212219641332453223332674194741043725489445003995545155431469281671327629489644438879091766071135737112916463831914058750682108005912147415531513590004403365051752808320403789949979925167255355912884986533963619240741749468444663728248299742187364754622729822386382816845284991813635808560709171750884162728841896389484266219666584531709131571449014669154021334697793834943956540496016159027178114943137009842783553621478198295728844782971504105254344461190808583362475755672618658297700175351033399416938734147086804101232613776157160622930613567625356283380828236531198895578031654480341749848109734878220445698428147000294506113649681413332736485421871434428370518928279573814755721736282271704910591320371914831214043109026910720938462308989291778453774999855272008244983926790974739914268993019243435635697754702377304039866102492200752166281984342729429791832523725133866232142942745516213746156492785318618181315039785520335310327176883143395471306599664091894809003493841372948873103936353345329089836681389166024886071747340323212432714542107412133901965173995037284373009151435310875803734379145846378420850974764641168069492526809762003479430785939561726756019449252443148327800499727801490548062179009761597934668724029144103562397164191206064337348515922202851592243959916445615378723271956237988407911083266734926569079664615979416102271164849941405549408464410059018441360456846028793629801145711786013905748921475752959917735996940168749438542377574699088026329842464324140907832556610630553802276982283535730573422390480808651227340132167579185031322484841396415931521532982629444750114304375470586390178223999442928075657535160595996380940164562150112476199858646323238483656438627113453298011866813143582955980385216003109599811532699852969677206474357835438448575783313807428404458723560282565730234798094985796254590178607521004705272662346432544094261685851587629697938449320056632205421394746106149786766047154803699068167127379910306826424284370000715978931381032650514692810766422271501913856615410546753151630688229210871373556336968410722536329098691353388337081571487345318101324397983782246981736558502009057512496313604817349235007239739258085787824059697827971393901195600120091892563314832045126589342847796414476559358813139523975977368628121745222644119637286285305790193946294691478069597353025892695513961131230644066199833790551315619521091567597665350211935534260485221805505592695974792202122112655413908668858488285214878857918888410098431836400777909649608498247411563236818238104081721591108900545066555660199919702100902959732143025152131665401947396851485352375694073275301823937893126692803020432717594883682041233291614428677032897610221959790332007424132483580177077775021022994786432852571872659158247237238210952542223653089166370056320058257582962137705282242369950017108511098915125371904023655779354071643373446156716527553762607165115825582904996789382350541103859959518676230522427046756788250899647843390135414271205957167035110139749809396745138195874843005688543492370955661821904237702440224889439073245042267135879175992383710547885894149326135400772452124910473244506938044256745104526579754932799201634102413192705273345161969705701611726211137885450803817638852787478582356977220694187076626551464674986740827332345848273862255195660281038739858858795837253456576860567489691637256455834855123392606369049407263752970441285556938750185133997577333800748475300991098410450032478788560092626448008868616716849996727967044617402486222785895777307453587776547588032193006489185577374711308814661082414272213866716526889514353744363218076941382587966233467762819340257590057857825513555216758429928192884849604312629389795894266456193029373102847519148138726264611099077133603546654610614840778949962865012613413558725308640644139618565616056681477645849454935062733185892471352115896291012003956750428341577723020845368077494327215797991072230882235244321198372316174426408119583156994944025358574342678479102632401132620825904269360204042766712928530511317798922393063677312259693604231628326675566912663536160969209530118908560102785569205658029257997829883550594190907417859127355903897007797194348141252722228545881401193803663063617527420464201886369890146632388912825169340540514513190180140152346163677314133187309428310576639334869372193269026871834790129390672054403279786412457185037803369401944831210502664837068979388946655244695625019075297564279998522828253439147737046001017599212026078845666634164914143349987961868032881039121799936282332421891415748322183475465973480622599646979215763740544788578914052654244786860735084741391752301362765786174991314681456884514048389726642269807075690760100653419397576749699267872357681639169276663262212955566545947828359044378731185387277407580675240480627602769265329603441097935403906001395518668591739245994805051390985270080649508821959400856327782166022637045584999885829202089369089472268072635250143241634860003875543149377461949296866708406312004904657171059868621791003103770408186679143950805555783257623788184513481274660401281744072773854536897391666714828746178388978404985809867953725646021968056145244212904207113738053130822966297979800652560657206581069067503484560911523929247349731971321976754712264956896656176926531162917418529500599036368670367614781706394989450500884472241112232705616906779208487121026547986460823465371725920955510923027805178890341814540197579412850440399672660671611562527483008698959215805706204955711075456384663663214425583354744505018924477620567620763754173999130610700609726896296603764618972609825691636894048322674587073790829465908326273650270497224280757819462911653857396837358433948331635881495085173256815556269933503446348034641705025475515985051523844688241547555136711429391649642641902011375586775374951938983996175377582642894119991746745501881282742937830067119814647572490084952898677864315620224368677332698821349150841281141402761162290408771344419030801490049805967549524146449761039746463769299854264028516257761892758143049757048698547700071292513588104797913284758084823364354888823643073011205269005706514176847866382892534053451936662837176965716262224958279564792527624939126907629588397842980700418298608732426832680516849239653369604405047014986875330015650226268220717843224478130002728918373497578526298889463606115709986339773438360490122658380399744738488752447654321446033183861408321562434313780126869302765769637643329064930256527940330161218350027030481387532323320500884900473079103568797056375086904222656629287577216771317645897284367437025922197733385755268604802836468154835642170822644654459937480672822289931799864812356330014518611424342147342301344057064437466974476319306384804474915242720105707572979452312225971928214418440253723768809445623432004164262940188931582712266926881720113137543773141939858297537963167028502309309899975993132576816983058259429160238906046559280384968153099430034370739266988981292822529123026869745244823801368115037105221672299309639366281094518628595979264302270960032941500823953624515839548606946280856053831961165123346536100397975469538832499847671612797600552513305059239758705613048762694524064275591188408558042725555583614703734492201538859481237694504685700727398144433175597122092774888701917396307191059411660816648238650698768563257307890759590450748131317928665275049348055712054775331761693426631877282986850749408142953638875293740729593117542400203884022548963967422879714418419236832208758144600999023650417091535998824268052291589155216431954192260042282699770443092312988794039698494958212221228821240747463680446078871244328888823828511682505122916449742481635063031334263671983572743060854007912608990954484254397424581668761243965116896447933220688695187100891525461452335753889042701085085023257692880511032521517243397306775327636297192384238976441860783092459015099562108178084205799514155843239872538784999149107686081980853248578679567047476191452030416946561402119344571145374755065246596484258220277429115532638756658179858886788474533203229399077132123683095640634800269099403200616521538903585673836631311681203323606571894466001745120987124395226733265263369518637075355008034565077236805864636603617937054565637481298445869352802402605761515246340494798068669108522114319035601533244736320113837163168524246449410728147584705968668013957183163460882426866092223360099975356875140008181124028283072265095905441029798349690242457515383416570624898663092058904267333782167586045533218659465122429203110178367451148572271943591346187936344721251413764723969769908978846723338901965407114217019291159198042548198459137081941608177837017472520740967843486051087910011753966843692191781745436860416850226648158246846044647313632224735252356123028446622144418751712292538660533473551908057988929435457819746350189751097416453687228345474690181714775649212107909273487971908381652917562452416760447194024946117001690719221634124751898273551727947292740157605040421896722237728126889348458017516468416499503803420329258048410330120829350822800076202212974256242077356811777816582737831150921993212160550656432494684745435759088198875379957193048253283500520832393891451723387481606522922553819053154420319592810769300002276649369547323054330436364889327698108714188394085327022913821468148787087385501160852816754275611469285562207521564695489350517115325231878477296917052257579199953954996467341241890411875765567083112641947745974541499019979061565071824309359043399025098030466903574262866801201719726128040423251215176779970071422980280016957846681420288782967456352435311974860921352647438210683563609902515376498981016374815247118731812602231641361525906292899485918996256158249692058983269782023781528904605039323344823156687600110618287209724196958229133450945016678995736402916676023523287799345640484217805119200407159203498721762559750850003532667952570883928505367861073806400172563169415788658202194661023112683524944655879103717861363771509868387848027040538875324321037634633202669587753268618562783973987208483132730942165749711867999430055472446215663076832376685596793522109057014440749539100291244505455617676904913708438234149735558777018022520581377067248330135696962281756654320303912175067261221683504430470968192819316520945270389380075692428826924795558222637658628970544080508180619546438774283322795921518863126753713346396174875691562817768182725734539162364788891797634804443729250160974300923225822015356355591642403167520084530584901416037621896065157796683954854407053348706796850284044151751848763691285143000813811150924035201192715024810403114220985785373736115457343744986116972072070050528538344432902904629169016739866251158649861271160145952389213300856888365061241684779586922158785359741694863479250455117302163497716182678726821077927105874075675707394205857036390581092417727407846179776433198255232460285886688625029294747310375480534541335819582344924620259867074932478501879154924182667255231301745071377310229009065227190997832920570789737551647258240663028097430342464536745152211959844265072000951445697403418527748853978492579059063327374745218178092593433005356331080811729559675152938187463958946799905101899128870723154809274632686464332067364333102434774492636932534473269422777429108680767695856552059245463191073341415949693272349298922695827757114872110515274754305868827030564233641198991221516488671408693685279691011051411757808743313255906218395981914183332484561844351831127230718385812698268644034810274329070060299569276771714007300446347733533531315121745179885676913430808373420811364123283412120329666193328213734129406734852259365287428626572910247946069917661218168924274621544557748528533678929035448069639913678337388272589499392260169421178740965876341302037936524279727606470314197864549927327323096653494433824872125080846607088349888811969469980787394513637632961964742343717768744591054504747198682947409612025930936386552829088769341240505880216762045475217421933679630347487143015398138005675207150158779690780072083529790816971602350353183869391281958298658792231963199643168540036198339202727346324700535122172500043049878664576619676054293539451565258817833507893446565272212855969649282312742743101861412663599221445496635291661091517324139466265679961085579158320284848518287306335381377525645264135015836590884423505143488613911619307247345077463957544725103783409416619461866489304585029400853840906917581487246719790346832013791034498574731833762119012683617310563752620582488559429692425078305079286710191464509977654035503679204053429764758036391381411927243639676229734845551761071287922179417216399033532238405716325854780251121852587249264225106892605617010237779449499056555389146908693084742969085012601396823670056721947297014318507746641927558078253691821747497901853115322296014941779906139309800932324532177540919379950345887724629965170889456964490588395024906266971949506520046535039545616600392296855585853026054935782564626368964896970356876252548299313733512536827240254063808937553522434512751737318950691093133182306087116155610900556112178502111236358746355924139927800743202795027195743323149327284054130156256426563963479876774570529079569711899999914428872487407449909583651086316996871171334521063828102617895341282723911362961747047249753294316482931607787364756426147313355804835841324143827433364602020312804675409556086996604469879624544596419020562089916253673155409881433888283200970458353501063761865921467904879137178210281240281425142268531702827581266873398678524636684566829984265877964351332057183764140666561010396249629917670848330392165197551008952394118267882763995863495874114944537502237780761669124030826686968882132727358267857690634117338525758633093970455095484326640279943609786511519717150408639741872853746510994678179914524008627509281439035676990499905681955010391292142346249390079446886398446430170013030206166392367884151575416249788692820440627624901052896352043139845244098002348973330639243119544669118840588833507226289700104687351246047128171111231890440703622285381856399796792446631034123179980799854855672413394652015176091625304248237109353226426872704680870793226018712372368890213445827915238898086380286556519386108189866343441956088814368718499676447787734161925496742368559291623105962216821356013300709569640956539607133739721060303697469528880339972073751267475474964515451364341832314002947468091142143321628764383466055030744755974889071779244970191897836015706806709020341301709685865429043232464206924719351279046182373112135240237189338939971537549072918675183173725692900222573524397713156387020887853024062610177883855781823403325179388728592446538000541791736071008767184197705856334942105402581102966801868070047551260682949687497074066963297365200552076780678555791880132929069993644907609644204923793656348440761453492363099091951127779922599701762222973284050199255123181910440967265614666512697898154807785586051936251161847470790229177504771632350553852257983127866758259551438755603212417201238249422308507162312206841729206250984225128327910752168244287908762266474420664420089621161254569136890559135367526901762349506400744090717110899219940525268515281437695094898557578898285943610886379837678570373909511369371472182133327814324531968967716436859504866918253829058421927726937562834887346046135719378606925079490168333209137204585308900423630209690576845831298364671985170316998437572292329804234460033689138014886509276065425050324376260885353695053497954366463058297545012231350286469061941405113236919648719882896950255267523371583198279876058437679755873656420244991056675253642399760310746800720731809967188750970329266909208688909783990838010099522162471203099429924261679509824044203062648657270599797555705297264925460440954686962627132529736140734172142194327671647754974588016444761144168129730283730256822745476345129371606911606260233373971972306225073786647968672537341319901651868468131355795703551907891071015943139317687679750848771847379103343984185667401540983593274455383646400103779879683577977428528388113018557085636193502252580874558378738463196242092702097183337000658045286127798596358943587886040156479885092281509725012555110412839566777153491129930740433177654713249279274035405422840971879453998582657464623332893569471425103642792184912142007399609456258960821077811948571216673038447446128183232558303615157001922293960984856383223204330248228426931573461587123719843803238348728809194461663926614438005960836793041515496601164946225195486810514699669969942437563237899247128721906597394996596399606583578502477375916668866997000773900809421335795606742771901441817612681081345037193003380828723699770684633350581154434717555083976312366900840386526603672878726094466510148189325833572685888234041060629722197055504123045948931958180019548788979468776632047705710010987571020672506084695331897243114000959782620327124371955252148992848359187279438773491779190867905451844807678134274056613031768771858518689254529426038042227284469218889334297675085425660538836480604032907607232168691903684639248644344151417383650047805501988366927398667721128992399441635037979101291001227284368122049967361697449907909724834471640236449441534198257122962739800482870320322480317947477057060695192937140850056772898215196837205865443595573300337479976350815322629414992567875834273952728438219155902710299862748965947351721325557951669366081334171094366835370565460852875647960802582239981748650201371563788768663898184316473591717722117402275028540522613340430480754894253088658524663562305701540151318066194639310708716839001201344990517193117795826808491957068771097657560253411427126609404839243569755781396387403679346498983340197268111758167479450292921658107993886264795128827323837716818875252531116801776126905608749143390094991857034305949768668745536329633971842190806342961719695291894563297767318841774557547460321571575036988364890187916835866236618267994118506823596766636074311948746484419348028075716316660726258135885483807521696684381453376356711502274611985976603570325761673580324417236285821773006500810342977299525289953371644872866895651331702894211091181021531225466381758503288497746888995224136432832266900082184953795240934023079621375018193092078181418928604439307159958249176163017409926249141694823172526145230305783869468061304391635428420185111664022330524997657190533910449641838080555891690908577480629025349788337331078711397463514418539329409126683560607350026327844581207058841489464068603067117532552067358176540631381044202985211961821048378390016918342641071049792325899304791404486857466191098790134951727447907775425633343948714782432638184588822303356978972653570046297231640109760357215889696587654406680901825499762608492766708590000616430652913596450676829566474770743983012839873190067366631099689475480448798609294167005570049800132939251467252112385025069104825543940164660719084344236813779509267489379333023283828488293606635289638856419633046240590092151677975623801668448904586023527896974781014717283477034016240024729253495093731528536608664192914647521010451340634959129316231304860306382074858435831423503286941373624272245475181532359870738176467936332340343760872499972088911954223734872084827449345575194791611396816417176173358546689150842359439725540668913790337708267394661464622838492098811620169280454071688301388051816587189611572480289435418657215165172697263054268818825569605902126966064310969866255314602657983070435575506014212651437211874112218336032320267820246360065214314894516823527400227172811262823659195685682265039557266291962748568657085934809308503324006584910745191932951041508790482018698782527293465845103962434682231869521854368269702781736607657519095160713653096156719770067606824683103877109898892789629365076818561036072343219576329355814628462577469134943151821897260633310806159601800389561706362523989233236991406645570005520921753357975582112126306866543490195425712845761110975136405714879401773187535307033491206098392489638331973302248674391738645516949782486841780239088644377412052344872175189522804754959985807770988750757006860182112531097341320386403947725272714755372927052987271127703869030883193849530417569909335061971079140634156644955794287974045577511161996677076867474738602642029248574970383891013745958561292152160978334078872975859809808528275242634533423906625487699898906431330989381978311999741220214238593362053087719812067729591059177917365320779169855216055132954404798651588023268514030184643715797127066737441475732503894387683341393164990143402840368824589663421357832773866140888986347732117766831020163861014074057361511742844405113527585042373884706846259361931674407891292154326813801521880102527767891469331412478229606818827964489474433949511575135540654488369897853768266393098303487400832001168400421719089332579829252327254208358563885424833835634066190107177377579509586304389026177191005454391291820106661016029567739049809650601325932225681138026233205123361698924868031224427171254028099932931823321389090861129096173492321409161196538775502104900606496237173465548005342492230970764742374053704089223299856668714222820483616366361301577341141746842637628166168330924178003852179093597023012630399134977039181923778469649954597106053348105836612478689476102462955451819317679318887623484042486633254457910369926920138923645956810740600949078208948667577790607321015177871166682683751271086499351365520027925449762868299769320832532499713772848952540867335875041267648030928433983601983489435026820703508740181119700715199517109788955171166704254987056256637382838444361445482379558745388905628022751455650536255363094882524580072536440289214387421060601659522420288533969254343174600041356809393476747370442535959108870718351269772083407707909906640703653981308276148974927123127482855572953694407061588168723534055051667298641405352313214755368098320913440823468851021262865373162033338994772899414754053855343358082374692014536176469443900490525085879336500884410294829908397494284156304825273055677946262026729494681886379925201828166557022896648056390330110544309898491702820487744871830175789279145981288162835786016289332086031835856535894141333077742717809747955990411636247857797792261061054479143774642441491081278839535065859296670707390968382303513849861787695210457138599562286904946172933494335856019352005012826382896952003134254647959447028673930333800734434983722643394262619554103161616981396411452655910557228202368561433626257523887244699782104960756773886177467832855460439430635667973573256475761923554965706130123003786864484152911157205909481680200908027463225523398638463951125055916509192907242467869802914834234401381866121405359160663701047715126222496671199869715613269766917857661758820135661167102165756733129126829042677135067693868482096691655672190592998697746567646953382490726774729836119106508083926947419391386058752197852247369308581204395204197239096256710462727901306268530164513754107463888723380501987527290056149546419693617064185289206108043145033884283151030004990325740753138023840980633784551614186203415299482807859701249042494589281161198249484375059337375447587261548997754297059305694867254371841089559704864234816323359336428059102701174844625730400372360825972476099872446826230409623214999256344446284793055214412290872047805695332534122265640540453764929871672265755446201539294021859080394899328504471464691557773092141122806667300350669865530447537181169294085041251872442227486420603377181739782674775743666698061579816188429845674304980706366530981631519760999550507756340696808489116231614108148188311226449250261643212929575601461002889042793786620011956852694925051306573423924021035136261110645307897362670961654270406297835200913297240074490832589938737767217541562003901201762315382862724434999296237176533505602430698280276171453399557335267956866396936179356949956858881286462457468390594211960204654894474291841438085797057125042875453767282739901709649593543103957062047128572457965235016215670673598694217414219276856061530226060790504859013987661377747145399914753739940524749750425539168100390106611092383492670358963188400078881824168923498856156565769294982992339280942148630901987844593645298056160803585947426306537553265309110546756061931159037833592862099431994834476681865964015266556487012345042366398483921466352637515317132880676576721153855071555650692948548947832604733416174069792711206696260876836980850512912715610620771992859637251309894051688486937215641222420731380306730071581323440716777358056015546770635927929380849166633948445683421129495126330626662327763255983398183714665498543147325213202709404302639765962748647692314237541559425236897978985962483531598170831948920209560500186088958461740540174554056790153595284451103950685766185059198376120594899649584324070640784471970384789618075442298905654991142373182375164785275386143612595485854524449792965459515737604051358771209475888897209410173981387606352268410814004447253557167680877129858406587105037805171517782006611088277404464991517534917114138932963710375967631318208481171795069429932409514664335863759288498729029133635739114061028858953002008489519834482332497177498215949764039717575776174242194508595069803235362623112580209270957737180383882133737380828631079323841742670077983066108543772023066075251042363122954045254313902612614559849706623870386999114457745535337489622486760245867672459009545615267988383057052809775097843122167036500857171105632374339798724605207496379862982240336566533518161346134451197323165343470523353306224195083147370366123310078845917720595896825380569116171781370863727834217796301074766996751391567985070435507478325288542689696287188954493043830410915610858405984613020305711679759432889650333180864853233461782550469487317051866178159578145102696751126685278171267404686517628271619456954652338373544474963122119721857670473536967137311574640181256872104635566243737680473458869680416696803569828481736555078016375067826569026538242475586538017069408367704046662138511428368991386123253079655960080334804619167473887697994643848129969564785573639634861974896878043578321033024237748989557962612219319128820317182305525620015538668394113245515095206729453068638192608529415675670765944060287121334151917076510652743254061784564367059729164674479918356472752262213543181320930438940418726993900475235696845629180042203938419197137910737368216896284790405323681130864642984584878728169335871999207314072545940925265959917864888229928817368469754726012771228023051865965020111317222747154095241767006174325875924041503070022542871424412635276756918745718798263546272840119210086276194525270473629244310927933755263185197262225360193797935989698630151622274976209712008582975308981732812706269319240185667614261293617100988000877052028490236395848982815467538305616000107831285694384533693556793462712982509288864674646676772158310676547609043626524058125271389564889340260966028666907699815438072060010869396310831202188814819133060359642550656083963033781344238984562614419869974956954578864554248066594022051166544536096345619102215255941796872926507447952774737458796694260622262515631567006938428589335004399405150593972520108803649850848548096327606610168694912561635620186441796493634745664290635538516326427505912958382042932181472130149697256008468105451239720778417077011166519880137535364445705290989113692068350578301691442235341327584419349913638965537607551550802383619087551241232560555929763975809765804303058220147186588358974972669409453610263330685515271591149415984624789108031590535193096836989762636195913646872008370848947426019478207677857549574720776668439715382119679201101363181333739654069992444818847600947511089091814185138929388953005577866816496016242405078631547991729845981410754521502707583246639923723317365589696772609992638453046232576193798963031828883588819884335726310170562305133594413708033614344038081641141404975025571999772445485337043360476607460340054317200719106775277926457230725228697698838868214901374576155580426909408647533402903409348865463086676375604699570841985635113399501876690182200931801563677657103382797002357372765823580138107499566280083791320715752701210260358455614312061843409042451479216893238853453472035029497235539472126561347443486923904694842733306747652726714141232471490045889474813558510649176557924749123528193621783698561131938336994422465394166054360273172856950240908175251045178107198859834176867193051475984618247060780295350501976509196350458339276519913017640676762487238802702102330932581177032932902098075057871965429285069705083877168418412724829951140533998537958028803942240819252497762915856678348564974251367910396884660452854895204842022387466924352015836487578424127797193612635677536814591344608438844507821658037662295995151890121099097676593612755531369823958680671027453567890569713183981923172339178752275074334925811954019717513765273091413502378507768814172293019258313198535102656014063979948387871137082407243088637558404362004119155219021416002525669942198022974691086960218370910794894887574363103055746256966813571115335688687693878845031844551545548740561140184976852045039670816704821218081648890929535416825646531928886617363642133233181769612663044402226625438653558325456654417211033522307391682538948693019197346470123190410530667116176020048679037754079515470113026818600448348686351781497842989458036153504368413625214228846838708294152280856019854695816604756024374775471675261158385190138574164543381046497356989383372109162373692238651808217531958223382624813118173017551095247424303968899862411029662322219300021546773245415822245341498413199803142495299485327163507897105940220381111578568273270057168992945265321894555078342354125374723951623537842304465485995204405812258824807700686524024541022979874137544272515400987168443037003659319647373021770660493233692958892087381003457841035094644652363580819709460402946195393060743277960383331586786133371476777752329990276392449800795950433014962987663604029011296238393899148467214884759594857932358955983406663934953501456021142852833551277086259343764827068802956277760233285221936840451416917127459945038622330704074597716471442706390379147626934147906332356067588596594326072474213442160866355436389030281024712951853900555074856648502757836122104772120659323897159000311419302268398961816284003476019766768093834537574216391727238914260416396228951190925774087665033694140488397283219593917572178529930599187277719863790948745439551808071029599092157304031703900297635934843951692485813730576876840570970337709642254365123638862859143194971604952521933779691588524699024771154093784717562990423853791132452166513470522659076148741522883901895436770144300485184067095342997210358752816888903556877873475943887788602660048090835897484924955482082146318918371116184994513813017424704226116861985525746802600723950887786092624655805525145029494627484962707571315813049610907746802106023562129411121121972749879884543813869233702926640857731776127513393198396584104318514809127188016855179123148593285202131761797026345226330359471642616223190072226885309116702011326979836413183335915048713022571552544326740903397867906124285459819229468710051652978265531186947735738585460114350932296509417031123334346461912248949253793175966042027185891284610578896415834005638529575416221998340264071616552029139177629813187359455437385808214721538498144296715415217292654438613867917180126066104944492160120132388292556621707393277387951715088049957316169599709252793594842033129604311672480836052772113302142117361422852051088357706765972017557431834026463208790689572453751273814451748474617771806107538226437501890088794655895304840304543967509158051675420339456478461672383617741485212022432981783345459480055100124066416871525229729620146206902253228728714849845544533516350848020195266091461595231859242244782705458645343013640083230064039357159736964048105844292126586227629900928905539020523757077738533395143567642026838756991988450557906078745668155724115699731661745432804004223184489711920685405865568249223472182107395412873666847098276727805250967823810696384345857310637906280870861776521438172821704381541826440755842251226055247307432470000492004712122223279695589192599246758922839279294807390347588217862552462145958994294025772613629982355834807042617985379087364257870360858069573945485894650810501942114457642484078826964242180285770447702398283681963722352603522533554665772714056829980774116304370182516145922661276164935126257844373600644015736695178183719779306514402401090838142781102570954725577648995623826997621663575905273912815076721265428248140305294154838656076164285072617788594742445418272749024619485785474674823450237225273481012758622696483243189628768305502225054153199314529309899812595824459779831683743323397371378613130440979117628835057481036335393153465559184356420029444832451443071998254671431434453613073166276074105944965281262204846018929182317057013962961148048037609339855094176969794856008338040184831802868479385105317923040785334907087128422308400085638073328434743612232066259018383215529710879601879645592011807578733969099101801230194364254687521915693644517288460622188439459047089245972044981403013128149769377582537063173335747907713517085480934633315801076218668834516565110984991179667658346517222231257929361753200724462123879734264621513868962436798694015278408264251417450451052557877853080126493797685193876869720715423237123707752556637858487575253649653735710190389621491417011839698253974666532943890722949055845140425017263382613670120630549596024774257474743154409403927573199852456827119399032871977106995616394433061350718539681531795142537810654250276451578864141254621483797359660823772883527077642325995115324095680969816432106752674742483310681745121405171380143425976133065585981065868879035291105716239219130624387233527437031731205075614986286200580387288538567644614881988245404538858825525256136628482999660366473830211169656863925581462531191386504602744842311072782331567195999175630119881982607168684237614422510550330269729171412251822003708472616267150721208301131245270658688193513710739775029453281851246037370861379651038197785709749027437215938445674548859779169685620797163066037648915561595471880644644847902634827314935901270593179232133521889437076166739479648588444995374940458048338663386172140611743376110161327354713532749994176584210582484015373583521607030052277223508722579855107021349846060734847631079876058224537549707675701443609871408708798999493428645987020557813264250443972521572299214273476701027865201579620503431967422749900487796494124103409228884280089314595618506356586431539953593456852267012736558266889414359672351021772068391758517573142887673813354818740289515303908695033004151935358243190308185595613539104539992186673159746943303328451703162790689165786107615293417353263467254057964889190701086502436742781590058252128765762644522773978065146900213990607746153656303360401722341013141653176228906661385239856075138209894021247077672428942407199415825488234397307537490104330666598644342122286736748456995005978000542586523700546462778595477554491739580395125906528938301687446179007686252940652452381754583085571948210221904723940217426538822036498565223856359225536174298747498584907934370689807175437033239776083211733299340061049758746571703810388453172912676242542822429804606045693121548950359318429517843851668576834891564289146572943111281783176738097884367018358160230235105976279301212523027415923957621236253565248171127269645294731695880812504928937964958157958001007714285582250162997618931750267845236161743483164188085567744522860181525606367301345468359497965574396322080481085889790684495680459374912949320211249123466651403813060591342334381086203729987177277817529395543153049234934730585813729400006324330545065304348813854512462956715785985043878767624003004673154751251511187136683247570831625119709486029766266633963998969259578696147939489379550252783568517113572902495189111772264037671964341822240057317689090501703200030316235687499365587594369661784895157851596510660418771690449309997327735281311885367251093194403429002961950003044804924163830176743670447710485036993167672314008190170429294178098374148209842789822160164988998375815544476613196196128888943453251967809110283437478323298587528937285833982812637593526899117953388315070222719027467941214689509653276383147745895218220929938975063632393756064091633393436553438701482466563810050018103880355014683788697841348176324363346029348533245090540672365379390364970186721406018551702444628199970005199711431827269741265113802365697095718082403996413651819049941962527937028766340943864493883101570842431102679955745408919194591916428990653350120306771322715945332893632818966102549855369654629258754710459644653196632134064010672586474684193161681787156143072573431552991083293089850921248329534080631033897978438611217554139842490648972901046921743189231100159442255708982285201779710814343759904090098458371825304884257279722616810339141186322416697336210291203457593768064241488639794537968281877694121298864179905593108300602000502968329140916269749807849766493571225339747563220653526158499343173439820369513694951044320838577182015435369478398123104666652043295351297291343204133733874640203347138614368745725715427810957124360613531479677616707155466636887588008377420769072919469677406974974462129109340123984889716258440542560609657104340998712232183715811419890415698397486562027809979427470875653982872736212576248266776123779418587482892601466220512850954895146594222875397987118003161416723059795337302225994847608868073944796331545514233318963346065069315070832434379178714544931359690561680128484935063141657259095414180926877200610084450447796572618894138905205225601180676270575000698319682180481688380559167434878766412860246508175040441806951779855741945808021391004471784765089169853421654194172254750497374656739503284872014265369876888701217673810128995556627881534293278589080949815557524641555861902742488263380799796108731066258078762856783496468786671599289751075256295535325346209715573206190970247436753115822280437187772090468027290205360101619861561276238782361916923671202487184013316959729130581209410141648781960948266617832396842052536402103671709132805214675692593310771225986101576115136369266556333388504924918387980407883313358588004330332915682252773806914585063511044392656549964917603262252500946498639799568540386606776033277628362136795996395541721382216664792969246235703623523874732961614558840704397352116416939605735510071107843021614178760717918564555420504093934712086309852994909203375965492943224461500799596116878615637712241420579914846085966056546506425551143914714839182568186514116650892501076933761188201472784332041139774163689170220206241977343766338642407248956373604057131801088405223299579115655059027471944464667977434547318652428268923522537861077768869434260786596488630355210988092799452657818366820736860060787180653087425955008465763941861495883097889675106599041688098586838252999823128301435141476196747017640684393837563204430430482719514795602840904989669477889518110236837108424844511697917232690510118553483719693483429217511090949908901203594865373715664794807463731910413241741161734713730263202274372947197856428257553810129416540939218888095987990079523310630826826007919710672121706042974937121333426857138310711646310768833678834089656474911056461676345150142689977583598801670347065619347023447142704508401801740074314998862146976575840414606141659243208420453010447239627742855555095385482113243106197239604839616764456173199376570796109533578337322578683306951252989980374940361206337434137276790917198436881373438162383536713957071464010910940900815912168863709853151490079052669244173984227363986196223879230458635264382514487810296798151788594688087069532119399698128565671254620487162027514443858076469011462664296213135316957486818040522355527517797467140147653620871487901561906038702790703272960740878030780466286992821929898245931741089036053700112376952223503096813919139976354167308910901918458139262386598701331721250098365893115509452876658495282717129424404899440955296572547038246242919957330295950189056182564448385905394448752923216469047330177938514175370088953872991124335052809312591141880070566958541232734305808617698126005518166480293938869949247349944241349667116974668583001397891093534288524611237563607223684541889152639520492226890862146478526789211287422929437411486949619864859758488803048697316823499303804193098006050265024265706826690354862003111500416415941804251574254332994296580963544202981545217763215293268766594255706611565397958785689488603371891411504465655738974453960860760741745234533373992595405462427262270669337581031185746784874621941858078560996501617774705934886486565317686466123415906651057999119944333087365099568760237847421699943780165205410945907572848379955836900583300551474960541060942305582055294405498785427380387438897475690236542912951844776455920623063689628883338405061224045544848766213643032556370749756832389393675211339313247574498171399737593787893383353367041214364449875199425682803173198029424222810971293072353293256112788817727772283681521251557411316648004133135581538913302752264680944544851850254819697467680754460697225625204839428420755117761711710785641622816980006401480761294354195322531236079339219624295262739393555594601855858857436710693718370937049856552029409579390786184401528227338558728787042646860744624078514447211975009453051396637994517421676981779205817418319698528778577736504590763971203779983283318193041907148875226580676681792221886354670328593905899486192376512405880627786148574878156710074642333960360447322623323772265885031699038617370959320980138146478701104929568326486459655664568961453622690452548534688414991296687106633984102933922408620219788241444255350640686303132770649770208945213520257640405048053846084049689839091842101747695835501513133435005755839850776010149970179730308282260148360050653074969486158968230820737168715508536289639889617810422951904484135322029148307275658854640107173630982108548251403098068276408570492162211453843585258607403384916854065650039336811279387768073574374372346032835236249021587226097415454686258627549968542546782129098194395730437023806522371796729220992639256946662821077924174887100779009313280313277863320727018366298789359712287372056441742011475707796881568637768170978029530479205061053582443163235383819634277118203615658251271932578928259162429830742047521680412248081070543718250137670554273705121329317904066031225258421823025017939189102309918514451595357723074735672115566937973849277325672634066856267961211080092954273439301644328591924592029479405019523787952194562937190730243445649798365420622835222014018355914623837755538494773640053982684294307717618944988953232340918811463902291603350975002258596471385267894915252263092076565831041070630121334557792903207908233066364420548343613211180340271334476456398651324584029777908264148268704225490811859504629105833493397082982793322323262948110891002718725180880045156950167064686113325080287373170487861731291617747110875968285794759239813372001363900019414729192799629704988701842683388804435722949995841558381587685161247777089724794793861721601361693857543351437542097211320933406442358017419634652749785956252523995770889506680591391277055741875384688251568302014672691168886750464652792277725302541120535719073940687682059546965548590453574137949440554553065456727716716999700449629826093263128277037262214060650101578436995932008511101425262927955241311372272390726684993037739390805977876831103357889912970277967956392374976833626852134385350444876654199902004472538227448634037294159664602137712642554123216341067856593182853382481202073247857066396906766561940230226312212930326096981991453982855333545006423851912042672366544721427175215720503237214044326958475431593859716816428449034659690064301587226905455421323014159545727075374644472817980039132955324963802983097394166348072083547557261659460446966037171087248046191121356355191104666565822598419588489853787210122038376940902899664116532954177615183943657460787097299327217196789793911398401223080805638588382292493824425383067282558773547641452070208286820853106414111413005603768186376435073810445504759408521946520970850705852158448764403207439213566839395540812469315719168691606124811530168087562825149903124800434958845641302278713501922651809219750989988858255261837607402458868029119908570923938450847143103935834630174507266719643056646810509323210849877534964849914409034496603843844072233677600830977911488355563875852157341344813810713181791445978973213701553811987741710027558981841471583269980512781410915198814751591330933765409433541128714964755042933723466508488688810248767249426306558573637157649937237390155127128883247835332340665393808554592893245546756317528567888862208174649701337999944872939695876803094361608664615828759509970912753566219219145251946192437805081586202680513193491470117734168347643776161187285177188927259713502739059272044341219071774552225621520222740090345495296033211818471598661635648875962196871404043494021310362697307771172503425945864132747203115863855660439946362838627091719154008432100034301214265949417064414594107728392666524538929837818504994804270808396388244600586238940016514402267657971348527478356554459355715843801905025884189922356790547179375187438504026411969975621360074498713769861189890216023536138665739461720119875262048792047778241779934868171172533828498371602649366018870036454197386912965723868740927752563146703393580077676913604676272123440947500534480073457690585402092209932768968459410909929387712633965020003068600637373017400676408732323099214221360505229791572684539058566000133155544486301691962813728024648378476143382644970310041388246312708047314787619298493375301876727442127133151734032759608550137569366777607708438100625494683381447989806256624305350418371415767031696560739598616056087890749886176452175767618830437046172004406473412811743261392870337577678550266323280038871283932744836547239713016837240178142245926211397769664160925940665669536520264966991747882435158081943755721506931698041444560012448786086611033877968490774530988461279286902560382031939893887463715950839426582813973647577159225587999591846913954248865660868376828074098986562669774223702925757273737467649657336929627974357912236230761568718978292513063281476714842535856774189009860012515063816440789414260348257714529288991764477224324452020858223871485013267000456203622351226722969871205762746631068898622431730292991635209681307389752831912193562861108409995803614882423598253546411580377697849182140582103689700108522674991659718767918161850178552550207941283211783807131324961227326097989286188542956886073232191083332708168739463127928583010952357389631770655399932307794790689517280621183301239084963280427425236385213656304800391024616676338206326860011514088375445018506596083542353599960693707874726375663362311290611611488936454492731017996812149402182667772678229020876909195797472771680702420853466445499175676200940314728830154440269464610411147609246007787233600084214757480285158563697584168254628459671994256548626738002131203233294632743817294027313765238632741268300649982358280635032117317258316292666972830928665847917782324279080441823726203064866212867226083481613345793466596832086985993842656406683090894368771040651468112676971686059344721447756691996186013813929668096339219425160909717662554339411561262167500077252377507369967647975564706414446811036713050054525488054383811078850640412377840867498288270471245653799102667033111186272240408266924755300425185856482107952019677753562299887122870325739869362192978830082870825146340307336425116437962420358339768091442531379133778428747317868244101026534746488915986078411395127547437160830821394947998854462477010263559246694200674181493285309292366657836939079160069577495212775541671208884409520641927392690673838764352260740181851155411116354050662387091830647751327541974818590117942593021003646839712837347539210472316184123091777326506929830909424705446249202145516602788073793435925967342059189449329304453201768239565147000403254735453127714642638483233037889292273930198761200893671622814999286551019766920859629279836538942198727624604967860506210352509972153435141594195281501584385034695925951214876617293682273329900755894333637397823559036211373396522858496239063882001479249596465919535974780297840427087872570219473530969819509738049291988942407279019873799373177977360638347245460383383628952476403899842783240949458291029119832033370072990482784073172908866190318912063221900223827510246612673440306323493708315580969476717402251580128253896286902911818697447364547062001894300933985532757881681933341458097054020309202319464079888130711923641028887400327668809640051331537260729213583477690151165865528007972896584596960584402721299541682545252014839293106658287924228442630343157699693750286246343361242095636725708208970154765306085967677859757106611253409287006757321970832567802164302291573974766764819944582745092674958449257713574642551272610601328170596415665484384351071189711258640356022924428189385060500381004160428942620659214335381733022672866557154303151763093835960287857222540929542398096690613954484407864732715629982047166370236629506404844022846883398143483610182491409369785149300113969327720455829261736005802884497003479583266254449934451918718619189762196926186628703146045883705314001671826297304497457644028895692347534999843915773382321080487841291519544211500399846822479563120842065595434847659255227038161197766848660161388683278277642273732841919454098805146097781895913255823582602753196908731244762156815114981269040591730029743038458343437824867800971886629774280378402309414573002980469214701794725814132324333289038430760633881888444094554171393739013226770812769621724571748019860027499224357833818470854043971088164104946350512529047388005879971962281783493790869894647887354974759049962099958128731919958358690520978171218428789745653864824599417774935492009460123543516728844555400256494385762716893000807978255173254258687718561010903540137671781575316742821601580822834730536269313671190330170132239011303969344069529569311596171628565551522425904355058024317375423444149384230343663874712336725266211954258283255260366215456360622586177194867244675146569503664084715738166132616630574636801471047255766620459421548048687511198063195107336516198621915687599812176494570015959412931266020989077488447157837673544379057569434659899283780787800294995793983506609575979599229258655003328017184629700500689532824732828527532554323939724508964938121607650129709723081871071431927082926210030914817856130695089691860109983318672506056038548931751692173311141767817014034483053326951945611658833100172989180386322554953456390888121848977773355320200174236234803537528248208612078356851456582815307942560175652811421586788292762818578481174024110765132186579412370418878974507667652252702193390177478036730972738407240614671941682017159908040179758033571307568435006127714002141047161385343680263455276800770511264395145672775789854887500035063746097637515733533437575309488640559679641301823532670491271465741174194550772279072702151915091671867110064075546326155165455143890612184949921523930660458736048978091390151193971641325983035337547396749626196923312991379617289684602601952777084239459223869793491337943149484045177609463820628937608886425599501713475513163692378716622013297692823990309047916080064319937917906295363130887058327646753062309069849246041806334626353203255702174369282334321506012157484472352339098428243689922018206269604446792025644934395257547256625459441904817995714547720753379639155772475533427162607038353025737310871584383102822396196001302887556394744126042458056085690115919527395975013668147075993433448920867661962526295173279332457219254983178626938333759757634829381951001287922481004783841968462507354172643070658812029092187748983529751737757117599733442388563359872870607396618783334563414212541686040850965525627302613579803779198763937472957646755792821104978607093436620491758067886951694066097853649889165912340749205527185660599462110982907639230249673880935126894903325336069536650651483249313167595951801831806493311325217149145610243864935343527846364389024044080428560037245172732602095243863804276237884269125881427942744546425548083507251286969621232803498199489382327570600623677518692267608893426449419953598119758973084127845254621999095390525000709801680046799151703914454825096830704839930112412167785792753243135252341147713175239856515962954619231413638134024234441312029559864910400127460571738755004770643931945073838065133593137102006472545011401173632341715733904250544356852342493929211108790955587044999774095585091786631088016366239666703416734943015813953339344971836594863784588935340608086713785418168001646272853917742641324678441736078966896859332325020363723270186829636830688346379626744359939198019213648094192392055624936226822148200184112675547515624461572124275019609697464660053599361323962747172103223846186530674638647056019011441446019464908911018473167106465811119728351422298927355621713218073177529725632994967320488049579251303424191760074466839801664610932585800252346109685685953216683696252858911323169763823826828181263027412124400865749072387139571371860989110688786679582894217450616514821525193559554396689033220445206126750471153153720129809215458813537097184026472661083405433369554808126908270077491680737143357340505587159624332090405943702042093876791435111082970439099995206923502465932345690211158960832056811150783772647354553299284095178262877680273489857195617814965146158928965727712231434748979006529006310849349550816846873907215488536965706120525265336679917005369918618608456085397658191309960537648916870167035999121320280880528959649508433394527208584243410133033968417619133437237385287079501078404619321044914816681885052329831619210130138034529488176530651861152248752585685065018527263169046032161934636908697062669117903967597690123957161933010306632494480396617704632772671694814514912934768385804069340951144087994194825595774284756046072205013407103488015014687746644024019350565595035820836699096657947135921936769699961602718011199716581363570551382187056009927938909742519591413995726996357895932936389994278264654762771359419713136624682684274500080318860112702868114445404271230985431694429971133553165337005780771608025373801859707389440026311610107715510856208386661179157099643018726780340746458825008748233985441267324377127824317131613698123577236164587231576799146777863666767880258737375929020884504365275068194654098971138316157138297493470000664535572851436299976202248128101217969621655029212106673894364604131089312214689406080682138648907687107944169845215284516451535546067042730322911421711094020081182126247596762693965003487419277191228851957199645480194911106006259952867713951089516204521943443790001777806449266017162776788734204574249300074993070149737650623396380845708270412012148678268114789263959895940809347877441730522145319240943786320925159688236642155742342456564206250023626041691884745461562488962474820604799140454638413641431163065332551187143156620855624796155425420661445426104163481464083518551229007628226904599065228661938936078750681062144480963790579072858187721214876386334269724449875993256780469458288384509501600724646250285426410483759356524006294617129353908512385267948738674443466576743884715590642716460659053103267693800956693770950744552259741217517633636549314211054799050438240774405783637516560299756902393052722609168337209552355447469958285090963470724822677329794766539068026981064416408186821227861096508751624372407869984733510160933178718720877650981013176883739465251432735855064248255305944330735914577589249742787980440583199619387366067535013389028777038793680227821232027403430544990761802876118088714633592257604143260624661151338042189288320525241201133615410716294983289982497711568203137059577151487496049162757282706784352237187810613830643532762743953288976600039112000004203573787157251399641832141771238273186310326073794765164222419497064149887289022568475597988123532268708792072342935041803681895196362754529440153303665609640480204157951900317912760567810908908267506670491667198714534842851322785336122574177981841064029976231210817991679074015143350609223161507563105056186497785166948599444828220523588461748801776887234781615968805309593105426028244895239027346236153536541386798148773545463819148836135519520375563267347753978312423297729586853932834258317497818108107467518098111562824510479877734478126884198634161557692936659766532672192799124121165629194229449775389445589277896054596903960454077842726680101701073890568417907266254015508584941543569307454335110980510338361303057650853153125631155401528614602957526918153943565805247098065429574383726218738929902102968612779427093217160354204063991498272011740913564808019904487406878537342245823750732970752178589090437883712074865022678798529481053241325322004108135268543726662676177725432602797000012088154914977424971148082364237614821424059904846765443313785044691454716796413763942232287430265763603556883107979290729027779384888149140825485779374634144766921393558912037947854899851403709742054085474479915417529912376731907852760756432860200986286171531232328714540048373802369268249879461671307635279962047496187604807224633766505704653785928585648497612306589964976420092285022535146015088742895001023134104926568036723714377121597961191962345325992878816968338017948018032827076170265392058093691817089884403434847839226568943163708378955217481737010457159888373556281487569678405556353885076062829365098034185699674257688226704588126123834440353656141826995258463445855564489047917992016058949531410027941790559585079872722637421305990132371940345182232883880721838983928113874062555109775281085780965444252014764837207192625759850570535519286991955965097448010916021787494171513850685931063639624961138020608442593504510620941191840156818749602781617565271858010421040303465829167426179311404494387667289768721415467400168780616205932059540831453554103722542998715604650772271632900469008442409471732475199464457594473969367205981275664167576867010174915775811077797081420381073655708331706048514207796934242617406406585251679349290117904842816051849071566134148362278828434030542501421315660356490750834976175030068601903816486253862966634026319146138607071206100367402261766470520709050597720265563432099464416612442304286679607153381270599114792619629656663963481038738685771636017240425999808317171363765209347567242491956666962945319036605962239525660569803309687693442190859277674466077078747982298308858463269762312195632424774195479408712663647898142710559794814922094996154221070603958634904064839438456302179569625745768964442624868472136037534329996411748020263258690047896933559522327215139580244299138701745709674573762691757618162921538488176299521625046360622456538608370796024435068194072883315151670367230857759593905337437652808909152031645263299638599371204425078052596977577095490804999441630161035035273699007003889417247726893405421144998394737812028004283581290844175286798207011476154213143880173751773924127178413380757390291426322207513353254392475176735838655047156563638809025556821518122442127900309831600509578090282323173391451118007925488460257997534255052647618776150398631748729659538241253479635148280370959636611309586875989491241879251906052894423039241452531394103748143594369452946308414041574625710844834944356437969339063411760954816621303890163232767889588882482238760360195177344155286641131742746188676444946978328184076926751974636496811752207345004410626602377723077824581733698561570309637432007413887419847874521596769638222135291892807870436863439457369821957361803967619686447032399830440160279481150493579074025775694071994068445524427405558926379983924972101527172320383327028557387113212286769184337655945166764103044960337988382733476419284841237343372018737305207951073458703917029736834255652659695435140926975420804919115716504764788923338721058863503925979209987374867544346630910759119454101893635729446457242922534439622371713036611807329701847531096837285050828638037541709328819951205924027670583277668907084288473547197763602703749726585167518463133943065007095376536811672660158876009058723513703551511724835982430775045588624375773177243912215269581729321723569336170753713576128848422648157810745275093021852328225107465237949232952259711099444599933469064235885673235675858798633273212207067532074235608094903356351283240545753659803824498581141207136199581144765790282850242288332073582713388109769052891746552821212207645149455800505995833554237506857570475736540709801757872727488207938803456179621540508942400046955271742018683663771562958492050993324107550109863056979223596325463864434263602048346386539391113863411287480172563617905931793366233821597686003600407382016050531993361939282078088010483230954332179209108366122498508126621040725708850577655659894581191728818526897017135172329119508560501916716959716186978640808110542718639570818335300769269426163744480702404518756745537754030675177727077471682359532561584121531071629456256684136660754832832549585923421469683177655335580746003167260865482137766410232241505859338431327810809228364140717710867364290655435513349939132980979847510140513129639349617037870230002220396219703387495308252257507447139628291361390477011861060714370824742641959225267288068008539877302645701581519890800779548177243933748163205632694510417289459077774604161379065614252716882268412180413009616794601140259368016416693038393140507687163669012529866853804933352341288870701217040576142593953257465030687280191397511753824825948599347870179586134653929379199977902299292638248068240211946038533818850143826998421872571347081632975639423338961008417494865374888570924839937214038715972765088475278408392149077142192438573989874868861290152324038238264112025393271743172144474058470879686371400555531523463243129153541292094467703549329122255068828493025240302632576956394227513132185779428835239982388840894036083817100915902628174612794210468584520087238621808003542757809794724827700607454581599729980761950232809743100767543556037518644580654648485852623626793035250133730931748067631228897636562180121670829851341730063330977900447546465830374732918344563074290154406335894612849794364123027261513011237076244803170242712730044729179061801795494460197095025439325665413803079004287630770911558753650597482021881475623782850996376905296478160366986188610903507210176023490963741437236241403883465640548997401326124543948557343019841662440904946720766347930428744989481806604627731516528390942471083837498476685744591588768708359881391344638760954775664949752823889928832019134675888219927765370199246829970479047293345429989743540208462191996233213688209730120189540331579146271936438733801909387915463833869383761699548640750590903250177007130693047527892471159093313433625265655173017178407756783479633919728051347937883448720592772968447344149481859923025487409310017131746155438802646881451423015632025747798907007022750873185850878726643908969392602589984811795741206127861479275845362927172421569865055386522885875917806517213282019207531623658447861770772258098318440613310051725580230153400139630500439245675315435585567039831295202914312890242426986404961449924140480331269883320709296487402879616113320747873420150462553583132690104174643843423467702966248960956580894998682050258533881310680326677221869522394765665095668006834584289837310168404804012845048506637387705530508977420272591697323675811330269653564118992906219981074906179681221634730681626942513789560909282891610139101054473102415805554037584022819512387053006098101411691524790745678196361242026121460408990728034714937389417811479455735608085037204028275556415759993363794679077158557776423234479692726996466444703760041114435438306542543642817089249397855238626676822227361052355897549969477025158547939205473160197982448666746531601742827039755429525186263096110005002926477658923010404003859426632067267987387328557547841992753030971891622221503208184198720080619729267334116802877578858596630794614199869603093861877483807170721001921315727150286661315495074051804981955997035198646440787163105430429439791724675406773174263633228846073189390744454690667489411951820528668945037838453752791754831954431189153244847858837975095627309328478542211137907168795117112749952666722088552878015997802812086931635186999116604505319224665880676929629100418235653552228638305580024418774669392176009032337151481283266841205690170119390219270752306753599288851127013092871673997875519582939649737529603262441412650463569430784828189562257291600894240843512775815729383787033237414056806737941876847055355602406320503783459113985743118868681035518116563127148662262748582282299713707461703518474775824429714809820558422007014680096878984050372988681152846480520943500996374386454829070419103622581230892319909561741154038634506704088161957074668746313564639798292430407225359396959237753610332000869978190329931410181474820687828643563912711982738726758093583382442112215836229383564732565773258088552242579355493222917309135313466928654659387669760244693037778487061319191252210137091004512216867485065080755787058323433194774575921062050156295326039432251939211645705479782683831175672738857453882953599407543635807719377633592532971393011308729511919786255469209579193168818321145936342693174892551087712956733010852855925208928353415311658300351648683115358222916802885511744975697356523762231565991697937944549245843604937799047614133672943772811321288528501330982647598960112393324454133447561830363844764002999811839937509355216427613241834905638845004358299805324511632058931279060656726351572557034527569949047454295332291243435894017819753706981364144745571735204831553588189117017004625907391446903746986096817014156403616922535543548964693388943554968425188587052605683663388021968481809083342587686334555330231642709528149208875698755190702252293561905880889057188062666100173708999304493160128802867889250500484461270579639278467273378494429702880798951041268939215932437873978602083016138632439715543644517924814704473918014690582680858524026893976711329094586935952553127835557435432577203986403475846371866809268703910003546754526561553766349337447620791412709584335345327849997227447012872726777362224651865044439100444752259740692859551295089755616379650640228686343271675673337031586737629322486029119805694069072784291115036538731026655010087007679064613735685705994269207477728212179242915679639284544518242144252620606362555372857985059463253058959985941177747361165608433333215721871178660837778415482586430748304363553170770329911815996522917133701563725883283147724414100025988456804925748388837052405569054112511504001607928464722310283748154515873646087010300987651311346665448855089615454965668388473100428972587557941727731051864030615376061265564971786134883593994278099605201089270299877674580735682634820224053648947155292494257179663931447033814477558834283161813600419389350479612442557763809405452941680084589607370351931280533446441851217377566624399426575841524560447962422314430209991533320323500596313290427542540491372310273809875895134720173515575568905367913346453287556654605211751283563889885296335365240512725330676696440939452138952390332886447739326393434079715612515926662883023820972274836507934507310980501576162560242031356439562404855997776867097558742413372057545572857518558063282362208839218016721297886119162762519325364734458253732370781719733145586937267711421676279596313006515745216727630253189005989544511821882781399270039334377943398043364765055961297544593665428338490735180327536422370270953583493137599199215524517368050021324821277337915880997379352378543510459312038445140152901817923310362088743243327796286067232342190137125239921307499002528973640863139212423094542735346790234748588482872266466400104077395294969411763663601938516151907644582739376045081746997896352043086837321204147547354018031571246134643075532415511098687662874004215829641598473737070681680828299319989800362561556259280660206480757711641229774785794432666838917224755412282318700079820356023959831081700473604444770506496779529972830829572626508462171875582186952465583838563717550302297564577170939293460979414696061587583985692913870837185893680672030243474151311455972927487886385588156389221204687004433214967145569551488097849189948287702691629059645931136774913733068873970132720666289451976955122694435438925655798963441152980749032602193916982903216490868570942927808891280475506113320712539464562552716828299666940402530693971293532204943284245126571277534269639827233429041887327486647961454012775603690802401477813609570040888639245996571745320169597608277138262609314751206521880546127492838236974300743981831661358949444577986366844098365021501304516594666557657996402097719342695746711605153706495614236191274496578276179817124535048170611905802169320061467842023021595022161341709754387561535149445225019335349672966980818584982761655026502010303564344161688461249852356740204082537058999894537315404273861107767914845937643764032115432628350010175490200965032103031247135171882026219395636866257641532453872324628896369122633476564504198851250476726404665768898092175499396932512985458282820899691579090052412180281191694239260751725262596924450964416886944985775701773967624627029878956202867515566905143222772124286560609661681714422728191481905713143763390721867920727776205409945357112407052765930936000490161831867803649076986552656195736271422924696725070790577645899522310412090561556675869649855590966337295606513440514773437699010254741748193949174878291317381583041948633658042133758444022879399171345003901674288180711442433333190164878451527446508048447338847906334108850078941756769378897344940990063652768348725736964926927035984588824094135876259405220336950426672621172116539705578823578792175196785530153779432991907643315769365675913612683495622663224587552935033303329941630844335049219291648546724921026364915215973650503330720171312239335833967777163448892211689070273461604714123250510267271532755955084829782972451194248382812970673374759711922384984784207015405641360717525971717795793104298896223315069300650060077816737570964260570719636618829358663920296060958904356183939217918264789835399546955903842635226702643261554027333868273405191866573624170195593754199685360493568426747881960711405659517837955550129130673126398547481417850487790529615631686496423147175159090961671192440174709271009755841577196998905253560891660145277060811773789749534793624975960628783758040485149322727885947759797553705571000743487635442139625345626860963707580419089244186583899752132949788246922744365916546235195989722145525184776876359734048986175735975158431801856086710990979274697003165635442753807972051996618777867051387129986937658853335675706084959336233814577276074785507127463099041388086745398421676465126044672506891089137393750058523516882015587629022625830466989847349872636023270448783807096895632249269097043956947906826474247192843094112329992686647487856370060370231660035537661271107696144294252707964173178372818129434972462112295657062078211123549362207535984936206718703927441479098156464176209160847082152757127989061008704067610565950385638123416761180615893934721329008307895759944355576290530260320977867674154640085813120204228580907127403778084484715425111804182849124808303181492720518825956200027618837568046813041691891763520199333962826773727185142450179140308382299178437472313779070688321005452996685224982621957456153207806079374856505146469833170143200388386699758112625676469876147170230839191186342860214519235514246147453949016812351441205963953436067709866032200273538994158316637792634218673138704445857529279346079727214745502909999344760575047923196173129834285398055464303814410430414104382838773817799845471388976427381238127431985142874400514750623563564843087900541558720892198427472974984972236331634266835308460014594131436742518667638721834883082324500916468384616046737334490693990383596985611671933703040734136454804526314257855884891324307956942611321704901767590648923668561995147661088081959673967981176058168752301177480572857618327611237640625533152140979796441254945295275210035403866701242374004380475643920950731098500300329093446856418028949527243790185816837068750345273460539096869037116222962944125580384017343511234473971546493555499033587178017653187920065794271832944158332278796691197439282180872232144967191258167689923722056542054361145214817914241929347979396290365604696625135967418654316678736911480296500275235829287404412007267450914596819430609375208903616199275300653685280198955164478760639608845977290045200433152844721217703128846997791705591478013025342692110515172564542471837205399464818680375147217858964608333081747802625202676082170385129270959544037162869210113960981788821741083960573209609960922362246414160338857271536163329490792337853089586506294751366435544413846258314322075426308208529685973877191111266261963505237607681540825546731520724033269085690534790429458473579959300671386957233332521471192925566394319947007867942400587677297356821244364403511919966829478665179893121619552391168577730582325495271735384036147325674971952907445801998213885065706538564582036595690905125613169883832784394772685429371552310388836122683558196311213738681745441959522519792039697964223961848962930061494534514200001840506988580351174618099856599702864963502230832272606088151472376469107534248019721594948883232689477227513056776321167861288817370676932906240582127082914348256266614553885380101355534225490121126390673091368551100833820835874215580513517249452935593612120132797096084174115130334516197449400259284809051946426547846211638898944209540519085646902542119920611803929755360743983020216391717842396723916027171561906304360623107227689644934690732852449696588323719768816162261829196722860103605210135940554652921891437420197767885171021276059287331155801869428231637307406602314334313644236634727552513840685614678310778381039537407850389209841345882781570163479603538904778401812462091328213089367036138815412595594811771040585644691883229941810772272456316803338668594197166495448349412429303464345421417718897153075894085423879029136260350908542739850998325748317472338596471597482255973297763992453764644979099026191559826728241936199560252933487443806811959364829862940256504123790890549507447571809191645760454797994708436714754576363396907665862832201000208074507845086086937915326579462439909424272531545021422495965323349977782997204191405161017711110289357100697144182861903111669791128341378295203824660123668651770118056467014598562237230387978678418899899802775768329707066696715321235735695621949812454046014272394639118652636613913568387104464124972122694177403834663468396245634526032429337670975136165909034705078373338446754817905897244896842328793157518483560895095124711012516613402647120995091214359718852390221511194380711041867372210178609957242620568123211654172263896741482412994571982552510838640981814671836243017966475929015223291049529143021733982685743585699447449892298336367123694779361111012835012908678526525088969969359904473488207092339282338002028287093598918062937179561334560503763546938468666102581137254292919349181046244004531999767353377984759823720586840402791018644746591466592160870854005671715011901586556614337269963687788192551196798843056434050247285242086871220211687297113226499931164972349298865245116394282232733400729182260279500968186009786137125845235612979886126780984158406953150341156733590080124448356909453936096234674024006799112317578323291160074932174887962755269448957725604340329682732317772064168593277298592650138886562122618575446150443868169011131782717453464966662788367426730208231971445178136828533544193477469035127583162489159525893345894471941073805953785139840489891303947455087602186614821695350389978440951460888798248280999611323963007097520783071023384864401873063570477598483268712291984081837279545578195816649794986278472831005739116028167939626933403216265736089550895893736214618177962573534752974143911787695482563922969804193566978606650113821487075200727057798937652130090490374385470924566629031524617411785561997791863806527077076166271763691670592060698270013950615054237415176067691603216428495513900911832932793241037108272176070891029861256352824913381483631729501895243338781596830505331487197766669482088904983478510500813118704847786113068142647096461364310397877821012142418690792134726668423072380226967069410294556610929936523518030846073733915934250737661450330086500428946488587403877862442406779977853705128075947435065546762423198151764996477502269891045228116181818152757796177113005469963233303456247539533682969471897531894759389418375937990822687674947540961226889252426444218793444643738116650011920993708048051588514120301118886724708901681288788947520128759971961215432408639960463877796957134013985829485455519590165665917841788020826882774180905385654240134778430763693537500806550166432455219876090253178020478992854780205984730631268245002850971126211796502860679601722357876199912347902942520885490312087587583516718346332214875053536079085239295884466046913151262120413522966102161562777393596040420528553393234690564158929026306433171400371794096829988927571765582557718335590783965030897218408316278907632818838395147868011045981614196540589987433335585938574969953219130459094382789348179063190507881845505873591658019440522685540035416382915623128005970575838041107934749172946728100889379204215797435801373718635051585554611152548120715915487602855811624640674039046513955376687665672124016436328979727147052962031707025890562907428784497173941435411794792741709189267133351139974319870255378241681544135931385110620647690312233428488323194756245715963436685837975477131987234819506383861863805776841717690110875403772708001645778246087188729888035130977457195143882519266087524072848023661284493923969607360149447572776020424434028433552422215201551626245180844102795763127102511217923521313783183966092466849200030239906379244980602500944949530844116614726770143811945804255467112131464846433775919274738665741407830989119373057354765658086054831866716592385674174044690606251837309275167481350504755285118900321328388517026611412462896170740888849416641712077116892122322479430710788135036415826566490212570277893658300970305563129994001049349214738548361335955821288817843522277363889749380538579952457082823035132742810429327039758263415354376050693121492031989493723327129651346615891556972737106830848550388228376781047407497144570309880208923940235348419056689619650665732893387751477338104294750840265352954909809824587362822023024843678049822667110659754623086043689607237742076277348779598685094331967984086269512011329636127339723919566673841708067765098494984182870123196790549577194594955373571951444566931125035537149135943849289375610026211308647095464162657213675623493946897861045568770889159576987817222654865696615377359248897791903447032318440843644529327817061258356612762243881846596738826433100115635505813444810903298569496094660150642206135018618502510366327263511793785350157053125350812120277953620725097016021704253526720091948612210248865186733703167430644349413245426324145224905290886574385435721442695275605358317106001143261605499412055662662897323843641593627603361354230219657688374450957848469877410647711962997029008387464360965795280410812879513986571350525689263878725440165379014354360964005466013570448399847351365137866447533044359927606311176193960639085129318864657576960781652366929894111899879214425974291657015162857866504268158954843815610922099995783412384353308973435526007763146693687073919823941637930504461174841549967648554669400225918356555229396952972621358096372264017815718852697247252041175256916489701175490255338817245435737924719388656659319742149998462498322707328781990995951888301489021115045170200753471850855465670874905363513928109168330328930168067155220856339486968842850092273168354567603493444594102562942935719210291992322399360333217045094868079991567468700548644653501275098726128009081880628404880879178712036786510930321628365630956268265482111095246534053238447095204026203263471939267389072788776526872094952578282495779271384313288604664177468429047852654359752314267536580045740757301312582288146442641792034730330849534569902950473825580153547945358952086621075708202304611435539900814697400895942590698877778167179304051458688729982079380448663402507727654163861262367274335208870915225034305969006330257903650890614107810555865127037820093750981087773681886260697733551999175340142987912042748831884846983420827280502513519135343240418576784627050744133226043584703191112488213628397017204989853276595464625529168302638448533832952247760505044421048024129541373766765658292362294920467623071021953663082184879831236115544212698693768260214960631086384961677439237167207021057872474307037093073632370238529728606098485392683417524523455725047857773509437151005241935389091788012145257825230880141445959848331799236232847075361979729225499352778823940614279738843893690943267834294584003243884514140943636588024855587721203167904200094408072989497544034772364606725639093324133095577253438857562449120206635871322724365486582379420468509718149097126428364282860413588602848878148987132002154462056709899442022286535817508841673749214694714841623828597514229377737945218996778175220506753800634159886508646178190367611971089137748458174704950530760590354393502868397412914300465695952803338604584116703639656337521706508357050714389049444901803664087757492368430842226170569849843802882205135948796201247226324554148636179510406114868193296075640710574032703402589115951712609010080619579011390613871827813981960329358534262336220908149134603921343339213364947211157013779666966506371958177432208989361690886519260588536769395634228873342825047703222360741713750283387352698110125998058751956368067687130578086658864793104897812970221685211719088356006620057953100254452762148012469553524920421021293357430167327176700565119740193426029612862409993213807487449557327516813245528666901282347604936663024587123642918280041680671422518679015695531433735151298227117831848332835009220520106809200037384176751292847485184396145434752624169168777622740758844507080863908041853155792226415862538017152721707388183692935255804043916966991955451182161947773392905461520220667308773233086879548550911420177070717341210157564428076772230505563312871811484517244865890835399880176267492808152955731010742275432732231818565170784473507821913703125007639262690573438132514903117650282045864839460647827059418958240209600899237306427958566821913551290799611001811691369456675427121471123236553815809827284853130500677392430413955248444519278754016877264579422440157565194231995823273680381348846738757909168923126568717650929830159999819684837417056919702832376886424208244234984523070663397789805110116261872031761314743324285313199643916806251100666400793444552366922747736070044760766250382611753755422534410194421364746637302063827748933411519308319178171875464450900809693739680400019216972259955656844736381174766832680370462695664656525775708284521569309634600576934388491258214643379399729642957966489047511514796329810739202434375193314102743067387912080738566647978192068971989992926201839274761043832637971732005753198645397463573277060888043516072452003547737425669928822471666951308389104805203782609117534950848408945804144149879567814461006477125425260330506264223359234682876358311825699618479492154059138340785590524472923312593836789558274398569604687155808318820798616491600887019636944115339673254252618857449365529968022832527351860133587938464401945092598891721615458265296202549871093221558394172305377145425940487945252715756929916782774507289416770243202983514427762023339394862698832762321586929294866238179145495372890866290752062056809055381969476711822930423436474895924288832440773812903632247262976104508378040181311390455029610079711142860412803048050183807273022307537897565370216205674950037102169318884695379430221432527913128763622912823329828859862122956817789086248463183236951710032575036799052996659538956166964272629268151116866915852067452799348615617431896058987102904959493390627068936200070580186085485937692964244668598128068598511466362590805424146890175925043724087464372782814739997381751057158860483409973623575144581076307495951968849843090942019332664463586515083276349135979942640169140240252373157977926506873264232561834498352630901163682740309186257394592783483388646884258395001143479694367304005375527417020825382570461185660698573269686153327703742269556671270456914160142020655401943025591999748947734944197506675342593703164284401729199402027057758942645473259624438730360815269423709839856817715838074249227207687150616029744029901307564976813105592407560189088692065220748207755392491356708299066352761601880951240043757517048486012743428088754501858872758120808028868885956298516074409983423791112755392773360090339650384414908228803310123722930542551243054697029963201730996632681983486163771009808798556441665297194126491184612189073274168592110898710751232921799284762623290758322121796411111441936287424590561553623504911786147343146915746338466800259524837441465152513506794077462098703850739602021811269994360065840706424962103214339143885361471035842607892781771620441379401515841742093113869542948999749272220706370108094425558377462629809478185463991436951585464932108380622723094567601409873660710889816673061468248346146252993631331839590768928924484142660363160223124145481262827473726992197190328495306762863198167487757875946836399271302760531224020997873817723732320860493661041817623565336754845595411711309227706534517092786975867160937576898491428031359889873397580873292736110550972341978587236689706682119789481377976253997126713275151316303415687333380566374144860139195234422957637067815850213014779411614331495683031820622010742545480820282045282705669654622788704546327049986362356331647698862943258764189968102097433135808938780476537501252151997752493753335616163429538363840005087326377256260062814200402137290068382591187926263413342971712923380690153502091657445141073248947245088124494490278652466302823325284643298196992278345269975030005014043276502007638441887713980982478998708032801207573812693566830832603546897045296123999087001766925706671497784775463553817403335505175803126735446564791872386780633624309695283033043178199754737369374485332284316850651384859966885091242907444166837085990708259498177170590772034665635913932635104275325333830848973685894174309452494652273268256639013729543111807343650041771503687520024800739693945562507698708548632586907946573931146026794011608673096366667137576501903432508695642587238425139712720230328308483880008942738426333821543523398801079463285913892941560003369297849226230641493559464901645853263113467851371854392788441296902857840708510573088176753489923518869991982371879131103562558749798941598716725277036404803193580366817390456229425219277182448252054659099919198661424891638574939270480887420188235017830127831332326178862414453563240659038253863967758198832142178722489474528509256936919675340396765420579467220680861847357628223539780300737528871928837306514232941429132244810481650226717122183351120996399265680029213399177515462948646122535470101973989987693927190024423039242917851194320662369499791262974468285477728027224559219155752325403818330104850696025578533340362857573534744194858831655910010095177869639064759490373568324386219006094329885008414314121263491519839754652883382250380353364750147310593173786849574670813321093482431734100773952195984533804269634835218267678342893091209922882605154078790114648106154061706104604197096658942444346297602385615877953461354324000989925474144080361667326656676950444676701807298240119430688489115530513293661077933966411320648381978698625283961547823363594067792446253745194367040864765716654917848303040606508650007380215889223365345840140336682305804696105551092647003314647295044964636730430806770354492050578795567383352272134952641981462547997103802460089745263061456680415901735753566678303247361910905921894034215856225446089079703844860741201705707682497249283427302560242016120848938569721528519218731744706923516885667566243283537873736398204782974788081895046125245883449460517561719680144450837680607384348213369884911796132954172531941955033741354772694457575345311046741328510151158143699244563382572585103176110166489854413562087980904681044067398005253103490611491901241255021559166400748796687318995020306584108323422372833787945771940095588232971395642151898308924768383849015044993391363371904650228089111912625343276569159730368446049318666090927369283907123485722771496024851529441229900928086421505117749929064346497933883738331107594452545731862509667720468103804616930084683744672611625567663513072538611596321637718047180476348286743614272756862274898398948060400636669249211327216899004788907806246620267079020062590240776537080149165699360889009375465300518822754693706510982979603864096723543996580208924523528058990087606199068642617937709933784900789184994992233690831791807088110071065833866626614144421419916910640186114100851115214095081948347666715408966273062310741403119776034121357478098740212120398146844221199385424274995399862533134920890428532815891837385773769969851045757098307889929350862803866629982278124291323769308151694776177488735483154033275629417849762011358972477436226821302707148190887414764305323628683831155388434886026690334606236730509780708384810143390330419772932967239658461722776375764670403490959076338498787585228084223675536955591010835519520355710917434094233090968525827470680988137819123698906562895074266960878931357418624740885347659282891846437535390480638978949156304231372695955738889829878000746433449445735812225743263348113708288876643054272697071258477506808575521689140176502672924269471409946718124602016550187418663176834903325369754142132933306252330434784234118591674863265775288523139883870085398322195851153362459192324817937181681290157978598895086429936305549149424202791707714625471745205309271720533350610868003278888311699179641190689574026582672638198709545051194960328880817201051718060181520591629960131067776070404959672703489596371116834809050687144527274967511686106772989154667838082508214171640877462344799896653156098638875165140149317283601192260678008670412128800890637589690248371806353982152975497492202449045777323276120608830226365016643999964684641885981303634918615163508880614289579489950314519277674667786466616391253246959045064991449387346872535565662972373392084362644331240829485720894562977891585242794498587789779773812743445797787035539056603152126976453650143329775323715433481187953808227535803783282228246541996739315925988738739125551106579548005331477966595745060106519606777087633958411783746375012987985938383816583498661017545100624075144381872012628338942709156379626857547500002414722687379920876161966336565792431709592320100349395806341398898235171121605769380184551247125809953887568250058607028086128573336653910660874379503297621681590602457935719464441059636975232905898740845794658027270795167693339584005689747856396551143807217492605450284184867907809626859371773645396782946765736703274433301884278971900970572591857838433806658488095352257409901401482174683073288708618946863677431591358201744053581550241005598490689225751703496776301783535456177455841589816228834902895703599749045042817722947364079111273416902692290816468721316901280943375092536577054947427902286661320418517938358125428052737641090475337615577158210624327362961134462651628375584518557106806380910531827432183322446507083498451863529045219843970364407448549077033575758351126219538920877986039985301966873108199816465506525150189087796056544879904335483789525779541261514176518470358694952104002675967610532341894937014951869258920506660630697752650582678740270754509111675359587817863880306320635587089117546514636719780562775585104819011733438633196013490937523207676881517310425567391312503023668443774341050498095976095396692709941654578245836117328865998108450184382389322521119565878366440739108236465860575169201299310185193470363083955531586269757616616076976953863788880578440018639321549556632682649626270820144255953104573014455225031903841364590475458247910702770535789054089638935897862650279994655993840882050913142495371423718154296001928732263268151061405804942494215315750653730202657457800189663192965197130595473948199836872079411138505628330978804927941500003142217328545031560602440346845257629704936514045505219500389279679535284377989459353703891944900220661086673718777146558132649435140957679568306360738662147255781169648900282354762161536414041354774137494565786282757001478552656526702838092137648721393887483286764386895290243935543647213615330333298024527105590082936836284555957338141081251294439285474796131815437544178601931183208692071177128354876341893508743206095347535858917337704848510075009405421659284519667950804044633423127778963307030595065519768155658311702017131651762948407374803436629179829740393860913606841554367705439549052655875507470779153399411405175697824195865899100539551977419836303870720812393023894201516585134083198533173741687601706529931338306941777724566456422918936539981294185555161417184107664005216108832091794956276086448041468499891632086408460441151032383491822539269737995369397170739425721323679130590557904126935148339652045345826624133356457866434954522136105108286043080771394210182975459258729810125216278178806191531651660257352991976674355523723223135487696569065271879517602076713140492564664135801869019345808667705629158217807170052934300621127839816916857181485828458860999918266274154309955109526779771997103735015293549979072089455859259310198444424488625013116694757949264661110931299600233815815051007603478445518877979404848435038820101512275712246309651932959353035737027655267190346269231961956331192555796636972643880962748095250778228827803731487123998269855706754092527912111780851893874549030119758855428794043379903404581408161701651827137385725753013274951465266404101035103994115080933058554670728619786284388524193606029985561398229322000301458853893873253360539634311820627717330727867790179562600064479548019908455694808851177144853469800618777849000935505434390097153106139337406255229528386292594069504012182279154445824032528009368185894895854543567173083747832298252329590953944723940184629276577111916389066961096724879538550057736376068379518593631395781333325391890746651014109259000923944493427067818300168399090204155977638254266522138028078021664601406851541950549302081121794758499836552402879982262598794915376310606720460898055113844701672776263007332590612523955299357375289881939474783805292602238091531603481762639217360134685801131820508811963132584879044619580991741004504689339948540761260660361783226030530711756785145678022201044235649588665784137927821627635441909444806159620699574614203626095899061176959847592181110851637346427321897712163033784873569079539523993533885511459826904460396025733470169894206472873697515612924430411560184317505317932227797333958092888177071133584535048520019608559561091204634637198705975516698081187790978959958372905368761605143584640505101536914302360528667844312342266113812947717894965547522386397430256249231936557567736092592711668618452630377543174801718898690198139646735200124170184877207345102416228769492563755586786694563875454862134368090807247941330313933886097960257258563579974178932820170973048113936453971529702897293870085157186754528422527984238275963493690088975774515133100116881737207519225734588321071818467138349133270341846812144504400896021637326343890377981540992888509274702359662539696306807014554838554110797020303278727206036628610977496217557378225152579932402381919646941823162259697401440955092811676493741738478607877514464686966642210851472020899640901611356433169100536975906125433793764090575115891816912805370860432260626803742423546818099110259810195726204738303228620243283399822782325473525327707350776503574057794399506041714962996558715110408774902817266007236807855484733721731005149856127910822518497346513320311502644328860932734872618759212386365490697013296137484067244280384607909586847525476561840253342085838246819422926828734043374861143662688293815529470498795151579687922863132712450424372480682743253288103282792426503264773836665380317550857213239929018390174429073813293456776701565917836954838077172435707008895458271533843969808240212171630587839896198525513061635625426493465166797577208098654656694695035643444596620304518980145564535935244148583197016398844280345636206541827987556418927375587780294242535139555198687141063133707383294815395287243399622366551389524578088454020437870080402004458962647380902053970353644776883684234881964396548011133201878463480365636216414388807543407481356851286505626201114809464782797755984226419431931769889933227723352131188481731798690762137573436973676970729453183146724819034502172674397664711410623926481654939427278505214447844700773211035995102646724235654081491322414803579938792891067731102647829698735287218716668681034680277182590163444975034405334142887482991235830105367580946171453535910191906993556496674010345132129233514296772907217105481324447798756562714596587513040410043238382250234891967837580387355576334504503116171676010433459442794005216393896425123805136254534744053427333426517027537190762564055280487547529763660818918175864864692862325968011479989702218652129699115801146379540499873845551269184652829140000664562643914714848549663553352369820645336394974504943386215895274366829617171852544548587743911969773577065158880593120251782225711988670123524856359168692989331636591754228108483581467933827967712503795025148855907721035415821548367369814195034871896153338720875927078586410441197442534117965958862449272967224223208987329809256276793976941402088435517945224318873784422670727103361975731475315462616769910697634986211234140148582938467924632670325372651629003552458685523364682675130305914105066837094444562896115379970306601337553442035343548789781229503846830304686017526922392859831234262268344826321050126724568120427327852109859424854238046807043530993688194570230027997277169659657539475976039295799922225516942209497319673147529460859606539722968060768675706046789610978350049261483199398513919404803450003349927926203361207132725426164866813638309899718182284557951317980592890153628722389689807589212517797867586399373295229569779666648302519813219083936959610085367084742948233226841174912437890315929362623627238148671394086708093426392645859349674344797258515629181425497125320508134046750192935157093556681886442023846279138018494296035737034809042086061619327977250365182420519527245507611116512820313338992326978678994822372250442905854007738749736351829530322099942788885065320661362152018101736645579611787496693520993960848966888536175148237364575652486935544557234395332391443385437730561324513323024006428937807966149878747740471344454434465287639004331558870198610435418459570640611122350499575726294733391724643417565879184970937368711701134241376476309013024400991821198222496345722943708459687949506937796560910561937237358166923871677810570665017223977052142697462512914541409360897222276562804253539777225644034316902628567137599795152595832320065575785395089064197425934906124561134512587411140432884521785427665451440472601116296056262435312618330179074227051595120555045499361361675007197581534105467290143350443889118750606589231068031172375745701145206157588869624949604907821162660511140189979397458201145372469542218519504049375991579534591709631404830454470055055369610035824361228272445577082961431705506036404031479787051251227773343483491159244368667414000258065915461359255020454749632765371114428037382549325065146616048340101587499915259020827821108385375090367414358656656339945921308021671746797284043019547047673891002215553835939038395461285331798056560814884930098721598487456227061597187128320649087938470695081532344200709534336768182954886586334415121396542039856990407159526849560923174993774309313150046560431263423242661545685318228700040065804664754407969251147282480348035690407494331251523956095812854587456456196063977932499594226659208683854793924712305401788090986022676996991453083409309198156675705221990171819737979720002113651039503593006338072356607500107290677454377059481744568512406342887188387377646867694050516926731536435814917512161509285918387012191113987933940988866305524033540492294885547828316515233767976708725542913988914747109760263109145242788280224571989447232125236295538779902568886103564802336140002812428507508682050532191184776411885793939663433394061050118110265095597862342524148780573132844589903280511056287132055228434789082829492252041279390453992162549741329269020807758553257351443142633716088812553384803386573916482614034547517106018661296647283463623815583960866479993354614986390523151835586897684738275887824228974932118249698585593011281019031795845015741276748647458961850379139569009582102533201843190456295466541129522731239139231601054336706618475178862709028501444057101159509478737283548999146704516014585037892028451530259552432323115545613785950639400562632895756171386818873530756779072457942064435750360734116667922913007276883494171979578665806378455938412036042461453690858072096358481401907355252501870334271763531673002229259960527336907456810721136351300122805838126926985493072634456441675303229713022285401648200115459874377822160491330815826349768832541231498470761701383766056492217287936787351583304446751830314793267302429192778485166507284393849121449296599233888481239759540219091953287077920561477239723049119704156316112822931334842555755000568024773795454534135703554969106562199296506946097312365920750204465995588437453271368036323156917304574449865516897788371666142058547754529353605779384264794422430247396409068422279095440659285725887384921780672601094526665726304746399878671820046730504094663281809517557058533310542709362745498871239822562037485819829746921253402230462414751438275241159864409503209449626500197084608673660041725027866443642883423405270522621727012346415312042408224967529476392875767901711440488623458786581396157235506304828689625549725959096286605509243504906762378180061513675735148153649357522975307599803288278738171039917792655187355033826092676783872474559819353691176794047853858671694911785637474567703884762209000423342313794960875168255198078346903401238762360895218273390177667412113635752555823721110889785193684539029465702886527155068109634920236215707861565600974200627536239904389990988100083679335612731699979392745657505154841392937470122788454145227645497620198972555547891936325284314512633782195214416007733654957210318341615405362631740636891217977471560942452607547780354391604481934862633711786895129932315390750830594193114540997320940629103386707700038211912882078135399348868499693113450123569223890852182073987017047975647375373174039604521196508816894402470488854344206675673050973851938945014026792760919730500478851400642397828142113049099486939671161305702257579103352691707220956176814347180697510639445548978118554025990465309730446327724212455614881448066407518756239777463165640539167663257412348260329372516366649073741071796101583276478450863920198273783002017948369849440622490246739627768972067322554142870987192869434354877643129293533217798133776281260771890751063564392989160894545779636669419875724780517676314128484145295304015627631082385912436526006405868323281308271794249136815827852438628701624164723259007442772154772775946156625959915674448731784582132247387744111225418436785383406207168394935999431195129838044754954896040194867384676591616986439376577657117983408378917377981149979478694304865479633722032836747615429729055458083217624920027612525938038815576319522538086699422545310470191798040059261404848582054078732775192932129242544692592641266753460659164279252889953039586880087633478281501767911899326770712075157276999401355391784713099099904666879598022723088241415502764693260215529436899961834680122660204690349072278184808298658385864293442127226693133922251604276307625677461345450494409587110830653339098961330971177653214997139039131457187912072932073068521198191961993937640760115573356167705438539779301746864342967792132365077507102791399069111350361700500345263207893421569391544406493355266632991087667022126302882963931485778079327164820796846456997630351199814288257436386711314731949327577976016166856975506979588252307113980734078976990997984310391654412435801502854526131316719117159907369683947726564298480139751200319813651519411955302488642385391854824212974864635770580065873839674228092233391853848523798023066909219086648994463406621821160711488047537850212696107517568943764309468208009741529742677494337209099153333061251445805208183139533428996425390436566002241333557964016898989022852654170706868117948202514516136719653129757872026964768556297670877324039835071422702039965356790760453359879784206901658347679972287962505381653949961398578530478322624996365092559365214138647244990886953461014810574333581957188780476208903209868823834639961785762363241391230401372133463161108816645853747966701179133399584663914143755172403891694882236897088913981605625817573315722608912663664433849814459468391521195712423374217011280577767601672463571363393593276579407485582235249238766849143252603258176284394807626635530024489261535196571932372783251039756938571267355453918320730981066661267618950929693404791391199912472861447499189056777267680398448035767759515107447892295713620715513877965748306936139951564175830256512487440859084425943686215682816625304904726859131116249643269992384059521955430656009104960119311659687640741358533727546271906561292703788170321163615960432131537236596140510117432418898459622655956047789085243827028067382907272457419937729918419084923305848707104891899280138101073613791426890677987049263772235408593476588737962698787904282011801019931828021103429744264466131106914327641590605956799733041334539688975434508983694507243411811978574590009405913001726569424053155254904360683889273805637562400987063862760933639226908181395396465751046546290714276576975488682341508766784189938281625933147562209728600983207596203814035555077510670735024434192832133824418800498964038013152344859442212122797492151656027312536571627762312005618840335296484161534173257374874517854184049631694285212283576756796360332228559093008197053089643920015621755186519404090521126255323495861618952112512230416197176895805611095105488241438769253516247335276061104950428063481447779132774723324068611238281453679335369527409057263111175004641535994831393972843789290408998366660524270019672411682912254382417374026239880854119169557343062937804989677427572383344913487262116953032699503123894699355030793780927261317472713130891128574371261411542399837185965949219637840251311383898644176171949677834996819369068934505886555545762695965917203783506615206643310293831306353819381688414521464602706922944063011576757506575105826928928658150393027238070981268127547428371783302853477250918896460483997925491642276149350338085830601245040747323798439162999506151312430099719602818374876516881880720899482904329621266586045983750146952043095983931087937696223244874944421751927353894459131338425040530466926927723080080836535521342399585783620754572463501269195202917365627779117068118639078855168823330721369973783686933037746527660162541958621903174552965773008726351505676252336783997318642398681553467602296519263072108203289909691401869669586512296806880732761806405858799446415091175996600781426939180989062329680615228888038029722680569552763421604769814355895929023712427327010695341574485626773010013363085769892916834409882875259047601198712463772714458278562914843578782105919572823612592935711916050396104342398889912218854829065739292637558241012733774128080659812175260413213985161634025888518026198845378612852278823434037098129459831784610762594930978507821897434778990256394839019746033617367861642675011945248475835498289700802256676913653927599111832877839635093318513177184953466927855676751207988951478030584580745978639893407223242611380984267198815236520479218499976276646015481187182146178202452773384450750329447308371353827454057765221042762127052094742515830358716604659374539425061668400065733158568351395999450830665845849277350006240137074097345236163143274752751816182039513035393502625713926641148162684400195585964034536525926586773855336067464792430445422909662125445407650454884432639138652736409610470884183257872871713621243984008922746393883907937738286300766689678695544679116880359014880774665344327361430714979580813688348886105288904411243908846458135432761296619286489967623404854478961149345503525576556089764510146098342484325289747458311033187642290547909631555354487202259082150013218782732849329375670877169174774376813727096116994561866223641559737469087464694642581689524779975408991467492739811830784001447669835738089158910892163717048513757849045098884658820478438588865287405851789481453893301488165631827368909480970041431707191898757527581966008419199607078353473896371950678110206370385460592609036812573831445602505601942814360075567768958289850794062646201063539699840338921928456886716674017374015759421232026727596577814048795389074413436944549406899113791336844980855627027861925143412053866139345207498886071779756542392990436292199645833045586913702935138082395377608792004724207419868466533762806261160313855369268522340750023372272771056172633149699844520597062916963159917821234524106229724140957089984117999762379112370471155074239737764776054499829032086607456965541084687930088023391994106156895566344686032098471803015597797276380775199256598674599823089663009612042919202961879845044806345257264558288509946432641751117886328589888984959627017184552780877631819475251551921324249570415486495046153641208513505168938098581811449926040155908512542582826774487226851667117430112299307787352743893044797020459866683233967592125353601213977357662132049687115134526829966845922446940639096091772999275363396212014098021867548564770215655275055815255711058773275812124683080603419174494602771445087921384578357613642869988960716080934849085688499675573574818178912039039811235627031721649062454859937380050379356420447457907750689188379649614776589419683028076728298434839217855792056217197009995662996423247843870653402383834543995892058474233511176014867046077819973514654432932809360237323369665804117021348669940658772548581232983493435940847748366456981413581715304896829755866895757059195298642994215597711973361936955779562476028219038249721125138362417893133031005420818804507149980229464701055117243610799170159325523952014397621031679566923464024836156014555417220404120757088620040980735355980806230581694463635909677935048138612782268778842005843208008063545475404997001673783017654133861996498753263409665857311250568065488953696893169336082045984583331533477810434515703990563339724886134987759458231102314785398936720925960127057474084561210370679862744844611758986582097795436076348558222960556802907412943510416025177335825963713194107757898690764279029924661519585196760452412287047172894487701325722065602867813223987708775941075131985624477656057835074630528061698765979347910647749628543732876760773314796097677000287190742684401304927145067271514307832084360628882863000892552257548780646950047577815646979306360720821603111319392922468928609431319221982299977033719056575795403606390032219779186587694256412434342546358232196293229287784136485770267376817235088130122729947553929212121872290713244677435961273583190133489241332032265189215244202610985588573509964234569855640643339918958558508335096212420631292626751066383451923384813992530464402197226731602394566736062833895482572173808234594241677038544900395690819621313084223502239097122490867956786440689986703814751388955549103205096856986793987453865788340742581150453914831308034568792822518917738011314068314311437622002199296832258525162852220905296598211786732211142255670563378431422933656866677852797830747153960185887417560485435206082160539731580749122095247611087450442259667225572502898725718512034402917516522042218026737168061652609215361475740398819499381342242058291278998029225423353470394667546851519501501335515281844597382114905696116728995159376807409501141146375909742427865678472843719773245564913806884358065886824349159251811746617737785700710780299427103843695566118865780829727456224401014164593919059933695019622955528914287865476185698980498459043688747877348344419227707877563619000522537969324897935948144190202503170772370120709942300954765687809950311053100991335470961295040914905684129490166582866665354550815215789918145798338267216832080892068189823770752699350178015717930160370286149645302851912003277600049799286736067963148302341547011078589193402939628015687274729868410678003363955544262969967485521961995493425043542104384100931970067262827770465713188961031225464006976703435128016146655267326922504641082943417559719136788919151619303301238844350774598705832824814569712217144164864844642388532293783110909741663449657438797946928370927010036643803515033622419872203787065990860959209603285854487281454226056691781454918524893724356048641134275166661409531669987478724729183547826410952889130653379079172475705817965328023559163767938598300334111162167102073493761854950096510713574696829285057808660249909387101510887137434396527928727395163876397215491163409815626648440217812863346672976761016596921433417528567626647590562108034212883612079779017297412885590963132412922696588127521543892926212558135129776833855093129055672991806086682858467231030260823187565058281313345180863692740377939668538344706024993862758359305374986089999799582212973900269254804631589705296029074598403193140131398899133481548296913200772199067929504569349127514382930977497306535243762090798973851402142240784670868282784872014362192379992915951925340179475033085664155706011779367187355769583686832284095747932519759256987589090308259521862948880109054302016118864624867478452345893039385636171676639082056218358563453993533802033448022076595751293439643019020719505885013902729255202988383383333306389979640387537115923453837116009490867667626183405410599244633275690966042863912249940503537499551579781205975466069623252274089881432535791275184765336250947319177372328993481416408906264257842860713803003725218373772112731504360908896050528235000580712481510451072122116029003653276220817672480513899450816601333523502180219582141260671986835560764821055815643130567728449374534571682319230187460303316745034233963890677617144048941979201328688703417962448489422424299135357629956615640389888264387124192861691682026412094053655722869619573872885025232275608714200586328970938344583241493983929409781105847633067635302446945576088879816696387054804358451533170746290966920489623432988397907143579030758241496130798775847456231708623340671008237740876936721535953320023483752433905123192979392479370574303076274281395375278648820434948138143682539766058262781322363271579693043478842753546186510818860773400604833053459911186948582081890497622145231409826541922817691273295942856893532666067632810077499318620029546913807778583037826122440383110588439202213551935609467836045808708177430929419486113993617868545274303699566426751002140783576774610273925036918984960103885943129170266930641347365611065599699707251935905238730324525570307451566300203510854946937969361152598651913977646482227170997351610295137407326055523986395424487666217777991495581458630666207700201349532808730064462396716584742044561403682536423122963769107046850949619672780663616650158228576525692293563582719413668592130451930232963393821897542673198023427624282252541620820960196363110352392513104665735781862162280594593645334653354355097463360642669548588259105784369798828441078561386301626796696297910148711825500677343660054427985231270046021812627222609273145567342540888413096775571319982970398689807681903183491347014529198185725229385907583039602117725021053110897747290274796917800028481625304162471995053883415605757654857640261068132201676352904957043950118349101024537785637722738843179952221991276063325283337593979112489881392290908101800325099985641584076876652232191214397929068571948760085481025124669447939355467577829543335025438570155522375140228059119226146827962909287004639672765982032838314422779438635575287448103356461525602413599743971235477138775662916874963823300037063170663767858667262855564340118470290582910288308751209920112786395991319127199878801657582144593715380538447927601266626862211519141726889038389076467195670432273281083180968476918120789154958949876026239874267990034495571537451192502645239281058832903043982953034338475228990802502148818272213239980273405383352761102307548090464455922264017192288249711074766077673178051995314760216860673898800724197016593106786580842786156273585265310095093202961258500699529680222248305030916570664289675324849606374781583179835918077381737536644578058078269935318242578580923269577358704057313408793714365931782351451239624840900843342939223282214695434044156243844765472123347828923523282007286848212541923790503073424525098043439346733182844615498838064361536948463509637631377967475888416368217673377058505697915148379977196304807057023795996566574901229809452705208539739676887593261891381488010893766860625230665513458631657541121502032094985236431562667755427423085244600394712581949944252602893611681726395372132232744835479849527037102738703708938472138634932996382257275539867157535953271241833123679986925256096663881826088428412273453023640810021134385728239450853752093588220915141008208039219028890368075007735922582122379376663485109970351393578860216679018575457134802539143384458742417124644666050300435085515281206422837562149434825132519688329243476785049154630884082799986872576018764264391202123343985496081703716229833170807384863614354670197491625564232746626534746486844893674917256845942208246581855531031002144799665872782719469391203171935309687825509087016879515415570220324362189459344001806907284212082796783103672154081131916466230487913604899160331084582643805230821957062606111656593353592664165684974521249283114404082100816796653946019836975132449603355187595952177870640302940242300668979596519091268856344164473047838868738927244275438310022642378253593322099080312034545883113193438863742368921563676112647548397222252232052627316720413642465129748851502343902929387204261282284139810833347474025473456401428274118812882574913938962299061316725340663272067261513855732163025444762631851842043177981854412792461402625389162367807006174464124059039455502649647410151362056444101012856479343067921573287347732542858580097498220567577782459228419057012854196212433093021342786680107278260963170205251801052086194809616821885354762578424943849171489788964329220678900737196372190742998497828070983050474585022263772852918883896711916112312649008909602967039889608675271692544415313471789742060587689390793797779300460445590767506721940223019375928580847535273072848071421609613937981015910217074566026163610773165343289202918945250484559965655191718564256617363746529385280488394184907064227347201874200747206094489606901711644039902481095495741060884358475127271226733542212891961283153915725010676924443172129374068335698285190339545274788789960667779519689568285809450148928927437230585464346756222274433991802299361701123163772725438181932318073254212507794022486170973469253133131967305812162635736762930789549385055553801950082015438225924159777994851960430162589575613542505325354374972205766477702474103821095325367146810882521626006826882674111807491792171140625955300633152162056562432878563579157032499025515821795791466374497879035016359376781447735252119561640591082680874010225326675725303419509922452703573017598751386435566328264652546549972816461965712617696540662954642273655068704653373218161687981252798042868848569021700824738080341830865353041121510402626344260975948544549560208872897813685147092124069903173603196831852669631616277742293377390853388069964404887450285422171380377174148366949987114930511875767754247189286869407905611912261307181757230247300834761331666366978884187644031803121139146305369211661466797924537838573258180885365709313029279061653197481690845804017151805217339722692060792405380517771786562700449572436671840987877617410685906313592638880288385928079341632650511962356888477384533900751801249697213901786712541494501951200804824655270668180716334363689176404588917992730732724270260418893536413592921200254890764668313346241878575050610846584893725286470387037949416488808945520930250564696677979874969417165698776014986525646776505462453303399043022526123663729174387737835642199063109793616295984223776126372102501989959464276538938309074295826813982546018671809048403437377202093664985142304875179667259992965934054776696025994417979368090651574780568205573537111913993999621308447278563783761294798776196064503903280826456671083899489385418303370032294441543006184278943825905330961650235976686282206028961490028206996522806563444259505242918826401235862602704021785401778821451504763468859040756962645681359150178344563083954223741080064402496363167516096401282632684618210458336173193909609070032656268109419824733243514579169694340565598967866259052637813959012899523457263230507981670615961929633315829984645363385554883782715111179284259058870820295435241932268661670241681769616243642740047658371711573269005499052356537929158929001654250792395004215658526280186985403642926418900030444541118154193409234548128925588218411311491462709397058449631989027794465721563846984559518416450091892295676451622422512320996563362222024565162008448163597838772997651103342714030641967627656019543384138199718923227236934352197142817836810175112415983504224645408089099092977521129362312591632758714570912739527212128075285876882496238084139364372645278036078180978465038213609243764480247710716878016156656924414423192414247156631391680263822405912425090388076180840833195225774484244289611388271474217430518675341631437664596307571698896139266236512394353113380516870637563221121369047205930000896328570324720593364030910325404204251717362270978078072262099193863403819651194549357264420058003302753445998313606804716482484318477858714625075304664283198534476755124331514070250453566283658227691350002324966552131534901595800843849680118394862571959160015675110356408883065709356884740654617243305764331234845611702169393977426665258018761658273919870960036517078964489740441156509976888865571322405894127273280792298846408109651516077909983723818614928720973959635880238133201101067732955600296748016924930821043380954376456054451380438202422811443408398418409717839134747826005534035025751280423953929799952954148972265008817573589433481335115584426241879618358408623326767329464020926744180605215845308220200271703456197586231044915238835817004255638416711731141342136376224423720836965982514716958295911569290557492560835768980020557333234345208853103919261630987955265371086854845615251003232798947394409584042504443267854455181724123252737180454591793537831512836389838671526520832105340160072104816771999087998319946105723267193713978503139114167589404526607161369971682415292958113320271748634163900795392835728731745171987787831253338513983156037168009914124007680532451076703889800370443744464272670022526099519736818065166791088273576680647894244070195922186259419930778188499909708195902860687388743949194967181249607713023532306735158566014284394103584309775715386781276151225331695210707683560992494464551410883969501702673633166392811002735043031126976771650209404055791673428402740840901158144384850479190431285008223532807823502572309903430610891901296984221001582092117140424675096029796644278314228888126625323010756375092629061151232362294890074655762335628565386297628943738323313665989993057732189642112614026183084377367717698596266720667406303891415544947716541734857031932562954604874819618500090869129561987725130325785831087970943071863522970268150082394748922205145449313728863152575363326000657515969698604272779632532027425161524510628307248098036928756246943538430658266401899543791988849011309146986278168855554678125000436789760183598939958117407647373182448529601453456194588065098938905721779629229970392255461822663911511704165786842941510533533035084264445146311101887415388998989686933509353610736547528513758764563669049835206915933436841141609122479822376012938335619602222282343654162612430222369156151091256045543836592859954242173398484748565718955577249041647773641303419668394518571506173287489143475824415973568928487740070110271203870181813805147331851215095709371282010468879395908136571735514184785537500226544099296975128811640329881217292354258436038841339359120460110756589992105864722853179433322415044866482670809989851374610066149042675549560596608103786683226102101621088860786251696512677538987339979240390549277231367361181502396837608567453550734761479455201719198518038989449507660720193959309009321596507559762166674703918658428811542599698167777154557707904541294819735803344138030623076059546820362613921685706395739093034492556802259687038239797971566894885323779086460575698763621174423525887152356338846739421038176672403977098710938889595999414555491581090472685212590234543791965257781378383922804085943141764520780226183527922090022180341783363380149450657789922295609387722185931588271994502391709660722971048266129248799785138317193575953754462249642775854938696347736700109520907756233568875089015535439014533571486545944253477582131506976824794720842959434752920675300999117567157785564621236277330384537014712153450397760468756938039558560532586740024305839910642275755092407249966222045082656707495106757948441885128438173768115185879162175579697756611435084487903782124380795790155452234950600387173641984704362318983870802008095963580533040893086098869617839575597015974709725252806419782224353469261719400537381495088522847648013378336243355791929296836829719173293533782496968856496646940478480129947320516373904821907019213476639665168109962415500561796479441942547340362423445551767934613613975717843292506058048114991434053334319928436757094043000907009438650967043682246182798098742539533158027601363015102695508380461633596845374622545842532316680133989963717523054344072622622784887892906401027503810896299034903631551834308256425859615911294752160948557789969117922932346193208184864284134466784420743652121539733055735761545719116429400349634634958933662747283172751794839227446498284554937590437493414541078129393162965960823201801764158645419528480060143068681861043365411826096570509248975567877278381687761940680348964262986404232143389369696020963185058162785803995153655208517257424366691267955085722610504951574584130476039489102964229854536684763238182145829707016775880337638197915227392857718727115893353570973706602747750252443299670856077205840286722800284388045838984056223493587950973019546689262680530495900303450895334871710216644643633492984823188995270097430718180972903640694098724306870931723669026526763508886571597006618655645063639101564900233120616428657246248124028374829875659242256918254717225188363634653427046944355142857863016491707444677046806421547434257191946405069504935074462675716484345449360044897130900623933849784740238772206857355431716055676691990347100894696070037063543475796567733854712743554292234942615775766319100977975217853020754504493105010802133309032114205260426058949061539540015388104740891766607805929302040063114934563243021423968235035823651049258360439494552465578671929422836233111754116334357315342497692370242639865069897810926013804178588179636482600705264053114409398787051522533522489663934910287707701588692209964776222526724059237598376270313046522388908897363961710526072612879924900743541283604749322502943591677987060691760706340940665396134880092845751043060675377073187492149526429581503236717341292846283175575354175923905259580797287065521048975370802728719935105636786688812508326621807010381249443787944451720484769692780579734861245779131948574947968580721598688037596458104844320882729271010677393261064971336856899203289969452526782450564937390276339641445730321218321484430438927828660538550511518557281420129615666773595041496770631694594916514988572650196369600435842844373308540643330878341021918684922999753818426119530216488895664468430549827169911950374070285343843129869848808660524928194343749510965771950732807056289110683889600438474801618586075885306232123520937213337340251405438475024808788746670001787742096891557662583850422293575849617679334633228918475595488539020352204791052514907979953390554077597354290787572514472708529437128532635021396138471058439065095115006269395602036655041735601143231641160010847999970899499321010677624271064017366681617124331745519194076985433377072077767218389003426007749749840928081318606437692670325528993822128383864130866343637650865735816538427573985439965046754929775616086486869232577727497231638315330777408087632853427235848053920957883967428142902642548527138788612882852706580565362150967624710920636335960988756403044836045302014544092229584417342364310788585397149603817851974394256557050437367684951559083961670234397317299584447474951247079474118588138354927450248761942028392099864085281568406134109486321753891611737975833203487500431978751298334374126044809968846504971650598180266948524627039498503007717342418227361440419268877840601002940883251739246516648504969326151294636109229685778756930679339173746845117591632731058185905191879129169745832861104995143615399501412426822041228974807562277658417247249547636836078662553833530266332281627394610396795781639485665352050565353925244125811749547499484080733360792511290326570609698951880091350444455092409241206760900969488092519727132165374355385994857219970500851618223146905001266203713344665645044825893887112604564935055350401467576644569116596148644959207476258836245242035168748984723434262773504853325865256840910448714565430366105594151662558321620777241263743128718779200261345284806470467265632753768427863835991883721187956936035772893175654993148437505401428053314330142985266600485126079121858800180158851248112334024286628042347528446591657634922612301881095400151761609322836654034998110177764638051718064067230691390916242727024541114521403379812215311967251094267627422732340217055712662225164010658078837877931400725062654545584001582042246173976673309083052652194136008191734261079362168100909672584972569094198730180480763790206887866155578178425282151831140322016397998745502133995989792771978661547720359354299414863179560058646934142901603465753065460049673278342179767881658702677592087660181577551057087445743674813379205714979396253319331424217718295557676776690149968091439063497453591828615838705111596652797609913006390442615837273993660316804092476615026408873085822996346192090160200386223829725130469497642349877690111065392273892202135221047706896608185533982829318452339711309352766575574234612373853033756718257353651258979350443564496394046191809726980488834113305508131888584610867122408906216798434388052892851191328375109132214965600292470714745838628311541787754650614801919148243964036929329134083087457299849954299794438422866968149334178274739649611096354653641942391163706659212880246340677691343114386403176758654171275675839831448878988874888509181850709460670239750010946421368318939885632561136257130692753347100704965388456078085676032629435049708148086835103245916287935420753257095692278631758291522396354535149445332784840913909058543854341222001814792987854186349705135774768515592013740813959724702861199102157979464786617937654613515594888221275361387436302028790007012948732308127708153732866796151001033307525627463054813000032478271329910367715020054812537490152616704020785221369585885933494593443139470440227127843930144025101137243091237704558281131774967730648314647772080750044716461523298579838731740269144830610722365284114941770722178915733321560491998500252014494356679003691301120914335038100648037585955868818315241392574596403195745559916328012285502297610931243852862424503861345848682106372956590092774048501265880796537492963831585715947302821310840160347956627590839244494408969924911286668238303002809040307769351355059279099125505235635630950508807431922657885922901162911427383855825397783966894860901773560184959674855425470591315943090825495022537100592169250904402877615196130396850840374066701881858496599518808967207597288473997877109363896279684474662038262483307533428458114433724305676857220278333614528522432173915301456120981752914106332640847721927531761655821933206534126276821538715299638152490698895502465409538378876440837647729464744606118697832562029732579786005192493944727596588169977939346633482695739787731257493357706191975641560882340831861696316255088612298938793076148065250670225969149558693973622289176740256081396388472364151098125372396551089166087788819129579063570818870807165525540147602578526779516549243658508278277933281259264883165526202244139908182821359512959068882466194116885056814349916330585548000240684978161024760444932090805257862426022172963870670930091081844256275539335327926073009132598180252613583693154470237660971523385800935530749375457869214275487177545635315287646292774326466691192996657361216083350512938572253349629406861920371953624744544619619253484032989626276608194276484256088042621919328265780237033937738328143879279797378942330266338587018689493437841051426067086284850533921884247079431159490629444239476508238544309766476499496492832844872395039558301844786830172622457232115601132718480397226208646193582361185909295155537943185401715889135566623416373943056263769323068210337970139866467594351236628656849602513051100603348076332317208834917292065762357009207843107064701874523861147476762741061071755526562570096405775879787559057854479775837643467004274754082016026713489712992379117636057423229775289591708853873601320050152565056052366031188380474606002593558407895393089436163314909795867038114188730830775057829795802950481287371780782645099593829340825819339265886313693813749088579074510615305601482754905153038031128772195140149395976484548078334759175806453145226288422841603830357692568284381313582044817455360307190479488172672846727446026833552847388710644882692233050723950117224004968858586526864986929542074081907418159664822445156913900763458751838313819833890285266581667230193300751618000245838025823747491847766753535998718370807403137065180332461508245214830083027950915593081406394186407866849894880930996081970455363550187389809168443553278379165784503574672618649822555357251862102292880265431294811171727089784871066834772545476339688809712101316154016040684229710287359771153120076794964149906871811705421502074415127325296204244180199533973687618155305442207113940713545415081344044088870138122609954254998480929261860889478073489515016398640130266243587454274623574614302705406114319241182006244711188038641042005994465423153098026890752055370838529962638210754671462942821415463226101800929437615809127564184608653146245197997152256878196630634411111511761533449403001586426426771454775401067087842714894055949822638703634104094488046685583018908034951676814768058647809864616611213951309697151887879473930154205628042389456929465292536454757770171692709304638238095285985408260624132693964278129756112361549251315070095221939295345066096446366982062782713664650677025054303112507110791857299214357305072113643699550943324284146764033103237845179149401172957257152292700611110670374037994594513877879239944090569372695661420344093357926893365939568967755200904747404397949436996813943035009707209660262197629004428275540349832839713547478763617796913909602520840613994488520142278306221594708596774945322564203468147319865960060489238917281055879414764237783404670179503188353671858867757718367777227068711831441337127597466678739639302180651974123373611299910337108108245534065483619727742769901220022793662578221078431204224237964422729382636191541448777071049423888530204173699839688040270833723271555072474520425602611757412022903273358292795419748089099420894942815101531935052615362017857215001185060506861223348957331621182807170373065141735565932189660473199894535784889293686882495960653373439687790589638667149286772044687461062725512689838443896447243746891848937278737507863796934515520584038525090853695951250954379768582270921131443762487807634833066941998187923882075330541863337551485854566152636225337955039753283396850697624589056289128230463464669322315715693916631173513284795042721237238766379931089406675126400430004016516860794216176890846820021494694036690703290769516125178204941491541252342840207683113662421517715733180483902954405963917622277582599497519958647119364303715357921973315619515287751723758250968252175522884875858887483369796904844359804818702884045853464428430093959075156345353676821363533543147346101771294893657544967189635146600736248690468162327613742795497054556343342661055314599644070476873397204898019890976875025135679888999075679122918864589249284579835594326172477744639982278551700411360680358882514191363416628943297979099083993757843896754667472906413248169310244763936604595452506384117264004530868175261064053230507307614665461693538985195633489562325861612681886658663951287912111282380078027671483607179241111524164531219334146491969993939763331188864554771939268182534235185353438891941280257798777581253106014861467718198188091441112497652310243847144877299750551357220159082784870522369472334569730470604124086254264355318183637850143952878732576263221184699293055135158088778772525893923512158646458250198248260756521034802348443219889634688190986782679153105032259281638664447690265832339819944893351904067972795079615025031260168841741984154366690686714909908392377234548410967113921800708168232522632362121508187765410762874674484585035861016779650349580557361629054103526378279998279164271693208794001055506424012328930525573483156347632961380334422897790185802150232056022903709750971933227427064355105531778666345927460728075832898623163608998439135515576246722141504253682787546529433104786492781124160454067825293076262169134267081338525649705839043216805946251954297705029650812006911061757531920024357533836225586370329224482812116975832414066546297276695237222731298497558065971796970575228414553835682638409112960379673703177343590584156171797032140814453463572547859671063611802915758182190648781484441584138353264737319794034306503039961181174554576439015176402109749408825353115994952184819209824563186868709204462286872416872150966565486073039051196817078576601748213273621142383923747651703956794861011427964528264798989764339137580754216018656667579196443637489722600999381522309054348551917267903696718193339338842103029005526489593127493554251302489809272107870078007898747265175972292507576561484686737890045069186669023405011569802601241633238911754423304636930555430260612463184424722489504936950391792441739745748980146425953874512219989038207064684138647477707244341252354992829371239821407295297382975695980570539547513627236067214912117404691330350152776943269213683772832769614607443444417802964931119116265017778722178286701386733989499109685575832446354758983463869347100037267488202237762822562958058999166741209325657344464079582490085802785952915039854707799173275527001230253241727632594519282668242383318122630840711227532289619141475203870546621214303358983801653792919811147616881613935318639672084583232804664595265280016139682654646339934640272920402469755518788291215026141656462594782993691560969515766923087313916468545722060479307309315184919804872773977272375965730609444569051193654380673690267932230023741244218263180569465352022791154883112005953651601907831894204068580583544582127128731546399760418387006769119774241338871909228028828642451489827055767904799341601710832118343490386887926416059287100542359748304455207267720819403190843703550612156561391043835351310605651999455096979900311808606809281736390522162059107896108975902999579246080159442488105801288996716651936052950485365033345942331111096764971373329626818893770200330457620893664330805481404145539121659306333052468037564276591871596106273227583260653415537518404224155592694504655450934226283786772857923472613409348201504178326956578302096346680414244399141756282712428472231114125155100562157596956080703223498516072206872595101036489529147557180948534591630668465534352156624360753600233673836517640448890085505368300028215172844561173107656282896858920367030263669057816005045971323543783032902899404447096843206290764340067208416141531084771524004921676872816000422951517049568857437241221248515736444731213498579700342381972947619346486971963833123737339758679842382136273682264538914187496731693270805584778253368876526133525197409262916575967195853014542526474522426146745316242736799282331738126066652571737222716305889135664979799216914542470508090140290396789534022846543768475567233626596473442574331615555749032107252860886178379507665579525782597172259856866841807409200173811891661075819536923852274466734040641794786162933011515322845281788393193844972496788972416929651444596832421762128859462727608956828237697688262987680263090280956884237307214769116817681787794450805506614973406700974734591330025907710149177998847954291463265477046492502720160430709234189982833209316678513684076134872119192032684747097021306581546232763091205292411044323202951526744888911214791884195372768732905361759663765194731118428104595310307112845608323796940485346944747060812610676562679078046746943609813315100807596958403646497512554275654481307172765811373042287012337134846228553654700881980289025202552014452232043801342426460874994484560577074091167457075536865168126601557679170695065386683181424427327551105919128935745275018134518896500751345630399277712392320845533100525460356960746174751167629317924409574282393507891659338945897385166163235713279315243378355302618799136140579741064579631073644844849937820676510338144382697492103762163444322578327076530592454798948389095529208145359291519581454086378515344899671855567865264287095896427785553766173929452623281106112195869348336417739822458497582597694009491688570156104576659052143206613739049093441278012440643512214742248978292335557649066319514813923374913406028334472257913385814030015056460232159151886832559414122304230679855518627391344200446266714679713053940880898124990418398137960034538062086109683716853694627355970144748616865213533400395927578383663347492265501638258892766816431094834553744915576921695625309932033953381344349644716615045345767978350310881732029099775222178896224694687227444422870303805619870908950062238087922305922365586970905925560446140081976492177802308480894974136461753064743589919203999986683646166987284357064574463751931776433161715935405102603203869487127838325868185715231771529072999957318282839608150351483327803784521055588866220402900717600594909762264218937215508621391848499301670544356404177602180206953735823099618599691948178259229374563533084938984028865072685216297145789107739524416345324734509456833503465076285376616556805886650783502700574520031126770641033463823168395162618870773022049467205980651961938636468875613659365261380265086378882738788519422343165394031159395630034699965960149235215860393882630400171701974171290505759601123284103502294450341959122630668036595612053549854772389668561412018461203602614579582378788456254378183205911453281766349717836916528981957889106165652269426985238785666306496276955173055531413977687788052933689171586813751134756335866140238892097706960556608720642361461344950453871352223046266911296920939624200881071749737525237187933738998868348091384101413604652634370183195215733066287833478243963137540951838224431483897220849106259222142551732591832810253962308619729856473495971514066005040738448416820426373686105831132244479245998134497190211814107477526132752965271300307727928835391243520554192402157504671990616882356436901623929163737549491094475101364190325308723003406774402420893058838033867681947485273583371843779429516569309170222815842424874838180556833703328732340833758518045273335379640583966745882479047990161156782607105617657772872217733642259028609803041011900108977526157650917130361587306297151744998411156552603549251717938491756755537694372059371177134079590007176516470685420727190208339549581836953224558881373658773924014804109169590373244579154178250096749049289245707566164571562559210668808672674391958758418670107964597328482295545632017571433709942956496018177128220216302610467191362688686962171891979898564799992145292363584657145118515679209584860114442151793364574675418850760343112935004327381865893662674430933178460278057005373182932713425636861498922980655965346731325649091798489458618406075787226981599306468227904216329457077555840695410407297325922060774988012770000836683745266893166732460656450890524558808145639985706972445714546431845920902695361302811045287270204247133691171972852670310255765561746968809020732206523794964175202322682081338008550736272407239967907130686301617168987901954793114606856758628750380087183789092410337816034938182971219942938494905469706531220834468399861123235500922687774489558502055311249089278066015838575056235566567915145560405029307929478190142928124151812308875860209154358864544440574045267117462709332084004756101783218302797074228142202666967506804249072125987177388938434087031925989497058411474515504740071461801150189907774071920608623442351889966804136279638635623157923455707890396275591371327893200752417752441380450227403552744717498979712682908527178080092969878864525359632797620704074398463780701364202672818725609760275949221573264244630753860590811989854715104341402155768495196359957758172723734354371911958011844860085285117274145558612085149921499193622420547592464793247396706223410543171265533229966728680753048858483639938164902929909390584519284758965616265525574486809092829596479758652952711611214558528694095809198158474446554635281006608537778330539546459978692038406794225109622445734240954548851456270515683944089124890884679460185881275439173070557130815126922676851519003246041087682312446181404722199992634559847629614041093300154235261527145924007271536816736619392244237549695798514972562733508962022195558119107152711083963360586442793968243877039485715210384629319788118095581216218761254089452080240424374847453192248195733058107116971271595743792538188050023551900177826753358100388229676639068309389023422614404013627968682676356778164510097166798578325699113513483779058087524740669276973116126374981458874027786616299963465881758762434652815795369540428535567384383039107165007877284203276378768214051719196981399431252706808753640953574240372128244205304086338134727312726201676947485936305538095065512460070587777706849120090128272253346504877228559557143918819320910902889814781665302293209172926779919783821774213988054084233521481032342718124633684357388104469863623359954380228588860265495423578571821193466023070262873640228733534611721637667501848553104987296201105618572002872672704144623959829329568804662534198105324276561446705735394693415063034384282569277243201809715091766461145111848367123950484541137701857781961237794242716707387126443541065482506512657767541098293385200346789453961063069636615002452317386558540556607050438852024249872625856170846206883194004838904946046915690740011823205389593871441686028991148385269284722340275136132212337796274123854023996687703391124277848965021412454817038142455011149330170455338358580476651410188824472299320146971099971184225097177269756776996783428865911691325670833938917366286222585587050163245394410587254296025711480652456842850517778645542795670968014316040782556104993066214038284851117333388529380046709410301859990245942771826264248684477793691816355610470943307768969734190536904493829487634766360860665599374001986777379433009629188401153386641462246219151441548792444521870573233489655038200231812277696405914295131504911459731177094225680070278985393716453317366522421319107539075699527605455394939212162531459560591185641938764597953954319916805694610608539384199098253446482968727539979464088124896722030196659308736823203295319347773104211894816735683359724676697187880022696322571506253124010852559722744859558113026743703990231699098779962937981007193258295514429137206809281074375105098580434173693239880569412127435967559933181812993741157228722835352594475583994872198367617174220359082409944006812001810206270369776472732209698035353272537680171545023111814072633923034242938191897597346026155200171796603010098716588503619938559613472296197460265494095165403662317699408698085182357436953139160947452131644002101969385457485401194793160661809442838095516052595815215734614611039589113718272530990308855654240517228838557410098854586936001412202598697355147567884896737431797009647771149600920813874822013909541645398971376818981992037339012967849962057596085592193070737507140610474621438779427087887387693835599636950465978392325954392488341896273403302888219594954793243369671447146727875848429766462002110993349220325459366268570964712831690021162128506978271013075071361062308391960413549766860191443877434329597035713009984320480954791421788086965468887546186299611130362491940097813034316653420642251677320195320645090832099281444052103036048845999357542618836741782548442441356386082349104004153283478530421576665559998023428560151542716638695668765939965083004708596207852780577449996536333634544620632705828755471140312412583579859886207598585116902083058290161705545457262019581592935173363952044466826848378393091201523574498305810120770960106556933668623858765328980990921824916998009143606280342125058317339906288416024467439981866938485990809764817189037484898235207164664071193689938797639160195933542768796475122947074590831038720331565734475489673596206748252792253258992317158065874384434791772743148575941802734127638281279333441791364708911850564552099301988148082619155911303557308880335422171864292963676745741165283802081014485578237557667955984666045277513538969499966875548951146303121858853172668602597014678106923668717089625168788812971363978454863661567990242614836026444006611259920938957792275709206394791950075106096934285852677725211783058600168569571425567049380198936991835763232602351577742931879301690990901225477244817523564715824677670013310186728005835103246139916241358880323874165778358895011742991083219240750078924094100038505508983134889433568243120700850380477124197001368418925156320918065825557770459862808958076276878013002371815717118313926838680468213106547746353589378510137338544407165338500722932311375593224801273221357740598055511290398011203427011489472097917662539790591083461318887755975079880349027277276447052024389604093472843744987442069728244437989683010191592823580167170762517675730936752956284388170391409452198351978210242740434131016481511496702542607267418054983235381734282393941980248900079280310286168177703171111190867236835362438838902863597871029075989811727468346520933038977968896131662807927451360885930489920461023630050110833737597993002486500691664498939909046208549158689849888852499751044576579816680257294144328695777102222043250850057985948213731351284406300256566541977384357135593351658460000903611361938978948540529097956566906019976345323948650946522488107315094653200790475607599436023981417205539452876117543616237045634405260994064242941423263760299914357716797900433769601295596660891657455782167383531957493708329465672819609925735278437798229001430147774958542484614793306217194474256933601767657608801281683486819014652089160433873605783297835859778083927543344258786195613097763929101744716951988037118323371139310430783974758199721240273615946990571800693470538930803382896495286692382748325214486092130329305653620652152156855719020756655230087569427548719136804960450480610668220693639214149349937782467765841130342572713980435253083734084675585335305048777211275023284532433770550358901411084716162906518673761391486359227932054805726831806902153821796895959884183510125877561936172800398819176080808402411388798812143434103978553155732595616257757719528971761460611040423703148270317298470474652012911404970754957061051136165552552271312805177607945805319303865612250108086651556952336561418814062184339230896012295639581045615315687864877012688925016828139804794418101783447590786489564883161708587735773982364241838851722286598685610805868425870729577870190938009607058990088089608215552213945456324348641247247346610903207015282561105742907984921006206818742434559151147836350288865061819961546244633129503421079746342163996538503303363505431026155928993369567565622899912402305582260436944565346192481953940561159700757454670603140635869514098886780385920588052433583118254700319034683788465023840674529990948771539967090732212156885688767896351979062387310364978544580061552399165160435714382654669123466497918228986901180460754316222450427960956817337488675846342246986875387747523016988099996303537192229571688660870253225831039251757889175511886410992076500120018333942244319884127681864930224499989366167301356329862254102111474427650934419986882460121505589563558687348742720061865296014591587001132324854296520021015131097545139565282828792929869493394373939534206289822129174436730201732958806230272756706688664346784570485479503345454788662688577074909712173692691803746024015426110527763192690160504639359998096661970777586684967633516177868374841378261588385770316495831684719377261450872390263148716998551435434424457640878496851173517503746037724118793384399787189752635724923551421835989127566728163525055958645118946361851124370142847049897015533629438503873175204628729076171994968697604278100981054633460560318137018784840350486244765479182333864322221356140816524393697321545908307199287965290674077540665643087696758174465564161927280977926125446575431319178080796726503983329188288719493938941596322831577927567528760148487062027776047156748375307184145113909704405677803828369945462041928416230516314125852992311953845022608313567498203899962733365280511511400079705750351877364022579057794301522472789156196535053835403457461942002402422722248812249165504366678334808880491280911374253671580179189190266897771048754260526884280021767285239717628914402685006913702057604079785490946804326726570846512681204582525623224653251693864029014294621567471460359892059103510566605706518672332533002458848727023039444643698483252941837781043044766599899112413443931002039016273162276309847332970224379375246054167933522592915518060312365808728221369425675467327697949866911627266036107223027540106613543570388362213646074496559396918513026181648495815443388817899541012345602719731709287381114742138482543159176517101907802352906404379216534183335628728222966275134981076962076422751458347277379570316220862439597697824160593685143272953552939504226864229721967611419631614259854897696535698403431224683039379081295566630905029883263925203091697059203201594639956375809988127237451064745934172685827641030366630343287345720209847638248218044884742587490315500440868178125391731611043433422777381458557941595780689746986524638485406466002362303316005345038582958953566802818583552985791289494002510800575159367532904860064994773185818650033182322738337143075840167768226143540809844850033999107802926870732386024162766755203824596757426213067992620758658455056024120891560121199903822323672311857663461399920436842626598221708353646453561880301319746856433349635900673287224818188734611231507543419526181824082107177200055974629123108742257876136067221133829378432743263440567954535998755017719684159682332221448694340944892676201450476522939772934032748853258454260379997582923072281624700038808953369816834062907684443439232472760058392734505460380556088862178468769930937954946775781391551008472383141757561281799883932626320991771339056101536831452348292646591788638308741878551425323267230274855337165542162923532113104782784975265120355465234911001926144227580642306798894599553143087259328715724800917359764731779121286547463196197840795481597256876113256652493594008996571020609141491813274542999749334909661156403107416169125763483558935746816258275896271083108135890365895443168936493394768369726726005393348805416806286811120659182447841202222550737197037634586710193482037913779002365964697578037138317079520920225151348885869363524072970367455710273775851168913194448494336809596135089559656339714778444855270189845933966399249623820475659470745976943070646079658616676471662704959371188016050572055689384194148063166813912580761986115208607923057414457055086433470634807513426865671957615207874213001282105321970463657951785744877767553247766097670467353030435665555745731310172483881050758971835791544474034577029085360226718187789904667371994713362893737468683530247784606263890737583025904562200510046440801169123987349284648093626429703764270622487289294090972496686939393633936758306839504033290825682463057680291028326440175250489269454709747662319897102910743965297113650089027010734039202813442992168069030227176661446320364885740334779737980814296404937166885567656855622643546609897600549007021512709695857631762311560176297644580536174274372793191460514400338993653791991712821130727115863125215261005745851705048056257746735842121760372863775509642761306339815035312623604828147031698720377494077365177126894994323636051122355086232733082930378887293367299989724342691284592169891375756178016168674756853390357575439404328766976405933627439565959585804048037316451470285490359880875698391618821438205038902484012034956227230464206565920769555953990476883298988272336821519868638753742103860058206478132050936149828050468494726163580775654035087910564282965773736092306346627637017745752467710704029755220160621615980764405617053891236708268118903879966570105493135133575027479563531467773342695709861323877304369729265822116536747207920280926981949448528481029191303573973631286088670651693973319306030666612669163600107891442808956585369066869412639541668739074296947678008595971889891670776011586829829387793499364380657184049227866292820215069744885357066002310149237277408185332785647114729566208201340507920390187287418327279959720883247447548546719975814474137713924950542282258621914044720280642438151343322907893530842766707823363234759192263098674470547910045403707847310967523010797807305091416583021848256347141419185476341906750708226426731452676690552607900029510175714093578682063144310081721274998456816481703980509092555499439498292058136277455657350576887725864351041771516449031980558292423659946173747662479057892484750141942654594261401056813335266026629032124344598864907019969765024780857089129632660523808709885061927844040636626816301109942256755276409561829517391958241421243998360896658504581871707425505018878071243638733292416778465659863860053275790852260785243649381631882460799300024523048246642314169464932743845543225997000739093535265967936645447139164195907159007279139907309224512501327886913633841044247744206549256671883821540123478692645211194781111319071384492573411928721976386470460590527419142533706256738024447764930550520704555620261595658620946795585479880182056836215544517709962808739541027758307598742424240289750552791877846667526496772635316357587034805653115425372756565507567220067447466807487038153846762383651282738117610885086574714934619090072122182828265161538013223806526525472247725273584573436941435469589626035754541253167272374802778764620494962906544818511439973230337527653494770508991138338501777485257222023767141955015545098512729009437863939559176588774425572316205851508920118418020083106147814005996184591517350192301136052252108031000094736331026144057065542467558108536734076841402013813647577290398344794669074408535283215936619241835117099222742964290197133196599433159059704444154370381471287915124740227484734776761662790509786649226903428870952377470656541064089729526430503917030291561295888438586653521400503213471340587317349489919613097236290768422187895405453769711457305922665768974634140234543055894762495685600795183620445899057673032777820143646868857652921299454429901400654516565726081745646319181972667388795830045191875823129606477528183229957869649405071177277904852672279738102025785415532407520008926733839116663702155465869295575626652491519616185312158217775678991538286686042356363201829828971442112753278123186157515815680324199523843488534480554953464348332184186234885601609340939893243717455224290828461869422228295531264913810131392780972117338102524126169024135152902991070843406447843639778240369957207369552187491030099856670023229510958790557221639498692727274086939698794393330214488091230910045351696990595073945947718766837868796149289992935265149194631348490468699317234293619844330841766151692993798907935090703815518866165175865516223476724457041970478718993929740596221267869672377381436639588816266164605874631458535034996353364013840019285490736736122569187461190250517400398511893966331472307372815746258889826778121172121160854925425965536502018342070249635780655404542917038201409371096576797982986601697649752643661760055177232570309929701971809646966466911398745125568919477850011666883100628654040421115009381124430018978124410222173557299884634313869477812210318374145336122267626577246646490147119820810255902609272166417167232264207455320612172590063669732573522465055506249592955724385360931101533754921934329687867768904944319115260389650827336817593906662948448251080228548030481857960725494268574220477203306926560295585090040057334881324321920453525291301127738455202379808402648253133561028697938922646226050558189743681794031316529634783437426749338494100433170208629478267765221827915110824753241664125481620349963600142910106313738534489365913336476761656053427646666027511312821728000115201957540217340418799379871144197412221839849218461117651791084430506941821387362212100544925955941915788394288979393842155648861585597182233865484135967083623952322672966690005961127008001907311812696800968677544795151719986744047583902052776961935477599557435636492973580336659268922503582449800089909268593084646942045765855919713324826773819205095296112285635370876268337494590613756100283297307941795154734282245785562224946871464283210096477693354673272303284929160323634004954242449149890452820823691251234452245985477675767108897273408883794874502698829059601587751444845060626396911294837714372374592479422794175344720627836431117429682940648913000245402457492217801910313196008870057189366614347661708138942039756992948034911341275505954667579616315975455407477744732973397449905799582804069501406872610945754007356928147883888979264851395581167592597309099777850129263924682883516724403829227948074580027541000401157775227246887937765881994215419674243565245140278753208546735182523097495549452422105397023947633237277980511825789267965737258946351037635990191301259991024600290611875668295213987297618020448439677053122305681858703671597916043764490817743375866984317026795256449474107442543404183049677902675832705651086591987753326291766334573977394603111126539900633325098658214208130767016241028590876781728445885171317607497964998237952783479627995475331025508255741105043267244571543335252375403152851523479879233305418179704385697336665649796231364579211705656273761145582602381406834585466464992923130407104636161482704534137120155339283908491968233824699009864170270593887643839381128386168195270116269028381839781466917376396964809321347743461343660630217554365265899082907725521175653113482607625488050205854558793583361861062791441901607287601427371251054100326415582831989765372955148275873817478910117292421608119179970267394337034679657313313253327805978290615441990087170469037048333963659825161298491789171493184121769775355059866791643299984939677987009967809475824877700110961743670000726197349404640760279192115478871618481559682760161998872155260850244970655696074512444187682638604430968236551689593747912396068555311670302324815977816295631100122403793241403207581594833918400263650839768253392603085783789241688133243614010462846774837762877639590583229169960869357032973795280401609893464354777587171099852916815825541903695143301483931993099836452977227201719844131873641968882099606163462244583466674048236709648463132673626975800486162087870072825508890460100348216029699282018225739471122059384136978865862270913411653518468443890009318341950827954284411390443888319214315642272712395485272774284213530823857826874778382380847357618924158777567719368994000505933638922573849889227760070270453985251213744965853817900440838042739933401196946311749100918620934737949519227361826750785164415835731150029969040873218277270650825477061885529885091624312445855968715133919890451767015087513305288238562062626521393208956478830976026452129820461796452163624017286159100824037243090920888861321820629418175032866521062361421304574222839418750191007417216777862048868237517547070520326535791872610388256721429886542428749413868583711749872152127194404933964768289359513938578723913176670191215007167605287791270086723812763275787678444518025310832316781055228168135431924876157032443952929611151334629764955190088870735089196550477731946658747298323348134580846584734302136371138676545788934936971319344997534862969564203233134520178741668192114076188470497142043006168747998014974824071379228344795467100220701740755957963791117393221424499878047474590603818211032273612684496839808160291276230705158230080521582538200954500421695612362176332252373605464402654260644912275681266084029318525500421113489777926249675370903273088922259284912362686395200561681098040702164180136682410295743034417888275854026449350618040706197527250518354677524137754218217999009489986812362867437119460186892073589895089782875587659424547033662547356572673266977399069900110108748115835901945431121487576080322032098903204455342125433309984720567311155533901137281020985269982899191615382354103668510763423881014264067422735676423686470290722882693579556270412120005887887111889711997740991483944440651859918884307757176666843603284069667286631324805954850268854555649926474464101004484385643982957868881585293552236640335950888345432432285054236984633312039042424109699679297924483057854965920579492080312008154738504015991124773022959586486483808805654999058746211647331234075367477289347947291302308765158653759760161186186602571956890635418267157670959286831479824503577984488015945327459022627863695535295428865168778830162272490563214512456145514667965143395890256251752210648067573442010893179063872656246946396833727422819751369998869777483465188613124093966552265550044757552475709944019556070682732492719894874000152742569611831584651877019217300968804755272666939701150163598694331093451734080279875590405647577705832571780320197382339659383862862947759620406270353834398605299676668033145328683683218603827473160653708127579826787666158462882378960865980457043620415244292685924325967521578110623507194414958290667661319632551184008864864900083006494789065406962391196610649242716390211460328391865450992399405027168393777433589939295604943616610170593184306035727705600701255271741778254697464323900528446909263844231783772322227246034223841109773457303331853633593027665143048470793083870579682051244362068755266509284774865993122630497995610870733965780354399373227568850641241751256562523137748402254625440648216059769375180462163821466318442911604752432414684204144897230811918083309260659351497640093961654135663945751138509898577189861228361813305134830648037148940080203359369894085378888744950628637118090957331466157688689267496667706980105719284287463659551906583696399134665194780930506557272966943309087693372577880681993942001917619983812322957373581738215069024151449407793576464618244641996247954287399284612170123322080368486928222175986081156972403472285290984794393012886418506494536963756432633028991716176595560071402992503813657151634326349496694847297123439328850992972809259764376262091166215549177959999019708883042035360365712090311147847235845991053556982372598984183447097605357351973066610629498031911548239887866604502633169834411100135887309489642994159666091602162802809788633878981890660605451208018994778286058994612259512813724048417536467337637831290977030462914042305057534825543805514069830603927075134159180186519039422976593453062400832340668911078478928379326356252742561433818847067865201003915520375268154142008237262752498649925992198057902521951385566003309539552212011468766630449105645830453065322025986440339403804612078982772388333271234888279405121395154980745427879082379120361442030441325566439801762485329412866201556622236410120491171931831449312519116501638263632431021121651221531504412943954010993412306818890587171136267595632910439773918486534873518127950152494071980852164218872393005649441320050585735039179664727564966061304994652124612853355324301444072207808976168976980980672966206057583205181539577153882505350455515366516451398246124545432706443771106224105725049237973976894812003431347963080958464415753454543681918409201831301732116202573330361785941402066660825988810795897970637909853739587453022300428962859148812252277701490219197454301453966607131733043661575243387949493891421021430020547428273677648231019886809381313517102860439489464483069884856857152253508490245286178023020537565422869784778930997069474520720862651409195101089612649901078859780750827049417723985392333494200394003461484279229476651062191791280254269225350951256373335603686508715401059757442521311409956376674566622174344992489345023849863384250942315314196109609032981988249267100814855979893243728832719818219304967963237074651336339535030942315169262271823549395169346354024351568465344810821897979327138576327211026907680618888895052226443245077376899194880244553839412511071617333648290450071169086377988389495904694505626053090031348899554161019449935730689811292673799648099286620716816484965146730657108256814457077587343226066543859013382273378897628705814129789118413517082059003814366697594323506828485536646555077091554008858156103728146981414927853903782337134297582392078581612441697902659674924735879774770687081895293244664633729828279418873774527619070392276106761337180264032933963724923564768046607100286385722290315333031124120273363630902822698026699164705749877192337412797169038977251574944897275180275021780515562283762902408015881923856701853383510664840551340763890953555274078722641310498133127336780448169460509104201561112036520791832351175474913316962722753449194183621096553463475764781701542240279879988767201873375924650058876680285082385902116048495346888404907823350070040673296338148821307177544336667919494568808591498456180671672476853169012971825712059427525341025155277062451520009025664520600728458140330243329707466219197937301767547884085698256834766075926370023966087846754275206293490392828350758773925036648881533834473546820666020190564526861631518876779030421219277020593146399167752072993259166354542234774524693411400617692558540071478669516254955218848922589289204142037152352978999207025608910882950843829593228298501426315918073901534494779684238486175076312095317892514103158182637966072131348251540583978796918878376866645795153817302485761393680075320580727006029605911504343433901960585274386801427598137976484394763276529977068297053381360924937046990929618817035754331100584493872621728930039476639905769897544303421096270640727926048008973447036286103192567895895582480382603545499589968385625501315336989740466725256128477287173031416733096576426682198384501517888660935388820583363534018833943855805345716993482503856317036597295663623377308922336325484324304005422694555139597496821014230822616001606576388238049137951714601996466855827588261766606681392605178096831571665675263110332011266476842329842302321947465969226425659273244621168630841649315119048021347146165829139690897435417034207037763940786625962577503549667944684682317460636987566049106765936613663898446100652041901144733966543368319806034932583945008947938014093821392094742558485200963896508961783005550236400612552226015717658035418802144790165608289502185386081346511782671842234225900395876722716770732581622013011332661990978697317790061321779507576192601607702145068633559313522807145441737585765673773649895321269234223007567613298911225675959679604225363127361462032920611065771467477762977767504971630670780093232476867999863280712342361988137202500217775121698044080372786529202238646376783482469754444767129711579365504409096844603390511614300431722524530969089144588743822304873759704534098148361923611918559385144464759435056835499947566949818103514180459432035521570307876132559027904950552082230178375343492734884874165007818244100723563904135116813662076413195651471078032603698653581380752590861309897033239722332109440363996523047226272564460110084231951828362795242064852654672846250873454077044580649852364870572132013959009042297343991058363277261729134087696002159716623053917038391521294324116832001133728466674336770518214464074903609717499325302335710836452804615261869968609667694471195664212417452210923914244148831196508408871042737173342560633698164799035403387812733530304484366288084882481312327443724884918251742245879060674273787861987593947832030369098677915264687703061025722285090829347036414649306450780326023347368104470070806271591813649158716211315937127335597480170624597721394036826372789434945417625152836253618295924546528068144918394800115606509880513867341436812954809869375028543046980678157177547584668008414249009973387601345846039752365930210939689428535824485238362540755004415298218724927715570847000034148109875949749452156868317709031598750083833582203447760427060576715106157598006565699621968791396115066114641882399402428535048801671934887230453183788590243909510609718519925326379379982006205687490680357974573085766631836892485729317555621122779109018690318220519607704739029416065541866487543859009211833408239447062436548638760921017702371174633709710809078826145409978739370205474164994104078780117154749163107006241085672801240167663977917641584472675865120307239658118787696576845809332294044268807868482446272514196834894547905605097899571602393639905982431863967096446221975825552802000334568001833583931140657476678864592945784842133098224000277580712454286888393431953353380802631756559746380252428722805769733138067072533026647663312146008160101665941330624461695197877427795305801941598285041423923747010576997964287664241469040539530242897755354556323412279336804247987879397669849833681362415566790973252168106960159998335777528806981680979819333051496208440462468638621347486882735048054754069607434125624801785827794461412975695172315321520817207608561865183384739460317148833469473627243542958184660393770470257989149862897697629085359237215286929230722441114317507705809912127188621525647015655453610886135728910764628324626706438051811470487700168144010261110110196267112480559242419380971697376131438561221136922190964834959689726042277156576979688728500660171978530839827964351796118861119001366674009770884605912439595247881586572548426017613653717484601842077224947994540144782982963298021877965746951874066811162001930688138068730204716791885127886371640717848813431921318960391221670481830035184203363713170235928031469799108267755709745643536583235021026904124371853631252857428271678235274684267347365176158224145307593439641837085374072090472285502608780442451312090220591756461270538004658478837264879528292467818611914187768762023672291584247230760494078576930651300162999836051968496527691874115087617541273476412315660600589632686370421443962357037578941233746044121255371439578960115997046434441973380072061506718285648766224107737201449111972589185874439964243731971138889483560477488490741240680731013502432100307220445854518612325467327724541265544326891284198832700461150480687991434498475448206933134786136653391889997580280319609294351055854855005713334069752378247845717497082622827838465724361080506640498618560882345732501290818268363424520178614084707608728761094043004710177946324865105788832007593155503179907207396084329155036617044267251816705867297226971342037026876959232930894628012037040321902018094587151594813183750667842716565858233870001922704441135475699927412568869752591999234696139147213285409271811344158266582040138473430242849954968976493079782072597602397789011333115333083148094914239464495509017517283373084765372128740439336955610094030417553291361086694178832982168362096214452275932458543139324828532289703773658916490582070283930065292683465997951641011747885292173480451715724680251896020642355889004412809714892518921948782593265647643636874509559096342361767356093541588345267864181785594410791704217780804219961679679543566731081032624148441867969742116703502243872755851878759422645852704649539292124468340484473938441391479936917982990558360103535738563463067450626032326996679086104448555601154019134244677554992475879303202649058981795802529803516783683392546454960460291437203779644033136205496492694577939131742646846748637675744597232728220238691557669593163161213989173251606683331896286413998664521447809173614452402862404240124087649759891551825737644399458842043802735943850979893126696850352874122908609674234523838267846133913029715052703466633042125547584593952126046470285058143025828461323947827474717978143687519602867358884252018606430165683554835409412888575392350640298846966273611618348688405626789917035754836537243110492384537778575144094514377819744772821555473894136145791392293970491434009570991000787184050471905510685652731387196660634490204936367201096428970455434936351839386320047046130585443587697136475047932023575044440623275100926487549000285541527871236630930116688191883318015925779987842883093884182674123426525277401179745919949720468346647314778701779130455958895424025002390281243680677941245429841940293298193444249903696055135530560259216984650911988929219388109159145598646830588762191691960682614103362876492035022219659210349947288234008968505583620300143396038520569676856337751286898219905350171845326190630283534567218937149832202942153957119295624745571292539663301393242644848322860722613151026805661641291781186946372860050055438751076100486325897965099663763151402494280701813067507389335470652312306928389994764804260834017487836032113400446242465606498919484254393213208204261597922687479874451762026001437203806569576421155426561903788572010123041295985792196264255601407129605832648930679286629274394733125127938149081502265631089052115730752400529628725771246218501212593566363884070290522295077548435333461019753365474559865074457003214841335706165877050477221233722727035403628406666094096708786921663749744514079159249730858528684066381356537221984557663625865629250364896008879230603520879699119255174957627323140753580680551338906464554716355196407802295924453957915030946338975478350523910349816431347220343453402746210307566700412592805854565461481778348435433792634504946846651537772288197405305077118774776662680568473095055180213378276147046305878063982121039279744822457283914172343095080920014824552953533955322186247157142426521803090298155984174708236469693939987684567494754220017451176587073937214583304763538334802270940693798162875264458922424001842303707314844368857520515701253218035289291175947263735943718221756783380511047515430602128210384920789326502746620642379665060828629606100534462511963522285640121120674392054197602537384669056588069605157178122969410325140106219126523726874609184815592995382414064219597087855462821490110627409756468344631834761604519490995596467077734336300025431394483004139878821338541829459571574336917971862709291243726438618810846251388680254270964269329386933284934137488288222404955146390866450366433707169366419339136926570212232091578314579088952922564415609447030599178945833462085341570231607068905003637053932478644118346114578711577726784542055341043297113125929107363068777508223163880832931343662192599296835868568547846278898998440188001317019328761174221393707195146629518508235450054866095420306571415178699310688854350126176482470788726289604387741174570838157273509658768799945963503357911372673040537760483796989352750623107962026910874771208716158019769692097539869705226829808548111930447127884406667989949477012759173391393794529740579494802137320747858224552705097949936197285681739862825803831386712621138908176874164780853675509800669827289978492167903088103389542351399779655153272173458450383088744534406030380908500100011089477477877440496172021719743905577638717257823971520468482657810085453332076303159213037998358395818255097933191535419739020183936757429891703353873044814532693070653085454602543703355264630341142417204245049400354445558687895627662043703234769758821818998582275023311513802352352636084539945329062021596895106356294860567560744181157156060459652548067625928167934489675772345926449163612263233153931618105812582746638008433627810058993827829511509010709988937829641590591221968304405643520887551071097696144754407815067681346822604350213592905656587354359081869788066786727941717716788496673855537393350364577597964064082567963864880169145618199560951690727638845011750101592498063680131710521610798567921931862276823639988185365970211757142985993317097499966226032415731163914340270425185354704502292204437370167523025558252073022709702879575775705168166588911180232992686118068010763667592839916060911954496872052036921138466404852112493674375030829978338884100599666896442210347611939606794798998715052789589698162083000996352456115979752536233667374083565218647724827290938794177559400433516097988501423972249694339862922948031544024779638472753199775135752174511498771954710950769146235700142678659472786606238252033979366126240555161232439257768688047703356104309370016942363229940644712081266938474798867652255249530861752995406494660944015008115603911264817978836092247483688880150413004468686495722586171854101242973549872632346516951053992151096460806601594459642928247623996634672594657996164145835162769055932829958380810077294530682987050955058942948597296251714289790427106705512051882547173902804566892497402734307111945469775182068024686058973566461391557970804101083848361264085751261971117544905516966558906852053272129436219324801103492820420433354027267405525658512221411052123937643145533060598527298567678403488295301944877995528845320260924163990028865072435697996433803521110337418965664363133021633318187326137270261992757916503552994026681408332028734857093014576186961118499691812459989695986375609898619738108548632336774415127818230923476190167540627527376495399367979536519234253420957130923615415465184456248235207425830164896455794828643336315733561475786603655942316990179584951282288981602705520439795278663843065977094601552285522630577766181751515600284164264260240212823792122678593064848717061347373154163086792045340328894259381252236968480619111152857789164184427010376374903320319633974795949824369871511025054237316796961931170032422399986073622700693099512406844402295614497588624790231018105703613608656141544005052460091242635055406737525899328255089997200251607322746060032968552268258899171175191961199396935801588070073516499648341113118675193962951226867834671683580480679899807838226161367571005594928188051156140333924917119319366640944565762014145115731067290258186815228583726181960241608959045317596227510448788635686262542574849044992421828128191020526748437750933688551631626350776704721163586638465448095443363023784329499782155850095405400008481627303434713535670046550358465897680609767991705517409260038475772936944071720556196788270650870579664763451276147314710344499216811833626537082020277633976863165000192105454602863047190380556279911087462646758242744408126938263961999054213674366772136908685186903521992502084230086579901599549507411272227483511162229083843431570093096779045722886810691752768070555129533467252500065404079815795097268085954023285813298954215135306529990398599615250140481540785464249740574097091200881111902532409393539033381749950880568620652045484219539552356677351455017532982972344585451782152998241105769019773226577017475626162578423166915535454651582642727502889440222201156229146136166010357817114033708234909018998337642149031944790744368572582630490838275519317742471878703862532438116783773908417317194873721494684218222356911733998022628801069829852212840343902129490970502772178896837223670248873845905536629950545270199664366233838785049304029188065315487002103037334322500382197694839054320848143933671281851891104268960069219940520803912732237010126254696964869263398617110755419772342356876163239695327406532127633363482309897223438461850967572803781945020891705116993778005063060482976706524790647216933329999582259965759493260268153714246815430101953808514381952407638344281603830780776201105830067270140347895503062592798250538227049042976343907512231561795264280029702894905498359276537107894366690506891873347492528426742401806817709845185828420232934025615151372722977078608660776283133794721233704962209081386075992859831271894616381657538057227248056440125602065221192325092926326536218077590747479604903227383390235804673258912644967465182190591475680633770319427005013335867201347661749270872030998593940794795862203298933201245860940496603359281637358095930541006838205669796111451611852446321370445040867779446473414111366618555762441492477737275012417739180222327120492309013402374045467046899530525159694754363670942138010469439325022991886005541947184960557490222640288008217217318104734875185740870906718602588139172960923637378325330590614272769479832060926956493991392154866784156445503970899425630254913556733686384076063330963578057729756821316028006561867778660908220996281285022582703341937581535952746854366603067847089267358513503432260327456125099956616166995568764934340319041670361640033725204275199807615757353246766671397601857610059521696801252909108273398415029165853145955865183000463163941712551530143701698843725626058210821742325812532969930157055941844939768020058973127784719191111248114566955674581886139594105870283029675201307720514222061174975568677709213901063276907840537416995581536583443990833331049280538338698262529860938624084545299350438072644301251014576577759851768572637044715057610890129067223649853966703292571907020870328624099870195966157296614912763718577963224965012574674019547486273373359333059748137778803717167775340877001680662948738279371703419642994883954149423280175236004970528802121671137398261805266262098662111618863345856720060240172602888094977909044148294910866302048869351679476984708827819441913675472215168663196607725314574689582566478778352673881039821994418565187572567514221220536262847060213626699639129954875259769138163021685819133268357309099067304847946225052220219620379075143423028911888864317323673757851402701106326446248576278036078259743664632428322439248809468020784609163024024874483367840323575330818337661719435139313728409172480460004417073518450216257442389422322399909103667911318307942106661879802209881268532575608348358626704107618402727826750558732899617673031840465768049284169715165336117920903824456119208349709196186496848033653445321878153457757783222509120136237214620896664962818017647880080907630216615596989813111902656035022615334345859432646203911670803241163469307564968245948169039264286377809443468393690606252290349634013208407990707526399448563565505079431756779725937208161300700124493100498566656197295634527299566303499547219655984508679235273143461467243426660011728832361444780641972066731583741259796011258061949713065007651429847507721755556349928864564974263011008642417507779903700152505707081756258236258957550550059233228852871715109161131119073435934093564899613721588079572353663221437866376669870771311812309386296122182894733196595073231431176734247352649970205611420080855506469109372672551501916249528623980864267434570708280670238230390360912954142096451980964292198626077041863992248781112921096753875537531169573077330616321140465791370695319601816099981515490237146322749901019990645148804933212413624853128151508008139503122958268661763830100433055831469880992990196949147356599895615807562837903835106188028547821014133347924044563178427149906207442874741314108113312347127588686635058928594681510347656023034662260694796015620957215162405936750833855124630852202297008609999349975844657063310924353575954318268274916432103594570343075022278861255752410787205187587956943390827795228520561774020803218012261961395974258235208350363763597028798702300183774356591996451903435513935519504776322106415596451139766835006440006120442961918723648848160276427571142828029527015962436006412472800472452778839753529644015276302622057940936282860331493402616228724904864792910507733552160766693628925073092216628709770194335799151637495383267708898918866316643538327583490753887285021947637710233603286530903798103058875154676657760518128104705408859392196654717319130014021884937135397427907021488949975667106880658191757410265533430597545331518796175936252694174419508233492241441022458895973338024386897155958124573468720548528481143203036507236938394383291327376132330851558663031254484544270510705690642198818878573986739053718171496843365409022347853915846891881565199752575231577998431418141542776976710323146487235259938513479217030553608582570335176952437374579227183061890432688653056959327459943160582973195096908507561490073356154711435667656576897486368539466844060156965587299849658217036144048547631026707183192474391699814531684000471337585360091502350305205476001111896057217315373368851438592609929127817894534272728735936420182488551387287047897184356872707162151202996788768263122145687597235126368259435204442563000170482188748020391474705086051157098169702403219982956423695804356788950621251146609280713285968218790659403055630717770602432593674023571678868036303370462832750501284084033142248873247058581205368244844912222014357141542200298354325469934775241987262153734594961220713032467565684272502882606407857471805639415717297704751810072299529572088675827530984804853419948869070962797664564676371837384519420165857901721448418431338590912941856313665819322224436483510290084772716241551580356039535830144160396427908337897384402070639005056070113962350667906540803631784008382337574305707667856293831796814372154497440249988860947707841814807830589339873796067238394077061474579097209493245239714744121017220186226313591392508721796035430709596899408760858500943648184381790879945210229057000063338353065670402642531531264809398116781196887357555074079581764095388795830064955068297835597135254180763180956366074931723912646852050916896092762841123626275316905163717966049227134148117049497631677704008249306553238406104278502426284831922603261481592947664112679565952405559585708149422782793222515849705575215860747709441331872605817009467733946760486444226767001304695518158214626830480885739641595282881732514765307202594782142856804139608855584524028978390344993409749081526907673508571221852133612761554986678600537794663062309304671780492502627852725161299010873085537633468537551780174328199908883547405246042597338994175380855786266949813535680921217452427090211576063092276236735723266364029770089977404880978091449774659627104924390487611160521522968787600720417103840152958637498293043374872971147261091787917815687088836645566073007424951068409749718922317099787174957948992544255432939111578627144812676837259967639025603065372406929948855737753975614758576792206950467720043139509858204981720805556879692827707220600662485661731371844299687618017710933887650207697020218718467490586829791902464927461743563835922044334446836419833056007798411981282223720291780340930516328287489174881531039799526846386416074234585244589297766980743101087914378470977894949425257416461204229014083159895109335905162271852915296370788224936107631278536125985469834769722652509635944867133465630515473839363966161863815039698677907302707839154284105653920664020214785209445076791133009498314789265425440399791340102397664635993116520455624306188474085345785651859569506540284119374614572120277609346214340378035555871400439533719918588396428895912904025213040466675590626634602478541240362602497464026629731963039146152879622068429439074918177703634633861563941449074482520582561129955989080146374829298926802645404450018405480292815599513620289521401906587418330375247501183356462631137405014270255318008402312616755534583931541428717617478840140403164856990738054215612839045147466156014572209608127514665111459950324596601825429082773931135183160063671147076256202367514399590449958770757361868557811035705144913693375911792913327454502446982390960898267062827557858465370775519288569188944724569385888465569817498130773011642554992247349135634523351568358982319225620021157834529115162640934827477608751256735990410889166187007735413505599659481597893370477046306243151097419427846245654397934841152794594358442407924073639971809424152541693339256121412826214977161528917941444675631097026697785515503348337259996308073092157827110117950824823901940859843594997258799480500789276059566221436726460757787130356767657549024425901332564136797069808486642673391245873166859888346924531161930373844746548816068589817916488369956198705821129956754582821691939136317144281909855454106314723100093243972272795921703830653104557018414510226684792660924990780105093093160720905744178994487722742160026928818267822793255147718232646867869908573598216936432710281645711884022913523847567583437231409707042806038680809858884417269128809469595876298145763671416119051882951083350968897582702272323047627828892262886043242297225102971373993309198403910032116731268988530434637127597726291628111459396964988312975801463545396210234896228559961154207622834621513614795876992481408308173835248643374373724203428368218702767779625085399078237063424840319104388367561989012312912694148225369536959375969284059977309275160202458864851377609642000988593715956699017531074686783471252505073669592363311337698076522557466668604875904058648861913812479792859887084747677763569554966087897713220678496998908073185666946346388460899384586271926972500729953519763084461242367579033081011152167574118716183693471659983981786265923563506124164764060652923521586548459117815802570912966817761953146942103215786256766049531787979233633189840112230488038626440690105276685349816130575044197282374219735541821534998218046520957373654113162249403582448986635006540760100080705340901808274511771091541946982269004522530664258026572014594944506020409082611503175941014374149180838774728261304237002523312292285528101213333220522930393326210156094750095909840847267729488361137126702220512902124137828314973908793241333918581818879053042317356476522834770378908783662114296332589558640918613079486004014843408395631934324728675634269132746516510505953137801759491925711888302241067093282042476121062372508905358520418580431425444335296402673772176895990190566130948507835011164587856269290357768286847184699021741645784173118490647120393719003925956035104341833168620399163060045352346481078334969670484709810617626064615795258955086915673163323984215490112190969932263211734066136864875469072111944424059117848803782875814611375680083816304945399858576116703112546859117357201149464167935611147943085342445530214500125675334262754411136824403917943874794238712364247376831205103561383138955427933127002385753394899289260319477685537594528843144073419722061886617390153998030765734957310155865007179972910260707004184149034053208374937298305853844608158392925874739627388755816307915192750284111419915311802873390306719625591123526460930082384044477615559690866924285546417862071986008078280877737530901560445545205933413477392038118038525157750478451370289916885099342993404843652101672207966453670661629576622948078268328243058985173207640292728886292198408343188765752813981671388346448832211683783384751010954814904592696239486320617343292856257768066468218239096808715972124854778591792716908810796081609680236038384043213846336678830803709173395166255294271283842904619072963031284243482048522899680224468890585669072180638367180204602637885322379739551809697496355673655918566047516201087870610899161201001274527892487340456742643716397949079459096078560898462288960503975625775621297495488362162471658271624020247109548469752667292494912848855992685107908624290815000200943746768909916832095118928599535844991007791660887756276313644237114916977727612997774910536642776202107918845194438065740427434252968126315337351083513708693435610907975300904307631915283187778888854804824025609866445737315005580357186234020180104431215137393673284740878886556748422215552307694827677096546628742746692417542188402303841197543970426461076800619024214606120203883784340128101026564639624034201153526183217838786867109295746230620464680742786435238067532153370535085484422647667978755391516807388124276849832903953740948451216119605016789903764450734402916615951963354147529488917461932224502981871902339389220550164946702008637759799769015469945847252558310375895617828506178088566521732550324697772456566494829361857435355933159079223578295776678755443734116363221411476502122996520455815311454769829354498351820269089263549787970737459603963460174294476060777008545136766873260474310655550511948553123175256357439779079936866803809706712202164224448578270756981579391230836047070723138103914282513232903158735258567060930925517632207535830281432822215174541174237593667347195768851989595384359557101241274556506602970060768911313455692680729643013193648335001550599818496204457843375670661455456022957816651053212641406900265059074221906203463213979600891244919184836858102334242867281744724828864579364874398301393530567291280697857118604698743888675276253866040516459394520338975524983113109591107379927172177521828690340668259549036170162392784388363814593684239583929092481557519152864154448489068155864713060375145935721107281363768830766912225013684967617039128518740271040239106126627689689740977678834842250712515827471929087300392307751600691799452656253502196376657531842943716790089390273976198846874099944483578627611736621644600650418568769885458621596175023729671568077434591447109324372157484885017893233627547302106117785894769038471167632249550958896325837821714516998676053354914308987253129481791056878296465060323611397821078003361726722858099188033344264682404114536431758274967005335319245668858142469950057960279038321242246836529416165250669312533046274682915847927252485270488652097520079627261793285417534237629493709846028267094213237912949404258691399734793333390610169752513790984345333402425773963688228487513224521186185251588115662218827202691833752822874490676342158684209018146168505709641121020828955380712486343719192752077293385860627668285708223717456783511548209640395009702173422873356588187113300402378300660177965639489606058923544079053079699446635064729226033190701857883053933682000457449617612466045312204368315400517894884136009265996553945877720244995084099178933578421010460191864397421308400546953021757496665099305816465295704067044610173982987682522743682435679387374080712358833379718268236266630032794318711247911475085586164358293351148015692291310810651697953087288009028378874424597579913402483502106051302981514697071550473286792768717038596014272519444901284442546807120176448182040369200403720384100285777443742107478241373185678686220878285126423921074278942637428154282176641823225949337062585731024252476981220306532075870050760403182539919422799703896463993073011120982838855805702790539145966142147137746456857217227681089769067148506680722911508663949021751476682417757541403322256049352199796428682258835811370744775540427901915822460040780358711160614763928901992142313304760290861972704802071903440146371474564057569254643276222239939129265417878962982115383703517009948090992814595152921621241870645227007853657898493984569321389023454640800484013009881600941003478347814452151240741056383353721038945275067073713024189368253982788705371738528204159002739471692384157443949672382620979187227052115646374067338317388305766266917971364494144399234151845330890537957147016534054885818858692991964456215747698614450937743807016325824478373889831372246316421365117193525538032022601054094741193032663255357322173920080592066385803833681887247368399930014745272903154561511950631861197996219137280327467649089846091948736634261938214172128921567139662736869952031262480622507865986668320847846371951830682500281651516839834933596555468017921509960896359072808520615995930626628640808055050599990765847749588067556254270899180805772388899020982669794465411995353293249145397634732278711471601770930712062411742378228254964716441302182513200550525337218898746333837577903082235187647139024589262761955739071830823531723568656676598328957812929416357410541129639345347310315217175859114354060425023349141824739174315340091074012879557884422504901225155860814031930621559440374944694082422540624608792608333820126147430472945340587184376033000381461026954953153847891961826009449481980480692114191419304601538171963574918352654153302788996448840137412230268484080638883586324806205777124179786808271725827210103548753753822657112666482918956390959826961166637712606795419509418003219022981505198763319879556128746899023922541386453858531701042223306609427488293711047842972720389062036703464705807294977996137237720890204423049182014392271742065931973534801172370871839597265275581715920129107217372692068640667164417168541069228068654820152245190756059337528689899284840403066470909549688333421397701445524925800238428614796773396060565382001452792753942066299212572672691171494134593264732391866102224194277904443455255920523166128736716517140958132246198892263937085587801119769798425591443178770731046828267005421458714231808715140327786328099027518985425732726978638084384740116808584228139832039789416197428387325237271621721454953161158525138622093189590168333347605605235978069262528257360921709847186105633898071150591042938950503535774298672300815705648186772969337249835483038111406249778749076125759323581658497975798093214996563787672244470486161651368931830520781690754784696440547309027612353852587896626002718690681749688572478725310699812110896495004145775482622647230983953468739916262497929234632866342950531232093975090329411709325599568651797647010246594321086061359877487959362320552162308560887865682772674705720287592388674995559313142403902612267210895279676403322452184794235640114891367759677246326920639700886646565776418812162905661333851734739273505082383501118366683647802671993058187357573961125671523893224433135526960597365735419541923055533240426622694203619466848045283158727748305919437568818331394414001499944454603485267640481862624930661465511597788029038441305550625666223409863398648671891770247432656772698255921946617393695882278331100702690823674656339516546935309002039701670438882365255990927676710482176419940267589886198258628022855616482823979781866083881264975598505313134428275035700914285148269133648013273140584339958601687238213556296990335127591560285713587215888925690355792015927004372836964040609762772845262810410410522917912509748150324304983586593007133544686676141933326883033924591411629178118036133638385619566341705600894076173540726537403970999071695003205466555683106329076627004355157386689735936503275478177368921486756021761523552905641357392318186168962809789044448397031166642469274591324503645465955058306288293586102611799573889064254086413207612711083445409908782779013397537392482153897514162801744415165684828133061288429316696834484955878866557779456316968070373657459969590809421279248507937098728175829975769990090022087490619501357645427564196235291511163746307215372369371776835509155980139879876472568003642728831906836840370462487604988922353111409456348628758693089783847937829862040685648835172224498751597245482333406150998709241984178474913576264672285819103443059685012709771253384230066451203714944827397883896555398181354126462633297661226981179394886897573859448755445507507981465058961620964171408726864653760515488729598263085615151555326303579000026739268727307568949479766461790796238272404636302111656984860407600932818991401874562280304056585824840093118381790339757281870386206444637195587657850499008675757024993512019917502120112669905998754643175332586847039997147107183949912354622939377225949352321433126712416577102546078387640205083975876875164475022006219250399276736165834982566967528907673818920546978845031835138685442970859339791351261729877469061753357830234591984590022242927667299802210742253713376836280179054360942497892150697706462310806005713521600451687755132666196164436655762448914483128300623039918014973316741375218617323270725077527981507794060707439934529904114975859023165733355748575345784835589042904994377319875163566357718503139280508847062481699138093998791674617241475776613917718687609616143792925322303620931850537100383488539407352490677258957479729213839880851484510260871326973925468923140618811661381205027807363367401009153078513947861990823643181666038546373369422860994990026061828080399622241305281746364457884884615089840255213275111934680590256153103986173085163784508449699337869962536417420195599126533729377002615237420425932934823169241176823445520679407572254422673578929730522463507252114717762225949971914279246096497218640364995369098280560697954191236422613363047366386357254665335463430765956012206262687909680303393302445447447789721470051760596333962467539013305378393973941318472503166160920084905393985693944285774755565866489116930990956049076420851441850725938699569278560013086205345966721417376261163786504433647743205460239914616120759919850904393134985625131470857968771517390036691052621296526730919257048367854092074977036554901641099617523472960690076547294874254158645934229237395707393133840319178895991291982808544503846950680244821864266337804042825030088345723371164349102323684891424900501526597423285917948225273453598577086588274500473269140542778269198526710536939774661737339236202183078993517539551712942663089810030138943364156565606785006810138121262361878597665251734237647773809010315660655137081367536895330147225123233597934375145150360479939017973495199395872623353705843287751130705898640810904025765654209292195821064980968952540967235125172073675460296853174247356283120824847326709209150710059584521405702071680670421303583432977618826048719314873378620543296302599313234637639402388851101179987558071504385906833171648392532281954573475111132431721980027601461144191200832175700094361032302312251902702415182769219743805538360988470414691275408087584165629778435327928848878566584217822154940533942653734239493549197971821766195486247285946121790950665581392006476303869616763833680976252770882009015745041934042623428266825588719885474300260536536819206803024536925226210536052514836892302483984207509159596158892706498515891983585333460440569748625763589439690659974895322832780701895280369839835080531197502770192004011774612626345509175046760815066330204105287480592956630733394498727065697879546545926384760118235333015398835138288668103822721592483178924049024070179810691981109363213439346078626212037049640843554755902529501082677425868560580695699777558185846055935539468128250195303821112395897558007127422868388010226509451917831189857815843963181409592534789329500299238362434777011075575227889413331396966139120273962274173759570046069480436279421985827416015068794921587672844711535419879407504924030613160631060166976764399012073202027062727910583232968843039834763428683730993766173165562432007032535055746118803933835003289748455550959147914738876426175624494812658004981639794390215944400171016933040305706975691059195913400273861080241824592200980627984616460012958756748486688800178562555557499941797539794604482165233005519848930325302075039451456499040059965727211534781062007265466515035321172515675412821759360618640481277287177887909983468047453502581318366028192157191364307854541154735567206760987873419528904759755671333991803737075955670048325466024901184160892623320447051715169771395319930520249054372932222139093917047937415364176838079474269034758331269394230725033570314632086243092881220461156943046273912188688022506880787855028865773689222202238823351620678587720671721683348684105825493321839042745480043682846551630207231603952741625951652982619111289021925826228951764370412983385457931876213888915703602624632315341746659432498008508068646196457476197089873466001825106275509847296462839907144035397622957686208688137768810363221482488629203601737411758310155288977481542909464594415028161281017242176368805839513328815845804734912060588326976823486782913347713063611742521832505230033358574957989363332562695006346155945012534133225784344758846120230923589399914547354795734503626379179208194391887102294542608879822378227656757687057081265996475990014068383993155690899676008692591545169569053408337255643666215478702101383672116626373015160754024746177686275742306485498720943096887324003042756932318267468512169015342289441613444667523666956252211216260272184390826350059466817110957821441754030177662572000334229949606401020957850470492242122411788068306219844446800752516945023144363657615850825003311453674313471298825944579414165234514413489470520818355009113284495253205664446950459289056290002889692957755644941491721921136812444364852692891596388249200628286058819726005105914598207845637788404322275649755153312660307208603191899805675711346175754535762397417587684868074086122168990077744832474520222746065045949871933244499927970180129014568725551351104073051753082702079852676509675598997100736768389600210165032870761109791982417293594338183022782594555599132457170719065485150474287738158747516440928287354292499383769103174685778529221939644075972933561609597096976591441937559589746689347023175393480444952799542444943999811706866164587238856386790094841947375497816592279840950056516352273325510477949568460918308438919818255105330881665866844077794387282517116584836521447134615429406523021028699479897415161970669871725777753305182840691064856720348467557174694196886367918947161302415760159536283051385391282612356256543186111335864248140295138180087808363129495372506706661497554777631004592461374775314476199245245227847559516003802821625680889995512470789490674140441085890349795793242513227570271881060935942928425968921414464214053713179883760701371812478625201346388134848224347006318304933467382719805335616283925430498025695112391552632812006229316442895549371827022432572159174360040684986913800449381647400255535566107106614736663360397618965871382289526433134287375098425186554679411592471918697856589106661150481155182984595434162340502131839700278534761064861690290797227384501104213945526514887080673341249194524864741643186045192101547749594641839578101650221458550751815258465206136469281877592867567812486621721895216501872541381845922308164255634333268382284154682783905939807491280400315155745443875612404020697203930770155452429747605733311164634923666479274669430137286521040213745484376302985141462402728618810022171637877172431160094687780715005491132417168486174337321162604666375886333895900232496023598899744266978060630688817007513650793798664327887973541715273107757779050686866866711644156165326122208075631831922986555046648946516563965233324210917818082184321210483221222849558113069618783427707179518563487386154077587657353698137491734805061514742213196618650620779287897374484234678215729728298400318198530163956320632310765453123072233493322623402235531360746490372630219287796062995079783382611659734166321635536194922683423186197869855167269510918937209300824572877533948718950627179899204383519120733025386416257851100662658617313157065575822560507832802878624077818394435847014089026064939898861824848027107728759308172297656052199406252289725620747237351052046532894918273447099228069421150947625078128813228480931661920174255078143120226918565439710341435621062401778330861523265292809779982739570422213178314922771221104217752649143257338567100505776170064114499895441499465742236461236120941569815697193982376006145147662498776320845372620789144475275182597365029353167523274582913373025396755357046536653948604559835517333692830599014175991784296419773453537622503236054186923130616703842810216490485398321144402001710645278542635098641197170010103490296422556415035883288564036822012771883543834024995851352274016481539380874124971657602797597342651663936328941652292007283403424942420903563682112558437042434895940434201962348369280996303822756375301577458952200363977125537957920134942062749055018361942526607569192231099994609800187054568840656852040226067773985448826032386246455228741544478705133549334934329619693904800009029060613640680959049911676437031767647025539376942744106254195631410247219330586330969562233398350042098426069950195963131660439329901172134647655735682467543748852876781919780085778123318706997397216541599521186636828190883363864711005467902195119673344260202051286044378967561251219619016245879861490981014525606802047747037770119444264850890050308391672798661837498220328213956484718738591680912918316441948784939054845989550261892105552432204390097252964556412693264571133164742328434316493904813425137749936956802923897341481381576386564283294219863256192728064117325469687219114544464167684780856751806298260347095244478660846530851240934947201285290987446831443134566860661043138341080780496234540379826155920580142074890793100064172680561157614639807326091241477783181767515232267750008077448808269136097415537469759803271830589813821815447596867267245548613620271647424157875371063247902839600462882242454149673528250927631313462339373889658668854920549914432105601258141775208497679096480045940996783275824335019074411855441514487949757483388957518617848151007900094550335685118776755895775004612170364496533728664639663145789045560030207373582650347254393313262838245326931273330737573222285366882837491469833294709904171772346630034708774337757788001253590063957451149202730196488470729273026000379249043983661224427997909274623489272544618855684253602799617019902032515047536083601130344928128956182519898314406981460625956864141473273903243177242160338219900864004930712574054471717555287228990451321908147341663666207480243154503615702372565749299436793912240538355202195214249193542585808978407761607250739692156537593940503852898176667103290258190447544641160154079597524206909434391181655577872108291619485234460160963751093604074003804356351849975171815311617659248821164360809117603315390478785573954109836467396488497923220759648524554643835104850446858705718640668032150502014770688495397713923452256566085716737948318301768536791305438786668448761174792260202535239132800347166186932293030180403713868577002467783151879506400468511018892576071459610455456087400388840253076901437784417757365755921712654580521473620301965354627225911120780831950519314728616636074826585435230482822428736223754051180630218869138634977469864513664688411290257690558905429108558028804533013955113189913102383581210743970326771782775979972397027218895832334729583607458725718923228855736497672254310159840636606600282458599174959463485201511201672325412787444141807363849391184858512982791425261346312334293155998796238331558865140413640778970230278504736865026027112302621702038033853653177067861514697420311329418797742501161932476679975643702509771531850836008695413253270022658974730057483425029953617333876286435085708726419376478017421239337043304727257634365921379403810853188307701555190717222601973112539833560547483823430283022224788615843458464889919764843986679119368732341648991501568102775761457184916037517256132599464619081009822883998032566253576606683899639037049179968254595258644977580615564403492498168967983674481557924866859744873384305220386935235664197807778378159380011689246049863949969532906821108339706407000018733199195965562474703849612418850154605357443762794161379225104288703022023413922179054127330352157636449189674347908010207764727912279330643260146889260656458374977793784978347228789675695998588645639972773631703216055077500955994663755409571957827022961525978149782312768852165243549118080520062681214451268145127631594190644312646246847088392255433006897311632094208999830369983964569409311131364610499021120423105642167291020539639200682563697963557830235006202302940958141994854128434485880003530590985780390877988067798277732204203426463545948733897419807858190835824848378201292899256325501362208612758856908371427126826125789848444041650162477156712759648424339163168199127031738590712337405291086216948877809676757176234676727860210572191814793338327162540421053087975880818465394718480406894167571522449957901915124183110342922449672487018050379723502234994995704470314458812854962415812476961583851592828278090562321986350735242067838586189336533892891791840650885218000057372620382908784114683064111584906227834851176300478856824831667693558132730693542787291915507363789322462520391941380158759379861409217723189324391327236916184813387158158297057548106306193866151572958909031246291498450158225412246743929067398866264975666226692818557876916005281971752721028438578504464555948926259006256527862842467701770267540865371970477107756332990264069440533649203364481166150086805912906111556145528189459917823575235466274836874815480543919662811482154253292432120628330881681105623558187316822927815229674549853628143058032143573174426751874659176136262554309925182468983270955176959418483074442680589812514668038746004554731083322488353976551146617215406773594392819845907139853558030487629708131859037319141888076364265645730129396174884309431891973142827492786141349683583765542595132629046469953042198380496698914384428768462363844170821879729389478858701464564430730301960213473885420459426906932816269951761885838672627646234067856467023626640797534664792713090530278699042814015207093520074245965078277011426493472967777820368801687316587893761690528106989802549326222536636973862174304620792007672752926871616296468477429733550625819429785709725105625432015338032969031225265305584821571635823151626168751260647499116495692574150884688720065418287377245960155480618346614549910774322144445135825846516742592696903427976446538815702595110709655772784795932803097361281464040821926380367797042240814147826441926265790239941263818100381803141187998978880221152491952247884652132568232577520462557524096468398155074039801570445219211925037932725299238467330393890189167572439291782451645208669027597421056515248106996362666703261182724010751092900551715735483724912070536565707734923376256118767724029379771489446504629985140493299611617119662096978901637701969559961439253783799625048134945306549846726559280186918155003726940215046587009181442603483256318649830559625556523272006732787759306758265228283438264590786540533868896734956122150874681558435236718935438132642329431375115250775666776540191713205710744459273367643583447122151256869376341744681521040514431810964488274630607361140745553795675454987314865068625159647983609319432267167672348331989860752573664008502278847307686762846522180992571388170280903143342179764971810288711473503162097434437953840033529187638364397560991442050098435211224603119307074850297994377972229331233563923928759652422364266728604892470885040429102427896643669544933523264339845228021861657761438967846159470796445477649369967175162256060769761482826611269183390851398836154508052314131126688781454985815858130140703114371775539467730066486086962180844560699254798595083258669619998287513102792428454400572980765933645713225238746851517292190365226942701523239755952416138903687080507342875417691043630863797512912251820689196462399978096334173387605958370693408991540664931461990434987452255095101687774610848925711379961080099508212161062867766098106204932951674538118109335769899131287034981595242161641518128346989918819108450845999100751364059841681844935597259224749368681140211766518161901067101936698712683498581053049843537165166457712966406068018982836303105043774827583890861619093560073529261228361544963485720257452686633664532575327961320239956063496203126004891649886653177473968473544230205351319472274222555686048850775637532686856800768176520917850224332452944528342238263614012450927068568451546460590086508998082184695568548801040855002556184749480082073179341282929026503050142030046506626216774340562284875845377741052968487443401485994398039625482505834016355123214031129978690913429133890465970752141468971023308829061121211807626059724078958863990166510509037769480240484069599277172163352019893733223345935228241483974265992543705078752863510792634006239106145850554359477615026793936881337033936506459110945638495334309177191137625630802109814233990836920706879259275432872515813226197278429089911495719385273451857678058438847548634924955249457874156881698501187458730881775061392465120374000300986735291048254988081387233253675905116471566155076685919871142159219754897673996962917691346456820668742071684638739460931700153129315255673504260080925749191208141310374764308675529542247252941810133773389108427281073559749982210762014233493448041555385458075173518545493915095277579322586459962532736478785210090316040124733813349154884893966624456484559116849990268671928770925730103904694722350126482118598013318066165714891581740295388490083966374620820282838141914777251006590895005562981516993042256712119408561254618609652926210868018164491882584970021343735791701572938306400010223592215426946216473882492407173237464474194362756943298817304110033323387750644449185868669479148107367916233170541456944340962876133035161973817990113025188520058676128757490056214386970096915766125308715788145959126139952075393257007180947014981293340464438652088356681134055905126173679867637263185832854947241464323334106777257437979410374581090067566635673669835244216821187788023920052854852068775337765478521357214396205527374352511575182568397686803494987121565174277612247047591086942158811523814182585336735700798393603333400211793924117559499301487420432766072371767052802428343361733049530413692125337712741512472075867591985279166975158262338288858903588853761261058072846227224979099944465453068835211035803656294087489277040016805069509348076849300264331339194051681694288244740194715816103086912585795818309088470307436384601478607559906208856427060733123253678947604680323115648472392260853428072575791435823076990552887164546033428505989572612685848057207037026471188970281828929170738786386438178279638124304199037616089784557336933922809155113707544391252759116950885694003520144057477322161800590537370512752333898745680795773147413396671767685012153680336119162842853316472696378428756725720227903955634012556637625910946301669836868230136277129519243423930753693180107500040402619097087851176644886644259514486382047086029485905685826522813023895251937720570135283241548223003252265273280021778043754893651357558320248571200557109759659091339521745190627109851744517633269287147694815925711857019537582475144683838272002867354777114044307215109256857866793578431857533652983845888367726861640230355833384025789808891092192736950231215542353710153188026462990277861914796301658698949110978191862048483366214276273608408127415377627276190773261354777547095841102455982028417138067633372945941064781896114797674278131487251579122716563174667430102006629816550132275635866505016932332707822426577170441859716314350611292087028862285883157872742024005093297296519817997842592072427760117322018201307267053502804424464700265644600517497530712039242937374368097210405054126670625640112851685691942081015596349571855418288506518643824220490712772660502182182634829912288616715824851960165899342856461847134596775107442874163369416503878681342870834851598083591409649566877192230156163881504411655751018130180293518921908274573982029363217023038196777818924411423731199444748772366081133996966598511672456885627822585698446106791036047037830208487388346248286908187180774027075229977443753815316645202153235256532512069843338675570192376907492820653517631382111918033786602061483717891765367771780432959295692255064758784206020301192837674931133004390954059526200260443088760097746585980163548678436258913998547493777790712758694939124034060243104384626876765050852334143432158333520332907601105530811478908097127431623821911036343427963151542304735907851022623098601685864466023872709086614143479121013436531826900203656183530565129700008246814066221094442346407759611657935434631694128502767934334158659674437799379868540144687794463590202176041953885544900932183479057117221785468977516282868950668868765622448633749539142744391866418324245154711466739458471832653124969065998206315764046118530656391064406291327050980749501092820712342934653384174309891176926827025898898694835235738886660587740300795557925909082853303546803192925674252946977664982228125640981555091807727898297742648326007402211077789242526464961791837071199182751356176037493210377196302604476316506479403716308462986906465506001253085816191773841272676037147047984025764488169157300101155761690822452784090350665484430764045391882673145688864410674820072786341341703101131930951905567387594847436550486680444560678858960748805099096713640546085520632864473807521400569863527055718039421862684565618633301610929498249669512347998767762853601051282470747106935302425527075741811523286592892130513731824341948600700639033248388317191932660232928704687318044341825068124161556555280799577029072772882258184108488499433957459534300020602460974897687555810094014799962752415042608540506807654505195651847795875547832183781539128732597500558351069472827375623148141580810077443428755724382211648193566182092207120648603142614863830804374726724025317421600395573870452769149879213710088384192568753110353303071735111599829164356142573183249199253741603242942528330190143388616189776803674789970999447808750860124071784940155755650660688448904714607996703160280768167319184193160997018700024724333086211976554484404180115298546132388018539089340049231378171742032530742859868944575485500641311667125788380230786250624608548979760069825389572996815013644358818735520880632377078911613852083883490626581610885565101993745761582840177145142434149955800402660754604635789841197253980291368371866652819442338676561617699804586570194076302478898411192590457502743387202730011004523097312708164158450481916130426656704113586515479152494062462669606669244518883420959844853620902634568655101968065683574252370832430107923331030942986824052716677421488015772671663569632468496114231015271905340911904084559938941792726849444682464934892425698175708670923956828448174238258924081572654278363887231362372267234619978581783283601721665549408745461447185623479574383252859072828525103581583064517987975902222998502727678418050650080593338123920704869251071593673837971739607205874554707758791364133019777846647561344116334878296589089827314623114022200240614299780728357418641878256610368288969227109469734274010689754546764474717129078915586360964176315251698418041724756180135658433030098181109648410667030146734674283204330078522309498303773559547686205135731192152509671516729246137996665446531362472045013186986762183427591006194502221256628454837824032357049648570271191412327737213267469655864920983211798655712666717031793949150519781382060132837365596864396896649382276054030159761254267332306911329519520806273378740236696277606690197960673135959669911059338029579907038969337261954592848331384940327858018604067159835759949362149607651879931546640742158345778584532593327355628081153801245616942310939874024655623540498945323240929189221608651357299642271231368896111829319508354953180714207594771822943922191648813703912945958961816876697569667578744681145510212124410619910393886466771639931899434244366467984031564534731610310587771243507220718656484179833303778208203719053054586032503202459176135456103261703054628847844021564826126389755310999424227959813560978848551826777735182171477262827232940569121793741285179575965640081806040106935180867041512635992549956063395453498807710423732909315688416461247722704225373277483464019070755878631551732270589069856454905342027639845105214200992965609419514561662617424195303298012487105670162824345423218088880159088973220007470326849027100448288430938148442183004284197860936651346169523345180328509667529766339036263421050368839527095089044928780808886164040189153189387339414790499329917440605423969633441540876015386830709451512914538410896098510241917621090337210327219108829201135646667001629513691984418769597675088840134737596511433793146254330172421858314863757216174576272404499720782425026883484083861308554590184934926684273143285981892506456242246190850132758891709462344581488150900241851347813830173638690417018751125305123939052711913537747277717713186636892578559251514102146764986034064449855845560525247641794317125015341816387013481086347014948713530899507198478486328495840478414595646594284000451866253370997410368550740282777009291083466563764998415746883061404084860319728081847613621645169710273095085340266836232182011236519856305132463675675358350299855828388600917850044705486833361596813594293615225594017141058251994930237075380365531560338705791623631188344519207605115258721872888833757201266609850698607816663395447936440997574763894014180702087054981855302680548028954121146633061730106312919181388094279516383675680537861687134344561075399384625001599387775039074186921979999311572334445970006712577893824453405655037735823712774609764858900768811797903609319860888241444779840302536837819532910275599821692761267037401510079101182677258339344166136599031383403524761100299305335984875708059452970732803671568837999876371282220666628052095723854170832200153074680585818436109378109863250622377921952423971261916362421592258946156539292751063376312090693178885783706764603691880924336151852351253691173661894716813968894649972354684971654179331976182882092405475275850456314966917426956805314540818325119976270406120890896390330285383037104087606511424114001289002646198398486862623018267520614755223645875975139395184343132588293102046452214058930319327330051143048444186957649970359705574422917961579131649227357600079065695677889387365169297371598077932975281648875385960558833381105837685712468402749940609390684688692939969058235309564835122741221527345977829721663541862273078264609628673855726372550972256815139322829892026191529271906728726538939578469650175502434361180677935408852093051670873405357655985894219363875172984261603496705787066755747470471495108413395768540183128069447229312965137164567228779755796317486095144872505822346684945789096213531565876691016997667632824086240454437192793246296091284031473812640479933498217216794960045911620137091324025327726470674577472130128411530702035334181840785533462472753654706235864507273365779550011147161256274535002286983447432000143888416455788254403530441730860610211908744528271741274965356570759358106477621954486927516993605871729514297557157657196979354278174345821154280250276462823648674303766708087862527901333453446007836107467155011354281465254120010741335372128342117632738825459059471854867116460873454383394101415368236522845347179178969506960928129978262991010256929770517476630777699452512976864608744546415328365710707373988018019465368343347809798311903508594257638938826125652780369228650607906566137175808075231608825432285428912194961462355983802139011601832939180435809226135741662557361105199370096667966920024814118325611730735203760807112079181144058659873592760832304208545192581512289585330651532603090354999680777626003656560083286274974040026518818863423033984143090803876483601414215560021072279976647593300389173741242370046424103178554500216248675316329569204317184666822516495245660520561749722099715983666230619029628244611783192311159094420187504669537308651459203197828275454760375680167962575350666570290877464226270400007351699018829801259460922158449451296120464956273158695621195315100482841155943495799581589890320731167999351481101054021415126003482035429967873294354631653455292320660107171203239999978822349919076464564967575232800838293305556324792226219662273502118048593845188772864296368170684291042680338574409292215290584262545154335277434116778884332810453387832743309823628779701608992656891806554753187166988815189468162305583724948447119416101537766489235936754221270196212613439347540251647782892321617908152709212619122965447010678606437556785135782278059044800144126118235185581864706847183133148177171543189445366492168314363267983522735192999892791382914613198712022663213519491097931610384894063386655061483722704620959869598132861018581491000078272530299479999472488440857261151017210426073412576826935057709729531199327615557348046539835540732375323127670736206613240567312733891376258526628593953352856906346070141066226624558772291093332387678081837106100348860878460558165366091232799014643487559086187151963441965271399654225682974852344115499768507445249049622854964358262382617266351594790800699996425345635794848866589107683523839296745454944728706864747059956285053591738595468713101671344531668860133101398806922432343528491242643107153739051265598031094547816931450379159702638274779109676166608547793063880245960661551857613485269734216273169962887259564462692049398099094403397701843705440887359763260334452111153176461630821809515784770882576040472221014964539763056484541715240345442520047100322406318799885008666092106539495499014083367926457171221727334837702392393774155069472684131585615125532449617089020171921896050143385331969747113400885121124893493959821583039706460377928809316592968841631378452022919159465342482748857844372359690159042218352519961328275710510231564172613875079922947854398201109729299389955590244820950870809918693570083463195825496895738971551424177632237058732901288559491213462392996724990577848503518653538835884636574720220640596990159424130821384864603250214953040091492083006470911588035666331151976365937707869574882304691220496931511864820831295436478733839787613935034867147566629517316664720109674310291971240673873864126504880215701788671935398861289951762127496498180162893834048585284620561390447554357553993374285802441131441950880833279637729836390105540451281871067836105030547644539123786078402713316474838603217001170608358076026133829333678731089336768629285603936265426402501302139757424431484438444830413722410888653099906025089252159654519298987417340143555501012032567386883935325739618692857921062949990078175347455801784958416912726243657328870085965604663723048542919687198481301479004809585097756441297594419954692342303509548250083359142511632976991603106453987656201922201456004195515369460494510250339262822647038830531970528255934709623258650985719991534747434020104205554110902250437677912821940904300132144480266734072922854021851174570451588148723834306414900049506828412662521546558983446994501073739792992865193316913020120667991482194288095797822440388481769772869169934870359059228301000609831069537971826749905955254985970136422245519912981904804960296250570362114592797041744079012434355675907386269428141853320938348936168968453239527374221646061953176296974877538744534583038873479262014154009906153491864163048179132676824400622135066808890439557951070598322921260469952105821220581640361833250900135517434284848286621016440769480852353243038690052601969826649821568552796825300548143597626260119514676684622503453753557462527439140067108298400541584018015393869669890744489382203480973026678732675373736325463327819733141490246477331797393031493710244160044545127642622424990925811986117218315531332015299726547455951485795983062621493730723867282585962683176459787328532690277676765360058500181998871862638062824771673326105453203627256814478346826826761761609297667746529405861334780396142013408958331633191996878435279313696036594271553098060624705881294583282482148536644505547709609008930585798172796398995369164475109398514606654036942206622985283157130963133222139850030971331136404271073022321526310287245927070148785996620119548181012805611271489892742248996692503433800008823175963876072690670373997475525984142207463650011662079151564520627108246364961909204157299460096740318303979816093495532726335712602126909056666889739518729962636172143460547432337888049079605749857260643105102482552341007908068800390502363564654544398393605377052469078166497059868605706682744007606732134412159022645315355968265830869307195731426798537630120751390018335729268139124182076803091504889372702547021113572887838438270349280202276259028344274356307433193301531225337081152994999624886935397972623650450659052975546549000262188372798703192555963263768808497322887156216906769941764424431825921716300787572882181617973245342543610718806712950611219238718705605327383803945019889048133471143004816029052912167419569646195775702168088675234671456355285791561368986588941677635308886529320926713857711796063424590816410147709370750638205300733342963630795384391037804106852508490301389097170126089883022636726942885793037593171067064275065497679490856595653238081610473988605336896735549323405861773673139117252259517388084003974122853685875123208450483549572517177782779458565072592734062650166937275254154431656887005072206064486362157688347601116412783473090606225264725022018961589751140061050843244372074592762792359272205078282704460050310757091456420096565405700697095619166735415572525601178823701734635807899354274246612035771805949556047864487699194573831761563755300537316556888229707133000321688956464697409780142726343926808854150427377697089589387604820797675256167517820583671312873022786010937627168536762191836238678382532062784531218783507293046346619134286019584154787337728853600501751683837259813215962416423807877715244224463553724990523739956528011615542838585955560756550673339538859347911033411820599232047751810428200169415298753803448667018042174551445266267197646359394516579289980346697528489699520073455079466267195953509687528110780281679351173039706833305083452270713656150630364688211798906786494624897187109726673071312967829248698483537633270584418718935717284065249970044791804603606453586170734720991264321754702877616796966478411773732047137573437688033037935643705392689417907008790029516546935115026112679971825350147078555014994212892746501402725438651368135225853319189012918401670141965798566406861325939548218428348201014917269414779337111508024038428790911694487475638599799969668047981827158191749637163237731490565000478920849335626583778814023572868154713488184077182236511573137808437979451773381192339729983184427824265704164398584086740133361662939745945390560219518720338969104057146123200461977076451226529866224333223672587879926092642482348816827229578279472300442909863238637738516235536771319385768897009533049841545498467404508628578046825728241165326978062591218874127303402356520256684114665451280507691373250173613572821363261546076098586200348748570062189230643231155890461436269632153857463499221754166902996388554079354041770593447183775288451538370837037689609476615424566443178887585334206969783572036305219596487491449644418605978512762374092594689830003992194576803525840767750785517421644777824275835353957281042767380833681655967984822128705100943018014097608945110081840166810685352878131629213983341241116271793726617153012984179391118156798111022052379512928268612225814537485489109126366403130874549280490791043201505052910161109393459735900604593229595425749732657061134447567549426329566391341567799267492071517980310013312822595683452908777614728751293898330853654918811856225856925689863366219089658282767963232799106284230803392504980158505653439574465470138699838095438928555932623332487512686148235363606192829299411903165232284978196578329142364214976985251378316513607487387173895374303933064746572062333243260314295860515961730555572470751647506046229320706018042458067700827572464712527916221649258937125046883540979244281398444810804122398973824752834737646755177207149613681801556903445425333048515885031746712080332738053767520320832704807408795216100304194404544934308128806858540436874996493344112646406533105709309500308046256997908878517053811701518495645056860686437187880402197700732084687669944324224564229910117934007299218596826307150064019002632270870999319061595978930659741380829763953874200492646384787964735586864447683373458765034193892158008949160570630197125186926650998138127582089920268970873291371999893248091134752645648129751759685105040725943842757557606419109314372317005699950085744213476094886383956108570767031959654876811175604063146081541282920683729971080746304347878487576056823640121415554916447863021686029800067421427511426218232658292234704122103502906489812545495694394841921351331448898619151306392353094122582622978322911155980616790262163792238469528907043158718162360056659623107435172066695032011851234031279852096364710339720464779046450781864672701557869059053243644560977186901204831969112321226814847621725789148357683688956038717619223498483980475297374109940965208760637264830833506649370005121761476216361737310539413269990339826555769079207554222020244236792858165620853066858343503344062797748075908686719995384756853376014460630211143775467575980228509006061252488469474057178609296743634143807878821779147103921512950019070743087080222481619565320280830078936619573651054082465691722453898050369313170032805454683876177973009738220176904216676415853336295307003339863998532796405336398881841546560555692374655695447419745810201930214952673970887195277986733677388969503038800732944883754631640203490405566741346859911804759822272468061845492985814999798751690315007148776771916504136717367011490898660552655928114831860472155805602659703569864581294192194976597216891486021885108979014692858142579969596278678899425334911739297655151050142971707634736967040114589202013942847894971954288121542434808324237338606736763849641800488368975908859764228170541999345791217352118978883678221878063486203241687369365148268263033180088996638235707075267444750452521739974010605604507279258888040598874307120294627963766303399768923194429935069599516939189262862794775611204590376747316541750109485687220213000395518013709303487577968497819393539103845165400259049803010642293436386816709485311434251433155435707493475212606507523142984495031382442847094798210707495295661474731649616417623749476249488762414491380072949569817675415655645285059522759806555585485446175667777820719463986419427559038788118228377301542652814259158897071732981233828498718792060646853419870169074029536043613993947585583764866830001157595228969859293473843676386424881878869902944580052000714790037720030709898889448772732545100630185160169904291730945185112825237262001232895960021257894533355281702649911286701459866115444971570789225216185117197753608257110842656563795906429830050099186232459955954027686295806542639049118962738642262590920915270051629538017106068105363224679775095625810262705828298598007729410802165650159456822932607604068346349120773111867195168850852036521145049065698457994621261447312373756812731574767787770991295340551537920176825403257704538851818772880324500767376126971487857026648603023933537943727079107999403351285260107734156255140253384504162992942159076491407282134994345254279261989083126856892153472021981421020475585212872720478621673079405289634937151886419894411523298192500334705159861709809705707289201846005666109435373111408553364371486388905363374208408765909651425248702690027823816347776683075137192097730607862075434160536485964859172642784356285460461641819957623165501512232527485145497178617214561574227233188566445221110217279204161658050323386640349899440514926567234182352325931472324459379593963141189175578237523490973166277608291606767767527465341828282508028933842680018861141472622439469191647806905329053963503912523585956448511249537360433102680671836644091608332310181707013968174720197626136189782430949017000194746971884043118469557435599507750755221346770777438860885232235694459329569685675400042113608714559363551506665628816466426340997728711005251276637430900704292943907039274116973844773799635176826431211280516384905904479494384715924177351260723252164052242219178418548679773162107405090269175465418024093089137126146900029102301787867757500001025515649455135424146213659962625057256030762199179016135663755813272387387223506549303680111745093528034918364626487202635029540180657104091154745827344017394527587853251164254741880158740942862300325904135407187520011698249382409657578988817119901813959263042427707957133701692049401195915749944877022154112738608135819759709812483546267323958318426660964394693292792243870387759442753586163048202979194455222158103471421616359078420740360747072268121025775997800946099413427419901902568252974641991386716682177791770614268757299031603447094322768941272280189501965870139924785773021346817626775268156347300726754146750492845167660083275147532567228926215806566706496395330658092980099005569443193717979701182448832910155332782288890185050937516767924914384159133356607830413768904158787325406485926969729202896314113747082094712078182648533708648494012474282415981430150032320372483333172645398609797307832503092570902902900643784947944745244429056620912345465307208200116418674695513146992207780146888351236179745416620040482852883352535265026029744592145347423416942818615303138382631171112957648439014239278659369553764995461834609186150189533070383971122703371029301058339235482326109239114589246787121770052604258136321373586062473765731363043879509136371825397204705813256746945157516092109322789182625105392219452532473897939457207572714532448901869935194695525208817994122773467888858575646909093104218290882074798047104767591823452117796519211361543100543962401746810503653466960890806425410787924884018161697866030550022400335385634806263256149243869988938009101757047588763618337752594271563914652365309242716089036440047774925053710089942845582646679839994939532409583672178692715295856634032469295853132505747462494934580493634693663855317667816194627895351629421767257155849690198033371278611833037196454317279959606614428668837922496340304084486182967021971538477573645753936421905365548933345571162545667738511942153850428340207621332837057843376281432975371500022814286971075674269281482768336103938915190106454576742224506550172271203741764399874199726349541242545399239320201222967349758515973354619544423016366428820994063464450517727516525125439513575860490198885536207901833799671497278694660410841015102880934906987368374715261825138472749454101650222903427019820099432202952456499359496789661451499245574847628588806294328111619029400749499872523284204169702014327080481397966126861858304852702550431893789885155886878583731097400824001985356457374369748454111690383394169111907597496611511235190221365357776586475909423707174891951147843950912805579448836593244694566705240266850689224767735362784484815133480341678009938236356617616750656643994649992532925874417062005154628815178311451496913085612320926760937591396975132931013208295548307520523482674772966415184708247036028332659894285147539483475700067831263774250047901280918917495853336536682295398136359918685693464524542035684078380684930418132921767873974271641446136398469391469558392881682710507094874335503226252687508694556620719643927291707277091700869114326452553289778802678755186235389769269558355779478824636277876142940651117623962214399437559917898528482880268513039779682678813582058326917943438383300512282001106455235053873024362574965385829247661914808646725234494322693635875786910891036869093147000580869311253807969893293087971306157595207521162909379700403879558668966384668035100354330193006986651426697249731014093107664830604805057617921876335520076135339600511266239745638605328389913243238226361237889734893860211239329413998652408450357848799537300168295857434562580031207831566505913197122434835012544725477868543346066788356301100971513363622769526970334989747410464983430428298234996057366553605954658862380236762830076121683122136215560880825240361236788604614412647983298110611572262820005053175501788217941384948833330944633385988303048097758014922457215685532104494120110004258869301707317771471048122888232060213411087164056772463149132903597971590510456959050874449089961128568600423313586166711273593573003287247380794619334529084456115052388653202612446452911960632358980686976303686234141362185512178759229513887781805199828930857380192570240414347244851328409271631477838589185613649443301071554300888255523599667421248705907447648168931703744559449093869016672526181111990313711503651604056055617013875197570636317370326523088287528008435597666780704360119315582928735159400253994816940024995285611282751969206794127356870117244123563673530348898691379185904810311767165097639116709434041385795272638591893319212960293200589520278766851940808112713318868213891931137568141142392027738314256481490051647012746606145408973037198762200126281082686396349167506545979757789800125146026800892457529092413620677095843508043949471671125305836759464463159398332532233486359725036510462029238415685399700210649413652320377883685812332375984262866364161836280436920809843542902772361612119063817235096761000887102465273673687023590689923396631287736639589857380671690193164137356274409410606534008738713512802022679910013321755789677606261390878183262680620746864073304534302356353276935442884522608968654367135761515275632873710434206292696729671387994125691079465263722724226140786904304949883440959597411544324013772460992406215541934966922410711639478822199115673264351917099640874496031716744596100996586842652389839276720965592466672551738624332674827323693791939663339599815385972387066402666382605459761012010043353725090377881746860713063496747783825295918261924163041167038675477341936623921558072109461124451470432318752340948561438418179251416126683450059449301134731892787848115218465122556355189097124442560908940073035214337432260194264772424191948879261756879802985973628718960859526751231233527086688957991105577124958929018452971226095027697053946516634954532121007569415937164091198428767718147342782252707371791006552745460512765979427911692351024129910171883357676912427438367048572321581654877881595070803281327491401105482310360117822004750839265771405485681583799591202311637143977169341174555822389989268863713318059237529180603100091518142836651460381769477265876408673242836361474479900529050085924700385705835361174402654710644310573740644398063817375956259838918395600786851274071130898915719347113101410572342006940620102059499313930922883758432512858660980517536156100069666071040291465425021460402948169808615029372589681622032186322868952314691217002965069952528696594904741773477840537429385743963358609484619399009354679481143437563943903750687429627031851772942513415035429296975632351255968479464469307752162979550336443283919675550276786312659116533081656568591072202478139850058974331134966702233320118247874207908581028953795496804358217975761628460873915068157477233535272905814858121001544317474602296172364391421235154590586794895232987151686665164304591771743229784038217780594862872513262259854313358133142881856331178967409437457368361153618205369777179763740075596608570591895886807637648296437532041090662705614466037031869553110181145831479295769835805552937619223753626479192614914496190023982765552499945902209580871775628963896532415633145825643978744198416318528521742009306484784548737634256054807325851146539014878300715791665484427541184335606051770061434888893520384734567713068516017894045205991587119084534879880208065704358180739302789840509462116240290256406331413991873832616946968491031666561749015703925113370356336256769536280003247539402387441060861544123411257234253937522521622363000222558242415362162590315457155867072914782428381388442078848113308116667611216514196719844783873126675906268283058720559882801068528938498131908578331920666551991626954322580186475927097016893088756984579856002402042551355502800749920380999352500696425064009902371040687914234540844125438238460196261161879820178891102783548082250759718938614522965212050846718928933034084624653430423469267998866526436750590449692739410004432998868120202230255357435287569963688509657780026026211940758058737522765192430876583409916751550658007553536237325423270747415632840943197507774196003873857956003632292910456666881413078715200924085998645549083430845595656051738877800945765438975661065714808661332342021758198513442256646049277203756326096057368393411989271748993353936574820665648355768898000793641876036003442534202418004257413358439935740046930049320735844978497259347865824521693654807281451974271340226715288492049295319453729061875325886669776872218941996471331067046593262480591265493576355113161308114619655806088383477797434901028961707607185980710139749920644254609726072883115599754163644937003084384082222139659084581400077224717496750356106638309117694948748901047959999233591983978168776462599677568644599392708258360357250987098135268182955032303197448646197440965097684824155200279766609946642520485398747621146312945309033736461992813943324581367603535273516250794560851880042972292591909374545529320634251642872708524514052195578636875859102948886519766683299391720549266617935248182768198835027852771465508785512694791498449316981790042480748482399609357432473763553899719857802812648807110804479616002266341376139513763733192647119618532002542713127993531828192998467300167030343399608127108748800809867194644487412489147256571802065547842458735131474995826427023756447156875672896122756958148215684779248582853519461038700079295984465248883411775962061299211759809893891672216328760206728965249141732978503156039234911546941791183627857711618980124157696842925345143318159112273856445472697860234129025720073471376808745572255951788821915387008392956985032730070675250648510047023589992334537721564193521149395893296664050072619840527206783119194839036752734877964998853444300702356079847779148350487932597054166516800283862958786428264398455362371652369192273725381148178571562025197944466787498026409183102552290152178733579229281955805635155958347984044319120120157876601619569083358438548936781351992597740713467858752957278411961731646933654326352894270116315336766766117822085657123500269172116618270049225786618484022359807963445237793619871790222765671798513006406383560904980591813053913788625781464407978406001580573819922347137362542173844125640863985744704033707584766318147597796024433095265783104889666264229279741731715277956868932666452071550654280243621027357287911192328035008143804119762880572883985441509133017107507791986591857272897272508229798416385492838507729786843319542578059650242144863028609190431168421134096434055822088457563683990444287989908691584978934807854869362434837489633089840608324632920026672441469751858329447315885340024114950782214015859048228287377856425267743767834988135735173098028874403340848582031266445223926368130142430952442925744890665881722501187991936885970653588897368947943498585788843231309212532842645356227892360918400847571109662140003219579756956981822945879791632411883969894862121123783279620825989482947605934666614250460829999934357631406374563122301176393443221106739719053181829269007687545324901277708340945178859550553073403762101100002080294007642002743012371915325615355010800253135617510803512426633167932163275141648425613795294390757900667319300244690898555102252534498282144852908873623506753170270048814123896749632757034952360292158769189089776821609251898361358215043058557244335687429522380643528812929812333642317778645741048823788228706868049818135371645947892796007019267432893824131930786258493904778965898825538984115353957673023458218985767124154618599522139055836001670714631093528971139996955314034902091947500752759666291699930277508234492280383820801151267352892318484397980178164900180686447313048850674184006184086558340982141479229277629558998492305796109285946483202415094456566717458887261007972060916937002428743372936670705873773604399406653753888025608291038462617432135291728837598018016947466076812602311017339705318993383607045546447184812505288813268520188616542190337193175846546286444330596486979344253941760981885364418817523106122859397262194491117848062767409462746372877548904397544434538231494728614202707569590926810687950095499236029248519681826443800919997807244975941204930024088514713692162701483620819755569374977435510559079936319900702545876521783701158039101108795827230668234678150815433524584296457864030333758602552061114755050574929506441033860530517284955753435628488537921360866274224781800493511258986059801840201655006685543293454314544341794542443619087083615296772849978256645070245515718696159518902537432141562724667110922418857496366533808407421294582470867573906994222869348022991478896236331753286868501734660554669794392017501763518938156492371047686446334023308584350341045195979035151216092496983354614307959866296311425567851479578219334683337099779423425951139640838294011153229478968496368075250692134118503392756018827407366483874507585635930211277401166148650932490127352372584610757485445624285386418335048471222662371146489578966000317226321721421845375010219700097112861081912326711850204084504704215157984218244864784280772972961618478385769373359083583962146611214305063954527951759850840896155121764339940414214276005524294291557662962097976192152111499434751516251707753921687199492679204876969396381959865149146124501359599157844491558142306495338557040330232234482485313285573037650463530459462044937252580643048240021687142096166469884323607839406427853847706021797828983667418377703413922164038685835262477844165402815253438578896376167031675872622701381924619308761358683157833778533281289919570384844987235029946130112728405644047942228595111879854635973898919771198158026628836183336215340716885810873769673556322310725760274674249805479439010608089690316502078854231976286326233711617000726665907566506559417545945838593584836845333709558492537241877389801295011318849006914114137593858113388034549801009149083447169514931224822014067389089071390733229925869026113548739776061907686540617299546623714040706939714263573009500069441538420574567930117982066278788764088496795813832949009684886231090418485988613466340899493915407829891293116553468436022832710938101716723750569497966058473960123807558725375551925829387818648285190189969592207441659598470499773036822004096564787384414147004180124198334323072641118452276403849815680141957348629751677187150238926831475583799979485112521706299240142102071360550364224192386037629139258910911220794809210561928612618202395233343854757695001143405057219177307863391418904509323649112528473355895441419905130966792709476363822621423292236273494085369337289395767076658407621139403552701287080447597435883966828479858832348134067631715557609035581895647897968075457696311478910463328201328785275257097447453016603630408240223174119736059293670419640962792417720536817607028413438085714016278405463996893869862959227142687385052033802585938028415847227766138671318427180512406936029951595909356822980758268482025772873827393168742655296011401171062054217758605443593714852436119686080498116958307127584089613191384732565900446723009540499043148888959109496666368656947383338260751032417581638142289231129539544171239698436235515987212302007161681279044611269674551795060670493430022009730045131234327632323922529805860617779782274925814728329693581436439984947838877587333065474337303798878714643996394581433468145865195216887588377315474264539073575933134934396260063558508671937027504676582168248557406408224886754669063538235133973035150140743388931744502248330797946600996482891660105053806250617303206336690791220528923940029213792359521800156338555520306570039104661665998123114473031332297007575855640476438939477131887885742076421073877145189930284989377807806242602132036198484320468510248867943734839169030724954800470751317829456618741487169441990787827850068446961853344362818625544137737136775383634835674385510121045768415176790949498653917483654739363661853528603387173354177502014956185242641016951303991291895210080960721659825415965541763314857434642671454062890371668613347866201629310450679100463439343166007537786747702214805781799661825579463510412587201600193242122306535304750727842019954622452039956712130715364186615037529495912115998469900463496168277112254664599947844660474204271759498211110805581688521362565327096056661353222669522325710904253272239550796057860384831596236651976749542402911466103253627073461035346967368501369181516666446396385289883994000231152159407745007448115585941938329097170637573169837323736613399744255603229092431560939771317503061147967642689454260090067465695199053507497235304439742354981708563994241810610913469075075197453660410035709241334615863406211607528439504297438515176407501230167732875277810592077559647953412555823250437033771108405692981367541917606891331218711301806715878261017233221414165964036187031844282905835834411941404848117800728980757396409362955736707204393739004617055916220422319112099143132336729672306603660480268174818175965016740048011637809105657831703389423454550613287473034308104698740179508129367805032234178187006555256630910748967417416295517237409983528268081732796055057198729960664204672523762182272018306055071759467981910380770651477518964415636241387058235471964341392141504040042305260233319315177517535786272332081931585813828949833432351050494494933507151715832431945912586443309814237431291841193623034794322042481771214044902468668264375489021421319953994405872712466386013023220068485578657184266534263781725083500746762653019235051384171702315804520515450949781037532720970866847881873020683201312635444852638208607334480339995479003834171421046192603352735956704683083356586176580922618525378705983329686353120840714023225194381024849850798911919545050788095509697242710569744582931133252888097120073933894206547026087255229998683881516444704534164473270546835686164942227070600582141843352211110797955888922742445830842138713652738058354684444492440994638542335015620469162668330624626899356259649430477772149007497979399401358816393848394155764660466065480729688829346419550136994007299861142115059203721964142995572650513326834874370598532935369220535156039316543933472521056520804829700076155577357053325045452157719807449507320493196490289676744213469376093981950539971022047310708619767582867740819503561206165504002141354694251823324891344741885989711575779241167968418229421760168492635140291505014698846432217758240905827658526847566041604586282008393411884662363533812994943968188532884724072856914732477167539825653842810833966265834756495683811977285883684941133597873691585130831318998692104290456447688727295584106053400437398377467407249980446742353749910239892549440717154927269758857280838086505398533612381295685139289749095872581413421024437383131814606858843806642295789430794772281207994458429042776756349927350863673775633863109442888656888260383567097772726800203146616618586596184495035828132895777470359572917534886542298815313213017647676258891393535594709372482441322013327044706767709623514807184029174780678844377755675685443932855224469980714925334379256272654833093453295873988754452035686179432142910390177223349336444039523828326560617308173571099456184994175304638311805489018423407020208061691457487559616076097322486314978481473521628845720541091699139682107072846772060189174627123502960030844698007503037567451898044672609442911858476752817712104920860612686741731209819129338608686737927464547129891085187720914965413084934604005615789065065036126455367053822320730715532921362539025562010731406670152985424873191011152208585008630724131504238677886573631129968316740438355795968583315587286635976112950495453380584341480267710760565227690696093251908586749149852395866517178727467566630873455949475944167936879198567170440022224225769991950514950406115783033947874036868775838348013209043103180527787489507082511531441046046513912982387418712851398810120222835995290140659828755798726796294843619382044530337962520501930886021783753293320396967764253080334635153134407216881027205268483372370172472965723818009230546429525726817189194054784854430352217313177517038803201667705693439787047495919126159931637587134622851861762651412966397328357360013732268759852249963887356233829783101058946122693955675563266719748009192579586132380074199993125254328508468095441200275244599483184071830953788792324981288977530075786239617625151157519869840395551454372563043808099399079876308148838815368358447209733763014628997284872712865180928568382560466896871906060133175177169950452776993814836054554512413117149313800832431146788909812732935206133403572806715675682437618150780731097173311513281021395919697533932712745496997475227081725677569975328387890813682173769015353484878032313143944311521896755561985606643914136523887104560300054263701375224973326524333048414305794406796099011108257268700875290824154720219756801088236867531381606167648534601031068978104145197060205730546254239098311175039355654009304000036882018607247693322812342441585014467807931222503770658688514349799083534495028195898831906753633285759664582263476217348069438522215684856388166887182505362809800001705073845983004761898630238246113240203144903120190661770153276729956059387674104053409348136033778943365335729079638043513221332759315862334420964258354157502349774232475997721842600144136451875298061521806293407458732174631642506395732237031283356819526985240719532778804375766957706259552447395302124171178324731854295820428225537331278022306032515445829595265294330456274511955036278095186464073320385932138323526046398211641525351927813820722863931340946968341329601698916007757973074506802950906621024707656574169211979965085445275505556053334849972074714096478132246309019500099509010706734766181040615033423421867349454170386115673472992461573497556791028041208522292891295974029328723774585143330538596209058305025172112301714250901492362583334549951873894039049523532570701590406971484606015629807855606928948086704373674885380607925830546332494334984377259981681815550631627731484507042196167993690891632408414206148604948593264021985328118642703262726203579088270089307756939918552290246965837824698088884915923374510609487883894119803616963698094671741800651733335722913024970070159752538817008479187250021481968155568828926780552626215065385049208377908264925553072904661757504360587831865764513177797905448734768328562026851647837962608273138764059999771716304566168917798421143439315629545605399661494629576975579826080633388696966543380147382713107305155210242277744136432666753968988981468931497531096053386919141530527799661882095539992033576617806225609651087940773464782458134832159806144994169419567116449660931680900685467942661552769450014834959982864248727630951567594282247232618512573781276962238978626487007859737711785855170920480260483247792542861442937537803554872894853996711112560577731118745923078772790111532704712698285058444091200833285098444765201072236073912995329612670311011203659532469306079439744561635612702461465386882192976723543747410053188773809444589642933540590201630821588332061209035728195811486509174402163736738406057948693226877734128686197804045377289024851417616611656521480753947642284162516221148479658419131685000259380976826935148149216202375791024978328099715415535411359087699109466477946574581349706711908564742995647070004190597454795283728358501680595634467636903263004804000173466913423639530571519605445429678915326941241263662513427413686209969798227807822336676803417069141671387652018459131638280126401737903042446630223611685465758716256512016757773450341748968381015301495750987995577379272192859479679509126991984790669515818492724852021791156101314447442635831652021758839032714551072762868769870548337380881471527801224452334709584002086170999870009174019585657591137598349047212189781299108215517924064621089957586734684295468578492137643839426903629802216598508433096068763678584033047585314073644892630692256525305239800590644051192375866753578912955300528875212948575096694849376532092318527508658384789186268854060680477640626088381761322894378690991822574989061792610932456953237503624621909611490864786714862846858525286732000514799577513986893743123277318273061890625782026730339235726378717004121740060613516803998513198882762461617431801367030140321975014613710187910650588803683871708521113216979372030997755365720837736102103757852709919446399337265065983738721264628368540308418292611454038787480519046911918786189128981979728784142545611151708945552590165162627278697733831999864972121054569191680237245283226904662397298202799103706547229413335042512319354465199228287516194471724020836221052933884155604813550676796013374822701882717420397398442576643553020814517021674597991242050885796511860057537714202985849467729190228437198749108902011126731664171266858171120036671188495142170873499705283357000171032479477907147405907409254550046132405372894735496857254878767108012081227472997639851923114288954066829973219443045620889732817287907478453343280479545901838328302937064473376467328764428136995258917806842371126258112066267357419407023776604255553859011575622764477915852449200679555153313587948740141464900071172460895838756580779716945619617363918841252944745209257781780856327419513672571007282632524604770987380884720085448817898668832640373007445659326389173500510178304169135803538858846525482076210617358497648499792780571687252019231368072791167228988410054366047061456844825661764806927698240840563142022858818946161625772434564047678996941021260960957104623119606027021345169203454235633123079584609911673502606898694149178676632844487569814112164305461688689204569060442305058970365080765765138838854400428806544424399747636279440453500547847218448504941818152080810988016932625429937711747513568626783664079585369735512193608036455596078273669242344357182306148802121335019570003731256168225135484721514293614261473873649017711551364464041104132917620620517544672410997143223901193683123531802805446422594885103729174465370001543323010497337266723844767417381091462022222621807867299806670068078221723057047981241586420740769847700087097982332976044000121628766752528024696640170244935840014231035763151866888632435747188571747853396936328428940132266883974239140206527843296824208497009990427645877689204590432450840870933514262822826003596882736623186905825992265120788591842554724215060380715442023177573610425101962338246307879987692596541477411988454364704958304773077696523594488573874852316951285398778708637704106824600642084878992748612650955847265842209885349679120514201047185598244801715296513634639593261101296129796538345161467771914330977781461459509094664514167347051933758455368246873583030148691467960915547242550424999419689552250020754074252592278258763627052197821215076796136302687345573553952274789312485046022263008064661477081964441808618574291206262824802224692911954657491600995792426006867429471389779258042687164894306475058147230259066462553310797022338634814384178789581650010646590848774092642114742897726034877072892105412357577773461034933059135129580175221784768539945479212538358220878250375152014113946931993746950025687281910517532208454523710468516491103688230424889312387746983091689638447079275122647076512121037699651299593132495011859396973108042809340586982265673897674689678944437231179118327113255788076138815882382679322736461064772234751671193512812039687120065731804717219350558379351260990138929992204957856672487999079819771320190306000585726545126471295707751885487848201966387411022543492810447516251217451619657767846459261377550465850198425109795911480325360601212656013363475715402854912308391294714019701333039306580540286401304466900144784853608225646883526512433969139484761258185621329319073439472429742078139821841401803604695722635085646998987046118725292576503967493009676069673433225887260251409156336970660851934199129240990021652664629519364608422870466252991009158469884063596094918186434852909925959678258991562853532355540667222517959035167309235071722088336146497900565394330934909797494253320813512330910708060735371815371389743439544522590800297639516055230696092843163090532716265539604271685486062166275319412931364750038080716083411774857428477150054494830976218119130643933535740540905949501723036240440450806907384536886670945031704341501758116263045197298246689782799449189279704989517860070052577527356458578662067495588053748995699733672935008463422402732413167896365051461198579796718129955854301144729238484867895887180294310917950056236559727422663193275247369573584576960160937708549873705222907234023715945426353949116820306043309225570718110289918435032630528576399312585542433009477229302012085836612530286587396738546209644591315178239187276154597227618101892698224536162320635625402117195841406920506793595356758575703741033631633334718963134360544772131179271718513626369437744213756246115915215640075450235859549224120779795442618926301676148103044464781292477870756232955563309021079034605629924653296133672952650609140872905986267383683384210815061453705472972287737992720005044144853451124110600335643238197905227376933085026270559658785277325376671181006294169278491124166647137873069141982333509962788616154859654690227373885484610986753601279429907813152797705077333001211657683842989564581094053775892033033188838495777386961191106684220836927108382420575751860679504102761569230037570498588735997265063098753430396847307922380715765784419361424724160857040270096340090322941207858448148430387496644158602042371059061045058371662959477305454457376388354676329774428068309107221142626616649657990412551987928796395660205410090874254585946496151210278783869265011910463307114088520759228656349474185749335158135344466036942694237728934168915175791555594112106768513573303856545287243089829910151020257042917358915680277879368942924699292575311169968754652922418529476175613907960573163681233989724217804214706104624996741850899354813919503387193064744691516800723953927614920807931709625119564172023474128728547366762090886986597903632712265889013327061065596720200806339192663480698105247211140956011788496162190227148418320126007148539547278400593885290988116750331241712575526803568162784503144791346116236059082211965427121301462683265167916911506577631729948512575830365672787160021840135158916202425271123396203789486446405833713017739256205410745453282688185227242172614215978982872681922887776017866130834028105253334122084004714740173029260917860408056122419034175231139221548566686159582536353117021937114165733174768503386896608301252582286332348200494209324533538709230195054148884010935931379778643524926725250039548393873571964315125001015931610636707184427863153084986785597751469483160903618762595996440149273271863129872145784876407415590558413344032136733128367960569657903521343217201190885647223175349373393332866703606614467055752296606371977845715849403013021266604328893948837557724001565505873105923000927868503698183520025151719171041350103906495555588970838883908290607623307519737449116537806244746662850253760368528386131305150032230370975750789537086467454943279056307855623493210093190277973987561564884099281560478826661672921226195955191696312442823864323959148553541343131372416599502337639441344261523673238288903038658908701266422197991729472428817273449878883165069023744047090021943901091492111436746594177942924447927492940347362452904446362102149329854177253088604382836246440550270235161503282130058100386761943775752428483009399568082665154987028062550942965723937466707642508804123203404294868074657921915428362048465156329531701457881409130647674113525767336347486511327869697331848496562540035138080092405263305572897502108929287907686979387464037695947152704803252713105463528174306032034055601716632318689661819723046408486392082584433687637888344723572448603600430497042068404856204423899219385163966566722457943664761411617776275792166363491504211886715953520913574975396080178775321290631121582712677767185137072354959964599831599696781930832471627127546498839316568932015200805166523918219630317818238103629952361386710821663247839641401188044705952837504100195531249268724476731254517110455433094312613206938530135257142521688603027262824638667853026560337405371606843587664485768589483581307192394240533335964273745414799821041221844474208085132818276488971072913859293941539750104453608576824481995002236835854342347341688604820259833340020984599721337006095682879963407502419422847404854084364303013655495157156884976273313285509001620842864432510477328987311802656909258643490628515051463906552492615741217910983567427785286003255880786686645821767623227416648067716334201952609715653094097485986239994570782649047287301669617343808134374891773499250444879156370667821508684524306390519035610411829200002052614424630238801233929354029753571752440177175928636914518927421416722103063569219025609736649883220887707039778151620923590229107109444074797610233328066114029401595200444035371613808810319513773687288274263524949311713876894583365943110877804951170603684230519813337025730550928128022145419362302445805885848050870918583885590281199806600818978375466402472343160087487924629606690182591784554675606478538009199548795097903841833179104604563858850883472648573522410998889302672642780271224466538123871184166512277534748060865821068192305481929588406897713116058144324358162481910560379823237579534250083117625655858385544985152789510324925222320992431345793507367938843044760474335521797510144675311648890457148233177639128684176704726844575277680221729852924259449595175896876916899793457913226957100368993273249516165047992138384539658203457566888139405607363967491901141760420491267348179849533416743200387505598794028010199242772039469714016323650690809084763839195372139091564150312225140073146781818802764326057533022885954761963592762429172391976415514397191314674858588973001863466676669170813488936229068572363470864978678598715315864324778074788802384533972446842273066069831859071348980500956799114248246011738345883528736538279713584992972612380261506497932061581608007358483460310220642786332842835911685125680488662898955821339916023634380195136752460409450270480782022822014818028789678623030205296043906878232652796867237151693095024390813563061097768791369866662301984308969691731888340972715954816330317293349926173419034306013262605322362094696162724261462917039159576545495760855526236712607640967419353768819720737912682256252025844371338441307506677986920971614619497835478806668538962358305508831598810631310148387090962470380898431702830336368069561812330315517887414250435321087657687099562744301524932242570381861777697877450582498247043125437067420142306374562489000074731347500671815393272961068052141134507225001940772926739486587196970361432133131564154680535680125804364702386189887734066389794153344231482973400981376827703920161995117104841882774881404858986884539485690413861571266006758176220170284765312539556352151711680087142802845552873728817995198609199783142135289085492296663498590554692017291105042902581610877599445945421468946932270865369809154432149317821099946680053257108789447392549935742602763847599303752537612723397542372472446915023941091861129366127260274761319448994336089270406607721644311487949236115141276524961460874965128993915341166590250776266638953228093487948033213563854398219725487284169159697853876070972352961419378248837336960098365185051087955302974238296981596995663444194573528899452489207357640242510306080686852675304592352992114850357613180310511881189180326548315850955346157779446219268358931815790088322922069799460932970495474716699845964379949695984115565443793318778651792581369107626310162234014563550142274022900028732116546030237959725619845265235202714809614358515752114043688357298904085248673197663126629031975252891765137383699797305318103648191087609821408597063556007518247540746448925418798887824417620463832209562339167125628404686525895956708451734444003409462968558896577566352681240391790278734380029520113515156889610944769490158909994151447140949006410138574790745039231155995619217021855882686130385074242182472820952084581473794647408076938502848451631089298931691134386623041669015463559356975373748596752539600270334341904894814662053499268537360828738189788181384046673165917752299922110795888481944908036626971938965139558189441926570761836723809284040452180706441559282869516061294226260085565132789822855172452159968155607660606989162494288062388628714599756926424443862460282655058408955056640557163767005120635040052830071979431448473201424450058295572381669975906624541106361183057222672578077477418198501795482150331179318862418472667188304893763705210376160190984425448792009135264992180290180694118084554639858522545347115915208281728999365756334148196303057677340138047306591452227096360034756048624544833608436017833705836345809970769872044495676630343222623126165876118640784636712905358260712553146778968057518796862111912775465379323501933714587805627599437044798285489727637265604313436061113597343882133033018381678014376062241672459405416196683719225577869129342213478243982398610853360894394582852854956152750638507985053256184329117066432705405646338617370387832410107444195176491413361313333685857347349428776549012064977959188102988162744839792122035023213006660510657574489048442468305419322838385959333080296489035145624899595570792195643001530558925302555859888722896829136501825925107211887583839139365306497526887871562907145651735878147958073974704605055024214641397466166960679321866741364650618791768637182077667217315655773216939061725769290973115058853003193512664432658140758366863342760882173764549600497615451502213611915660520198416643515026197464743400337439198961208661596373321136178952784244808170374077600871715251772705741302251987794282700002981074551992118411906796944250529319196158001536028452529997701534728819317341685078562360894893208951445884591043856863577808523085433818845692956644755215492381109373408833982285284197361333013151374341464399931058480187949798312508499976926596580622174408047178040070978530299958973281633290187787181930283864770231577126239947145570429341611551211107784831987487224216431987153809580949095985087465821435958132746492479625818316121552141347612694967754141244587635197689361000781685402524797985474452342455299961493878391338255305029570344048762574664196125849403312122851844974049477344365254310530182943026701332926835068364176998698941301785545682740950823930708876412264288141005702530498977667126089521352196786622393413409339285764564667789263865321829160970551177172889573043019119180818229849109230672881599641053074198484173569333466192058219858024022841380951566440047649657323068320161849766584339381387496006458219754458394717748202322731938271839747576639247883286270224082157076370283182408869109260443264346719308749654439537766700410332554296355363744799286292665926884407426713373760636433764759069069473484449394175058856330714092450244247353422383264661279108607325629373505586259108517992335085089467953319566552607467095215106668516150637887308973944274855146664160241603964748022899634981694045772695428993753719898199214166169798945029525116874269335520776455535361525177634766612910900665043036322976264630470029028955312437967180057164687143181351853749930530957288469102074993341350201271173621079487869191669697212496980666695779883953268457435352448430710854973038050258170716419365622587683167481849975672689438395985578418900820337622953366545750370957212272955965467619381597148722634804150486805085674727539828716723144515476652122591665932087701607189733890583249781154103083311378832461414149466955493806896426672742881923321815974946883088525559312666472868194293292182734266867766917576960763871717422380137382491347163390312464222243635649829894962460467973860232325414466766455615249129212676841477277455423200566513560181732604643438466997674200448983003000354908717528469808124062390197403778992694998758295513994736940540637334133668302876663303403025545041649846664975757894297612663651940512728869322284114038537772120257227748088840603274233374175814997683568521255602611136379538747933749059674476637291345413506192488864343019198369090413258426769092644665427614239470890075108902867923668855781833831891085590209138206018114714485571951941235646619657306368475719601020686809346581463254637107588607315279855696821476121465190646227358333228267578526400880663460446708618414240725527836389989759302626725110091074843591904020787576409111086541302212632096773014152272301545566405738078032074872191637131689466238789058308485994860705608194481774450544937433798343456591680265453151739901154836569185886506729997563966442357983241561522339489574099274206590128192733421970307280459552215541601345526802899669454532594168999792567998237683920900946163792164792692624212714708254686022767993873840086991608017394947033016310380911481325539957895994548515056957839262349415486378124765532550485209307809150306955994208150366652569682977366998258197338551341907620890908910428155459780852588745651081243080295393442481509603035158563591018760636576624006815025449735709294182270444926423277171582366362983818640615217071461595169569476436146518248970348754464699307413892707017724343595726858773934653703423625891265242559289181001920233434357258155356893735258881801718453240719298138640342649397328094196277119008855329796807289453769589546967985035485982612904694718136990207749442253122739681678588432754081739514226607367470937920008336098558549824308309129230400410635320849466459763016398742871310064017043187581446871112271565356447048616153442249676443023225491456719618410133963135835854745615074440065698102682958226861229788359293633807644641833835858267819868861005461028924174430822416646254464552555213463002704403997609724042302631089056852892188701469922208528733580667619840511805397613542271206512200456838501126887140812973763604541189813030002735409817840987576990738655972951693821577522586335454275935594181520121694530304076099656375845257945967323830892587946780992883840603926667980225911372475066482747199640013067896804966567854100629096507776875849783144908467353533033297591471493148313230632768539044997486131415436971627420636758863486541657448070003908991787352101154642389722524000787408833695786076508595179034379841839356878107817701008863440900908988300451208906599529816635309389928433939388755843530366178496395782861126167057005470013911436804793763569908033818918114755597159777065902257179379256746180051360827523168604565975163926179046678967698988569761183183242135319066397554657091703780708152095188004891567127426644178885182901821238210975822782782607230246078910995108457485647727901194915423922043380761247945281801356997294688108197820309298055915255178774165785189019394770346996481311401759363184409577264578752725919776805191372552542410925436840161318936892848157317553299393791245959387107722370707437461770763931912048090774555728725082802190921938171556886921917837206194499041010164194151067929772771523237053329654983125271481109996947732488985976246121660081679036788674368889862885337228828950446799864043521838149840684036773042085427933568940307345199714833038892869566365994371950021980411514319852233011633612319680487431009386190558695523484423521775200297082930153727887755255650433678900197594361400828322260000038237239079263782227486699106380101974990604254639506115897031389233103202557712274599833471970261787261848802940486036966215886115914743924525591992639917537724244046868758216239862953931253906116824427198416748313561812238932373435812959824955130211023733039385024251788105490193874313802813343015720079949579846504216851624336318468804120543546143619130614994623140603099586656503229542825149797563348018263898016598367423595681988353960327960952234735818053011832152996357966179059964708740411260163702239428043248135023111702895325379568042041046133199154158299158286605222400854329597291347352689899002302873506995683015025827934564188895737808412647916647690178275292958246480159562655701862357614600903694920012528194655981111516480972547850059564542417415112067107631026438837349475256940218999547235701387212168350974320713734513185781077703446369689898502212320190221932821631009049735361591480392858900391237016226754033690985050943091002330570200452143878210675553053751187342804669413911888595182987480501923099773192667947186587378038739040920470984093470606553901231627333104747420478202404534287350688485896026636978163488034088142112005850480110325932288045882785769866649377641824530783045887492266012389121592268689253372215102776937006222559727941289479420814759931627050617607445785978341153961664324914200288920172957434507938222468753536471028424192020189463361675075896073461406448849995352190130361018230191149955465352908696537508255615291635821124021436365302455029744078224142371212540114671740500461175121011083682604956566325050546126020624102491681858959256144954800583686643110163149543856198838992246680524365252748831207891748212013953749216806462513264630871934537478301147771594383219956372361770913580869751808998284281367822195492279482398881804038730122642205653917631576806688466453742110516363499825442943393033759831459928280877668656070341268362437003048841496456363724952673937090204116643459942393177280281967765827417814196625044137210043667541272617136714977569744790914765457467957779404800673493410743524095314197480881641809772296435445247749875667397738459013338738403954687947138824888253410713332234160877170648743180236769658573967368071889625088780376610795367607123468916505681368929557370762951928343087838472971093848956820209959204884676631790835385574027701831254942018501452505331391682037382017444527596908580154475322406192124414767816267702121603908795024522674220664927048762110209044260006645395259804699913209079079228611956436694992435194127635919718383594613052495536874188310978266220822441290048765512000151768775093166157555628731687266205033563348065147646555972638728234146200037710303647173985017459184225113182308098429533141324214514038364146187947328636836248827135041759269917590693883909500500201044534188607449578604806617364351634864834902209045947142429643005334208430706049978005643563188889320571158751942564535777279822584553812469962481516060729223518804620937655981244592737434460430002697532219336587627651019927427236376146028129220822993601495809462472323538592767160732663888664134884240306440115038039245785132681031955872042743146193499943188646162377234808879436944122678069078560167472109790215298949922751130472641867515747864949107127528197306390020095137860934587981457693468280018772619598201288468225379239291803986928158625922481541529417522024785384500488808777271183706435370383725769409200448715427213903611071611283249400604950249999567529876869012196410366619130747385005062431993136297455781587830934376922554557585185305747668537094417160662806702534078331608535020769187065144778993737852846573760445904582310945225402909661201265039469727430747378313273083810958634497380609144238419263437297383096049539711795369148533075751128823752243840893470040108410775067174613098191314846105405598026767785712222136986164634649471765110168643457491828155708006213100357406109157585789028595200362301263577815533307387224807782927878396166958849655184538526757485165529574302923570554542249579428433420600306840296676120680175585979921951632073502139949845928264217214940025879286625508377411276802350918174929939038223911344840750550846905954139478999477495881776157337082241723469354888098936677694178614165317603483869878817135183855444046538169128816763173965596251839672128112125727394145441495048039313440489362271875866854037906631506635004445098989298419075758813783689043895369794587479513640503281080710421489162231107302931885900146063678102050561261227150656133243552202010052868940695117422743820111088256261923719340940883662483085626697971274730864416339223108617450301886033226484545760077849009888940511576643475844936494702751682624342147301771960189689029402835292764463377283735933416322273563469185099216435820734533282781352119869862045986446868039812334569097736833774603277832904102148674626582446515238627342003974239445874074232104824301773785207534079817076229190153037156618622374549869288306669107905776895454852933561593938396384857791766251292425115323058424575507957340979014516530177690250535686050991673920078130138627031157276089614293042949545876009127130490242453549405679702666643233282836870313510590539725247392946365872765917823000392231925627746689731321518821516286060669574588655045368753934700457504983708554390438266541795824475149826272324976399427446359280192901491884138280561094333942182974981680233545532101354091856532808765442099064860385842547271701728196166467916265252302405608532919446290351846193164513173466607915785721422242393813473788180920740550515777990215959051061427090348164100959838920705474056084002402035783887217324379287693848413639355776314174143834502561844261441270040482378536733976018548971702064635998846252250552540392400577704526647234221709744098124694022247073784569039819273451804090565741461746845634171100150917185025140330376756926323572452560941491267561246117995242236872616307715422880682740025070748972953659475354427484135752044121207279214613945912119445827317221197929917305007778148845916254743779420174076410077768947303913792826913424368159172532085323366478049135302889743690805782818907737257770310242428621764225807056726418803758369872885790459747705907012999733175968985983568573721028373429459028048144779621479804945426913469345788858933512461472819965874303191427228199518740320672634177773761033807537292582236604447295385221810595882318445875804959038982718414873544295940984465137794949242479789709298025039033672097089380343705768326719776266997890638270406246235691427225282443502756905412172706196461596909571757349885386978612603572583727546861641186821336753984164974929702923959343642506530041584802210677085685771114353772011191718392599286252948834925347548883038792628185523895704094036692632756684116022290525978373610334910082149093229894061613395330200310507687647872774935214843903285029203055575825083304456070071690547501557857808038944750796436736359470055021090691244527370773412949906196542334642566311685228780896006108391692372256524285844825942291184434400339162355549325556398878039404217737744599883136751775452147379567389230996522839850583374492898963792546559989432995988181452821023766644922360687979167235431102654134894312673751046957340335130450871582632495681131088412142368062977204325767689449021326131205185823121495957551814789021360413787649860313577249451711810073380790582655290452156547974595559079961652973200272839381764266120764268667414422123040725338392082554989045113183201622638220961263368763099587078176567897569426571608978782870397014836274664187766125651028136847507377489205647658725691736065751925566427304462599551603443193255724665287483322250762300957363634539929879065788080667056752557305255524014731442226119125467100689773435739503180255811376082122311429574654527004642073406659712006607955231163914599908889895932565074909598034532668249813226335423466699105463873015727814492823972305287511361011614842852840293219814796994530598413216348594884386639428257861323195714581201835719551950052224787799607527593530383635267746696767369925128876382275232864402948385305781192852272582675493976684270498691571512717363300629184481029780169917414179684257210228209405565300505634968638970091816518098598342052406091601271570729356743556239025840328817449457043517350269915850390517848289016941108778155326555174199876350455039264998780971549456945175319003350548954339971817977967260574891758847377507593223144185262082180745108779867254506038504789727763595836524646564239606383343344866833683846379604626383980156458651936181054412712963890248693441277948926277090010839088721550873430657837867624793688248538497989620033146888386009393354647438515982087299794355158572291988859854670877731367238436113792985081922406499543659828217627797438337512970495444533133939553989764581547327750502760106379339763065957989543558020936044348960437537646396133451104546840425952880211141321550941611387123818145041323951590423582025074065285386650712117895895539847970589779517526697836855015169200902566069254773057574800319258763279060425085033528439930691261872048930130995721650374792746681944300615190140036016241672653613282916008541560548486818016495343097871942470417392479642648041715348521399335607747441846500277664933800121340567481011467617226162375925311440536584833473178850730862817939972560142184133195653664961534697216766827897674214743432228347682978291414965141537620593324748899773371487050579786026263037449466409638325676952568946601904701942578486381139989400713490908916635598346697921886794376915703407460595358355001463884384504491276446741155744009288549363059189074668477999896847339414378928467619439101342877853772809925662395207807625007312721352767427445589924780550800948369587291077141828238910080683728510334530241940686915462639773718776253112975036370585905531684456773781701643654088379912824374617233980056410025794100880229880331265332266559905082494427871357790491055047642413776530559363608837736417941956063290891967957467535111370169376481538026647670512087970866384706433280172874000421838827256587552210834113681431244013652334948265283848435646459961473907425536125613231650925398504729911684939142172925926916979131942411519349369440971323091052419752127453680133664707470755435716377892533010803929199761798313408750439846009620910173473948368205127373344326693762346555400033726069287931129123721304394876451602559403715926463798421488185221549244931868243452134512571742165012674958718592466387325722926342253306460622528468785726158069127273612360760169250816915567700152259032251694237538265851986102995929226999823787747617309966113445643995186621105743173972565602141492599703690674348531216906938693089807762890763822113807795660584039754626352332357932090482044345176724387298637398704922779977356149841234315292097336954899969205047136816839711119078648990589844603007171293703340834594762897391266041297283738794378697749548790407049982227948972682388205659360156827302909748328685188118294256801768866992206160499708586490470463557586691129882940710963997968743468161505180014354453145832029940201685418910515337930542093957861060266403139005462999422081295514946907752223601357635835702347074770840588833183045832904528030017147685162006898860889869440139306086325135097664990117988793427657273339800824698474280203403429863791625847687230352562203351602896871398217574402565297502150014047139662979569798313076084699144878915539374760221005782032237455599351872739522269417636285635763368303048950925292271691178347520392790668073741817182824422197411033604254720472042393607795204299327912777486148986329195488124136141877271419778929167876872967700478721106470497703245710125901876730508740931929735941296260780969189429473955047112075904546341383078177595256050631697877584183935408254130034343741867063893433501971710505898726499845015429416086770681915191002016876262372325554765666348612345701103634842347590132519581364651215676458768790329721514585650649825759488017621426448130357771354185605636745380339549470296267839475899561131128876901755025187472348851296570794922007757084818767560387423876715152717581451844157753896676004389721500048470441451892503890591410479977694071147809085717595305414010789195909847606525047755632316834477536196220068829901187334054463560904370088243918322010975193501052564473638115229512494220997768518332389897682164105762878320961953098066368579692403458725846192018258172051566811950254431421825598408819211957568124955815517113538014530505481023919504261180706992014995121280040282944349784338969861612888886988716571549680499040967389790699904491404484638060959449591762418187211837563968121607921247889275018529165024018421932466216506713745072203871743775790207625009693859613313066831285157448507416751908391042772955918120405606648768528969447740994137233706726317352112242721644482962734306935054996632319720626680167415480351213141281735809215766591445165829778988497290979309245512167484634394174457842629344956270608325891886039627637950242076098846975561367918551855909444367859112016698828531350252618447520845706586169450065990183904543335350416882611435346248568454448086557266129809649930303021856950849865667493259732567137886931522667712535198962468215638379759679060680620613201111651838510460073505638695514633398100178868289237015562208942725313099659540174875887442584661980589745241972534818756412081744407882633905560266055715324692560415090688085960673064413053476698007720029004683039114492406370134633020079944119124794683075154839268577842064707432745693292764518537295466750230050273117562953707499965924228993179219570187147876152918136488238077622339912738258509684386705587881909912726284775274669554705106449153604681410934355735908877612138523993347025105219419258174575125722935115244725221840991321781070403285100680213550756037654447378347507507181901977123068459773859878791110668873546154373472740803866764434962000267042402303589050149939256814728919464055723616969837984972923817758064731058220739931767200759164274567416204692535542860545394567159368652636044830639629367785891630256941475962985015755237029887303457551844319323530105850151946030176246262860515011357222750611323080999695319575661523151379691159297371015108565770728554567225648859277769199670219261911083675616211553846499761511234489731623635578352852961614311006568083285469845100634690383854255068969894735030397867886413429784788157743926808881818856701204336479311947468165366807934443133536013345880585941157113802475748209872551822443892415514585105260587906082545476554507892099773340426143245595113512679694584002753913476525323639555835507530105875473782364969837851859344421205480609711599814731257982448837003799136781550513496535586243744028595445833806205447793482372046138992599447800631196854071643224419882500421168277492392512950735210225869379523180415702236547234517567433287186043508915116026902154335128735816854422172347298347590005296708433452914250420430985364471356860621179104713700093500205541283620381491950012542260068912093039309245784121371823436831931363587132862115648318755798062874736820335744793285880836881813008212347066048242119662704913960532814315869083466468543493956821252715572424861685372841411788335255037616548253380523863099887312716551975035851294232980019814793540853249169520898179843872252427445588103990951360315801579851279420515111339471680447745176895925251895420866612727064391080063968153129409025180016795890754294987778598281501027656145205510031978632368058022434074915936648572043942569844413213315317596999944914800607344361007126226571785547101167621283813920037175162119821920029698141531888164849351199529556174811992416619138442313885786338927797839058379002038158500697284353863625310356333174291586629359957755702297789113891102994682460705338546036244771431997639020123369837584510800140305333906975523782464385112698430082063385981736325911352704688290294191317351666420110032958269912841405713041999602035466609528430172766816444463538807233226985849728592598662098738613682484602699575406029857757148368483311362008217578413755808405798410329105388454741151946816486876946181001249778716822628634515460857900194307732164080590265738327607644923012162462517596715149067425648598092546290234973681676168470173327124645935290859479861762051225597408490328906466942974948764647932704569366483247473385627829198897761128816996874929993027610775726577213239639753318419929451356528365082600883666443850507928094213753743031111177903633179715474638497163302306270928731545083462033420538032733273668338137025713368295644914324086348484452395479059222472057699912108672725601654486730720574499384550397793383068487441353441488346248842639153127988053518799010161330953611933204493202304297779452123672920804134076238828108584412316027811312958192732594652776640584896423686657443749083510231329248727993992466010804561867575570271989430064865800361954144945132091238267886271864665089012730362597017946650698406002197035240319093670006747220083575394503038948845405395281720595118137169219398515747130343881222013500987620741793230297947531500087101152547545251754882990066053339994329784635523446148183456516594134258841959658963678784492979917190395622069110603426829731177043003694826823595000161838113603949584819337159781974497248886505000059664034702570568052071986822055099575478585949244182524988670258340760615289426757298856928845562211925444439193728523713188940531561362441065497500257232032668656990362080116777618469829093377369831648016989208748290302130402606813987213566509019587524397393846040472532385904783212897360767009154254614891478981652997509109389263739858090827222658370223453506845583178547073671352485088468982766736987688782035377996857534035975173388664771889202993687306617973090667707598108516359660877163965940969724068673304722457269973890497002286268376534308661841037742218353698349546649344018199787189941995473934390160924948737441250974320008749583919423228949752472304065908762536145783273869562632828233045655666897548970462160818424666456080979137683106919629770392820790544657071825166596385853182082140970972461689316935214666851716825678732787812889860164364534108287404735510778135920351582282180684327193891993577097375699388185086169641647397074184738306422867915003041173559490135695705065867987839672509215886927853570561327206033279628013726981463328503134052825064080068380139682120079283786461475816589250475834113745491904650409707760099872769649144644416288578205279223654615722815839241773108255571850705082850420962463488012188627008743526099238753392795096011161302541214435923382759580253877352138949426132967824602213757896840052878644247483562123862346896010180506898005008192532539002720988543759346363775599784707650632184900114611873671377028163178074921505629265468033732703797470826121174785380724563811868722618168234840437500294233957214196557090084862900807710683425755456017542446340740103955349010339493720210291672728466597660023573989148304613773324000070661629856680828803978331568785474336794608685229725911337708436119999880917720297424791336279678512698792296040338410894233041455744800688205381539760668797169534617439486246752112724644401729096794741712368654428289649989298576943208880324489898201911372825456930172541550017464610267927832469249489115616526732673652857820501440968051939916975971384828249288054813703755147323541514741684322881352309269378352184977366181581095414820534716800879766389480848099249316439302216182022450965407480563936718310963566678798792744907869669070032138925007399414932512829480315522709172843428903145610264905645263072494701369450932815800823382173890842890317361887037501632205216597090669908198312375471297005287355986228973436115090502935142955413802713114909156795220912408689696734704581142174771475554346311543340783040522006387429995270779699619053431520073450958792354694198182519096445091629553028407991490748869404263385706087256740015587988433963138557071067273291407573520176695121328096724435912478017980638653424632042208004976791936039778981888295987266722840584195526553645224417386236568478492408865828712041742094099181180540792584600872932323982431265102685629251640960033634367277808454241662981847211058186855911211130367196667982668044995952701024991068689589597704483261788631760408516378299428641096746647428362444964653875487243766627156787577486151576074008182806042990771335195875621757233978444090660567300550225352353426140610782136815177629544602947378469887053745776816222837291833094813044771432718912238862391688601144257174181330185782450582977342559716418878193571387500174205139328764146377622461488426649922162129383084174766170864647203533612001512036647986470126934999201128110293237309172761251066368548821500116213933181599939120637964933317588677903424157931354956264150907751103978092741608054917208902902230571903916217800712127274213357269974215021256369758290269752338661506110957744519626509842713753929167229713055490919749323013739573067012340085560861083285122602712559454991141671295620773844655585314722643673062496519339930801568406698945912523688313121304705027848628362124930487330041034974162974719594013287317192395113084547899248692951714869896873362676917149850832998286452669367908194328735089228398004812205820261194542466026565426373030180107452034343566498271134843816097956390173827806514361968528626394635768169222086489299089873222167888605742718458816504682237707893876510383870065300882813594362518278380613236713023747737858012196287108161572798490249843986186850171905650478795686697208014745156822176429562856252276843828012024141201689230305282391487304601900199353943129760043567721981333764135956016306903505776789769941481334633161663567287468462240959418650262885420791340292639180483745329990759928383087165781639466936610346755964020343463379240847466896895118392929860938823452194818927777167681523919630587337597678925993585757843774719522466508073602333880954275694406990159548319496638764913166290590287315099991349014449145346886983655460590583641460527453683108533920720071283776443165583624943840231486885704273872784893299134618675130922947919165102032961126801857284709077904149020987601277276947232697388576299676115225901107995869367573480466129770429798997650683594205368530852908113108206329274057791166658885730395776637826701780426204474848512281739671401552665313613704026319120899943272903405583312673428752433060267395500671503965610043059933183231496300950291030005276036886280245528694082457717728055412428415366641756421916555486291872480326642845953763559066140849552974886342825674931226925191070124031959398825906520223889553460566096179358848055781621628078290492515079310430512255603850951881222357760018341624912268837895818181123320922557822635651445923791600042996026978653264376850905640056871940858803122876745516932492087254876785591344955091498408169007444825703064382901025929650189151583045048656780780261851958142212822340108899040208047724411123089918983946723472158098119770390175500534444181437302761019975162820010284382261596766515583562974935442619421045294218723842641389480940381260933233950216930838461445262458754606175631914845082707252077987482551125681522968954997200079772284696146841857519554677567140987580984880764993813261259394684252010412739022242568773327192443529824565049776180930274303289057301006017638746779656389426575007130764803005810345336848165433537224659307238920604409768107494007610643757417515162591063320476604734188870176737143655634795650195976409939098475981588231766068344816142260118590247079818872236982118416775159935978923725029532965450198521278569494646084686674731824343342244905239786074377369221622829679126823836435733175962647790096592331960714608253976923210460544270910114667767974376564562350705105872598541671775982918248131738108078639535774477205500035270879219841413148816748846198299214225441250935532238045933027577821842907042795390288279096221618223735233556215534232748819121947741289628321331502851043763490465011920448117110484032792511944304606123342119422111343058452393468153362456752127289607967124438062459166192881180065796453959045501599303515513853437692970664298786709694080360804539456387588408790463917547457951890714704430286378850422690081544941897399123409657347981106793356303668401487086668148253932471227230159603517344744885756833755373456273468697211237152684168530691523369070222672380860654804277553898434683826915056085021890226917766274897620490617268862354928152753834542072082824768512441962685506101546144029661303947635790031059554200990060937483300096600256886658314347045434418557622724810811861888838975184929116516863386297680814360179948432403325716304112018703816115211196463329889264031621250844267636909201234342715139945606066088680942757636364691202463816896359233009170434373584095900031351249086689889478886405206681049521165435842056240805931909232169931581706485422115523284398814190955309586880093531758701399462914546476939489066109747480862663576078706630081810820271446839897300652320309918636519667394037527368348045636542137460593021203082838336418578490067905523026082721185981827602475605187591203693711992740126593903322880719174593206636311520819486945656271188599882211254955716513908517442781949213153476539859460200495548474326122283670270340960409562219071672001870679461007337803806089905842792816718367400974839627669643763793919864851382121005334828874990991596557324884250487868949807407191720459923065761266609964524373786378368614966183548175221973136281903605615896357422246911186077278367196402367539953818970170821024110071262616857215129529397939956130512155239753560480378517922540061233866944282810253211489407709902475063016737852410607333510915641543018960847387009269560566993221409531499255899970008126069494581130384007134922061872396528667306902757850929735251985615944021561858100496115768431301186201586751048736014798714278224401277774668206067017257504749266047311650650093734356949642075073670544925484803959569469188210048806074362083872795314472999912384927666254655766737362210340752253524928638545456806120940797024507815748131664309417232527700098258987366706458961981580305084478660467426573735778327125252837643457798315072142846533716996995088485463312868456227956776498229933468030081163670567184173242636112447113672481613404840553707358941884943588735446275017499887970149853625435786003512867392960088839765823792295032131168682350484693702012919767499007440685890896471789627418554196518120323000300092945924526532975478526556957265760309713628231450611526943955359552931298581671870662814529773154101293118674317787482260466749514555854699475752820454373857001094378014898772288062556168120720889477227673731783353472695325980503304317956755174333273708387452879268750166259929609420543829254719096604752322155096537173181033453542011348087326947585945977368651250921661516665834596197492508411624804962438106799391629609959614647741875909333878035311457532207718516168533710587489330497932382384363881614417580349889864125138831221050702549149070004983237054410732000699581520329763363385995430597759035079421407032123542336120829699327068686927388994334473576886327753565157601900978999959225370159903475178464280312034054265485398109509572865391688561003721607664251904665013406792649629140565821640996847518403822312532731913979688014392833800381718091678460514161310727817461540760808518659017829947278070505293168881570905806667166079910666944457955212978157739972056147327166151958044465863311081098169029231443614081351717794840970738029614618174286855180829515786535951479339749032388375566539789896510396677578378652190608739251621789579706241576024167784338028412305056081027100483055839668715170520581815793883366626645142402504224766165643532574744848059144851684637337047283129303780354206092451595867136011140238964183920484143706417567164572330516641371309772001072382068732622193554055046540400820172705666363084608591196781730121659216796123702931811037724855859575172767282460815475125565915269579815178223133697004111936369171822462736088023149183516028201650573428025359284869711715716256002305790735858862377412574434654469423810045955443987646941376384344476238288876418337949332047107637303004000438375069005930320439773708298303286633434598061277201745691315871357846142995788093126304428334486444012283726237405897301387645937970476379498653198542889696579369076648783868033232090265157500083573172645939209670891140821666420407075936292876941649502818202816559606277318323491331793136568296509203090270383289208915574667074296702381193919496577264890400467442848925013447830359460556258266184626433764616227138085990680433558354250562802057493599178689239780765688933682960538309467649211236479187020892879922579001742414059091938979152583965654322729651093614133870898736067163214435829388982747214609534449464580482169096424629532193572601238188883631449110257782717067948776978687078868593118338062787071761639579975616742229301370766951453897847805062112241715410099525635861540707287143326021833303007685242673206680974445421954009764128073859018336086221912237027307365009255753762591606036398425013623778591766668800803011924855942466919733414608008283836154887798366576126852161498472329837128623848168202617605474307906022580956932414845176409647190944826347411346975065930437256436768793456270235351271827536682586358024242999665495247229546872314843758271406868633379213683069871901832119093117371841823669275874112905460101132074297422781026548624232044242104877483399870462196443122525195104541225350696658516565044550499835118358180359016880139603441715374379300508888225771163831086693419093235954670770699451021487039989964816094270785989951872772161881282532831450256680424268436737416359747180327049077353463278783717297831502819225219939207608049054662008377021589698565463722623032790339556230472555068683613310911823002833176895815160838562168659888419771868847119189774871721823635878278478359724437120931637295002789112843088862441166935814002457355289762581721230685383842232232907525785951560984489220135025047344338681648196368144948305132427784781275706411754322822816019094063306541294608375034227433119158446201147809094167680909620772746147248461390221299783976053554620692350116554942861323251051256506655351777237987484193345902932077757248786916383873835840406971599273176724457450951989554463813486112254491345985239705467308897516929524692473148280269616007250114319176020767266536703738173902243181900347042123776174675630499944473716742738072457212631809413426997625171282463786845468640911208727732931338234745751607519397212416801615913593694147882209895973282418627896684963722042142560967577771047755209364234368602642563486321510519118868682532156557520470006868866204373945756536320985371140228963451464031094195121818351906910387012863555828529392311241707311964615159230325612228153308344314392025009099123410271398419173352885591032978511697274807569707284021359782535414152934544207228128331299401791950069319635099881132647742733188491592134848315017490844624884971717137321059125641310339670029860499606142423310448887656150510144028754990313434671021044006295295668818877087290813844007662616910147965420357831072331663514625755157883417758853927069708883860478121118619150419518803727033945907070564728420297638303005440873518924050968301534922916469296918090603983576599105841355793946863804348111194913163626386795180911792649574604523780009936932112406685304667070283759067771730822687740618592005165591456388063414857916413025896403280577926873837524639989449344476069577901068937529017360793660953406296880316612611818734836520022950708152076032346888977253168905571062373363031344737924485520642385259293409091145404258116208170607744729330142022689800632344438669645489002363271833228834444453953857074896727063265076542116331563388343915677417961919112392999161624064800273155505442287530303905503991356594453444907538392964911165872041513130320892357633178459251471115718606280485256190229558307457116985369328513398094404971320579108579329927908449895416685624466595996635013181052970771689214882059834594717683354279494315472453290318882317130631051013250771620318623427298791409714069905155536002327406819577057908013159382909823531735630631520661757197129141669843184962648800848705636896540135520977455471232603277117638483289692391597192930062120248322433795583128862288070101580915273597329983474127924188333910855650142165977901110984925019196990876326444731669913591770705449008130893801737292756124791730835678878740130015495389881456888662883645288930405367110123077046370258809514651645931513268368103879497769062182468317281074043072687785058023643901749530802752245930180553294000324258761592435820232360887131819957839486710162762507362743584660536394236010692103320042362326775687788434697984763721622603235346156113625981711431190203135647238263398812246062498270645092750476912832661621390952802661622737406080972160945405117030457709617991512880109810016364280692782241304298410034544644146488419512572825522220883237224127288956665125426952373204122214023558997129586973919940835967064729773401487714878527663642700816791743836918030513628988687241967314011958915468382864058599197882283044961340850481055297842459150400852585167775384424509984270845658291440046918261531062298795986638314541130563858071773731390950619760513175569430915084657104549294799918567145012173708534382169422872988616080001363633440627697769826004644509282030957775386701220614085093399475229919293012638453445207848715226781438768513021983635877049600986498024743266769456512254795644327483977550895675076298624288573922909082942190897475158114597510585423813210233693845495132162002459876719572566156614579503441549099871816507059967494560301656769147740519997274825031201390334856494869178381521560077203903466782990977978588842556402040496108751961458280441050713087903238825117651053065702212934336504337959307040470507984481278988141591077364527829755254280963677750353192391504097078779415838848331316356979543424622190779774963345461626703613751144811939717178386983910930184095370859153182081811894003486301830788907654863191451685130690110565654929391976010781827398708329825096731117956720290127805070717807875691079971767380015765605014958622835868955517993348965550361706290996182115891774811432225716156222278218106653431623270659676921540306583567896390631746863939315066884394656211717976271398926733831345738119267517171208075121274246097096168948784601127058300574523828626885068403003129696828588794836524971030391047385003110809080736016670020977210859592533878700519858671248155738810916544387357422231141534987421526141303335009683693772150549338914577897822061486683849317493880606039454365380918231969222587728087577383875558484029074964657791106080390703010263305533848118286061534657981363527480782092048359367891435253866151566829423688901562490023132627916058885610849290805202384046059251575433216510136162678775683553020667333752489329858154958879418469893636226481244716902226132572965088978702813187643047104254341257311121255772475295180494829401559197052224820262146476543212540754919909807979547151041646721605474774081248618360741749142743148136849005465073044759439338717537193269051455745746321964001751208259245701754947568425728196197404208310799555218645980181487882744965166902071116839377875062950208557754674874029202166552034375294907861044648799963377745318044436561930784920943491678609366309406093684425957698328770293588658555590075942094463897774320308779398207844350229854811918465029809052347319791337453706563040262504064774682121450104754547571304039911625985114446484612714423286168854283315147514550611725527356795515260254485274847613103364845981406827309534655186907258099335098698280465460871467890305645712258225581673752085943028736123091512825007367210370622924008440393809246893852346239551928106822285519434235053591030634746498309982444552527022891723344109749938111847813496368871846613758861195543719036203570197515354685274845655187076957388766944365199173381168649982119980426888427976976535553836408992247711130572009839338716826312967869469806665166842248349148994270799203482984091322418735558037435713476469953407401386949110683146065009640492253394872097843511656457310976471879625456358910142017883262994183116089281794799689092976920240506465901172554014267922616408568494959803264469469614360055876708637285660412753324671549275660730189042145555644520160021827479157315667872260137156877783091167711922055803188072490545961006711250446979821179010734308730727843686943622781887483425815789902756928155970784696684909074909490105304305529530847627481706095086187376122015847200566457598248949840628186783806992745729634818961434643778058674469403818591775763533134876831386952380138256200383900111023200555779948126741968768402332261419833940720506916701812549360217907586790241780881771917400971254737963791672758960260675819134189846525210336280464340773573334985194826532952556188152516984788642624283442559812239764899043407478928769921974034428263196557312232337079443606450875226585244162064866224888024813132809764431500649372780013321533486753084002611105868140360517926508437481824487811551756097245261837985231493655032799205598052649556974811022100982848942594229347053025383516195971142727330819607531211720785181513674283745858736727013157298824373479942645012493354996280030082045043095195416083221898743758465139234589854016944893595711751657993281574880266754543751107872808771953315498112900040714078796858128555824747703517204077939252452360538321561667042504904298831001937590041215955876711173138246083293077700693149003576062643589898717131844790424787694693920082144492602950712319335921401948170738705625003355297800495572298739529567586543502090561846111928269892850515629819291098750316119249201794862822524817237660384693888887182009772777771539668737156823014973508168205617927415475189416432048004443358699788948657802455462781085567978364040223494337713873756099587868687571315594813718389281153184256924538217011582955332916752134551562070926237928517624115838310105582537387317168619397942182163372298293493629620311491216716861072531882579003196628478663161730913602775747486378274625106543437919158925011500181072764042114225175909066171247375484775498460452269771252283370149127750922697711236972540407466564621558454569764080606848702628987687184426752012235121573008378762731923112296640106093649765853381954805357122051773709313346878602848629809305981968400542044946366523243229070851232164528501265524033514639111405127511364880030540066764207988008434538664827389006223474253734098859479242818226328017750793292374343364273615005822161498405571251157754740470701440251755168102158271009078563226891210473055736460904510284572538522350375440348446244296591672953618833731351871389093081565435651583928236626115442716804469619471627965786868425349913156125184245887906731432695892082223318989980843301015025151890985152934020567056730970804474351276283756895017230850001741472945783913878219418821300621316964712467414978661522235222961173460421871409637654901800800106910748640861498303296455380728405289111324152774410171587830296706028744949106641995409759578472535382122232156565836262010265206233360520431608201138816335349281233401526071603447502112322736210391125961972023270448946722802769980444279796232039411492662791543398812883300490810498643198854344065403228437028977861430791186407741352376903034052931061862346912128064211763604090065889000492540811396865217939312399939957954796354615253386468481171978915667847337121030695470297804256342380406846262100344827088286639908019895137596672499039441228455557844246169752031725522891507532266950927457889399194047567408967381510870807229208230520638784673240461749172624056425157667833953694146452566229481035441955534424707156064736317643654242493286577232436803308457554346789829475324159107795470254384916633508256950859157240122181766451250017142626413527850666978094623454316663729860874847455824626582766885805379224785932363240507315352022855923061782761395244503805490154105066193320203881259317149438872402935967157084252406786600910972711873109196713321392975909541892775664474366356657712910941385683761719089275380788224404711662766489274207491843813060413476042054022062533260920481410108109068958362507713592266085082529501507815038686719535646237871497884333279022584014908923371392902216155071160189893884178346180836010824988171956757780191464218223976960028445337092715723680023966490751381095845594112882919558347722371202638148898881970297308014241900024782392107027013098262913551944772288332071691218455366458972460381033723838457601479574556959004943653282478741335321716553922515626233885665308423277615470717441025207965005733600391400587268394430304057268495125329599115902508393300414527250671278824965461423715933660301748110720215324315452352262108377545342281453235308492987722320693210519596974675058744087553261943346173897833321012718053292368693884173102778239373808768174627036780473350004723287703799324923103486401970067787488050515051241524079245771260919288550954833718820637034349356849059158448065560803743518425239261699264965091261233379638793638773851220023884736523867153526677556650999474933459601936948233184492285130007263158534606341842571707834938509244257107598761933801463616355045451287895169794200549194764495359782946298284213406988748007307252944016354691578170133655204701875990069747242141740343025731143889665414595978844921270196153770354341107911671695426879972647209257274352008349082316456744165872347959637078757683536143372799895324129442465648673485674870810839433901304131809049627079797925535454374778312560095019342723690899638062067945121675535648283568600984911032212970518507822855446868521057240483685159700131219320821255559350407888964087651557782938491819628322008125283518559997950140288976853664275556566146574521409525242908725427795888913039845902609155775996687249618037233127683392098326175091244830913178054991327808613526201793960989577923047546674306773859889501838827045293347749511763335904125093362597127217662391520741319985660737449482644296046146806184586042453384126825719078454492564269235845932309263888390943407751098433580651970684961707606283864218345188182243206408801647716347975876041090067733105898741759860740372994037788926362126701360604806932438304019481174868497591461678184794780666339636419631164052763542363896373949924396403770796404873637172149036669048636148422649987088262010237438189073464424218412367144162389797368255585258630905844015130727996823075219498133662188241859290394717977961315767443112579137898241539112859091804964448352754609347764189468812765612299014925179694450000609928916393273615838904792667728233145916667761816641235158460709617471094168384741465606900832110441003009451833554933294201270755059145161945339635017984523879824490504780448247781181239903455412420594194408779948453023148101583434881868145125114347364155860782272051421608818866331072296839907387422396365696766340876279997198442555136395889268233639945504853571388998763867205655275008618312406683520562438283219106788195761441336400571842939261897175236935884723423066258395361792637095117446966840722456193519345583924527031958974790872984892902606806688744215875206823761394835144650088873162453585960517110480038195323678439534443415419986684096525410444640659954639777901580416524391146538119123802334917389417847753590560149627746547947724581061729004880253795396316596019134390646070732705132828937635540715470645946880538184694635019658335659989339970972229894531506528769420506370310227282113425459578905805844920374282117580745530491427480937080257199902360733384054807348283457008416889932464743018659619111453614253785369904668657080887260043984276795636743148276106427119142528885209221540018921151358174037849747796997065967583286112686175744061194408184032234873804994925549366232836983112965399529287056070853776513293364408906003785877589993421382297533560351861235150960968856992759825631172800519180751306034080193540832850009018792217231506549183287145952130400707762371969325526145172898999754981638972375621250870882491188528500910058276086291271014333973593228154941362284237029104299380843662743158132100167457266395933160033349872280223832373756103419584800088877044667307102524880239636245492027734521091537803442319260502240670205904637275165541389061899294887940188952590809618082550028069155492943253382169825129005602419284004023214871902082061402776234727181157671284550879184271345339365844936293236495338172014112055648638074135970252448699285071598624994377532720778274377026080054594989653653759461405550151043803071807729234431158767345455644506711181050276824872967583239825079285063261065985154771588332194080741925480310489212366332120938201488728992257336426061444090900282200462070421804468117873664396907617338704928389513475721951460674874624942088282360777851481454618460441258461685801112980241144002010833796991257463980681202827941278681487049127797770791957734785150397988521666657747282319672750469899518615484699606950820650907473496032633465700986252238155853203809224559628880501629263619926530980776146121013921412180412285395270614224336881649251370004738753162874361639319940875824999513794114169596910078912455499276727093794156675620679162549239895218287185088581978460926224918058012039500757870790787045489832697979497874284087650972339895492347730664715997982566994261977238043109893710056720662047150154809016669970829249825558094642292938802354553614733345946175775648345689636850371512429663642396432397239320450257213776376601624091394839509388132919011657345908277164327627720743335432972974669568663467938800743309816695657335031504333022914507813505449278974257760407675465298857783546093982582819171598074203078401816575104245033037338344248897172788922063133284643118739373285585292172490358736226109885082073988918684317975455865463021881116242090293533931360231260196647478887004436287706621108197166520169819993031666292510529907852143870333701160129476920845095843350236049323411505000537846671523832966299303424942101568987457849596271964109089150698978980966655064368398558635588272601422318484344022744258944476269367460826061832365197189721554297634977369038330455409797891986241793200828120820421500063034348767886558731786477145343814762311848785343317782993466042179117101630049460261768044265373723345018587705834707693535552662983433355695118329106136458685068667435340758651613708652375155511571821010094009638534588025191524660552569545505203801102995641977858154712354451555180548860118570380758734602495895482263371297811636949612764178929456873226695878494735430447638438891565669255908336081726374353723990757717234933573084194256758234764471217537301388149136720589386807875297808405593750085895530456891774518850759612733939321854866179967258429072676965371232411184209624071675744680524698006535942649020082320043376302500069518016041687044398708443337671301078032770208610072404262081770033931198527223093031462301406495013386444558475900002789631873379230874154130016884893828489829445373088603270233214459095874790743938247132318406319968336119355377123661361116884611138091586584839908870153915263609402701618695298395191441236313475610600055870698948429432186662037876600492543145495989640396113542786831096587987649295454983023716632689964163360612175620472610488129331406191066044201103568242986592598649525400154515531951007346374630726301115672703486458637828116174398622112338606081664912952803202893056289972402903140300742925036574365236564534114075937796813038204684680879896155708901525712134105836056373700360632782755262943440579863388131551808156311931882859535482390596821725435497493437842867767464720772036637690739351063303604442692869162780835033515568404601349474176407363152164922667386239951687078818762471463894841103275827884745322276332101242896596260389164989759324235098275107834958424985144902837092221160069853524295624912119182796469540720740382143193828443819782903260652267216661759354515437880072693877999855722829151844329501438060528746093426645800297635693860366909895413732405061362332620138473355781966272790531550125763013796107595377724623144289638294799145043685551399842335350800849969283884787318721523282485154955924400642388992049822251922322396733473235256840742907907781790427164960138362249630955805237568300052665687968057439824065014542691719615285507130298350740232933357313816825348445155673100248615242443984726499270535160950318439604774433121922247335138366806700904190709482176910066164604976597362931694675560103137578606211806415307929187998038678838086209300116017233352764717794617455544576844709129258051444314914264988911079806109347623311073839715180964266182059895458565083765711269061885399603123237943593372233038539615423364326646386588356558256987294597528533620962750393646855326452766963551841128600991080451111015880624982974667472821879015709591907057937992626516558459664777607732075007195408255422344870546042690930923240197801948587880847283726932122529341470754234399288251779332902531486197408909766744897187509111747888676033073489840351513013422134254711954173726553695521800386428957744832931754066156285010535577264290613583602524325873749658879302126232510416120470652116690706705378544969892064483850167227244019356197985285453356590633417285580028952682950717417970745154051059088748205144533589681835051916559523036206076808559416427674756471193717085717174311806524937064078758923292941382623680744273480964205881949110581593081068103131615596940274415613817810603529012470228813626680500860803749869389344937961876713315680236711372229377651473120857116367693957811392516037563373989340723684081095072658519513395241821347777678932055941779034476787380617676501952006634070095918504229946257376414191636116781674386634708644229547283380294638337736626342147102141208976736486704426190153206921456982210688617061691994358604631319102964311422955394740678940326620555581358077534204531936278145697203982922475696185170953288027736996147379819276880507830976017789284239289113187223143321593890336078934954134507575373909145919970892820508865686495359379772614945323666555056347460441549542189347038134442307791245880963603054552166643177493145649401270523166628758514211161853831110747284257223844901640562919387508312814990557847877407067561636639628641906050535305856171863107564158514695717222206679975343261077662151159441471117963886737409239611578798218803917750668411674252906765279835616601415025414011385620821710685901555294362527412146840923697728647480030170016002842848628302875058036633134675177451187423700408673455946273746560602991541278120313910948291368019504342768897399538097366152621300645433533484561424848693056867734593223645555753766183973324546531138837797073809790810674806806724471702957377198000823964641055146347402623504030149481295130158822813659224888929979019690984139078912476162397701868175406246563875084177930620084788015807406540493959898011471044277252721942052405350818387734823062364766247770321071010674376576646297846810257897873798449668251469004846978487789454186527290004369312773837770027317658384322685682137180826259045480835081786653417967165526927851774908893497444764381868879142272953499382512412277133030800454519989540099956415365922425234797372641128811624822033349565630674646829616957476500469636481770313129302814973740985998540795232713419146247290787243239204219156755221368074131630487955086217257680775317221266664216446241723819271298411228647257924922534979665587113281634713314104122163320372015848850023795551400720044649116647437098425114157243855466623182032836311022927593720669500958002183530761167197667856828718879707072729707221179410706377059810941439905383440662420616859218000243893829056634062421076868273781050182940186111038433668274176609391876391338543920368552627236738690646866183096422523541811449343309087486660235671225343164763439128299253687395260707712963588762801500034967166177996516399020460739021570999831984260900133643533693647302241443556720005281224493001848131657950780273910642009247490029841801892517472579700659758407760941028929887957978695255840095737083983538655357652616804453212367807854467896304311364131498045612252685089603607646988000556005192977849794361488638570525698611513562536510659304028504616573746704107931938976891593830203790740628754893117840338963306593161801378999002808340680509225762620697894298587545534302407797048859116847010160374286935222759164077164045705194130374217438680768507621808656164727557223939346819089387329863095747200866131115704562674204412598147340239873863004993842663834853703739607144096483575434518409607313595104781051498892563673666459217722880829812818474507701910959774995552650395952308938077556594329452279771907922004027517841536819819261035265333118105169109386545455599608056426944860654594519510202976276524047577173187514643588252642767254799822604643014517210217642105758377282331327476715827090272321302077083837718594509506140843976690915974862750727170940138026710460765888448224483015948688992084687114122143417194415361850176697496292441812891629781277512575728698587856533845576247645228634274049767751165532111212435126636155527880988602190254593970944221763827982072870103261423189494950367548433245493278783689256097924283476124716468524058209552213569753632903111038210892597479943270025202251251422421167600010508669056973604782763042943803598012249455733765361501866431704540626956038229320671143003859719806320703203400544825772301297932803932184710848699041806694452308881723936332040908148896543607279339175551008486645158622668892880571716983552181557832131040719087462093165361579441237131009594232042513542260183179804605422952956087527019256001807498600375519311984550448298331142720316639378372198699862731872370244469803204436040836880270494133249822436708723078374586064416515543316299127530014452757390095976797400914941294464653207350234625644217015994122423706033709402808837360324328981654234240269485237431328819161192352947248269089581780258334225844037789614931253249971463378506933879809394274985376410253867982516159658747165218179440208773870808942082291137986892992673874408486271645945235138549228626390456114392110538886984998709522888195456538048530984803267653981996794817568119728905707176754369081775438165530161334708444353447656544950452465377910735622176516928693712304038050069741088694943551026905556195771683341913501527334678522268686170858294869443357702483947641564693325647633160303684418096260375594318375532241513497457762470034092904045268606714390970896659345100382538173630734135397024370675603683045568212165245720018622622908644755516285857853361477229420456462145069495128297593875468902245411837477669513898301501244446381954261937583126299081047038102258022975265477836097013763134339051978138252491104477444564951259965624324515682603508417973335330438239770165436549348521563379185171520514878898300779061349710815710599268725698400107917959006832416268401627340085281062437516128219239609326482032298553125028469611133909128050977091115149160293158206335726761695312714866825027530972327022276633340771616457591275237454326064502980167166427213889971186895106909876674923827295221480410447718238252409602021096514001993806988386868638436362667885868764333502329555625650523158068478514653686484864217915004280187034458599814592754288232910156461911446885146129155090616012647957073273466094080431126311424134726017016376365517239572903265650429640592769671074424281143047475568828152033067094581913282099668675445481288232239037904342653294022138886109011234303118200744266630610881324776418680642739335963818531615689752203778141123770248612158400212687586648697229004778017956812390939668521679991330785756438152357652971218008661311592322874533993895724576760203121181760097934638855091116658613955915870829240492147660884505317733339068759783470333034837654600579845993252535560130154461760127851664972926902448233916763650920372331934325009613173623090447999691508897146128537694034918065721297714814795179427246090497798464682697851383084503082660529574751000567725695470122809217558818387693082420540779158538208027130431336837502828922125457361700371292801516924594480881272467572178714693177588814689845859519002712234401451227837050447637350814515256085572837780606186478797787504956385599382573931098887040158022621226816230694137967200709468941966907163899125919519914073482991429883641305817319031618890583375082451697488474061396385953104781581873917174438780779722709032230272420707548147098968932981419386647957328861211225848729685837490350590182596518755674668410298235591933834295238424442130817724535179200439208455409198456546896294813378899515305888451470580876935684556866988952592071365817342830435522512752238194154949942449908394713949558261174416951387700418101205116765810826400186487720682302926376574591018393477058703517309763228544155339041219556105013784540693037811850371945931093858801634120015084288982118126255082957778559782007000384532041537128371884816081976734895227510175654910622376751139157337751517372632476552416908058200582620174005906943721579200237871181920739683622781948281790444355463824153983678804589957423943619899139658970500384390894203365129383941845758814525733778787238031456946718311289854216282721554433606071427774687895437002602727202201396856198778669635378352372204806212389155583272661648427820521185501980963806125972287364002560459513234426325415328006564998258512993612441813991585736978409440877186629155772455013324428251236573788378903543065061251673827450278648718364224206524434011246748284842825846742127292396831872532015302040384413400707355926484423029273547663943511915198308580233341427057138466986284663309936428895896793423039043711049182106210516678824834995967005908718417972960214215789383514946774029949960196353772259143683166429067567672896110492856271237898289203930156273577220857665297988476491358987235657938707793877816470731257455971778893970905920654747673553033476551788273447846265107532907830887468637306546295317375896555373801500652078313205725793843227158933811608950795553155092267706987727793842769219884751209316349612594109901402046506422887468716084248458346228258217351508317539792573579888639386027233279781511201424435150611617804641553419326280838583249916630712688478085498770917656085764835079281083774042596417132638348115321427792421007020970019598578302329929353947570300549192898418689365611494786825780405989079647656273266823802771382603739977761810849072073802328931624911720939919157885802876790801396221489767882511473660877735236442667805310676507713967037007096308599655999348987830722034163515650850234428459760186246931861235772606049110055426413467408958598894254947128816071624793332429734156523668540372169697656760737930612829249074272598809013220002778949050515760172256271991342519610327669214217052130925529253214860338384030446917276581224656982538815699850452229968898551798554535748040718499137016659631229967152147422361539410881783606978101156053371551876845278423803452127413082699103948830262104907798677366082166414712044565836584257392198157198218691287080008505461345282677895644526889384397470083832565939430943732379088892249684792106968688832567651996746827376541131576419837470697594507589182325229138760748645693308575054357318870425873166142990245245587223195505794054920270869993827447652121915785252458182731525495513539036521963858971034981345958351989439040511879808608461704044280175928967433002040770902291121460117924467453914993257890555193281370193000421548992226852246608086179524950215852011476309973358220593702757987076699690962212898983484866711512544591538294041752234132545937499318188994212572250236538321762711624611897614012969520004040421673460647802247146508704520520853189310790356447305774849298421752889081592326568260005037474437101000761586642468390869771397325338081166944404402833231001073089301690311915483836476019088867990838790620957817409286633353094193234181904117212475313063059781811901117228725764974153572304832460681555805151239319990395095177143916793155001620209722048751323215446656004143677575439989377206683537112356696528885498123026494749925122983076179095615590505819354705723139344563365234436674077083316926509588249096785195827410021825605640518692798743971503635511446802440142043733587233054661268139912435490904379695163901429557697374078086186931685294187314939086000477716243014544436051273768931182304214894346471333728705952644425677968856201151595788918426922496770844870331849889491593810825653005353734427370744959510336051674181947825924992242014903202828987402978927705430580876292769950755889004479958804244871932979243977543289077721847140753718942271931736032669385676724032830462199806705954612956656776854909521367761143651824141576905087342552597630571157821912073142735622031341370893970187330596495416461029969420440632162735032460480788511923046781484700352331366112999807299795591711056500164490361620354550556058147481235149087278253991105230085130388199196509572321165789771392753825416022692389464855072409127909619252522845679243564621942001107979113791042485489301989621963101904491551601924308906029549452763012898484177794103583851150486740812498949600365730254380319054402551760246320350391979677565377414847401804516301318078443349848217977390350315727063424705545032565337488443029670743659094291712316250513885088593912392803158312928861367074700360448694857319572949953644873401342349085993571305126429716046151355805647235121419059323559242244447739122030786182431049217695582275724015978221856964338184295206945003385014491834938771226339368388928123455505430203580927283580111028986801853964345362146062552526393326575487879129488880358541705425674142467852176624324170688023123328931876828560251407339794832516977714696534965452375872778420408954135325251291165043122379659942841526898846181483956901149881655745835437372237299590945297950960260297335208265344012588801566355762785432087302091475991054882645102788403989298904539388960364763755779961693341035400459679112687134007930461178704843899598690609740622833431796354453739295351580798169342830014420279122004447569946619908711989795007822465934983401554129459285545206760153072229428694970950218734440907596153141253498097839735584897810122120927207268946889590475373798709294620545273867309185205125933210744735472450604512112141749266578373102591524239091295617991234155164025220423998440628425851569423052916602007268966394044347878811661643029241372956154439916911136784701983667810061950244675787452270424651914357534920780094974037945434017098444565165722952500266776817274529402300203690068295189068362067228251602971362994789134818482482706987124660541279919422965956705579141600981828453982848638668371344896595662640886623806254296386445537624954532875133156587096815810523486532447856298410827608638986671403990186339885703822487009868619771457067459049589707055049778892638696687365801210822762009840615160079764341645256016882276530443669232893182351745830342475731088599522843592514775476859896208097880693377975838619658930665349211513841424245845262824697797265468261800191867357015322112796921785446660980350456496678673958462130713031018460776713610131386551787670755079666180205854995188824336668435420232740292448541409197646254308296489220589332569386865270977927403133005957592782054898164027893035743746544482973030101307832643166705057097322712379127030252676044404578518168591679709115848235602140226789401240147838877893280701310633004355641210753924969407663341039400503095324107653481941461524588413028574336784313972331418589758075976632905486684962670835370935951907461299197757915520307249960367809073345709092697134628572070214970482490553186612794330030398771153516858264654805246044601665391315617300257111364576639682865737421907158428579792665668335959224846096937719716522351454240491861832863289070236338043654261909512976038452107316151191635561741634334124043691213574130832179206940002019700861587740964180756216359288177179218104836888850809473253508999286969485703242437195771645303674401458864649493634419062898660333640855713191188289603956532385554651141075955916383518131548211952992530882170838480190540298487284520637931845670086467425953407017178369471293128736909545736740466483386032388748761148641376380329193218857603590154821490510055809451747508048137499259768939136636577475882639548063639932438068570699124951043776950995838727910843980216989428679565853662626674363460797510175136898722806624489939105429772945689005447770233511919420219243123959319657020426466178189652422626019336153317174093082481256432859442689795225235287256335210196005698269230597700137949846684357907875212462049658841526555483795564429082796656009321404830706319644991861764018379205900165053651661385595880023588698186005275741646035088217633295696509302687798731913228817134603748408181951126795992587807415250471063739538672597102046477617555196925755735800514228922534084272936952024421263069082664230665452676186933170474876000835753390508459875334958228709527246453666384096312209342156336848450709613243836676624261897472424557231320669998770174087129976968224984661532902707546015321534166555890296616951279342758342494297558316496058362645984324565194300880484525514476649809444992551585523522131371274141641915820612154186569232649366880942774347866184553260919151851973427131914058566430344173665224526704410918544448788556499285419139359692808514702313555935801788820086646437962469218482312397705266122647726193467363007927867623748917573960184790475187832133383667747214192936778611213620586240207815856989953790749161671768958172002338302971126999298368656154991878911343348408364487766840197437517290229145622380459334297430441095765966265952860968350926453483683564517028923937714620821736836695036646122536052552263538963372705686526361438130120258861495409492396123241445277946289465539361228840601143988402899854225575471236529537026133197870408699995537671801081599821754978285696003816767937766293222688299118977090055242113116744429789332587111354685408284211077940483104022486045764232625852972941527752457881427712844627631202257121462032023083929042835099145213489203300948683574963078773328057784859674089553994638039384552187635272623809799835585199387582493202621479536351299269359719545635169963569649404324711741383396221057644012845374738126447367812930009637166120272711157920935871645129381139636291216720198878160825801584189526361375758929599664285237444938314161274829501114130019365657640948472670237632529654459926435943813790970356071462759785900466255496769685244678824999643909649616963642397845401373672656027825835489291941668636721437226723126129574440148080710777420950999138953602391162619787413854109776067856177010114269498709797144203852189094480979120577760019376380904829137437569607975804791598014138819577341074770843429372893514327802352131670349688272189173061887151334352201493732682261504925273952512102100919385612787352836143120728761044322747319149767091654366564121460416779888472403539254393478027897056328605739399270609199919086020617997311893328774597829810939295586753113731036313851903589216396352497084318600964398842780357980521441440086066894846797996942727777087584693631189787691346040422549066624521948488616203888335181726572342807590357522471733466579811859034305065556020215714576581334356018802114299704305010725199564804191795029666300999476430191539010351967676249741362888072381322433804970994090935816935801234770800264743105602848454555903969894970832557388575391492339079179473010063266007295576163387871035831292258724997801759596138828041279567388717171993182544891382373498169110307913642553663966236955233834679390542697215207200523301416302828632264228172589770733471696206364694387718920299604165035947044680530475291165312502386768633059386722397051731364560925588060132083057358978667412511253819754808417553644526903142652346337016227173589668945428964377147977739438789098373404576784838865590618302094582241710488215043111914885025678466763316372529652301828097845426325561472086779581247604282923644935304166123812266205103513841316563690247037768414441152552925430556862717563792788334469024974910816496213778776385650420189271114488694573918519499254958091307074398740459181065556841176525491000249786086090690106196812207778253005725037588463589774223999101042719694810183651887080647201663084139042100628034647054432407946791179741405484250912531678218975994493836173118903032140584753159209681334387962189317703530977390729232403728670676428864689424266288297148217207577679160196635105772502393831687306509282863485714404210217990805947169742985225827314418261937604088070881603028458295235517788472354066256107454678061972136310257156184649865023934871686025327598618542276425499766344093279171516217930374522772005793157875744232429201370240097906537888927775495862533436306550639285983326065732466642813315667817932472361042655045577185845030138250683670176598426557351698970082418622340251920429995850564259710003723192977910945310594321508413118448564254004547123765664669994259680100994847483471980128626599300138685908206649320473732121162340552373299091689688513178526991802516487098092820349581337173707506134844994747150758138555542896917513553631929257121789783004274775913053272019440838579014719341784387070051615227043105128472024012973116559501383725765637269017047948034971710992140944719368092057887600744549340148222662063600410010015780411588082874855213943281113524449478730271009541417880218403618972534188456803216045766719087928785409122795021555852719278715014039266049414366553898655974883731403696449775483500371627253552368541687743094321927874796243615177642192306008914839721346736377916930453120514190590273622590906302106028059072142069508103863179663303723889060104966448682826615143039693711289864422588673975665579679144426407669909382371004029861884195038954132024068940433108461180698260665468697284586881006102568832825040518629531705528906008637585933110112818433441515267844620312617796353121996028104012945112852776573199922545575846092561333938105487839411742471744685045512571646270274753228116213432070308477907703888890906827567395095463045411248282042894971488806396320469272728034901185800429617626479512013743300612513686997916575761419350656518771117561110694069860375027509633233263211731690178585081172663346756458590755951882049940806560141836479336297733468131447015093214770406706354532601976422996694917918495845513672841012868945253409201491928774793493245593449133102680439656134310433632656218536909429401837891272940351663697101723871379648628105725736296889250403252521830765789475501803601190770813510239603891001918425131520966980197927209627998932936703569262024965685126490967702904092088224448513923306340836471820322997012569653883827109366198514387087206917333781427343792455704745768643333129260815881803501700626053201061177969406707649292889597325275452270077774669535192962367992176767206700653176969094865598589389315300879467744139212352957225614284407523960211707493119725382099467703506918501569793622376588739787952115934555682001150060611820344674111205194860728344594137928963331062005879073783079420303262203160880060284127908008183915259975828105826866845145284215264866603517317617248259615611918276575241470066705206357861607680950138461642462447643217319181836635162527424676092511207388048032704394382980524480285339493028283336092109091450854502531740151007991591698972068585229871370115307499750412273014424405915766724721843611783843057223727514225374820281787685070571824930581732687776209351964084117902907567512333683052518966222133667530491548417673499184055838438552120277811641855049564797340021719729835700146515883938605158233172147934082663761708815135002347815912776524220932447517753947214963980265951512188751330399897209798048385501630696895830111572352424097344637152923475975238140303839664233116754619058779298221200833311665221545265977085075660054147722559565360161721300364844890684613980244491209276631690836211924636638988522076558520358913957119718284750649233535319410779957178260018481821173827700885312554540175988319025215396388287611066248525850424050677193163668021415173772358391384062614817464464689344230274722265463787741972499928921660498236091156570551543571592729811724256167279017311846374869266535364684006763932776466606664899890491264893514794103523051180427477561375236007230266220541981300001526327710462365530169102072983410684144805838739753413609257425457930835593455593988751570847658498591218264140675457307185425573895497489353573934393503858111153352167535607791232719252586775343592795640991473814895459653800690242256565511659194864011822020953840721409632288157059515218158589369924214941920336193750478780816123773305905222544030577049515788725564743620570623059498286534615109148674320475998042945361280584254849232021557313875061023456810551041547907890001659620834683422176717949390879057065584152773963115040184555530432522706393158345407620249074332632059299105840118994178851820950530179612463254625558904613808906304022806946739362899417923413746316696695498977014885298378021466519090427091015763267260498368456632872543841574456751360095851639670064406594976576496702225228098763307420446602911686662229993093913284137145590141237955212232137390873812572267275942906260569736042198441071085824991330200453560977694498806532833125394488171330612437566438365358819901471790944452988220160402234197001025076322385987838802093839925001748094124882328028154062756806823397260462202382761400046014547824502860198043869376211430966381484900882402503486243666753754313944711090241469538986976479030286580737301599813217978918911614882749922391928484158128275823945378840898670023177109773006205447317176800157129145424279382031887211183844205939507810246009305181739652293200055862879071006271706194460847431693419906174644315479399047933056414969154808118554272124981387485135021835290188390023488447885236123261679539006342870174873908716677049883599315276274688286198971956421221245277595223237291902694232248735894035036024031992654380627579848862921230651093574115630685030329464221797336444644340173624940898220915987759647408043811302277175540167675527269216456454292880085603139543281116975805082521623239835889636132794349320044339687990852743698516581657704307757062835670686750050375015523342021202310082777852457333224064448992636261967006152987731242926969509807740113720277094862800987071156217754924954701913011690252662438236693663512625639670237251287729548350577155117026646475196506683577221080352741386629880942514828724828616419407861009680305354929661530698577090380710163339983915905058886162753981295847193140595126846989074942065764943760912762008538009541655569477141509976175424578808068848544632483247320161615723038142477536014203356313965327935442840011421114345887644677624201603064555027141468612537001229903610977557713739668590659455875424624239696729918157632868753657096056408048536460199459664978244879186980166375905712048621197734254720058184795352906349526704447699150363990700144521750038153112397737414221032608921450889079375255287775146606275185009558564909264102799842844558902206425139455780715713469218341176882710553965695478085797196886282753828118935948910015584696386407538558435072234872924029603912923111539320335723892900231827512122988383005580129890087771534971036362312327853859198173070804325606803318621368795106200729605849319924612119896939066265173248896415597498972056867509502443279590332631628399340271087073030733124332338012316812529319906472179862519136804416663004086967221276071770051994370715601048099894689860185116517216972730052463166072078808540825026422151204487967675644428493854463602352839315016160532461463067346386135241062634227132866763020439341413070250404993908213087725330935264845978988954225179638756635770338796142931202838182906761238005907032034476819741022026147892624147355423361331551959300077721810851337837111439008052570686376831740171415044681062877408198983955212896336743378073002868058814755872247008354402966241773700589021644705310879516908531147502483172566851262225157570496523333877684874169213048685522231763969152183682980984899179340442058868897172605258751062064102776707565947951996469757965167715466295618352077615163046376486984687472621467805277426347030257190003189225945100463525742632547177963879805938857118822771681763312313990695803170713707420453212233618119175247968342278103701241427863538358896745314846022492381229976084770495730110273005037633940041893485038558946750622045522838973453604210551727948851227795863592941841874544277587890715620222116018028512012542235265496937139457422708387688329571371340460994004131951016047682558766576583919335925044732008698162719773291608572300663552837773744039557418353418317301349606790649416459070268674477437637866429197327933839321046420924065264762548977164195147015444962990702505276118998541623694850283542482148891350204384193591372706446766520941779768467038830858355370031068888619653383552929627168276228225011402504905482861709816848539577172035412599219510999129529482113182041676887539989735490481220331144045186200834899069873988174797940504721352073872721865744291088654014994787636402328937260405532821647016919948258865435056234633414198226593902836578758833095264564052510750105042522860137646859107165273245643187180131812501961292791372877082078746973908357243540472033099758503620370558372402361895931334037262840183144699404597420924711948147466281614836072262541359821797900827033400321774189264545908048096094052154807560665786528632755619676458372807736020134185571755143936883258868410447220195920322524215389033577517924536746940320235167880793371769898083287026120557252663517665247075369458958142200403563692998827655467260643796117324047400247629427882181529172286510135189989918872469328319022214768035485042343346069238320242698666991089578479351529462911433422698377960828959926955145812026140802282471448246964363112424476504192931884688782989026745893539092979100899888554425908961470452652541102011224170069517006742475313530196500102510235706679695940953487185842502382707307163327690709985284309218837816625976256268697480521469536817319732044746218477658262017796148222104700063766616896571209697286599904978512611449557263212177960617118175752034274112397516109099895700132277087388616020713370809519547524855640852887484225555226701767804700049903746460983171721826494082926561200100244887972513799104077323977393699965250461039848233728909154929542650139235735098772206391419245155123538103429596560719642500279551694988309085811757392143855002101157371758049814178286750556126943118179537819853391934694465181417570980479208287944221862897313211040828546928248373003131986233213559639477847864796246130560526340219056925763178961134581855221195479227226718098838470100365394842583966825295218949029729538728019482018306213278481559756561017664424889949121695192936859389704097490547827814924369953859864785499796994204788862988014851915809109384437168648872280006427617222484434673841222581027749613050024073203324675400838820036120649520681077887743077650836887389824385940151293479239112165190591115681170904059996032442342554306498230474324110232185203552524891460550483951552442498010646819723059971173555046561253221612804125416451149988567441697302250026108349246400990167890176036228496307182299936030889309379872558958451890984853169342229973824215253259424286989421253390723235254764796446139121240839411037854424038120422043619749349772467702464388792889854540044451184699234814070435719953995840801019139094823930663382079027536276285365941999885697157923074330244460899788561465932867594443110811626540786330549920966725040461140111522127008110293335717156193340901938194652558425234835823351011686270677887989279159831825018243106885972555935418336454992634353420538492021503985480856270314133288258630185323870326805687045041311056383106265189471459421356518570018467299187309932719061992569951033151849331695741641190518287903917330966812153517329204809710442236172337532200280262487463705220887990359754165646398106520113356200130819457444571719985882598985291847869882917181996044514416723384681145660147082858782354413638643966345989923020214581682662865946813553776397183447298133076753042886542402806230030575360880221017851912869569198968512575490188610151272561760470954196700878721019515530780793782872725544190168617319130934219655089546566654005413809667895318879218298023512234955013407043035246024083296698252395978628157059785966491381049394253733937337654328792955445616264439154807485516708446392443765320465939518011464586348793917521140100014430880933930218546817230824926000212130500910291298070764538192673230445649212425017886836497918082567772635052565143815517546617988303538551346107529547125476609135056763833665637582018254923308575909452178040456111027184156959591378108315010757361609939136771134153443084467265423648889862717872879326061396286097616422705828553207017585907046661484347579605114395490413384165734857643559391973197096212637610690542239375184843539513504724599943537963425167115971206285480686155015952630560719665113764000071827591463878054641687993923616338509064892996263226336063266410964622199482725675232598327666199215717671429149946514767743466499103548803493853713611021681048761514938807499340435996765030618354157918993751351494167438736007728444936593400322796430969486205809550463513695398030876929007231028242787718824384777979568221402472835356031856790165242971892243243397428366752307040480800137195063387516588487067147833950120920542145933399418937048473542954211800578050292020694503802084149994184773403799698818192854734306360346453066026389785215210653442742521916677336799594962807169070594513594564213686298215592815090104187227134093872800593251395540904992758896425757515542148817640308039890830406313978705589928260482942995320127200789772942213043555949793850317601622307602065681184653658801422726931868767685657694566114370802532357867556524316863962482556438479941602009125842199596737151277296307722028087896120824926671117704733237475265545607850586658767841573020549068876790780735352846168292308039137770586775244816282954754432083033935908739371386613700844862082153109048659132232293156585515634725195350121484458189585132554820892551505336223783337769839327597110595573750186869695001216345982851555687341186910979144169966645913939674329166545597339056159496448514144173190089909792979447796111191395845920884886663456330065700643732949158550794678898867442581263160963862902849439564720741548483100142877372427460894604094024468020921303951496500997126091219335437159182608481140069078914113062629433788885017990850558675211753299463724853770608855986089456492610332285872588417954601839960399063349262369635074668188278303562451710217050657471868596264271319901466190239229989582466366116217469525886741185897002994363613973500802270983625021815766649284832179407067948594254075108498335713197338368792147172924945738871266177402060720896642159581993338161050414995353683038962700053927517900464046966929956461604401971921775586932855362567843435324329347607285324132949506618606794340465751318633348908114474721753597105688759020699343208546075444048371485295696342848731260569586244313850364724657739139477129162452789625103893915438189092546645726007133258576513289030620504621978262141271431571748050906128860799404314683359089863716883919831093441073285877931026879546912438394547460404510471081680980333004016005753990624138373752219998950364211863959224442295554971527938740926596203574466619510768271206470442839882078133922519303034199662376295966762946521764121992064396307076228112567621698198670838851911737480363370385178246389115919139310214874981684719629368467722830485050450167119587296336347485157155802150967597606426024854558286346165675802870983540669259142754814849276838351972058114116686741828679175936881106204421789381743494003519480029336238756848922908590687442908034765460218001445049538557617782560296602455841239930169066220185223673131798086116336425526871032845026631594303205144770379431444574182777623514519242018369992059701673462599011215949284305283809821481583380067005876895274293740656883234528815035254748564489670367513797013854449757352829491727761381998389786202534595597846739767411955437088159165447652491230289289231942415417512362929509355694705039553408229037447603915605932490361238311014701372876274932002123525028085437137288812110036048061011365983132876625117539558842604287249067256702016224864058695147767077012121636523805147980535359422869574518582501934911311790304694850384532837120191715594942116169458060701165055967219517108671317398996417228505474308431486386857918101398270506321754768845165053268394305965720498080604456685957855254307519145028337603156418348179714253144781094259819001962989441913105131740143377736597806546103157334005073961840206486737717165842973049782580725374367578237316605865834737402268109106430996268685420088463361655335591078797600494227463962654057757334532847095205327694655131265423601622453114296107599134119955104767230951870670188433641735594828505773411869844151993967894763206721471368332778500312753674267225837835156398506334651115729465357997477848959497479374654360228591873329706595269325809456735872011670792676726883564242590600835682391429464152690893572741574611418989338053171584404384780839952828365560470360719097985532522551167306127142554241742197426786805755693363707192515148469451897252068256372449612926055853179779293616142508564213160181276952711279903052571705359395649762935404619872087754646986860084819400065454248384394715089208787963958529231115434266652062170690236835173894726311385257390131900698463519736962118008259842076359982783384752348189118113253551316337733427384067185464084867244045859723254305186976845209772486005918037436738550522629129261553397469583406956816616671420806210017268613760631806010359498537988567058309470214579074126577836452143942990435134726391524106916154100541215002198183038095586415765931014586781683066610787537565299931437171470718957983612752501365641797704610705232289735053624798226770371219233697290667307593090627537783780372609531402437785560080217970921784258253547739146587631694906974773727979536288078267704771521794053401949567092331977294553536497193937136825872190395816365888604246833154132934882323920359534659123059695783631231676186727865588190650356606133626040362029795564526907514241328077722438072803795156831744092952156085984854966364154296134546331756358258978446549645155084570152101726270363459727798972051681993293449152244688918070584314448513682606732809968624988820342475587064501998654284210407196151754620266615436350954167231930475512817756262348118694001913383873508634007089002226214489599509738734756300947954575339991155872981388933897426669523951299186892761950836371275753466535442261845457617473520726930584428816096471073503115312962790817731936717516195758466193075767409246062195106150116900221938175320365940832918192125435648636938054709550523931143681799165561642088172596770929653968797990257172180660950589985932212090367102669326176365902267350614097541001462370965538429502463340540891027296275501670116964864659876247887105745190832972609123013140474258865326169079400818839459201582020026722733448947284438121309061440385529002380978150755732878742133351619984520430370701924528644866368040675258123843586947101709719334010760256153398115162433108752859200446793244875178455618140415862885647038811493657920525901730325034534579000909511663493078216559860539336087543345298993711355649761789236668887523439664657996689535474424645996897575521178092626132342985196912197856967840279092601652055183795786907547882642926599109145122712746991628795799116766015667539791714086801914592750529872059130773054432301261398067402331242308654563260898134345491727787851134417070643046573646267730780154007454923527555830741228868015956230982721741017277259154957931953870830996427975093598890805874152722940601963949447877872875573216432480714793568617387805230012875682133254317085983363666189476521811970351705475089744906158348664044360831649112347503729466700448062518491334038093024518879858274002338658641813764170860337849646713934053151581472422558137919262878574419343721824202662811931179980330767603336948176220599759873151804402839723250120141078608812198877923212138879854567091862001334200697237032022093918688742263203320830944607627801812936014735977532812643832541108759077919060236909101689633120501443026779482884712026040315126095266570054749594125625381848105888385533095894758936318540122046858897064362843103014387658386868681257402883116746138367698855614094045278792691972028419574167729976461483411715638591193047658166063553451108332014738285764379714450153626692063778821946491490501423961298309722596722108660196247864391634961749181899077778625321780691706809179501391590720553844688535124098136110711743789104428100603140892372148231069922142016513853402597732804682059832696670211328197109538960694582445256884088677256415693063493727951339076852367256768862085268202777216729068710558363528388825053351727654101126101961074522710489005766206490502181833073915095802431792407843239417948849218268453848646069241024332880889835570252210339869822611553699334087787759345168242536353977682437238532670687350752448529450704649374330956594728768395997955088227914138101830047433284378853168538640842330610417786621645710877808736257323420631876406472966137042755035134330186448793185905021482795095361622684919297695956473092941402192503997827726591677971050286853259052830672477750190101303233890971520729616132989719271021302034414116401925146729724835953014110561523149771391091943720746999154193723061122387071799051418945270569337909035439031902964522388763680761449784878568492860410112634757169555070139376298120816585578752721227153684229264485434877962978667020025463219581587695955440126266118551108365903295376313818844718550890686767069738938027020719187836270137258500338911608352310163660311662473073728484423135691505273868848815484574630053223537394166693130307615264874134207385663333965418161566448474878665516926765742413929210358793174782637080982100009802501689252150823678689824608124352641629913125214194328947997444126912603328864564203924677082722172452835965027204975399527620365634956566386986576356221018039198027105735528692544206874814700761732524025386099306225242405098089290095957201750054487480044371863672312811494258343947951360447318050566643942877567145387996282556977068517038756272302999710793366336044068957392908462321414804737300141856270818511610788712774135997707447525181750422572977300283483684843115056079851742875063537567409772755466402909409984337691127483039959422260779039342025529118294892586153262923590829222165896814144767116436717660850336548903398788972952683328314196167753103277568479746931793105495507970111511269312855882148204397244411194974756776875321740517555013882430797492393737778281937928598370675017696351180652567566053821932037676511689814005852413421004801299308656622298119341779595156361898165621589981245595703374893640458820383831877540140193794414882801276872879498935141196405019818296289530877123867563980865507163359259513828321723436640962831722658108372237009101011475460373039748276216613503076692552838970218864178781137510421973683856034173115064921629438173714600748093539715655866412945768459072491052032127593478175765946628810043089359450848063306675257819110263887916382672264276372775280743091550601332189116000353928499913620344168312282304470089959096431048564047702126163447283957745758393932836829100700503932766309850157966771905098509198639104219055379641439093466831571516290575487524504772468226001069138918237009454194089598869551620823369028107242303319263913121935360179068235624215893445794517394481015976558125303107192488691902996643711572883196185777119135037964740078362978168451849122756535664017840301591699117399884571611711504326851319561459501253369361565166540769656071260886636689414783864733560467518872063584388084427928519721402577955498396374753354287228915961638844369384977659456288388856041525053406015633653747569218474314140700818383833783100119265778662970317977151975224483302819752915699034003732625104000975901598248133740228719370421411463000952471310271796171631387887546608721885885377350128012542388389933244519546348396182090022467096219850028166240338015643584494054425237267516931377489084353772531833940924878897040988882784675910830629612298053525560116860862136392021197640308154482161498764536116864992771654865846997481407611352302026359022396863284487251779949825583783873273072477827942592395779936862441274399578312921308371615245663274424552212728746809271956595886712609761106334977935265468917609128930651628541958652201513415645528764525858068017493734802338589405640222237259983719693310071634672573978641439893233557441536466951946345507532132658695586275888228281236537371985010528110875153980088613047475423420875198538135996639221076916013141220881912006173330067908016442104598939686573125541538333268122990771944706353797023400443856324297674012024768375819427459770176901656449441810946130454312535834733877914312463201286510178128036270309935921658275994899071908584786294577308975266052726679093927204933455701840670900796945069449678680752731200544510416190400284852881945637056882845611242510017305771344409157193994032145557731277428623598812198338442011364892544505835570781923992377873612530505186497073526267183830126820354299524316658960263847650665415096818712558232184013008301523822037656385073199179513233860419238499971941393954703705134417114173896655428821123152644063862239744952023256815689347239649409922462263529917913821702123826474340001961696443354038056385902160107480888923085194642534908955903865770340745133562657667128324488470855599407291747323282382804579877989111668165235578881251685938311708857425437471232705456206343352539563695531511594424585871296179884450439336555780498574522746328187033854289190237261100763589349772314034741449398443185348326659884811374189057344337431962289402473560733701626083715737538565973605932250950429930971858747901269021663592211419546038967423061136023149002555206312323566943170417934478631456478827966320780911145553392312084431203481012680993418989019522864080855862318141578432203583663861079154372186052147089260645054683036790417908897566223650464360948885286860126515240477236139587664496044253784864647968721930510893715375507411682958341411173225628565440774669046648471705008511535383366575595407679052909153989168078521447259133986994035494692980281625193954527897043621172567895445619525510396601077962745511441591810966794815692545173249468349603427175536077238396521984462036428990750774826824516746897221601142638287140433044349843775868181939210713175561775289513839517122100927781048033328176721205372954743161312157309344045123839360915933620228806198731836956545934004024924787652116952103613129963665083311269439997182261306745753488971904582388983462517032914085744037806404572224270793293321148893234667944961656768744756962184431972140671472900943117805147521517499353154227982194197843199876912636178920975154788377507522404495484791009414700134830054669555857834758480467427109371205221149623287205157452672637951280166054764948243905661982237338441592059186563463592604358244483134819453471229676356907667434153964099160106993244451074767937578314561138243096945087311659248357080266156214656473206212475979050649269123145762631083270179198555146211369775678494538381926911630980858250664208428599592614196291897894648772962759892147367888157947023172143904850860105743353526383072065327482831569786293095496992063235762813613654397817699627075426777068380633345518279410619187661795147471290567572805985332422788400073163102238327870594523970667568204636791297693402222099873499164439357050972431401168038889645614978337590482073488210309139370520614113132878334506567951081003604453798973294108699977742288464746327066865314563155128298136032110127296455506474145896933814624993650021771088847145916241773411564744028065069281427518718382316478107860980913572029610259402209079395558817750393278256836690578987337176397937431605547410954468501269386981917927851495489512311183935429215149392031584944071331778883566365725148885281012908166044019800449525447555981316034525396775919147445963880399443538025146908041834368078809523041738557098941840582492184210697349834335615932379881602194384593134275478482356111473000630387844342073234599652781386625025353420597567449341865466381115616001080122529223525649835894123085648675542892361871461718283079760828350584221154349271369639481251438459794107593982708395491965117090425668981914345528284645808435677687909430809221907942386719729718220426642503713296968845459653289006210883271473326628981355051135483647384897354170863975533425518726542922948662036769837023005324361891685065306324217123193765622395382920915626760125467349326039515368525434854176766630820519043464669878148884270475904031832299168886723780885387349662653502579424126576803828410880964259355823139597552029696961308671135561599983082032082164537196361139381145340924270250411406638055633498478972461249955031195614708239156414014706114652527465398671378596634587049256567653481225586261528881953947787175265878090349523018788952496411772798236609293000633247072085417341900954388317758284122865389586754537687124140362538823809660829266361456017524999783722829278157583939063987171541792331415078042385980373785566054950992316805579198734884094431400520554895244607671498217870188044914590375773344155351123744366599701514773184359010405089113743635257229025069928429535208081941424380975403031440813758556492051253204105460428729762454032164364684652659172489472664785628827580267417130256676862603938742575181027168214673945431982824461406903593767550219645312799734735133017382545445953813371078515252401806217027774875076768377960693464656828609025967863804543420161406795115220864919071693323331934543521862999906923910301555170141976847101232132573139855155083482839843851339831234631765400474591911070307759253997421816518372078952718460041917996589872695362015895172634225134010161644528913414660055217184201437440474255329219011217442760481455809843963788978037305644319483605760639920636755422946051440991059228274921253890240571780384647266116588032943900402520684448722007737353932590630472937398343900969314806914879011168410749412873291322560106993418192776892574771747056581946485789391532779734476303325542139146020335719883236336577923060848255467720555682226808321109209026771157759438783293627919496776443539985618620227929252528587373543624308674735078717310770134184726600241977640755782295577854619665376927212549469100112545719954628235556218123189893796394261951705698568415757933415670960360808258456568560530231706635566433663322677541346496867946965205823410933521058785441448706678663653993859446768095273788190139231213664312332752859683314200709626976944420364675262143750744146935295702811091138691650772972236668735006272430800920469968066649177270910926392797942486166039582788906335591898674829844208387607180664553652386786655999949314179315624231309010168200334838903102290511567184526339425879702028223788930493187052026732755343245339758757880656173672697369696317478153892161232993704409984711115337755209773070089606716877879975219745773143337806053709376830064126859192240336297612610647856270960983120640458459555422942517890703042766168590234406782265218074505866999199808900789556933851415169177026910041094944361530316622242074364592042089489213430005270881713617708012178258519797184307701805497409588293704747529265955694400600075457869044813857753374981551279575968778587188983254653753680723087378487342020752139691948152559403842654592341016141443314483411645316251071245370849014829862924734853725601252661289895529229947192858646060104738802415523380801896509040290514972186457564063923422030304911284788106696189551219830241522460565144337948312713518974789942810202995548929920973299396198230483763500804299692575746389433255513436118166680180032978946041442902108343421406429421048260021890172300007556569740290958152300298432850949103475189633263751939920760693145056970777152034798696629451387876638258827161904477534599778224130086386202267518912438475951010657333628198992595824333723416945044519258549555313196233547329873682332154134929365589287652924283034504005714836801497430496146120490145570381641227098266324857764473679370768960588726773514958008424971403917753909163039093090823415003476578586384612236658457954577292654340989078250335684998716966318790625996678791790319319593980694057353659401256877850344068053864461339958894517418960933311175193904666415567970279012395379774758696759908718876392233823697029358666732470108391452346772249747642094636761189843277941269785002192113583561591688186514632056139044270421991395540445697693846235767735917534488943894506423654842592308091431645904256982023955533725706764307712940641840835749462147608702771224253003155422098723720994181254004798903264571012171184491513218370029641548737653558952106494586339471268591077235515379164178189930984185197999070127125296433404082420158934206049299064325153508429172753109018750057904566703585692739696697385988494848655351823830605855879506418671137608793231691681619299097404516305658537549498527352465507040725866411463136349219460593218961188920165730350651566674040981299257406303451322649019986246383276763924588838801287391821579609322360847549713634601274103108613931363760028166367029683981204427364147779283777907228311382421645787827203434933231011689326836820853189090341890452462078646408152196099833491466806812612190512941422842283880344351944166315195019004799368470814781732275834040697824241398759305628920463677503041912554049135249541340432135057632952299464691973827382359297419136691576749339814001122777538850323727959965903956905432415657353999101922035765413160803997274467947640068096842043503450371294714534514806318389004488951434424938417796106076636627836792483643761266313315169125507268995939450287716821977935065439381740921640277866021427607778493426859674493845397377406106328183465558609424594748011011226697621618095269105295295535827096483343898135219773277772868346713080467948756089330845738759893375083015856489010303320212998385466789410893733349198414005093239481365841269448772189216142237436037005098882569511678348331723655374401511078697845885005289276735028042804470809737795694679536827218556209262675833808800180718864767835016759601385880508218048530351732291762933260216679356150902624402973144950039064843840881725150005710451150701847434382691999806350180115468638144334652331186453089398742996734953703897518706543899233180937682349308384776024992231978207090270340883275259766609283814996828559832583654767882076170233049534946651031690820543284823250813260347471627628023183102708989651555190944882834705844424663972275721100241028756578528923801957251332747244905993531116538593908502380970057101235897747861664376799404975089141641787725061330992112692525077766899874298175077810388062315585698946560594840971778569730635394145541822527678042186982705933969225396483579269427399458448377027846586406244443561118331868082630581538200358441674101259655650460792093928939899165711805559914964530124873162837541231939010193848614415310899377877565612123358700512067215611066430352492436605758404815458803447456468484150329347345622308212888359629021314925089785183967240479310436034561104199693473159019151116253588440288714145970255801516807028463752956077248542264836057708695188419427660613267352254614625588788995656101224394447390470927314211634756827046321189298757621389982336118208186063806825899385523136908942646010267732475571283420183885297103211233484625817515183349787521068143433836304758284599495118829498982899414982094015932529107951361247618825544409984333910277623445106037602745334967406745901585523360013674959742831885863113982415652059008926972746421046439025362368557529328651502499192872846133341122111933530198789840973294544425202223441919255370454471035229605472599551407558598984879610682988448057038620137202107441078247301936584300885892570235566794055025177446285258982933479240444372151015354594515090778922858152169944826849998039110214703291856824795914374787676473180693914678093186663127415475912265054842393454345506393672883161502250337269423707938191468944794880384401196343739223142782718600572766734253698190192223279217221607680339176191574203391735693328080514907657158309179778247270525501710752367728102074330489015142473534393162526316674222211526672891154135964890367699298505859202528357316060265871426660612363491623348835544124743910296988493502436354836326528307354606515581684595735268043832748184404386954038390993444547051974966234913208918639545616071741402862086545940817237079516310451701546190284794026560578351066292300311492715788099224110707293789066287889006586070240833187867861522334476364810898800702798284104752115820417076804985815935821359915458255463125765698814208856498702687080077416030897582197214121748665516242797267108906046813484764675688131482675348895347793734407480679526478677341516390398159636937265092537890322312024657133272989896943586837256283638987127126919229684194081211503105629959427958170335963895020011104305500696439671232677602002724141324627342733533730330892978766695449932643897745865058165821569797613225326694689068698074620583439191994157042024411636391255114072069248262680297561037340107704873356325383931509527345444624976613671352679306299347093821848928100924501663306197788681313018195673185343068453293397829420551812729545618391545242256536468995273695013364124618701081052156841956739368303070022121489369300515267626873228336357121301991508583330881084814841560642113294995552207594807149355307699474870628704027768010710244911214960735399968473978941617631438882987131443663187000654297063358056509262462358077401600973802063211644669672443912833313860857722772751735478365987883385508755401198036720647538953864050901102916420386497252074387664513729533499414334297328581299358411851851728605594376406588244592662868115363434198772763216921090498340381279866889562049267798852541124873382469193604988532657472527791425811785868802938661025169983742634926687852422706182774539231430600193339155610161330074861908899464975442638467519413123839921364297648169536459096006661272156600565387313106096110779899870940037383716752508082191186012147602145161450993390824811667244642968904853144215390151065167366073384520949393095189090115238900773053827902521780112145356914457534840583861124576806011774672340217731111230799159106755919733126578909058201983810163012373383506478697860505585494672286916659087999190186915546526197291800563973942329408344377571979824754697736104533632691988614163984283207501905394936293488317579424051686241555549155099872124379834848052785745900038722797264233949876135829599510904535215551758741471969149553014651813321944618387208360883019421659892453796559776777689735971172980951522390382123983557626271626860741644205201463792116148333040804000675668932488018395053669398283384270369017743246914534601232671105820626108817308812056133041869822293869600331027912300094428403626796642822949765512151971218048170239033387854186826102774447079942347697084331127297635696286315739064285978281133603953044347632398338862938286329049995336846546071122499419116655849529093429412155422554770697608767209282320954519287164546295258953381816921146987441323467488978960587361278599014352437497435942925172862737023483609587813309350935238535824772369555209764881021125341383880352116728493379566715910461082728128515867456404728947556652039425290517406334608304241423972918772364259430624337094622096215158723273025072129816943004054002294323962714013276983000950293726801139267463375389085128819551700462868171379383880798881074089576962133825435028757483839196315147175298677119473787638795814134394002768597049477674024511491639298897824842133126504994105031687469209173900509255413623581038872510321439726953421422075454156620801414222509992514488450162376505431336638797004211872847706777380640713894527064671567033541687918505074231430694217986867999648307242896308113992188489485622100698598727779902732113250728018175367984843279602148104325271163189312572204538588645871437955726199078960089762702097316130520341900374531745891252030334689923507166107533720840184821281103124095204263520411802902214106983401349767362071722038173870079662447304830222492594242236002963305054777187538643690280238242680310790381771906430149191956411004923182634322313222251973644319867483558785438425495964734885253487126466141720415787275906390205877989155700062063546549575086305038350039962519647355372823453679813339715614892748160798615450289778045713680914753375387925040259627288696078546953343222408926910540504640504156490795259211362796653305355749139609945523300033404369218095162378600249805008569577240721058839715265742772566287783009417419035191071315586088355929531138120846173604266745214951640295020589658821564035550300184772265365708722283497580601869752797905845596777143321190498539092814561678496853128773787277316116797931951938299739309771407448981787366569867078570431773886280973313559404194282814085473658027017496430089956813834721152576947619847229586051014597229262190774946713422221981839178527923233977111920238832349032570852799013837839966280200542632822913194620334528377164478642069987762396367182304247199587856933010343329579807791396317667404776074034412098304803394596305104091998588356819737339736494055225849559898303582095510906842442569265624905561501471741206691441627547733069056646828801440916439800211232844470061820630624159969780808545945523515967515013030418676001458862689897835381966417102282462712234084057616224125876918873846325876019386252766171163099390568734283973283283331990178273407027329469933585908563132840136894068693934720637362922335153495409648194920601443017085238233781663188203145567206762290831358099722298334109505468278028993317993584855679892037007361367081046638712015920886483241425725107182952242414680111803344429296787636716547190235955365325677324235389334760024440743317740522503060840807720180635968849727874301191221678000320742102786568771225289066288855655297272240954578575001255635997829761317657490756746037736580309894562161228978155328202717362487995894836755383650435531463270861022603896322150957685218884477098401816461120460011833324328077329076921560094941917189121060333504671277340724222233712540230661023496837229896815916228012945972238783722693777004103959141964512631647372788825958941936832821443639941495125969412859097762991501692620864241801852470022334188716738863959887467573496740035692987607021809197027466767816778191252208189678458741378264654724589765111695459923163282558910164405626547457984568663025347075606148733263756414431451052185300287693224898336320303957272611629163832806879905952600579996562099268086424883901596806399414090249110100825413107762641140706129505279105031604154471254273210960448532198711754766850512785014187921165920237143234849592020236466855031437862891228716400996262820654759507832306736975234360197536438329281330273764990903940894684957158361879195525165109109575804111420303415157153794529946378242319055030563658753897777007520181432158093488084430459498514239823241570173719868647924230949488251589537350181684947265228433303502325782413658581833521790638423752693897133419502723955374049190475275502893879409949142455552603553466534604731765468992938608017465663709764147637015055547564269953777303720571297867085912444080187407497612459954753911631541786119854460365610716149093043271916400213699423910049652479217131463874679100038377330157009563839033351463067083068386636319071522607088802265540657748524530619700058371411707968622338357126233815077339258719617218627637767310885687541076862285988055529531647777781391127395527853249683333324607266099600843085768439392520361913767918645419915994281544097202948952639452503801124413499780231264482880652583430094021966670639644682707745456684528208456857762972511716321084599109676798779112851732955945897137005729370667872671451877128619695640926949289838415882915708926140505631207541447293733932020341319925229292039951697411874314722178991767025077952709153632258300769913608497227353537315947808167463423412193366417131568727637826603495257013851828524462717215154120456748014420937695482068488984090738017733380805233757768241588607336450100610856776995319980785233040361899552889264207116251148273993995207939918860947130399815712719926644319584211142566367674787635045891240561978268360375282981344185474807603111392270268443468052565242042607658367240357476673671818929832020095286938407672051140821831500803451225374150855271219672724796652812779813475215496753550044314444194120904124828321119701511623767962964083402276476377951711682518110696643103974115666941710680636351935070958875686333220605648837065243653380805291993275633020690390973264151003865512272620169200363247048156541484515369344244582981145232697010592985457267448111437013012169784339892787876085709300163126929732731875391330152586850771166264690947559250440547614570765822588634731974868959764216995190222487049697744553107372432435345757092863851150733398581059324287636339005098382585322033452549554115605239979658035869760738714743889938274798600547514326675090203186016607199505541535672318647519786834638255526881038833524247496819003579923728431531482017155450793298052328226322159558973749581359615124898347346678734057014951605659497686908788782665611443530454511469074858478561207200780035884527796352623918736665477438347192416271709808081000928395147511741701724327052893775746698861398211751611822456729327115130207511871625077810332527097061897562311339332715511293114310879041039660792805589932114359529325763807594687742669042076709899756595432886953624122987401281252659674137312775920801545517790075380232680092504356772455227074782768262098655832852576561830712844472625802369899613062126656962942522811641859334733840641989126299413692964079116117523264759247238145799436905584152802143781411936754701237023229184254396126296838137502466730780234212210149278253359168069104602365617047847705701665557638742056877521817872836931829756619841266466378894552509986806127614464012917915279632950983488421648560445740155630400422541379143395398050116584912979058753109341522039957038180895262957657771715689777084111375132869624473060009674712525982743043968876560032944273331678492262967202295405978162486269175978161451808321206595329741143132839824369509904301815415126646030807508546974463644634282960867646414708741190572795403612840936156160296284688137335156179440778105416699366468635515761567569520641359246762483841485278845091720433461171559670679046847113777748042098946712752640530830860588528172949395616373668392744990005719235245548658621197161945855945997544288552417901986235762109252590720522647650184598064514693272522800242217484623271105464270061939714469940652772096839541564653335089932639371546188363822047651840887595403045711601438146556732737580383173364631451818526567099611273919551145803086145252765734836039834760556146636743223050607104188019436264760058054393260560719183020216660184062815118594884737595880739402656683677544695720813047532867222957243812426380698408983477702738438902794716100101538266308270695967769801875125525230054994239908729006748518638750294580429625446399162993424552390767656665541047746283863784750389788920625765993054726195106919189343704573759776615755542709514544048836396543437811397000968002991018219555270468341969273807077456165207189987915566446942287568902013384562349408037066700029367479051880749397140950626845903750772551205467148756485916155622638552696140599136902318107045418739150364032077230850456088727282924921914255437104321782881779272284973554940287483811239378914110907050873586993260408453238047953827995897140723317352494407458562789612018572434474288440139914463719068550657220923018118368726048753694480693921158831817344257088189005774150753225293251730542492835050307325966564876188536403223870766883140817799676377223863892860231173397166227037963340064773180317948465996537069462497324513456009830277337524961496387441430975152352044673603116149150731397692382533975473960395443702314086425415403953739024095962937636796009383350190887508869721326635751258229823051631813699770880553033786900275693426404787189774892021158848877346043579667793770562655592795236800907413556059843346597679522013742084346866329527115537512833829441115714713132960759183937162259828084169998234123969832500926905640674303823306217784646143132214080613452051336344968373607299484900802021704217406092784353902292004678167944677220516985192229540561801135383175582452088817023302527177601920725229224148424139328354935240048230474960741859258309981655201932888801837327784669132936367617422681866791328868054034744608395062605695028100419176597954938160335823035357682350244029328709138241851011697237202698692500470029158361126601627190485872086680669572916382136630311718703273732653818030245659515922506328670845585445440914031296807822101637773615933301425353068299094570696820147050353570402181150342675246915875918042156980726788702492057898830727371353601510215442141463436099199546736145135563013683702789543788026888404586638047786077676476394601000738759846151352263866908131982425115068462818573647831309101417658850383983411482109881933234306889128024769852356985461756083425984662349872015271051432662142888078371499159631547674711103304806411888820450146228518527812631162981045551175966115458838058350613965365136733662074624202090622562796225892108020494728436631940252232496662738150755259566678712625755587308998615584476505075864198570538162099583394974022122831611702494967459614923834609613142908594130635193900636004950271532679168869572956791273948052656548247641916367913282035276169583446818391114222344040559674376102405070530685441545069834236951542364641235084976516303072943066744372953503196098852657774434502890083837112225152768182898073324825635865023893569693885672430405854922897070674442342546180922486926193873621550439110891207984962599441617190898454714794238309406300481954567369525419245217907559420366171382898785504518650014533369016934007877935233145438172383164574262770495505996007415476427411358012468873309471719353800212332407284435357165386890382400392092497179925228722150873998793178848759421780277484726231071382071269825921903825935314141989873548388837696266452983517589787258238342838812275457949848407514047823559317907914456607945600469917538607365315182161033273735183722575903270459444779876583414084877845584826663647075294165697947076325028967158058030819871148381650035826789533626705908011194306176219534529849290536541544518762462570871697937178070539454140390768691944313653446795667136052353774383771254279387482996470994207904962150997384355560852041631375363227786496801121208629173438471286326463660095312935239431597937932356209302215633494647873904649942956717419533924153262694322032137988252448181148608863404749520542078531857851902689067275422163116304907050610896424798282809113131331992032987491346892830509821609328305707612644726673284594628625090093730655160411895067176861238686031505907443083693145545829571203244693574287575953081888681027701855531424963425299621454501005025029735453303496408863142616312473527066120041556979649804571644768774845241317834166865740491507050247563574893221352192750202962758197713358365987769403726268416953532507370910458040917455469956448288190536550537676819274783856506113438751109488007484513716374883155944642135855453989006992020579653586886509904541662963574986601494955997626653445932231785522640666120813979494062846775353060028549076073740781754639423242489030510555608770668716557608785397820314442788249507921988140420579644039608380761319598757876855943913391924645314090062887143861909794613258488142314984658719071471283205306449425995362043325597941812005343033665215526153144457714306572340492573598443623431366715135177651252805078717376076277423918434596369514482186403032007680332654216402726411311023771929717429803093143030298881495963821987314050441356433265900492950206251516832827773052120583333031404711747800592984143007225085786506919231189405813365273963386207335497612266016679839082995501011555859497382663244683912231526061672491690715048210482275499602610887478024867120507205221066152261914987990765467388178440340781323624210298367543592103643090609532064048910506883698899327248208615590536185172888204228594550637762073508452618629888790998132802215937209238708947957668722724815019188888654202168574835671132637368346705548695666877012591456929048829185314263098479127941680259640212300335997583589409396142956848791113745032403646861132110652820319410923539781434322300781031260732260804909653222880905054049571498936329084206129510864825887678461918726581825644743200984701415654529991538060715252278389526360216405001037510450301533397013775817709364190064606613545175254985785341160286253804729646608003588012734395570745487693889665744504241573964113739174786333866641287359428743589423525552083449230712624033881458108622386539105030274976223137374876463623283615361617882719370903278140572249315683359755158224420287735319719705657528400490695697582162308078081421666338800284170081830202833750510126426697073456420208339187766558005857400093613625755361338959362807646972322689026423455396961732535997195359637485063783033645852863656838210116107036277521233530395644039046368332766702188235769180754418203058442409638127816306402867777977371208808671273376444385002327861787359324447874513809151835022790503202272482256441983282299878147475220366526832432307707366117254603194155932396549286616785594381650414139198395004416746128573244800722243536280100954914506459751601388275805091666278621389929507220050319898283782818505054053382812374555186520555067456645388846631462919251865511639855376841378092907346548764313632552803587210218515222529471286337198453964440828806462406098361709777667199545848452568783049432670001829332940590349358325068251175752498976509581140160979647741919713507269983516404564715435511473989085371604533039374769917768681733743320809913452860349044102289654720108972737527414939422368785266366753904799465131775924506163558312564258115933522203865298537261428988202809718315164579391902510846033546497357348799855982432964558315835362777453007253667646682250870751026470718915778740122640311289387027635610128402900648699233083169118257453138355229586138135578447098785581233389431386505023266116033706391242007777009019723496020665402645365900063905425001564206990727158502618935178657263513657262270396904646746471751856089239860339163775531185474816327798803722758960021656588992160193669340531985388156492955813881751659803558432757774506712528281971079773270820052760500574593293625808848764062837858126729339919191740997564042357474065145774183213866198344176059837529226167408542163302634281471904244231331587318819977311043671815452029978484114667306457006611254259063025715647278413272331684895454606228583426734293797854441694720840656685755982009266601134812133544400430098196694329080101716912455736313617477772713276780870775669615950711578606243732356584688304863222949905716287094762702848851008429864065192293714943301479355534305248322478674256500493075669040406175560528917335209312562592384970149164350942124424401577769913851034583296331899829439000483299080911637878396507956890432544158926215706619210185724874094722164207148980117131916949368171629432426079515081179488182005065685270515992306941401864471728750714925576393941356506702441271428623694295917114373809021569175856982493332385837803113176307286478971664105729901203288274577315860093696194273087168656224945043257094337543749387076936249185098789403236202320468656989817237558639265104200319420431136508580537481314303082183936806924075545944798523538545071659728058339681158301835830875294485293378850119143570001941424285293294369143220463982944156335471466738666270607632514606368767615391190508051990072856338253581099249945655344886021500157336356440166096734809207337475651511560840981070402534109883396923421099243293648675996339739785238315570987361964233906292953573613748449325696870882777973680130318517907709918006370516762762282159273764014176272672571790455950081792327693509678093647933242369912842093120691869012611152265030575442743271995561445713038153021354131910722695526897366111145202728241422747377899834778722021049710954970693395093462541084643114169149975337653257019086937267650433032777499032993119015631031787547181268236582596226727968156331120793066022435962515670632415383232649052087154451437429597875771734747950264104538777748552060968814959344111681046022940450843341003697818794713237497111825346190453692906322849076963657216965249574187122425174001172499129823421941862221329989352121312114363401992792289551585188975272060277393074866954528616072661254673526323518865194227694662988076726231954094302039564360315496352470277301480324274928526183065344349390767382074177838501590086145652944561558567839265257914287948341550637014510863561479587692105920883745818307633117177118155810485422631369044560049245804203690684031821621013746723482596078025084006949785740923222020496998879043431346173666950310637833848437177083656141408820999052210068345984049365392367794566920463689127668969775630477493273846503769343451545264640110949733375330835014776077311853631192254072005556620227187071019729200466193583112120928626164509107093693253364073979117328175918265692090146803963054122187327591311982906632348717727447409353491136223390561228527531174405791980930816000901973156196796703003989335467938831464901160856708736692020323581883608993067252158270766863902864062821120282547689308851489233641634142555277617227146741524192399375031304851689995024878296520887303838686079445363235937226859561001266762504757575678970542887808887471021493389225845942823821572920426213505033648769659340401475647996644705849567788009933048613605819828324103717526666280376636516340038950962653908513912959779326466955505162624175559685690063929932782373990428302402601708780798884747700699616695021772165388197771953559713593148516287018992757143944045470434471864745222590797394337128441455537832494920876313551865509065039612545083582042663084348536534776952813029568322951651830473991686640732783041624277071412793838858969396900522076213415038295295141030145063970338670612536218174075293512333626785101345625730409285642880406390684461566780881849764591198594513251090501754772695156684806790989268986503162825968816241725778283243318878873230599073258345973390908589329052682285951177361080135426184881328314905969503746309888277248283053142984794980946303774888153624090495810156736677265885112048445527282766124329185900876713047358800738122566712039558549406688382670716084091385759240220067089257356948537689032854835236541224457216276804533548835420231477525087267511328991700199696368850608280012772497218112286013458494651332806841539186303181878699213689035342681254563182385637826197306579376557401640829126165715324598664721666567782992189118858198513698076437330639551668623871136681214794155063895976937748846604901734593051203770188545178600065791103929755256645806991328106579063151220538730708895859159463820948458786426217097934634425265807818944114387197984019242168986645879093074567075987304004403681994653895446464962296454210123704031921576056923177618313940456681803938188684558511283446895552512829240111184779178420318855078029692142011249601873638236210716514949834592817111903660089787072096844552383268359066059360885682366652872626750010827906523003201986493751147505190246993055534687703594856825869584335940024889986280319667443401482659554071705001340922182562291411635136365470049533345973899678115987396972623043224062651564822617308258084476875781163635539261566401533500974669610275080722648690982433287813465146890999391618978413774236861220757437028604026894566246034726818290856931620838703125296360720909951524187683273390549457075028614104098961688982284481467280607039768095086015323352406636457610991779403374740555188449380616987270379937592360317557714513526013582804975901063631068991145638109208767596797819037322993374738031922112040194343747158019745290700902028758794451853235072690886167566459807058880070040250744759587687912885904263685418943077179212937870010099863259426681605955793941328008558780049116003691191595251612482976699858657920948175823479356144214281397032576424191841973525475312892471630030684817807468305011687396594464201980739561592058336565092077538983675854602006027930323322346222637614144600406350905518831667914879927368384919376645448347926708920651242381354833454519894331141602205854562472576587503044988896035336922507026403211043267305952096992727268705348106747620121654808492371133327084290521995791384505983928413396742442967199044138477236329343080043083980272011112984572890411316851493121141337582745616373207433129927301700200919897226632695844922587051379268671630897449577435045974792165462639845731749299551659696336627790111959234879250751219715506846930821956972963091400701920426452594264787427689583956104706549373810691413102373821580575472641720158903434632209102781237023454812955468702721769256500950131280475670065207516101452558866366173562687766027395157127461593893461543088988211434077540150616785799718601021234156930136840929081876157038459646123202476750963026805097154149279241154340293373235748520811591866679773320714270809516818079740900531613512048350480104008286737022350616977585882506820348162448716381162188233202620021541020537424100623959627439529177279707298391503822923666168868029988970423446958527242868560445750623141225650806941282182699518866695288668417605747131615181678753017473548081148020403275740900376071756639727575323688943055670828835680472009066691506882652951042670946867531185627734105273868426199242695460410822249841017159679760847176668074041362585004692409682551614633665565129875554365278493586394378857012117175017332405377071909845399536741016605237923854167120973884935927873011448380438643797175640204758184447551170004269502600927667740328515288279914939217662623032546196564213041082996806189192139472185885526866151596182248086062840136226406348480583420789213694707604221690164708615912667543918252479422725033716153528701462335932953116143203736516784890793366780281629067700838914594476289206840653325241596285586542011835185666282425735862174314161800707997271603616395557088543121259485231636146158973127664232017086822993793522360303374308276788332892492621259611237168451302631417937509464043273165708294183312543944236985682704387217265458922179138567227577572514244390996202993618061870817070183801208423376074956074124725011963037779771994729725722297246633282429761253243509029706566433733456563512136276640067070570770326016615326172943610930577583823763372887347194046801475972479515890988624818721728166570770917059227775018125657332337974742921550834384174026876513877128136113224732990639168533216572739102865061227336416477943769027226421895983515406324161364774182038312144781323810611514832095058130124579058725150770133090334659743630117995055355987065470712525992805321860951525461150291883829213740998586718620016087850226796412419873579628496009975718557215323156138265457629387548717325421318800537452900469194376257395480542925929710742598219101137975363855567088758360940291254241746138221503295655157851091401752392595626294215085177958223065888334305416452072075981356805158405541553322628820525590649714140901099417133265692869344678174055066354811193785506340767305727127012482623138203843977408087090430870853286331202609588696387752609538309028420833209892834767003482591378945061735695302731116907930173685979000710837535841240455203457806239008604709719766813341719982562672863402691945331119687138884843252456724994420030719440395860213661842930945469208133675388716926651104674644772031341772366469330178702389539539381598958853237173881982134482011915646082929249265274385772570032086507572046644638370637981847648708698499944910626396917529397280297825632201640439157593323602515509975842937839429835049030757129950253807714169997902440513163102544525442637892418920222516760612038086460514138889297061935471184359305691007921239531717439829585153436419473418587686907420896721404338425112182496531100366926977584060564705798779759225600463186865315062391037725505857732402264417461910873215284742649714393812849661812378937181352079122098992968453118158031353629548786841631261560491065366840561888936044062893516132378870147850452761285294351836170223165346080534861326548560018507453483951637059040031246199745780677154517425878067956359708226832784371330023855126869541955425761953208520785658509627655699662327647879486694770884383055818181296005336044169929800338837509448268378381225046705829360269842304200728993431191175110411706970886910529407738422840605953023151895222910943746642331172945104646019768789480591856494551608423057993316158004147577966254500701816050406525624720243873986460151170954645948657956153519506306362639294230879908189640525998285702666137263317364797426656451302177527424074092136110637555416539895304588805503211890143933491070226652363455485521641939866835840138692965066507364944369269508767239373275517375081253854622787743818431757124707076677254126898832977713307884158835516101566982090200916657616132141246943551499788983386610785355991239584521910495388658013719646871083080217319239578859381226233585208296850423095171764053922045457462054279588602087976401159615562875430625064925606935158103301186607251003917637583866873524394921018809887084823423208729912665009953493769227690595099695730310013893971528452755472475804129926370735989601255924315934866093815767607455754888852782046144245810660307303970932748747907074259811145473458074209704732915751852281881230629884888714487663607534835759165895339571263458544808073192641766207203278639751648779753430448621067814289342007716235162556339853514265663870471930785098853163225496036120123196383963785605513517074045217712128300976609786622119129326323567620221097725151197143353794307882446268541980683873065893571073230755840296708460539609370137998365250161659941433724757736286304305585034902884372229077438674113331714650202958833588137487782494023905294276836549916989029519931627553335258077637481582272780817926063163103188452162101810202337853341712129050594792853083263709958868519825639759923777953897672801286251093748523389881672232624733517732403602139015415928279498260636704984529555703519882845171413177609473269726975286348069710392345161485054858253611442409822135315439322037843562072837714315824917259564825766212876516497631172415475472613112571632075606873693258721282422185178488083826268807551645956556071145532754976274788294488916256053012058361299666658791340266749769189077864346060144079242763795216557387853676322155589573612184034302801574774957121172419904885015059907541659937261387810711754183861638843988817230259087539463526270181316816251098668345456205449625993394710380826661660642761622756283640771469673402442173673378342688866393186744042105006778380264591907568063387488601929681277438685079457318467846569357420037995424203455754452650999549688092313185013962124608941961756601207457468327961197262299901402279880734647153260668869197497347827822252749711016397321999152928578513044359652212918043187486288497433184764626355889466894251420891812809458324694874468571948758660217023922690996343372695101209498662856844731817750180374844013807265919823223649888604860491201862314942303427273590154588671406186352738793522285668488079735302226017168585628983275545816280147813700371854053065398989305116309228522256450355960537932378377887618633077154949725436258325431128981968245471776688114702105400042678979080889759510463222340877335538852027915056076241634605663266307491772249937572398947214161041524205022830473701440535086021556395530572806263561464686602653791164018600805613363128394248692248491413767844400183868098324143043827863054923775617367464848741454311529382888177082363544703966082116040158924680900149986067866499171462401574080062497417311100710793350679548728796358678197501847509154437473488164508962412930958670247984465547342140939356503605860274765845964133760043904081948095427899881893952716026957950464923990548307610761175404716683556329151133237149842859385314828570932328660309275817833602070642770046489219311413050615964428203233300243209331799819564177613833122122018776735088102595866965692552975805258798952962036608222390330636109196069381689081113577822643702306037927779854488258262935028526082143184163800702255228555954296603324420979418983954805191775983585754299059422806685250694580727726405663898913876660318815602672834727052478242715070160130047891826430747656461567285706368304016576386473323615714115597033934324202252901027497090266266342034257690885598729584288973347744587007703053721977284357092395003632168753075217760522865239493687517420893339574553351519056940275804651979622512383752740469981661244492598038752041307225637177184307182796250631187298027627952761664753239228782598892131391362821587233343800183441933264469250310157622073627631032474316245310752655734883599767382980669924199099943666780590511506893292531132520978600029125768331335685232197468786723930470318099780405864120370405559104446674151017626573129061504389880695946132425545340696725205397500645059571184116630087373248880117386189478116940688634395365736216150092280074477950056403945310370891397545560654672168245374689693875603174908552906549469218312730395507604227070962968962114342110961665307978697465501926205177496223266331312656212693848321778696258024455318788592328108012332689434454134682424945492193350450951445940148576550310263363884332022093855996911406332156746207317285782344249554128954924931271090418199568257438188646304292609624488728593833448491430917603030673802079074085044159483761247874561361881481260366737282629798578463687411859822849310967752951423884361959342485200745606396120251670835091636446958904707941860816801839062918280057059364359707314366644464007656902419024421557676270539192707598096191009244604892154294418194849118926652203295947098398154354125349275718617294757717247971335878651141434902684272682494276846800118040464024255392440859304639687865683254022435116296552979886631303803519715109342020247329013251160371882606385173430775723409711234637737963754077217344441916708663125283404421364878801833500645354514905003865444558343281165395026250538328854790730935605699744853252707275043832553405418191457606357055881454631365630397724871076892828257088221497386456389175512195787136753723204770141431168489885002763721152975230768545772847236090859375608381194016083193439176055873842428748750442944307682926035576546305336882413796416190609555253459388171288738353089391960858647237888600470128662886025576092346925015871948271935906401024488452927772029904818554717715640033416634139292465399439889436738196640596742514969773950453352874222239625527308324692846206003825144865675260248750958893680068826807424671398392035574397386526602877851704480779238456612954377968415404265247967166283111397316034129714966796817896918600161679697990542252708179573650296559733669770850242851810251289823834608552257828232938132093133064608242437387807807861770506612196539208513002767094149725198552942398162671036157669430504493018512425410409503334724804741850021393777394016768376961925837633548202375133969312044697698121983616442263373621386211786639350858644976439057573316900494908329744583674118044645738343548002720669881522068949860723502541622833133028047616166231957733553925681091902744383332107600367143346034060105900111878853695034985279702751906818680853608900728314209819462782709134529865716095038897749046329200920867203759900562621138217059181096932320651388479075922909623119519292986536474348461521772464039165130972407248006384287867297558999475458677577959705643223374425275915596214990499232392090287721384365087879269988982078215184536292808898788741258953669202680196280647964372403291702239127109398277636337747868464888688309317412887625936869770065959270581061942093577008588443186771855243806256544013494641730744511002079407431019870521183409843082964480290672396085139647615434467389585490283802874648678568197179436381780212946565510886885911179326221735607140803037426851782801529759489203906227254423699234585253989190453984365838841374851230798945666697246779625834283170955753869820981872545135044867688663827471575788009603766406580344957238427147656628547214987090026353313617165039854642177300642109128288904876643066935063178312920434454204011458186295273572356022672484969756860106520660355840839376289466303668262260660698910764211831331984223024696973032102852044608248586413158139634272820947280509053495959723561847262459760872382367299765710549035759863820449103413200653631215560740136594900949314426221700275335878656906874160693804313504527710687768048784541177652905586720457835130261254690612161002172958380324396660972542100451089010803927547969389840695100733899374403488249515007503334664090862687189895787240700693057124600115073666469716417322771979898433169936893357527422639275354165347204041527738088516101194593654391783704855382441477488809968351284701436746047431887813068313205777177826680753867978275394055520711931330035885462141781076054906524197635501692761699345291555697623409541143543966679339330281274557688257002305751775968972853751495857493953962729921219816628899746786078671725448979717267459419456988700166683689156772199407849836506701193982761521754511469953529904631871481207809137391662234656612417068520524782520251381245391309723615733891709782835208727371709493968404287322828150456169726074698518697206369882370919931463157703876767167670275715855556565167984349066445343648582983674010209892189797429064715516440786111913204273886688525490850199131162390911538715356899483702141520108689673789233215807301323528261177149205205800855377820664952011448817076788878144135306339384552838547705370741330122393930326745605674470121976558731731585683106860142175858481123676865780353830793825825851579813802365097869935960826906726070162767436727733659972757550921516784869480296414228659474387416419668631653939805081244588772394151584262127924405021599593068510284575815052134754854755674889061499264855009141549106570682145360085201380156711497748547087479975225385956775796672252579561819322830452571417865519288396936348978227174755006506390498873271724883703369402449531052173236752639060760293611900330037316495200484089015074627325374930275508572303603679774030504133862489925768876221042329958900268862039055104180424990566668666510610378960152092739413794231223064454276215534733822914685519143558134065024872557752109174994524145587801986837358586960984292432793131976205406805066911590942181819762802569942565248347948742867383065447994159534224194838131698146197749312617439310465035860204154973299992527339496327656513961904894936729537966858512675484523293315011133540894065959657226260976980818147780731841017748269682471847028699655299388274171069324616446640020569211166104701717075604865847371167325123676109012816761246798244979582537735733479682120402568383491933883264161159813103137574961930258139384626967072407809150020346715013562533527430538790709179564733159669412070547408215639665274683630910208318528707988618426298802489109813828470440749998997232376687450889744123366738971186263684289470860922622587189585654040910273857407483130439940671097717722265622035714844417694622996300288635424942924259824062259794848905208514720174950340829909046313196121698405580141679201869088807701714138195708565461901271195085895101191043992797136163908828984897914747903017388386402564458546619875223482907802214473996817167486024370999201432250553812337216457103132016505687298862622135043989733477567836352737910419508014784175654141740869941406570638409760188795742016345105272145883772217741232618082877557923911679865316321447468946680966888033590404706746946470926043415706537941432521111182753151956803895136840942318694521413403251420057457185976891484605730875394845606685329577447185022898519962605952439822275744792919225614695244829280174114078610107251528227392098684413656589156972800133410574885231556454930883843341619516428306328736220664969520379921182105362605228059283627740231056346371539715276623366268664818035493742945652933204998770049363077512844582679380176894881509200855072062230913055719414948647046095240461953391461121990622023267916631173421858044988445124634708206898008298048958854753024389275112188670809034127044375344501380965871963079519698257632211753177115014956719410353410300990962979132229980223230759857507473090877819924553181166221143931764408308092190986975646901554172546741986095829166017519966784475915181834726844962165836829089116985599406262311231721458322679661991639337729179032928502975395436514351807451062235639788259854732710567467802671837842458789802915416286884468144713556887356812528032416896546912817066214353978125110971928386558191719082320491273401379215477532351789415740832306999463239519984729357151357720177668242846817107453395948603456169709123835949619406452366549810424714285518345602387890926048795748603638514697525638836074765257608296573769785726779586305321059338821375992510277974494348189918011941069976025242988745335537443812600906964603504385660925023930161003475130878132212707521657914681609754920459026325007095400707251218469487972567556880372859539103735716329364761111076223214689752091042620333124818797629748250096055800457722432053859236351486003708226382192113564285991414894774410290871183998004626638907169615320685300643262680564103582110416221493325153819065064876563410025679589856612739799394381154634766585245436926884925611658122078706271875270887085200241253246112454139501902381395726535126888701108532583060288759598617689024508984968068592648401443862780608606885887228997796025370261563374030318688434084748192012538719831196195354767961113345625822523142026691536290363856146225250028029172145087767156116619326956020644348055753284178606416125255850493145907567015411347698513225008899549491669290399803911084462231740160836034584664624065725613757055730299102785434282707462927055920926034460526637192852559374291601529478582028482811432254430156556888705129823484583929411140268934619224782052002433023389557648385419988487983904247171251012046058112001899728940967227317233898577625806612131676848813069796388408009954793813431532721613630524925404661748310741047427980917096500848809402331306013649329986297191525696616733359918114105550668003266357166977136903418474922955811502319172050768546110205569551608972822900275611681421032639128015635095889074448024398130295963459763415719276977496838578625893397717639577802930572050472704471458486487887072766233580034919667743955919941095470025283969777892190939121720598640734691517195861338598752215555170143821513052514550519497072519855262218388503213918260530361303145934587101886222780813283624935092969835426863242012923131326010757139454989969171606388763718097570804851374242527108253789261935651303940061877316405569059829717722570984362047176957147824316234159286800274918111301472337840705417483463832102882721424041546644866020224871193487259757487052322344003811867585720062827999271589205831214821640015256059650024617821751237719767117329067898793532209734533167195039380461142368285420527516339834145063292348521472409932768167954394996791287533301891020299326143886214966667264156504010466148646515864263741946662496810721145084359479577992861429161667442217214447378568695538033376894733961140522138326383159706255254816339831827072098755630344293522309956128024568144598938348359397525367070847850767215747952130302230525065972063311123565245471300188789358857919599636167024921526905063281651541027069302618689842613035160643252356877636792593393774347474959315469761779932683987707657047508281112069584838387127438169810794064115893275629187895440216481827055027483326852088427205186174291479491842219531152974005756426368517403777518807177494010217325761570784483465360848076189403662315520653231290751110637574475103878994866815390910047829049026557249210156278600247350464977396704132565572568423293086025782647271115184080408962767545261487128504760236624689462570876101459981026848394189301547027989697752411928712190874804597155932003930229263578815471070711135316556340711720901850890967509582494435025660248280417221839286778260149453579798574602209374113544551064943219388613188095992482974020908841961289454633532215856086066390998730611376447625714949333471895659131852714019522929637836027544238047553686463084995593588799653962551637606081504571967511929479444349692477149930190128979945572786018979557934407282891449487977750352875301762079850828027080740875526490966447330905146712998475600095761816365692284974246436470803736635182670770904510534235951976088216896167988990576915258152273963197004716458722838218287514372486394532360346814891770915145260368007350727346528603349213180364957915598641453318709736028234218413281766970958287130371305889387587851251160478803033603230915652868494389932530773882394901667285336331714362192948795600273218229984180620649512247478360766685916765731512193724362166355181691128700736124829232253952605705818654355245607040062743798930843514874896168520896075304749908857885733262009361429854189524338157993310872948007507211859100724241865002919239771130360052196134197237070303741870998438778056034312564703670395615813743364519765172875414852430135344876073040394155386083367720873589500809334988293690840781914468677361120020508720469846540608410445934174736688721043326588161713009762340066538544637957189207903320138704040364251466850404064083197556466382881253919708613688334240146443105526782609433616020493975659876293910105663269449079910785294767857239876278700164432267167941388997170101662527564150813077861775392578213338138359225963582891611183761212728635635583526237216776026844718895869592124606063942590289607715954171221034523342430347747872417511815638899367940828932439673867802811735717665722270185102598230151367802052088954402635460337819541957281182505033376224004542936141341175967438168135828033660819691381407287710225454325449432634448338688672720611616075569914086503904782463439707610726577210445417202403638745183403240550480273973269731584870194189998705228500813435841525421917860796791277408866690606640975635530640903940664788671012285611466046061906046058658823516592429896910303299189493811239355421152176964221666818875786966809872820657770662704930789008339275431709590373533169850155787052201683737305764007565393186191962220308590182780376053298978427309877445763895867599808515871879096298845879936717017930407802891534607943598549339644259400009114433429298289561238474081763616474067877474518382555226445749809318246529620514977046626560911075940915953974877309560458090181621441605019796074458117023376251731281823912508436942088072402939427030092613679068158645640374486007843722885199294025758485969773523079845624800203384309988023985761461588802390190802905816345230220292688302734953537252553516903772855393706014500851670980369730177884533125815080795483039486033754503501770687128631671603157227883021733758520771531441153644158131738158940580043845138159077435751192226949929212809269948650564635101181625479711039241320498448709687704369262133440986380955336083969130612412387497398197639942236484540826098382737266928910150316959306558218014940753294816860792688069977670589746255765660816907254959901831991904694976360137715119306082788976296128472733194041418574512974376682189549501575327327016529724254923574296252519616878915825884533509155364675534605470357053991695525154573008241712740209430527155063475298168804637468052105834805564060525532226289313024813818705755876987193539295003751539496272575213789924047973199985633445938578031747036425289794466049843337175227564875629137523443398080067631228106155349904581782109002350789260960784917760000046599254497571195178842835802879004650100361730400970512829304566866982991671947985452556024251057618125123305129928642732059475851065548918629585922094800580718807359448785514365512315126348919786509929876271777978788463856798988979281892480618094560812669511391134827215962219278425406041237455740908483896964541894120548906591735708417268105938983775067662993851354949872110719323658293380197763419545309838729158585665607584065632958039981074648944822792314168658056082747374068713625466766348759171121420763469588948048071712172775040145081031889827270021634915298782769254137770105377573618422506708637832767993714323005355327296688955659375812539430929558058172275895770584544163491752166260896636561838074898152773127334657275356754439760273468740050946367902745691756180500192888064870761740476026298114002112237293326090586768088274508545803176922723398842364098680173671490642378471461439297092888127632438653185837245316965416618143904338879729750003671559451424130664734205827441991653100143117087503539190282861849827785307068642914355570320403137416818476305888212529728398157197431421053034990060138595943586553632811477248371153123198842927670408585577114268386610565226387975162898466408716477894898049357734964871780902013494583950717267654853244028205266283922285256815560703028810550481204669576976083521350668120057781898174682037424388453889196716587627671743818942763464457646435403079565323740583567091047528702451295369459080640052941999102087716806440281081122579550950288918837118558093424679522075885717828986894001046875001928373247588412251944436262777058099296616297916075039760480299873376620243330273602136091021316716668546421838672593389782897115011881573634908382642486694860222633513411318540831669256025988859333232994746411734139500766685682351769353853598903148336546053345658004959778060414245224248422069438090336468902832770939702711360319602857224752224558322710154872328781788744949188196511702024727648409006262227980248695722994335856739427271710581618014159872789935541293711399264017291608172055443433189819255762675652278297548711878328957122341996615307883927971488674741427231363667078785090078707020572111417281293573946823165252988707769297634828212718549720225447598400928695783196344286627136259585236449501703599154233616014923102702359668496905256909898685927217082997564578154441116966876566376635115473989033196256601373946558771081257890708370455050882660047913041431023260666018104764938646430832825725032631587841818802384261836357148402305942531963430322631213574995810497395673068152775303526352190699714674233095019179059983060401516814887648792178880877651346560060073665323457623134585372464334614523619298952598436301517774706191984757609888824273296196670856737399314894194147557414468234489876900245316052251986787031902764076083829094984755365098774457976550875810453351566703930610774839075709635481001236639699982757075478212852610602131632329893201327105478782213977304784442806124828627606273216731821964732888720280684595716964067441561080941224994427231707201652480842227278559047728276171779961941764742295041948667473294926933448440243366798434018160767682944169560346052182712900203751557810878166675642909678165582517637397083168740972212207603544009118831822103287978917835811838077004563853193720080325420518861561781805822171892256014352874041884083195006186902703373181950490078551347081446621590427524069261824324215257057656183259691925368357962643179600841475191008010682436750069069821604147945175171712928655545464433766189225923937371347320097730504608805020825448663674585162322667693394325505759801588403757401797965536909830743393620299643095794084339728257930017083059506979080204917650477864339197922664304941741907613497483528211036782852299590024238867143656337257195204895836444443287235307905580365578497287260494467717492964606072182721119936162875177206810550441219999074118438237124627047553658651433998965715728080520997864246264978915332254408892287447242107227527581989225089407270881368640491273599406238700908186112234942229709257289314924653625048854508441504710804727505870425087790690553462927938239444607086807112620155020977932759453139077486829855404352134715831324069586220592091882559954762176718860489269412114265201026285866889513713622649322248832897387441809429634125503714845491027188332948842795767815965865733003160691012669573445908258814892661153638227204562319865390573575616712879328903070461375522781347209001388193744192797816003354666675506358486766316185015465291705057206149654700904127078448216674781676077538886912974025555308891489543176082688792244928778753009863111283582477585816014172597600981258655588815679026794987679271038805193954399975595703990889385584391308871387295589899288795786693370586414990788192586420547796370109823236774974628027964542146983381543332107682902343880349499534719909879590150855359500200703813733132259250753834443943161688603061533895535015967720618759554015029126125946491258688413202474709486931177668071108088120022382293430671508452839445270370718478693724919657621172119971409167243268887170753735704755936921536694181669660367036361713249352341416652570961155535926692273077356199585517656815825160697056647873717087780800594510192423003748823985613171913473350948716366440469742247792388690654293790557656179439461834174003367248455048938783142550956003540897714181702942850100083388571354716040827067102322648512374158167487541633587512002623106430165282781252004693396401377383022963046815553802247052881834460566725754500560983326650544132147010343531966853866656851847477487818277893885877845889564557489260057653967261168112621060319643142104715041226515377558058192051026221411375383334435449943880241068370719922748112711039573394371440308296560990353491635047887743778038409449803644832035064296343715574865188033887179331609789945651047893179260317773116894681070601488556792931971047064347709498315169838511013319328083073896565520822305030850581401749055822721393475082957733506824883619581732870671458206832188029212850691095286368832874312889757045684456500053198665673009056407156937974727215601901070275088866202492436720768322203812510074815577595520547120934288038712590612892768260523121752481639463414091441317971916643603016746280072967300710267010197505109138116720485736095267838194410873901898906891659335821093543642385848701245211099413752023170545236011534727717348596576604852420035695298552105420690402871700890205757542866007345775791326310510791491562835277645517275486629515078954286638256212977778790348437289573080401543546078986988448090307175492891856568792780647346105872846765400905448818987673519313262192323521813641552991497700300586874373664913566265405598315550960703865463944556306293634534658082353975418098559234931848779274290052054490051210076954537996007602077070464661695930772391042958725167877014084964366070086799863289401984326643458219355262363304004506152256277514231600557072286293763374578291068440119539401564864289630764779126833288315649063246494068869544808833380501103196995221452673969106344354745451717057105190604530150171368647684161815919499176665005333913562026920045782411708377696283181090224445354699818699502014454544715937230524360721528240562469767257035021036594086255337405694514131466133524658035655639204886526623110452745047180234306104310667704219993913382423906459555082866850825196988511287068632511323729353699002289268144025741005437714949856041455868329813999015725579814711336538690231651312227868179859169075519744333906178472567924784659326127252221742119857261645927234505312870283458436766475177280234963936970421297705976496001820871796016166380303082302601799108358022325894859523212567311396943709937777277864724944904728808162272409615054613565985177565710302346663416398772491258194494597617339346909662695433257586590573541878807480237738501091603761405937377151207336667223271214839527636127053285615137883233946233988391989531279339528007924563760886411142127531507600207767724607836818628135400523737501175587172375828626626068373714475402877149684960109787313216029912826045205036656783874339710815615464468118083585033195238866352920322115021270609036319668463846606625306498598524440068976183724140485987990736189327005495472963781752424988805381834968860770051261523819351988706580010371136942056194790064050681287637297549700096924286132605879713190712200732199293372487254593054455482434720669904766489962612849029752760512328722456409682138973224340529595297790443090077769660843459699126729370609849209060355408884887138442879813776472117702088738777214354310244791235757981869679565083021668384215647116592062944573710780382898591547584756870231981096489241194112526288119537417463401697110170947991631267400608706315347809964111623589919568702143071236979873047086431300781918239266681633335713823046480435652105092361687249855885592924785420020846543301315171896271107979592735773299176039771178225597435532992217875103403775131182153069782961597754633963569809672767677139716325288293928516595507842776540842192990425060431008129084038629911743249678735410433285716883625859178582824790785479343261945261222187162647259898436736103233677985183403695369105946961810142722401797248264887551056578162225040133305187528851084541837875577267755687878870919618226409359021607881850946913747542572393666308703794308918690499673882135104680875391173857243317735716443738164815244686020583231307523374932118361198793751006982885693858110530028590282323998466452151013284915158738277871880970007585349896396508273374263294892275284535082460462212327206400043059761074376995302920582859916860318186878311435322796011313581939651032575072611510828682477909888021126198187207025278905510980888863056887606820386214374526232383843693611812289399275271070609236073408578307092301145442699798161376242486033679303801128491364296782678216971210833031312639851693312297861319016724935340923247084226156105609677493388898333609863571408679341351515345443234643849292824281461846569649653724423586242897365688177772885119289416279234483250641783985307742677109074709072810899040419397252602148401653820133594819341050400093423480972015569268556740235921800681323668858230904970982892546435297951007679447503245638998692175631841808090982067754233710647802837013334858481465758500463254094846906378075628879627156653570433341224437050286851066100413593818201918532699158561073551688407909776764204185702355695689822327065161335912538940250112293528259990418471811227190851540753672057370286900513794251554996888163478091267711630058924776100506183193408443394753792407873489816002530005027971111524841781008668263700032808606238395713201100149603706248886063443482444714043353187229257202995622994661953495597253490675670531869821825566169773186934816763066511130158312797432472747973776050012528710066898227503065074286431073360651721205906507783338273883538761149637949246064456082444912648812868025108797338356625376500618207915135381354883338163616597898230735762277936558479577459559572234171141114736504452370309083495232187042924745050538787583042359273032597877864392848023778219245333598914629959230485130494664819125218817519416415129027585100577408817296074770565735578725934253144200213188202094900223411102164922260719858742976111595310480825044406934535533452273464822351091021020479141966539602762616051164412382020622760470126605649679099309486144759514400214956569911119423037202095620109354615786979656077072020994286904417211840018275177135695645914864755301150377203181322774328467612147280383384956542101314834414083316844131265432795086780148124317855943099208744060698967055759535924085959942613657262905983815822246745480856403070803977702366626189165254098487275845302579760421612477230429878062372304247281794215234070602995178442424228314351767645699896918920003517982216369183832546213996622055273253937029416607251879962380699557104981069643956306637641369445022215502949521058567067412485335912653906681275808279333027336040819325622077015579386646039769165757701552628362056026178447469591551549431346026231219502819864495076216225211163173681715769899375191826955154872963707249559219186119937728334789923991568892371438606978808562337699475676606161884380624831711337075792408122540903925092380978250969207141238532220720060774981794747205213114217721204218347327255609474611115318376358344888141961499609434350966314026819888205122015340960586251338916269173649627740637396367744440925241406837802836863074680954760021546117902144877590613030288503491229438849702226558376123222962262497586749982025360846059933355018647418157698759216193474980679861081371368563418312190174307443681596637320710076218986018958923363774516964226586610217160357659323023006400531734013706784574768131824232826800430045696465509146360673462278569589034277239162156021888358542009206616032250743603560864636401277993943929200897656860502488505335061298063981531406943177294372268026199711491136392530265779702942966595558117831424553258458324198428768080075660722977714436604407292093854808643243545579922036388157351224082507560729941512205163055046910847848811361896322887149189509037717648467601158371466958317034235853594455421291503918809061635753238609481493182927419233420984635409651990766365798600282037264744428860306065485255529765515403634772070589348667871934625200262133523242300822631983713223641632554313184769874182363775267278522506774600222601960643859214606981812103350481976143369631832215795173267912186341620812822513811757742803332087834325109132301650307641723435325415979389762837644220248637114219386346276500413638003945683263992156297816791558477245818395632483363836709595095571257884035475900385834886394445641736868245033494030019664624968450534986327489820959127583999650961300178468769620704105596220129495683303963194241051386892376056917711207739455566924042811051232098228235673571892281737372672597857175598617929237152927524281613379561043500725170353873584846318798332626159661733483641339174709202066810330881350768493084698459784297913844575208373996797439856686147192619961331411710792265585706215459550466371403870972571133682803214361656201718117209955866834771535375995547730220680545328584515653479975200501980679313865603235548544531809182283732986553567785718699818206995470576065819344619758287739945364100565413081673273299969121741104155450617919664431776235383325580854953704434150929498640284510192124112114835995449990758200883189016347048268008477014142887428007040045356207970187178014652444504215548341445056240819206691186156589288501985532833323979509647817243559094556905840128487428138505277838596896150595470845355608394571057048373801648284609485812987616730514111787817583922311297845020144360400240311351724027981921978504790418416667855951984028100985889742916173427818178961149772193277859492800270258731601474207127485969678216928785444892063372715010954011273912412861624460078688340380622001907526623695021287536133568098725113382030980015953044366633261827431922339764266258690198007190020066179089188946245832756259266632760563179643749789692914273571266979757621171490370940814915138208537997786974793137913993055827747132709063645244159458019856060276597878823141801188867990370106757623759889603196637622704816536996051693852793859354723063136968143046682790079641992784359612594345984076854389762470371267275442637693704386196912189852970355350705165471664204648992388584289243812506362159287816502146826526830260577965944928540689592604272198312833513608669019449056889212368360612709974172001361451017426144563710602789535031475611544609788319280146892223830292762685414150657719095092574839231737861221682415799671525174423648820719196861913148531334643761674739079049662329926288285747438971687653044291490835681358786587819481074548407085831070442988419316586868486797235119673394330834661033249698138323734039006903996091133234171905568810798756327462287602923655964453533036230625623221778265773738547283916834002724868024095168176085104065594641854312066486987104790574308035459780989542866384375564569595714309228082223782332365430917525261913303876437286164046970986664419999621915637354493862581922372282036396956510125974186189734352513663106074258481689886777331393446667491649493801386394280046672740252889754706193354415159541799412676418432512686598270935370018767153458032027549239314206355105958297560083919732075042197307973265844734199219880441116598023701856279503372019471438771615824021755532753271063189133248529982804708912902982001857456040783363417157845151998704675410865772979239810988325438649377756154925767218693314910717988089185634640281440325891999616938362390998333718232042000728621354394742602429587813971973394716048429276542369921847304855685174307538899587811921467695381119491555725671454872575820398868948682658768675603688036998073478914629048526832990027321363846622785683632177609895220919700200171336050832715169807706764345329015536879971481097581038020647997051071812057239670757615411795952901435664579531191969792859873905415471038206420732701121833452919050827043071220382610032025795457555133511341514578561420964072395345572733220439506112110649234570846194945400163138493101100280636745010131240921086985307844221495692732891095964632270345120052717290947282773656003640504032422950916769357543667381438863880899633145136822163265204244369396666717591143375841415400056306444432173272058986934018799032268242912236398749108817892521793408179866877783696863597080421412083898584123123503814573435336859329542736045743445577421558217088728468834515113780557286583440759596287058704098413534723402623333039130210247427498758362963446733665687058602643383439091198268383548197485834749942568334440381088285845527965356700399090351325991875401666218380981132655137153604372277061513178420610109644902725966610319171655177952837700481844720603725705307418189049209824702860980530824319557121170883717722903280658133469376287027933290748388559530987812871090721412514489396907075609624457761548154967562251454607032576098725108178681148190353990777802846869602599072025099993037217299330157304309138941024189739990548609319349763209580322400527507602688290401431160015774379551765373653280855666297211801610107786321922404094815005326679102769410120885501374829988007208725153859309320775849330635353103690289848603916714445112088293051276383844383224984467840963774788064218043087215835227480604364185394707421382825539096522967027975155008512840756097246230629284747307445513019239217208442689872344188895851040097671182151351346176811605502777223538085073083448072493033093014076973217724626173226368588324494135977747672608654537934528315855860039940114376309744010340425061051052374869607725674492148238266379334027103813872605526754136551776753152968613238819197111690573571213766729768041444127351409573612488547523087695591520353651329705124062173777818889185548114922280574124448332636753760281631477028679912431923376625497407290090656374820305165577054427720563152696059991486921963146641963686939172264709713618148966864840473698620946444579665925215521916979864263467254701552434496931455788368507755597974415867144818416741538403008265625664633267952094798273554808710260822883339358930667770549535108944525959048775506855208322023509399735775337808284234603648156583359359543867478096532543932742404933116338309100334896189396224467655537253305400720646082775576134084836998976503257534388939054918965434583891736924030744035255022048540087902536605721917033117377266062311801623751096756297809903646592798188708343376122121144680942509203751796240166798845185028729631451829432218363866099261685272763359246799949681916185971938123012472051087175126027191784035250675150381126499783120792521612765539349453840564994750770518667047133965520512862175261578101300649200525265497770938524284575533135138705880963237199591545906661190358793834126594364158677120369687140393213584748271221712677170785443793772892885182548316886386177111078574727225043410810303330254586502743653003141100366973685349457739166696069105729494445969894191242312110758166543068253847303774562796304516473686575244931200708249805193357556029600367289761587775038788164771249120586462889981368746600952154905286787751648397915561198539004728382036644140877520767140310087445250662060269675182406095174923891338887672485607249421201862915379386885921808851795812320862692710304431866324936331307301443023922538937746183800620051546303812952494539927551818963740203762503480642292180868043437159565300022926934162018294249717926143892437263747905058892428773865842594052432454897275397965897183359873662826625469586780688309830968245147459995886887034623388472773419576327977399420420407736866049991060910248733174574319932791861449266389130117405015667516555591434174944559939711661578332797048414828530768440436423167099231278627653137281599149427104051611637263321574936007532256913570281795805334818257131347244338129212015477628367825272329218136848683077564897092794636133465342232745025281443500235705649874484294196838750559567014558856759245049415882767945127161800582364776856447036020733586751534299106512953251915833796735640317526687555533571899385763264065758309476336924543160440667558757772822225821629427587235943631337167060359149048759119053756709125495502742890258659393548415124724034268708347488681402091747028810961534293472482508418867216160695579875116602014965423356997119455054346374696333473443794237045600484508099150807727526823195229815249726091235696541074178641521176037610740533388101287386922158324160032962721655342592644735597177329247401531946090883402285127107044440419637509701578125505293921383402413540476667822700885271694623192719692124468077517403653286264383957946779184083621564687555872356847036592083898721370837703864993379809436928118880322298046045817139706800965642270112779178482048571606905556224488656325428363650502524698784048870674969987062503987642949228349401039329549671621617654473785450563935925219554568274819915283499812400095599684493116192735336678540418029634605266715670378653712017310309178633275853281415081353577830520312107918610702740258929272131652188001668840330994824603910751962621943924352459984218671665674591737521195746157005024015429535736638469847272698733861684812242765724108889989475535463058990121983458577734141569857666965197506416021776943169200268343546105456682211442000703621486408458978102577386291136576120391327923721480122484635997989241795805080012841340358118119784499411448267108579737662348018493418697012413986190674359706272304195016654287032102239322086489484352828823664327630464382084651220887151552385349779236053193463093786779281420675139929000647131701366631830419438381165979457631117594457625834973427075287005352894350573209116076520337126419537088774764306419120818317997734395140556252597207045994535523232015509256081489075642157992694635504000262791240322130036562296357725136607481330080352607424434658483543395721407384956143359359909175647588811215336838119740272130150641101879261620227193748453937242808720575888754362709361874914855442391908193876898841620309060121160836165121487489463830190604213543939473519965532400723314255942290383756639750680864564774228920517044868833674429328034709185756601462018732594195615064984167236375216986440356720271188297903402955485393056116689728933757220362444560347722156088484220795173124863340637702518082668800389610373788477990975486381647421529269141182903077314112364297689744290973720914931251724912495813972425566132486044981845751835093386548996125270725552399062600167210418119353148817418585799491670024413889917683091360621682415220480839490471394990844638813840807329803277993254961470626828905399007360926112501889033313204586885259887960624636087658297294872257064718920978563697309236496639634740828511919977350059316107951316248636002548461803404974284205455092361122573467663610244136971110665519319942916053174807150087615271923480885921531158542253454151630103123710702888933078056546177977298108126104018384972722548035822798813344635191148651497106091174251457969264482397774591357852808593745614112194112042227142742582725396038970682908902555114301253163344870320584340075006412978560214801203800838800314973887782736130345351767001386194769517690185899904948302032744259083772986405416258892996246642816486366384199940248276765993741680358387506043762630914804248455740232527354128245733871306775715666160577686004059585255951079329000301022290589662302565586695655767960223299185764835554015295363122966898521689757100961331403618688260398234947334986573137435498689210821668448971831807747765592454220590492341033413641450285457726150570042365534173974632289401405264918980710868331284656587060377659889868228404350784395246036621313513533828517724809604146741250404749104745906306761796465007249314116500073798718717157700105139444258959642724075272207675424215928217951516248990530651452272020074249870902084781684932826303634565758761081119158378474367849281183589622314061432270435169561616954397640513285478662641470880620759029213370296826821517268061696296356228110031544567987218660391224138992739726749690159479884887174481233497536434525603968091703689870094089009118831094307034206624434321714660114785382525936733258746170220199017237093264421329193515802550938326203462041254309694707542170038542345651247627478335661170809825443495332426081524088395581737623191636463581238295407187490903250054166923640982772175740561608129865478733374360621253056441143508282068585709186971334503705779005839760120169358950912204224904466688349901206917555622980378031211387095946705950965400127688886727840753493011688529129324525570703164280834614719885780218981023608252348861409892873275139108727467094422986411689962945364610144513184696476234184970055059808022242948243481954261395392186467821604093630822952820153861243728196603683424125333247051397621486116703947563096537233594739232288493912306269065551158810308862106042283303237843605763829016346907492461719957813207515397645254821613626207713694897996050517095918964227446787884401153989011909823910932270372721511003827950327593401447563629563803424846192597579216676548586715539305341635910334375038151293031116494428203053282236189426333197702030551054272498647356268349318069777432886526980940968876032268022630951155687703431555129927321967852894640399673748321801207743104931303707396746941617355840397728552874096055344436065335313743911021100538093078253679703589040662976418461647730183620722903136211164480367073078527643569365621573891772090899456093948062033423926080673732431154295024085704461109514632857713246041442298539826158340323926418508138775091394915875320322918374262878959046490913460168175552681379390008071471250417768799875861425858997290737445181442991699701600126620588500610639852531546366433033526803871469530168781758600651020826295620712270693052848031029893552428480303899940985384921125696656099754828461253224977407705721073452018582572516762683592738501821778242842668548929308194415581650291364381186689905988514037512441806661925211101378271796683596882719925270818091821521877949371453982223992368647069245399459239796278932863708910915764226736243450530717176715399691902061549869789380190517980409731343135928790466816564749153371009169403741831768637830086294741924211821374983514272684666168964218032119712907413496850096701729796443082252237082231652888130965490701321409963969493615254774428860504352262330060723324912414940463936127447857616884614696581902607323521897435532062074593297184103359860477471875585904292623929827650561554747433133193978916507842119130841163554818322838576497085655521832246272504695126667600639760227136401452779005290574446834988809643495436152549950392503435494136242894299357091062704375124467782119340234201315866040121889621641735355450525829442724036943096067401348456302202230110970698258943332385163814907704761382436192755882911444218508602171043890293890402029432476515732843186198100057047210807418915626910415235161616624772984329636597713404626805657390544879288795898236681671716976297590188762898407320691139382180719321693965291003671831820115793677150833797420996359929963143575101408451698357923984090129614497713568474000505489230872441175885558968761315247150694274104678574316030349987777548289710819357619112372162600872626232266457074499607549150556946545472912438856794819961584315687086141227419958615807151399985737838353924553696814537139588095952711507677376038161092077783503687519823871590709961696511051685400068954059847077500600324212273480144428856228154542020948812543873739854012605545481134628128043431212736082741581390068097850711087184591502637527274892091857470054942981401212103799964110216128713823353731497298204588630222474380945132573549310509571234849084960685476824183404736008724274146005185391362495004750684205270979770633844492039769113919204032951773561138349215622484657715333370203875258635718224626516315448640102221120262580949077454557023094108134675038818855310655074961966161125214030675059893268020849712535405818546417963905140329591179374943056113333001453554022628756860463598481666617549732173852177609755767523111225929038336325300076570884394587421622488872389866957122122909699250014303892195081775684226223660559547700150377735211904667471326099708344899968732007176694092566987076872331182884198544918889374764162145434827701853076315137722342125706036849712840961775493811101392295195457689128446288786793071910617735161724230144745132352494023265308885792989490077954529393334835872998687618862571148364348579828773250873703987347941949122110817154219677717085882513245625444296844598892039661927880517945663285789456661557449774933050247474783264869898426076499276684285438019458725569239412873229242406831007199846617650116670051250075664787339507902278774508585845195020400217005778312146272122989009987065985615013420792308234147064440077470542723067622929903224595301824102724301694916771152746727882287390600378015005209388206355327256939576997284422312381236885643848373033812394678704991497333930866311301415269888803334067104308234855841472412032413682351401428457507634760110072359957231099512356681103406070937009111214043225174426544982109673271784504923815719618603399150143571595270700540615254354556994035113735548429251017197812593339566112743566656047934389949928387502521297087379982949828199807911276323583211543342918666659490591717472845941170354055898344788924449776116976860810795793059269050237104686578742080344409111331880375057400116214893271870491282770834605175667558988767501621671893310038181858149735180931877295533352038616607827562793258963520741460829475508779570805971002226273096579800367441561856069004342921761445376985536220161143712065938939403424725260919101559469728880928906655389885386736184722795772298854667445746821452796132192126136613786168713197024496966182138769989070089696735588678068303252020601939612115603186156457841506440766170737810660766403793487207070879512886973969595137555412830006087938446673657415626111041997635865186037678273723198372876448061211041556329173901916966182768869873907044027909527405729230454216075901211082646768882928263002261857387736951474856439789538441171014112575034956571057102506347514365653462522894349553346327772991010698939431755000671878415927247694499408408905799113628822781011729353508738666802640358227374252997530397244876045378564108938343502276157729487075255610110491385495416874469212073060025908578639645200580804635835511223320215922563054724248772975317594808944243252901617298168835965727685998892454208006048190736444036717971161919452001915617091029475655900255111592256469228670895619519996368578874213650984188536236651787531008534590056872557526965459497933411686338324755765050945987125704781905935748179042659349129481113140982078639139863807269936419966262455846565048223013708964374628035730697077919137452395835882513499781681214993827888446503729133464293010007528135681227938295966853900735958927755845202493251661538669188632657266853174270309575872474286594745527663767271560524727248684237022092706034412549656354101630078036642140071574989038062550727252723343082171318081543972098481183691726746731547370951552240205715586686481267839431972210296509573961203461772325303832852327331046666101920913328863830294943542531676628131517466632686677152875360730426512938317500096566778445252915573224613372561989992621458160687067039559871639576606320913460876358138587979068482600479009348950179316436059437122936053284810048860207309914158235522556481350726381097020481693909233442135650790420562821721325239967448514368649886910553403016915572385660581613945482451121312771062098873666569303158085776394515316071742287306282966840907917150845283884038517189112049778650722425374062450548923622154022469226638672881067210303457567229810052521152575912363864879100375452424627667377188886477381552993481681246809567966851520457416775493046180685768678003784179369708115305089526760343796630480509799085432427067090808691755684426861434928583830526682846239611124038445527261082889693211873439441248177624654927078227912071168140499554647489804401298297826904084376408312861299859063543635116885077846079716295620042806626564357900473249158907877334248404599693174487338485134978963543684795842040234766885668584624211627971920260353114980172664797002312958448449436181024206216239189394098906688618313775847741784201492836949946002014366513634959247400428134459441673894936644482667820345337431526180722248301763579055015904967039040812658564378215465029282036367292426612631799718472138639917203574743688516114918170106120607985854821005270037060556909446839460853205843069706843968671283128964651650311755427729170335367801480719680203687454716413443920676467321261922217799442227299263303248288682355102859834286628836156662691877859042427709893293559091378440569445361219469059576036062058309848686924423495402192354298979869187431308684300207532953484424112992054531975514221238675350917425123715735058170479505169912941625012086447769189538028854965809325971049988041806698264083030803279327601734266761468686992504284058049734488886860305503712636636693270104984308137959703442839618357254001043064604640474285693806875966165697240164070236191072952118141769152837700844243683051226859149240993220039001227641815061492669784102168702083516135520758222790768410801337178725146286045303226140258279933167156853276338389908714614382224642781891429032203380547128140574016772494446601223255830857080561982257137780504522446516601934699328114435704172538312274564105903305072071682605714444631817174389960530371606098931017564217036279193796620975925901828242175108263773589425135406336403076502508027223545224821864946397106036435508803153887090124474278064347717884996716977290668642537300473743109282171382213356679498786021968668074496242186993134275664996958175142349641480335222521385811849366932022891748856152791067363971729329678231403976631459229684189593739089759535866216621084596098466493708365865616799897874521962861827734606343752531983019244749244083277666064575007975883589767195163249027675061020915415700814019306958178606101687145659359169513438356028329885638541608410390531779323592591113159669026186604559329318220598095776944671807890276507899325478731687299412402525163475975154952481900211465863491678094204408859057173578723279859103957826639733247391151033291989052854922465270852791441946417140923645071232260641499846298622283720317363861993096542148506432313781721378532847397363642758370489713733551362133416435799786115150891831150471800559108895142788433422546082570438599312161344246742177116304613912665395182072822448460938676613160458419335025663456957536628834172969256075217825294356503946354827262479707054954605135356206311724786829119610873411308408220006726275868361336125073196147636380249238929302935804926304090466055817625639874062087126626195062317203774094875018915946041134957395412707883398246843958374825391754126911903458050123495391108948475075768125143364418993637209761128253044852614274894043254930000886672768449472030090158943773012766255778746264464417820141761869167552839633255871584927742529472788591829730716436245727428903942252043536773055884725649639604104151399702409986238456408378949513021743474116538973190994112255682730768336967593872903481500721761381902634291314768761553044260655126524671507073117371338513393983099370609988211292992760398808822527835108041814823562341152449953057863019363117463625185574944153319498549757003229957182072298736762675697769122369507665153598055750836211967330823072301432760244433733274125270373150011547083180759108119739869314379161536124005838038266369260859924754183452536020588700732159058859936989697916858259702057389224836747749269011547877398384883877052986690172012891482999978952367315950154777926811652864365552575538614298876477635712995240019480610196622289341883338842794299514169881172006704102969363380081966298634591893348026685349024145922572438508408724310916433173700810811512114594853794491234386554618813857831404146230838480207548512266960156877226898121873651119643334837149442245972878898201988575269807956895667850990121182278896130011522451774097417810909862021611305945580196035358298981139910610054169133913388154588246265568134341080446992178171105522421796175068832369809146056560403891710920730062579779100628205510428534200555778214377727806947234903396862471414358817030193577338269094381752991116139857038882717667098014023401269281157145118736496891276904636026657633181084320551395922353316385223183528161218582050991121150099503373905803384430232623861939563102301507890996544478351589642062120028878218726863654174370072680093672851283053677291679377858356580715674536249600729660070742203216093883152482593274248261348653824263807104808928316296194258526029689791084809603525605332169148395676208235821018028510963469321533743048146604661412162997299694644864264132558496796500255533769219968500839291945666563900357727028322233410383822327901644548546187763597139214393722401880007897488644899372932684651872944472501478918279876375929490555272824512535062512355768817921265143283426647910503573347362948047360518037818687774297774438810943647965910136848572663267672290078791609772527753434051304707677509053170006686874086186535544940474267981926778761932993710089392367282573394246623001972326087024082471395429760767641306677907367343008535220628939480279405240188473170652935426887807434479899269258732648637525755288158230957359396039829239921813569218553910787606813491141866383405576851866122549517018882571918384663188854281450718652269596777197255926574542036132200901579138460075605597962527146227482430613248142848474824349647372437720112747105766350758757230307307065490660855826959750205233910978114391038423697143944528262942917029274163007351808249239552081417798470569372907470941175452161269904037780039683802671671829273865381893737228366105302315736989944124655846939834793278658108884125630898277579385537423309904572553644075091389152621845589344516574146470009569355452869620244488792035222245343744049878589145187521880993864979658762314734406404204511293884985753068087145645759027624142364966175516734434753825973363236208328706489424419884888699137657458419027631145653575855268044761395734472372848213122579474106103082982015992352815892596380568451263727160204858017882869873384422801220627087271021820372343020864458290502690217054739974841768525272802379687286227314543198360154702085653462989106232670933641030918968076975822622595969904984483726595681849518938789000068637940115586452861211371070029799026200052815816174221206097147940733691596626390878923663537927532458260716639485869029011622599286753305591515576625416146037439770480181583763020653049948919591345824749592782898405170362145395012058744048285920322183748375985217691432367968794499295363387997119229762832504245033103423487628919932461805039137029074673326046756859794664060160359564428018351977425144078774841843629127766955090978116344194579223988134000182449528716912528095449299960306236046950525373208658715645863688041543075452915843136229924151787933095632363256999567334547305955648721599470723175651909683157234127951847747737130369528274374962920665183462503331379128752358958556444540430577624687624605722951301154125427979426530299330077385801214754564168836636144634808221592110177371757821073954215885125806529777372313668057222597418806433563280514216746925739468221620742276732209353363539556254716831149451357598191314847304682097073486225076671452461926024585467593391950436047944351208315794150380126601497094308484433224080558590098813874009292266146470062788537125116260702654629823270865314075460552915829554171036432111326178338393544139032805336007535894468344272365264200835261033891088599674009159846479244226070470626775912358151520202267254401069369535885309857880139522785670201966155699364877458365843598115209507551592654842737374288292802276224485942462846657803591932130912661914290780564621903383803663912233731350543796566945022126685402816922708427894719447389878308235044598371275089329663867918154421516329525597299265886644724699406633462170078542393289684072940158002405527290776128060485092221177551861507340299029093664496957548194277261002935397776979520562521844235161997037975689225182501151480010509481938867306609882427383192041381123414928097846592034064208822771484832428120355982398555914277368865568524259522814243347107195480964698737112575968329235570388017471123321130526607596926089305220043251867643101939126154370243035374592488454535004009657422060443066070483743625404360058164009072567297627938894962596866715824341700380712765154093193110748991377149270324414215324884290560432010584225121124923803698437828083658247501649528419559444020368048944856345670472560349353074344495874571420483794943238031428515504153831519329318129985076605907481074424941560453797231511504906163713529026464137679331221073910823067786322573945692032724343014555060119844272753218250607476071264154276051345138320024221994731563431877561567323548681418006724517671797052160442262039653307395730566557895290563634561808879977454621596062153365077444820692760896663781248597716050756262826444223036517520438539106283905002831377934680589715598827218128034916202758545454046056121036657266205522178422909951039290454245284025977503644070954968911234437063118031353326810008456848843508853058099739487856495074201411962476883582590921984888016942160174725650690161434324677407481577230673274174770383533873706700262907028330208701707223474157193926213722010902144785629329163683378243867412692337821207464675560144648951852871680113160673930871867018330988099983969859001658273712068252439839022138350843207876165216467844630491617384221346147040699322773745114034308623228153779624698481304211619081553982742657478147214614073734316473940405893846081375950585643372956301810214974605830100919835395312687741469946205203206804926157333094650770388079405429372591940887482418391890938206896085655689480854063422332471495439386199431159417607450187043796891762969712537237914877400394597092692342608329753611209440462423472880998277718774832310325544796547902888414684397021983216214582477677607157852158906986218563318917794315143589297367734228455133117156849784329256318287611323274052096474471276243676062541036225137226650444107966109390688746183383389475952503345910652794819935216861701814453815186751323072544267612937964377322392446322554116567808013500138889279811948889200146416048182107409512089533798366541799064010075766065529671285278410099891196326300867018567058560464574546862205913480296917381323601535123337586346103861687643128000841836943594193363077655495606283728660416933700820435609760346219227374835143746605574156273734635597797107787839233119015805679750862540413507637709507968532771863027819888281662379728027069899335149578440061103879265847725561350976652675963629460205846427542057044638871168262292880143593486246329317081036767687379485018899563963236835501080533499392576215399125090372190694757510376987488438186663762750787199431422506334627613845469144459918896268221546263474377771269062535713697964887747882537998166988869757564141078733773521433475620487426912108880682574477476559711587987485655129714615850266198227500704835547737869261078956552585716349782257758464056741709443470862042139819397388700083077514261230260698895740932077267471355203327434315649343176419379847611338041595617603828232430524938160522949186179459996721052286075725396207113972418332691682837211734851030971114491425990970331448240276190457375773944735673560235815374710961627555670597264304006246173291718970090896119503611206632846387614115276066487449687256082334498348339111965865610290526242406789124497171994012211724930871300462755368933859089574592042372513805885457937554979223907214252844458995096820928304575972441338593904409346591199898830939637098536521722166330155553543954360091460765685715479446956094850696432798009465910589535331246036871976108032298073967687183969673329675451360378124960820663063204936907700818470179652967958394447960691891894911697474408236718187617028692040674348307934733604188101280424105012609325243417166217004457832989153595710275673800888186532467758955916875757272969396174981771758225334153794944128294252780592163128600549505943217725583009005921427917950654428843016535495939770885072088068296027546313948946996595811293146855631560267994292505938655188826685913809528530054331111229596974315559399064395305400935516974725018013596808835172135238063575664154282738344995431879534010581807197267548202096662063469992175113553945319959639330604412601036600319711524077260535071950093548673227322425592722672450889705736803786795926100893697833913419988907131702472866652864266906672535459328118714856731743560344669370946325504296907878966690889841369553360340279627667605823109195419579911391352060049985160936319366510144691466575391375299984115813914194161237251842986723613639669781601787120574483815876683368909192079337765352205957736764888344116328699332181607990426225252863137174739774894153555239994060279844448041008520082329661512237826270658595484536086516502362639955429869985134207743626448151439801941143338417814329936449047154548860289528389124361253074816158305392159331132994048038432201853057312669762591701200291198430075324512096175546009647978068691271478309717766467001084055160320640562002291582040386273180270326317562492831246944308557793461193010655597759617483809630057271039260362082166616013533377208423846223573439991264559529620684003597428027475770984185049018122984109097569248495359324229730832350672795562237869856305199600831457496615286159677129515147400592935113182155698191570967395551909352120535535856335580371699624149843606726783358267052160479948475021080045415338932827758822230002847974568957383540182025086920560977161849452757798456794714840801411228110189866378243239402272509479532270950783260002586465338146100773528633276495659008337649942672719224850427185869298520091565642752679956748146224776945207650135689383397596952925222706220866356144112802415959525970589725091794973151510104905228089287829054888149615923997280797768745341346345661480126734660308350750847042485288281427587688175731971229738296926180091026317081255670903340452069894373649522734891965233709900660839189918216904830255045523736187733936838668137326355631602890602437928373924457071550596972359239807200469465402968736514507170832545615227772131896636880179389355294457350967793099816508887765848255048966573395057673900347464262000314476465086565830649672175607424358890911654876471814736810923502606291341009499015056301475433730595907660502252499791617922535867013515114381647383654343105958572411994433298679840358705072691378057209758931566783972824342693672227966691614810852556811517305944679418986716343354383610868502772336023381716418287205980428006454349202364267403427351421372199781382985918077514530492990507253144723761875421625045613485983235803797365933716401927358011318355436278366146434243812149811486518809336812831229784613772260406343327411973853259043492012223011476700299314222053416060886667546055466691092494838803654302807479336532226843374071800640953314210163250490377435011140610857204315569951659502509591133180871355092324467443298987543385710789307545097010624292952044719321974923972996994791657630808522917571402443219309483681104639475890055031382241733863892219710419633655522923171847365375774531236959433520616714931509701455200676040109898145599459571675116892143262743447746604866386737163511911193188338633926564646699741934261829335563910487562530263010623540681141598688382865477379638963840582820360487904703867366573417940405902566070195999133861961664510383486023950244548550592922303742890372938490187467181495956811127510093527354728709341205542764193937575561475970204254922058740957649522947951202156163532758996279027554558996444160181735010532673430015522318748984202170456045470921822566415499587897743833131324029247566732775668237143398988702850868441167961162392717359769011585943398098973609893906588111272954191106481548485489885130378248739508380184817412273585255307990121911561362137634753535398009848649206683284732068783731566823177156900352348111044272310169190810325268605903793266136696567621090123075255401006080323250891374401749899692205051566146202025334471058744428546231973047343034247744997805970037001894672152437886135118630540489457061771316082232795668209892555450380777276354009625136691532571019321534004249458627055474342147381739816948698901943627170895226563136700574124098039764242076506083838883530462206319288023662998492180515479070500243873426855317616460101496176275746208690012646236786657657869004115625839871952237469999801995188375783110257247643052490319144785593833678098874715283841339532277816199608855019549724436386984281925114087551061087332144664945895747559416776623383431425409625900146733949873947651220082916462085833874488876797607711800041794727529340400983120586538045283662564601555304882279808422057067458742728305837323377961497265816400302857531562903090359524163020011307155197385056095431753598966999959920600407343773577833457704787953661698354910734009535238089119579425457396952219910859363132040691362041754493572307034166925219851013682503647269029893619959753156022771270221015796188835721175282749599075605075849819876024438986148119731037994898830473908826296002922926684366268478043706973077980597764105242438191558182282801142624136241342727428816734772242201528286019306684930594932271546353185927157138706482179930023257014157723822844197843155000742438358484212646289020886976795425592774804104232526722504469630777731228341794527223567040100777107587677000812756359809020113295477692319628278094152196126453543272286322623089878853020148974278024044791736760536768757521177786583015066800413610214458714676215287652826053025164901045463866638015651602910221708374360164347691499311228749586627370354140019474039203745886337350533993237527649883366651999637113303655951777088334183688496579852900236030783004490883289222319432127522170343773846086025872960224676099149793997035843728527874764937215833615662001317992561200032689317459558789597676015192695934121438565103058323425376291220323074571533247769918650559983101804154905087540164623368997603439189914380526586862478462323376288552457528786936309257333071804308746875686459018882775104281115213978644805390367655811745183950445013255129927934484990397726945623015500582817840631503086768442268462869576472227372628327841250837140205019579531599842867485053006917686185501471344130673548501598420134493464843517858920519671033320668572424073348741483990934118776521426010276922582730984428765999401622564802670672102875839196471175702503573743935260783841820070726449022417163910248120364066173524691793115615210100030109015966603559122502871827366316522069190971317064311080312814506782041601626031775274236895757533774421648940600591874834508312733385218675941276808414836160412304068474196703608561831250764137422450298987534213842875437799455806835226802556186981356624425535143791220822685506732295470704941476767552854223787237465105692277991889091900133172829531794527003323050127735071719108091227160175798672040342348345307794625463853327001112362693094037763158085106858303880270243077265702472555035413217334485235486027770014508714624759502095307929493685882419552652577979249212127968138468254153640375254769557945603585725935936155108739093354777140099580518980794949671491300676452470403750560997880174788556113511082214152962879888714672519195629863984614019082985642940571488931756119869121023106862038590292206880295294292952304022464550721071910030697215384746419325084085744848571912455664197452334136493001991449959558720603528727694515703935281557311967164885632682390635731305800638394742363781350497709368127612956966249189902863027337331955145095694553421550047754951037846553882949103257528527038404056139567707332448742465064328234877120694881747083121077171441369380710957728640710079522225969261867957009331345244647346697708968494881026205221478285342960999490064061312339563640690035428495670077713979756437696311606697776591519275527854541187944474718645345861571601467025403526420525197614379803509251348332964815242867537214024722887966030463960626786241854424275583585549294977459803715671750848114977986699655894243826123877954981741744366519393453053734578162698681778421433757923943949167380219378848218842374580410714650704993663055261067668933160905165175937289191219967502725995503897991517699852381709066128526627188756048637003637310995879539324737695469989473784034850366805545695665095230724658935867122897988105264634111711467678669024616238263481906944685138038258307485076382746721145634019447292015006082529728234000355261232132327653389106661216379919461689684290111480391039350349119740347078990727873351928708613425783058623711188916180909489964541345106569778143236739496945150395618705247225341981333602962385109944310259717381224430212680254039101625202673576376061781697476951388088533073727882780467392307074158033192705443437749233470123420693056245001850701835510267633038707108619420966655119930677566832585262364649919580416694620813723022421844878257257262737962668579543553909289627412275027769468375726580691560376494654420285245515462176180373781367248339644462761220108809399059810925984861721082551608199967176161596588090777896069583147610054621925102132937516127843413573146752100335936344323168156403626348698735962356141319769247411555726247631604070288682854669723358739060179288695646318903493542925964123916318701486265757138187678812618596982574180634656774458754841271170674898951822953418127401941709623245524013858032886063242981310747416541882349742958173173993026847279251997345987138997192349628765061152988271334453178762615716468033093476187517617367407902839273317221680800162066035283804822064557410743234023209040281229460404474385907979799366344448989419356223418108394150262023875393818533752024176412955121727469324074019080439571737538859107986884485345650548983650209559859677855500448010910972589897158736614106977268261350174733265436325324273015050858598706495882463233086079179227434938404201180347387498984655089625148899680599529774901266098529497656430818341489097222775057104888563965071978905417011049476010135973605213882432748799488942599442796625067921987167785402163868364696604599444823493620306120283162494251560740750942879476998992158103217141745825656908367497007541823814545042276958715039062911008653768575602655972310294842885390369385816270369478392563354963110046103631019679991118390028675199088065562238829294081483686859463613543101932605356973538608400426380194067081050552440955989721429479452284876036200712688127950094564867226188044643513434939481898547703155477515415196787387843998564279053575598455533314036650003951806574854615110720688548418169718334487516073986787275935424251274490190727626994389755095920993801874316538377598209440581196147704244379269801795746009985543760065966610506312732213332194457060247043256725283170538259903211984377021077080382096100515455245562419594031349224340699660559145918971713353108529126730170638658032299049072238715631826815569276573482834444400820297961572874921868785687112301934839196397294569203154257576831631842241508594025148668524262218675419244448636604471397065223879873982516685173795674587319693861790834475913299742136010944493815147999481763148431177845906939353142948631184541197773146916476576813635469161631304431806167634173661123418569938814159817395071283503459849263108002377629749925590374885110108124322350772787176567636761533139309429167923013052485749308027031073331787256927157508070071023094800409644933271374741567912947027310811097287602732434823910814005300073161756331802183487166953468772765467433362407859060281690846173590588024391733225406506375267430454793049821340136964254802994603034500012180804893217955217965352713090115020798042325310685723342399194281584833099113585663121532910373661922643098222267453897958314459669494827376828527017247015934306261634364174268849803821995278890556749469854149726323967995590774652593264825097323539496534735351662473210945647455868665038324212464969536053394473430626603311920108945647571249607466386181609427556936079253725881276982322652299077168891055049889958410967284823314542602600590243899579592943582164096169285810396067674481317273305140101399308065883642334701295987904107120442493438473219567257009020277740866575354303208694293733799657086815698717391788465131615670112862412136029569139756301738508064050589874239491647854264177338153252051999929871055531966022047450551071475783512785401065857323904209259296932355870882375217777195004230811733328378380286362161278402555701002071772938939030010970000364759727397955704619464778953793136573641063197378528425212599231631773649352102032015613263887956271028813326893477296661924464160080678910286054616890497742665192805035797863270679289079460497094107812591750667369458925418178139127271107058750944898133782704731264640708740099623207965510583157289533311533268769530675635208223668011747812408065724043440607945200231919610195235559178980389636699649845339922324392410601051626729607766129636433194698546447454719709861897520558314202784379136717907437694625956714370682910405439274781147941393554499558722416485555488862904920422235409759675560077087618511763084286082044367822321775484697229416578401213658495511528373739111784219001009287014413038428811767357276854317023591079298547198887367116949254291006065925137734100957640542276209461371558353176753294361469083540400959585183590708157109949208301877178267275164900357552729047846356103201752340411520690906531307707583556636786228219094300289109594176724662415459799645512768129555742295902535066708792036794380832653869579643151807569285066286419021801292851855499265230353194248489359807107916968630454152070482816856313594546950088439981537728174414034774648923627709902831687688502117612495758011057831358597016387576659475892322030514076694930620193480096406045732025413768927439144074193638477611062927807634781003278979568851564252291899659437106045340978312168443742548239847480980232163032431287669622757085990631062177930719072091387517407730411974647695368244268136152159523034716177202355257626526166071232569056943601844160842837961690667924985280442093166665888312573432464660423756019317064430941156315426283649969217173255209513098062420709906055583517126936100690665547038148060547664861211267617526182496581836862106926318160428201995399867448520131295008753732988027597698968059929994860068467671025131101177585163373416952860857645909228372351870077469364400663574232014116516819391149136080390475124200236213077279411667388543412630280210947646937715403764311774655984199064419151557779910489768263123579799553574869891786872850534096283301300255925751485514342090010297338810886617528456784619137455111869047898117266327316054159820631200495067628861498086127782352015963995722441423400616508146455274342246605485597232986143046942155949659234787746338973353599617626345360760717488702596088812717257782484197826666720907316515256823005377113751917709394913871369601237083024099962449944508680439763715296897096613233973510854965560870061624403305401462258421332192831270613629820740908630231769556403068040938625030008918108564612619298804942959222731695111257025158129152439460936450483030232661292372517470996354594969686644279800156151586818655871677949593806862235832551034153755776219729310180911773879072954965855350756081721378955454744621188861829005086164682307212352522619398799283517359286766071700338348262146408885944171784399410200014481921950879372350356922918096567742382004136014483358600672221992899416423973486165467353979227856840859142148177390704086530176694046958545546983793943494436116116983335349788270035819366662636048592500126563747782504646096309330847649515918495551989158162457032828349348385224298623101555043852160720502863960983262918755113037001484259026521381181474410801315642473745773631624699638894311117523684295865679100121512186596683083144106892925422466779641512137750006264901978955710226046365753732671727550955126515711153914813100326748202020572964919417224644733676510081246222466620871382006305005664681781477119226123353703301573266835892004538608205767346203853674874284767329117648829017679450922028354315407751273133226082464942390180938483982449675618339286681064411964955163787789378432813759851036668897716850695658603129060717501655121869449731600207157833596608334751574275718046691604992705241537526687411991716332077795759213295212890806884124528201379044578422759449717666678940959566428961477463536161190758231019265349777827318418695407255129853141292780659600635382555182169475702830730022877676523222031644236238028106037658164285892326269712230335685777478541947596398257747254515726505363375222586642449029540044109977845598435145518663927962742595591802354554816224320507238449988648155656233613976039760188442254339792615431278765652001127698286290917431657559551957206146853901401095283524519205958775923419491183006148044180523864602989783024900820857382198904828317628659984656376814249610870963723634623562804482966307032630411615391818640325241406973330174442965295471930751641421832398017748016353842982138576440674103565322488898157482126776221529100097515914572332867181704367385804709734195736770751224851852858225872617061211617058610153105518915466877789151900819837058353675411324087101843003809883370393074057120541104477475651015802911806863912757545630271465938097068620568703480523151269039068950634888983932258327258548242268126258077486643551846014425120064607282328094777597058272640605793992621651845057987592742481590968134300534622739083157164914531374087137662861718072378131943307743262745491357442105245016302385214252679850502974054568304735059404558989477765142710439227872158857465187014048016300645275389782145441776997469780078084311662041288638042844772623114082534951425807193693503029510742715161891318572527617406755806702189965446928308219070124108681559260729854643742687977002144745667763277810188735541342311044610968360883937663577655818498822189662186542815074226705529309987786677101830356085942091206953417881180851375452920160389694866319075401750509267672198288536621281379906879700481704762588927254815206403656690345520869432336935769312009397723346498252425506239526682793345772830509529378348110563054327488065784646363706019015337729594796820982643790677725156242901258093722086731469096849837143666984059446996729845635269165237115744887479918637088310828306345148351281038696333813187065244479107017882827117753235463756599505370524111844629476985085145829325858206659849114172138043774953312124960467040690630747387487020591840504451209331666422803858268977208772433883834302974422305201123838194181856480162601352502953765866209621797666747425640131905745306479642503311247879555776646178954637340406099883328427030019112687473108131702434096757046227814735599387662234966659659041072594443094315002667016360682619710454711863144606141024840970378827789971200566304634011151731482413123726714769070644925359517352711670206816618207619696945051491362674816961173047897030132824962404284023243125738908375053169612948266973854240105432627042533720766798943111022810064443096942425316334372705072698913574533076489705756688561138289562808633266666025791457443549981694469850334305422191694663128305735348326195371394096468020583235022899393094875951426340542395763078846775869587680536290471382714343239513938818009795423784727899230789158233048290058025017313387930032102213293957671176624019623062725891936141753512860139285854964874086989001203162138090299597705550575060827010647003589528009837634195178807170473222036437529504615604142907316031085027762098501192167299363550178554298580908756929981895670652112603926261915619791869800692875030185552582665121946909239932393700162971000213958805576472444660918056009141652079101936177143283059571408412886640584674896868736248547127897493434500149858300122318036158275705095491070399846942421092215942730012874568353962327888893135024995308522451975007412333060744173260356920487062010939298612485221661680982049129342232084445742153946886425900032467262504800010077940236162456485049890578368974280738606956103454352856201064812969513491090763764160236632359942073295802239306143877172199245225663591764367216760322747046183970873601897693914386142308801336384239124697879745100879005179790461288339490739192687103796489718883067503269690659696456100600521785977903806678307096143031823182500076820493188760207802924142353051275894762425927375599170119089353615171977519743391801505036477035264349761963754434830125081593221039002410521610883356589583274393601313283855736972887453959287003993131609474222245659811011865447871535623832624187268984015579587144368118065801083780428898357754038516647334724824226758595295740508130182079623340878161674269471084082377601650773435589901816259822564818318128667162007287714066768619356672002304675270082942531714828501722044581386717251418942121646251067303798214529467799216507178613515707142782208260258203031322789995510227320193495872218907553867955628282334540253572173346775102218281489430315182641463490911962774263946317459132197576033757898026101672442284362746417671994502304233458125561211213656561584844487689242882309042171904082076479978027880275881421893398824754936161723477555107932830406856853845205835864552279569544175753657990923250649674291737879180515890321085370618046201296250682903326195680835957173260742617137937187811929041795226161396296972171581056858401417048559308715776410422674743993806439804496102186247802101230825826535634096563222995177028598113597520777516530567624867413752152285483273330947128719243777269294762691940360041417969170031444515083449337194618203681934842784564091479740072819553943112371726837882627423508556410882388291466429366891976105592181818454820840042825414699159676040416558803876201055962410231293814146267898066860710698397477825443197589549485466041827510117481302770202274552303351992077726903024644710449633366028302349885887487755997966714496197669002758596167359240979266631644121069252897463071095636704794994852989162940430837680092668684011088365743571530093480112575492095688619010714814779515718877514488336377497289768762604796279179841870369820360434563925734950517561938591907570229642076338658456763685741379705177291438760309380815451412167979093340110888157221276782232468468009541167499876007827435452141444317856800004560309854556118104544665732971386428874041869256676154091799740178114295090963625785676766593971275409204807912844536169894824134411898133510739091882875005108379956067571936381674432222005693416627235705361855544823481328655542281191969490754262195937247811470181411496576309904499505756273450413942101006119843380099377644167028657619785794139388465104433168243894726492169831979364250207117618089668790480731656196568060473864428713959500752852260635234856965544602076957580488855073820818293072241463101210459089015429511437654575707772264996018986785284262677216397638034051420496276775510470671001044024577986705342994647447842887264780600977326652894088509165931069261115878479609599929896120445267110683764436433196266645450612216751376873183424768699885122162786494465187748873779414515061593249397393098225261955774955816965664157710920440415059624563405009302902213989275370589084998911043829993842371498356862015954569218827718578171948346824139326721378926491573471555575221831722582707665711186163257637861707900713477723055879696482277585745594606217080102567505538352312628069765365174914968514524508958596439394994997586071403387686036730515963774305234011129304978893851327906740250916192724887371475460043128550998598580793627810465926789929976624127904346270161486515006029408447220919790192311736582542852632045260795356499603530910693627833250848631706155393172752244453076682117760834776785361905579212831153685847184716025628801121444880189303600901508499514467898439943969304626550146803567481136615712658261312365670579353264949771846345274543469867481220967035548430296237736186120785425352923936359778342810755206716764083618270487902889988589169591132702601329109657238480225754916168303020888499848190599267063480887049268688689289363099251153760779593869894494959699590863887665346603213223047654379052234549465474531013921631369038329758981884895066620450596932995639933815358865977950250318938499236030043236262398109573357686938603706382346847849487266673792289253243994113351171190371069911205670603474749135700317801833567209086058674268698845843056568377110074080157196796497756129193254210920704058323489315111178333070368725666643107014703565007890270302714916950051494186953630479276891916097462922476367283012793393149929641523353926116116397151685228825640092455808034768343294630301860339246157046456019630046254909080339319486329301726735648146029150328671724560420958238615383632541134919631983764489335517677674771144852472964644106518480580540268624109182189853609737371643044688656200713445637194327306688760655677468801384171966668832640491075118385075054780453226587157119188311733268882550392439888596790587972657627367176384762022312522111071953326074577971644840054693199109092070331423356232665805250345845580935568249561681380716827413593004246111239382667790386565148015386325543361659012112449429313621322884807085668520241697177473255389713040295403904596007610117697823977551774929861449134319002349070515607968928167039895003051479943435013718278108373115041011111910460061766515476106729597938613088806342619490124247206423638584235353070471008349251922082710555392128572210616667826434565690559835198083199450672549543562062626045197294548975667120235436852986698462205999189213083506935771378582247689495684094577019642516734107512474032228374961350229648746370891114905171975788956191148543033546743440991659123088229442852680859930648722695058508233719906110221135783061114130162452406261316233465789957859057815941401319320441036669451181566520473912988015321041740924088035909087635379215783002977871580732125014860233347000793963656798168904921161765076523933052776684723638460555092680939975649818828790274772185428875507042067871794520855443745453169869822137800475673421665471895373100210259854993951741514963184535127081231921805490616704767057386784888098774665280670063061976597533172226669246738729902835415174918177465798819614739067269897850347317696323318368213390816840339426580482496709629434439292581436832718363178234414200084917785211949066364415798671990154260083131145091869854635131744192694324006201010216606116085590942806661326601172045328925599629103274408826523441135116337737385288888984773004616155463409999039144305636339735360725437827033532574972982770431122261435748446848311969333797230714820068139141742427913179631533800995059557741190141164976406775083734762501201903734425675517961578486110550896679186344409412829541172486267575473042083601791231367527372830314538700177605243249549053697321534636603458875986380615268353243438826377530113119151453122285934910372259078049783859750252701915462369779937325730014262326338378472768702415212799762215490601020162149820569185178485187514463739540087751187178981002414536473269820773766232267795948942481343030645304034535572978826474842401281242204864145339619190845862371724464452805182095277003557467357813222454266630707277814559167676681242948431635003989033559876663408689931781056777316670847154937880458641933673041049950222558420063228687600252647592177968791614878752804342001144116027663888746896158248995070614378089325545671820449750072095733821059176388205166838157658049752128977805607987108315104266349461636695930655554490191896181680898296417468080615052425088329153364495448260643179813268054798454085254316080847554310873279679109913236434094983520009279718141518233243934618572624305475985061622482620056341561112119325031127635442486528843351911501305204461294254465556922346690353016025442664469418992161857952257486215016761650548084359164716175787128834376265141836027598633252783912805555945195676483103741832104153989682410783585976894859185589196296692666372257735434389057706867537509514276107960397385044077066814373631130248498116555817545046772966922957641195641053990784692224386524851297775798048164425990764672347306620224503132462728777597387391279339019359737877118437143274052465083164768266593593709786518070453556223999038119954560789649994381169223996013924593441739528270347750553796832272616796586610434246961675872695741827449855334871548118965042298209505264622582953541100549110780577622814975497279314415710547906807740568799307950062185250229599101147439635497048487458611129164224906809394889944927625615229274090710048168166605317924770619333741651444360947418953698891131216646297277233789777415894470319684688413784131151320259219629133414957646407398410167623018078183546888470811208304053180201826575891031495787954083344071858523289236290942312854178977467960934849275373948391373560274648247247583923024847868813705398196178170782682571055092928806273909324048279451386997285755697061968646626012534823157181290901381044889901627333617420169598685815558747112684262904618967048373190138817031540155537718262213891969008458132452205948535517923268742993793536617055228844425174631237331373416411259223797536991069289782586657337492879354003070129584249950883897344227655849136876907387217905624479576573326604087883468485695613092173398397860576194106127014172542957908626502666537243474575289036105964201522470115792573546626150817323349891012641215429617819239583509352361473174314368616329733450313875475700084145099666297575068611680457376656674705781374742448850704499321429570870284712800428960554868712382153297936819172108053272449882054215696270522876383616228751050873384673027769479090309066593994200791442758409848772857733031670384070893008963768636036392800039774371596850171870838550915729578626024491488678672204049047048692107920625347110177280925926742426167123935819125109398033769070164464605506452277847355398618570763085185290951507044924710028067381913731637952670505120201690520066999396728113464691603140679406456146347602966446000443132480821438702203681045161171646587684936596761152258572684609273263010135148845266590351877306097278969332414510929990192781320873664350759072162035816792939398980171202907832252422376894765090213906169968226249001870535818744934891205058759988433722654434290754432359533830047511635230080646403051043209311730679471257447959454917649217051384679293825503412116971952455011276590885718086038601659011947470797374795076908429462438354965257711153056829642601147994190054145327479035941533898077960733455698968362356759119331877628015847062401085604808655103623126427212493102009610517574530191668278022480011086504743518293258069127277773425596842115161640950716529004447039689778224472411796502125251817502061560501913913131195677538753791271239371544863087535529393258911610598414770953695386563187544972133921545469372938310063196029205992402471670123254489031072676163822962703064917769116869285890795463802018680022253134416040922700891708159691326013782769001536277213258106563970286546081594014489444592877928581276010121927876209072991376481213717389772592924206775783119688799975781478092060356403206535732174049319242016659559614268574917858666296259917988739610715955680434054802830045764954889860175046808377552742846023329999734014650529357912299775837187920089305419986518152780417099122252935454175960277826469162600377025120097534228981297477954384720218642704402180232952839562104440828785583429356892573183596302586217325169740582720589625448826501972342403096573662817597723487687285769121996300276565332031464387225999798027564031400231781571692188481368622608483641305398959711681178913492456394135844855588337715745042699859062127574296738122265702441710031575316320167484844553597404685995167225642038294165496328616388095848527494536919468573833742215982766782320837589088504531396410873071442683127178577928254094546478227359562809429184721414733208032319156023991110161750230892331144913189841371162398585745900977422793592947200299572176127509844695501061777585415038751748207866269034363078702263486873647430507789871431057352204276964675723383513260707161427770277232395949095056325161109195417213727194595804407112932301255241017534117878412580309368822896620689103698724108706526173648124810741000174887581367195587627948971721676697941155748191984574161903460408778095281089429521788988654001979941350586731355949735813497442511218095837107563658629002874100910238843660149264860990279229249773945434380949058328242975184975195118509419302286497548241000648550215672778523741508363409748472253047175011369242172138168158501140044908203296303434160527650090343560474028892614447902283739624358592195377112563745979525933393334993310157556714010121655654363323789130977073318595795751053010975557850606986143332609457630762068912768585467224006117221850998888819206020431057932385668802626604044789333346787554874124203813637408266628285465615847865366689672287776908129980252513965871316573483422468413756087154340047556334741155474092685395780665769363865340028994976560208351708000161425691959136381058853584114475863157770484954541862669632913959469411970966323699544070580405107994609947331148958081909003304239277552197243244483824619370835851732359708282877788991634945822088292536230613437750815976446603333267805075592537264077832769390010795008707312419548889140904350315779886496319486738912894864727651496476431169214655585594333123499707699437800527627379555945574159433941693651806805859951975456275744295958513246023138528325319414546141114841507864290344720680952647252634415585779546977139993224334545667133083737483053812567677431388073020424980780282368553810106561885007169213858031497823849910444351288991764336329061565789754704851484717485509886802627817951889068697906750092418488417799396438907196357145581944870538215354598124137968632195024131671022544990983608821594678473849113679730395785750361672455669163198515383361190666694970061365564572431768540317833684735788183517640802971650035059969597694205806334132886850399323631869677673654505643690680566841694387679897766012075873800675268304762478021496481093486173580977610253358299497974804877505072475382601755212618051610121867318901376681626693582473044159500845713649322945057612834969063011760453038312083681052878695621747683161628183329961230060061123330669153812661987801672200347470893468618574692601892861244209982215559179481006701192507984786329489044644681042617273076688250792962158116739236804840012884901646788196375105627173840017879018594738893379660362970258738741173069452472146678402141840128902040902886767178014711541798454865801919188116709559721866299359993609566739339173762892988721774206211781908327798584693340909923036662093079454248086726815210948388614673189365130287092599019663213780416518371243694516706015680487186792960862826347189042535281603696975415091911500868155430098289510373022404940529681302244503619588283209792262309882392968916782943110796520339195676798561210720814115784739380720320003130606324950845059320615389003105178264580671880733187169893629264895751270330901989008502103359286632103123265974996344703658375022007538029476693622142125997907930491991452896581008784040958336300663704409791460228749464545259119997036040241521046023409029760481290488691580930929430509139951638839846929541334696789689753973745297377493071570852729850248240268556090853313123372289063497814482741292772553043639053081245192574773833521564939895007192658854396389940183339503013097937161590598864014712902013902922547337667906108654535445959228190448194388962919098472364075542336263583938590050689124278936500755324336537721197151826338276972306198501468840176164286456128044473722050090480037432576257380621263023851781688449201930819262657442837368089906682195539664172338868494651723209894731142458951070896983921497539040070575671343067911461835949298651900759837734892942673879358959044161198148878508136951601264829844654966844437076193804837022621737710835499367270088561979252196275950618789570587466166718169040153342828871215421600254566824842703428137808492673528510121659179691912090959783851710380218675222341665920835118951918260710345478905744222720743308329035486196845624624885287536764172367813919037948553879322375508252445412923369173368397716197500043297236845540273958774836989454757049172734067711968783011791878039568548925578483679373818127392008473005237237604244063084965707527370503624136157230188806571948110043103012144009220579678345437058578949760140505473440182549369974588848339525723743785304717051223329189993447560237474044445776249729093132210799064456385920976356339215172427436290498070511844136402076679268108148097407631195584646797216557239026822647671406353619389981643530636242949191100361312367477543762791089352484724340085221847823168517556777409645497678144032485662355941144673431633193757384491996772088039749206729237201055424727989117505634805297919654494054458072572115359397950786555986999884636764983546833713999208433374681473547013725542265870381012487438342813467336571648013234858402570342935485247844986019960200726042484236852093355904325879435172678998128770324810306913124656960758634826462681761395243463344189277137314857423602858557022482295379192597199176393761636165117454069528128081715409988171042985077801123996361417238031249267520748417629494668544626017115714870141629915778271183179961743367601988116131884567645125651339830072390919322450619938035046300801054379584176726959772824858249091194881664977868118658859331129316062280142920688886578371444483896624573180963669186989655674233659950006242423285358814109409480245328417821515197335866835116508639448015007951884152554058276865642747967058651188021895408742812721333796550566732378313419342273772427100517917770905754291580433273801824701642673074158867521880755878838838426031639176846061555251898365340895545947916248825208094043488612413804398292921349219013541488250278605578695532524504230165974509970404508467814993004297067868787757125139522444377810224715909151434628249927631342210775979829330390634022234560363731606293368680830775370864903315847659827190786345601977655999278480871043894936749332580472831491089017872105792387380853006163455582150038571605449868130998057970285095209613508007294546326785450994178843521512309160862239175429451156845511794419761690036395945667276696046467129091642330308658253955669360407975573264407268574748442124746965896505123511502820786502805952103394863668288738070962220373639768631536935390356711363274435731845480951991515192354506384879269185258722976302315829465263036458312105080074635354919597499974048271560710361036078808399249691367559409743953450084942583761829328173005848444258471608480719181471940717703103685836000058410782722123597046366635770715323487665483801697709956366485603643911088129450403020901258228340351252933956549162950827592790901563034426771558905479825607684703717956639517449965296579742336364394680069311743658858800295323401504699535852727208635229971052457283843164564144321107466679106703328393126136293346510687850511488966267084064491496365904475503269168753146897439348705880678570204461764317867376777180882911103485122749871320908084219183502221738048226682464157303647265240587209542211905686691728800795195194310386607397803840827245932907849449184935648982682008321114721202486922567839606697653621867413514069750238224361004276370866704593092923068774257856184670050111610488871261139329633234968965865907535902824483181054389713648846846290022634088366134672233181373055002555161919493407952801235695287029490506060512891891193532204404332685336998120678884562809492460171070518874996735562806533448218022700052940311521094953289751548745726911018343039548961368030148491616361460228489938441507933602829813422017542934134652308920987271882311291552703858887357782607909468458943427105721715502792651948717369220796391996515829275822447266189858624131117978886234332470565122190494372599244778690512074905939888930502323515892558978021699103278561111752391102002693841741580086868332132902526368688255398358886438668985948820633228290909249587254875670074658430917850543290121891474287758469163155669380268562247694193360424954570788626721811814987421659609342373975811449532031461167662025290436863485944980142269768846994227610610158203911259766442616352266950746648042354438067650553449640417092802742033569909558141896083809836429501664675614509166401748559614423517476727553953670840047033624873457930194588747797076446006728104347357717394135205778328151103351564801746787553065574196960896770616779483503453584858993780878650515280630735340540248925451680193108451340055964972928002277039310639185056706752042877775634916146198135878407975711589639848255086351975080286758322359047758627734605889568264590478065184752925930033994893446145836047962804010918035528643008813053132753107260585069019246005216325654450060709663435389989852183815229493351190316441896139401614654084717834455876674811706529790019577658112817766895416072617823560102824200152650165160163171750003572789471136911443966338348347462869291842950433491708962058593136006868758881761221928952116605599660080086508429661650107833166513655909570158176801792934715273858980163946689833527222987522742370470179448871855512579490569907646092106908194195494223926994037013093385379376539332428545518441004634297092762871554415108404429772185574337861920444074170063859723922092425997317537069143462879260460835164968757146747625114232687798124218738592501896872075657014735857274944504131348556569821518292659981981628595115328289812112704577641766321647733735923707216256791609022898786226379989570805464829838966958303951040125561565150543380598823089300296415082036924955723201210841766222420857697071021557629905143855874074837875346497620986887905931637971531144246689963211168321866362714139361326812699565503411610267860314867782811680064247409411881091804810898681051588322813262109176705143370163271926364705808030854676702101381026737429958132139420854614100493784030021042002169675653655327399833642859709001392941327931338987285243119410239937311541581238283818360399582192916351694001547393548355486760150696167717331342904055543438442470890185413708826951864902903622224460690136741793872193883364590435925479479706589508810876382361427460239890904887413881903440037380755595902980967041124045590630023102333938381251780894709440465227479010039635529731395218255272974514892725867660766871590986642870347876775173500926391142079321754060678723279181973205923569217546944431735202708709849963094050684276383495698838234144653189570435525296272438010869079165179601561891519163136224782829545562684951745427403282700579976932226704920962633302722627093274696361062976707306835582839747610986973209504075522225031438175066061932828150410199531047250603962387486569870182795053905439511928717048628389110472339914419496183792786974305543703822377839190612659718787720857334362352926486826970448978580880778084605208669640296378951684995453006801395352328041633288709611788423673723931826397719838808048308758019314836560439187720017982545135838566761840812833263496759476472485854967020558428448989419568404275680239011379677914413883265794269508352095613670947457880398691053842028459067494759733455635242355783311515136853296775078214286400581376077363598118036877679800859204701846687781754739461946012317283010757836051192155934012893763548254735901021695368580104042337323991645847881276321824902679119268514720190232475588525352366380388725528759725134550283091265385026864679147064320359444476736877283354360206602940483840448573546929587772856084305332648574542524522668943617543308304395755416926415827672099005890254454379750213539005466211927909627355957436243742332990616697441372313340161622172616701091296073837188773987771091059143898011449998847480854449911682761842679527477180022415620736557075909929189126585750027198123294713106901436981467400838437834092971648439835821884363639966820880187444633765812302213560461154147691186428009712794933886564044936340654962515820771742306641775521720272652995457785138485770800177467998846001437360029650456973655442489809281330373347713131179618812509638175729607617340338901546128521086875052892152750071100964309706592549163394643052854925809019344634566290153692185657947139562758559743913171016627775377461991375160074736181210228638065464300567506684601850515041178318621825487737669840583204816301218570665477376346092674875404447945004854400410364022659733534376912774262335867638927864233037814183115269906123038141286194346271220009908880563519635589620074638440992841092361830993192161424913609040476486685726766617938400309584330728776985397729626071526412079695797621407096825803905755955160867959650148809351446860605288963942567976971686397126791035652823813156506871152568560432216246280142235317941667771792473917648576974226623642307126080092873426319161623798022691408253049137044142416303010669096834313741120800886543126786572088968648399696877293649304842815123985634953471492099305648231202658115105106242140454167746883779916851983209666201309144163709404753463466591972206029167553081613015596109778746322581974140475876564923496891118808422281352669062123779718281314397674589509788091599719436989986523275166203363607702650056457571579745617266051451513707509248904808635762351107912235965490757452856280947654875808323582556241205953237747255272207342368945181263112460427995832675108070212754476917282034298667982907538379475404587529869205048834157292837481234516891027119271374247071808971033133342930691614515715963226440766630019488475632017254424647999775713053051177934563023423084662233894866816390760198375728871744055975639477916039240181195460979084466803060523276335942389825741485455827175366136206989798796057002494316479495080340463729223003564432613396320552107126939269332005568171472610249362387777501299917303279385735155587038101415483627587448734655843256402902809560279389724146020298623942771074039187109435302176818401950474009393554722784463495235929681856596251373919584695825300853000121334471736571129003357868802618278947685600848068693856682254418803778031057382260266648539833889605805400311497471204782220556494271471991102190861752543764469971901340113225176672391069423170937810553442489931714824603238153070072232272219689339230012743398373262760210668766722625924695892464856665037673450569966361154244462729190834370110073943547256899962059964737205834856535771228375031013821324983758425498911932996224365687513295305297573447859076291675974555880149728627603546107899166356421382971346312688912328500991869844433918681418956959467116537622784813969255813228226101859533804792836360984351536521634147486431989785359538165827530488542197327336827440499261532373276517291685042083306434737536764152523836194233501597739455414400246794509506911798450675655866293574487564579494419290723513685939702018183645143005491048266977258907524702478043593595310668811525279737563309957698309387122578149151225732989657878484415402695650884467419675399483217824280306368787526545008962109038746141725858379834176770757463688618526959139757256843046515778924353211598193227825583336463618883593015733812604491541051831568825286806552406325199467075700453097496527959462616291612168453655464696063576542927133537453605062003402422355647298564474929391011274530264179832868303285914248886640898435666695228085808054733209267737703527006046422721321261442857077312770979950291299243405810176838470481450074383083352966887516545166324603756033891176348678846716199500162520746046225116903772568609885841412710780854381398819575753083833227288005882963762707281315298462446185772568667725973010957812257417338977838267619252503164122076742708090407548874721968888982105229396308761838984239297302481260866824905241417405587434495109915561625187013477992199692160141152765827605573519480809163277125672383683340077273702162400384555488365057613378180337119349976612198519567073714636746370682662181465231321940014519132564075473734804498899315319809597840449800801895004731584142425218115549832484042897724767693943427770124582400340441947248560072750092230734520949122811081820715989807252502375351019836121995422836630597583034064716521606747947683095737217367871109982877070112085283102129279189385528388893336093881157273798641136646582358699731362300601478736492875874766395243540776772762663241910988971737404435678658367358411246991786776774398873121456832306703582919780777262155600302898710139065788544684578971513966051533399303384209000459408691757430942386792941200797937855542154605850930852273789508819361968488740983117830909367915102987695131013075090849739179752595188704545513374949856396065467671401415220376601069299270585509272055339436885286406102637353069378764169851673812586483309695780695044806918779180309012576231917027671756028818589898786991398678497028401835509060171342858701639677728361791351712898616685739332297639685134495064244449098348965057553169405318535697201996485420181383182272185799331331726598406044457783763073148343316930017229802836951596694573727298620776484882938525308258160864043913397118913724473257365190220896357648052923729011792311141409700200750746281875213154438727025813122358426809065614162740322854503584558497683970087384632544031803852035337318750472882153955933215247613071974168613979300846448486396754329335011587548944688884121349765695773297741275826533746006006135425393999287098935197782872628191967572691554472613728416198170050242155278982318012449206897226162362608620348490991899600806031751348846143022394369651333539800726363647001065359567861172326945873428905822466986305397229609320562958781328505151994423125249322100153529982848746950407271599898232845144686279599834381185931233521007859374941994115217075541118017451646167609557944681006999050542225734103326559715035800170231072430599152669571397459209951221800699642977279939385538233602791612703250591472407402835444387375090182290874331654171904180309002549116858905746332260310495280592414876777412450230245812097779543021234539367294439162132065779685630495318179705689241677548911163193972985208676202992947728042834122299564455180234550587118750251072415441954809129761311203856223810687742773767118694790008799587582377980637464402991851925416844155330571956511949256470996469219432720026109138413983317278734472136872816891771842990186594110615326733378648177349903445798543976684602942821601862327712215518592132153157289954181016756129824505357220406758049751875116371741447347278841981737971612929141364784731201014483837058575824649868093587292491667334481334238681425426072798334426173820078299586362398715519493751230873187197319735741020656140431996589220544513688408702760029357860960387356015020776699865269177041752968268287569693622285642429698730356660636795392819530872628966805035344644483597982559014962814173671437667322201802591672859992918669445355184896095255774312740743724715820700372186970755139311916696796324955736851665106688209401643257281892193968485888171380582310557679972241981953899364090423618446438298759262110332055388053942601151274030146384549609567385667021073150540707855202441797165896489483547598318040320048091869238991182770192705954875202282322817726085292724423242064200119979516956507972825324460788143649798500180916846429991082884755168792979791203291692460394464188569707429562810515989622222971673130747317739536259726863377303543853256529630502284132940742517224598986057612457150995739323865323215040045783298995457524412658569661084400270043549932293829116979670986739271850092934426858991351739796933356354195005803608986298800834572537590507317202044591971316539852612827884588106758473915940747684231742435493836951423800868739335150786498164812706727535484587987188416647136334622730613776783672223898196598527546836017845120130293371374649276809460210142215381379461677433160586260065476317177840917447381774346939164049702559014022744164590077537781830286643142925707133485500288162438157232617996763606898732175259781933332568690806717962696198088960193245979394285664158414548081957348183452909573383030909869800824291771614884432253086970697617414775614262100859249041673200220773985796483475954102782552440958343830313178280864445784625380182915044435380033955167716368189329811626840357861418401877337011179683871661725297023485524090024921710151190178190840872478470561123324431209354045929478171910875103487928948338402227290852637231451513283108593627863750210996853089851001154779320741955324583403509445380584134565773829875994282956579823105325246676973935703271012850832376811183055991145273361485975917992915376472775093351488496176430705013478979800412119612582589468726777040202730325901981541347521349604745897363841032083293942040185193594510242314602058249034850666918378723369455341646702997786358859896622742848122162961118519134744435009704714732932428520774178318163701175184928675296230348241917213786980672480642476177170404023096471303568729531058394556936370122578481707905412869457729778689626815612378816780692185135413329390323977371931273862064118388734988403279428441855911046347724821302507561556576728608176405732996089944753995446685677354632379352751634946816793687000102683689892721969187620327634637729027682714241080926770429310857741232286831263648134354037832294231504078763941180009470899729348544468847314707736229179310670118858522890379917375681688709122767527324440053231568522869483213348883308582270938516444068529064152774548005855585795411725902669572831751476806190174471998119886666942869417911262005969476116522984916038480199345330484722932556735880374675792009588182565845515370523918036219495695075273542632028904730019796700917672441146108567736483021989402802478592717360898310318654058623151919463391022468093118192163805383332314836082631738773600970378410687673095283711118100160683144698108595412786663774750465854719872745041371798798866191862268650394899467595355599735689417382415692524671216773813289247384384689235798037096122718848333724248553376890784700897321467301107447149833435739196795704016048641496325526076490691830625243131146823517512492796357586382656439256094260454632068003124712513810670767067825639017842459382432111371722163538914432737461680048376535556596496851924045509457139146512557957252914348004523922589587073855675166663608231141292409384318673066639414488234104513282839684531422199972904441471207001590235699017796093338855666393521362681811023770833373954233728934785569120504011211233718980553782626395341856529683823203815734286074983356121256719327979494740935167145968726671207247571462261665351806332066483615885234848828341876274631899418930532591369531783441437352887465435165991454282560293985507249612439456739587763792711469770622554631356740639776893087252173403848366781013754471034736722949349384343153750581356603585555013433443696323735794390198476013385292411753446026269143868734799285437999686377560802436062918841841471532968729260533769594207831191472149177363275680416362440392969463390961225919330165186220626654019810271059076854473289929852626769698340065618174289335321890161231654048907619208197752568840452451435110488626636427654536805169410221328468031410033188904909981577310040788222208917188207528372035692123852146056810631446885442072400673369832974628609098706934322662720240107479542753214213780411734411060412023630999477857052192519432314643753360158892505818451571343262033887272673591678516594083334390591483458646442305502719263990673708876400290543623029920061364302639521687850749147113115059868096468839819648117292766605550188009785968454653268259938812316725970726435468272659900718718147268329651099706317923181718710920943159549461102928690021246731615277354710135155210942114786267577244319976162515006390201219114521382735893339798424514365523237232933172770050760211959955689990456595362321991729312142655608317632029067901625788541243493630428017669443494016003317538661538357980005045398476729995676397182440396143476103520979874248985155992202041043791114627137792750989053331962789711284719346649548524681186629209544384909852858003088028697773287096497764057319537216511148337891586855009282023837942277628149100065023524520713795664868951666220126666152476915972351150995583309181073307074150216071527183286362341398738772452594202366467051842775097181537096382279053905756186906316165024059999698692200753332151296631862551515795964326252338869971965342914767851458879884760109692011025826357182449180543153934378561054292921649357279712708188653924596793926686877890654917922150284865170432660866488907819020344192290191030276119448453019600683621835992281569932216089464471226763917932250373546190580097044465494187055969573454428848696790354096776450988055172770553232756396057046501960931511330420227781717943497892620447158519441259065118201228529923294770501284343356223334772067881329275030622070912511938956186914989554808279688349645906295359307867585249528423895588930074775087857624609343774081238703824566115807893852935449486646982218348079470495305119159972598565147569820261047778798665174221513263910284120012350104191932252124445386374218729580550645708817559456431748875234693780432897736921553766147087754799933733976458610953660469813060092865352134558276060804575719638040398085447361615241360401286312654986339058665278120635412992945361256145014425664303742979122552529003344414297144548374840437064633087948439556975853696628055931518692346450235631840445895547004634431479525152508311012405530113629852442522705173598387525235919639282226253141622066573230651323634707326725521593524609440885688837682088232053037264314529612353455729899203432319401662422244401441528143622727030531835685940710842318114330852239510074009512852831286924086082844602293514711346489609453627325603415133972001519546233237647805391218154803911727058845753587008433577185976990600017371972489973055819838168001481640864961923508803225967490286828723259840541544473314989494201138010230166442204494123025188350791251368093417164295052827279977299368935263870410555538663125447907845631388658347721421634570623472829170779932301099250115196740578817657152074340717333336518433074881248925882527814123724597987572919613560306335871317602518154242542013464494842573345022991783620507724018931246574630933497497811592909572106683486336687987672617954864873871235821503003933269145069086488272755509543600473762970075482541065577414402200978128911542185851773901586718227086864320408271613167798158564532785952238432318375768079207001569810377101107503666225195879136926059176431029611466328922202341062332104714525516938416353950822692000742103949609941828824683165730861415748278346511620805728756093550255406844309240561849529204600832073085481261692797457843126124494923706296599867793819357340071189448459917154162911571500017350592860509975047198739367739779068635676277798504325337091001982178941158793905233983720536599996585323490763082555002323482929063903258272695420915666666605900853325115720597143939505063572208071881666060971843800648146135142964352831982978582509047233702747592377557793006307661326625996943893874587586633771077248849818958778796609543510741802678851337939607724582213998959953198346684455589198243954728285744318473335852110786268550730826454457901298862680941947892456652734380461170453153374543584710853975576476462908823140646728244410618319677970943661264240673091791701417215229362254450118180253046837331100981384132969257707688763342517436545846974451783481587719097420595960029410724511170410046954220986402830117156671971928385794230318373856291438199222266345423380761009542208264355603503306030507417218033422969186753946723098076507205765014178155952739422063104292577587557554234997130132740846186943197527047019166927002140589228964671435366037651775771057513849554772854250455775200607542728854139003419256904618531256256676465598839198799413462671915573442230463814264986660642521598086453815123700551455988329237771377034608477255824125251568501299624171172164642568001432933611639020750947192853491668031543967509926041769098015905755683394944268705462443960769891447748869907589820016756866010406726398336756599069565445963334216589623148277518429266382206423484697720452244655567405987499378671723402612866159604513346205588017874320141751990878685721216237202571514628550844088069664667518467517150372677781499416699194761207861536439557390521662824882911388784118506727016567384301575350865169177413012520599507732133207569702192615962188806770570967880097239665287611645763665925069398441295231254090281478152608565577434898768500625076264763624192621261259158485002312786467932683794044291509303148394669665477752854899791797814282117077354279428132606205395510824925305591302723978640595221555209820937283918357450157490165736168877444969511164076818951168260380416582832928901719224305035372784726036350504305571973963255139427122874331292049592966255871178463532040161834720437494582231774544912033750474404530254417199400947407085562412478699694390302966390940818774546856762341559928634158112236188819910467989553085295088593993054695445450227637050329793967151569686293316120306826956714845965210348347757295031503146459864275391466294857690975599995894921212665022427491013164849292860517321182567974754020799105230089131371181793114554871164375723697407577306929405712747135658943877971775278113143281777723662381627990508701005270254643216735483790120877896068295713055222512640691358059844917206791370058634674812585255467016919153109643928487362745191835028798478902847021915311053103128966043542578544328344547176831751584250251042905719696562511888211641485329729344360437648803910964517950692975847551069023582749733843709796513113738846815753305950095325430358318663128599061052191820372254240886076208120462369397140139941170900349136146754542274961758515600006512305482771887919059331282484827067997085326454592279899410940072933455754798602523365507049164239895716304775154060193160679935737654919769538350639022533776082741063387674249113256305823921463030156693895745660966185611342486943129222169825230944622205197141501564353885171365882998617862315956203010197409379043737562477444874519306155183214276050676210228703540205551908427399863129342870521533234954227286095311022612523599563400612364109758118260983319587548877042973938944354287931306773024770281743061614495180957589182118662076652613627452570110127180529502661818212499642511685240970480094883469627489096414863248339589039060940690918632077981055907244631429936441182021158762596820786334842537757507995659852530369548081002006377756816649426013218233568403548419040221688479116006103563530534182248780852318381318348934925653867816534732931293548239435944579434227239771474190408709397449910615373982618363991981653862557640785706453104686078176310974655202805148384635615512558342655855079320849493583550933753743747987191778940623679715802659618783328560227829040436568756676331222869932974530800913002527085732006751619726616170989834109362188024287195125603161194544385566427907552924691844787770396382860083182749000928449885359101311492833765158979401421258330671373895273641999010778613469049680396938531913559258631520013961365760418207080345070460626361246706558361449762926381556189490643028233914867335639548725614813094299805984005931375695225930659700567912773603896639666653839306989887017954765662867825990564467970411015973459266042608107324507083095450137893579077551203705449226963641444199280015670290723147999390073899937276782868142881119416160434584781795352680952974648860017831463025171473702433682541783183523130347226812666146208563848300311822390812118536360359940464313539398471411920842812354937469524346785703450025163514558391478816905307632456346834049618844754373981683263568153737404268588059078443702281178177562597430481184503194492560327478219000595474224481146193687164356317376131480050687200812274238005622192506699033378013700026317868199592955900326500304534370156573336771339822661571636039092518635867091159934298734911728351073998393989975407936265335644844206044841159995840966122142670203243008068338978921296019337113076441110942764576481480714761707765390915898924164726460752251548154489244161965095770875283325766299455458617948995877162517212284087772093265163793925414315388730218315631005739176164014534772598001614402691620419680543873900570249936068880489405271176549516665696218380014583520274653910059759903472961724272855735414419262967556948270643368244389344719379934848071678666009148374619997894897629446815899112269836509842653600767765884310634216662397219605440460135768983270189824284221740216156762687539456523564171611984802951987406985463940847875840804912367525365979158164346735056124831994440670033991062455825992435366016908711274279142901668622392289999130166497078313253818465792765893004952962370885782354869884103638271590201453791092266841239688978351080014760117506684861732150715285402558438256628185722852875605677937454991175007244439641423950256424349785925850045376185060204387101655030389078323152312440520316000713714439990603638449705890918478645220606248267421661048567600126535347483090884545258131074569908980953881740757503172380619192242764247584149721397392187029037721006511270273361919181242738739315470487179919339606505045837070991900245436359758263996762166843284407859568366209319354983933320551568323939896776427837690855006576539758286673390108776883117205909466907381268911034083885304267052050376159655962252618645458813820746695675206864923387656178478731128419771534605054377516927950230539195806776286538881685702569799236701590626982221031992208646677457097636094891870360141955963804762749293190751407734206761927214413283209417537877297060091100579802067373946434891931635351610841113101954166738676993400937497668720398138669942303517656108023357542653049074113695126281434138898981866290744117755635729860079413861411276501745105547544039309677678932815266416858760323734875468380040323525161444008084835742578359130150740597204180500361140265950266218973081940620013365969317199537737448505050834771710461902078881857934142793397741984093357823308464922509679262628496496093938487084837976242241302693950649101066112176742229545831955950386447692851699294419862603440722901075065574290857946665868127362434149660923377199562471456024572084913757426727943247337947989295913547590235944672607634271295392528295326992808822937112864661287589183883055163663833015935564735800969237026751388270752245392849457006544034005460621163889486472253769320485256924206902918234349726865906527884407563504423008168131905127457042724849410355709862280964341519321683856828344803427577247307210561002503137748167408892965405309592584678142410812833673823952705767051863731359240566346647662879516869429504185166956038217010653828448812083189008407852624321483232913794052599834009340321460700439132615534085179493635896374162597795161468666615198101933939632878450144639675864966652661267529293016658030484771551476894907985367451836625967923281242263903043709634429984331225478302816269845539085726070167921735418158037110232792012985332450319919551635090233583297488330630536706346081681196365575234633433685490434945215009078450622142309794975967425016715500526680963793565966599054054139607413228418755635301706286574774237695056024347696528332504100755418244151426370131676197656155953637723679112385428410121742289719531449032648948432670797854649110676634463103043610274725567709904055912468874545854203291202979423719524010785839969869575614995449700727686776340207282810047541689739282914297921807040629614814964843480686626467412507517376893179740818115033026919553557629417583807715818151110675566419479814547286069050472787764630628351696329499329437151797409967516556535116560802720882366517427488772909680195609274100764827871506036964014130881841569290680975413053831536847398786859656907736391698184270066496376906848196424733196722702947378102083045871964463286306378916133909496481979985701716067171872982755611935347496829474946869937881614085864511459360575876124735791159601100871959358716468414654938861812147353564558668623033735971413111734866299628785398029864670399594705567966604273186858945343059696486575541358964331337000319397420487752689278941473624786200698056570311088998799763363831434827944111263369505907925659535502003525394401337402260912622268247829744692839292726959256480085063721038272400373356203553154933050381888906748580035265501010915038760040771316871616772494702036401224646544311401011291942356101379629446748405972343630696897377546506578574253032879937625758336723481309192157594991705330940877252816335245099279745134772597977768482559283794836430200408681904217456351574301771606516787917772849374287721605067333827154243979390680195109607965966010968529792432780738213862492340618240011750705491552527444714170430182504146995438507607075426018291757619985936251629966275789975767010083739768507300468795322491211056845763981658736366986717885856916785646366530406881392206122365396707908289360762655295735676771856984387240450109510335806296456699558416703551500888092163624032854169586715732871883590304954531509314227315851843127250500666689705855997239525265336063758134403693169749699556742180557566366745526081877627399940675385247395941534468728966597932725820116289599926842766037752078533899002460820319089671454189738774589259839795996128308320474280949334656223581681063066121850352134860111008867807452330110024186503289499625099229345575013887537819905261562945490334156462996776625518643508820928484450749292833894945129654609154435549814674948129908607628890877614187812510595195903055704339517129316455327361497578838538458013033002106127134022305233163775861467070428602458286910893274596465704659419824422792132801578614199245422033310398321103989481117249242372864059415824319907675119373299823348610793709389833326291304398150697720399088905815370434701831090444423035851969006215315475158878609849583422655273171693358145796849829003585479330874408377194764308896743816598250462495717196283396506212622125596903298264534427189399856312005331826322679936629697131941350964585822184529242355731593615708142270875598479854435428611496619451531663127550857296221858427279367142621798649582193654336183974184308106602313808516115689053110301024596769787693914067986304960371815622598530851828479845872837074043661104728336796834439857760885300644447074924519230283181318842832258103999663998080488950906038930890916884254343799114684515523064017604810024894295193995670126952156274756378607723291107711820475914674227848927254147332172244532722950034463355295461190094563518114962221093871725796425256017311374844024520219747697359893372742185173199436162976586360832468167143447197166782181591796878331511407816245052206510744437628862664688657595770135136355432067954125116369428026073013517003120862845542973431761667853492643162605537026726295666248773620357869023880529039951307156757322652877380305186566620669995754570216629605527100868144144408007895512989508817019642137217497103928029107682977517805021636259255261571849944828337794047772645919026253990894771548660479883892476207314184681853199488443176173976788117107376372773208063805305169503074331532754871586279551091769153197721721879490219061488486205568233706796309793489511571568524626323632910950847894344962304910363431819554960407332603397227461696083411223044830132158421240633799695439778827660841548295727172926245024928203003496420253025524026660038361352209570627185451506050716293071162426517563529243970514682132311908614842725581178880626961479566742650503431300465007289637353137106377985597381887172924536148969653901390030379803644290286743694569368419996996936210431833403333782249215305965441617230109474948545635331876256055043548424048402520984338311058147288056350106374538011882107038427832277410457193953937911181757118501760851484437660882740455887892745032051952584265477569735726370101413878467793473940880471645808903820348110548009221463454560697926056210698054818982489805814767689615932158931986474503395122185963950384254782504211440270648356720410109842095925795439870642180292591677593161675958675828960003145351487067330518885264204418835273146992820181490579429498639482075242548774844847223075825575419398238414324084194084816228554765842835607632484223638351038853863277770189395562859699100574388417041724184276003418528681648863413674956110293688482793822989865848642832942176208628145592562965451897974626405451098458173272182435533216126448284683458933873140300528493359876105687573710243335702186299484455011020634994034204878431322317545777428600781389428465716787476500242362627733148297802893406824481526258549176292136797813441637677932143137640349778925794515175262612468900774178721956110312452270892586500119282624550452161223781364457572251017540775361168633029199491833290065412739359210109305559085664172429047378587575663135630062402971201990473211705561018041139268800156228606616726653135993190161325265039986540345148615568722450929014185670825568498879852250097489626732185577204366139304466659804532340514694858109798524614754925664798913239483351256267118239848760837317787660167100707915582283828355817953210795760156670148574457768384466736574586767854775595928599494736891537085433462459177032053815412329465087783870541454960364430349394081626635796309301554558227400852469704941149872365488154749947155708352179567566180465057152803182944401332235059959886969600818517539777141045124752442617341240329349822611226955471424293901404138914343740725317239305499269451456131407189401049825224481514157994944193263662682465013556872698466344368983751322951633852445736016318924558113924974246716073448975084778930358499733948674847428731985169901184118550894971064798891485032118087774756599994493763198073201664887359825976152205539466250916141644067552949751896893795618187146929208369555573860632913462154969991672249272688005468861041653309255505459668799193544153519596378901447419750500712327683006155555276141234431478199510488289979779479100451862826385307301248025016146334759049758599458025523489401261868907060326685978852990082062245022301770214052520575269479114049245988684913415621165069820350984042805864288140980344715846695743938772312985830962480593099939340423245091110107978721714858433063374579099006803871279379283649033349996362412706919645740948256099417789552465518704871390496486815751288753643056015922506456829964782761719280383204173052097061666977835348825839616193045706106453226495950358874298173721065553205394117820868512930658469339326418594864502395544263240743539615305587949693654046229346690161385852573333545055556182852086344037688917607695155345887999327295918130442860788569333586504724825203685711767056646387675474814510246594278467815981370245026017427396925031910028893812999347251767524710097600848233749642274958299272818366207168862149992740551938710688908293967565507769581086292391301661648788974906626308632460097948464216927847014294649241460731970643756266730647344991751725578240221869450422510343413225431479789209025521677924379005369395386518804749148214203310712195344028978023972566783044186281124633140344424891195897670056788343441801678137006781303512173554356658458983370842990253821626669902486834856397733253492141105187181740424727134144061106788742731081296286211548455629443343732774353658253922116014039143039422628989883392936448350413849571914243604502772227565374204320633291321995886983720139483716262624563254559495473836643080290828910091940204681110164082206698355685763069056510970276154581224607931259213506948443957987888890199609748845310496389224434387288248535487146976578043455930761304279668086592794774597996283598704189509449342096884696002833211173911356104824375891312752395653209534959832249778114407406112575685611217325126823861298726084467580085731758517596299605852231396079292236797347527758386401201278592412852098679534654185562706503817228566791315022876036329093843555095334858249308723964939758615338816152794688562415406835346192127328426157914140056859722486965221149074884010390754546952234449595578621339039388450807798980545370064909038824320213247017021504285967320819451286254786195800475050525675341690909142277690255779409477405191037927876503310136746561184670578876672490544998374271725364893393858309496075446192260973321654619772971347887132948710041907618179853802372801655392893533060382612812455840514033430801739793186313791301389897977139333335919505328606474796372532588807467519945625172095771401986284194286725466839419024372782845410927423782308668303832824140389950548182947528229623078681089274015460605399558959935287181692974872547487781661809690224605631883573911888211932791425306927337211144834379097981603883679801083963831974476825407913250906124405338585220162421064746912997969494668934308543026257371201537570811798243762946382946869361503908064684788475454027961446788651489368797226199441765169764458551160874045989488582741625298203446995159964667938764538998455604528722610436202801875792997675110918729239161738247230851504522835880096499282732797085266436532385072934760208882012981041813174643620071935684571897801191497359120612493300982148561758904561777508156796402947203822914006757829027230631206896055160015807902011877504903281379636456166939430307488583611142422328954671180291215355673640786773987124900153197196813516245998030723081343864630671289195298909058783132730411168346524339336063854343149211128148504115115181165129698052639019533331995001030313632256823428035310923107224418581731286807676864955341858898388870094636210687237213618370451757829549751521408622254737407402148510292210853257128721013643427612413549332658778788466091018744225661684789047582302928132161823609613187758688525789667989440743762729407834886950272222292919801359119592072069930273727625321922999976731151133753770626128587544677452365818970685498413874440830801441134879212490816538806314538857602266600948730879276448294190020815165578886991074013084675717446662191000788837930318617138800522417793187865100160154208314758943794807882089786721801148865448718289344446109117356378032583344400140812106998822230382954573620259076994213835857071361477445350000830973591027137705088477000875124957935821396670530343835167891747181405006579424887679665802593196357869114277723610404871409210535619318499911392212338917940300220156295340128648900854766162740144505254626929451676183433897050236871576417618002528004528093983387985735949440537930118176272979550785785283090177186889800324697233721625934520884010935552042368497728441578882492437672009296110582816974374587566744805754944289043757369098335856124400422713874742909184663514252251142150705652345362048769654234253355656321890356638883353476811975571231470041447349212000422383685100467695171920529053607933924983132547138072485499300099483840536371556340255465194798570845330112294671653908212097090913612723742839295773918113998839484808912543153145992976289396146292169668777596077003805372743377668276707413037350979012628617762982327021319059618736441087376838355307805663563349148261839601724223327010979044742944344784196087501589449928252382189436181458567320656229161116625452229225250179743363749080566615585072915631648649859276449399848540798716401662786144704840752943904898508104458350712109831978864946910990958043191179275957226265318423538826549834106960228794096828300845484754614084049057998827461002735672253861184516787817181849606524443231193304283634312376153727370741757972142900618688064827078906074681054781293407705833660135513136006996503463996199671547022483064782876761555067547070704521192127037161264199619006704264428511568918597439689862753148433409887005516335884390420144595149142434912999189032500420205196926715776197627668267407328861423997166495019584657812837164599382952133131456365683132000046687768507725930152692927797522003028450442260769175591314708730812317125229631974244820845473444147143788686830543021264628552783379033891099357617391257992176046400323261527828975192762592535010986505680878181370319570448394468757228594759686122916270232823192917572497995543989422192448052009272896284666862008750932901289047613055902843128780574408578584139047808806987354956121844271113132263742883429050717080171110861547584751339259789552617834601574263942985513899882065540527771371149809143597642566575542772391598264437244539520659244183869856944599190553766891923643076438843249877210332339062205224184542880012725908457089103204717615531037965534232514680590745171623145158510066399659934649722970543373702760745058105546805116446780039720683038912061220737480979352182807836283434912664382617452994216064728929977836508784525117040108073625258665829217703584936712516146788992473326475315707273679166937302910228226081063619552135349677638014106486699438262928942414411633132567071514284688202349867452161715215728195562783539415275367713580082831948851255164951894198396142140239532367935163932242155410270206218164568029715528861034373266200259514376089330960769748099316910812606343406824930777685904995832572468141789139504862591167133786805733353155980568485324227548517324706679806613105347246143056935531905527096457682771320192622364469489188276729755667473502856632448823048041458943185273957288226259146808539649467777955285204002168698206968200571640647814171605368582018040263279316271140330850430328618291945792131063022090826298505560363909509004633327526738742496797693574743470371371127599285158240909505165907224325416139907808177200956683507455842821489298520710173994155679217006637636454599790033365471227019238179332753306503828809505966554133665333006525113406190675437121031241177963771721496581371884354733885304608082203663960956578811810593983365082280632618484510433666171051671008519068078638987505066410882485857338583350244215465308909388964773251146881997048468236326300920987303913283130179316104705683819116566238188856514789300531268314079051556531648417860316940892126701984882197395571213361639121639526108612839787210251367912704469563036665465669172805511524525981953759686105798027157979547871659231254467762961553152934272284952683433046880204606342177776549081118578580578631771702480355807744619033461465201127708531458494276270875048130651420624734526723999537938488160501832696109203655032486948194804980515692563905403115317988308097257607486326316602550500362540759147312166445389632350748982134220179079352210216270766673691948184536517012682110695413735471618307617435996386485463298170949913412275121541224414529473618555533402529846891500077549483863184047915834116528816991359932485618815906366185723988051470883855116857788514299902924132151710578234200163004103755011989517231508195155003753749862379521123245639061583194735365184314866709384087657181251610712460676304326343257750389819815521012958919816304669604540703944614940179045663454271196677014493881454275164896600270284043464036571702001896846047354004490449086155505749706332111174299211264222012200690629284647922515326975235752591641988460663024270487085311906445582647838973511645551315910924429146273118164361479727029621802166704827821569470535360206592685605846389787571690599481452056895069391492611261802689401440398444063400294002632685397492751181081853176776528915579893297845560538398138530256323896188182998626932061572892190020239401151726751549208232211025392759195881686380373107260619826741128285449969636341435707026986241469730806610593183337475780873667038558180680898656303570681724221363836577207776212436604631850100094636370332958659250621854449493240191266950053870424167372156454731346735934942215071916101501771903559522721125467968575691269662151312505497551560793176473824353892941240430505892967981970653122769646421574322019033099493125042004461121331146308509728430995195212883875806451789523391492686744737233677437822953225615583070674861554072066285456100717762476724205785597582555207289748824897994972071199409964834496993563319609129980366635821926279843057791924702354506153736029839722868850212179147195904504728009068320245072157867206663845859762943452120210979851429653426649411344552047549348754613188835088592281082743343069312235716444841275676807103097701470247549612182758855646890431232898706359372364203813114118574476139520661221467130959367707321706891078504787359426681829925698096411811503025514435670329872685560872739674353264714974636255301593113209683281382970075595352654712314918544208462089761154414907115498354993112848331448479614602887003421553708024045327007332951214627862408410353680243276081219716896593103203938449388339869596343244795857422467619479575798452233746920560683236478027928346120142551747244525893466695192389389966540781744199288490170086602359295512377752655686749653697995402184842254237448751833800824354060667526848297753559734463979984115259592077349849753703339407931187281754113740731010851548968849671768386079875342808625483126973027638966997360170405599642906498290541687874139019460648218659281624251986042374627141968855215411888509294687550975722023467072413683700112909325323593092676662765182346254682287005066001973164084730897986444773137191157521713487666671225485006162661254633298111291577365121475364393748225609923848961894211444315829552266627624186787351142114280574679716964058196903240310652010834359530611578283139145863595581635646026829874255368813988877323292483159475009886505051792423322097987530788649410214211666361012577619723833444606476066337596134541165509208116875425655018317412721578661246719333281383129774534865877276894108434825236919042675276006474565055382869293287091975384940005108991965365121283390272380183469385278175585428224195195673318462991054505226192346493441201967134500079103426475274497378192031004972348582203930012622894694691375511130279829298716304332283405062171947953343164064087447611016157748874360891981117003494033375289519281254980098355056717247667935626168636819011909314889005683737327004455046955427190272814116044717125783809776648090823368931560439891712950562985802968321428244288290543205666047552896455329325711048646331583685504602081977978421023012290386749221166106739728690312219158388286971808529530463725995221042503537067506380372973746106421073722282047021088414966355210290276803665012794423110354795326314940487350389538016819740106740847229298617961599859340099206827692445977777404444293181392069067766151843133204283702745280987660305767443470475522801625704156258397600710428148548489816657276240477913654413663234264536734747848279143132176590896095021256098209944658822519807456222310969548778666114278925206249886365054155960044758262455405630753735814163393281012041141875225307246501467095225126550805481382247155446672329872723179565698467617191914410216037805709914523946795255451886054148129343269884793024144869401238484810516149977061598837483913594535462591307986329336944048143275340916000197951788580596873270756987258159400400887193887280317280088170530317352098592406907745712294370077839922556440376597682065967623338958134914907124842061976413390948083731738437281751303815017558948579196317289068457222473383629217433498593644006781151467344575718334212380381992968672177436901256755928009549989856086031229605705912267259792985554710588874899854380476356483621200380961611161692217963648602211239776240384981551686251068883837347773407814207055798083911856820300133026530059509921774996346837468863971394087845390302614541598771802187796897114454120928724000231796397603261276450312834281054885450893099941354010255888781279913099647268782041912422099370424006662827734225563867148229488916008800257910624250240485877001068436542840111527160043803468380215641963569667045694067550311897528332223422062633972844510693508308364436543363404988266802849696516998271025652640595912076127284158597237204327782464253226856167443292921416788285088741852621487486687821803827756067281193816001323700786083637625358825901339689386601678981381152244687836741975900842238545934673523718221523928315813753437453789003070153561535543552315546710571072881314659395593433363663123114358474403938838324428714029784471332298771446795561902655841105240798372569254857804442406156348998919264901137881074235191442248970806977945597505556677704997344291100028015232584358490622000633116409192339751179612582885926139951089152770810875512618787710860420859671153207613098159979722264512761081225067458559533421201993661857241481991835709113084341513958010303596982363777733873516090858496567521424032826122541574237200207495365809031455306391823112277793385687838954080652446611855747520385280988484606973516220411514874646241291782837517349890357306795066397471235868752396073362063010247429161207964189886583814527720091403462498870998962660951818942694107767644769479724083626061200024562477250527440409761446223618053548547082627924975989496388845025703679157350160261406990275848729809697423214508584537899545494368683229709207926612265431340154957253097073241837424221952555465118337902874533152251525509286398252870541764051570214290464867599329467142195126373896501204157445159903965110075514138546549815494578821061487332616835905874120684914504252805280075382211678744068631153955767972229774518391216073715243047905934567816095114077974807763280659585263382459002947826570746045376820513369925840509649052371729820113930992407471724759360311229913160723269500530647815919065630239857379425906021841856987057037086745607159593242492254621847982902401789179182745423535766206023672143916019205350210727234732205414976758809800330071298722422580602419841980548940800308661677999206615889266684962016525096812830833330345657284280139899720330027638330651644553624168558494497387704797152278783418900157903642716173142395779613713894187503002168145554129926660960659984096410350174280719536841044272130143727252256653442090767089955017148388906896826564784791867879903362230359441777961727775989602894552641648960183864557170401566155905448978430075604786983459891559885745586781068055609307993080785622656211211897617032905948521058791512763838100171966753140721162730535441547468813611004829482252860027738673146414965344256554503230034449448890291467525651892027362697323121029844027728804848362256542750217852910499425796120459004217044484576008740341757389661709529522719288448866266875156303842354375951338230612545483654147682782797654220461553758193205345270741408181414892324353767490457601316065896274508488695105760768479724379178198623135418718231697979567606128064663107333998930546628873043468142805883450185905446858572904250442355621093787056749365427494684922203811474214692870760613238969956345473686212468934037616742063575823739377993733142732764293517080098311427619800703867375210795444597931805085553187433472757964746108670029221902423109108809425738408521173855133605438527786200419243908400556149820185575748082837678337052507825699153126429974324109238844378067357402016165669548498538022503977818991802390128881815713588211055685809934078835398266458779755848706167081695821245969595244717968604105745550680730850066531660534645846554180403704174941419330083808663493658813396937889773403233168698434493851052903439069679740070647827705722473322036648841385325796073518989029486912160950114717720829519461117317443821114351002739570323488470479991666388847564030113317481588916121508454073891475667976792726570441196429256877929018066611775099359424549368235688892015979365890126298238598759719651481631968808841113873121193639369367440166645479530271990179713715403055076390402020312939887355783561551138672071717099667766198607999042230840529232580708535401326740649415740048491432360049254745870564337864164299580838258781499970608212636357888868008014229270614084979889721732699299164084697374369085675713358081838846458061461800803845346163180064208872250795263489587497495781278435034879684712832518656867769461586894604629002359918888010080228684946774246266925643308804133676519105763124143008202012572040975841781229661044001773317619460936678079793817702998809171528176041389819128080290114579135460790065894286058339676676524725261004879656852374324341163847156883598115799029050895148531197303638560937702121809822928412165159860937685690906617734748259387345779032207105757950834115008717356612914327733072588286881008087914542529996789631945552699834758075764199850183808706038361695153268950956271685370752171835972608075204383333931438851565885714639408363060445830842002973774669176918999690791964286633448217589246711004070604626421199246823912773818816219684756136958998249718793161901343655832920007695148649866896396573434792245700995282795989257975187297992659304118267513729029189028466168681689231272166917937571629092793947260492677727978659706721431652866975768922079571438208533411189814755933479677495259384960368605207118622235333113923072002599420099707731984543333235446381389088920620791229484433304441646284999514055119675670470877912176497656862419091699165937299310403948885319537929138206766867004764091645316881193689728246565114863558043382796559466908875627760973304612358383847993486654871775570624437852492516315334316327467931514667577743196477448047489232976917140508601440652267629648325882667507495455680051970816292001117049051937609976410617505810466122423566684905708802205367594716563101538882064157389708312445963390125659178383975460196842275592151614882282360254134093938218373103498450831383504127754756125060067294743093410293949821866231449832177961792868346671826371278407757143715534666612164174259774025567645456751703605574554054405885938334776006460010365157303183481295953291838694496735411404338325765123735185284920217605099160244083443226833079379972597616963802626605308540518866062328033131589008027090777054991144828450451424003523736146794338524069024011727152225109019198286483219391328880481773372875589065957812681295669885757207879992519684297469767273049148107932023405749012551139920579024047411000952661232563276690284886462193387705302672466104627436451180046780988778462681113847107775988359176676575670866079856898512658613626260949563004262773405900841599052074524260447588330831644239296067629763299526587503397396181600182648223050863235928804145028852945024968396167649556626364038375273579179097829561391503988083101556762026920690639488273189374682848679090130115201735145241478558431732703338180469087563362561220165354228620341801367907094208931928044814080060237556158227507659990064157343850587193022360485014317506876345142199037644687202449365506658086018519897997616704393626094818788445449328247816246478689962888302793773671351458850689476069309522418760370816078354138880499558798682356011235012960215405726310011171789779909853934501569618765370399789232455337249909759897530222223882813408968493527183669291179396914365790311784212488730506186991373770399690046455561510838114598921558554831625725914167176100213839416883883075367770904470651514275431821253459143062419434718697071960300255283549172271516401990433212126367713973178333227468844260162842642540991380963512277323634020475880812409640063553978230464901678575594932253047185521196197133285673368343651409586082909142884648831294006901627092871998267290075184524133450713962212779577115445950991142315344558459753375070121322510200325747584317377760745127503102875592627106588681673716583812337032011488824096009430939608478726442840931941579400045879237667863320810299957743822716912652228886649484307587167029712107807949502844543230280402946754783679674726981919355126781930745925522225103769416854509249592218947649759280798736874810739886611953654779389853547166130712919168979214952406039134881617653106572677346955877264323554743604477035052823951204710498705489330189797341111932878485939854015405485219357035862241430209126650356919369438667786439232229187526248144305791990409490695173195479359099448955425175048921511661883639127950359570204759051283481059676111578501737308264381759538511162011827951249854535122599783320179325163508639289733056469978491318658247088178475068647514293295985928361214616098033155710580382828361433882892680616557166743215186273525948948811964110668347544872069010538522397429158607916092103584160586477362304386203686977967732917970163694082089422210162955374169906399671571017968361543097756025407947185859648826532041246491539871418115152379687258146546239183831601068455463549118790425177742435859590454599016620145497497155764522290784467649555264393450078454693880188400177108058513079895125709466804358380719443131955648529134886496019274517724916235794254681612748573128212182647444173670168290818077394019990978349438432576654698540706929806854472005497169349889825055746489995794934407526068591717303002857922698243168721572554065288565679900718074318211749002575083150070849444429191613740862958345752733566777524691483267494346009740571336584832337393443531227836504577158828864165946544159039750112063484104027076226186025783836795579730641974743490006035587476202754849973316825876309865614557355066406767273385179736852949825199453737758762731529739533150658169771206577688421856249430235139294587990792148759867509187622041971497821004998497357992003834842697366016032054790988563748040949190415044365667627682369273074673811508167017990942569898932320461928094642060570992655954182340508969253741561949207355415104802921321563896246960248373778375483560598347930879342848109378577001848713297320798332982283792617767691385224851842908424486574609834124027612544050329060756045859462499047805855660378815632767384648219656201216865197687063473213276423316112438406010194703347568749276703799508945939697022227962071898986507385453209194786629121757499628999730645910019212583833643153156755494310676523169356703892056216038520423970449505863479475728702095176155190625662990540515222786457286760585251650786175507580701961134187812284823137319802344458957070318010931851494792500575439445213768194303668532849055117119823465040313279352169347058785469950905969140759870889461442213200407420317614507214703725697228759793677958337609039154451879431831973971572205223200962529512471268553469967469701187238102451140723017445256943378298705577254070400951134428564278218795298969298052802643729360462568488077122557471748575499415695207436679449534981566519376845834947916069326767578037058043552427436135839422991259987062990514221651512263939802385531241206119077970767843992414619218819955785097976251899469762339893161800408603871457782648224649872084046819590800668746203312688900617067096477902364680254904355643845205646474491450128590551794268787655921881010051968359211449956388173627520103261559109296570148108675419674639152729242302567426431795732060456260807783604843101191780831511938599594769959818970751003990994662380572319238322061406474354470856994948736499662898408619720299992520314781415976334038404951966843356039378940661038504310203285474433218809489200841256380359798897379277332493381996864160425421572081477416885292689382205162414971719170022538259716301448902264626576250151478491295944958469840648166347733175054958676594133365099489990687091036814045984513205235167367079909920716363354278000768573131646658625371877957041454131332567150525153585596714699689411820640584899605461919279745738604319298852166285633565785233264934920308502518583714730633400149017869212772178249370714108175102663319272467601242116113704616948873052736794198491338207510084057147858753404492907260801375401066564779370425161489260690791269312365593618552796422405902992358249990654585199919013943570350788957071015087322104789367413317363304750227218452986199599988745231221593327337154154903854393552836547942022962473934700139030806432257013026708216290695794000088991853721779092809848406031919051106733402634842404498778517100344085208707418406715379304581720015370312257811838865693102364664205703679458201023874752587699672333293687307266303024279805562915355229280276242059324362814057009923168930328826811706025597252614322011931175599421943697797308796565454938819462379746490021005638321966108062680280614123333244279650639452882429769555030091910118815248793348175027723956252538296821828278877822248944821460400992719422901246356645955523178645834258916511209496924153619332994716387133904369416575841885585142729109449305819771741144199195778164766990573423742350463575865619071961612075039092006330422131758090104828504591442515131404116585685870742127855813813969973260978083260244898410130205341202917744553824606811708490833388690002896068507261339945149222093014868086267534242015660041833233824853412400225103966177077991325070406819863230722516187803814271413115267167100319990028794776126792509946795714101331114253679863908492408768967243696722399591439888144420953691495040487910180108594409015780015940587825118798219338472085223342672858718072707900176173244821414777386541435559277782005356581083702389879296357384650222492323742879469540177367311311626520926656389408453058310848103409615920137618219590971530317352749972439718008238275892336034716407156801727197940158798592939143223147968933458076941688371956598080822609403376058491488731769682961686434245786697390695750124870131140516499660621449639924029474887773526482663382996910711312406316120154018736461820099225057560670659210897506043083638001444814135536977359412334240354524791520925341822381247879508018657445509102180918695152808841442284801511513954266349980572342509111580428304736338790342767851847793810213452412275576074327500649677771773250528345368892407154071886326724304137192382822882953294006153664022652944549047950610069931495599541977283030827605824812436343458558939481676581242401724194672670813531831330615974882941386627390129909537509038467011251332940524772381596010051608907036503292083569853371056821447991334306383406990556073540419842518952982627749842964326744249864299018324097768638983718200525900446286631391751480790377656003628125836949687277354965416150066891193828039882923766935806870581134426446414232440147747771229576206628651062675214608926193562715550064570645871063242392004176124151772147111936930061892813567348679140679355196325860220184412838186520235125066701956195708744876682772848473792321924729119770439688589104165840907445435298270198640426579088383237908010434408891018360975484009668034804583349551440100702637811681654456776960312866261313638025551940177363009493663092078284058888272489325042875986816611900028681381746042910592583626282941824276263287638627697584390968589389663781096120259985922695201511378691198268757532700208791346801989642667939021107740788611362955752027754339934300036702065157737275897785853350639095436291051713965196105603503216930315497555026606952335206547753104537518503504334932140919059987117239659769329999679462582151319743508256716490952618669336110938953040958176764187877679353436869223658409564211587865059138861142348077698004645971242083981215379558291032849548065972579588171474319655870020253387097788174397829052915492360310436570950676110879486461476868080758944760752037269998176619001778771845206952471433138355594141881303378328218203883311551462499193481364345800236028231502169455083008726694584341713586650216502199805189682444290202326871189718188545502315559024519859406434668373151261597543291075434096127169079047472601268624173768647775009960382025532852423908464443657094023110903510427493005506626565030978328167499180793051145400833624435521996590963872670134457323957793846865192024901503212139713823571417838750680833987236780414869905719892310340337247206051678036669085604746162649624389307547838949368191849253761663594737124995322713302764660962936855611144652426882083884736666221978005435466047058534619079157691304345495797599608216067951697213350153075000465187788319704423781454136510284781283304745678436917513006738397543229428249383731419210399184994882116875799476650469802168157162204328700181248005858954586266835572737581874757696958915537579277243940526947406310215095766530774709411736561242809846306940234846139021195180028669535729960150479572142005660975727454281668188900060177166453363783990123028339916769189631019003872719931579505552333677223938701195184749327706920557586696267490385455322165401287464064104584305552807288989403845722421500701945809622102387869569409857835089868932437751609532592050385214612556826597112448442904459133564684171068034951463280202678681864842060336075469691259109440590622410161886393430206688809480710492275842476625646795058331927327145185697928873654534916062332804435280184981023728840129118732657436245614138608244884633362109806846567901371997178761799982262953868184495703474334608488243729940729541415920507925102483805116925833057978969280086529181098523799762201162066341784769135465835432739614346852617856244103341783634948214238544245060197577393802393046050154308031054549992251781603147592023464777158559370756142058420677270053441832218415056059804331459328314230680586595275080221985339950410267666712360314923021294174737847395925207222035445877378212533913107697541903506772780839262694048263695355610305432794962815297574495127467159891525651204550635075959675291731625012928667619839225669331438629084046562577894701741970780172768265271315091856422283949349292572464424634864246851507540440449370037667888285097793332618814475664711539541007856411510240442268180691070560981168860236285787989444893982867879729013421285867839917803581797602002202646532546373222258169078789983039419891686637032354436213649932429096416995674188876887336890988007560281542589351375532329876519763278593978726742026321995229336712902854389181335283287132534930690490087633993376637974467429812826236926413662042680947561412029916047985384702529318528973251729896658955548959420999916452058052814747769594355328620582519483431724909875869664484678553642493517648346031973371783487630557346860090623437247311188490337033391531624626357624715980943660651017961801651359236078278417667503085999697483414063117395783522346280955082190229164569051059438305884018925889294330558835376599187079079460098128921788912949519283644231980436818765297194543264713464148348845935325195051667497082593910946762271093522596876606661682444813334544292136967129704658047423753790298777376824383517005196808006438015349454738302276613608700572703750290133711296737704856626172092088484776117795446061207570432217839306729240732327415863748852033198996701348596977749526225413802432689974815791913224865093917425807853300151408119393305769808950387459846915507762641066485343448751390066724545440477795319731041418364726933317614788311475480638233194951385341202882290834052678223149514298182088401880102718710069666725890174297079559057913394646462477877644778436908642158474749858560763418697722288073635932811086129543125763794240373746841268068563273361665934693150330571409684991578265351929490117737562210613320397068493765679231202706451926283624725460796443519987529162226475897947709924920705404647074601234577073096712202854845720302620888936348171067102995250893569871138428689190809183435994971420269999967542840146685896437453097486287520829357454241383010096255004800000079475286979670329788760650341154751776591315479354974955358722332473967013403325034265243099934414785456776906282322701218798911946693284748178217784830959159236022532180773796120052867429523052335631260509883742474872554158931278596237639989669804960880371498146370210388491052197349152038010631025422052844530437450303257745844073052086286699253298474949671626945598388440723608890167867111151666442204369506634501383772441430689501077201707488151837934993637555970754409562292942459175373399383211304712685777997068302494628683039599377212210565245954457825383555546178466194267052627700896007239798891658149344963430356367360651143997963618904267724354804214547971528914882893818906673693880983020627299358443130825145535974926455166925550423103502019696206482239757568144317482406233195043462473886347915061839470034679173459423361779022818979797218475300507564199161374658782995357321506738804029378417510365181807212486025700665648631090778699952221526190407198498914362179781859456000631967968125301222009973487256357557304365674997021342955192802405509431805646150938697987910607236496476957884883879482361601809985581838651203282951402107639656367028757365814495954925799751927471880936737890950154470000272003924934843047928850346983652535514517143383068096376436887804327981456327118961929536415630093576598237815710984352249196866610817283410589493378007507391879645357265470889632267428527964368705096443503055152663156785049306705079270206432339847430738049808833069951992355188809941252355919755463393330673644537171659229525574033460462464274836598708149314370400380885076510625297531833666509300462873972147561176624616758601124752461824281249479918035579394381971069576006784437553123665449538666747401215068187219516533678280600640796664993678899544004154167169027265131141425741207442283443761133113963387768273591168083974648797500113534710544742197724416300890587376466075604364653732775207843696987112460743388659162921639888875663922031594202351261260697868011660923943634536784913554184927428216909198668402835199524103917945604466783461261868999909827230404254521995076268514130255693526209937340883592909746339154644137259069506392884590215245678786938123759798772760195932076449174519874932388962351548961310304315555290026103851361556583588077449519584244722232102648389104250258469367096538905433577812244393410207610034864695457020963587371116141919821567086731607178981256913624222466748170890968427361950678827447781813439442426186884077389360853634265180651325409347043771008081252157613115287863983742580213318562316351987498241587544001504021343147257179340545717390547767089357967301022290600730981441839720285913051200011739203728829660922448974416057807223346108228494764498263806020415382592489813642786046218209442459646737829093090708165594908867130086548854218960186724509864275231678449823664367828222754720865264741604521945323999295220834039507525166513890293038845178189536490887026595522010076742605188135455295949693245609546258494840992331356147120880750401938658550568013840839103874889586484740883351286693271265735713804058048776418475392406718245009089706842569508885942122930483932788061074780805903346785638303971317414770253816407706797717604927260282578623478820581881123285756384776879704971668655774878088789586541140021616466182722780110791597955576307200639625453261382570923452438396469880897212679275773827978346023974577317414273212324653196203640658410047556669321414937672915023365083242831723737122377195434326849240482950735497102999804404431006401322912003067158693399701384373566662905886174056693458201893941530655736725518495436947200623931085249353879972838446172715543969926597376120992544670345699591395402448645824683432515076485602696118613957757994880545568779417825103558981490575942441856039013095277795250248905812223676089057288129520948961817579572134827381552621151774768803842789569791897987807695693205413337793303744647844210633016755351797270309092185330502781503457264817763076245250906579679881748463808444235630333956587066398904361792023063938343752755610828629490134572709481862429961333798325717227060999378477339833421016029927604594519746399498908550178771330597842123946993882132007940524400028777792712951087907055270261902382024420786096475231347418323141564589256374807458595120893190028143581168099943347904001082293579036856535696938503724252191511840596223731396624357292838441684822991846196278994617244129729032022723097801779117097099706065125337615909247467868435454327532950136236568395284275826025929248015415011088089791000357753268696528527194889205778942189985015702346574496915546644525447542486944454934592582810560240075206907779521704270789343550403069525583291695725563157660693076851560678364125025596622313250127572256510571959888640743885516603438763147916235154243809175668435245992610456643609873520045938838225445583949119365294377368738952607888707157417085714599278475777171580530120463567335725834859991360844593542682481186713527278207198472682051739767167105996734789716373349449219259131803632077694494695654062235963202013084974140288370874219226498751017421354044884886711277487655839052232756867305699284608048512572473356355303795995178525134348622125878155423796234267444917030564861726883137166741197381652496901193866084956425451340497601817166580019190561984547167162789829673854245608344224255350594839340784190958504261813863947931784319540141877052484499394155634654351112934731476816038480499557629213038748349189167071707824686110243327600446227448181537668173293123363595144035738854367204109527446731197858679746777461411870036285021641759503213592989837858492690470118792553099551368966171722176592183421732160904089696872562005513150304658666229619073771017694682702627964342167425777103228123152107770026112936081501826054640284718119844901240623360342297474947105007823392995044844215854929530003241346292188339981112369790860132681720164271542344761877354341197150031537717853400257585592066535996745767171232971019635346630652953945617357920859133979681772440142019235248560121519348049792164342926716796314457788736703592278175945729673962496207685230220015219070438749421340233699196584418781280112276655951765523561926572331689822171493052712317014223909451806852791795894947287772431518633022110100501616575854370926463698238905503062653457780565645675276305233700188842384861729891921277472697321269303131724196978968055925098559447934070785373511877586205753092467411825596307984190948721744048800063430094141169748457180384058259623671464917202268958794851599903036554644191693763644186281647611365182705875521257828915299080973588072981571948102224484650199565828842729395330984117606423917194070657788919637699157819187297396044338734295082701008359451868332496394743270285991585337660251213958094908228233235653264488424271655906698378518085665353205272766474081685869766553988008046541147245482864711052335208170100056718532621068223777333900621128887736865966376640639974741814439281462093388285381696598778438841692989233093768610223076759689166211225896998667951426797294195914786471232660745120445066036953348188278164036102846446665281608248707765890174710256365339198493123997413330124500341689817311628349876435827331717983856589679530708032578769892470979243264632446787297649485487094304736348725390878662582234431359940043555227199780467612153283108375628334283713648061058888183584247579222160762092299645170871137075669454265480402582980472104279929978440231294861508880587668414436871224573084137305965596332340798327601581132924187323616928705865076864988897058729557743857748233754128237874739822057434242520398486538385633938223595237598722214938699208269635858540877676065315310770141164605920092075064937543206164210486505991785185778337641657484508943866554502788665799197940387566044519203098537848932211704019356349161520975302366753029892108996918683577488163559240770074774365484180394433036304463032564336868820605022383076188394207299528786292736961057290542975235383316580660182539889947163094432172141989338171306141555973414693512343280667147855924584774783163581791788412232706502119898488849460928352536933351653431669411067657149538964140631603892082484022269990971402411979387290311219998847016853352912209008713756709434911934549226117856746540335145357196572277905391045998958809397667756804401592133222511401635365790552516575848791775778332441318416749954396000010802388201815653597293781040019569723461944336753983570559262922345595391256865016617951827064573510689055390888335171610872598285619057024539408195168601061188724181749021241096359460815477874215992706835940265724169451195387830389409900285543176955281813002327563581608438625962055970983865493013280954412791983819474766837977494163928748785237480658584946409166334192272357932915985979853788198427118497924068933214565685957479607563482832075069730510372092691341507365226731956922073404204593395453947566075467228471366519452883303212531751902928339393988385143729051743021465134478783252136292627554873424626766650705799731935160383716241129210688238796147313071857956429645893626824628931946295025355442169727553056866253443831630263848527397091457252374713241604650108832632870822881379734905587799587283253885846971365334189911256751728654087818968545429135227725580691110384333835611709966544898962540495117848658413859268057614359615928693345517742957560782274013464380882880867188030774200962197471386110992269470273379927278429236020619625651926696008458480382463995511472466722611807203684370679076220401749045524967601340178444107216138682418668276980179387822645521046898861476572576357872159334140763658253102789360751416893866393295382419160127527855996162442675322663460439475697340474823318789174184903112569671902053034719027347264551856511749177705454873457717400292830326911837674912142906627030289734885357411978030146835550899734485948414123443717424514341477195577406352854333825785030535938153427059312846557271172526285492647417791734813817923925570409892971778300872851592743034711706744706184101805116412661252846792547641341128637225422946480849131364958623363027534892425042175551883887723153248771199828988288494690434858030864837388893718400703023783786363288114357476637727974989363144353381510832033967955523653280458841043843815770990097009098408337097491751327791077186056086699776616432910635040897001327598712672165007511229499802775308879973177444492167156581802280671585639291908500025516180970884555646420180478069046532762584724692685125431663956377871618528639009582285763671323073308605774802130479456691471338275332510086784002742542772981150403657621984860822903280594108222796499212553814968864394745817255986194938761223620199872598405774074222311226244556051150276828745841456157675552079648797188891100557311476682619938497192693150245302999372716411594042578233727016917476236008689186284009455557592526332630129457041872037521248648630272527676716858914510273879933546290148962581848893902695075294666797721575884178459579336050030888839457043213459340812248837359508757515532485025114704502563699451645202449076923375872298515640599686377880162618973567367932266625242808093248894634247675950615540368281237633505644358991025904303711907845430399628715909124181755371963365845927535549361277613878052959503814320922555578599513765829399384456580336907483174821859563706467531922181013644588292575640826544944514970177316545694392839877624230948551250624730092531297355170064204026804862463566745149659346067765401089396880069814376131991558864356058585825151786980629161438985800027351283485722731499163125469774249153236226729452892124789578498324184306760289684025918755664377514352707639283013844632904154881223309245310459302856823427579405256527685195484062025842482599704155324118206218355867476201917248611384462092322136909202862711218191091983050273043908076876190997097168896142960024429532003260850326819064652966527315042764267579054732863327629072191779064275381061038579883119206550731439186123342984450970158864517128559975136233627703738664168958020674656417823298688840253216623929463318327426040277753804777506815830537447013515019789620030216559665572634436309802272216294472968406739174557967615251607121973585324664321014915048582745556859815181438763000803780448480013303095855621033723987128396298526236407041425981921864849860900461353438046081503494848519729761268257707213568231199430064099069525686009353700420721733891065028416465612560499068741785692818185408059962066188759365054155251263483312797870715642946366613727544488237274508771954364538136872803488718452922202320277510167422499710362632668962072250994524388205912449365825750767505533334177523398326861508097657346040970028377393106507198046435787183085803087079614275301940162748201504992166242237679556561910577531146846589395407835433381587518904206261157290562140100897794966105162776549235347033063561708762872485794116720737043671000524076632326591871130322280992448677223864605462186881338445423134944946133572017412418950705415140962032462219313454954581800927805204468335274825321680367275151347206370517452137592793593427926408547095699803647135018429789388278409088831903984375135639444749798820189594806389529885382963676122114064029800918611978752291016649144519117868061334890625361457311523887008071204589146303037466398848702163794450920550156187554459179526183681861477631190337929886556764150624195634220893216989708935586580519491529362971037836321874779915747402731657983143259897333084276255068597279945169229198728325220437619863652739220807041740802343634032924256986541418472394800899279358153590135248847196429876053955984477437173533883211973583559496702519396484614341274044686293594340328341720360881293219976597607464166932882149839918561904771585855969071986441182680791993529073218226031206109068614552533401219016473216653788661578393491622139853300519175392618143910620039666846718391582755272898472475152598879966201441710700378878751266192891335924097996894146236792656465353338585878861368673332853739279136203735399147909890922975015391034438173406695938667919768566299365824719910858898325005045632847936247026501406976243746051986845447772961026122364836074180689047952133187447288840537465647082079555131265658414548865374829589661885387431075413156801584675649888065528912381446265884577121041122918138167979079671842185385353956308340020673396278034832483038669541746506364181901274092253941882316634418055217425055697798967971588578206141284121413499327970879159751184243808146717934076826101435208143783035633378591064236528407482412758094488465399766185959087453927867477142160925868929709053983475852646383658834295522640779827967468837827199843814438158743382551988362183409683982755414647425663898234107637928866590999617500844437385864275284686591731197462727893054005801060311967378830492277693990910356722420840090001364082806804536431617748257184506861294031207339665466713837935278352946301773970669616332847125167125976697260453569736534749463429854487197214313293770681883129980168303570179719777890890757460286579486048750292393332241887252112428790911068494834924600700916631482391052604946888745745170693263762925414219830774577183636365902132654607678827375723230899149309318525396217397236081976253119515945691012176903806705979223138726514130642100504046131706880231728249194681462242587096748810440167083856404569200249060582063973540361478743919801986029938882398100100937751800827625285370779242197469050463290928418143443496503024843471432010730645529142376955380005560083806789037967929706379161427144624543637821692153172535659484043702870836787029568675293180647353008235756958396667342822075856183261631547299622220034612634713235338721645695844647933902132481766164114128413910808672191307445750069925637237420220493780156902902540746963896508283125295658309284090091012155622726936487413729480145146087025441295171091677859997388901238739848021993920249578119866460239502001459784756976033713720356509049556050899419420045147771372140806140442634811366629681576102374806862137151721380218460536128405107112005891982026459230844070411937006443492459186344981703150752338513567645734324210330162757256052297348368165141070894665616042067325345359599053105533523837233112279950946833440881493850719622679479232351053793900442418403432632184993725614219139194246241262454037995682697092254161028279264981034238308343664906770042989142498388784978098687729461485820383908969396244199877949116156449300562875644781008420316564117119277342402491126545096612803209451278786040259315778026528901354548059615135328099037389646901662655748951394323040804817982842859191859234831057411273504332631737215162567101119769715924618066165930025733225590182168469678188636965085734682788831458137563337526372287192113848521261599817862237400792925305440677485494968383194346957783210028676799987588966353342554755907130603967315948921828069507423231124244911493004658094898650403986553499047815404467818327864990685879403491575372985893800453896689936460374295593229781649709356527944307020607505394131172826385179408869210086084287964115558461925700942037943842188108410317807688099810710361221362954498847209782842197589117927968170825586968578927848392116843190003195768775853839094668129472332280946813458544493681337754305831493218150248022708354030645606288469794397748524945408913883677141385851497249545499438143305315184208961659343277232263346512268007819380192557010097493590030326234470502760250950422643630633850961465609213766083678918677035175728859314694965138155825452897104275553007123645486116675042281023923269472851132267661014294875828628312057782073934243131453128120183618301006472365404517865647522280874801108439105540503084510290248309440004812209747287051239518248774277355849170825699642483591674684862485327686404751627480131975109612661867742972716254454141035709939063353113379589859856925999727406266976721028336622315172464893298878044012480038064398655422071056379382398083959722597071938535981804915813092845574492681701958660389367523962884277463170471133146779163605958319702120699312584325039418460274880844436506892758723182112070864480650135822554454514791331371696352417722841175858892022703318099913499331930321754002795314007961332624698811517542551851897274597403233522904018011324255113802815418831152794652987001244971510118433202918877515681267025443032359170266512195592391778361662596134836755263840625309368941001345924639992556052897846708477043193769321273822749929312262541872102613519344589776426466478940393050810625664219822917584597947439855605033176454769527428338758931722271977385420145227621891900266150153433329714573855587237208031776528683068329903714698163803882643632609630803765805695298128348849470847175325524466962284168553354227431810146682259964697806247715983217889529441314136740891505818881402599891314524367581770834605544097193146105651080999422416087609295449446452621757059079244707886655751941969800953903388756784606131854188927335898309179970322069040452927945677058637540820629709268395526391260437300266395769352508451866190490233424814116202223811644600732922688547086386557108200829454985312292209145055969653139752948651571876537527741279741740020138256241191635252222590654578415704600843679093896079321048876976576526766218970957153554223784893025803011590051641724354829861552955440592687079645866326030748374570137683550837904458697736073961381473750269234821610881382926141037003081433821131309598279014427753313228935130380403786016276932431296598145552764889257388901175868897616088142012439928539419066161413230069910273033547996626704097192149032899276808820542894351554034809017278202302893937737398266807741625126671053457173922123842657260663957398027643918021808066335966844144934291660667882067839652395099582158585127039601062614234167429734071339697101153936850432610207599463233306681298895958378614336457294882232050804521196638034889097253319292012198818423079288982043605367306237396665334634475868759194162197056624703303346437372624993763620923082754375708976759263528952475123382282051180115967310711156588940929877109663973720394074685811622356255724516735905642932206656683273448272362299181985166977564824932814009661246234940702740149069173239480059663216559043823251936691873098903497992491331204243881764396986445521086911715941938399305640624845683732830708951429996399722117850824629612519104005058280698009943993196035184957058966705743318675832537953728412614978076553258426769913197639882966666402655778242290083427917691206632162777545557976597653710716392695516760709464665833880314949315295136922150383600734461586096751066436447100677739787530238704708686993421749525497816928526335305136057079637963104083879551896649558279994480796535058242454708414914410990101223692477600843237154375335144356007543227326381442164076766967138023508196189915237181889104453583043913169084398637820593000787893198261321802742171602433800363462666144070512457816585936211650789547795257755695447843732289352856609706839225885214104784732491144648633201663620664955656400464032108497644195567539443735618032363017276329369267448022807030493807203129352646951660376290374056785263259891578393132875857049237050220818045884813660459884593841632223407770603996830419274451343028873170176407692188542972444370212987292897686765389038091497520806967939985664316729684122495217841711161030751407426080397934766790648336762755826659848239562745266081368315459248602565095292746865878519266166808911218235933348320364584138236228457546595221596194827790517224037395508041258895256538087106537038270729178621258738103216404587065398712734079975060520456950120179464143738904646304202456957102842891405654161619178978638150845259138456381853429164197428487691749082121071258394004890270282046871473546799534169498070090499149564124336414115563728011574472236629654840898940123453704632736309006762166943462222420325011038882351144842860047946577292458498062077321369290973706887482593999707500094018881623929667188258043289385940065271040945355545717347072936497588574174328844443054538999849073145960498439597682013200793482152844473707967130519362150668679053173846245302914937488972602066807012136682076096023875458261553619838542366422744473141372308001394305131943403498123847999283715050255648358597850527379216267263827083931400642574474118914907827923743285883015556620284229353035051145539012301232669001986599706765819602625134871577466183615204964239035412742580663779402416413112758001609599758001381649115078842911611853397448701705399198115614638648995759401201947548792714531438926266506941942990494030243816327702595882692453758670940216324936315320477324139149665348805941124436952247239521413058739048946198369986016380016084578146698409247963414639088959678268785133145136059026873918959146543608338593459625616251568383666975773452829968178650520658823897467845765656185443999060686173643359063627793999726273972347107595140097548687391791211169493280171575287624258007816860395392583983534460106997346455997298643547343737841965677566176163422463177646300974873273173243824608157969751543883625071529145684456025009529715582519621498522716179568700719749437532753254516223901424829185833489256572374465690302113337168363187935904791504223603097689227956340662883182982294488576761198556911928693010738980401418255389863524844740325142263342302107110261893750404457963080217846753677724060697576682230006520453817412680549569042855715681246225624207371498357926702787855471919944062516760946247221314569286486803488311303690018707464042515381475220980708091829703303778309483742454064051496910240569142394837827217033789382591804982182247391314328713103541751779082743898144287220288743129776407966105303168966579768910816435667177810361277473350629795857264653942526098460140380087681277237332072526388378957870698187721069548426844402975850264424159932037807922308728942255239140081330289812068839788336269437332813739621213805326120643033865092727253914030557716003179323204504179222512393254386301154947187406664168383576469200061937827634035507626564500665877265012375181345062868353889058281810450387772079493467632686205209300553548741644905504031210666832335191869353284972455787479961353285397713864426629189181686896570959071400036796108284086219729123740347954180757520705819342369359691139967316038765255545105971862904256255850447707115495419608865813591577461025577065410973553977390711031300468944225298411565559190615690339465735192528465540589553983340208664138166570641653987027388145629552171207789810431320821160051620845265878006700999845201853056294687202724242738361176751056563191902087379292995508811923190290982292069562433962037872374179820557575503824224680877372060437824759221638362253574565022285148806959758278486622716280193109872583977053858599827031919468497701820124956929780385043671121254808354422817627288847913963538526385250675932097455383635159534232355362147575200062543772974535626850928003781169785991410310197059189259185690216672399434024342438190973114189278271240836380406587684233290290546894566813247622188183009628978250389056508289440607421074899654098839845799875639766970385393063271487614910960039290155671719956083104516873973405826992793389575424989682751907460798751067430393994471544141186607345734042188311951172747608204585576869797067634478748514097034033279957332525675557536642003549831358926202323714836795304255442042126428130572097659202592703857835316694832240496056217016175780727950860159672018103950046267782304316845133161769570845118197896087010966858003275047243336855664789975926089583463086692751502236975743384803575961734829131907574832207444294809758710603195561079489629896814503265092483094478764780034396830658587948279077112391208531780135515367641410454085431268345925033643447860110533174078873829821899266204619638243719311344539237754474101239211555320335469887398264439276906195902493291558458600798256835232961790942546019863310562341086676946858525175220891216084886724281384390408222464914116251897708677077805734740011538829957744146773530623870405177835981062742562672781631803109697751734912267620852836220594026718081531232544550676747946386688569401575332041922350967371674847679661349090933701524257195281153194826108489467310150428196293578403589247071569303940970136698416462674372388144423557358490762696537064350739893551735947763080459095337833183051618222472966253885330711492312123599803616201803301571983911889899140451649185376746756510082276882417920887276005984760009244492994232635193570276557334797153992613752181417668903834499312135806495951048176576142380476007898451224600653144905018114954177022929266230751341328233853433096701394766568261731168476482286320822480546680635652662369042776494766675045322582546219327404489866281501931008679401701460842113658967289102181101525178412897169498069672461403320857932174280200922916135986313258092335471732459557362872006955592229917227051354350813165970941420725151560518732212901190985485171670853761795139914560057086587656001581812275479411902117832212510877719145243035916626013626503025684629342476480588130523262549384721390583635020060391017117542493357689512457296141365291995503081906738740322174222256148660892976560703539339041698629261701285692322906301622478645149581264451748671021079483352295072455205520768185887676280119777997041820064858249115387870211312548819241239283831100061528055708083812906964219614628926893037012317702934212619314831633747150985560716234609912954034185611240682131182819200776839386336452553921838382417917353738483267506602068233997664732295954489562374957194235810835496787656242405848074777020494394067533314132568022060652886595474296982378058877447840715942048861586218760279256241078824467353509295804889132703863684768779519762232677316980079553213828071730538285774975090679611150637014345291939602838650988333062381064939183365197413024754185143765980673025847343411420936084679022738970785297169702089222583950499856140811439858998014253343994398276288631575789685377375812250800487426516970026167192050612502339269946546771368578202098741534773574016719476648082642854146606723344014217474499132934522486364061541159756412395824280884424041398621936356017148118877534830951520053159915007022767353958302868497186693830602035492169332297183557021468769796391336466237888407581734953084047977247980081547534490321005543948702608327475571601994243223971900786672388372130204840473291668645200328817566388423961301263336663783581830129667208790832881748805890619104207852733726366692605190802093178034807968079566057262107370109055135205831807398103602743712445357091430257563920798624864586000238466562054939765357912897178921899197664878588545921801868950019042158978016440514321850279670922631057646647320778794270373752662463356508752069927492026111726162029491461576991201207390140576303494496954161501160636716029953678344914279356320912083937428701185344898056434618165137282795413671692843538554002948869013219554856750198841376548987107862329491106752631475580027716941445939320346582233725874869387695892652572689735882860819031786930250716318572785767425084046852671289871546109636704494763973920998211331773831528968071995798398868367093429523022211825264728059217710517320656395086826229930164676528129105126964517183603274878286094003787843019411932783710735195262142843612626173586700812135661027615929632117250641692780671067679729751150145012470125979058076643449942776829196834190973699985266853146032059654219223545766303773540204356447412676287708808677204098030339288661948147683293390990862867950957277625411216364250074425857852290372422105318575743140785137813348426954213110101078996751775545951721909407387553608418391365320526494453081094720019056447977512376367918462385071011361332852363524363447984964107027703127221503345048524421672813433109888197049796768252389004836204776679046002067129448548729984240785402245724307710472514740394418498461278474462626961104791555023320071023604146598661544222385826494857936097682330393401788175288994230782180197839044916663542734169133606861452274659451660792789584600469713162013986574184407088737983547107117454420795085328608608505080238741066294868019194057656030936824461782258014997688169305251959698893752978237233999909428776408826343271325008605714166057068790923099653314848285802886885228691227520042565689962482480382013508719472529293086387987411866086677740395799578661592999337327896861674512710107617999469888929706793961106634631890043328356616236186505519841066094482886285847439674543260293015320220156750802706338083534472459103572551680127325746025281213280443855263869042198566104595081420032009677610683834809974250063013357959988571699206130298826883781755784731369799494355996744652519810429582906650787349032298640273877163942351122067178249517430356880536863007181253132878071740592234561763996452323709586786563574920726708865855011033017429560324786236392575107043643081669942165038993524438588620360682613533555416908298971304102646767295128474159933638259874236197048280696013334770966847414445502342103795680565552731606674955469407773127193106272856391624123467831703217963322425736553386120492732976354351489613081735695231406414241338744514930830747949307633789393805452701533525688084176351944982766490168175880975497082806797377442190059730406471398055984148138464527022389860867320719234816047912749018489712123589931940289138062599023749960409355156209459429501281034864049083447855987695248300749634429689662750115695365489573365759921412306328715466564612145424472978471766286124553484349265371501075500816507420025463292532201559648961605773698560702034442657630683987774781137214319342359431784928844128757283917856639894862192383911642826547015189492572488492019473660515701183322686401768557490432456271394845745315752519185492555288982120232642296909201473351121522678658320362750369973826292693028638233434607695233024434774527302327036620451935784765826773768634588522662279892347365811902443230229358711663256919677378329236272233668171811720188106861314803933595474236326087422997142871644570048294540612189998063364153201460132560519973785325792688912980311221629237193026190124046739233786272771120919760022177682060392052412603376844148519828048043750230235531441669028612039484014396283984479525053562169168991486125400772633296188079108091873596614591611401910065733857697790593210504608553710940197703970419029351396024083965720455254971578925609878131515185459387747621745085945132714813677194357540250109408521622922191289799112915365428738234337933083343803188357038293114938023089431961282280133271390190472218664410626734722115075003804314534422392563361955109613122887818443002479581426955268302670910263071468734715679566879022745066189164601564998469221293406555028254780645836241875205558294586320838625277674714377513443858567867156760238716286966406156405723539460901952988734196092332640849665523311396809779767347584250950693011657764828026185369859108372096895357944740109275047393662853826517301774409868481488189654316693096893418995134758206591663668148047803059075981091891388305562742108320028624268359021510140420940289362538877681269300023346496842223119427464195815201673462721443984928054393674670473533936474414996076512934041076884866894831103655695880613793221928045982245684420453211627109964772935815321510134961643080909824873160434624382214689132578848999161955681912819981069352059833761346753358920590522114065082045050959214422837166660843042634777018726021175707258805880765978813212598593609533123571594859343496406117702118660048975919167753952992969152527465582147762191844961313361227051245322574362037729461097493104582736110958689041413395001511851807809918755993021519820554090911534276047679556426461437353630375431835271643718675017227003327137638311024791926482249112840413510583970188478586954018596080583112756678640813465657267637519227055893855950651567121661541940036989671364737995867137101122312485158083345093219881408334649833493519134393227423020165884579795692278779781977120011354867727287139751668109166208346746869325994691067077721946551256359705640351069357726716597500832702566290582992500421929567364790296343053209951654182171381790654544192694510390928750626160944441369843130677182927473017751672191753195320580977316961873922626021233759853019271205117275900704558093106021429045691571436801236237742239902627600179073625163821548338740433690020437505833373401730263358346132475794506659321320999486373921443728963077107718706938033888860611532729689816433065753376129327660495323144288878386685629115320722465546385727508412018417202759156168407014046413701949771010631787857891428509953994688369961124125654012816369366059934724371769135984451506127022104473311419799095345953533727373971924869689465278009458953032556966115188473451104888264205479694766263051889960641950476302725919941492596865442335695011644785953234700500365081698000044532504001125951422068519632046149457365967608135723400566286398312060685501712097067328249004165524724830265493078057537095440023116373947816997026555139288503325318762247239426051730667556682134313250716592093653201125535379406361327377400173116438561970683473529224248473900393127421053963297295915772159684541348997422577431194254974548973662588108974884631488270152013481559225226469274350135612622733607443021492510100580863135807875857712091620862752403502305211756683133574609951289660575502391005391506262852526732863650665542929876929028970138486136559960264090418128831701706057555974227340687008959321968712117022040166602530803893196144932735349456388507138211645408608020524588531281876979944381014195432429036337768906969734425619736732783369060612242201441837113056858752217302597589657469163967507372755487249944140316127774980589758614550958721350136338362440629593036292536487809239823807958757162774280459450527993820311369212124736795040151372479590445645020564972304533335140755908517263971351995766104782009775445770871742291798969788900666752318187636949381005505161585734330781248452616588499104144811754672114404863774898629810363939228971978171173985946791268334918678683830252457383911816657220995180124123534621888715434989303352997092665211560681840426593338830444271848897828673218624606989212838802599370084593978555204507361226891647146734370656601341562991357045923547548044036040178665105471758472290825636732580186333809625842350556161878629812439558756336931597209222471406464892791884095589993409109716460507848201386783796632512474053006006221616301996133307804360234977708064315521154322896074557818964518061606125389642282713479232704352995716013043047403207640112799739641240909586053067530523003422824580475304502122330479004779127805822825837722112024246707438694601359186762789399897330269556029347085901865029232078483366887358618113820625665064794817368161367645042630758885363387904159044465453808493979553884210854403000562339750223835990210153406402802509825807921111242919181249876778660272368857693179671817694325678145635068305954013041396732148673991465875099421036436962351453938209755314831373199091717071223569935189204543241621897809809373105266435319593224206573207255053834432377750816404843360148386513099428721935392079575056062702931589795207103714037269525963439946643120615482374961187696489080771397474601559199263296144465861474267818693309968561973578099834948759678765552745616659901005989754746774605530655476090983716676597721710734285571817795605571920596134571961727674522166065773462428952040038064673133399963372563437938314072303876503213090293611123812071265487024509588690138407334141755866193790764360008252108588776893484378212051619145337787412965005743081900136920759854149390381433107437342349278910556619755346920645913625505000838308526166464442883238124307519377384321525695689255509990850840887994299154467551155332271858113798919691975276536103438285835339854276706771745883389252087424181312607231788674366002444626991677950078935959780851920426736977842572495724395268420810524128043949963967869021383748090889404265781812159109357165403827767057457668699385596813319491379384719732469965662460681661118096163773543962577054070789365563405350586253005301191501509094342651211645442985594588312306440989918731161804858917408077176372688314047951183157714547864474415575814718387401189980784236496860298768787372763090609076297516694664642086450089198216222848231118445747006460139581407872645569853682554715924148104424394193192433344543111756401238734430735231867838997642885115013184924961027937791444295504054414465520380207497994853951647698977398009943001034952498335795246849789742806520558443649924259746096530531963278688507146117253414817797357947077722170757734588016866308937284584688914946275615498683956724382333086042733215744836382718796161894152034042255259175835328642378943621069741162119654177013784529246445560667963546694140100616473444869152549062812087376922794148964935485792075965419529100711369745110736870227628795671064529846789731331820376108140585340544588304322970488629628234420519425980738200076755962625744778960410416231295481123345772500343498764088672346365535365387652962075009121979168235368466173669502765201837919803043883033824001580492509277987948253433017624512312454528293526485336405532178300287851241888654688620669739086014775731279004228089458883304557680956166063091428778933572741562291245535870649310409188130897755189912382071820629032755665234599319030899659923113462317282082206190193637431408477858219929543209777167354166153252589882821419702009295279010008600761705138487257492760966203822860016834906371193974764448657812771116142878873201502017360013947737979516825970071883091621053396149830269264582366886211270887368593694580191660933240291113873890860734765249163697412058622168060721711544604861402302287954262032805738545993674607054459361173627422297637031473161248071233176902134414895369072505897371030465685020120084088321253392603118048378975261536083344478234669389550843100138283084514227575864243699657329596684515586050580613341899517363178267989371001723828479028266424384813135577029388830531658563774743483677127421383895912420145774431818843609186214601466206582991032434717706465113940917130547155205468968770591972602629299109287114707551415848424337554018444878818697271450784595477098366693165180556870031870539651890764396873810509509844876558190365852032941182096562788158869644986015091991086564116301220084264121182572104610059168735297045274085450333854551245537105444484515963213057087775954858425204651553919483653456799820207891880549342362816332238688502596593121827623711016642825417355116656891380458378637511186197168034789746965322730632177277411985344182229065011344414394265673310351796248078495871580210775266695753937525799662957828268438299166252860068498118964318790634767805028505412707637924317224728428799074139381119620466750613734235467132006488219032799713861612476437262992771541241090610342100430534255462787615932578207766991630102628057926438260658623651418855353915846352057716124266934418177808612042294872346942165487954701887844547761044474261053765089687104851843839945776407745342976218014628522871909014426534434382311976593853885727625413582564530292489724381452326057597281859518457715260551294555262783663925283744708055924980087539116313656774979211816490703280975753294014187901767651571334840318732282413948803298304653472596068967125589890209012728970967422110265967496704739570509691138695609847085468159255837421656232946314679481264497510791388215950574097863812515120178896767359601370826322421140376233721157812503888605810312657673718456404707421749280433660259382022513036610804223118572324999689137727309959872621857670989439323862367955775569720274544202065129360349234921935731060640484025749560006000960967538636163808664966863433652689765157839247717977311307058139146281218894141606466889392696878092434436337364843594216662823184683858839068248325098962461883021679587217699679434104025730838141463416411266903292310990096185943473542407698374915234376136958113276497129356475609849256890213004541107540386851374142909768560421134844539531452985844284801540100666242734056230583333424987554146073339368834830114725888037682468798399731204780068541178120734940403765987607722876779303351640343605222089568825689973383536121461761429552841772228454964692560394394850982233798613176167862537791873092363430722991197456834763958672931533140513433451764339649258210281675033638737975707741490989136882435784000186038886389902836346722813213322833953525686322044636777780702424937254118006915145831800644717260427036373463337147203854350875772531485843972461763491354966820808004903169469322844381249858008913429621463650013621595560352443376176753044039034074935318721787508363840429403041458804662212085644731612039665007674512958488105937767362632101770799059768715191295554642452046311223983606476329135484954669021325161122878345713937471079717499888677464504707496745243362882665527344025398296567489851360680982617930411820130052586787568898484961773830712316470848043004042887532750160208442763207095176534840746696016966234916740105173769570228066933578356943002647414842208199795183194169774750800340089572687526397050589603385631525370809325863672735352457154503537624700050915948337310513860289311815876053264800473424509461720122244691747100887469342805512134859077441069079592550508548852921238678269493656085805396495263047038072088387040517140776591387358511241819648618182585449577401998150093612283574284635242296152793269374749797960240760229254414423458189778448102373150134388379056141133193737500491410983642020070174705104176650181199930590085342601763958514242239216613645735736167345821114544318661516935526214426031880488488970309037650128136298234257595587948615804305678991788950810629272095645294869108168026900343308197684384233059855815615739679011572889807896870710784750415405732178332594780627392037593790816524817611306246816612537964064381369228022168609216049669141151329044776242837978239135465205326914591842668742772879146572856291199919695236127366789204261236172157508179688814141996196761247416923779480483921465320937049873843665490281375021447037267323827396961468339834379875919115088718333271707787153525317586141947786895827789232859582578419497398150410320309477761356121301538359669091211291918442371927351579118898452328447384360176956024187313859243105017643224699259242423374367085071711116053255014414920124494136015713341883326921099615303341025774944124556388671407401440413100657051579097891466873427861264174029218118148984552734798443290130800014672368649460351012158835675488309387705203065361638703617157237246003135854318630302120189025018731297778077184848872771059225630216578083885642785820900663117644160129996545587946751795311405631973804176565340858511418683800002935332695638078019735635335921877767821741035655304044334811051773762975290448614041559829120824802162507593377808028223626105122111747169482742078912543401178452122868606528823987049913713311071743997418544893665295339462184164100283204211508594623921256797543242665970553190590863695656882437634114812288748175440995660927519572471155162388818620194595101437753274845422990342735858469442403547048537083298198965370615964120395347926048246935955036666553383792680929594421350720883408834021031503996966834769499306605536289688991068648718588564550363872972991212158092140534729782682551490645156969182505539186787914716296360291361164158813753718971435212990890390934066847534381821028718896812354732936221528331856015032770772913795405701218939102647981822889433955062020908603441819014163369522908151014635588599721602106569349205531698541225583595007122814277754046812588759788045401375256906021476557630078640840433545272891218550871602765289933815137164726875483913360629533459125547574119383852529046973495034385103337456934105888699987579029844080975157926971012655933988652987160263050259712113553736195602611223478712781484654736987934640331997923737329911631834316209366419353580309234764491156064953817570029371182476439447077570583235788677832370245647419696653985087524424738321049406762099383730418293354280733322047179180220255585507985048918800652523170312983918313202863305194247069259760078513286898421630100596245486211085875402526494436223520933768579706963695335679791997760782730004612380199285819234518124573846271616688035185436334594119874547174716044337009093228368388575507660116590224147661206316438895731406562238585591637179493474445005472693242407623011212744208320100021374499216675747012829308359515987117915182011643096322610065907276214988234039664679298909997663747975157677285154381286970867834797529368586876462902307690970052808445290856371269277801693991577764749609132867586793591432936176336722805860967110581485501586349894463735000836321834631708164159354378637508799093298864106616574415488552838999099065380593281452282291158983989299129771432578278285563056697594842161065761724224392747546584832895059548051197757358173855102866623952854638794137069013193124903642136027892995612032483814442443647135870505199356838394711133202909432580459179812885899724379276366901306893892035702357305451549777656682200601511139445138985486606139462697658948557960382409179807622421681626759324459166010619280469191668965756568985436926256177186309859036545062775038806670714713790024011252557993647422814942095414049480969078668150440770334765819050056452893462089886499590652084106278913371071604020738168570131369681128233758802257994308550076507758128305243809696269599504415656458378161852198953307221739064652177359863404332056541621141587925697842206801427118639320655608333122896354756551724488812197019710716987416931002678186433448347953833953873665758366608559155678650593187269863536231994130170509364396219417218647069295852303086420110313168633347782200787142739172099452777104604394332821292530400735763256316908845350200564009276718912486776264184119341048446833056140874683540247273514945949757270734822438453976304143288418887404874442646966116489169945406850424835424125875338334672662948867583170259220040970324292334975274230715443059294466463776932078753698512841184419706395434060950694557026742524153191409121221289746673063967104697190664618236112317301692930691456920217462864778940464652713107437354415966962321640086426073896588325209212656294779166057534376461141459713057647687462552472540384441915659361641615417580715655343314359632726783994666051384562256272971558814965113261539273111984407936828914765710197934093912727068781874253181684392398126118028773477905564370730931468423255853772525682950534513808334343501023729686724464686876216100806632205087895018533342980890018702574402646575877103942703538840210400445445181549438710879351885569226363044865692787117347996743924774783927044616959015034602377968210219986374428171872017991975749987285957732422049690897665183700201095461457728490801657283210833772801411005711788179232824145709894592827222358654449854683564515801952803215171290553598322431078251899724505861605503245304618460309722186946575526405252760677517089557777400129117749951894457277986253015211130057146584486128613966782749969632616451829006933569413613797974480114820945449650266580258778759609080552700453239258473130037615969977956184742617015030372973386775899891674450999749074635933351083711588065113180185059099611210193469464314714165551613400253695953258708448966962144935296510752866122508389971319147573704174110746740343159721012181846059510765328608419880108540652503901141374396050796513470614077699179258385646351570540903892258449975610481594834497201553711907403057876786591657452502853684742611727390660590174786631208354923592779974745674523980609252035874287503912673895329608581587098353175937809366465569656070537949140741253263769172545009452884317121322468660825247480098603844830761993363077195691152606504212571406252688432072647605047227969315553917719336836648603821279737485188443975240635142891854424061590552689935340178829273391675041989634746054808264408603106956224399395973654072124688450184367139888364619814642423338612340467349383724657045430345876780355226067426942528136582807083516304705898297354525721331051931922005005745263177196415420142756561772186761007092513262058276098282231291565374009351430800595693805838830366054554891105071161056661608680070155334017144815882313588774845151196079055327342337791990971756624242732855492566112137138416852757258792032514694443738232999889429965230709901582706342812770610650444064831287549403445101914439982236699655211172622823050910005549899351836381107000266150335146820607178427205668353218156100145303177970828605267058989444922028558443928102034308054611392380616469600967061913305604602263048018175320571128784995657184885538536511368728939470720176251718275807278056782821672385915528426382757306970486401122253513252320762712061069828051505716201764216623870021300512943605329788570825808995824007918894832469877994553658360209162879536016310465647403195765271853117032234778878181278190332629891157515658927068654367808997852607790649941175273932722081793226372286133127687657010497966471063742482530876522457241740445433881581573630449167832873903676469603557464142225505490618416345281892229988612062224549716510219453785725679572135592151258053093132715687142342703080620999932846393577715563470008068144847369529554908449897010481306161545157240003560568860713401400119096368833554602858008310989474486571993162843478739519779832438921771512557217535098335647221209344053977649025835178101567752129744761051098831291265126420787163448440039118847663479932019920826077828156831054371051139707579110622303626177810216275698755174481893047305534616936449162485137351772708071218867336213686131463401015660899123238349160100422974590817462825537514172897559355908961483804228757459669268005852079931454751709459210807901472716955680362618274722107455887408666815561307088116700155722234268504310012693482131648687142605161320736587451226700159679611965658055734397423163516570888030231863412533566478768778679965100725219004377718617872773371702732994087988994574264065927207029068994785022331536513042611894478242168344554234696790968954900006256871966934568209458442087246217122777097396317557272231200752476624461064272458159530092819487823800342861109744323773366065938639139454626036047437677556414366702684272582812522152266458372504404121970942456402557233425650641853053577653387079465720956518740762938951821520210857549557133969397620679928175363279700097763566935385200000953592169739989854593783699708043894401029271844045008680650010482444384022556107098081448742847932932209115434487668678299146879665154099326969923772587320093608106628988273527972666281266700263237985289431503662436907835845068173957939418392514064265186522591087180343896227201845327110985617509509773114412110635446147012992484256399544307265473905743685184704433160881754490103872056444893339928073909998655531138241855699665983767752813276913016764583718283736879626143516678198823192995719114580660507505418925159487228232480476515725424335920552023642467874383683068610131942675569081419325998542909005677890818829130281007408537138049337831964283264948543996580999010739310163225727516271841685849610252467504112047979388050568249541669353327555570559627395020170172084320226494558568328688957723243830157985653054546058966535227435147217204570164026002008496278919249509743467017177060515515602614073692348678530221561776144711723132691533015979256176955383146880668146245908457680642673569819840694966067548879900099296103177673408715408402948378530678614173070925928921940560656184805904499886463725513585701060067243952033382337569168085221102748410312960866117515934889231898918665580783071455918229669459548551552043083802393691006144908261354094247418507928979775025632456585149638664460242921311977823901761044301017273119622747647219768966439734403369371001798975309500879066240228023584892994228222381519634077208128694365385040533483701007733807656728472017247830363970385477653559039153897950576381796395926070068466783357720185992343535069079510752776961455040158944170873002323988027179389294187364996904471136569305324866856677800826141617317892904449030078264073891127266746472081555667900294292486382479861765189233193611293859002232589977432101439101617310870724808624237496819997035446514479832800218442318025736772389989695917419074909505817456704802476649146199471388979895138202832614940713964528311476409583001123786199358514730698832569929779136277921818046280971658083710835983675400141238671741562775031345836474677727095717817054300848631573017928297714421084307769005875255262237042437837693763345796222012278163908573042671242249454911955822938938213840484211096077088714655857034717700351658831419271981737930373037992167659399353568210616769365960222818109931721304259690102816275011674233687515295323026245436732367234150322206688802179322737908472694725750117687584819832585267002316103155968070601752739616862437896663219152712567794316431560315965036491581697330970217947737781586298474838046320918945899769376911854593792336272377622954197136956540557970353684221302206628000622660444573649019460011770853615052491874588816903015333825058697455137233100604470047642537733007372389789260101286825703045756603577504347929581734445783217597120388625253879396279970780966890798978088004788240087574378054944316160565014702983626359956856670326221896958640357874544749529077995985793422661776490238764367961548467156800455738336693336359983232295295822077501895972998273380213912239323195921238279715721431112360227517861887880423222951117245922443660608768694161887599018431875312336102251128550668983045712870955437923048609571491406268463887433859055978975280488629152698558803405683815775017382065810140558819600121069774242772642583835705941675355571040037332104630869560384647498512756252618308441916996832653401374360743047192220436270474707288771590927595527482848545614306608828111408943468416176756221400936781229714219501279891811588127577473934461531077611988058039016334041894442227173044116930873756700941865876282049792150815278059137778095600683631229085860980108789280873049138476197737119721360990502159931452661625759545771464053937261099684957153640910694850223254687257183393846625222283274717610088992249811898132879851579252062097471545098394578364409606276127806200141066876030722818235194518796087954174605093466205841140737357700872523608062036170143021730330196961614218895282490530980328428661391528077841818754936266972409127378706208597733432302569999201644897666705401598133758674022854003807153371637029572141890108419201266215880910005619157513659709573044381168258332258889796992921442888069345336314991018682085258220869594283402102566710087127201083270756808451759819460642329701606010458619946610103476160851001446035278938883509356012958799821969787016046207022121867828133480696125101934990598603426086134818283013432690124205098140490237851500818600767092121891248247578709133079265852373515084014039433553753720300660364732452829630647113106062294928420714951138479097345723208144311336267220696373766147760910738419480703685247772365252909849366846432218224445275749424974510095604294617840480266302505964562726392632727845244454073424011373821919445881750803503998945309102475308003716066716191721001748552588556961346188508747264081652025536559489105107609322425554678587174952852312855227977540153512271622210800240828640627543334937780007588182558881564240521565117350959469208830159846059331417957297219538380635839467174580772893983900689141565022813398276325198475564356565386982964896353356698553692042244934385988599305622848275725744746125117304870183218660158321298747943831080922983290225017639589657310977491182145342963666520164619595718115475446218304019877974071252243861060741922008961736680030340522513600645648093086456322068429753424581292441659634057699522547046459748312381457968976719663074053702783987151344466285434496374070116883794250032410703764244500456688931598577533272687785605889300298589808130890050836661035872386732978327945405278768094404179822532002416474014742373430873614807741123142910315196028730833074624825383521290687919042910899680853251483499174847240478220156023604982656099358563502893406092915630516665925580757081735543096794824570058246202293819749956087278549742231626055861844529971950311807206259872874578511966602250413947806786389746745048250449129854486031966497726600069305275984532523090483487711640666694778393634369120706022905350466739490093311545451278779224299272239109019375889884036093093513980660439346305986291010138314212644260002808005229230586743968412594816994355233911897897403221728553205200444868839779054366578045709491273559332378486022940578946530121564499521841435409672209855253517008434096603468162661809210860024380862332392304962813724539358353285022490053647927563304717616033811121451488564226974788263214108718516714417744699801462599215872451932081432832466094752995864523891733765636445193469195747414525833162245551029001011459587751075729649727953062440798750290194491214975586549453083183629508053195660926284742176423634255493003563374035329727347128625482449020895091759249485502128340314790795546551048765281816644591380157247785799759835544225180645062526657395146740551477099804327172048720339692890473517687418921974441677522004723758092519812913627947973179842699140977672625534548097477969231494756825622129641318674816814635010545721321176637322115572631168021835538279937824567284510725703102490735961161962340111303325906213737112633143456975655055720310591141947785510302143062499783667359960888493555641651093204746085453544677380230715007084749542832175788260127049601123169049109425376012672397025117333016350237646697398594941686658738153126447242470578457757395424562073260135831681259969462183492962239353440581353439957387463158841347787546889921981771155187148099489332423340455609326737574572289168169929604149887245672553478384145288180312985033224232650542826442954232268953657493789395922347147865452927327353719295944536651291234106044683626929868218232574114014031158805953676262726371928728349904505934876627174105488339131524934367842449701093766241952180449825308143095724895271444642719625982463517090300703708843143631068761139901044544207681824481436082571256179706498675739700538828452862855963601218083596809900753318219086463853095523194010477653706347941330703333382179064989603276070475364398084957959127314938186922369979180439102041001049673940678855123830961937694351491390643335077068758393523426434625956755511585649693870377417117707859656138755216670680504660782337450816498986335351588698326525191068561176618067096285187240468148328160393507983423745916158302807356312070723974903518574173634907727648354007136102861594875912927718727855163361820962047122705791606673585948607332048757417121541118347785218491059559762054599535016904088194620793276015315119732565628317335562866835475551257931965159672497811981171410990673350493430845727850440600263619960492120876556600581223524208388927143232046918243711651041186468834414414441280181347856771989495352782874233039136578072078997900400836205703960322391139725888919740893436246838478760808833295067123390448503394027502828983925747841937084345632130469823484002418505979221548462091982301659731573286986209354147448218874916499905747986249775366945195809466666094072459333100147172524542562065860883582948009403425720852123057666046020453034047024843977541696252189460208720621839021163189492941012173718074010470813023663287516548672164680134032417752197745034959457760119803511971185801087274918752976436868958398702706120312777674118079382148511300219841375729489506252679724856698273776886360906766833582785981155173991711731405877321756432934875435112828794093477566804221118340681128652481050591947778270211769928837812695240819419162467580286428806566334791397078688471697863205913037129686422716355110955411015886179413285782376130035946916153382981012511938635200736586225338376486233416363905075776709900417454495353339990707331955769600348547281535484381069374163507132987296261537325627696211387589747834012192577523852868793365242699151497602040295572253532365872407212168883143296363022478628783037167923645399159503655210671220136391474643414037583550299915727473045689006903224308952088955673333587999463353411192669633565994587149078111427736803651876259635692436943304904896038612579659423395005506262356849156884200472686676692196076583897916641664140491518290169821532087328732335719978875339407572981917803647258071695753571945044261626398059677452979151253782001169434416038505765946474822342659454392283208511711939901165904441309413848517894328703377362838589685375700092156581527038991434131671019510634287500434973390053610672962457447973037989133789536263823963357046014875716338704292222649598065523283085151698457605549723512536591429669319876022686525674346761222126270366498508207035785409319495981792660027439268656114703102035413916426393031290929812581703837054737610519210754367298938631614418600635128052280048618153094709691688451370675465412535791462060878239501181865005081189187622982118779112976567009166725515535250807392504333089301082643115317263701239167019707420535059306630297694607122078412674327728636230748872448530755055365659075289431750843194237067552303274294856251971511898020124855064111728637244780988049936930828128616372321576415838100211561950071656091229381490963291876494955866493124713332488233813389065460386545936791640716235834227120626174793440424516075149496439601770486997801483293255786328980488165552320912603872903306600009642111593169308888420355530348409194723528358711749914475612625942283462788504113326881512108493424732876789336202257451940302228094355827987797663502549238742374782220490654703547322080379000734158188278435978939379143044259173464600288757407212115527142582515843420003097676953662172683353325212954474990445477661226265536431977807877199998200584129480495904544439599547744275215977770810034561441595191452828800178959884842169944065853589061152894405218270561885112610517606035491731151955543812542136440875167867474340740877854712592349032752597272045556962617296682875052531201262221869493868987013608244487149089978231424119419814726111496436988119262450781273414874077939110385181590595641133172254921898400185420119679857567121257195452281370781560398644455872196970896354285471813606160423556949154505611855496310444027196865183406587406388756547258759943830576657170351871813897149168383957342511076766197186121141892351358439794601875712578489375707109382673218078193628744489743899636723605474686527942231041873825966795810720889830530956188385816479282221321801846500689756595748998289863581711478092762582025527693895975036918626218047271060812002765927313750991024967586122194990164791297128697323972448873125026031349338757398645247815592284741224950914377903681618913473149853900527796315200115952969430845689750155144617386152506119972325978749031241051150957065798326211160430510827121862525581796845293450400413580587282665017007844930878623267500859682173457218014987884693042696854421086646108210517180582042689161009094023435803510563688429926966101054408974971753280301036206602912439078488861386493753663041416584427224061923206417218751621458412094868869882661008729273997819714915017561069816938861947700961428944447490020632524205279900328130705780352613332503826568115014432349849760731464976560993665322449675250651090852634516834273420611430822877921865525701985266613844569452032793808579184540229180503842702537208472877857716890215927316605535762902124829560627504010610345159591064767797324453207144852687846577858796413431594998200832459064632533376353578824304981084620885359323395643742833406714572623960991433083085308805401653339494155171231284173220920264462717252986205494986665717067180930596451591951649864351921719258673362197447552391964297118218543106125189914411537187755626011345991749305792257929476743474659041684755069746750210107750783485636247371848707104641827119686099324267106355226226964216618528170719100498658576100259241273267787569140203795185900512311126646783419242311804860197783444960805586843975896324182273536729789697675383583304969308774587809748750553292147103446666533584464018138729549266577160536486091746039917740101795874769619048222563904899510308686871028872051842077149879876857989491727379237238811550608181197288117755047528665040197992628815372112247706637704319787891952602797580987370383577012140652172823898687803079655036155089384128517483934910450464775319201247692836312278087808981869286613767668319005103398492454258428407739071799984909211051662466376741739166795410162330610932749244222000510607173518843762670087207341501678417149385073194415986543856371025594307326014950476479923677510150747652931236743138110413422250562241097113786996677896966776334022602045080439319418565473736521475383529075504350732745696459774442609393962945078884724936456224251075043204168114921681529297827035761808687801477591085420610610819688781479584982558680570047676976522370972572507901479376760068767952840513782180088774393659523961378920774630372935693254056341719010472685824298385010418325527526878295839980458743947062740389038988209157488343518278971075615646046242649588691486964858163412635381123610152951771752659720141119498220295694908512891315887640064993445980321018421978695828449550128912276983677245939366159925560749793401352100246968250422252315248745011227547029760909368637844391773684845669259453359083420003981197741661192814927494456577498220938464682948866369719439678987835363335327945024905042067216717831519467231681364294523323209273028129826464442320002562279117996593253675633043944535163158126718242932050884139613912139109038986628213535481556752528373720585296757434184699894260087091415975217494554658198216823905062611571868043629336281733256949096024933702762889596330932476155285538119167347378240040727456547914813576987998635897832881546842524261985822636305229783425881627988503396899127662480235572769324677860245191270357735489260187170382179703664424926186720172913463013027531841036355132571025553341577909495992766015704363991419068606125146367817827543126130737148692680273034300285559134995079060198441380736602896038328161439264862900801512573225304907323804747843784562497738956362427865702951947773586807645943646708670804120385339137581533004452503346843496255638118688706151349765411726204774489500436374265213004169819610499590765781883611391695697666662774128583524463193728217995795406986538655999232483475182783025190128996808562506752166839546943352942810944591137711361130817135619921068823498892686341658936931450009000112908036148266461806329054933461134021818059478661517002550502166347268564974129663145338265623312149032446277614672242434659966662895440950472162122822072372633430133689100603587356557844036102540774408616818743816549377246440011001184974545173555513676690552881817751783975599622242293472453965319361798506711163985346351226862468955122997345603003341598635393519406985877442092718023143541534533300728788426074344975159046392410928045907285144518021705250750630051328814866426465273909464908019029507892493283888108719825402308306853849799765303218558736497126968760071175231539860331502906457563039859426967564536660261345773494436865506079304090525193378884789340019113653196741267044006229043455610481825101549339647013999057857334313085848825800496914170221494783905529926909563223948333624787412970060744505687658011460926558963457071733004067299443180429221362139668698781318988183972300308077270179446497843976079778384463904430475435067848364015275791561135585626779620643675070922382541219789138683806818760724575974020705461008604493072592663534873606074968021117488951690325819645599060933428496456333787369939335577912762747581997618397169866698721783458187424128014780805234409983500065490770304309206830328536621432873803383703214047988958381505659543950406846223564480008620065573748065330865186586191426224445002675960716927316771943899736747910814128467075385236405695240909938727593563340795786796728526451717430514109499483014443741771893442494809104412728112440376504843937922888383080577515636201206417230572120062439720827912766822163367349210113101908147084860646383431941472243234629800692085844369629875482722580306842759669787871161498598719506609316273384373687579285817807162831896132807299264884084726018454891357872343011605432217454486472797320905884254240262578958076419076155738754688043920575073110645340807986343835080090337855483204882152028301299522388507396356239852007355947722761466979984560482184797147423127261215243930760285512320609488933968887174403441655109325703539153961472012556814865978742455550699703462676744666990014463659763010072051065716468716115825008043082314895699737649070461242512574226191178359853731589887622085402587478854719265048700443662690735094187667500498974520237439317201915102118434595491923488371738633142643469640546871166228389617847038087405710401329097667285953232320933865395275617258390981564228888201088440826931118180039680864477687399235316635564156057777768720839280652929346712411613383667411799430968596233783000371238077661718959313903319994576028674127719948159855344443061766744855726303395681386078984628996372317380571941531720631690269219398220648382598827230461903584308886193714667876456706868546007965208088188316844554421807646523925897064514833829063979824283772820711746078077653224931535806654283540561182387088244166016105239218529534053618990267433404995310103746390032477122928865309953573606062990138510879886905250723561235855303816582612032363347700384481642210339779337066541330525743110246997445725300049462741368161207842423554157720337842006886683109550366199846929742384646378835119776572229149056460856642447111350624802856459365995543071988942776297583280424923001455321272977699554482597352036418825073658705204481775710002747593823121297128623398445294102789426411105364350230558605073002144035737380963052214123903935270305613064171480744711071768612148647961129050475912963512134986852939043198230118661078257409341702602292961962349441870914459972276413502229266136457934096115070243114445503777552656138527858654138295677712893391582065182981943205579312041724784999914531814589763956008062464322522871705325928447883846623961394737580431734295127096997570016405818100585809357954735788529146084463504447835564362332497522007846741769084783526037258252765338949545187361407299751814060321751712700472831562562515462049990347420079979033051981423969104674313173423558795878468551809122759863439458798208984741298522245537667001239494142857826203850111324919910906675272552661636310849219258056284244584553662668583818767357062435867449807356537383628848047947742494032436284039402826868648272345334736142852544995675821554812186014575369376466963262136304493359085561932517826531005110939294733421805429092568556924452647966472865975309594514106728532999602536978856465536041628097442543204723139262509415327204751219154903999628937383425146706750715911726172414819804147361566665358134233252889684701704535341059295697933364637012224074869246615716344477539169914952056491236361458585457715155165051686177761307952200772552542030360247463451727860236721445056220757043413684210495874500070884523224420034464103343398018164912229215254996718066847506098409827288081803349949924971752204640904213665211209352665335177409307564158510274169726663111239744056921519973117230144241815858493229801797204301790609947662449315749583577987134532806026423579568489719648470147882509748081121632680836731815191933215592903184200065903690011354642414534869959695791418725493533450410069690671863798234538883030283486714172536390727917370770869291916357959413975462190570467520473508769407753262768193217996693925438895696493681090506317545082401787377513174495216536463151228058608276772870919710558813330596558832736606786300028126280697069318593812672029959949500701087342151447832096877854704412441474190129668243769505851153884277967578265856811091740925453649257549105484660280442732717442152583464765918096782934496830053729458364747710711435267325701341490859287242443204002828223803882955276969858822411333600330544005914497272258324885668549426565703867468539224476071019258437588369542635940915582209428855701231655489751774059305863316497821811003582988149617560544883828148577658324746871260256242402843286628191200907507499771130345475431901006474023299607219134428231579885847887018412149136143441850460729350971428901708874654132367876442558292962968715250541397156319546151737636985255229970814201473618808316761208989332499875754306344813466180164422826267143386788209883940298290949806717037524958522033802063035910618335852017335371461996630168200951514340055116472258407695416204979099787218911942212415011878567827356315740017336822252579140443566045769947977481572881333201901867067509331803732289219049391426888037299111080299844796176705316664826916890778494562940453678724630793834912503402355715820304092018755096605838002876479277623695427357970623195741473326014332346452419563256804700521495536217591665801630394484159714156010188722386882907206462286740281619547317699338369334217794122121538147465042680973992976074355832181216803397270705256590275450583339680482255487430738910624809047635275948262093522133472649568070463363245100514319481758995188898102599130687198102604921374472854809902878958013445032867947021962777958767268410657848042687400443865359895796800052346426005967460551132359012749780762559017458015737379023079754534454597103491820395443141933720963080769357176538340680853025271965892270060131335897561603699530541303896095566865544617557303202623234173243578397712582573299123510331665938591227272949108420827081670196958334084041727574019741147881471790669944101114074908466811918281933783275199561100057233481553755410279995530337141654167961745169770889951538700659752499580977809258139297439368360490016967097150965282623191639216051016853750227887193674646049661902629279631489608976713066582151634135745622867676971546305811102579085747335194766084773708677706190205588866450962502094957644942153335338952517069707316291963607798697632175521968557347496941990837052749660201485212639297772813275186909939264706484573156679650977922558710598613104921792393030306217992941095653932239619521554526730558450044451177134471298268766670635238209978864201429352297283528852461348937536632966292494800664840930011671481542786226229761705860657322369862615836909353731447207640089233979877121891837390376069227982090563283686941922837419958816797015610218599718247962451993820265572861026363782761240819943135845652604178935518039862780484038584760567613578017603292668151258518306336558348693706793212548867051220421956336048792202360881696783836028112270350748581624975053071204887654626478736921516100741614656219243574058037499425934339684002828527694037245946099319890020404437575640725563965140254235504567250758402220177427957307450204653468445012320142456579317479851665401891009585043827281470117892006427921190884288530068386715434018875936263342597833661397115212897286742448373319257396988551534477110982321578695895439232543014233848738231416479542955278665929139664514878659631448832198731657741958460752256149076397844846316356113916432696590142177198729911045105621247578613978273124403392751738032475639256025250973436291048852271969816235217022643266246875681501621665762622325928087058469793661185241673148012441446821265699974515855147429013723483964948461892413017377377220006849731490783369427155182596982337861313330149003289242782935968544601456007745929631986550618302566476736993406832918512131756341477668018291666632009847348792603150959720738718466338074968703103218593657115933489929403645911880567377110189284865148899795352542872019149102274219510115111173818941666238676398251628585305339709527012585606761233851718277440094943725463638998366868575154348898738005424723377506524202140753820325565459442244793771463671910065978651295321831747762048790561370327160784553254767011677045728460692084001948932832941466237406482387924146114199000408878631085522896513855134014445504177876086381301104201959912244671453259780252785542922594535801612752927380581903310065008669431099834277012667207238679390709712189768521018056263298025974650157768224331681729568596076242219263582170317601530056593371571899303747566079881852181971159186062702368058506336325389507316867026406495076245533830394034030774649598702941897303487638042958865255191101277448414665058840798961155264750092913372172168440916389659406712484748729878792908833173498957517779112787293030232129008159796913850665150329356766835225786920174185153893399409465843504612413654358592000391053121791483622463172738858376192219101747631223919862606215907338825171208051378445816930957406301472721392534068611599118704241429183960570642071080260214373888278080692940083777404958868251324325686362929643368154703281946222035887069748850381761791380068606491048473813360546859233250229429359607981791512360850765988998435223351539459334048798450550454613045653244228224719718062153108562000242606143375366648151675762550025625760911660942216376679978729314938768873734371295658982665197076297273317904249780780287558278418197350695246191055487034967271983864522055476097717878150939666977923242085933704928158115496722532102240640944301938239679725029753104213873018866754807230645361844358689409124017414136156487577603726503963560958337496092972632727578795609129910045454092277533181433204915140206285720858885768984568018469330100745212310976145449590682878915242659810411519326609147456108989202780614176859007471864250022458169553782597623953434547688553841787061098184810076944763815408728989445415153785892948420258067334033040133451778832561420180671701260982823524108125687247253867900584007177356929709645727572565431801348484827431585587490700033311360080886254874870686903322239476015697014498908872706106381716729823585639466118953358118949701760437935566358637863212033638924111414840462211497922952629677305296080165182597996663864329755128802506042758351277496526512019997747565887819646775406260942978624312801277776417708678996200227244713958126727240310966070937998283063774402531870098024645026593791079986161969284466182914202860488414348396277993487953592820543289561084697597611703455270249351875305841381921585313639723303961713675916233985346844315275488711993084368578542407077337486476516154650810865977963841332931052811417453973225431573945862588616900663243010201821657468783835368272211914050170159081783262868903519512727090632299149950770498987179634170988687548805802081597269347012246738500515976497666603406399311456735327371921646653394635904676976538352095257516803317121032576320903663998616292718596679195921682696652635693596286729344669408305754607000943277091989043833838945361025071368051652696935388407248738178368484169637598501743673172887244001016885928547434111592878857551319395234132884523241192635324051836392501890569351331383316682852819012747587511960715865094444689098788407707801896716961957130273769183364846768118210201689016213423495238871807912983896344384760157481241234941569473318748207688435370501102327940094347249870384766296946768910206939857652880471074383984719485192939181435851974495447640294659551368543139333188755237485495392250585217280438362423642085346342624299723520724282563203128161167745641198835303800453179580366495990103931345498072456202771494333899649636988919507340479520178347669854796558523790065375323966820337599889577807299894799353610259879252510220084794214658588870037660916063772058388189231419792696516960499634296332127297335179898187984853287115098073199811751850854181734912475324941516831579614357044159680114869125606591717071028801549701099639864480101831813840953839434051869024316342437015496035067470625052968513299799855521466663021242223999749189975937095384947505738213966459541718881322154048873694471228151448421563332812740031880688069602042997887120521218816193943382661746165671826482270235128924730538359687142800350989850705634413035392866797848772218883552661074314308459689527860006520882303459576351773106772181242339034246417014870249621666082636639765527119210806921134110190998134037674648708935789521082941820843792181081266196845183146316411135513566946989280935696216684932644446601269687399071375609017855956460770163350108640216831272310909159650182669629198628262102209985982932767113592242490830624881732811978449887451373288758595942405086368548894780371855578311169493274933164300499423958002819876865567431633052194399854975754165375889181798925851042550738627576287359598995160274099565734301304877076953031079202043664393475969522230616112575147418670004113960742324213169856923678202627316919636191080074733199353058873357231494220902612455102573848302250076326815088364631233997570013414653337008645176203774750020266203689793508437887428054268333107787344342262246377182695856395250173454702901200548616937661288811156301849008699194575605758966778970548967795528553795598648117442747389610409591139852008042599495404338135860482530935243928711097218674852140728158832746891810136943957031576106073515758250624569067743438214508721536185085910427023546753929956868602445422738504854081627153422720432130240238566592676602508041406638795873506136423648923225855076942334017956012298182720535523681300773813979855743828193113504048363740415975723129744018044581743018074698102095463522938219544366772557097984597464196208636072592465489162765379273663016966643416514144838782054309992899877414296373953960428140466073020784807357335345610492550595057314521049635479274049059561301122994847127856670888663555317452422825598950949008449434198300671246973402792669869160742956023742623900428235202234203522531776654614706520982279851869169567915607230703211135318777174739785800845058239422378441848146494192724608081750726788612529609694552255277581100007505681241516753299879572359983682200301061617130801972604556638341519542490929021605007068335187430437770274075002663631153222159066813672405785696288526619517295666364519923843466774237002790544111034488793030581765603250020319689327927960360055620991729955208576011428671300070544387541216178984437233723388367057349382864342645189402666805270241687840436150965229585444193969785405581637340908352495063884541497790939816248039653569330553454237267407019615323332339480196169960687976187555117383369947378039401561359256227186679643196132516775563445555933688898221968151467548182260641668169247911658862723431503780771561131741557247740850236042017317288867663941982401512677297659138982366609885199065053606739758504493022719278964389274052421904079469680318627063367473289516999877335429786091020306807531823700939567315873532196656367582043550696490264911830277662018266233627680067597055609900332009476448206476797481349098483735875008043111223937730852448225061955062013572089930723524980245326475801692752977375581361516492282626366438782919120700906897320321317208539746158332938530095770568648853686680420122547837357459571939876871128086012948739606974828995288459059645942074178671724387911155627720357901634660670656562056643892574878415238850444196528385188186975806498847040552607457753801166638193283559729948034733847458317666546018864846132091660528562774469940550479869334176602405996596196948635967537480478558679037210675656402995290246510284494790725076556674985673835752147268050378543484510291529114266107200262214911025370079700106439131824621785974574298790089342375009277995786281575258643040170954809812706422777878425329188739283975920355516004661418523293075406312420889912317889523266093987324577394494327013174129953793842607384651100360577576172827015022559162690044560915153228127968060062648213925314935111300660145386653945107718148602385002378561464300542084601337662337816024338815145645147864267521455112503334728946695446243967310188931222019676051565746428587549555444378978834995180787553999987847487645018320804089736916256869499498345254960758969834728427840432555613935373629820886858227642706262360160354782068533770524862332688196250762018171202677275993921805000512421630625039554523191037233690579808359733494541970231206234492001502089568876098056165149881379969685535837829620571322990553753064077783120031193758902634364884376420984489171929847360567194752870485592838985248861774928195613120948737484110036780376636206318142317877665893685769832058018104054625893020412231911051199590108022660150763811850711960310777692740143452364717304342928327199677881451342299284625911788546578931771625684039567437057700978398405577077293846592239793376040723797395909587958546630791654544463799163480613389072354455906289962542041655856583440990881724695907069313034401054817825486791859914492913929772768702314405962881401681117723146872233131990385374017652997203864179920888304698151831424023366392331015847699858471115824990920247691719889810352877005703979038324577030870109960696495817086033445614489807800759798813685801172537228226363123792935743427631869035961510212532881477951775164388225354688469233201331683873704933525158349157043062005279480351459276623005451264486933140481750490898541047533928808728418524059756413727592690473003203687880874860180625541605024199655049335018172589446378714222873713928788355954962869919179047242731724164152674959700905429133998500624303325464428290319216009615633516705458555502351760503519325388936068299400524080784868540855203699008188637094586542719843479573783288280624980488165548753079403481361077729019522537873154957900081328148566513168254757053308683521380193122282596982954236254439565565355616323447035305178928490221902594890719154035224332642836295766171824936026033413725067737165961713670219367815817124439586469722237095035375704407603950688766991243696463432035271719255801991955055134795155951454913122109726900192589663224412164843326949943952819762387038071769819238195962620568469898164883804882741653298427596323251715326820268096343784110163158923839953713031390779315017137254609826256699485706056335445148793863737783553766933306119030724815352628264185014413570666031710339066979164824741345961734743019755101864972465547262957571383605612990598415810293811391126282176062272318704297306128209874989299331030953691497256440889123945352099106969220964215138629308401253271096590748690745648619848961044234803025235403406989022029394547135909543032742338646740204892549773864762902701828653824240488890507528477994715175492415363081368394506033610068534519081566268962409206091698841441044678610652727872019235587109044259883484997735448244812092317404419177335470370705645384597444528201778993021763065798499187175875581694316807060404467533828855493265104774257056903675534394078972005911246360421808129193713177602334058431384746811709857459937363755383210264226603637896300059984572627170381050983889803127548930781650298615810324317310983235754654337366669546450623125497629842892587477699934502085992597760675121359638551965089831890721155697176433965651136230024538735578070644321794873100996880461811048082212179420123341362680496166516255372582683174065967467049579718240137781828772855021052402891435293520875208756783305372155382651904872673832228671196333310521940896700255533051094454655235206532737936587069957210918060106218411832463622736929656130301655757356034168689041886218498022922934938369082416508150098408222471079533574955529105002924658415467262708965148596268076568838045725759332661860275414947635782200807643357907112728740303306948227978902099169983485851874849597375807617803429328466614882582887921425194615275095546842742022395447483377876102007178833965441178788733412675817438034366137016381864294116226257143995935191715442493684354527912852414793923202383677689322862940496070447082029703198960861130274343804368535644781876973993658548022184204783858320652513688610067414013407947576385057979478595324371659235948941923147199376724190970064444998662241989530402251199291858852378456650606921397298784862762935531500850102231657409479114861177419039029552905335960387349790231008260743208523621723259120206657136894599916722720193232921784859042247767800212548156923752469931926027773792738922525290463762831917290332198540842585806163245679189097006568958560251071483703574132776029273932902644597641676102876489061724569331059857494985930028078605787218757486462279545049418685381604291235289710384491719764556010939394209253935344370165329854741142043431314376602150751817390472970892849243600440926791125635618599534709172891009206820565573541841594670673664701658369699839320943442037509834401357639870288330861897233592675567257444267639818310714640674012191705311719426396809982183026490374654986732676848272573753714248391728807828156077556787256534866968166158371471969602732121742180959905013995557370483520504344756558575432007922763974109869425211024219620809656968051928579153634560331413438318886509652127399456354398162651150852545970565429599613198481163894819046019005375547550418473726403931586619654061093690583420591334135179856624706680815793224217349171573455763219479589538047629661935855270911397558583466754115380237403315734644133994244325511552456447647303380948333982040200700891804893245024878035972138056795473358074860580411831842723883916527045985419524748380680865588999823265662684615312804506574727391544324153020234629241436728566319977061774672255691366866733168921426045274500240116746144784988479284171884303891362076508459596103779795832411947549416762805457873905943892316408123173841706191531644378129480196565102434885125005091101876191375081218586937256194615254420592145942165357061652769925937265716460093182045584850556891106918764206266575839342425465204936836617220123496658530153223319684549563652067832660212589515899391482404650788330852621035484376376914307652907359144292720097897064002161274147613235180417211238314589357053127037583492371184884274420176064837128165352137366149714613665176503323370745612184611765280327794005227648275923382285271462177432883513655217568467902632460950743565555662691682837044789142520491352745459389746311939779922389505680487322817056334325082920633470003236099775474975122213169793126676799930339852204626754009535559052022151478022685306772140786164201070220908352914098434156199562419359399444739862336235686120466322985529085276404809292482428083958146625755452071095033743389629341598203379991806448866550672991226483772791747097721681499777563593177772820040172402809737376078164508590261659650310989581824655548881512176121863186078913643823699373782370288090886686690831087013591571368750601769315892564724637785907913549608117261688786585887102518894931261273394121964201446125481791621718085891764879713206552508284392671804050466988319463287253643034187292104712683070559970807278745104943362074290698158365147598899243504867475797658089297015759883065991641065488519693676353387328557039333492350205623543854483990906333475266526090483556226073890255706490806398425229720010209789668071454027306759430836963811278518317548503024503102208772295217308470470551097082025992655837970689464359046083228426261738408754590448225056531557097690486933622542524357277705411535164394236454884347060958885262250445139653924219243443771747572237235242613011095624310047093323518287099756084055568012240575019553614576792658159886744766509225258538315991497647538676147874491808349429108606212725426772784013880059736363195905917252972253331695625841241387689685627668525743611365802861490806457406416045663570950391341293252124496371840748667802202702820098550488121110546508367524663413871849299980748973550249139377643747251346606562296954086227327067098393052425499096422804363778160487036220942441916746866684454722140724115015840860931090208226932819408893065828540073308351188506648896683540864502874362130187194220308451258817058768851834991054632986869919658180113125039749844210940985044759604232382015421788033244782739325092398272275083715425840765353097968136143305340790164191743464975165337435906723774750385627904221441317570208884541512868776315269519240486762143901868058870547446701502464396167989778571214485590188088234408540135225416161766762948976544189251385348598460331852803155536275099417444625591855831713527391687759279197592074455658635812800391986823904515459768128777322517038602609819113921762947656027884184177430512313974036279990876325332882803079917029474944505118601962196969171535069438520856639755885808833247091872888283071428180518121941002230795579032578714856403935685760123284451357029785551159264008881137057405209150788193480694775203272539703780447705479967938693145520708510961009956413356052003583028679779373536647910215702899841752719398376634445334090840420213249649396679728338603867688709526447493485785982305721364327394761944521094619179958574343061374543442925336927562100186552777499753854771866383464119783730619708409228227759100394101379834521285968617089235458443512263124244302456942416103549911569874270402078070998304400649716659023967080610832466617698701341142836604813797225620450415056255024780964363750934757807863737583465571859467694864579576178366677307032791874519562045527423628150836940728708184342972712290644062953383566417544036011488456684094044394173981429117202676780847451340728514489977820388495708742425659942996735609104305127258499327206249424407651195826071077217261663352735446739230984174973407368468206072796941688554817020305607941947391674513930871537944502204325380196664658001291582119491258112194971824460575563770474389287039428763122021944383158443563000563393668227970645841353597406786372156398810249573182008270787353200163319899461023001500956596225499612223929208212193448730485984929610815430763971912504913104449374422051706319639452687928765402442408653900351414815246499626202872865970384868446904001366174440338954290636140982745612187783793582315691542859073506919242059757567370760278592722153496883807864960554677788019288206564505766793876246473902965271104641464165390915734399587629955601669141556221894459484161351809394428324724003530441096176378810965267938705085621405394510734391805729734063721048480387935749330316546188931002922774064045176543874300008886788749993886231723980018113698551888557227766520201271012024453254966445694609521241505128699238928346422712900952374574478209980493131244302916648672962978300896397839244881186780485466283739271665453481529485063231720422023106524376484710159375517561048898477861565037601888576015985571640335609345581421544434722020080234881099679066951499882602447512062818016340765841621453962170813189502199956847214909071113150265173235303481528217984266077636761323439878357509462333902670249939586344489488093119660470322981814691982296081609181368758128804821243633368078949217802114228918257451742900035806491391239586794252354787172947040477535352364423069399900614825180602330439034439506629055355692587011768735271820678438444748775372760601177263013303403647941017392049101856676664717221285813358266157823878647211246064983786987937593131207279115614023170756916476523928386365348993816122158604074684146974877937017798294542249163893859193475326898511331249565490636698824590041924416594707922516626681289003462474728558314186553769271962102850265723010263701419294156575508096983900355023001038433241968156172042541290154727785496124216585162377178515215386844361001858659559484694983605515324384569073348084735827035148574514667318605253327051602758486304295728921313475382967225831347583080977897121703942030251243256625349681437302211171893788750322287821556465885845189290740190483617880944610790913680860703539040778581242553372546902464736777597290695657837845696414707272809365186191352584526677910693340111743932607040879279499823352069989032188105583024540203382749303432684470889914719127930411666173573476586443000562112509572206650728402831588819803375053799982175818769281508136171545937490955242283155930431065791440945279885079847583367560746183290414694653410326454578435771861134662572655658197043930443599743328316517896390585062390500562426521054739663527974529118598284463612483062774905464293540705904512971180914170208251484675609935025160506396514986433476333536767880178484352523230957339809011914251965771310779178860320367829255589798332853083408423713526448439506190927923143717859267206814529876204227995205829572644121533785053872662620349415959365175853473243034325100779446705945768079432861100380394599584872875313758828765764880366493295044964759104532556177672767257349236670875729819713915150239127558718576564004811024144969025437503749116612880710992330003858227765299888012634921682692022101444690777331610738205257176621838057775870198814689593956825507323979898944585968682524904578550088531063898009545424287156331245411362401814004619608661783245107086526012010052313201779907987567722680609504685688407271486681269569788738828442621135634018003041196177503997266715159518090400246984826572541218183117061917881621069234447992952611195476845807587540715857431795217239236868636266547632842263232271809339355265948082633521436485722727304048548016875066545775204030910127499638923660365799256415544706628251141734833892686459779174040350547225912998835726771555214738429896601039302040378211835749509457826143797866821342633442070767163297635996398915911294973133801061727442206594416424813762846197660242032507572836684333526266595588958127547668649412000165376556091920347159547254714843058545697949243430114647956166837185982004767326640588030242903712771443631279981327897118320231454653500889212155006872638228209392756770708049520755352275967090362862620677464356303625341584440810298918065823563137923305906226244242490714262016839005789431087413166286421732158314280658223355224926045234572129602589188683996797159828932034292587332355313085035525520864301891667471112342249689119149663155914588073962864230175566959917516656253069457735665145154555757590588385200205060815911634958633575603588858327772999828083514330971014429304379722358250071746996111089063926708406509044982867840184441705351538982012501962667624522960844944851833338749308213774047764193342904069118210015363178037404255674565074161884223500223954270656233852246857705650097123420282510350818000116190099756699525020871475393468208639309821771915034534018729067796266978252136635690904573167030342436493929934319725654371028706995605591923350134222171544114970673980937690104332842560348660612922572317448857076098594224012883774802515716731925704081201066739457939148551691884721177021692199575567493060265710233290272008885644070337929845457604006830188897767288626705406932250958919043241464605394403174567306414672968848162846866443936233741812982173718059239576487259326178171817002738570641689598827187848906258703023596762532372090402299502338464526287575390557535882077452993820059075322359984057018743836572028623206394295262263662982210540183904778726213649575337316624726513556915499610481171032060925578828460985796432938895393202359110717507975344731154824224236721301527098031850514034097844713850734566038724785450562155554383320977066718645435018054933828686537779402251603652180483438744127964750936748937424497024951321239111444811662337351645280149089894845766091774114816051644374513293582293993477635801632519986936345324338804537708710301977702706798761142493570758679023084925331507305000995515428705119227249500353313071542981634730359471404672801171787920851676821359019913468976143867087582695531517653866836890422800330437768407176179111458713120498776092671331139884971958076699116508440149394903431366819144644160517415729558317218971651346083269841880113773024199499206321011418325547997439493913374872430889404562616615197794992923727776303600675123446308249734713470069454000791940886917087295208185786208275195755672737969937330696557506998936855436688491689574523873420233357456049546235977348795490142461459341634775096911332364261737743625787924443681457124050952644972914754162284922392842115673297702693917535941788028458777325002061262273495119393071425382833800433720809893149396368910364676245068891756335815956337960406901026978559607892069229822793833834212025834014356335480777074642273993150826765634087683666182304898008579510069922983405552319620616186780857652263113252843972695775174877070516614368532607254940439590176387968663495280674406087205914395693038257168901444172201931275922505256724135822997338659531250966562077709882768561388399033227494250510737931896468178600812990616291340022172347816806791231110443817772223040132422025367383790130515012621796339446675335052712350587015356299577675532416982188122111836947368362652194871001649267450564389537514303487480589078471317201674832847869051802519339022822563260442339850371668896793633548341998082466315691509911182796374042085930263589107236031883422232373760097772618480764689101801373813696120751463567376060837002304244649329817076253251980761300254148204302203100861624398324234855824741011931213362832865165635675637848484403796436648187584950015497389212472113565498748407442418941211216607321020799321312569875179845916754862879543501704866568982500405777022227405551868916949783862994887790168838194736822768676095328492698815725643771686472476544220051961647039365607492624934043325555821154712808687981325272418921887219011424246633605227931001670690866904871139686430798469585293438223787682803010483587760361480687625631758609450757583783521038707624461966219091009541398109244198173030361635627205655900819059614625453026827745110405023897235620399965429342978259417715484226264531322992604959447776985215191499377721604431506917794948204525358639205743235720787341447225706473216159563026493630220781764085167068082652176654569046968670034334432137819622407890171664797730459635658020975667493039501971877394377793244365344172943339384722955224612036879875148988123800865789410335358408443273106927573633846599077939216415547020125338632883939622609477148462168121823527987728664834742761434117732576635929392452766163354292687167561572254241735108390701443863601651525419154434172061777027397289059268239176633615213251441838959013985147489131718781770038315640668754086191159787446382538200019142806016901377443613094893212146794404967185726229486158845006338960081056037569256140510632339627197258613841675856525101529225056624326575421451529831441762676151805062525490570794856856596224547178611348502311019039361554350037491348455509091209800806809637967339881347181674542122594389956083066440429944688894220495466839295435235354239712381679141185037412466805517217403970291265794944709082509323868796328039566377146526138352242061580624785818973808006214759685532779425311096524731442383708350767721805987879345755349617759806698196006268377942723086853622212632832402268647125009110110051401272803710186625496281550400977638892743457809644680714379521436265318736158806725166726020227796301983004665441119976882553029492455898190779122485464556052668808489598828775826813050264654840109344160757540288177789134481269867810258973951939098215888253779666178175682298548362826407861282617429056626267078355055991904401967103809469161481457007853373016407309701680718044961680436535009599670437017574652533089698529206402208200668148705051111331992884019906753602535256973055176037410337346991649333862667920610349546393398849606117693701962995607626139254859870658088875488638646124630689617730173398223417669031380030031502057793347829469518867781109958265360587861296045495037943243986201765444949215859502011480525107683132305844343076849712199943357628547804988640130162702671522028778975606194953305209498123811559895949083519299058189715569741587422775651348330449337789624223574313390101279926329067007601330720974698248912013872119037982303229994121661682896808951044657826537006260439477732108691173446466155558176733047551148000293671808330284806556028151113535351651756867616625059725612152120048186900673316288771083984069956331331877824109938487151996707128158223516291357307367748460305711094392202009028908053208857147692956793835641720716703276971000876268354207431663364054562606540760807523389332071069089053626839538617883678405789444168878906980825100627114412433389360307108056484759415592312391582677566678219755891787878599466298457976280151349013373890683446227182130783127077726942210777524980034627073591522210527451587763599091466513886216815763012107543420827285550367347930446332044870417050706850994124557758635308249019922445543155393890131647145986345738977162419523272690817350610295231747713808739945369109044900755991627404240459008014324820642389413066265817661587993156220497565260107170074022354227635687224887509876549061518930831754163917116863198350651556709928091712292655794700312045958425740783749823316779394389691514118068505379304996096879890057186317840366813893602787429766603577696070361951678882498269288411135785859730907705143168018154105852705516122822970553194296004888778297445773411881930156413435992390740618727360468677730448197206102609995244066207777067205429546220678927457940780475986832362236394925477465520318203540423281186699391402439504096885575725377795372397338133571991741435876362856259935241042496003666002346061161737000535330473772881708757577807360420402763839716408237057944208920594895813350063945446081420599496284634866269085288903966794397934414453381341148160911363524156599071269489367365795273982588021406503350922826153759538248764583173211595798283864678179365445726292844983071869121452387540707555208040893924686976383422276701815816020386949686383221731735355537684258447082862429634916234501237042699137189425713675239835759552950384883017231145069668542638957702927193513801721317564797892722549364302034261875027160863183046812085252507666090454586107349570876056744878128054443413008771926451875658012489004829062498199113708408091429988529524041818184454256021462869177731620062145183495981507519986156154063845935501133215848406095361201629281418766794347963606258360400656798771607133544947761620036187513677004159122846409852283968954260009794789089007609043179217201031320872351049775014842910415600652506785281358296729203832876602121464548667776618599459533002054435640189398226170979598682358024723358713396130303041840515084725649137275451953872726359091432848415720280459815314333407748347170190127618524610862576639264890729860712302489539199006189642507054012884944036691885960507632900834478982117996360554563305270282019282531592619710155715717205810665380431104549287304969800581198558113513193009499446408400362760075506093602762958706635284925724669917439098412574735791923447040658548185581209313243657742459649992357123717550652632569524164901063319955071750216305004845761149771321655213691638224513319072680716950882169079586548140494742896499450409255000178795565965793529985049325701888258270324173041509106629421218322593164252167864910221232700534973869727449553981679980647074360539778121706449756300796996973158709964273640417094313882710070176417817897306947795473928495628371623612661572641477719426484302917019656970076040091283792544178818763190623858311567165925804042049707034850744251092099399448260769460689588164839052263447213165476231999623017494936283182696704192179670456191201965092975340755584331094928240060711846338721937531099852996333369907207059094848201963324821015008044696881283137117229098840135918502500525884786734921176254689113753872790127140150550138360190590907674335786028562993364926261159823392659102965935655031668635929820523176508438974321062727225704422034264028452913079152060262692945846136364277065286862571314629154341802632625831226792083944160755056332858547363129343874814105820319031164377594205314363384543833830709688648204650149699481555537641363360953649972453318274359545448389834971986261984499511432679288766160157108057180519049006547769860726715582458559194925095260835143473475975841147372461551519048112146434941513704560145939281191091847343246891851991233160905138061058474767632055435715147111864751547156296321540185334006907982051261829880865422355869851874120946017381167403957848279350506238747202343457286087950245936979942917796772087399362456636033628789926548955910205716512158177058602663392600009470537526825336332819614710772751711118822261485817497208873845504142082642568235331857651378278110666326199941005799978939002268702451221429613933417256324809673747170691612606622708479278702770206775077036945091453608792432351670004229540915970406469148539730421304651888292048555231422417141300860933419810036703346858189309001255683135311003505595290184849163226764533868241790453717375416198820294336887043285832197733986199147413523823314390726309559159632254130436808624294083666756544284961565569208335736177997440546524274796875345253088335871253808331593961393620845342241915189896673304960277095966176612376432103083226577033285620553934499076367603522761330142982014270196447766896694171205869705135362286841971476415878815363283627369891290024013514713990151570020083888693270190473977711776024259616764298638241078819418381426916522507660080513931372445256622337409207880849392427553333658429290229386883243779525818414876220143701628981660986682483153611965088110276835818374376381744422257359697805053234124070322243439447893859793591904165447963619526412084938777899155123875330261376440424030791855135267096367662404830914428710280351002491759766923829494685323848990201042951435378056043817309259506781661351656805793262776008711016930125640818522856944296519756642533828368096116571751973942428381565390561767829071430065437388784968515285558026852386248692344718657375581434821602110142685876141422033818354480608750196075733224943305589603216733266862389560211507101671245399704667606039975296076141738916840590130707267201585665965855256694903711712262806048222746224404786221092080291946252570966151825817901748299190710591273326061402656648264494684140920425959381677225198902959213827969026772763600720411686135535994131627468760243882559372265944502984804256890465454435024421506345303648396314910486007520032844999470936094516784676008412800326480485431969186279340696288320474034348900341087557903407168369118512847929813153744641270823179086792947067669861507215628487403245183683976017530259986898966234062408749505745705574797951111371576734833424618769346784306997468019194727450000912173276777869842677180267794766990511269052063033961253842363129554634662391080018343056916910908787863780510729137308585230029833996397905497041681712681503260258853077130335048541790495703426896200175905687194766923697743237200984224269563663940471029006908778001271144203116912122566320750422983342788177404468270319222914548511905766878579236379192011447589364903356636300443575627611935603500670677467150056421188075416052026647697424398366101998026835055563801908623569264665889397497298210271841589788229543167165645885349147119615559808707522775216209676975259106267377857250700056145843524911862269402875590060703785797861916274236534039583055931812940272361837208462273877787667113257802905144285827596670042525167984900182973469603651578429704060284292072544446344949667662676083508079943946909077333800876002176627666202700031707481193342655958287951220041575542714737887473922504262107128452447442145860675694371901065621122251213482906187717731632328782669658810204572910695510653036926323348476318087464740698484189606087405331952103821287842995719870944865236458735641467711778136434083095943976269350553049624525778730355855825423008248474388190911605937580033644575527502655953482868470198693076807807148857474834618745175079015639863822835416587414089698177025320856993856574376990966661909384186448504618483437469571006011954704272018250155679779598646779196230859397502038162004225672375475075064266498465129035562565182411712550131010498301020800769315960707407649349144075872703949152547580366512196572889286142849389447352437456199418106159990530990249420179120178214990080404608678186832241658261636261115622828329235163210565583168512772247867526560073681254909341788999221340679475775673351644939176064809685412060619785921762103996144925423361787702325926895067773787880230504198198341594232699911800990148630400163269659350227956891099934469132722189429967337713478483158316457800662358140636993581982475131330104980669792255039399854321949981848746287620845507116084594496186664249290147447403138600879637612741979902106058814642273625665113079059929636470494960895404674055519389958197630711593042640203698765585488789310056174148086649693385415923973203839394940488916840040997902714675115665552635320477563781366896253395816188848863160322799543203305844380484441266044888192920021163763427715169062032110534321296785839556177189331509133190464696553698478306422649428941015795985520239328794123449040619769246429745347870884484021612923283882191074826212780749379060831852379396581692520638446835064677976015520889184321650288532083354331392431882793642006609765083357145923767513702688216294325708330961657923636643224733971773658843514775024081083799281189745410916503225878176019041444799660057638960371275978494080221790165098226183540176096640075029489653858175076097055409599342177279603006146267784822422037425611587885544648833503182052945752472329453899324810413468915184829909290915949079930554824818939633253290534296909002370861921765662163106841629306246236857066787255528367958729643023861909233935788766920494549036748485390325439501038413327673787107479322915634576083154432939402397642195841081905273211391809703359064540495411445141860105986440707772983624391855065478731405340110028163134756229240634479157117889120575472041632627653922834775252811390694290854364993557040896504294660786559176349204195875944957810969527699415135103941183550117384583122486701002022236914772210831952711595441203246461843884820104578708901744407574631904705697485402710624518713728745237841170575729108007547468365925461415074998426277301069073286810027812211201743595939097552136019842382562511762982438464261546673044794113168982388810259827208066217984136407913098723450249304792694787409905901644749276162190816339477784503324866453690620492909558212580791990919111407803665938998802193814596471141191978503500683050472001378718229927912447534918495083809318231986124809841147731463471604678176271204129708781940009277434288998794234805037900217151358413401974921445044365791971795373239686908541641827221025952863899234321712104313431305449941716441605370817523061320259889106855037030853519878328503401125501755887846499465100654074001759839128843882011546533860669010397565886047423291482425196994589740522959296387786314802826209736338299633557501871562859381971573135629000122862285922121868499557133089361446352699133506646209475629530458854242721102651155207486626415443768881535857283082247573608512559646843533002407538895199340773627384897418108369071271071393582676778118709483661852530728955012448227444200628388247840726947591720875108113143509420660714208489551925177443403088661364482356049521197257243627301046066212857925583244892785664911721996603238185108748862690145830965098416272091757005547892397433819792362439510897236645760751261072024328039039514457818453822651019740973875769972103218536650041004849161571195280470834833767472037395633677596246937793060883816903330412783550446052281815600200391841256643995541414930973573058218020043993097763830487413730726008365051790663906231788928323516254997353466921162363283632189790667641065688669699780646919634521873553288682939397934786313137128394579887584438411699839068246642826823256975977138416494733772366618052093900127030339762502736048635783320483605826303073994868000689811988198394369736547396522225613083746028250547114606336929815112984995258915329395279544527597923785179016081974454782500166725300666282402419704338214178941868077114776032656215326557528914310545889781398949974239765825619449870303335556672195014244732573806916713364410646253950039234761873613654784590716061041859085950942422876846410967871548408480342891552041678980988205220423882325120680724776546805137187778504629320107135658140023456477702569689162892969032297095083990326431445502629172240339963737376191286282630697735431698061838874604806969093844570046374978516233489463189941818540194618053416557105552530336291127674003856344367929303693768694357595987160676117982649618681551128595715348720799672580651901562889677888981584482234871449999589374137368685663997474642195065712864486892564014623861708651879923152770401114472775101759775432994771916332399351535991684350447925487749817796844917998541158560140571544783073804129478528817695808413168100124847188206081008047168933863692697195311382071030287680236596905738672118081857545568464037857078818051150114368041485549785404612820145321217289307608654498589824274422998217335190550243980696441307637822089861887855438790796723285082708968461768516841197468374154586409273962285422115259536901174637941429608220371781040849490486021305751603201266282365147220786268996314477841648785036112983169285288652154712576842138566680467439499020490041008389675015229733369303959606708418969792664721985243728663021360545109072273092981163154714292232432353383273656419961321973837600403888102676766817914936872880849947559624343897003150666179644036259072529521005512923530972307127266449013054383677339160356283030019071951324377886686113518308214948519210506157219193653218304691368820678163155770217482974386552146187065662382663808769077022083091725066583086754198785573170654906437681236440224213333797263248480005133536878255690409312342142298267905484592306964922607758860039257557814726630254981659414659337879446199998633033229597037986606718634798871053756000518395018224168029008981784150973740588926182307704201400753244755123694830740490007423394404337507488094516947184767103965710022107883906872194485771332949855984669955206227890326235273280908244109547458805814420379147053348775591882796822131061102663652638873745163080897141780911922561926327029098005182619530904793083252035207598360006879384262916281222724188868159277379262772342701595545670079540668459864692300383553880639998862727703850258697165026120259470444108613870885145731518904818653163173184316599977265756673590197496165029106546720908715406107508374330877951048488222322557391551312523576648750913404639334624777721750533297394494877877882311140024730817085114251556591043502602399179777212054776528172441595449213727623589585775882043355948117717468304502408851766497185560666608056683575634139652133074694193197791363778003025648391507773352813520168563353309761812740482355532508393796302074945227236386166261660900883596087010922810274511827106208303192849383128463569013018457272606618807516385739414767657031212699369808901152724992562919154338636364577016653325570602422763146496802088871224098318548470182117961490963133037423943923614117949424930981760530799750706793953661311927421531436939108753059970568636972912971174812066859398853134502152670098238827223880087418140220997173947894912768773782734801964068356899034998368873635300490127930234003199957628577019483122572477704900273322543015983387011426514374457488880902667008971173070964255574076037403040560674085523695151413693267876342387006693249646822577204858731420368976010052514508398372132280515674637406290594877657279087966464373798062107691067773345202755691446068949900798159681963675970099958259209037302943512395697132050258812753061422673385831301222953407353230960062714060444681535652528634829352862191024502510258693209127636050035182208835340546052457734745210522258562778722896256501216204547308610397701925399741650348808266202432513570975103645149990049654654399257306738067278069289702823615110015099518274332569580497384328077283108359964021338421975809622081964130112839446935828147899081500902311761352403282176940834446031920409233022781159899155517730564749609257058397689655475248756291548924955145292344618357356138941427807315304135917886716499427461528765045912087064726349974240915341672857627670223528636353255341995062549073682434203095050017997294206107756439835180568619148753100381945574528166286976909415090068860574055375118422911076957643787140299579006349660638717266095776003070046994561857482909505372330467836507841022832174778481457589657869765392622015731521445473460041927252686952562592260702270397596475197983491666424801852450624841393258933765429796011772451282242148193841110507457110359017533169918585103711267507653192613753417615627917019687863385267854147761369214246330427283582657590031126659494268503770588573420707319014244514220235267605100927817666514765461120631924662279779999031086210520615489069290525672682263121065879497049724059467438775231475040289109368322343071509080327592288354879471296190497318852870650180298618710247060489276077612995621000239077422032009355310833373335794572705573679893140335124418873766648857207900793660301234303627032418795393780502283662598555094861759116640396174736604366024811466141167075457494626342165478844571519529881728390843107073113871942979157995503165142891889352456032001487544674137485442933621993771713346993632294021063762489938677165870729903397207897566959406155136639473692946692618897025708862826000965069037112341904403072672171338524114488959770248203162677255102494918604645526991204927662619412045044022882548542708111066766645171329373837269721975646217255502727428899092362160506395218446397916953040976369656159326499022743254950920616476537874312165967521222568018136129195698135861412835773396976562236492834118271661666420493933278166349405546892961767909042325146555966654874330579801156916326746007512792843518790674150359859840711101660518143074346497034035437396110014139707762436149316716969960189373757471338035432403613371810533215822093869702362540401904181367934437905685674331169630520982420846037988719315277621153946007728576222104137950842080654545729501483262798385649274801583385401634558774032220387308788827270330906705174547796927418088894849427843676541258543454924970088198311888357693680793866680647520274430732958062380798958032929802734632117595994908155763177039834596579585936540718019244499490589557631023048751651464958291951796788975739198145070728492932119218599049189201464831823565166424659235423613608130532449245483185878591617469165671027243004208220427456627053563379221492551623151568947064367370542801442293274611853733701918358054735191978443802959477886752682260283949420533204720648583896573153538383093290428366262232875210111331573693907725693862642456274630573381435422625381468216039358446124144197532347029339584991272818683862613110520323259989290542056897825483142288661806040663686392703305571836731432273953423762116150471224053208056906029400800552664700642452078642118811586343827054430865773092056406887986451339624394736328720174489069599868990521340754266719645583089247120431816450074958154091300858944012210959828091447374465605077494230237035951602322101746583601508588061971149313640409245923181338306211654065037139071153583091869140817245336219675233186803949336672015214534837361032935321779146196746580274377565040096956127737004214905673552863885663514054038545425076561063199338317340675091354457893973724864811164134206004376040147861611855619773844438174328337547657757524763125351781160647512828480336741460222564246046750812797856631077964088583998804031120603957005580861572290758048767036741322771506913066966577100228942954470668591878799613118914249444615033154131779097060052269149981839186513352246065667063801012960074894779751179206884698821391670524716852129065893965540014033929364333656756193069825663129485558272238653412570334274168688135436752841068812999281448082167856175249119754501104817874887392314221546407421127420754775575807918891533483013468592596649260240685439644248142202547517919422336830723602070409299725660079191763085876866037134874469850373517869752808403390924534296010861607814211638790368804721841328102605812939238203321241145318820959610359770250027613334634039384495487224775086894221771685500756783653293062380778741766914128343625395743303007769135830010328797909365958157204030658087355319187042472050540732339208217084099848246683938172525338138576064876976051134916351300008443716732662632670205315628380425344755314130365193120676838267927797897666041487302637674907391995040245996439067500852142530005293921770075386692834663930333553207595404732144833850902358424017290463843985528623792327211917382749051611504742518020849001686904627593304056674300161623712997589743454774435477085751158632286537383540885043789021983838158709836449661012834607489801910061103817823409168102345721405275342588970539015478834702890623698293732992751146227763607579256907648551295610183229220687028134864461639273329262991440674573206339752367208967680663831296186894120906688001281853183001745746300325554798651506652199757143502273579135318319685205331539010103856965800074352483395856846634584261986214489197581258538680314306548224467483826729915251681369561055823404104900569820965152394184128958872244793818110515508109117145292945177550588406819289717445203631330934466735626100053233434613669782151310822573622762535630634655059707912140776098602042003827629985338947122860802592997816425440025385091259588050000766496773507026840168888264811395261401360618527516191267821546281549905963002915764190258240841451181414562384100379669470807170571243938025058983358780491905194543222031564967775098413876135793557935400278049860303138716122005790718130873634420529834831807413079645836447686587500218236010557162432607754017978231657580107419912722451875758168642610168215900626630457664838838618497545097128808969999663682023632891136997021977554716593798932605800717139028206492438919664251645373313714251829568269663107000021159015632295253329492473301974111937233884346086670263704837967469272673666827082514727513889642438257631685048309975057640278303946151042443183854866123119176868483647221402123513468889999787489733359406989963376601583513634492584640963422395161723239838601868540673366811398925923571771138760256442824209904592865786985987139558097231098331355648444438886462427269285602050914618243705639735592691814112296040599031003690812942862496460217631617472644174983881761533989692617473381931489286969205824669879293999051110178449445668883579850994480429213282632728836330529202040433846071567802890681806647551199008681898250606983943879244623471503998200758897327068032070534043834787575766769059779245486874440787391779322693232287361505115487663905656929033325591387958212547655786418980755679838978275517069436773084611324524768096643710641404893481689767666686226346748281059936129241093804080916359019675475826064547955721066979946979768422740407263561706346444552573236618697190050981916719526332089388398645397380006746755016795126180179462670150278834822372699073190592728493547293219913347764589934203011575360875408799172530015634776933245209339332547488358615847175591645219024251282765210615751673388584832266550478684130139132013313566355651701189639457584463936850368946600802014742930287961052739144197730006964608729279199127351447647450485282015285770873347685326987764325241356635205861746278913529881803853818950798371341821675723642297142555121372468416890730778169517329025055968855659915922929882342382287391667875429585770169007687605121601099268660504163452366566064054809528488863526000719018592649435813655943497284951288612341387102885149836184529139535041183393962555317759788533039901677686762161119037608529914986337265021885485496820136762353026355237741106706947433107966182256075051505211382022414547464603004303758806353716877640921076316761196738770121461051942829780019481134342807364359248855546397864037507701713196588524454887382911460963140427711774990038013994668080357794045210989818489643159584630984158461055520858289745405318970465835825264162347175184662922583880904428861215441239524680974953310459873135907756467828674286480812279955358044098038422531003959288590458601263311749222236201727820623900779467149036277153945809276329758298050382192841676643254193001469204634402429521193120314216799770759581965537164523531996561410945530767000051461228402797777540755186576577718834860118823974142767945517639462644158905099439224963868936751015169029376539231336259418485416024500071738540657353411049636125499212688678972549491427104278510348241349280803666610291402728201906528854900244450725958439288513469420583804481421600825089743076910194112629612125163813383948264188190694714198755083371586755674700578201053532682437493685377782114490927960215110257063153196284762697119224516956693588818761772107867747236308821298610484344070991165074617325062215909366642535377465438743672941818688426941332712018736851408700140961390548779930488744671684176846885007015590066174653818159309361807279833215811129885637025068295183248891982522310295063200249047073908024860541169236445904005960683757493186528236236731738860375209698553599839035827107478901171890645454198200971024983971210204322070195362452978913030372354732073378257112909858597203572731914537280848223797649983256480020849889148086475005341364449655439466882459160509730377597142115172174675759754013466280803952133633543009912235660451108202878312357094401750272610401059076524836058969231547943658135639426411774181064800389845718659610251575456058422578365259805784629544105723427661174977455418608162684638224714365354672806273779860773498670310272748828764122322362459274309582629966219592060212397705990116304440824220752257037054436148373409859290696215451809671226343944290112579602816941125436053561028344193172507266395471838988082485925441171838034592564369861443511100760703162461736815649073479729843544209644400131424281484947704541132638094758179772788079602211108010918497093809103529554722030498514639041703343294703748117155803436238734872216473724668071790693779567931523534204124864319908213977702215869319622983696687795084172394004085323586966609840634229416262767111671229757510634297043022365074694875028985206595887966961673422943357905803277155980054071247887554106338676940288354454695569652973244094310383887364283922847911897700971577750600805342225039673792282421105761733119465775568367549912168938933427119216646648818022535738030697828337103994974124181701428688440785207680299470800037138631978900912289721052260853990651926758917709023609026843732498521084083549923041420441462423944465002601749862488323245277692456837198029251138085027289100662876446149247991371280427482994144441544934234259813563399817636507260808361059169224795396026185235964137399257955088442615542066510691960699224019212216112056709396993252569071568574288343574890427728740896486029353277318580411984407959408745018737284589523831462284869498263885230017496522323295596397413319370432534853147178541482191049846162142049407518408383389047150206642142040038836764289901662902210532880023322011507215309030744189482938607491921043422791456373140454370569738042147919518057871808871838069592961840797909621083841102473616839789489724684806306164061830696132859529320734730181344320793098247584975293805479726978791834173607508490058945083088552987574723472977790461328725338285869921728458765186286322738794168716452292064304548941020491540863722592512414311592852993689880544360758093405637524560300981712387578495361066105473154807393928731266321314496173403820504438222678670993682068447376074784573163487120572682050281098571635080152118730090263591262349277166678521135678897202859694577153337366114029200308315179068590436234108241470613424278991725729313047450413943871430130856873818830681794965830685149062344303781050427773041780267133088750214681715416828189734227267007338058785464553243453283606100966467181455211759015166556991215445044871546092702007056346393736785825949449603508558971923226822219204303355887495256390047884333538425194917403983812757598197261089957871636163970096981985552280956555941163319899804020071251903066243833861603296178175137741098887941691024288565990404790314685059782667629086335560293424919228841122724719186593189606399648802240581978151623408287331473548871177177561353680118370193569116817051098915989617549665116990347538481776626043525812780184396455819796808408197211417093510283244824452736539943439988502040436394541824092055266936324206593067915937135458820111911656777771141910208628493874239667443688543438868416971608293361196827568241812734005717376098040694158216842390036464647144025249265628626315228352142084937006536034867364524083474338497459291740309020645505182724271537115530846854895359793745387373076933594396352995486185852749533622891618152809267887341161571419908127780607203501199765370365776771454651114211854159999656619273508130158501473661300645637656918888116476908881892470010929109402115509602895735610092161784590215818661930865409082361575566221742325889083845011857946940111762162581128569143531442328767893235098129525892844460470436816353132038089957288973456282806406759488889291174683442981543585060391409003481930575781987022122538726989403650483551283193440640833944229468566349312463724326852984235369697764076709592211565992345256533380972547080613732594560281691918209861882690169398755470897903614449705842547900082135273429891555864235556141277978573036774802711346927520440426276763117338170608278097842510160338869309379328739052119830082603946137450563489136521952793467551609633689478062107500170865275424215156173636692450982045768787534654922458103365385966887199452223005556717692707144891176754866451078156534099725040837158491657253752299551284932801983713447759767861642980137624045173438702564143678052176614215263293061544793492325482988549141480221991883951833257317053550840342535521963132828491196032988563915294820528650854518463772402936463037909767381262371274474330345533517674226556090488449142318453498900293652275870923300237027288537633273471999658197775543058893512248263300921263121899905153448912556733661530123069413359243597227524325509634046674528244831090142962276525296313189494254861707280322284105233952335636392519294630881987442100348847553163508854037751895815283196274576006641715034503167251013948626708774170430754531799824672801545594067356189306601448592333439483026083168480797952450719005746051957553261742413540508951438797432608927589180488690351547156877392489636410654407966888510632231274685456921191268064127420798149170280894756614758624603355201692808431412244194439389054850311493375666900351119970960321636875340169503278564471710341567751717550783726742863646873934084938295784130020640139551767835398176241457550363861463413260996117990506223156105852716334685336568723398991397631768418000053052045290645036317060846949569404879292747622509104071536368461822359353231075599458179209577773198623768680408607636356279931649586273493123950317913715848143969825585418280020469223798304606345302551314691179806559590255676985951089597071924635842169244324595212008162399692957891076043517293141001624091797386599928500572054164075661131460463554804333027816992969205495783395485889473605940809604179679390147727536928726213131491784680949691272205631709384129095743770038437298751951840905278648381702278624003093198144344741384751729047429234135260269009888292629210176002757558427262240409551899465739894649785480272954250371437939028673628700163367081004242243662519586180817357794435072708021504294030895785310838426149355545427924355634845177067408749142096505039900559619103528426740282624095648487343585674894196295078370449339387333505284029691269412621924703893494958736820108078642989082647290983927773511431593795427033047112184574223409872551214726830453729934635585629546177791602311307056263517858864144575320722615350762451804580205319657421441284340171778171152392755293448678176551354989597130073340670803537749993360189490536711765975241536147857980376881590564595236110695291817049801919508179157916555114388335942105296565005907216074734631979319790328805678925913627331886617728013963439411774679864344177011780823136169391925423634527424083487484083074636507923370257398137946524952967538715946387252017115357214371324123992394679116765274434200973616753880220419230684256626415652191974655230238049046195096042031520783757474877281609630960793302965081336538124293661088359318207732135462440998731717380411374526472658336538859844607348724668107817899935320651437120339308064488056687547188371944985511037173986491048015307688854600090619856029023303686118880743978788471714091680969135732480593613414623989083261213601371953241890416770939595518526601916596770351532728397034132342575218814947687964306617724592322693480006235318588227235494455413797115154818748373390383248950295490018376596886111639143452809057811524153277123675738824358970426815050831647540467942791582975350323429600888891384239315794939887525683800335661628365480705108617868205169570935891080168027100939431250209020440606364222417446968643239691080131691619612372387849450781839114276607775533137779952982210403603847670923565939554021589420268592805435644511624138977636349484750882513793689796686873202251921270054751502551747615482020446801817570869265153403224355674977840721271013134226278267598233257352053236911991199986584214496540157089060819883160652649504318108336835704779405932919342076436885966103971284962647457773312298021126643623612962404578462765294830084464433373006825006963408019039567424880972246088395501027516922159715888245685022743645717538349330110490406659014721242733743203654237448904183112401187386357995434379219540075511632471599133153688427042101880334007972847453468955776134732731047844639413674422776401323684040441840647999352006965283043088042882417300104936988832124696085137728862172787068764282895407154690589781904437072849646968264909721856011394363559599209877385290089396267040455241497021178134058442999357812354533632715952106777352588661658999665430825504953080878708136762843930778298276773968684824247481816062688723377821786033030092599544738593784547689302040971754400601688256710422791239233592027108031100447971934375884596796582655418122603040085814485575065016088007977938478911551418097877471433195916807966044632064585781742824569282030239551376955789070513603217097565792238540817574267654700412289600623565337628127742630685978455920596439067122737127037088320346548360764214792039955771165150394137551102571740168410070525108588844836609762245260508890791319256324695396714547898784796333556360396528749448200565955648791793807641563665736146474130389368577669754789044275594184203252935317016607414305903044988235238952103996592881384798449630813378632822711579669717512451452471524828901693853649566299191481516664095461919874603429412078235112977618903051654080029620298922355754068583788334698322455650801403733465409524553537721057227791747128959720010176779578756482735219163294112595443748630440876692925275077915409667104236437597079904628785129838680624675577749031552343163631680830078666310687952315511354713443550834911522498768425519522114852351790542699035100631866751005699681658314169739897644956907249856917654834485964334186672553714365499031119678217828824693460351291978257745111137581008159209465582257161906157726294681549113239334566812691314119308990680678218937127330837399322324708661743830135574122993751545681268151384250849370195191532774571570752722875244723554854103700140036506204049530216038389046717851798831309504376750609706417017065856302014553437285260698654998633785461613651819555194359633035608973026010584560503309328553652891433014196564356119527264645219856890928675261838952562707969596499179215280418627490440762758011064796545523375770041127822417481023079526337780178919308783450697877384389763622370745850330945252692821707824301156672242313333739287788771212252006652103228584250971082697053670335552228082104677433110892013879575378814426007947234367919054008421432246433124563379919339775826539293742997807744051608562431261718349944157691952632225217523252689675570295031689265995580023761492103339987894342026557929043776476688569263754751758189015507855992049222272510473726672132264692037318539098828527242437996478662390296892137782477192136131714236871424433024906810782107567681343867958059350838005813891592764281155663123370455070549579006283417057935231525861844036601547305351534673744695757412612188010396761613798008443423691310703713824008783599243163372519838961536172442948815543991054867768748651545678979624021797671107409453771133740854795536396243313246101073813343972013648106469017146534106370208830133073919436136407055044835772593917612138377321036384575823046541976920163342840430537703179071177944126470063974189594684295120701351303077929854456768346755040234413417833800915552443097391677731263157082212282862656846602560738388455806480721853092482140515385231096000464137330502343129253968640825214252923753671878176210449583836880275066360721146856778553732582998300822432884144079761665905577361266027648000300887985761923898252910490097009455655503933025885407742796546759666408592301246368272821611258096239157868169065313273968626647376473619187857774705372121162207449888669761209942087863924832699001493137564007496026725154372801050358671520272708846696906524079936800079726364052317985184478228986411529265623603008449774064517848794802700603411957117099628775153657471759694440517823089932602068353655470379892330776101559702762251829456532506083297976056749864071888117492504863030380720237113176614298808934334024672344058415149932873482608469159117867684799634689670087530042162107918372479969797051305216159635198420809206071627893536292964068327528923764375339436450732516381241000108704109747973449666001567797903030532222841215420662909654227776212819436281270666779870669584265324421285511165373530253568738918356412440943011867400333601782240375217556732422206812618489421381657248535749921722950446540985548413334820179551801083604565349526363400415052714059322383845454234969704742426966852664342452108339376101619691408442184389285861112161638219035089732343111642860638364985044787922869059303660883319770068569923509220489371887248476973902426602952597755608769335757215027668691262844246620263196122204368512469993293800398107790515408784968914542769254387677235570240353053662991766396734659540577121832564920902689801515866678799833370917125594663476082574672693053234489313669012132058228903614260382430279679239925339150692799634043517084911047911962524739303157214540755908265155883309814758718566728841646587001101838334365163362537468722962129941088641767546417231650808479625925071626776391737025819558793426883138866719412611514563468144324654163086969468723457769552466085563935105532816460561510564922110373340195348867109661671043484502526440941142148755137515960515687277910360540663231458106375222894147180670208498094169385360526223675031110548075854942552177090848262262374480747204413316041174722985425786571809194870519636404258628223082229451387396247096460858265526780393874462631519616241245283218218927600152063103157507397383805215300544067449033412657418499933225064934758403996578350163607732406303156702277856907477362999743059735847109795695351149353678445698398165953947471750681813276509802857259978285069077906178608277203031081182218257267576670037250027869509872898683111874915475325394571729881293168794872101908942036824017798110811863837408678696482825912586673283157207652447493652439471674269986609511237140231301994897285602791539577463863199433065422980834668982770013338987042919633335488111796093019522557932704856486643377835862715920988125773496880104116964073802282380449261037698187486323033056526991641772896725506958825433528102323073742843535388686410980594483556260566954572015778332339530194226026854334342434819492829829983609107763095666101252333973042352745906216656646169537627039812654881941602793821636822389875301633122490018934026377907422873627305301604122416851623897202487655506525878091900554874124149961183405226007577836022703112711956820741436671765690215810919790194930663698048157497655852719997358843779177817854719703180973010580254024321287784401629971613721470326016301363810071058112150167660252928270138209569327385122287909158719096891674499434723212657266572285247222892743155785665244747081233428077160077270615467017400774738385762252683597186634480156696305506384541348418769983685855787927598652356387796194468497161575650699100375725273484337914834726047814069346204071635283341243619402046033859011507833395098426356368264600045759998494174596730578906380992746059434631656030739299663042195811306965447173297925835040352731456695368178428189650255999435312406562677683454103572581746453293639567471156696440645951758967468584174725983939774808053826366324030491846507118821297780871400689200033629206142105231546194424701687273658623295545546327876223968165414504339405023501811055574692047220901609858728868965563778496720003909582701085677906506282172058348922013271286768703386878451329919125144041196868151699166667142787415542939721604221517440391421408551896904057141823861445777619893552576023256006204047743944770070543481453835096270795102216075286770167589439117117709344502025229906751629464065922005692218377622540204160577578772273038106021474687102815088031610175068736259457024328251159426566988995371133743360378883015673898760395356285506555491894303898460327974101204175302718134159143763238773855515793107344620944225187337388570908109993708629056468783726401775351272854263398918836897907859117033756922443271252818592907081040575298741166468156271940651674091566993295606798330566120490187350249651877123137252513779658670879829418995046265259312422628215187457118035093928142055887746026403171203547013225955950245656374549181521178702494074914217625291450893293836830892992561562982187817429034142008097796609885116486578259399152869483400485204651229960048538075406020683904631332998920211224190431593967909937953328409844608220825117147132783066964550793065581876817307454171318855600063630363487607652022053730478899515588586751402524804916380095159738097565931667083856282531944150490917933423994038035245250887925433263967687852868984357963132731155028656950527491584181948866356986560112208788451995822924082478063954722772134991094003738897450264626074882871797174173996786268923400704084857486846358378990412037312541021016521112865574269768359936057083744453093113983872715382980861287349170531708862766844247156938762290883676086486950989667626657534530309827190761271733145726391999560657254981614078061135694302145110093744894952717343298735385857508760474149032934668323218714589079841795050932145955602056782743445015532193676392204578805984028669277040512750221392204675659045830390360417989500766742146840303407389179771730578106053172983015390342279385840782110600555853690706330945625200218563740630583017965233510501563972183185679188566114672865804710232323521187349888906430313152595484592879194080164361927407084546852537828197772837762613221566624027053884388363975941191262068208965905744387026463922906732405516441610804551253114228338274454820204607878123805893875799065692736395637359113672086706619177001581450023863934518096796724931345862725973962792485873241692467917256409262332260218811872524143809566547836546175491395222160171440847840481197559032015471108111093375166554932878777750340837463542682344928248097744544658565044536412122714605143384229703571175707581302803500534315753749800388824920622765751373649539807545300192984704028744665208648624399771993601546192356341919755867274958883393647258006476758372538066096743440747499798895425323002186023453222497600862001114445748597677089449510512255332288392489887038793297948928437364385508480171493968173628023585348091266458373107473654458068167382630160501160440599637071199640900096969814866297604333210937207936868664159976894372318138577629589950671713323952314520234483958603394786400109081273037632170569414168082077786036557077109820719127698499178917001628235259068545474912394236307323989889373090408788790702883318757298356247422762251437509274540526173273130783694285060140982129114672552743222364419569156672098149296657540794541109503567545725819287725681692119043163106674890986338387466661634572495447282866049423710942464407924077917822114967045663874986713054569571963542511332599898974107428586917682162026687285722457314176965195352030659827206780675227945198299607202528025991890942143664270430261089414291329464870933861031445046661925866842830815921005365962248615786849616554396667039252478975759527812355723394675678485757108459921553163853587677038968010630622589486093963841817240879131163206424508719151232331008613650954251957562468021708839117482731921376607864924786601751369169431448952297291281374081759666413636120378190648247485607039526103140332596529717366823138938460061422981763400799260297852582699768497021360818880597269533685342704158138537604639535562465744822739713936512905920016188806117513718937413799355290973532896900993396869865737242478400038464500381601794702797272109208578370261057265947147228665965497520967575678956853415206163251898839438418334515660581172351922792302057913145224009736241031205040314743714414270710630292620458404283668184085451852625987033502064363052504737739635180182544070847457862652894356322572111422779190747229809976468984843652020965403825433345609335914385179306292314021133552717664252422690738513261906436931148713779263519136973092133488737517998434891902747899870545827164163701665644850869028129782226643217610712876542444166028124845067753929189885972547424484022389902867211486470124191289715805335508886328668722793549533205158845187943225861953012124918248888194237676685052201527700878658821238857232445393273570495337733997465061146607905355528901658810190999056438517732763307389997042895226912089261891936597509558302234585744392265218134524588753559371861417257255350616353638123200550737981062037543186679489024825857095538071935233590407411084766316097430156138704072050878822071411030553036274109943389684138907960886437090336874600173277617604013394166600602499570583084885725970512097555108103616582398700122380341646437062139630640411045504988911804671966759136095186051278919555330878088510883851053260743601951557714967656281920097343894062133934705846320520171597457872903567254247011952524624138399141017197934550183234842699982601869576202434742600322671705485007971473181249425963494504665739109708677371024747303791885220185575995443372642623139888332708871283621839316401376492680639497360107541113905642852695754134603298799920764550769117778246341660217228498761929974344693214797309494888290815896478914813973629709474055633649911092892771852897199159724839707633142954334062183051713868135351915643947816956548948611267786087907828529752290050121199083196359358673380269987283525667658509793650997390016273986024788883612449139250516465762489186501198136503679915232782439938592052086554339827788627702965142231205701459244045479068721716514635635578133974527077090500107176877821165985810779272765343895511010707848002419282748143011721311807077653977921930970684396579748303618667868057190786180346232093286486380446661442695187476664360478923477239460100422198622124318122905912487607094536495129049645361352625385301925164503498544401262492574337884462818194474981939397883595164809454005112804606239418125244633072938689229151418489753336531973861258947937566524306188352422633029325441597572549198384646576788472291324759938344449410103750303642055552035951949181195189703582394945260114835314481952382847568873219505146915626422610128488058439461370788585069142539445499461550625538228475958864720334212837732404524032146862353013521223920786007186060157053963223759186511948030090688833135296078630772929396371914796967182276694177329022401528381864281879780038048781897659574732383072891937497922430499204702880275884191647691919969915083613368492330201755684715741780974018285480188248175372728810522408776500509523003105992457788862541968159036114017383927668084727112166963331821958769609005995373871504397061884987660242976982293564315599141610820710623230789368367062561853544103437269725747557262908443749078859070810445731244771182977328710683666316621897313358345818143724122485277229250704966696132051032091483510297599220085618688343285287607972335440928248397179370598479196209607186526160637417238824673472368880100696325108669252528306810190036298601008256890710225926722762366313747459211380635329716531013071278261825813942429840323416231463843368799274089317559896700148762581694004030433441774989350680835880934757288569714519918811732344309625748493700492420155871073820249513276610500107285443204603011371196043611684735118531610169139363380140879785212964201041481981871400577882907242475905911572892216235860281002649680830414326544397016477760266878100855233463638325748503863494738158272373942832971399632310897677490796523895173765740383466195239852088203234108021631248650273182041029789466023914960094896771793968669680000741546682182774984498596548927794729992571492489914442368094481271437419907361920370295533684629992105113323405716820701567425481281765740312021036626372742914119152043035934226993571076795584721062878685205835280878225189266365845394896423516662185193620149493451102029456949630724077446979658806914705793943067712165290725080015770649818697255119873217448701875914091436103864288933726769170563926677890371647498414570005929464588212928600572550514094044165875423043462936727705735198102389431620612508496882789755170685670187054281137436094295871599445122077062366115989641570464796757153440793382988969650430870146244198432409305893499296091777048815531445173470271934067565394347520882692195622911481540104823058124629369999509401215974208961109792701644333564619897522904539190175182001489591115104153593965525129392131994352116814320011802023879652960518556827154135963164383241637832944889067042292689881908088965113943337816388423691113887611194010953895610316640292529419819376168089119440930998538403470501965940949235092960321176143739510437902912638182000879008661140347848152545751666369805876985998056705031720608637739510146818861685401330430806859821093698061371383561686044853170887912875022747618815645908025114505767272845010905174023462492060185077432705248921483120480326152838427722093590098141038815353536007314806514700660597439428812286275429434543001404275178380249449716908631585593442619927657719600440761675330444788550029932645750952390606302651068135711920512469873625665814568685654259685329756097826750879263368057791150125958877658755097277043173749966485888899020478221010561868555768856423355096108870988711868401780969692663807359741041180840072287718531519554496612328844860199939092735557515138428415398138956210170975241516191788791042460517707934291982222746299923814818544558506675801480725119679048289507001525212336514367085197686683301954373123948126154009230103363885369617868134548638229172645657526268226394178462700599850166642565272234938364504219455724563210872442508431418003525775272648223884369890161899286281845037104184106011789585687690476396598384587100820696794889188755783060476706940676475812983884195148593316815968860641604284018488976031009041467235767234936491220762237876909216858336091759387213797639265496060803576352888718367023181954115716821927885989521210631821643865463476265719680139323330665751669984955231212946167618406610304134261637752438534843879008235391751872327871186992759356477950134885649826841036603844312249506766442117991059731372120190456006425369284592854628798687757731635958255846547183096730947139327251416588210857280452249984807678635172365587019784876233550353462326679761153742917555375124940464769238512243449482690310008569158117210788126819747095237198088557136772084598771815946082046314385176742989217340398755956195230825899989732469669681380264022557788232695694968707156111155508380267139535107277565784272468468499352350602972827837479411436252457805204279031018818343295273003405430915718850909829687038945593634087890647752119656689425521747864250086557224668924016183446836074814841080772044883878192692561851204295629040723164134957867157652890738412421541414363956189709651730930531440734280857122589498123952675038135348048026771650332241950500829209122840238544530215343151881529430092198934917395216394788685350337931683066096000543087629605813117302316260136736814883697550386453724002904786488274716370377122023384123292477372007484585306340066814742320157955130545363153343895126779561754713130254444772281279254136040737688051327638338849437768902886762509640611067657125598468941668884015934704969792998637861946186229909919179907851044796358754401700742226244466383168647103564776836626953663394915699792666258130783939881328612983296371754683097535417850703160008269325946199365675028567454261011752245781777523023819149729642304367313077244451699922115693820915411753926111683470613446600304939462714646079321731328404285892825632445304464456447912459719253750965137578969241308668089097970882939322790472963717165319967738141557627769456516414814637549854662608997069731230747191833116523768796900723247589915315524953015994326947623308549093725756307979721050642359973310969493169873807990351573830708116058308271901734551285023806791101045215257533726589181622064917887037231671738563546908537276626251434336228771583464233956079352658890463261408555653707364244321879100754892356373183634207281520089214109220886276732407846339753181017081936802388868206772398072823400404591791966366540536877958365175642529675742061614844972272235408999602025659116864982468780936697849925516551275715916525163983705406695063081637569986792942209464189472884264898883695681902325922042359322781990282300439836290592012541311206679254937819314851636925939918037763363934405434824017528948549398513135650778456329608747094945609624428082460409316639500313174838028744553044785223482535855535032474149998167930974311919721156440870181509222867214772557836395844607987376632827895190792476141457219007513013076677520055890984164500412444695839152385206999883045741093204108626818875770552723273884807231547011205552265522272911306742645334108237719326104291759252548378213040909024136046808346528315824305345007604111921842486568304282079209978349398999575120714260457200565782312748022946393397535264916321359685624091366631700997136518058344670509609869525756380159713055202281539549005108347325676415350908244977007423086003120002485239677965645990224117550552436749959290796656700596904228933240514322400163607855849507799447092417279764963359910467876402224060099197386698761372228517263210548446691322249193326234851628268189636580559787559908351794786988902749717642149061283914548846041316496273946373489327453486188008067266089240383490183914706286180713426881180499698259568588066942137263897641092899406743335467642826905440924886049732604999621347418422964786974597830685447289293834440687747956925529166262394456553754949233640799272858860988892998149920545477593800173685437895144431672591264792986377988370459403304361401396484575786494308135812820353721890238133508245421667874933982675269117848699186911589986499708911783306737001803916571262809547032452783032366663310659771512292345617634975043873880841360414763433590868516099725496479178902410510702802703489328346146794621359617014045021866843368641051541638850924354225359431119590116740979445706302856477346863659598728307305920836768870244845711376831164905894800518988881042602887356793105898245141018180869033231274699898920403553945873047763078880160784528960493642367170125450924281258271332503804930976881216716579388220989818816942945578792132872884214637143195270371966156122404294560739743511223284155972272870142980847716227755701360397598701892755212851244064619083783699482981513809678679820776379431356012590181067887407714221554861152982937778459795614610572873274404661879156333197336479953136511728100746649633527576571459983115972031002920229374864140013325302879529467957234111814967583190861694566176741091973225002750383779792153621338059693830854625116980483416571430172968829169588936414049706476566351356439823316083974108203819557605951588489751256804613268606327095649423045011679218822759473873960079175650399710943887512334848796970359109621065657964078619299297154396494730472467723868387121124508537750717024266922636759732105673235705812299710640528047106726633548656811476458782582059322825908267743104043847131457178843127420389584015124507902238705421825228478319719829424425387069066970288572642402270860348619614443096693148616055698966193199711855594095576826252153821906243048022300596075038614559745770042784589556004653286996863696796356347282198056749338053040714364550687117511523640189374385199765184985779071854490307322915596334555455048752405155411444663345610197894976436093549134551819711246870776919292547948328695261919015323036092912650992625697182025284701532912525368207261991101559129838813988698790713170085203830193902076178387176072094101994099054549169930114964800963615289351979634495909769427733861343730206995564726419953581120836331263954557805253630439017873995737279568648580999262415228050042191070994373222996738583943955982960267913091775794415182589444296844995909501520645214332216495810828478114687919838162425224124980332333135495429058413371993400910559767418601320033642815361786068558553190029111396396935077302987781721083851522210612701106790454447995487057261368647843052409788332502029525845635285208614653688329330644483242440538109688289937636289575801160174558074716053399844659088756225251020079740342292108763756287140181994377171544134042498719662933502795281529800794125374157826390016052935568484190305099517487452749092934100372370642292229530982312076230907514658031066069955697183902444876453810487908659499576336848621603414651525882247210335610554565613229007092079365830585676074471994954269482718135598296701175717238934378627369112928150761112769849644538283941208178159501433474093250241366114611167807246995431527396385777991218117900384412629317533967364317169523722713492173490008149291467283716200162001299908298679472704561656165295133885266319742026049073576731136209902193961734565769862683012907963959518351843536976436757907532119279703993114619892072471040220219725100287926568249060015428718593364309143966623949805437647531434984608724280598301253633475218783457054936497620690671263840869736217860521896688080325992556097375683132307908660769762767618546736361090746915822053546679730772197632518287591469839299698756301247701912971649930870879414466708938584343064383715857371892059008693147223778868674916003266360767001575094656202298829213361499551105352016237948083061410454473432327062403370500490774933538721737507497126091580189057229503812068235307487261313360793981701088240908752783326193390766494815500004731532871915575806589573557276662818523770916722680722448273222826909156506188481167750145879922503418095985112208678257591880067243688207561585823404802452457180816124391920357385742905107275875834849812022812439751985947775023729494666172170487058252939069274231668175412314478185092479535216105397059296815856610893443297460745078947992526550262044306550998538795053743826177142048385514659893433798122584735963690153055497643910300389228641590844000393411542403722453869256876749876899587047742003635411788503774683492736188529670392646136866643897376248558616214699498427850030664756209969970423383465962526541237566448450450255140991849760255237940795019634003026046505648947990200465007465891578820764498558730556494514005981481288543605613844499058313513362374655501047204824159193976476015591513985289792238226484345715038300696813655105788013869971643107673151292007634683391094141917454304020369847329601132519152321085850170136511366166769212174268339273397589632372461306118798107448541365206019734942412482452224622774182948108160745695977464646110702565126767898859591825966602788380828293963457583696495988282234341226611040372796238772659216639344082187633381382030651403846273575670048437975904485485079940690999284942414688613482719620645774381743523548361651595884784201653147684652916023626169787823862297239653308304035979706449518589342230872283641371209229383846267971183782247980164262358925542920299832424682184663604937239303174941421489001453985898040842248718593709329154266175884854749555633571630115644956800468635808184321805402102129219545723927592141466766096111009347313818483623705655297922896768352418259694087540266495276783001110580173601789012101121017010573805264346347376074648638985542446964914035610163890538992520090878420806469962536418728897976839490628831543988319085938168632047228105143900499603700954897722860953360603972195002553989986438972116555459785902347877323820868003002987723248602248996280648312924241553326120225492249894324182475236728426933218698425152640516692373998751559728398528342682117569544023937116501322616800192448045879954626119546846515764037094104408032765144273515174980205716349057872702303378281867904885978647330814191236055076171074858798772851192063903930691065679191285405733386216017309342734256255245261611605252578368626559110150087219404757653666193200645670857311587306772704534056498457738402751030572228766286518527361477507383217033447003766037707091459724827718523321064455045954699954140622050707400645594070878812686983429289971052211080179828030809946356256905424975301631328755967828990632259908351255315463094863352985280437691789074654371482131695135209654190219389123514561884063846683751754129869447391177215848412541613880134661961128656195126322534967675761090337012142139202553421801159960693592704584523378849450543317660569363647663381668885897250960215627562082326801885178286794723412080033442959581569615287079858144283023215854154598102040383536910165224798419855290837096005439582353573016561225718267803096728504672389303590740905746274711386142259219793196967463934792606713779772451687857360861887059082984980136629223628716209188875320721858685199350523363476116942520461360591443739241456162978700903861352826302642185585187239337555806561019888232651948326578950768474240415939035788745657319234301903088119096535956655325462195542436755577273674875816692828572247310141762349866439083614726141904880830233582856263524425177933475215799423910541520528427980960430105109432676710788480722757789395764996809925960415852762111958131967931548313962366174182603361324297931412065785831037459362509602028276768505109484376496209574187035683990656100877264322446228663447366666836963344825181714360462832783796358848947862445040571279486733150397274343064905215260944753438172001884596085250245901694127499124463614032940512519369063388224064754168032293661944416463047892911701369453415377526258641114677380486779307367214813384802164911971000779636042397027247975223221429974971268339892210857107026665032873138926514965796632143076970334342341902805713106465394361581907649037211925852216579816682381267260646278872855697724592650133106209579470603154136593779905841419114209470157368255952146921427251856539135065921960921764098735883950129983011188787189879254183607210943799271948101344532231962296125488437890951688407478192795295159532071109849473607908478154456489637766291878659766993433024492105027483119242284023741895308597789942982318504065099190072081531486192960881931702381378316504250184308461077306877419484189258378192541412364228423633629452124435468387493686175820366153882234080351787723828687446078044788067873829319731305544358625503102545525201654555007680071668656715892703364139021417220319932862247925869161509762295080107449966381040016401713810144331043047382068521174683118395039486775873514458016145820375423637352733274048049450686647737277192572356271100911527541266272941657115165093587487204823471210187839448950573962743968766592518711616098573600184755556534959668374117862766452767531384768594554240253109774686046909256014277593592533554128053988793395234616457939406726120250501757884972657540230002715029736903310019302165542893981846477526760701802868342380768739975206020309620255041164779397442385617888430435665486784953169768362603948231085017726353553435299889597038057593414489492697863657431323481784494132332204078099934178384733668403961821895987644287657720158319853165554865675643859031331736977365835466673778376607576315773853619039892197821307817375491023857436596532951172324122222636797093894166744274074628656607142948717179140713198805198535441627921039191716463086408101813250231142404382133608861269057825430296820276075856283663279167601102203498255265634273610893335490646013142101433639485582642951147826563290294075179104852407370111961798049628919668671234082596256836324100874525556756856490688517792093481175034675322125942585561837420723006006033620653269722756477593292248743216332229255428591799910203678161925976087225122371888604851136115069284448547510287670951748679049100492958852003066920116639137507532651149085339182984607934892311167552593431853381876025417340887150726305810853621054909263963265815452917659514998814896326110599459564398545920063358940991689353955933047928144349202791093121045995308070975532715887444863676407002800685809986913094498547988143594244994364935295088811198120454023334796011006407851331981658399126985206007052985957279398172231953221619956964395440554237251367912540393377465411267991792740249466152761841813872126735854989881847166441806457684418239764083788565811111680069049032642853891063203251595770956593072168309306115344689494703596482441822348191109122556352661188912329932533699903600674939793365315722510902461323812412869041485754324748901495243596731451377294073089444816852442594226142338888818837223506442025156188122331783318013961403934595529196829492547051104620073363007669649453422595584889356506188025463209176216516537995382486022912942615057948444677508825683205956764656918607635974299578810491687564964901632452974941445559013358489011110226816762681452003433183713129380476374694171917705016469922957739377323972895428715761992161777121134359687544341249015423537157483825351521926452687964670972362908256911802303497769373520319469878536132804876693406988196008602215941712979146890990810574972181345468690186472354606767279000060138482624624116066029900302217391610997517768813006537041853768336661183728395389776266158578712028828845059050224306894546015668576723909389008352611208394116589754494823616964877195690646818390819120206019027458698650566849803781501426783331333342280104115988628318356361857847512068086898476067449201604239505302396655286311659257232108897623659810833918336147886353677418748911110673499664014206570888050535156435392734721200448530974747894616883431324653259243593432938338756226570656170489350903516018869763778107290635286733390431360590174626631299124690726919445651952977141837718916395194759276009790728793016816127044346308972712023439436141573781834722627408287017406578906505507155271095765548623103894870154684913193605792828993698157859183099669561868652870667924027935865831233819406193824639956982585056421502386409556133218703871163913516566488964880501581594771836962769533939711058363711896798734327280554607991369622939507549712253633697991923538743567527835907103287097330470717686665550500120534789901024675502559503470746714514072441321303172912162003207631868718844057569643299197881495247802612257408686746710027005881415222818035494245961139967917368045770373039334823395946563002210465307235573637697156870008026211535322412020855664621685259896668883116529585228790298736119851619984405324983648518599491711384352177198987381761233616093649396576276152278249355540747188448765280457860084913980293017634292951163595918076038281166646694277203575656368776010348466319745420489905861694492034242777065574826848932650008103493748348724258886344202346085296871440524496230415404376611326978322630559076684161655860898612419456808432406222504819581674485810075820355082110650746586961303664811504489736364810006108550274886015508563820373217117137620491692461320856182697315450062683006165183502129411078553867081353451868955631933750466097686346740175522225311688435325368266500763921791668256753822830823613724277763362686188524653305738536025531036210813956157472024661277039112289208017768921548582899359025080567349199675264704487145798390441485820486204497007559150075548417422168596091200099847980139021325522405995574794825768950414949484878758835192991694798603701140366833440985750358732594387856174573357713054614224378957787011449256767709362168569312165862767105106959188089647422871868712132704103567257881445686357391686947995000135144127689540503970602220841581706624890289499710744257388138565844796883470899256735823116229462274485974941857756007150727448538898966260441947855668325144387210233804929538803739408592753587620102147381174595101998802004653769736318754649024252637358339866301927153042547143578566083983831322975530086821833395372203420528462991880648791170473984999362269956087584241958668459827269135172762505436617215851960461260011587633147293725071563253265073820869226598559123955905928075869446202543727867737940419291423774135133828675467428102304659958556284811939230314310145264011954524130644632994987173807114629365021643782374383273003444083114769641423022454837060874653557603209627599292192770460608333473198542591508737498488061563305423878072902133040196702468000534177033508675090497054091274400751064811462399306710318777826532780270598790517148002627657038056185837218119208143714672232539155650160143607697835916251163861656628305732331817608599559315222611735095828980749226138161332645683975247866776476712893012717317048725449727122510859795926691111718721449919856740167942678895405020092031438216651405133969414165958376060861387532485810071671469882506846374034030981277144246726947312480901924641666559136864598409868263026925815446599363989671724441999764730041707764784689851445830941210337731541639479244806676164094072489569733670729096188698166986439071039170728521994096313405419160728339073216639509018956384404104651616037674947368977962723735467523284812222667587841192975528508561587359792691364742774704131940008304613695985136337327903396923149413339614740497482620879289190791560635121641602097025467413294703048924152792242924840936986774951470378042103921722002099213246878589378549612116339048199558328059771369469339561673806795734457071807013851369683369050261264416608793204805672010390980441860629817570165559160623590923169155088810785186010057243853331391956413143390017558333083755796966889094365609734455395694187366854923732342748033750900816321796641486972290569842445248989657459465977850665574557132821724690933081266890047496942503000302684200652862785288697324950889740641439926942475930059387206695828509905689061384271720160413447659992479235709575510922156706123622387836973235218560982728558333001083522760166854052519760750744134214556432343471866863096312942130671079825661358205330383287516429541979401134299186868505852380150883849116754161172603507317353500822439272183363199441062758042472337243784291620329369097203852113675572792480867933131062934597059918273424570023953879721664378233211051678418586230861784402203615553543975734991593230093326395779058849100663725633659935229241161448323023653110494503498876633636638724238180379769472438294702214076105814442985994001970513264567381757438503533137690976983798546013976561796184671421206030217107965820200757241053928723649455800250232692460238204580638711069486492930109090891602842672505749724280215947725387959850361942362646030088209178117915392955278371003512182713932716831278648382970643172570894821945119693009434014848272322330137080137700954703068772362556897456830817758155775534003804754859821349061340573629171239435643843325787297403682850189702536922157455545611401628026337167632058962534519538926906002946478093713495663806491589914386583188209194670007062619009111870478722902046168644393997555774375437959003704966125328100710256415315343864360443145434557347040670299409737257453356558835463993161257152855216628219448030643589021449321757438994666286719489427107721837634875085741061602134650030132072490792340848388181646874391095558944645035198537722153927168894249333514267124741445071636178808997376809738539612979101340063446974431610533610441199702653035055686127013071375579084877098658857749749148295966420257242175512224608838092336811909320148628178001768765101102216216201353121045021440774589957896254778299565723966286306252960576806139314908772855463008174496018479260282564316566985937241050430605144969871960475028224878689311210870596647026832496197142257744627714089884210348177560752962285995030240755883896491094405116665313131452193586093953115000599559048572008686548474458771230652114466226378436957979219726924495245585185329177732372745084402597086509751977514458079120103612743708479078026319868168935489327787698268630229984538753611768774317270163783256097073698065949724250035460832405071088089952472714745305100545946846703506779348325059741549327576347000570623595605432698337720351547065097221218028222221792166763900574578854500323433570731343167785419160855729107272222677376494727153039435748716410007556082580560539922002402706091342284983265275468824988071658262653218076133521163176317263802530887966744654143590137456490796834028343542113442313697966495963837285260046925924524668549790768575653078812277162041827440373304721080756870854166232300488354720949443919930359569988042675749936510086750429489034029693823135392893699054827121446323757406015773163953700618592675933397034555924782771818069696761166074556106732272898408463533801043100469980927473687800412066473421359233866630629951955240178453330992783179871761010286778700751667239488512001200507840423105203255879746166448829688843332932362689022498726352109647587716802655554105203904425634683416573361114122181263717180653249786412727876480042617024155434247071311764146074416011921688094027664343177845115399471035140508686852444844769826963843227660719317399110789987604008077553460924833411407181509894434583237769634849814204120520932206805838305480366305064771895091479676399287371013843609003824089595381662890841445967099585641024113537815083859280824314046614238001387803502343317160382947598808764330609258696129824401901585758514773628093961859623318826492477442592650774455873001893788513287234096686614914556776642767227226089808694196219377889454645046958961557325825113169063101699021743684661210021754095738755878726992873322534667253776886097806795920426046272112901619035690064982820232766431472729869398083680742659687011643673003271085985436378988459539973550397718086353246599619408691855334114300853037539989985053242495328329554889691306886373617105642729088041993388880367177484271145085868622727774185668202372297180642602601025722763467442363389503229163899511629360206491360739532445255598407389780530566413252833383534043868299821613065594945905779459840207271549037003615081943937597530686517579003904022714022163820497922951482719346451351755186395595581767212399207969999100441293367037075357086145451687053696805617804659866602026296764469331961009227523404522595905963078060232533822689920163028378027494774970359284563294105508713717457805641577152437372802632669590632272548549502814906314167183875392003911828816221824452030542518690405749998290845683949515192142305420472764879284096691117774681817405101701448661623662912310507197424230933066096821969606810715589330401846135886626638852756033290180073012618448552373580934535680204209833882406261412258139509646943884994269730811627339835463481258483975075498215881790716174479424042906005035268992754655712708903960567286331455382217030753750997539147242209852876922539121986587469044545258110783229650631438368578196082439467925076107864608022583495369449897265228581714288909438153159462926955851233997037848296024017257207475976919984183448615916435626058883048747756536688217276987274995702577477642286857431137334104654576134581216295943786452380465358253352709152033009225922399346047303616468983521127639692075860422503886959602980495783851798588952474134349883028257552469757675167055296422859617107068477871384951334795472088317428330420567050279232215854490781368280908973867885499796106543049200616733553094692436747728649255446671988072739227740025031878181505373064381718870134419831368883920525822812892237389262573771244470437328906354272573746127163018301310184668635413642538630425544353704965733190092743321325453001669035412344733623896867708468500588000788106247816806307840693683825193818179088025851023464932998933460892469456659321523607316935408387681357471663391227776138639029887330763828815617686117936236971569822682081643608409187940940700673331044368250162761114894177183685136825238342964091782119654603967351897589979105508291110447142113966781066175483534368222881016704123955222357727220089703780611486281848600779034273238418462039665293078531975982651341928872365937385027855961521872111206646885174389214115862854595661737657006887434239770062953463056638007885110390984765027480136586009578870031726216116969755070738974086912027783098289274415467766061500545122084165130896847196077272117430741384764071668011655024764810526700586090454744936016500295767119696246250669273474160818685903439440830584005295598488521081067377293460337895967300526934260360745461577579901536780965947249277923953576225665589997010117083866738022795906389343232565963842961109064594310974089270540660341064321933417663372932058601769112811831575539950827375394381925045813050833171949153552905347759259726412772277486397188790114579013178394017555806051756748247472590254367356961866004333440995768076520552812569067302736855707941715247794916367846110977128479902455104277334805796288799834755583335444568187171433469154074116592649969487882805934848269761482560070378784151274436192676144071358739496093145442753298313394800578977700797238796184466356993535669848758020071790699150861179570611264424740073634722058192001349854520172714178150717035986618043564167190717814671158245708004810938179237570999294654991111841890089251774130225399793821246770396708551890118911679350009979813622452452634683711738363606724662015839984011391960489846584232734718045686145223954153397586525975798746265522512535138806755617028992426352930955637110496089813041330853156071510500531972217519468316836020827505022664604627055528996359427066428174109998119782857101249936628129114736661667204751753003854025832846084831223970364113209247624739497765430589631076830564284297590192593397852460950492237672166301028870322905592823435614055933138390292655643741215980306225948333677996980383577912337289852426705798361184137507926558189123168297093114518844662400883871394231423007780630033037048183443796876451820390025920125836695472341886986827050499014845508542378475790640718821456049168799301753332993338647091173703136614023073731307377644128939571420136312275547725119773879470425806749319690128004677887793823281687728180679015181888379895555734079623551821475558730683633032381718769084597529309014270381944570374630580703001769976577236921132289491130776196649847403785633180740728199804087067757627733384447597835652622106787522827975851275324379757164417322451875557181535927721600808800804791343707225972910339945446602108271917552380970208545907190276846495664942092953808650270032535067869860129658189759475119544635825801440834468014543815278212500094033420007900956354803667130431793660226020083577541193404900051983468997014825559618940858462202410587342845967381621324873412016748230912625414693715606254839145180518477403060765251934374110555959184101375060949849326340439814069159369732213242806871745140557771078370276888544244278539501344312500516908495239628456143215705667096169469223267318571130774477418915942381091527734454735620801520721651714954397784800255191141388623216121862279679664967666822332483180056611642514500218926360645926121960094742413887249899550201439768950396428704354032078955684904388090233762747312723666961007123534668341600153897107259219133888055709085341358375324155367885538965296196194045621307282880406109119351957569415387421622537280523747041656307772356732245516215619398123735092082407831892019591289419593727498650025143476914648276524152665089354977593089845987237882940309323405944872820471153662907245878367580430261584158124468034291528348351999408913695924904899782728184681944175910534873545830115122841914731116940460352570725298333430594946036994615498151681839586224009795727642251003932783584931237517765153066683981509824084043664994632684811950990458346492603292793585603518331851821979605877950258813458691596540700779892590146687411401122566841890421108384755797225456712901249387468743709801866154180793309033282171939953789847072976272049944169090815238372932602908312871291827559687625649862331377037966007127179278979286104467651726628673638558369414375049916626644729214655030939824472150885597156483129182032581327609657696417447495552504083814685653732682148983942415684953156142421056188857882972959417048790400649408972617527043488623539086684617788242463494944805903632585183986513387661685238471163886700662104187310239796718699760772641289506294177302196851266796590633837922078071397495197987864178329369282857731037697265322243572302122774084384032795969155987878317883524569944824547174748285769549185868240228609018327938087403079658630283807533351067191106383874011882189981820112057906757458894842829024249417649869382546120233996266715681616530209536822294318371439698363307740205051496045065657809708628726798655323067258969206325463340868354265008142284246430984894930778291950543874974206945770671610883510376899625839100238190925530505870493764707586335697502911134204430038548060805602659609978458692873189914736518063086997775495103832286809586535946207296027357199110215060241349209168504598454332329656748727490986158538967729455087775968797633919798655880256811197967604236637409216319395222472293418481163655562687231234783882543788939349978935189163221330221306338212198143620704906096711660833741328138740623940159999855261024806404337990727225472248759014077150867603866057458466262519876441900856469233157864299651017122738613835918925888635465595421595806871591465848324338179374891518576945045272784023704356157909056765421147703197427640935959948336820340833011006620954138753509230455281132314360144451859264871075669399802153375179707216561406344007206037955752592034508692564539750226290756372792639755603433042260849903224374307777745186773794766368061610926668726035932941042811757698502191770733498742068463677818804650014462033595111747232037666229434375081331567497163873312875723393328312854380094799422011074631921199166474371939621058011472946472910736933738863850896178431312821494245776289002126168567704761534192106267983409907247577806950004748511711820534507736406232302595925539166621219689995481436716879408737986298143987281782915563043569594734521525578986706731679781830409814302653354277997316321588373935548140815925170564400920969349243241782278318458480194329569600878231032684283189727185146857542250895455491709040943570483655926658369102620101075559520359546883256298887338883233558461849642911496603342106816599479164898490916827904079734606091780150468249976852967816294339490671577708428915173679572389821737405495019638709758533697544046259262248521790902205702851238752332752222286464639230263377223354255342228201220308697965559353422551221344173171080304900331751734358533860483107468073136604940144903319973699244213943070560460478211171173762900031154143337903839692401263332732281601481314178037718294273354330736023925781825335169864254610080092784885713922099491034770225423627315927039294404744650108860312443186437273007011512103502686038350684153509284346706637858098766728046444653192919408743269278717801304632408000443352717692958518846296242181768251307140670540386958603936454485273661543526878199934081096731273429791064076855832007066051572528153685977821289730999214534885270376464003564732590761694965120146006101408977178282407433185703581131765934403357568123909709114648762743286405034560880789795374235357547497464350675209544851810595870635388966593484748686892765057971822451592444309652381129911150708712145633979829605792247826650114766817473997032734125974630841924739949391671714388962010323036366627203218266158250800642067004982206685547009750521059187225878688435329501916285147336271606145654247016366248192493393700986878009508914472751699715940685389182317880319014159836009698831512308651759294667353743673568288620723166384268117254435908191517762463806852572485570570416190857980827566317990064782446811014880418371731832597700422546319423506246252079101927842208925076388876885467791163782911614887710367977021573725755991792697544181546197624370215943036449622335397896158681749992502286417361818084813339686550741625357842285315879617564014831136810068352414712559845828099923706608671780700655362045016765472305881667562219446824454488782858823147624533721502446757801453820578725591009532748557686427137362320238482765997598301153023766525627810137020595137142116229441621052210733726106484561113343682350936142866723088006719489221687737792983713108437010282140137739358923904231401942692655474202935026368906835253422336390718533791209781407706268127861689189334970379215958635556530768592178583197006643526170862879872862449094827370027281880046984361030559907864658898953717590579721996923423343624195431786283748691126258897983544413928856146327742793185784243854721133573222907012929884362136766075298363846376850634395696727201406852781823719422869293288317446527340069916128573241995144949387609221382161223541680645169482751563927510119149761942173851311794889999414310564485755134199849617405021104270874935595340006996544805390900413204322316889474725229096681809511985983497194324034529032548018132125413555485431451348148508141303089421449137006287533361457617825743844482253814368508787630489734321113334828882767606241411362746727160718648699468347398999655960190045564238204667633472040494762178639194331563627504850921378749422218012048141454367748555220248422006482017058187662070955717508721738499907879580439388418897825053431882560966601298113667170020925718030970538191238029975222457595502589910875876817681843750705596453216774275652072994371919348927893792790991127047402763389240686249302182309840304508564007234900122135325366081479013408029916877085982974914863924726214791606202494118900727239980300220954476700966767455996040515374668525458323754766400615594515938202206037007985933369527739576614936866534919728413745017453555122808781765329010136420137111973823674893695416671884115989357936227982729684589168553128427927088333145561022791188380255976674262660822914838054635439456253001847170614611075845703335891662843619905536079258513444284199889756928951770082410298298924702795248962262373316842886785879475807990305980701633884923201043790013667281435106669047832269438418266011246681220283910800009109792680398788088918051101685318631546597281253097229561226909835090125340692450800606783537416451987152106002945766951740624758465667903974230286522457213620746980494259780127881602138682661948572033609896539845264692718701090780077448829403547807958558669666977028263120187044413230969738142253151467450154466778781306577444756421406038730523502608722070989988872159078922375625380789086475531620284095497634503173648568390625805194663936440559654706673978663878386918645602585380271516218600169781138290239778462108970678138532829661341914414381572760590098030854967285468500599464347109833557059218585048194947030136075237215054423530221500218806041925316009973311972143706749945864376560283965710160295902428654773558862099452990407768634423334912864182529639423978237617757968894014563517040218410061587619580205368357433799409192535952886207689841240350613085623347307160268952450814203138689316415947082399642343889562589009521130743614224253572385698530204933238470599335547514932126638285227618621372816075834962886894063035228946197876587302957074370850743270935873047193485474891246890251355134847701898363137976008404933916927953661563476849230066870627272380708803859462235589251642103222508263742237654997498290223568727431023599351096047493098761084953913038664229413375325644597153051599929075331801328387824757128099865586805122815928804252954539834348942504296607647791535489518647662921942464679882085346701331494628445587585497284189128254701283489358774673391205018576597363522011862034364847216177837864884088835879554035277064251018254274085331480911236505467821092685476958162081892288837137455813534516137236846172667371042100980700160353065785145574550553210136989755066100132834112447453027150456770883235588372188808252256608457886061663451506814029628588050304993170375522202346255933454936662387683874413125157082015659609268710448897478813895147632451618137847299496670296583055421477199626764010328755665175664922117625747480066679547095172091592942343692329119024516484700856748743673689596691360170070320586191652399311199148675626689292121777605419148707575251852534434668840352557465610599645326130143762893684369128174882328013755935109652256283219192702239467608200772344753780810902001845575481814687383662708060207631682700697618837956399052380785926266270546009319629854748586322954888145557103763281212304976427544855379883669447843973073986062293475814101113593268844372116420713921077596968854720224545026704709631818417563349886627581776010038236685797829445184508960589088284567572813473774298271020161617225093893119481429887601083381185035662316858842970933317777682998896503836225336962026015133803056009911496640704280809415523919034077449766313112768781460004754646427438043873262891481631047751191626787616942302810060395893805758401402863179126105892539296667655891928590712334306896207072739787479803185670542851269640647260937318184372579467231601735447639723654854441338999183626987758255621483715740324817104758757352735775725792666221673840224795536801804273179168718093140507625197578884390193637809450629092649676470920870792363877205863443236177089153230167479888011430495106331569097095938611794465990524539353716881481378784952241635267469139281047503507230931826279586825633073644448319042889885466917552142678450338375907625056927891284665389415502523026147563098372643278058880389383221022675618962841642690702262336077623221450508906893226114182878131159330539814346425818688474285059968561460411778862332260550965510125826483056066792258303700927883402064917456277284703602318489711351385993780108457865164943788907087964257886062426471859557053060485097426922758474136679064885575813312768652875466978778351476459047717925058185681572290060479451028549847384796870947644777954151839374093677472633054833235563448491210357257040628283287016843614012308433272222139735825589479122172359528423374325081212496329345584783444591427668806547545142648888773255455535458808772151133504575605367581068463504783726886154984020473388634621682197952621420519425992599259225790183439974919427101194655629020533310068386687067291870845137088628491849647876855300122806531156727145417757898725228221906395956031590297926620354435555035351135579305432259747970798618900476812753111382428358622305646523564391509273043962247625251238535425916272868952100057050801937043306972495734346420718810469261153180915848496575538654350181925572306168679056382295157151966352115708574487897121435965332071472193050117378066668028679512044771369866897554037718377274831685960680511197221485915449654804662701458551947377920712845757457401341061585420578394703351018345797772923975685631262409449350679388506660240390209351870148812984993105721904229835400753789340113246841048526136788971517812685454273841596958654562573894586740768357895959798860819970435334783369078967235286690559385553822432267211768734592180791622258557535748823753870677151862531827740368238603879473179200418694476874930366566594304752785834116205624467609451332175709880150098319884616004178496990865454837789975491736362515364742433285455693069894857554911665807793794864788322083162422009387967557241375915761645064986658650864593737373242721794623545245947269750309179912963403060959856335080914303791072254767768087199956388393485013698216501524241744445908940494093227869372360996351782900229732437980066028363696776372577787450293742910530220420457526196498547791691440363097166995781505239758378312725213383023585100468707490378037360950819349016102897544715222420406170493862893013660114022469163144904394649921848379601680104535873308419121171284715981337439346290118067473024415696458119656029227742222778919936154257869220914848396989368909718528484510966624632093955236695182182416480987614175693207341670806379416191221177721347398151072744653356505559922241007076531699517008370362878291694754835128146072890695440100437764638203970997349938927425947102057769952666407528511731675487439205757302804790244138184528425670084516771493944088322122517455631221652743302194976623377643540808712941925810039468216409730374050117841331087321327072111534673739707954858640350256817632222613014543609542054469765666462223343081688281377872207717045386710436837728912276555710181967460163680900085257059261573065029491397994552299524782840021333433962970783850643574049916669598004982971563523773350710284057309920512749850289897575735483569131730129548534277134302192731653152113820701947854452366733478650967790757012976846546223530872700201908691055054322660947244770907438431612853769097043098468028099449581230630195073419317220187412322311682093179525585182215551853193494088620891836672583512229436135404631429641487847127399836091772823357940886506013376447199651549659919671182923070221941647152700223832427984135541930810804238552456210296113727926706605738460564799326370989404000911412161397768147701027135174745045939061072938483790793250716273225583685022640186231509212087503537094480160555111251998069806988741925051091968183101832953329723095056386221350143154266916141574444446238321821873814389924799056263784001757234306861234282992616149161342494103059296906826103042496259909056260375297508624586853947611430938780873637598214106442121453846482396943798145236052354053704470101614171240393015500206386228825554887723388140673129302366223145340542334674637295762224629381729282234272067446171864835954069954466003623548031769210763603276587224498121956448688607826284144060832383712500654801570800155300319542058876399205443641252412924114383882480929617326623691671012630804738207832229039617497398626562772551676009607302942974094238763516676068678983315255094016184336359884827559578461190987396162756081648245567376136927989907135137354469425918611200109307204128520003165573437808513198796641927022400448873770313205445306404655223337727714021050862793651257292637053060893287583707947831750973609857103362923264219022460821205933674507930188631927767741142225722040787207066801103381380777511475330433857930941281383499460058369327167843002484189296223940656897505887943453370149319756648000887817222507341452858750696038747157416549087631557727818156957349275949945569845109372480336183917571001051008439758962999174852930465618159799390409727962401950885714884607837254981594476602014481005206426512165444787873491911337647458513138532651661230666254300482750514308800044142179274816170147868391799515491294201601257531728092243731502652068576662735025668037226222238515483308726861441588177840684496676702330528551817266823430393399331964823930941256337680538202734203718281448073130761265800142785407751137931019636679642026111374926565198510855916101411947173223815524293610033917319910173285209622160154861268186828695363175188057643715678375488576393625696696192284887842976383884717280634739883780296760473136008143086598869181595530296208445083088967810789313582808334072497116090751572969004599218116096915995400730524019893594637316157615367822866611684019757073597974407848381211447060502195622567136638075359559101401715281852928825098351191424607040489118620518186434825698262094207087926162742326284770332665152701984470234405916432634405262664986574033305126883525263263216533375373794708328556091185395239445447073947523426000668455023741158059643622479434446808999948034713367678701842631579434569741516424275038142611795666858717898592961915630773783834713855954911762366239727950105749865675500488340464299259953618172250961112537477351574923500790985934510260407462049289827069523396763728510488520904250082416414638803534334424738746978935919526321465240704028749308894167571734979278821643144314261974207622158974450806427958964777454066328932021443679085598303516586920562463040175284768425161952322820005418984414820549389425282972470099578148911903947086847886951144001712720282021715338236062880813943715338303923565875142886683868129676337091288297200591284442250759378783790304416560576880623541007745336426584524665243675930612324080665287506981311784443504017034156231978580115306755873024954228500431316968521053302110403370129766689440095798357191130986321680081472714450053356642902729661601910148482547045902983334481445426102093439628382405814125154462756475996666167132707512717255022492251282279319540052712711008286816971683010318356434056697428793670499810047047232335283408378401309164141036151584857539017946774599190129638158566568167905169339147005081212456288417423938811061316781922781019826059653800737827134163822672635432403954498401440452553558081907847025501890686639479664695049542714602419467234710501265081943317399395314529527824389849372738016570775640682223489668685815682525555783611891433259988343150540097499511777288108867262791064867619413139240750082039525092246539337947408449408957341782501153416867412251569125579250919362516438802360143730594011199474976484206509890707497417157034422604876086563613610457676971326955873453347789576485433164320561407317674847195410635913969231156836721041767513853494672207308304381705531805682336589436279914525786355556537327148982836069070870564891496267082312339526610556492763568409343307761160213542477292320420244968184142325360120067232438361108859148085257986489560066580972430226410307862162235305639657126411967956740326770945409696182391877072868181151050052504359308885391499157281558734205748658554952988981459988809712817468810368315621548407435686336779458928431865635748367542212612238605276061453304589939053452243981586410945327517795413358499126187962016890241884597613459956588635966454002018886119141443615135258463383295971795307243323420789756372079106654814316023683234011238138472494135661246076582625053227511799552876282385185884044879509322612256249201683859192380497125792892314097702935124706645282327498931524853249469878217152116105237145389649045150665566094632764158779413289452156648487609778939815894070972347228042244262216560724024114075883082941041230581739024811675816181583064532355039848472436638874527863572144313172358810988793697372825004520635137382832075608447529546164064304115653008968037634987891455504624086426413880282731862031999949757155406346715487413159261718958145552498659319860106766812205290710811136455174841089425813880033796441827079438810605486634731057987738639893613243384528374313740490054128501331332942295830894128938406421639092250247141019117986942080890350722217874481616634440056590778161284982330086236633503898763558355240999749275254897414920944216412553027214789893843080541298465905745600922367383351114309048170561622616371736793897166605239751280739002574336445700779504054226137735017674975756296415099509787079456170561292572948345223401048996885210018601958378772054819094788684313135400132127963622294769978280486840453013865184453239796342678449856201109113217480218910388053372857773460245703102371632288122075776825100625086135760226689141914880999904481423549738645781872642954283521560808033682377522290831699006164486358386211979786222735120030651084339078458199287469057199534771499949716490349375152787677408024394021396251944643119592782544629234904640545160567421833782726844288129970155061386216041111117711514724729334200733420205530744525046210371338050521175975830393035762671763354641616595745762314728657857780018656687013877644731741049124543978441805587691750689358613347161757193399311258955782450446176828619436188135872411147643016792514615317774301987862788237009114123278754470943912683853668421747394380193191115507903381511257291419142645956954661862963571724266212553222058565781059009006638243386732642591727644050654544984175501731380456494797131578095012692258796189854483954368915478783082508381348155828146592316987905322261843499939648532174155451539893629913943896276352092456789801610722569331401836983611911030144468179140622809995343231702145789741441214615716762349337225695462764006478098653178152238749956447533774078467736686776609681992515003671333398405562855381875415673319253212954540734378806081732243070180032848409364280116196731459704219552302185791285585833957244689717107874671278930107140859471893419809599847485556347688035695845410494806166028466603811652426164351952688621851331169647696538730964089043691690783211016507818772889170969983419851895098522779157790628856568899276657501378762685747752430917947992177236116447202422043830127374967349166018429023377736734937355475486686334138853583975644477332426094371616381968146138408625833420761693675659304016763365995356695835889023878181497472910758504457627027280308987267177478820877366930711816242565205046711547646103669265816079998482796956269274999448652172775763628863789178061557495507547441336279188428757522154080146720027990258724985247801750059816700536038054297459395498626756940491303050551423597129819005897722663111992680146375602192031221670956164800827045991300074351059897557331322722193999230692082113547370400468339429556638406994135872235285109615934429334849275605517051743432861576444596999980244478688284355339471042113882097028321100617779096629124063461134393779303334824683380142439365943196272559510810305303403708122078268412776949918184968763614018110266727342826947544078948563509085885381223846889176248582875596600063860665594292875340155185917035338322930347214273088048506616116802994713580941035539910318005556974083042072799093341532686931798518289119858935858092460908915941068661082205334251878386756693526511899011531847902033520540861200055673906477312371020781782411415759741326505652532051536474898192916671558437446778189314015012427993254288245404066809724736418884500161932331147910435792500689184459927687085145347195996263876563982184044264017026615679358194774001968248898773375930119008844108573894682044377018859103857685885666554433973143748890452554638069608189062619732197023829151102018693797722909435674750209558307063706082292876294688704721158638663756965003218206073249551978640698197928722138962356969790913048301919157957079476831629733573403284580697856827470118170240126176465663844200078387082573690937367076703974573966416238028354348101382658827115219789081826811261132198156609052003698170013604498623312423606807941013775758282242961957481179886839257800135104669560212298845998650812547970004324917251682350639232823910725885136854502090141699715724525442928081239641741514158058642557759746573601412472239053255443428987273918643156068220126962007999212061248461356785690885330699509424558799683716815507685637632151171616699350656095701214805983744297313430937183786355562380294374515997537591792961739024449474979136310258600541465872550940924669486124598036065024717269100169790443725367134295448879357488772451502461249311599912958934379231724912149850883718853897361180509813243617477681015036726321421355180705053235999783142462922242340118724807862386462189211655506211579900262814278668988340114000161763073533343336936690803588644229561590584857641774215028692031061186046453789919846706554557681338284335365023832390026748951920767888621511457497449320043073262906968798004590583700188106110474299538366797239938899378306940102888313012409086909061111317096817481804016219599215573540698410393019799603545258465642970003823517082143620134361493639422337131628813552013138365252355040587846489482561291904790780941833068595413668571693022543179812483095074335323928576457475553300939696922428368018592553703162831272543560537822315168644614896604444302513603692795808609988455643034766416252784887419284768806464935552248303210193004632576158044633778832064672906031911297171941444570920749050576012018427825963222365224236541729525503285496661850470330137013278080613279224368576982271395054010939254453452833842128035239966728352375914432103670779776067560525535749557090285075754057600211204972931928873847278676472765110714125728390844653562842111167177275149826449560225467581159684547095473350027501974901000496522534927697665055697794462881065639942398155208071941593800660896658283866398822815775505959789595970396958111451717115428121722666276026964044113713722045723549297950891952639441580679221638281177412521499923434968550901660547488138557799932942035323211957196764713566859517714104762247894853079196193079119241492478910121734315628526084025095891396685994284136239654801025288080088208506595924675545031924962231064569735126011237075301674430841279168395869482348288301945144100440141836347302311167726815156325409454653377241824426317195951458174463075493382274711832421654049032635878821429983561443116906122017369790129090116498611578402340395628552462872798565611088171052184194743506901519819101168552593650219280918903569464326265831995383227613636649569921761739407201999110870283485363826931025106173488576230045475910698016577332212939860976959285854156090099164901690913022678703611198219587076593447754737122435478197351393736151105952436758936854122109123278296833204712921634748170064400425154501637260115529028409774038675614309851182691049608552747588426667416879067913562212264393439138051384149113367464539387716303909722434410599316758662494591663102165791866795535952646485056901118027208408785312792031057553218412970405708904836086975831059120774481080880027901263254005071139478748920706867137023433106464344816765937931064677115288799594823357725912484932290585170061334509838801365568690519084216669426062926584278693751563819377820038741544169283525438479546919966565646151929301201026858101384648902754291073013620380311065074828360461340521038883835505975289225811657801196963623183730338199839457088718523884670683572808730724704984955123125838969367365233477295788060546271980048028516504632869198615233264308398016804429773384141210604527699633945968872812685352101239425881421257744617070818362827325733934178916579275039535580926309820159355685732248261554282724312131365540071355556931051304242579000619277056363699135597633666654357023464562213311210709343629367897450922423139777809468010490258424601346558114871017826579837242599081975806554357936724668717873085058770292674438370087898816823782694056660205336566848666659661781187044143210105201028069377619801837751149105541046352485112488271428319867445523421473766901829634788089871037210080234567558810037642669958787305019715984491106521293298625490619604553590776283628420602547176943782755040657912205148526847562944902750585048849839042556804956740152649907108151161818329980312999150287637377883761224726588385856643340537705312399575736214553297302651740967283524007080702050513549257068832797581226878012891105604269266084639622678339797491294199105179586728049721115292951512120455989580144880645202134439420561596232516147418681642246010830245748161469430272605667037857445301770060936057418796968151161845321872369320216712616578666799671673886081322186826511749482062822703600599764481060678992706494165877861548749963147603441826067626125522695705324181421003232761245062675832991904134212211438477204490079252615651587030718362929034409682446719882595365559696756686006893052216184259958860376348205041006925334472032376729180103799800055515921080811079368826600018637867390696280947208018551682060920437371062637240759423774044366208719663077582812460022403016256497931800527415744145131397368207865281769107406627795132191105512457165322008258257265377718689239609318813288314397379318547023060148265363734054215195178592699517875570123187601126138193982874908911772465451701925590506885202032886350163243819498846383960176267735838815421389815041639621977028857713552293338656620211800177423687279739698623813270912855744421807206548331064334196103463607823737909413562669392244791251666421530972000593538769189235818218676903826452737999631726503470240410215287413866532317533938932895435675958543092212957115539640662901790738626190611166744005072802945696620594945093662023162112222035813725545266549847935344020017140202027588769275699196089033387369118274577645670743158556887982100019616952525258633383529421076999878650598575408382896167208870691000284040956687398265878856526216929345715050209538629228445738664077925293520404216266780766828741679803754324764590981033801145566836185925823594964449091028453225286074093223052209675640768517006959690291021392626215014148877303732171220535751490764096421749372375994593757523982313963275597644358063401233540190315244523991141394775421963841619496934180350826445115033238536459397793765029934915310980309710139210371902802255183652429010596965175775711637267355979671213145291684633756585942562403148338616047227565168312247459312529677403207224205509761068272356909487285023831404672426314036712624108351969454458810235666534244461198410129896697889505601709720960830469906674773371079908381315261656287871855619499463555107818691307306223860183485474833770779993619951296963189741799312993837213576022960331259264656032783192368876598841889282350854315354864557798050140847931988404992299482099305299102082611346447306518486965937089871649673817458944758270002505342069341043198414843769341267548863594554510435004339596749295317315774173525734002779908444023591989659455314349315740650547401891642750589271988404057068083323254123064398603149344884993896360073003066032123837073841968950535293085193350466572620883949652495197170325480199917147096484873620195416023556476776738218939064245315512494727235266840640877501518836695608711585004042649259869668303168199229546871810999340111836397654652159748163763958426603329146411112842899125025454317994179870125774075530057846322022253114841270735935234756514011741775922161210925284536815434815111839534569296929302088979991188583925225048634925147217870922121351897705349074698796066204459605801526355464734428120814233319337204043631904171662147590389217159018176376416433198484225221075329771728808990754883010833271242477439446278851842847099907720074274182710367614593728076339729538445447352381367109205829802662978615573547853034449531208534674481595352530433630800221416667729327771103095342654872767097324566208978935898980871631493523130264981226124313438486495207634068562182142430615034982966330734055184355982827941499110789882493567551881563768628836849863820081939447185053692580284149150927251589081255395099254379245652129426098378685307470998447303572528873457198829229537417448285659409168209290158533145510908482597282959483478062400271747562045006859246929496099488150788005247989208085884097298545638902252084351239468483499946044531685226258629198259362474086703325135531008962264481633744432915827440507067729943278307845941504091301336028581316881367923308090853794456447854758652711239389059208503971679945931743992408205943545073978302262089050234678981261383213743895410721857500895028785827322858338732139599839465106353877371623494344397183827838616244305949907492139284704432134863955305418937704111554773437195963763260961680415227790774690695393955787810216405683529252033724617666259802643078635735320246741342261949934452502620035959524502494281866668025680118892076569609149651730150511067920968432282580317815785698826227586719548243247314039306375666139079780399210881148231764086511721400096894600929956279991613882632854629820939780249368968329293287251475733005935129117855256184231774532508262862352258999353076282394310137727894463941387015583297944889206575369602145902315882904551123554595654678069650430351740656952284032293019328045308112611984997501942952471782122236093242920429182592409927157276694573042030897974666272878098516169069851509687640645047776064933311468997787006623481797940704083615063804607954338699414389093147400870265774576136997264969371252984908492386569733859453024979518480437570799616460812444491195573412763274362319452757339052087009644440618555833821002499856246252729768175484198077756173217536004134959692398683469119920128621610593623542619310264864006879089152414226073022926798861743549500562029959230659691386137217882935946327648612132332198642400879472001202366115027006017910184514774411199117917140656840166834054584937180454001340429342018692223959720117691907501939421727228049858879222713650971961395188137818229216064073672175860812691090553663987449847847591150668526374450487586517984662480142904580373013464977178923772723604054234469455294814214698933829706259348477853673304049874779936929707887967666310116648395296856566075871683818625714047360807385264495310913795976555667216186576657044473968037202126434685838899328531247421065919251951808838200942764841265942957601551739469577087675014782537337921013205572868455425043270566505113813279809516432964731169615023298156626281248163471602253713837405990722986008036422985712549756160253694979659444225252065353401834571998173922426771137788135281210415122022371708202898501943280080226814691971284920423883099052125769814328539473986243695997897257046463361660649384971276706916237881590228244411634892463679263880097459184470790598816386816286995711219264588430565017121559514819185387079958519025971437787792613902396428128133445429559081384414796142572462299377801811595534958214864796969414440301814831138394620767749649864355485145679812315405779616540633412268004819451789262920418799920183462464161182365904675704649782800370181911558169743057511053061973746279088880127583857647827276372633413594597393324089701487207987085730656306410225343799208388276432422960811303894958616952385185384823954860178850205985251330635063889980532788671815267243690100517088844654016856953645056638798543854222319647829065348993113744979773960216225526356037196684413418605393565291889509159042195405653677799744258419835186828434643256994046425053966721599670574598980829824172322680808882480756642026224154185113702091809588416419784616840631466266187863151303198160414575082222530554724932584728606887808626098402379959648718126719166528659859840613168644480562293457692994442689248781193350079367233575773947156456610146550822850775257470411497969925270015753116965278596130496503926483301373036399563941544122871657090591843214274155334080049888997163463981673033170180011136917231230258502680611195170178075208915796135735241936456625648022546983854150616952720632347416621453838184902917214538401314969794218329000257745633495629232616597511587595549849198807626584095579548065072882884874111675561256157941441949866957347825751648153777267511929008974651306230878688064655537731962934496204871844414207184878951563104722285929747758605045492961050888423979632493633829063163482795781252412774859060381177127747822204747673609555159089703368501563454889293235540060314478142269473925602426446010788190638000886465126944393734830013924359262371356010317160321641439259812315821596062674714231714154937967742775906799167103416673775176407672179654430719610589703522537435318127499113742319625220351139176592033825050072775241312170895742541161079156287408880224527763981945231413779328174102351146370124686014687000917399630271663368722116839053163907094028462157396219745986639759059585170523997480532969165919472651653531524919402131225783045471273607025380747276094591333493571271790396284695050301326964257167858481618347934252316944229999159048343940619229570756659311290148950527180509668433207138242709106341495783721316102746123660187105014754421394586238331644866978642421701728211880334726945425257738714155241134643331125629909885732387295335803878990987952161925074036892038886055528896107405824537854672711768548414434959886367077546588851707549242853576555492141527874520490179714187137279894369102453879233978690364046717667640195042351272056180735995468665205730534640524366158333772291155634848147645170440274616162589192196978363801342326684596635676991411002459459098060663977583633488789911664947537379743467618038658371391944026027290009298621941240385272350427698604502380642994292830918370639889624036772100290257025038499762684154112786999188492925934616642715202441819369020035599215601881962215806994353410403396014294940462833492866978758282026554060134692899800718766027252892529896155206145467773856626412632287816241144956865716568619251205679781306754121607801665695740714889681204470486317229783729782400449392308848956446986802189965058128565287647245810673760716097546708219874390162278162711828966118696940037789939933572331671624705091383880895961678020600947279619960847808351795889013292491668142113893354519738509044350817562819445044450017840991255925112858485538309568399572543388755450190916549693342522761418985364131582088231474150735055084785279416317994146655088623413321325309021985370803941661099209085651234961425204522459975045302570692484761490086414342161251307973187154494038587132489624562954366596008490865419124993792140976481586325090202742034404132729878495137406084870795963584693690163877232633509610659756974853492050869349460894553045183398559719230743706464473078135626227338161648540880156372371699282544863122768344219243326005046341592754631129865758691448186503033809997457338488518525936136454696938785405729888180531040208337475097640964399556496583339097154870185088445281215064576880186298326982284418409318198866787837922115142569321767005184227976559029877527193008602704189521834901127957658740726622148042022619496257942154905890251191753926489165146306881779616586695479460267546199342345558000369785039589211120178143188464288184657129913360758929550726056250718549572557279508126152151172702894187172484275113346160862736251720369563313490892445634835634761609402872769371999814350259001980900478459883987966011861410846286556783175071617877535807820169388847404224181028215665894031010213724743590769740595928166352232887633556059480536172609688410433771503643227083419283404154340965628645656067072289285709552153787951791894737029393724322988808862062352077738826274886204045889109111621958417592513574221509728600261640374105872332613228192590655347021643299936605537453020707167056971559410405033928277705690295723398724663106836594586607351620891660675993111222781367184926005675793827213771782372959144588536730603271034106551039822249492109910762871524928219561872638987774835528351939777280119194180180071122565272817231193208710303094969968517236883810858737994881909038084091943586044322116936979925807791018822598700807969855101464392104466478226158517037951812983707270554063097603533166729911033784059617910961236522001149802074144626672955153514990299809767322915677023907489642387656925512396614633979881233266373186406319577156243809585966664908341149667959545166893559137915180722895078431025727056676319601719959525294005772890295627519547909550108343032817372614608205844498529787550482858164862477861690117331917673020546121610605415525062263274468430135521769837723226621205721958856208591609649664843417463189416715011633030096129790062579100838439806197630273755002730395892961740389312152359929866046032292027378626894986757598393652089280660064955245355486634913526604067939351189457507980879482989099947686146879494530473463734895934649663637730620029573453817678207682521560660030308888925209780807684707679452000864719860588319461785401496794325797042207277594836837460780790642995182475389108940781689703258474500803214943970241210641832508509796664047977299967407676874489113025219599691721272381685633725986989475163915616454061321919027327556525450906618538590265085839818190962623288693353787441221490397721482212004579692827114035037079657100308452222187916373027183881015792111848360302806232862451990377844354676794079061815496402996390814122271378067348059510839343393397435054082551306309850841658873684929694364853656573581066345231573538635568399307953950371750402794263369253343740674317093054426649369621626915835201683674019867783413869760272451231978326844740714106035825966227300843112262913316871415748505094234353650530377240035207772815273391582657601086865674474882731039805241425384389408782724726121913993773722068807693862436661470145424409158816692115982324514098595050083789196971306227338438569792212779337724876947203611651605145629207460212132098033727520667820408033143550242319256413005125482479406815980022013148990120519838702522174340536445452920194901769437959990610533366380684628607532628077854811420193567853104415230211233407059732576790654020863726224175850986573387584014366678726626662281601213511448757020185780583687689738853860460068531933733919282536643316976172524600779485432501168583474798677981326979199892791565975488683508491305834207463898848399642781067077529856420453393536277225659310001215415335811041770997097568662570622949638144524171714882088183891457855800410291141732025905938235712041187295738471661608777707023338238963706884144914269378906189339480165700997138028717581882208272868466352299369941424072375811356169735455170017198446948080994014399909137295567600360098079126857418814882740990567476585718753313262561408848486055371687488455222880349502268730104914967140591690110661215174798620548014431602090590795000498867334284442211718154401024458919758510382861581908595905044141869740553084506820781985518989561534279305663017706557296358999829463228815288445432012606469233028077317434923942722037041299777035188342413861372330125671696670316032011897877387579258905096111554962348919577555687457228160258206338080351984540498688704760953816302213404237450707541398281677254320219542760541516918743804338223465370015875574057128038210146266646925368441267253669623313046943734720105897154253155691622559603037918901763866883313251149394891183770023361363522120012717410373529549261898043717438415842834255309052367101021204367725170983995765244941798341147144698353097803674743752317468046019970523458543965861678801350055162356806102660140202003653053477444148526783031001297019442488099242490356785951413335668095376194999582429746168748824628810277146746824210707793746269133719662959481134750098580463553051588327076553560765463894036988030214347390332988054017767995162126040349666699510667949724890322109207704797506405059106696058943194988425416269928168190710216448243082417828739241824791980951560121243926655370060498371930078955232844261981096815881888916119518985588615230755581108384017562539478458668111781636618045535225445492679280408865737157443112402746570856284170280527250781275669391813689872560416960119182090461565816247032906556631459617547751097361143546506246583973567522032993776114709954289783753989695472414099667900937520881562436922794589179716627214042014402482475251334838659750394566465434047272758143679572872026251029216153335218199369811620502620632628327954364598341006239174082509252003073396491946879970738221031835027463381382345851464635216527630457264960518868026924881020316539857241572383375293963347151770653843226442998000963627088831790919572498041875442590027479285547291534326840760625958939157035517333428982666665191527969054860604092944278180537097698969717920222314667985457249503038052691235206032029669630753403821070309191258158880389679320372789222627014735353386658019580834220704485305700610370532373002793738226204874919804877212229262145877168748986591133030657146889558472787806293784581935366684293276135204201190987369657378062706465711562818007170428203181258283612004965764295623196544727360646380970987641858559530635722951159632997040758004194653755932730059201233536620854719971461158517490203833612823014496080667637541109377555830455860048434178393265118389938342215292790323313364196640727045953755601064431479793034466804866085534474551147965238103421909012776189601082800168880996140907959113484600555052834901292511348662179997087528428697590159896703997987971138428842774266501232287059502673912836720232263372347313578326261036683465557880866735880202870952082516433778208220669013465215296989848364981634014054903353174239518045316057440103286622502324109585490672730155263909098564531644909546183533880394124056705075987860816531706290685312282405280631352340230567695672049830456244394702715961324788030935134677538206306586221288860069460068704335642981224708971630808842310511153922452895179382942893989444837494229188033991679254797857914076784411285344626115582625796156722846278905540636641327032856381170295057929890113625842068204276214950250748943569896861774021982928007158953651582239620509113904540895921406123427039679406295218231734110305136069738398681500840141482692826488746501390907124032878928211031186858316576813302773307582355726726219765942231157410031550404544844738733764573227446842492443124123379479438750264712373919468879396364681404451335441180458496147036990043875641797793366722221941652350331271990919986140842375719597665033001309861011475907928134023145281564750434380679734101353291795649552972417264105960563336718909027675644901622212915272335386260505048622817287338682204067475086417850545218330117762561907286925844637775523993234048692045735679216929937314289391129063148039499127880560255182068772966971437978317116903262352480331935219361956440806986923037990111070802563333567056100588642975088993603455634527465522923607128824941161940699004037132159155201919506471518550191888605570936873756124411296961415649157288650254243967062587614568313782411907513675030060822669363618809087194385458710683275236236748165714269109681744342216886087319060632702612439481390940927654611325020674853044425359815951298156401542435310313100599917454992870676171895949608669462099436765737747767162837022264904342344111166577556988575895328572135943853046002163104309730825439979319876260375567707409415967509381751364795671844193462193535008479726046253244005487466730439400644859852463750718121475339319771600958883901819238308347236236384511716431238214248075413298814440810359753820297521526172227933878521211439413378642000189950757370450878037882517673815351995094845449920969156337543428985477817156922790615035134320616940393830594112891852909781174003949932011977315724744855815842758787460177111705375088267432985951157559090316739615783691949747452323874069639946684985235531819928308628709588655220054590468297987351824354576109787857271187476193475134599588573998940639378394160686787474748805248098369468286419233688603177835501234687260706241520611590517012807940639222856697424605504740416294324703886702265566293881367930436242086867061571618643375061022067840870966868224640920459692454249498193846910129095629509547273529307519483266362359379965548635193517687143449558548238835553737145133175797992695546439807092955896985734892689403770117391786029129698721361977770973160246300773782129590798970135208304949247929288525158804037590471194921807213594623086594091708983434916973442351001926631921622239334204947385201808083017173124232755642700072536766688836741099732027758724710676379510524673806109547271643124102047565921139138061382895974924779866853097669155275623858648253826764402998430473837301313023031381269630347165243988250025467879071505830300931733797650909943903225615369452288977121107970166569573790873946023533629332455514277077869048327404481727585032797158754274057756114489952360915543023472437819828793098914651443135433509069037404768727347886696769095757255919688234584163873242491850483360933258761318812845660989674392479668848102217956385229237039026218404345014808512232419592225120497919915472843760222908757114405990324766318986713013476447943153006819329906060024017008849496963630680732530990986160259896540254835949204578042157572420516467901667403171286128181484787193426449221418695883620190910513873401526729019483745219923632435701999409535304292396999228338930974152209872295429476812167252927112716864717717747757913014085984773977529447491495807204724522034681542018855684281631005066190265294790508323010331183314626581769028992775412149829909759368207737947007623509769889261634064222684187733904387918925272332043640184324927889064164442988819239803565810726069885386306992108253595881991274850629101218020385886249405042578389550115944839046319641317820600964892794910392400136135680943068303905612547653329278496001830316884566661007534726568357342301154458325950609149731154446933699243358388463364347516962809831622626938124214035668014621554004426501454277569882974173444843507876996653487786033597907390699529205134204636201206425704891078753440861737915979729277422604601336625345301724812121784923136752370919274384229440261088791012348730818843219317593448385372187035480191246270777433535746776494360532324346492854884620024805786572405896066101830432201255775169040907021310415611682550311710874455733783005489245506834852414924997715125242172896158290962611468159289882745539390893152306256265781745456661105992746612945953719823231670561955876626422288358230120826676895168929745749773520416150436731465738545817787902885906078994595080749602974621223178814996752064221947592331895899741405541813414594283189556520528663136542793882810032173414445395450387435988306674823997466316404658473686945628950013022263963490962219085433135188542635811697943106766487476747478697409897420197467424741053164187093674226905019473715085345453621222261043443673255174456974437632815745884714358432585223863984577275886876190740867127181404931679550015740784499096555931944260409880404636140958928067533417940836526555095412806710238147469039921587018429305713642402943729225993708237566200939450914145974033517573632064706455547607283019232699076018009307605943040802725737525524034102250491068051233994508862109853116538002921511540784177216698973145383078408900293422809878173567603065109801281152661613216969036145683063470208914757167992216490037999402076840188017216112044845008155472026275596863089957652979295546189410244901238201742483839150919479325419927229092111876803418532334031557181053235425728659510959691381240653972659250971384836952939574887737001456474331351998390171216070214729116585805680158189730799658404732031205513411051384629809609293125049682410547229179509727008612952927489085220408323921587072830330691898989266876745253946557746436014012759395009742292923057893912215885091839096706385171296646915414105504700727080695044187821422896460760323406303080712690304941710497168367495391579462582539784253769848526958888198933500463115481572614793505784401351804702661675037265878295556067658306893631249487142309272109710273134688656947254009454323133830226402408093083438733311859474845170952790393557995525241383792956598696068145746703391859631914884576124360319780354652135442599495497987327319031251599223373932729031742896177767295389547581926078158047252105882486770042972633618476199256688282955153374469595682394315424998340499383663935379121869970376677832508926392043236195369725987869194311269093691548967769745591504810197508074600105769037536816868056489258263657663669353932954268261964747230804531380476659390680229119916717543615542394791053310245586642499946524214385189090628306183248183625379778766656310602291670306840778548773328057152828654002752969164853202771006678449446877724864486210111117143962075804229038403420632564990434068477943132736190846128954676627340576774294863589627918118779445396537735394900056446586241000335345581887971779232079002391531023870531908759868676511684096535520229713141874517822785995348136873417774396600686525231206365650571511675869627926777713285857107600420349745822261751003001430812204535448154425730836456105800021204163227887123449999642152215021133401531355974984232679879023956091458844438092824464290747873789685253288501748949201610887806785234325669174747267797558827294996495098029417417715937639925319914369836899792437859822545916727147141093178606989141833389498358602004412472829814709058025725082959905935070745139169523159584603476956518686432363925544378999866496896467058508719466481591623119942890782377986175041554426132974939532983726562482520377761623553807486203794935051067640130127885365075690918262755843826343721675014149282849825336498852750220979939498543044247921445347144558322990197628178476852971044321529001344229429291136214579178407566339408000392135610235368654786499137648097199520570912419566412711410568454423715264916172056486852598351648461024539925944717055295055288702046785534846040104002646266064738067532511796876192033605227146271216603610101153414606161756110956954032787820681439225031585088532353381780775398862493055467716269328616827184542924154258796233867475446820949620600743575482687567866155011206574360070434618574664289339286780174358503906928587788240970420923333775068298593733279208096726897716005013948603568607491565236553442042724520934608954324891408362689616361160887800286187412613851559591886599300046007637179247856604321271576934113666271605615502170939617333518555656669721227031698382129584341833181180253362340709056228123354360573769494210479638143064756924711369273829332291932151627139606770635223090747181253570715574521906325190391762154629750097548678092998487641860583016375324666678523248617335087329721016056516877967751273712230506656932359405023046114050217303370563836651640674611401315881110376381235893321335666378680455125996630655222884768578721340649417665710610762943965362173797223943782953823640429518043306421675066994271362493602815435083908262653639139625565362154775157119190112987196121091390777892569146475123336293357789958301965319208938612794827159110412323651578806236929548641029361652807822966698715555868668197651919336327490741262360888012451272175169541944470469520757380512758250562759982948155767089453378633615982815783572143274041150622729123515222949984433273918041113557429113873803613829163258463472067013628901981372465312385237628951353078271344828566075462491897811167960022467944886077820328075278481797716700586136036161325828670070292058811690848008203623002067016679314080373640602174934282309659965201905903637501347720847035844543038909866714883225094141029616168254293911461293129562611710024835843436953945073991831602675326843972129438573371263830364878334217315018928836161232657648290024212148934732226952905789538501547585934481277740408260468876773102734491963721098973371761945244043036275005355850520550956042264211081024305030022822567084652123822027145523128991176801883744751654144956566193422588773250383313566179827768565989251572997697464657738423386894865758242787958510866178684567844614240108436804381926377016864543611669264167661661999079650420642937091504712624730380875393529768024693455706787979877499265535753366780999563112609989725073824171124611740864479620674007253814677678963401290208009459592457006251144030598761331018845323365084658231551878329217404214474473209114988385887542172985924029768027922464409469718733505036622254436694744500560475175351161880180732853948633214976541623995929700815558358703145083054233677966846868736526988373587876796499144314773023729599472544513858312883064043971708071321678067344602715562283713121067179230463530785485120425563889432909755694300790911614051998071452139231183797712301595235543841275633142489488248385974454890688450559933049185503353613443819821085760483222817254446680956148550124261859960158308152297233493427059543235489221963145310501197306819819143284251919621460452663415562711098422970734465178961297417042134800349542836066216794347958636090163714349237114317115687342822009730131526643241678087806196683338309868392187774923383489869050778212500255133540406978383675126513165847726208392609240459961399798131372975058643050668945089051000399394523633380548062323674247930661214269655960543709958981259721391305354302390341260342291439257566052827994455079868215688700659566267966404085331747453430167029709780838568375659130125047617118197845610266800751026917640003443607381319530027544068963617191987104535275122550844268183602221023777602626096159482151762229660049608254167183788293364940392306434375906203890784311627928313826290823815462725378212529415509274900950859339659394106968206377462473428481397759866377107561941616100894409737372072443605962001267482829434988799106236289083205874785476484631698783566122547791739357237535292224779522505193107869349050180729384095325946959665960249585804067962133912837551542022049160620477637351763962280955438791890511658229127385262330605428831979373755518314961814316982620690845938326349746695385354201593602421883775351680178099264190379066199483268190824749996324821864888336110762640410915636321283613507671091142594294109669724740213156277004833540101737847632793462603682814702275484757594700435280089943059787678591246461704091646016282657371446654045896948868210611576096538014137904032856362849790539453224266256649922995252066862689446851108874013015674764869876136352325678219695309827577620664093313076265135833757769349487515729100992495462122239613951976019067567409439981772455051477511496880840147459155085087581308878148100423127886345666411068386968449372452750225804174752867155777553901255808605973250804244650312779366436272232027770309321068188224023847449105045661610236718999178555437919936275838256814539412589218370569844636928674981520426937476045087823714360586037769751798896833372725234928627211445698358541780182702784631112404351481220546583785679827648058283823736607598943384544331540399621525673956883828076608237771496836022279209072524860158888962320282214259398653605273650931016801734458162069710654811211482479987921657462896336563611323605055758687388523915466065523160295873476097942550187880885803225400283245039656712096500157284298578656753129199614494315813954174983181944643211475260748831257480165390199513242042791668034377257343587741045216664196727911476772288002465376974561201144075588559112140900220379456791566005647298850108876008056640138210629452904706861657437002400803267424464869526439565038158015595606941831366617589655598504839034147564114556287119303466291666512537146954841956346037172500537117858820247670632706336076456838465630635094045571970897851814947919312124405118260248749045416036627657331720712226002501529093839739535732914056828233284948045710375139333413992870650108102981431836279042762013929831284514298401819704422369954274652922375197414336803139570651848770324436752749453055115988687045371167790656017043627736847014771408780842619935359752221488816911995093260179845231691659994149481137295778146162425515831978380465123271294788146175289634029688263665962122389603714458281067107977135074270892111783962056121572569389263055504847714150874362138840065544285437314576154012503643251488333273649914388679104431634508921410491150164396605924760942286992259853799033802885113385654943312297824350576107493055345916992199373211735854372159172074087482884643815696690115791516425892744383575889051506586372493761238139205593485401799997856115878235487319439565512306153782091062353046276433958670642638682798752028628351025411479749798796599854592627825113018034645757709395725197587202473105556750265630051635023118310072251886375843098238488472338440175886514432546123350677886515929837594692507460523180056736996567375523723432232581796667974090448343522062158466695094121592300443106536630749448621479283226556229891813883668272767586320088180207939467744978501290002604661393482788739861397094765437066255328411372977180774462250021215980458110455015048516161959386932068796901117943770737561041977370239910063093459699035056855569357531808967176918188930432577209768848380442300467197804944840490599356790638959709430304787449778450288274836681965843009514048263621445803965390095104306946970512534623108702694621186986141768883031079638325164481919950988733089288172374867781115181046834043746273900852059556247498599748198677714352994386942821295649429005876024979567078965280790725218252708512588721942642753803520541583084554867982809359685844621146127205198970926657736032029221632421797940820832580505051278281444944463930391709312962347192049962311381606709923744447451785676067323782619272673234451006454378562313634322513809917508928917853830758609223039825955573225673825438504675081676495182963847052915864015615007194659620353469148975717621604403699666647508528158103390631099052679595093629484954169663192328531322601887430737627149898670828992354476110511713248361273185887152035481481951355685529369666189441388012377877577835330776640014457208949643907421156212506189325641271106367105805685194527188623212433648482165749906723282046300946904844277990055520647712217166279881565470463697294807197242649057561473238556012139352456672670667093109421696291868160069330789539490275356441407174695527279984819807951619942953034535094935914657818653655345055289384949954996346612769776652290672326682526992377535806686955989204617882218383715417852736268983754849939984018939398237117802258500718246224769775179816575174555473838544652222106577724227988068592597374184817219674421312169901949106821726417708422095424749023797567021105144423262890438466824492341356417315919919989027454741976809965267126764488972257424141019112223364720635269349601010285518847553461957412765378348469050828788331338800768643772286754737034083531320001255842977864598230652130094048102628997283042561376942528056933198581876496089870468110044563880816225846413974963382457836114749266316951010830934248139551753560361224614128166934737652728324719843670108072784095664115194992811038236249298762065047221059652187053390085829465924923248748411952330452465363652184911128217884327357901187761178868909987618589151156047400915342312449157921112168205062801930153650817891266560488789244921731120254998526350251834231455615663275173127954559957914227895401158017439159479627696357516659916231725097192197482570432524174126135165198758280498744540244954746439322802234180109704852132085725657376453753136068627579192298013308317968321957850180456346893585743013257720641372972427078737240068754724020333454268817588580017894076716126581989857731799968008394390331549341623053660937911294491533881184359296009475534394005511989309360537794748984222945250599994126904240833546584957545055626605199120910085317959216478911638659041808443075774661086845487027964157324829770830954863260097605403563710231533419299621170288570910594682040727150563506953588252257766298576884277402260707931402437684541085174281569946925429283093191498327300308805081085272594429685333748043645601342624034655060999037832655479721143082593885758440599609732126390090654628310027829317948551364791723373090058767694993413733104935572887730458699278481245178694157534255496797993587266626020070342803078622130881518520509991758346223642501889184854165865641738596454331443592159181243295390066488450271029287387659952252957304189378649570431922322686945381698569720728940091158401710530053986918877211525944041097748602018761683562779702055557763437281756615043429136207652688320874527005581321874786964860886886883316997307895115601338029126896551864343738859219247950157617325709169584350213779267965393061743901115495938708963456025456008333780882133765432158014361128007784390984951883306341971775243686625749835218508204259699434137656600010022519640691528869363390602203185808510166388000989536852823466991112011190347062459770621694998366864307648000383251674126394536540001548373560852516483775084833810514014555839585971896068718096044021039537147280667797283662578754398796780580717661875450129517626692515468099711246847536233358662852831358373313182101742815604874484033379752491633808390728528221297485706480517915760077610561524608003980209286956480705922523765447351011650740723109857011158646914257850291069000231764311674058092103324448010439613415179109340320954904803176942683370425082813512548323181438258960372893221133850694603687677300598897476625610290472657436245437499653125881219674837467475381844792678872679360465124597191867535126682796704399071993101314156906269733705961965030561581935003249756411790686125893162827628561933592691714243846418614914694367344997879520791342796491462253770470845631865709893892789798218550111929310226850298477285115310585391185523872665603127236409444666489847688017869961869310978516222944437425893185379147456436027868161471644488055546769566186480432243099669261238161185765010282724463924907294425498140956941802010467856044671164062548329921991303844812305235006405989790233336072091858596985497216126012136753701586457766690313038646704600039283576825599496249729903205860898735353543829257071590296852046995875740427985409259091507623457925113218742575323258966987511534016551551953813174923961980206288537740310141355088900023990164249328862017636890745017261107905498700614422401106189642111374113723967550695828663694958810747867217020791365824397819530599914350776994607438494830776570901611366004968303775279269079774128664371115991454650835668469651755536765006077594464745961813331657913485984165675199822174605827399914448131403023570219629394612134128804835413791820163839826719086555128751662085464749716586832347909110658415491968325473296818137005207559876717063690807907678335076914268100359888537401417969181253133532544446477101799906600258356935841141332754200723165083402833541740516168099850337547096198027403847583400926047098799529062813895025646567326336083279819909755734733010290947681492788448592273719706202072568373150613041559971527870914427837897165529821837205550842441849624979762096550897326622444646112949526738555211514022292806302454910242991343456756137849104027440452857780251133130402654642379036910438325711114510175436475123208084490108304147062278889077729641655054192154731139806528334921210259259307919631902172865161318986750934349161594049557264217229949573000405677192023149700857434349402618437597154365203075144727305247182632830697058666008960382425591952105208565311378288075876366323774029746227103860261374797665200680280604426150650426953891005598100866225470582319762921748153178114762687646585493230570240103678255205688192610375034997028670429632433870711887666653156543060697448295422196301932294563274113642806110090768058629366481567092818470900243254845682464220567628000938406081895349952835135700368774943910820174284134552957418627599101407887634190499631871407203896336671379802824753391601286691644799549507493799347474728138767730175850305505697515824446783437597923979675310619943978073899628432777899882771573759020568745950462598010377266764719391553799707637165535868639246353190679662349568479101106793396945170240454615729589067378676262864854226031190400003259392837800321371037902372736340934973973475835489060970640898124763121577535675983094877064491075979909927419659197663569238703868555342663982001823069461171177456955355856108943758782206771520846037869070479903595206910895413928101943449579326484482381620730209584635458361630737693569153397046430149396889968639131770895149916589329519015633044176888615193586533623198261846175738412364121425353652300645803742656176336501177601518102229770834774292852518026990040911693881274798327896499331346509361100880017384666005270959063838801752874018823524683036008006987238756535137065853691977429140264022177544298000081309681103470336879115804853447734999723882968038549491238588900148607073390522896750713702547127856984753355228705874773347309407029456165848845818432347612323321589366301582540346232127471742575039181123570205165766283971164033444146720218647950131756295130991690499618267029084157416674998381441744163200337760281161237186370848514387093765180909702016722529566788923168107990197327967755741527314797697370854903219330879743606854837845795212018411370534239670870940129748232569581187756452780515575324666492122190202846403408530136883678183420675742788109171479471378269727743431883603641582633080209368090217428086136117768494690697957455835721353280996757561894504278855793430845361984166253541678667347658498592710518986169597990048634473390015148350549731767583983253417818768302679969069130310346049559319176674675320468600836653381251242222487023944976731646189911719645159907055386460712742194781541676935418233779997498011152665197571928070921580537283076434269508798706939132577209832037427036846207141876471662851157174469298059065271390177449515088148211124243732606087247397407260559651429653099178889148096475312716007240988840593745824991015119785790399101364423816950176127918698070821814772436901931941055017011449753135518177050775146578833921240401657178272812356008598455621837156609955324153508922041511874473633094741855255818567578927770795140809199067526911235778736382734109503252470907495637750104757446093709061316904968888867041350770935435730087341863867789458779624613578866820607526236909425310846727334489956696597333154870742691682660555969636918452352848525558504134335199299249539118940254620690469483852228865189234332023802828768197406927892285035592067680340555911288265699561073581541572064928824646643087241770833494085542259022439463529856930818707848647975527311031090766783948741734558320239308775718042918752281636852503138054473232708829107896297066158865222045901409296689727868780073452132622032259993483558126655561343767722565520959480694869071557200448402802004746837833306240938861641986196124821087620930829956087067764982107473114956705785232591500914695280148309505561209859621330679526741841433711562590702520129734749654748106736379784737682300050441170015551903034514193538424655722914103327313642959421330965916992090807783340037871547643911341620575250387669832068205675705356426824954594775351894021476948986522125954546519315704045447579281672299573783301170016546038485928240902698816617519021634679463468319951076314993551252742935399868792289151167906556405821610905237712029820630812502582977564767683757212892448903313787967604434869604370627617170531900321046973701332302903768832042753300417429786778411102545607584680515067702662796887999566675867251422566988717665128611933552752136231606850150571873208832405547686720933210446293208461564619744348905156293753286701476340594094649331679795497814805320863988650628535796637826715399678505598825011420931243502363754037969653059812233072612303027912842364233983915291270355801282838377277609701999700100215300961520284686341946582486346094484677001101345128800756179531186824983748146562549008492790198331248218146967002896558570278319040529342161911901482309523558689939155635596196093215912361995171671114936561113130661494989945999082376817435487699776391753852240871161176526367463634810923274080371555891731290940015249054031128043544133413881159230676650317018391182716589123231796297652699493292485073384872558102328481003219814897023281509658747525018012763563025614482933369309556034545925557441558475820360964355558482166419936355204073942319940391598920037123629597515638598362701505055559227321569555359438765560207067772072576762654975643820727721009795292814229406897857641325163846312322611560847377477484999252295120184473543894100633904354572552875296795049888946528276236691154226727094660656857502183017689514565890895079797546908380462576866004149996585929358114641627531729834703898808406409304394743478233292617350116789542214190882447219964223296916917927621418170315198731970372519753550710162586583273020502876376251656947436876490587481975427735605367171909957830661412977502245018145626150195824401055640745654781154717085098984701906274149565117521240153098290165062602649280059866228447348726844985185400446958511735445455425030650290796120784336045960276563742894072069241991506849930634170216428389312047779440942057977610194369458346275894137158588579925180375225735773574923762246270442634444793926814154404937181359748192921062374645668215367176924676424613558731430583547718775934213640593241837109726579830593909726037376376613007678716914005826206548279450312351374012072656507965003987969289112837025392590711718359490080591851752059750324303187295765325237819562145331611967170844791255560480176011581766597863760434555490299397662210335485649254948437146035749338699255374847489271612256753740548066482269136405550651870125872926268834660306540156941886944560728346450428858054436736941895923256586006704358787316706130158897468619786453956819348399519614971538367382698107699829116268453271548692538747139686127284614588226048899671942427320902834378807688432432611569009134809377809017803476112597105989442181610914091480838490824449538569061027949409429318183111205729852886844351124341297875618907363744405812218838274330902880987321903505450263729312468374468677016556375617536602169484543220309906954643052335991959693609796721244858326242527783762097559304056990275463267521735266776007508595450014820738827661558721408735222052808017951317108629477713739440599656950188939310913804713251522280912508239608488630579797306842993900246371544280504969901370762044693931493429868940223104162635431383989613944931343176952635072930514040887009915736461319706158217487004705775099549439336567380137851596789251197452515301795113710198519259971613241259469097161899613249202615342438050780675147353620384242800160540505482764859971588063477152908487059711909083000545568621008015474008905513853339194784645617542582809328218857454996817194339759545193906714093003128578878324623770500040722280610130833217001789965730949688549609018863876947324025833911905901416664844159202301038295799086022336149943036983417714539822131135719958589546117763421673867757077965323254437087223244906764849559360163223541337456667091944270211416621504927722127972950568247750002995918853011171864723083932612528746753320759619241079685044671126203434943375625691110717918785189304307356348780301168674456383874241807038354780213646908546596131062403208672033256113372632299359020009041394923273650583936225830155356460196851906490325149199664151971219530197773817148495668406033028976687478295048461093457306590488550962691290983695434106315291698683448405071072423540401071251488590165761023385723649659714583101522469698941106996987909255277826756565616429225276783410113686029561503408063894667089168042566915736965102827697519371995449736156792576789480316920750875202949107631518711108509667505251411956678157705354559236171525372812008016936371214742163800501361461223441521410120387917380038000913717339233062822366544554925348638043314150526882054509163110369240210855391801189838073197416054010669547006348397589660995470609670734725619611970754280064699371416353637012264201879224471023564179861621089443370936581917393900388285311084424020895436052585658728189439261153511376580267203753683987207541779815124508370521482977405749048656393988890320280900615709537871462347497347987166559963624688597734075075916387436630245487009171975290279067178978881276910263413812314734860334696509159848585587182091188273461659205817459011297441673077112808013524893655900166642624769479144499055100477405572752028501462376178200707109818802123083962789760049040935527990126643088557254552921751263713182657252307826623112757369311746678037401703814305247479768751109209392423609449509092264090976917482785254898001025290385197935824384224598430325339797825919554093989109770516385894077557064734485169947591735669092349046021951998807707274156470279348562776540582790308387955918795441028943243979145584992295037526990986676805077860338078354095488568255758582589176558596944204729327677099182265329761818438757627976261591698938673632101089620127464838821851810258365316372018604900115643740175612435535672850562401953152523084441749073550935169848856577116142899347276107386159087619208083655279258499995408683222530146247321199403890109392140016557550024134581256770187250938885940056198089388104241638060459473408514779783199918907593617078997490883109572134987455783772792152119769261272081402701420812738420937647357611762482665122819280591808202689334645425470413666636598043063951362433613195395342728855801457039244254166591620848684665594056068124651426381285860038359416702994535153033918175958892298895330479048989348017010426086013189467086119619965411686743858909314153050942637038164432909977925438552897158705562042929603311067247934443860541845210204906004741118972061380423964727697550909133580589554259897019743251771607086042703620543729799242165169425037515705700054861426728727107774327334763016989860425148357549177284718925081130812341826871209184937492811013044663451751954712240406665880241273942901646399601223038452501797191859995398902941778390345826687684390493680188521344991413136805839363962746827593304050060969520354710832025548380571663204483285867266331881938073344947103208516816873646607485456868914545371080410120387142613407559341702044466977194246067893902458089068071443812475348272432561986169858779632054172399108853507815744215689317065832725685835922712484258594989077980573359952633018593638759910041024424997866334714319979639740017062867515973495810966938876308102968436910582984096850785086954334797996893668358472609744395102878997089225428221737339385149343969148302344558284596894642264774115989411621828542804638691510354373411193436052432438659700304809513301138367581269460084596424826814323851245839968289390069547535435010052456920139392732873926816763508049463378489522104660139794894032245973703229763732520653645206647403132613255844702899263806439342164327054803819691639262067276343441918736676598534739222687055666867491208472888382855365500130105672697250317489110519430185162498643144670747504591057996047989826147710979803948570467241647391168545925061405201700556985812819953562459287787139553535972194657263751618142380569997836246732332175665852686251341163449239084309866570971003307564660916594721358064328797758071137949322266840674862676096807741852520661429604093262898335109054337636063693313118565553319068295266168109289273272611021841975446744726051131218226492126510946898310562735070141935555381354970189500403629185213505535332288094689137107855181389456921012900760308514237132819516493133694087921599120876736792396249387919724543272414426372037224556348749446528935529781519414324363643194549994193079774292234823802741554160651528288454128299137477953274552592904553605852889126674762992933917453889942436627681592430289266802856359220029187526757847584368962162462378846473855355884368827891135641735996135039717305149297205329097229804030853845253789061294601836958791465875840731703443722708717096536441124184249080459270700384058012605584332411504802472424004153265459202698362779140515672391417491753601279696099355683863318656468526232870080695403741175213266961988852938118000369547826341922059588146333920374131822798310299826390935913177216369545858054679634813679284638137243866299189831418682660395502265162885199745061509251698934815404589261019199889956081424621738822939211875580740106750562952572174788655671969526260046413197721141787260614295081808743311487256853918986644013882517099971213925933863221854802000384998514540537290582952581454261041483296785823819632515255315437762178216278246305382819083878956941800186486265383654869146320942985192959553881160793922722683227724778517084487466681733365182467079649895416378491912928253855921010441903921228892881350707454241986122806774374967274127610731699819248770167353566669284489975111909875044654655168228627619846214539153866975400855462471900650558561092588320389448286660905000727725699917691296687571856437712131113296184426496450306651768606468178155428417123419320179823527361774321652372980538957281431262665352492179782968080012208316750301505460256440051676410933681821891126647350217222737687361510744042150666722347436034568451370095347112752093401761946324892150614038080544355937544341475428570993947940068187758614575435711598197014805329181569393744193064241644430817862845553352538640580036006362085508274846460336315859650105738813836617004512622999624191572502550283158759048513544171782102387582404294728853951240434833660654499187616417471634329782833471757302783677451772151696415796379119938003199811183455053460254511543979655696400665517912716005299196257385625381669936434317020101303094619457241050135380313588072448129070715586752919795117506831339801166762878979351477601532194281341153837929159684978282694322725817390268568630883397862181799480131431331915562281865921372935637829620874615323243599644591177401551452268938629439002954692166480822985334608553306025423578878774178558691718427385326990334029055442250174777547103830822659343424758968195712029065198799467085404561050806500266891226032293494530694328623407458725212304776725121145614074868920033662397532332833106212923761307934695749862823900685105215288555675148365186516484563148816723254347022681529466945809007785392445050274672698774786385188766068174403354040652331930371550733829528982609944318100438686571480042792195404433438762361350210664021106515125525970444613421281091985644885434711844387036906608208144656215253474383965765376057501299024342291159973540260539688367660161822139606617504360373306952384106112261750670207164508410373892549738078508817966732930212153922408646634120910221279538196222932940877401908778409373656917568762973523583095734354873408421053351414747539122621480000050745651236085945081886900043838405770420707712965861855587284007512888418719305085706965216070313699043354146423238113605838668472879638425080070863725426445592424703485693303380753851822295561781420754474195853367409815963879801540598074465056840218822809054665764832135679691377122582125183608360496216834955944097703590605793016749518522027248511475372186368065781599845104320300538112438160225162001946740495265140558505389530943367739045409584934759096647904671786684529519536238428925810133880109431807263751230848542079810638123883267840259121868371701836196270440906617966627228939076700902547200848872723908775438729828023321525005744320380369748450194437303356089466416068243523274498819196024086974238157249631968029120439970763429535068502616899699322803852379352246073741799854426717531447594117851070569318189787459524279029324139361779944074107598035879064999412884179264394079299749107133774476820636947164256896303135252863873117227240401922374263043983284308452181188310892661861692549332208001769733334747735772968829457323589236214962009488176809992415752689232976905514402190222601666365833922321904399563264728392805470967066044722421815673711714121591376000842558012814891879355885884150416316056778048382677542078296414780587549644541922788441626390392815890728311481978521143758492471556645126649427869512966293922260886748398091918892022789505226611339569009658244236300026719578186281169748485670244075285708038318188381543777464694059090545608700096572157335708640231821092393824949338346880800535828436547407963204281801892275173886257636551279683990110248724489739329317397197439354984380440665974888563215170609065640231740763863257778211673968208010055997576230100168015321405235733815548116693354253675119667041323660673827054266498413301522627242573052011000637384926735473308150440998097895527321399980267452857669387823627134630821468323383208116054187312251479281121858119241731328634940761774483950297980936128151364326068858919728041676823381174499950043771361773861930627737796914358211080695654862773276192899868759777910901633712327101395724752065840020456726206457657360706719880763488153893684064244577907281255927540562036196184874574039332175618722926972012219273779729864018276990152111187719588539773332757651971935269613631343753354731946484373917090407832241758276469956809644986934140419160184866641464036149448147372922509452624556014655556184221066625017141915267603152308651950835981789588561012607654160977037528145030133386690127295652313519292140050356822470416119659585677451256787307292189655059330316528491997153530125694458542872919354675310106436341995631573836567128805035166680294622741628295563555843872581118981812028039520407448122052075676910774569412994769962608547028768565169954731361519891715245503618002439113121232181211219658791099815341519898390617982844573397923664495617229883241318868671258833592471464206962213782199427538657780790373092379667661113412689482333963310140065025564579855474399796642744789808575236397242068954456266668386355014985925661942950373444465417938636017513904251469047894161325131915656970779690888108006827317092224945995181369186289059968180281037597997068916606070108421996388891655431354451286858823315455100691309556286283276255451121511342588394594056766192085960691566657121798039140244068478470780394250308746957818867919205952322197243368943777136386439104279185707554886010746036526945289560942208613015996910793912571259389297653746431771570508314011761994641388393425112674022663910209382605186866755214052100481762191168282271890287870040505522598257553474990679719511076209680725414998664365427250952418129485205814710152462442777329455515867137326376646516396505682333010157053913475017721188810622332750568224646709490819852718935010134117854796372434994497599115624327680227156793917832454748589884084704965114623936335446076246850282202516944973045400271416705192083129204523963000859920077079750784069081583166110911788380668085886458182880274533978218126394168296165782774428934595678027123697311215262582100141881998476129423743952594904868376822950112526835709949952634417054210271293767602187193304501959877107045150779494403305074389346490037346159437127156937632438613405218942508414520951825292608320003845320247699460366323752474753099496715477177529024708121952905119363159932371876843403588550884781093430263744119605074513665343269599179481854661270895335676923259699250667424683726727455033644690371979283580800852758116184759139319495185968655514558365594808014995153164704162303048750416574675866660825622908923106076451215338889326016548718220237316903287239618251578209672308517802200605971282762532395350193903898159217246589387498199592200240682707069787898577468013492557372539356019564299221490776455219104851779973134672131745075985857224261637567228036181502202633880300553666151259883998257768206150629747280093827959434664839010721471799680075788427915841924356522801945926778164850575866120327411544279609407225567555571133710095720949350598912662220506680290832102827188174768515250091935383556725747640483998485787045168856298799059023384775918400669720353916863749149220007891780100892669521988483921122224089243257369276656867017697276581028142929668007957592627280181327786276288057623347794321207128713919271532535123930043128985341790793508677665661493842753235930018322625562560038162181178250768052727212720321805932599274720174902773369930073406757753413841743771332011510273691905638246740094611085967174662562345448013579706119859579485894133066359844360342358505360253472828692916900138311078248099373056166583233804585722130401675089102581049204422479752149494670287122944550280461158289160686643272259452705393115595432989717970453375370319965185225842870696151679974341459529961763263646831761908190044062655784612758406945503852513787027099126402309249313294466351793137918131095020858689555470523302007423812797073740286044374326160229814104160978670664715054600152422124108667840147156664043879790507740810523564017631331908276541024307706094398273210236938171752079025879730864656285145158846645855704346026921175750084780783686480971222353999872551337390022652462543330967932229846520347440175968125568694213170126686694211513103339116014515966937553407756953323841411791312433296511685963415527418629916420552623651699650760605205167486208568902100291977032069712925122667221720104805232783889701266184370582829787224701894583825503883368494367371314512518692951825625399497185865732597432240635769409106965302268846656497305038882420070467242599052261334736404328575519151799610889098737578242425917218394584149069862646041274912490645224512219034363904283137685333067908714525171277923515103316426763757590211686471249785987435531764656982544724426818105481703699549729427067154405982799526577346698502396568057680465633906267992848618835587453955653453804572006605698565696452066517467474799972291248307860926574237914231559756633427094855504903387725592311621001106741106447766099642551911664183860752238298747076121661214554641469253226892437569274153667777104569355558075720302431854927414523416106389570888035212905411617990179726667242238330329213600562875615139750571144279847374972412042218325170813953301266523624325466303549024094383592425809245122882839788226046296851509263778727420001768176940728783191460751426084606364178220102405119469573951716304771185409168121913049357364991013382847857283573531602349396710533534513941586193454666718404370026866220578040206586449486141079383940874781218487671273705523232305284236665409107796040897858173954830779240339631461196875145459653850375681426748589235221712826703124423338417844100021426091322574864740811957846084976344490213949529587640651772333638879915819310107757559447505398908300315749220658841659131471535216005500424085466418958076556328786114543114707010799054104536795105992674093022749969908476258224094011934822643937416903200254931337404695022520853429560941581690112008407225948408820886059049224557791722846488936037652607647515614756952735865142113249832691864133464362902389296112006727170327969765417967898734135306200960712688514982104509375926657712550073710625649227582159101831316495580337185100665152617011483631692265379886378482179486849806838706081727780620349000606426638223707533740429939026420115465831319326446571704915185999419590990811668717620287267888468940553028017562397889666564207669897900791758446760133931004114759615941150233632588960342964404405550714990288461126036503677533513569731533453148494099596717671336348972163081635215132095120048109127141006437050181846834340073321355211548714886507455829670310356695573348470163892695260280344798117268041202138971110394731871232157548883408409936430444831213151413694549472853598304530721597302702485615244453135715743359759003540432364708842072181844165410658825095739385184868688965195514493282605259520776473147520664224832462646618298687229084291591839120063249666939600466507135569426868088281318856227619558753342248831838072126124644764870121694255294391003384835210156716149387690025971126600128337315075447471114733414507314027917923771797190034714845549002801953497686077622214469198075289553937060027016165345933001138241465593939596413570536816076239694499734818186138627550318118433092762478174680638952561772296662756539674014817688136373221367752434563998241901563202688907580152000053716079209434848073076652823111251625480063738128493136801578131589228379900586684793202857392013634843590222828441513984058741372256801629440026365580378373887836485453093985928904146921651168615697446361219016422705446342448228369293952341894034737286285028894207327558277016352034657460521816537503369890454560854502343870898676262109216990953776673119515484914272890958323364301619331370868240822222742105862262675763355984535622743070768142268519298025111373077262366029250746118832540623503488070132173541080493994088685666402795168392279033392735225244475167255689604775276572490784748572440422086216717426636602101341762192046865401302315521404191998544029056032789572117756005559420469349441591738282857804642807689752349591872827019585878535855896689565877235383138369022500834602144096803545628519095189478175766834408630549820227616825303125654844766852051786658909641644581486769533890358168135953247416035625410470346586481096226088654059790090045083983175915749315266522579720152673904121164037255884158150904805977281338839884641433551374385297124313959169178984134881062105004585917336599771567321531545878533969162964760947692000312462908811430773499698814685140831286677454462660210599343530516092627898946346911923521343144231170879283850214587639054370193541907658639732982751012612634943134333515972279414576820048026577830166211372263745246718836733986793215168254093974487486409975931525821055803073209382094232723773083102985520351467966150650186819332798119349291300697997861809969684570751223762765477712222467299923734956144802493499470454820689542574892964417637622373802527498810076534603771060557236955993241788678929441735567916848871838406151694493991337939328036415628102269960296194638571207304509477947051268362633752897261562523402301243405906694321315682388968194399094124563766341041291964045254483290952562899961346840853739232918761412614931312935194069634111444638038557421876077646831823622035481184393269666473457803376455641423756179122736098514506270973987279055667817206678355820873416796346201671378968094387385499803664827596304896998599824741877801814682469025915963791022248883264834825991478152955609149587981904086385335647383204189606639623181844440450285959035392464717960364730864062289655631001739201502952419639364038648371669025999965916870144034564373386454458224758292386566475222641072388227894908763130634215924024849231219998133320050271509275005408612502861709620064716393109656400574307279834653596454331998950657397992449851886462953383661719903351255338943778160671013364356373349566821234940279831804265817909733824590960836445322455952495323085965453936196159223322564430536901017846734846317391746997706987929847514696925813510061331293847710098700285205744757187920063925937977737445924910114392004382450854385776387986656475703479806901756661272898932340961651891507257014313037803313453365878435785868529282799842749639206390423058339666476822947110749663000226249770346371838975005388668395724687843642169091048063697314164311514629562154284972919249139079356863625157255011099566017180379747046117811638333620164698674974225437176454476376775830325168645352160834391455354230821777576826125467487485029865999214797446784940462495003204840491218975995401892004319291494788419618229470304784937526281573892172319006850118136458271797462534579253121283868622025481127004380496503762711106572855809260513225202619949469248547584901513693890182028260050809283754280526837203113297221520086949138713352540291946221806433649108115422128602377829660075300853321945527422401839458296852456285121572448771191835224636469133462306147757872806379320419983494013709339559130955635507801078011839136056848594700535668883088560715289552732929714737275800114821284128808165666237303200597063056444425983639897271892399663982805299386112884109793920330575271492505888991275621471002684940335250461099425699330111530396752272898837128848830171961526349309217005145231931316545180192853796129466468489425140539020835976164261688566271254386215959734042717040248380605673455222226443611779281505157267139191406064012445185025405609720025114006509013494954926597604228916485456494425758738801157948747602832599617858078133665159584380525267537394480488352103321719597269605416772918777281414139453682572770487971642211725869854309953829922336515817210747763404238462141816273539063688868628713422335334015250132323368083282283804021183301078231027024451460675241366631099112024112865879699684785771513621272834126463003279274503659453252572497123604685364139372113561155693244144753855296260946221646462210618239492394740555889961197572593512518817349398724646760139994753819758452631610558570665182545821326672310448525803372858887332581478354168579243234160592985353023152499023170938995777075495553693743093724029531263041388457091609903652411789963321655064717307642712325717915115741620813318022935840712358765327431796503766775730864147506166248933700728887989181503969048156156964197658207493575023152568396252173010241844423629237533738676893188328879426134763705664955893200374686621310223197270973498666365158524147987392763612310098015936514408199183394071266961890871192836045301515115421306774809681085740245420565785036470538484037989628862767828334035871377432330989900764926143215312549722843077368036212269502710078077549915482353656371783980745584151384205229684758869201851109232902794151516338518320349682587764934063145482723512770200672906245031803924468651531464668995524380392013131394629334334722934874079655405562791677813371713669546048179146019881870700351341384425521095822600746747541695616026210520904538279468186197834772675170542154714142988785113425810025949846337968106201040655400073610669474497386080688596315792662713521869332693161261153595149058507917151168652074115552310499468580363192829383221317203403493197205469501083604579949563701180638006326217920946271561053553757988617420320134999455452191359068706508833153135401013908502056352544167616990274080448599575629832074702626497643550109358130255496957851806037155777607868679831778506348715863847038494216720283091032775546579104939516645567268053055313487074705979305178426579659845082773390896601919066183728919897623787027565194829663268778862840844567264297253111759115697965991481077025335673026555077359805139617412607814951714311344507609991427873994942988996138617461751090022242705542490227859861999539952565721304951476273614266554744015843323378775473852604848896220893023907451504388906749394763502082292854309859279646916774046918805593090604867290754489374099022307211488311238994067108593552053596609799931328445567773129835867516846532291291060293761928948271292671130426227124028477538836821256424427737322344471265505888286615846857409092006886178502483673751112333121360608874778206457331069831284392164565713204698014446204120685443541316282672231949566545871482384828497887082195094479635676333160207534309039283766014961576125330886274157135451616429066535153043576531911246768636210672190496542711831625125992801271207086017133466261415805006946426474936461470194427532161162697461334232457301532798001106264189599326998049255243687094431025352927423400368696583350642252810121377180264193666338608764416890289052005700605975410575554109650644176430168035885362308776619387548915765312565365556876568583422442777894936956062593232350800575646976620064904723168770216832658283791576112690371319067900619196948936668760056714165840591457493571649588378454221522250413871206655555229387916714371236619669724410262519601060569281824869725864223289383628745760810031996996229725071270616670772379692216952237081972871830825968162221652107578281545502785312021817058230006498270121016110667705186057816084190974781298984510373449550619591463562270542648357061117003033711537957240880669888668251432878595798427612286059323012692925616649029597704913831929071509732573486245219493240530124723313251558509920741615749330884271415287271107172636665467241492775036330542545757356959016538379924971908311123303624855038352776867906731787153165465864143300053894091940892954052680799404294402487247501270622987751024394052913968303729869656969484004323714009144364465160422351066443520611114194828307592274333193033673470325011495926486688178455204923622981878900221269509761512637465307401687093945030237489944139372549918940899538522780300245063512669741746762109181385978114445709694834317878915859150511150075349121925865846752264476923113109409490275438073641617743900336921506389621638111396261995121676965213272840280564549860954262047214324550639615271484844914108106856994482369123345908243394172698265917928669205675236758284102974915109995732618645565220774710605492171509577381718462992484387042664549538506819528105701790651717726937119501668123651473720386011245730050369611730586326416273240643259519652506354156670299810567864850166327947092820977175995684262109024325442204255887474469531624429979172686649302847739123736526186017119479657718486815984170719198184706898631044702137814031598356936028371703609370348392949490325392971583594257639013624574354731670589673958542903484416644212904310906932594816464852614899859504292213738795444662960362584812251855946841866401662720735405486444229099425586517501436426846472282547451540848814570071484697653261708616359003795287253171380556804919486245189306921766491419913503723612251469659277698429453493878416271667797863785879138564822401606971268487547758677182743412191142375364611421698852732049750970228306013998112460484307442632726391147741586739551310493605003685201545405731631725371720999377242616557732924940462363513725374527068237405781809682151151251912361442962813619766982688001308697225367304818430479176569142825075283254838658344179719363075048195159123013667969026362230635859289395771979363884498433408218738851427417276668942172348457640374104627121558387583535406173517090118031334299633011584777167846999631316455042169114237357771267817865375651185638088035428204664362217948466718667513332501542308705468926210839481155150745215456807761592826578614757635418191918221531464230761973311402049611837133442832284210299302965453983131986218713166486228824782267378084772309030458697557993872323537514328633299267254132502792165608150558909399469144838450200440962442808245755286423348983854478219960081789965084278117508593905151532757045860373375697840855985922777148201759495061478925960523784102330839767289742140803215637425093216991424015755458727934268026016780462361455668894177571187225861596495201510059389052656992847088591605787119116410322627114284242356989688308582068950673583458980769599710037674506519636559141284846344524242168777002115031309941416393693314127943264427064896288778902877266279983260437756272115858069978640880229566294769949003289793777339861262501335042945190366867947767040216826717641431509641791656153614436001341009537234299365790993841183672046993659728188982464769675220527675520650374187705135357307897455330396421713643158402148919657525327541865400041615149565694242984951466050258443094260671384473156120302848317566600319587025831298825608413932990542382506715734679182646020596015501890187150661996548731832461802656889863837874547466700348316363044873127554416459896753513397811722319631024916662251208177579313500602474076598806999685624741504170002945865904103959754434204776771386945728963744139671385907754781203418679609799096861846688299038771875231398120781733823347434065065881817548661035268850966927457052076835072507698282811948654923285543706498527254792608044685151520968737381851752523639066506972624894973174881957815012029162186677334752363301276393574194050814749950322761442201383492136818978314442365505373445424440899706590573069803059366803993236062623070031668701902115014305801444673556920532429607000306066948294453415047462487928155066768888724254113633950410997410720213523993888555579170828135934028214093575320128347882244506786226586333776408665905247653377049196686538889946296705664139946930191104939925246823100147405738625430188240111954559923306001754432369097862266238581645748399425005305602932628144084383363035200178764020571246994434819262632547476834371123459138069911471133864471344646106437026914567311994151597960139884419519198203277386930969299203744001599378648658460792854132440305822988608113090326191692694588490934170707801400248828992785013509763788380400881770123629735814440544781167597927557945290342934202399290804846841324060932307964915384091754909058409592971375296847986625714542729495726336308024857495505719450425659850048483744391715821688856596612598214190463153867441605452819424411502489637880384651409011238232821423221449064300571301162322217487501726400947831645564269440812717555869279843847826934263687337872640839329281950830816323717959047758650813534581352536088522998243394048826234533323710269019558258548533505268685693303662142347114145607004356210525577019442238378560458601494952948975024170332703309333774566452447844183364850627590411340006025258637403471391604976326890901477224927543957912105364558424931205469417178716035061425877563511355088427460649519185097779841959904319217457929522549026955990089587323260907041853402082984351662888128004151943678831288677178243753769389726475310911662440680197537525379105440083176684797860648309228748360339234588173743547553476840436525697124914743469451094654011670476288410781271688896907650077551712646341123081882290485125753358733325803633821305304427037414270550448499086943103699786187129240633757232529018222480646578782843278594745061218053847020922111899733057797261525425498960737822237995946837120788878949936161112671262267618103726715252470714973723936340949636498040759545620683596954708499423768017555993160212324943177590820453566045007297748625142183286531292155131541384688295577405813714549625738788263312943798684535119029905692843839958670998159413725887840273802145930733707926269183024031010777875799045721204152443333652837499793316078116133052758171023716330433229168768757558595665379280673504579262820937090118107850999915428625721057563584115961695673318064083028172228052330441856617375138306051971584181131061403344888871458778867031114296057831061650966819024310355900893868772979479566086993623344226523662892297057243207642529598135669927164217374575214881780875726878768942210892878837817822503482166134793618710018310001563103748713961896412943380067919651951424973494550907991683058831090076736500849798265589955043474665353519355671100545387201743574966354781091411399838595520559997265416974469635889365540410201559568325265878976444067771948538853706091218544589520638964533848920139922773434795518657340393696624047269533454067161892476146281455811783351396932901487565138124031793838378882001860643739658180246456378772121609173377773637098494481840439254027335206685119327232727765671673649002585930145099185770094956312723345083081291940448859698090110883679496508860072147181881472290277831237766948306554726545430487270464554215681996199174377353633160928482693897958228714160812186728411739253163249322058803743818515651239605232486901850712589826120814382459823179082417891112217892977302208922210327346526885338656191926328714265646297467177161228142620649801509948416450169734602470095348449382910148419746357118589261397074920094567840644124134266849182618722467864748093902389070868817548998705812050827626203961145858451917067802955860309193862812424137787175969661898574319050865206511407006859065626359576002114554275396519667749310078807060034657352927595589750347978039246011502164697685512662397252193295947678651997880966730169844521969108591330104311424140869486450212987503052970704186756398463981774618560284913058930709777083017859292109597759506252543436113669290729930968258386951152077925513065076938574508621928949840596371784012409341760368073547178667978764108927459688198485662325760878919537760500162105530421658843660009529869660208125921646219206391867468457157322022468913408019788334769840383800050915736596032953857248311248442567887800162027573196383987601061172382778771318522347582404132117599425897688581011344233843715567192631688976692492097582596391212468174046909386161483600756973461127596888043615214921166723356220882950452781312373801450002207784225587191880999726569275567758297429295442883147158090345477777655051164930251673447235784322000189157617425906939374088700440808606923660455149846984883419489948482780095696324058071108072216470002866325670071900956973283811500716124470937230609263388388119573906770816132765775088825046888054771840551093786620594081446629242202979441100894749384111468394944802212052933394063225961560918273942544832780756893409133896671652628535026830056788553089507778481221990543258641135293589333471028469214995180524856571517911378941162464375741819008913931827808258234709308897491924664506256518299670776883612602523575098783501935260203604429304991845780520983990333603888391285790363555132463160723176761661328504414199675991159285456093005125122800876334551934441574174979717340420356640759018850643792546447353624531747903377966340162948094308706783040719299621289459788137526450810034294896056567048484258644964890296047709886947446940363684590728765188554782393285909105519495245637042483149550506624000441467140036217837376425072162476963572632071802354897231993563238267936805068239962530908822565509298391126218433443957858688683869680280682483876008217107826887463582521670366343476997130649493813936173100593154143936547597037516002429282873781664738065867615593905772140175547671373963750327230499481357614351459519825846173033063856749552793367691598229014904586477387159415789119962339232213186998216982315836443881260358702881658349163560208727004234079897109133228590869316630822018624025794728447369945296099703226026949977526018888828973060130857179881673029219968842533869644535007131583813368814338877405505498868637592214608228943426064407755205448850148370925098308081952716544378458392943938661259810859266057520423090241127850200445316649748709583664103204030923342661508838109499668637759764692260162183337343493670159639529432467895810552281827292059330079888508133115116700219626243839025004792496060205408903672339825510820777578141911892692544338423348028274033451817519192058396982907625661745315820790342692727213090275828385835844970061163588126021244717674278507780278290110366941717762144837333898672297211797101187736032750246789116498076093748616331008914894523497350704613909199307630668331741611918217756251107364015639049469185472372068523202494478094750371141820509531452116715472396696009811957022918061087234288128120764641531551738422881846856817665852964660921364194638310131131004581440515594186148926485998214989040229056111171970556706654593352177092726397344354436344851661849761113234239111629092444720413073540280052869762579865935761601398058192498440991050471856022511584458965539184334001629851342354148899285956865960462641925514133905403074268411250826443267462618039021159222941285300827530652216702113186741648483526582162288833899175075686413812150016172126003096464513105240335874195096465840748818760881964959749304079982013099806286537348553759375149298723755772077315643108673833314362694994442768086376556037813876673189469304258147661800025278446369416603683028506565365607368550139426595891844389617494416648152196770165646318445939442946041940616876916714137480566400150914593100628508390655182633014669593786231959488287663701741128149761009108627576138205875467077409696575616756155535029308626367198930037548267783031972044739491010983705833604501953904729562736133609184821417482878560052090016413144418591031073504025332082771855444885470384105374639391634564622446659150375098898393154685901361142366095012202180336636351445587939561276513012848190526484173763180273744459967103330682677723608924227633564534244479829911336493618641121485938912260587283190096097174673500514349935827261080427451190497886054355763298474209018722607667614939766782047326676706280311725608806160864190903366449334369042495870840440486309279173193304000791872137476080893935647236498959213646273328556316796708584546943258048920700145559482053418254600049144200624407358097756271135625451407029956287963449833249669813680398990195727113489699479772004067664370683995151035145020929443425142518033016213859530511880766307721781198546017743039847197800561433451779811257545386456718437798605562941437136907328632881747308982958997968708551682220183413993840263196508407213221482000210520869645581468227632211565503528514988881904910103330959768476005148722118313162049400376462172332401586273952612125411731740858764503016358254771691538367169679619522723480267546331970915088454255290641768595017203583774210793094522654375122031495762837396937780975647328545010098780006601345520196669319932693936688959461606927059274338351372359621107466025477748678552860161672216176264325785324563915330724682532281271472085813258872490016851170066342521666647978036317806316707810895749190331618285312142721653495888940476209705612170696504567908943051804146574237396196323588348134292499530457937247986857693556602902035551824779851528946619025456970444489342661272588653664204425624905449318466920926594449550586913026727776144924569237226785778689867515558128281290981881109215074286666149072772148568493345904319736051388870871773674821106385390988091693957713462322313064404070737170588154267845780329999998960045599273132424001245262503535121726509147668445380194389646688151805399492108611202042311412500958258299055793565185045231670515406924227376573531875297253238732075282623934459647655065193214751452339833661500253318910960624396355583258037985181207273989675633154597012037822364588040914101159565441218124418750450251514484535869549264596108122766588870390458416934865511788874159988282813814908649425196372168200571904069705138129236615228556963564023056129317459366951561651250260807450043729248435973836901708739350753538794844624420077296902156706079257984824134953221248450211238640516687661852451151007215894417375299568412640318903160824031208145398737181481853723292768804869378520550551375896835922318470917762196588194267750579249894581910220718813709379654266393568081171615480047328386446362153506726991644214537424222233814320402946149268030131631536072891580548187564237407689982363272264432523244198655120213547709673064226653519833252327744079796079010180975303461189019141789053976561008204800497766084028494254467865366418078855979416446347063543166806482985413826123099061756851864118636567197024592119667188382229657607655320943993105234830453565471679961966673273739336189041116712334960719907195283089565646340439283830720094047171162729635985575805778730624273064747542553265003422582170517144899205273016008737632864980882046375063999222001871882717117986970775742382867473698403619640575127626543750163977416764323654597013339407727105655824689144656297415573836386764708761046573163597471046689248749516129061884012945016838161804136054122345021814670053169304384351973253973868048427346288002075963718690061263060408313015164148983138580895125249403288717970914993160807875791687216237544342471720310448812931223560890178293562440699637895340354586313838106685665243522958715473309392730587634345470197395853182306517908284341818410150441470655778392703076745303853235099994323213147103701508563913287229723713198481664444663882634430176634254935926101899270825317460304766094481573855090641980983208367758993682835034899968879086120408068826664398990716190193930831546424420187733090810779094189977138385231144274836930247196095913622741959866699539354581258918017548504690142226417943237078363855401272081105593809913058127101955672525958770577217030462369461132529437735073890667610540526690817275719566043025296265261216457569929117120465999851524718094045895138139488942351727036637628213967403846161677348311220581831657556237959041978933947017925409951164107469833566206800674722781221533774887518793383285746121741738916951468035100126049612091203873150346753186084910620109983649041236505126376469556157023970767649046710299960026902573831192127849539590289971998430640209802148967791268203492244349771864372869843281201138338150660034594155745471552943803262558684720235398679395302211488118434484336322883867945244763997197105667429694888065000033767649870140185716668245824792088275190555109949218115661191523540792125346204209059747484099853770925986293063343371271375076303452662348679291853322510859557876810271489465212453406590689588179518911414887493690131739083110564555464716785746062244308438024847660622717929435257971568021193234395133509158907960340581907487236867976867082202297442074956424006782946903970618300101008880847603144810208832956361272925986924478192899244593068859438111172299806022677360236856441141919627251730943497479897984742417701172187445407954845390714176060989800117159037227894459027172935535070436123249492713853827590593813702847914970231810203299112986450660057469140680346832410485356324300458097598059991269341316987648545764734507957882752056425460997531002360875015521231542089359037767920495791898763989985670393798325586484263886602857770668959990922207171197960827160482865170211231735970791063776220115588470878636204950099839359427883626706330723131763048199997489084986655450019284339919073038861890390369124631734830060293488315573843692964460475566688062292245324902288793244519577699221916574651503355616860004325432479741643068612544467441699064591449784715311794639395667223363567226347592741397914762468926697843560079803689922602191482104694014321437440625657900084627886967568672622003759354360016479629479161133655824803202944177766481467735246060489907580106787318119122708971613380111695087492440508219781301558533521958518536601168686344306042806144252647967580927860240313037692465068107060503581028954617552657153843404603385708899441731678802073226229610949469346660276773551316507304263083034012159834598392149111373448246606561096301816731507972262381565058512607286088687028330826694971599031320131716902063674387782875738635951677210599692878632288786712209235951488285527236972371474549335946389601479453825967730901631229741758581024162143559951603316337915425104097207313365612796907249670316229865788499731357518704146819364355690403874082527878896561439088919050754439676110886102352578046710890396407151902893942729777319457655389984358627383829683648299314628739059612216058100447733233624360025593503991054080866720975048682367904279170586639660706966727660519730863951326558308796527932277722270447686952639107203589040551116361718054101694056017226833466152967559074905378448312923939802285302763601392417386390930340980517792261704915821684823606063644964078706918968460392512213503315845869056172505119453124526075546441303176113595535902276125116479771237845323536438427150200673755419903803603090837981727359137589084040271000550505718776975758326666644820880424792468974359070765847904702838554739096368198146641363290322933160585685392261223519773489556624051640976581808031239610129213999065497110989904939277315188134740114395706277498784945532671670806847366779378225359227424448870216616115851606796516825265394094634032664706592962163953567123482963340294361320041824407256727604745701403727503620891108608268552413093690904763892680487008015430112108525332708254030272092448941567750005907929440953899806761833658826885617045792887788574968248359654126075277167497774488204260696480071342809811032491665901085144315111334273692124683435529958269227324080545661552457628322332135719883720814478065295956836903371943919305162683618937483119422274781473168261263895434289318645805828646075150520449419158377063942028900874702604998381985132202705908850171107080350886475234684373389004216141436627080177926354987329630851565305800246114362066234727383374810604393429571775015160811878176432233168798654263542956190644001634222726395469718968387390580772703783880031031764863454189286264826390890040173690455794564591122645089790584349063361909358041017796687537306457792052282778893801426806715322367524716483320118788459408280384833012443547355049621359115826945358826793475838948733993066174293047859176654318989413781450380020145429755174384783918585664388348115308886067495431485208583853822201554042925863944999165746255684309499082728412265302023135777826520557804141715614948487884972462950331721387301834151200304864702307728798013598326795974259851360928071309146224988931783911865048710755845380494724000038216275900941419728238746327815286263748841827901120538011683114439068027133036164028649332826505705153360828054599966757308536604332907872235626852899385926867747603639404013450405848244367004355777316700267649224091081169120904358396431262896292085284325596876165597792063527191506740213382620937999818299043603900594581128881050912827195195244470148592623290322734267509872780910184620001948763129986594723405048648960053670046399959336077282148847720524490917842459198626980328925285228833001373102391232556320694562713964186229980985828819881609012988673766883249992663815966785160038113862128098557916692398872933495818904368005317855563471747426892893899814612860639332223665738069177923662425355220636974541053534052567309261681799028630402805702452639734998982117877299061336985718604697572682201403925768018069247762031076987100153457350764207898115572721681483229646539440936295333391096476087067424519044556710769165967805689298106992323356873057348332303911441225345827415174482315846804464377918852748972526794242889656468232890075232178652000042951733803739873727821935552171375109313027997620980784147213958982258513684366200602915441922474240628212776637817642243880546593392516217522095138780797065057481437234575820975733079926852879627351230134790101386356326673355699688785886657386388701283851226693386033925884854641900019931488713224352234441816430362957018022910002948265498540961821128633160103562140917495620658755499954628553152312286616197878617365462479313332703857290652476058534073592367761863181643511094871787735540248435795980716736226967469311514077141687943706399333177348345215497181173558131335941881280408484479420952227045120831968205806543465258680001576028023660981092067056470145503600156863436618911098704645423717543584039135968073389959557068669353509040832147556497260646831174667870864231383101173703581794464623658525018370929300270057798280133462311193324176649201707123742037728515929903695158565196265075848672857569930060135662047241075051100029570169028490781200593112455167162381326283710735829764783604238042897401932374561821462383820489907709860886571220524012150376250528647394656778358605102379978983770852457666141092314595849824441979003545689337404390529555232381223676168943785931202509985438310721998570991842956522800308782693105283768577012353147006824213134933930321321489529355009621915506484916575648499231778140985859049663953260313472496061057461077671326437039570817664086337237094829886566533477707515980271316665762466404266220500253115582096797772911312965758470116629899295122215735721295427189699301083628259399364108914619429495337612648904428784312995965806426714132235451452248520075358135795329519502788172559093207595123392478408004660255568226661243446321598185318421337051694358263344342019425560125616918385706418746176252671474027080459057802163961404564004024525706211350118613175639190050237565025398504827611497255499567385478663852195624898907286185232297533447490299923744784658587078216997683713176112637016329529160084194523181957793191302638311527483007210798616134406136338006833006231100814582909448310436588174123811597267532270131042135318233612903440500099748914675820425800959695123282462156056701668908769073538443045771093535355653688563979186385737252996238708941308713199499331997097317294498485996628302971317463221393206726699918759503695310419235894485200051122024800540003220026675397188113675193279456908180341378736009149222011608299441105976271575482706954526053267090736339135922596221475612254335991267028341797896778214079153925586499379666694819127950058916626725697995631212660843829900929322792348768470059556153010310343423496050956302871858443181712795732154255471596283759925916795875451639756278233784000055172316676748696480852879892256040384296694798540682633737455677595249268223020153076869746381753238996020883418676048109237387676190771715228386072949549800008910567568703440257197192662286795776518958769067940159154125679464545829654332431418385644227015660272410525195563747484984389758149131828058071093472927118410422804267360446296940648678480311171010057795315123761914465121951209422895994179482056508289732705321471856536505644785227398172887417322096461903299918775479934662375000737373017323425643217482565889112402992589134924664276351527924203869464236309056102074442093509507606571381301963922847092980431471537472727024849847335816241524833982745026663256317284270174327519986584289304078621400270649570229356900862946049952312287190388774558578602957133140497355203455777310056127032656065533012963703153004279926352352939331198087929409419093190408490799105532677400172412280787649931857565606568676036480297681215481889260706600922920880726095552969226331019384652057467326291641251515075347871005187221517667045009509332866369657375416624710721402214944627958579756068865427370008889720779609269593138192932795460087695895891728793552691107250725803569421796040251360272970526292540115293732893531053161487282109610761489516474677003867807709122802316405268796220965877274697727435502811618664223931833361715118615121627313500908369584408757002246202202766108765250431526940554507317103237025088463038465193223689922147051731660568847776376457609089790872685788115107743232076749913016728221671130352278394981081557837107246538436222510541563105180159326722503256953254802900700344650850001244271998485220318896670887417946016868593506323572066640659508095084969143633807063475533268243696687776947387053660838234140839879817285371803680047162872675166059505812365805473672909120488478623157031205907118665894968902279438449034970857206238783893591008881630491909409519632880078277093529556049418734441473357632623276349425567880437478299192458827364902086063364019779800485941842707850284289300143721786246838095313932297140654230584238899366900800139658923089212999675815319272754384420692823730852039329194070882217940730743168700827200202309470949142639980981167893607911149989487180155883440073134376940309515835026827919923734940745206277077793470641250275100117246083065718341714143034477507405422198731041243608801253161260236958767555619869789957526481794070227200942785307390927263509032023598262265988960627137597740037033451086893527566212964438593783736312407248985218775841829336387033506323793803331120043730979220176879076615132562205376977111286851356156650121581860268228878893055279794383955379058717643001215528830945600535584484304864080797565769275514724270634675182220237851282348096213598981581388049029044483573305868886018638363007896518774294231699754636801520478827417237163605802190986844601942428452116518697468475614647823461087695924967422956563437486528414268562389094644412069363420198803421311896993640243224610268544988486258452814629731005417471254242077709739698369254442473732593993073885375153740691207954113690855877158732337937483974972111427729468448473665991008983721316054569221095056333646516593560266831725892502649998510680915890541353585854806584297351539186285258909443327582743775510693557843200706338250769487085971978287757271043461252448953768798042692212685597816280519021043143012242751909949476116289103551003727197104682092194571917338847997816852844202065906044271027990004042609850362664899588271192736750974424467156590500669599746881661926942162367152894833130336188882105503672509060238448869786766648336796001412914969948714654628815312991381592226674820731148641841416770763837891927076992113232534180534286600373295113324071485583782367089417266960653900169073881600497423807612775598075949916440740073695201217581485801463041236105620476458651789009684551299106499168662716413887083156291378799241424584574612450732365986412722097712808749470500870620381957081394353606876369708625442681870325359221285264091330317254534572223581637771345465464072529055127703516534847377690976566467022686321802495762123365433430940102099427439697632980297828125148772488716916140362263171047880038788032026660330324083097039891173436236086190230798846922711767667047305757851801765992450124516170199715963417155307053260527813210017938521296544924536789287776018778296505384045747844012518909564142725635034719785768171131015813226419893962914586596498807661768612311948162145370673472520119922077483037808699406169010350274714374240964736234066422516496528108569597865768241960772777188743991197379922569512748921478182672580863982302182677328578691427976365898959962028719145084060240062259950999635822506347691588224812196145563089794774043298317009057649396225937455394747433402953207357911409874239450937654799658243885550799171303153453881241977542865660136559244986460804568657352109851243677473932941235125407300450227711540246268970347735431733132670695439620214880452067109497621016166359154418596372872389695408036909315027678894570384931083947904476416563038820680045114550136085570633886554446220461128461886624887673413742668492539799146016551686369523820742510226557016561981259118528230515721662568378015148007973516322160570241050374660036786093109337911058346901271008204273996499997098802626737437210693764196848642082824095582817909942350784095980305212227336019121477038122051509377748005676399550033748189821460308632163647573065701789755467670908443557612125486211747467939167686288134209509571864190042781703095697146943071074635088388464638253085801384064355460805744169633052605348436380433841766851584177036895551377919912910217194892360962070533268321351784829183952277673596640694953028041440661701319629755911888845961792364063076733308976173134332762909221604370424281048775656661962799757266084456649961087245614945263231658771497769618808554491487366255938029956954939774794047235623928854977310922715323969950237178918402921011204860454886460391593334722278751830305831181591932990082453062505739839306719591437017309921145241874681548325812942557605737102503104905553460807834745305602620548675073425463404111247431818559739937381687828756093435163424198278685825483921991443071702682437059613297383565455527690368953689822879337519441209454389539782618140637160336273498116841029075216386790487100087982562017145547954919467327835845031012818215070933146550828692503349202584484411696935882997071980245167973295349974589649219135988892848170193570432171648902095653018418862643691812541755149815377869991061456017029749370454186341196974577745755803086692564401358753990663378760423305257673199035114580710832127972754588224722993170640625839021448967402947631739960640194451391633164359364621805151145687052336753381428876454235241947580462491345733163504993278399312051827273890262889973012578874909220582515063410049746780730403180375544099639535379776126247041047652137183313560178439013154955493787484041871697367801428353605482706686783208114996372128807294757431111912945120516756657000094915440066096971725281547532495246529600615894006263812247985692476117835970953910490975532861975840230906832519720632810544565106798182414276710766672142251807586512823129391294985486506271912041646230168347463708988280233994962976574427361767253103598252599645622360330467472135454899649868590438813745604020662810852710109838728608240189215651884891432628793469389500265585730718134606849386706949499751113561532808543433086009531938821875470012805301471577145030541136554862681912665590063233057147679818085755123492960506892507607878975248222883767375634346388372205538797471013256081104607724238516761770233684797843919323823760482368891250899098166984814609640324254790347435646504550627921368647179093956455284111317916505699720130601972599246882849677343273062130544791280198312488240433038784143030364703968253965491611157603574309877919241895161089525330701905319178154695293975194914580854484759345460988083939757948795032505603880265846212481445670601013168919620720531128260820084325724488771966176824535111125757308347158385108115263740194785658870169702988732912870259098710453925379439125897265404241727358499584721613324917219237415963827426824305124970217986630440072533118300457558173780168717987134602219335337063504251342068145063345320876233908800444230230989675426705068129803212391521444335035392111086516812408999662983187209044896322074685183753683497437319684829830031404935245670389290408501124129505556438132691523758170385648003657879892561598385171698210956330059692412410353506595169200620440715238763783819824913395156833137437307573433190198490477964469966540914808363906842098818921094680891599172299219092677464301546002950130344459605026928716469074410767270775947936864311909973184909676941300440815435143438534370648365857377742712264378546559240934786838498107233774748050660140946059737628233998249612322999272310895853564103040170232540257435404930193254048136907380931291639848186618955402676660198615045096423760170002970787823660090162514620464515132354246458933698241203349389695194982860317252221287410079138262014372293731853253881601862732735604278410933387752050342594820786118540119338013209425033439804716069711892749270852656953841698451640529663540087086371433245528681796108467799899158734485051949593600413885915377751513225809192191895399813272593128544359468823931592180410971604246141231589210215974113504101257529409294438846855103601737397248554615334229745855359289616862980294700155938234428668209397185041663470469838874488543943552487901564469739111039056620373756787804713624621424089354086714307743113336149082413804575461543144058582071770022502387108613528132510613920044267836398842684160005899850039823221616944916944323194638437829653813412907704468486835087454572137507847054249007966829044374146214653786460363733244296533620288847271233818888365939370440188185444226312222695323153711840526428284022456484555406915792576273827616329334129889738074193504043130033764303765579904061025539159683713787630906451361745249178982230110749004180939291871955178698893253165000767733006778003215860246731863679887326641090962596708215608728359753870992860295816541798399865960723790206214358611463620749263115644358936376616921563061405999379630495780081096013245219245862158658405812192000019911307838204351681682789280758193078953440327395984816729630167339821579663613493129936653981732015132678913696162424676316682173163406292433626497478964500283149952527200025883489169338733353740117544701730815488212558478037818173016575038000989501217755099951536211075950277960971480970583217596114917321218610335106316650757902874750481925695891187394307707043488194874008034449857949425950632525861793231324173014252746798275401113199573245600996316004093880158713808465380743324033705813145286379381563421756476256138802816623349714962472261088480524114891027223527673963173128984153521807032311548268687147843466515763129352259610948811641877087417548582347253426069733451776632298580909608449048605426130069966475877320238898779205375838091952318077717879541724467079149534582323690551972627182564940272362073137463637858449775754540339099830494373592959971183034523242824471894805849038390379246281205062510510372201882451578368481551842677183741622889640308307445625509310199074386377718804770789782852205250107537887494396033481403235392405460648564029102637003839686190667680674535730242729014198086137978437132516263662819782729473826049946247572791353339776583297988890928054565859417812056338815333204111246783086362241866457939305718218270890127387255809260813284814511090908410294704831067446939884621490062836654637194822130796982480076987676976499246239814381221194120593251324330288568766379195789660472059026829898434629741015482819742746749609089236829084361112015307434663950692255660189290908717262250971321962746079798380144609448502360071559329170475905586453837790558451691017392059811575064027216182951646015204993797852820106688488700540623269049261206682712366323248377119420115840419080224122781785597692612443873158491102736095085664906629219700426837972339982082233457757356744765575481589016757099536986841678127118685635187093836741172216780417238409340243258119085276813300195227871930341905224028806706993200170807743328724043553744233386793018522672114754062536702130023270671975976530709296627402296031727594149561184962064174792055291847068662847119009507308154127741453357065642483616393676131274775274784520900135867518649345131477042863242782967032956019808665716385738083252543027196987267650588461023682500856306957580282026061051405721277276008776255873689611264842945875564598710187440364183023965047010234251815704060673346755123565412200490265749738330126465941549182681496852383074300562611422007915439514423140314483667875505686697095169431812744119150453679865584789534402973053402373817782424068870154014658206748946625549867665604029344568838977819673742831419413000262628264967181824779050607355967644160666160708832847491508906031572805900511049066315726315732271334039428784190570920759276370291693827608167223727928528812990080055681358294005219167136277204344121633497566590742527225308305038674397101775282105483067901534459223369495710544668439729450797201968462812938353576216353728677729187745558344581335491930160066896938410858565327960358027205645916761140108209808261920239994588101412441699792137874903540435281913258523282340156371677831172872860918888386392382304119625230104141920094298056973370737482850137468651989705901283371976753141750634677916173490686203475429070426546997103983620911554299322136489650459118884213210731039762452688256403726392415096283407620779547580378148578255759825310746413374131794964680092759796834641982154757143159726210940251949843529311710087013541503184573144495638521387879326417359962496979937798939286528097836280180933167267656864020790200375410620458219998073548850350088934826359380911181915367143379390112019068107936726292435301918017340030829805436315267943408949509963407617231567228517258224769876087241076418737596129470040800410356161915848009383506767761790366910228403737315341822231189543301870954011112336166978199467892545957738574551860785928429195502561303807012312377021122721234222904771387310981573053535687461813999836529504506431210808924088117478971936973923220179173043976568930432704855141355648282303277149403719860522018928738237431518913345110571732054695381924141042440391970993935838425656817821662659820938804234453241602587577170798505785918457077972989384349853739287879563613540733302079286620046116243427894725192672813966977409786312820744832463983700805470425287623536534435396413580609971292648769829829469372964316669009137081376787774806066103185789032845908915017251684754478271569607571181712040004993422398050702132362887985639936671510682390091348334632944279750305613978401649614367880568196373505335356681872103351357554658480768095701826596593004182352007337972752913629496316864040309843113024999004807248682261616964425404664261973683895719021094351514970933045644075121480688559932221851554388225837097057878161553110121917907765992117906723544528898946953841438416596105484545435250033507384505476410661539848975846763415468550815804915537271062181953651180887677293416759049866895427115927213537939948013185432025563610504177140606743889958440432982814336630021452785906719647850013101155495445821596245542892873344173884558360888327565952436862579616708650579613443114203219586880381017101368532974755544701654804371082016360469769057894068047729010181020805543614980664149418130983894951254675016776044588422911004536043797945197123580763693049029081282062367388626400431297668616494374735704055337961979882284810598938751177243815748278861104443827007327597622264363494612028550920646032339035663399002759437430715238098925094214849324346443570002873759344981798265650880198176458103663621977980071355393578980044946020471731329258207726955218504433626326764261393833910352995393050303388171489770336906395840790864758129850763154558152937548731706382976358516273494702651178351210174110352044046597423163060812942611542639126721347372370130526962485480990211060679608592190261336862781138945972937623749059498533870847202449028201865043852165771206784134250988608872570044328208191905088146502826456910603935410022616008944054606081052812728765571715044693501589688961671076491306542166570561729126710150058701408059855418785948218311320494156873282556340407677441166426856400776505688045292265972772077431023010978312753196974001081465870643312994199373774656051230144801141223543136446972106751196063848375309047626596877995526773274692645322995623733832316755256406691284940048338625700407815020474186580669950363907137749012025928072415194860197734906704871628371591185879539834274912903941532257077676266142369040903384062232632321330110985318410293339490925951140360914876782641785738364999318661854393838117693531234978729812822785785252208822947807866163125941903064734292608744516709417130136716689501719792047696126777507854816881630891041884153232832792041082037616428477416327055812089350624874609717362697982998663414002383525181579368557770808967198688116327775887153864827671120745376663105339072452110391963640343661897288342998043431862514506346620178219948425572500742191719387430030440064819133745454339155793314556693021624619706229721866765032323783444432138840261809513475650993542619603076528918718032901748820195475796636414968273521003158964522103867150199245486903193587641183169816090015680038335993514024643636392179343549374767827477655347263748393063230917162073195626302159882845920478231283622973322520388808296082984315224951372376847402268435324169183439959213570562978521141274564681906311573760398554162203912681501170531839250904109665004770247383530314863068073801192951884056665747577851082877266945032081334708556770911673670254442690477400555174750804560495074781249520265428524775457724710372101815961636539028256255107137537767843272689684580843995066078060832695498925568198452757698604803034781572132696008971459295666837975959360947848104083816984901287785303823988141696821196793418165194702982005204077016860931043093492606993597600159765537474882501787280091607460167799297748733616447192798999104219603257737552829989729279532025960520136682224677061471030688804505139853555808420113965814121952435756300372649221948309812637560592100321087340623383674838573580157250233557841740495451880668300458202429960928342322133594475763043189725613837845899046236944383782510052649834147343448107393251206402019426418418896614633993565572407308440476081610746748217634338829183018660847773166266874129736618381190442656530557038200058611372825245374388319284714160307278815403429015235272260220080067444921540730445897855853670271962916613838473085469859139713972313724545953359419055765975803351355281386167652021073374871365730151869137074816031076343555760715701889533216584867398415264679803627793482527041927974356703818609470160140507105933397910641734017730895852645263823583936499409600248530042513809932206042833857846653568157559804998690419040908885583941941102949850524838705491756550655197229439414320360407370725288950201284052360384002531357036639566843249895795631947112706131067102492476436849458066453201827529472066232087422493199192647456940514330587317270850865015788250209481380037768513526000835506247854119707152769448686264934278294142692069283512260307342749576374629718836228896797278615196637495990731923634636036877829863056239666220168062826063963712042044864828975130426814967149640198468833586606791070691903543057216446560075263659406857749521123270988159921578966599686398012602138687356024389284784668493862750060532079657831501338405975572514915679223534936749941038364150555980647876395355279091321887086197763283998833168002486687809738162685683318630894974673344539474482125717141682894451331255905285692814231870808255692064009301122275603574335583268432488113971263921581641827107588125615742289099096393653445095782311983086512839846568091155775432108484938390606118567422609875486811435900341067725266138155161292029814961942996255080195359501843303386251353522842609365430211484715216389417300452629241958228757227981934838926539876719224558860318173974834266690305911521326450080957001077802193151939510528484021464300611996202324196791655347345979069837316460243775556626110392014679404541078041746847830064556780218959058897845968240471736186332038111371535853181965058462832537569820479963590057188952658177403405200389899681756712852034858902965277882787352411113478884792642570541681334566342746265634683298554473721707437099223672475139545729811318534713428433363462588724439763571347550418065469585117708284038437782720459128665188764690378106092779679128407726114491660572075097745575887905431229434514315948790038261534457029568086326187633316295110123389801278704855184631086903941437136098192783477477590122913431879368052926716796303574289201838615244337588831816846227606868519486076973657476069195144793038492552470995213853874411998163662403838862520605231680283881380067738709923748155795579829146603315530864910795013213661981085797225950048482502373625013292928726293422324656166539498324021623651685445074989939665268821104759355755515143560890521243052450364475519506574901885480909353025356987261881947385863115201913748597660575651545622046408661665656317813553650897523375832813951789858562038109733630372734092753597464769091355308150428881129937668389053606119698800744608771715570023223192446145209719042120689421028970324738657911100281804175451213561258779089467745954462260554749153665113757540579072788722770827373024071163307252617017663659114591259615448358980444494654938372876196073486504314394458128727316622710028574888547238872884741072463630951877535711546169808749746536698042502060106407809145588343713310839209271536428124983994862192845176459946561408886243712701610913228443606539718146936172052496342047844402447700351417261579836881945146635057423876114731036664262914200853289295952539561804375777370941008223986022864269679861241406825922320005591140776877666653520618354465893777046332480022362728829764626462129360367853564889700304451061129848786532496905685316165650317844101522816170083087094118531114128162110996875496213529181556275908692024239516238349976601210815257744353239416798676653647270930656241645582711705431766532503106729891773632094628741062597333795980462622642063836076167849335778002644806094452597625772161152198138027669652645479845727223389463443090826581755202340169192460284652572486437525333401240356050441295346589682345372522969567212624212928087645699853242931310254698600079281783178678173420913881436157942070610402591488219617879730632012802951021085214302455825876323083246194024167277581055970584058480246680329910468473157433663851731518529918380903984261117147147193844661126813418848729141091377611471720914982157116526977612151920511141815886753576727344550425189178908352953072034915365316725806780438243576994165644828744346916944819611493488785973331092430667571496020801414800926777188801543845821681937981285972592640377870161031253814889362590058582123674570998147315333413674383037795433978982757201296621116798237923685016283988972367713045861811469721019189769995024926210255477666928528737662361459211977259996289802423484432848610756683674516187153225477174223622259569143829533926497669665455633920856681318008306522103497754723568099209714432614206172633475290040254199584166311743730052051998784322973441179833845686013428944388768538609769005958128448018816640615590297081238516663989410895566279372662599431706356881957161577931647181382197745358036176108267802236497703179060970046103504836003387805923060331111536869450142790462460038469097109044482941580557253952407284072528980965212358466108751049118233745657833670837826676330250044135330580226139915576340681672343034688920523126723850417954351567595230217966596564341655821442843435912733973731521366737916606061943231129058075147716389374804598422044601934588140063451839892223711696707587286013357655378332177218638724920230475882568753670790612238773594169180873390390443262791308216116546985244060711036588338264127701584610553038275855245456945956415225572744055077298855216766774787767679738150980297655924717008398173121041161732407617029856760951885393923540130575564692214567203273559056005564547455665879726661244575734697233155484831718781559755898938992303020913947135822451335424218236661689721998019187377893197015900818551998506144722531316735435772356645421397231425464352919078308039784256418442740559271168491263460313609228780396219711341559597152238226827440219956319119269948310991513073481861278617157175589796812069220584646824366985796156073246245445230229262914795867535260881946718432629619179107737323349372357966153821880246589517780265343822963282778541607846161133362297685074918695805544353202321074799651114336994790642831052150016277979066695327494061797087862940781062523945465434526439259875038944933444743726714068109266666439877530046690511021526737528925902706885383745112821973472889187382958426596932965616430176280097250354566576772866513626304656971143367530300516708697126150289525710995150170561701797457955800001498028447401667581355126101139392844340122974901742186055732007759012675988387651768559123613598520622544743137353432129070228279849565972493273593226926557608893346710724453137121700093834926387978769752541953492276829423195683747575260337153048882933414795637340986436750495146367717123899808211381140256409038573673850945823319754819744813930857973625710210381219089491479299555378581372543219738686247260665405391008060308327402146951578712859401389095325461338914061930629652675355599780655302675566396725663690250515855751807510530645280071564407991233131990233358763030492254478293815434263011133364261456203333049048924353206051722062307613712233472318771035658831342553180172657277839738004989923331255095201011066597323534602155444199546939154630244071469687268554431875133637895795223622946428623392217468307726843353055754107758726789408707135360005036128614850610854870086880177874476648456854194245185829481691229037960993465904214790209668139495412057379167535471125347125651946369304425671037875115431962013762225754939331206539899462515254827997027538570827916317917560784450653105032068140739657653073235343439501266059515074582588475863074967360143328263549424792515447797396918844296910241144081622354806230616746969253696623990887016625309075902459837938725604232735997110514465181002827656795728356114498802991048161489189843373668395317935882402727089041395277089179924675292334270484322664729875060627072856911178551606421812515042027408385440015936297770186405184990663539752962587401054088083390835014860435708103209591393857238447908705061094676202112314420061389056629006408777495429456099547431787163597893964895581368131624576983311486234917333699025187999141273632788880960156001529255516638699101502952558493136374645026178090630498988926254224383071670797776839483872565517389905730584852887053529565080929229742362577145449603180902659283620081564229003945135418147671328206654728462710305918415209118159219819613343759544312283659422543347309148908687316617401754974791790322075970944408859834685467986633126514294322403219625128033214735188685735613841034176790322652971722852395715586133968931301446684595070462890324979942045817647406647695524419873827648314704693192097549302263792316258529575129045962997191152187464552575769912393793877106823041193307159295861121336784630853376715067521925218047517751594414082593822068776310748068945665781414095126317162051316779000167750927620098961426928023798258692816427385163259620732765117501981492862246736433622349268844071756133420930265526713540796984529715457822363963714330709367690405129543536150302137928819424780863817306704342615240837538520882952335080642606040309146747144560515917431482073932346093302526956875341701596740569293513878668324959227448994617148349405315397016998291099259252424237363474980489110190616824951203590983121649683574317854927717760356836203434662178371854465256188536625022765975181784871782658290472254251287026415023077882799305497976257572424970166222283923102802461037279833863078321451185262546222181418990990684854458638459951672273537026164769956604305565026066806603517843176219300119742049259084176330324339617181211341545640293374471240507061155251287284433314160241964457860590979793599802196698472485929249877503279498425425404430154883099133906022657419253162241262501082964663119607299266439660813584004435528500578959503914441830163366028477162688835056582407903429348024866054014182061093085012243691999239224401132508657435766319898479623045536283473992197612196400223207666147538950255408082656327085542402214904680613589715235445135968992531984230643038522420366552183934527787693399473436646896363202643844483974311586952098209888272255334987298100089989152893971433545580758681545806405781569673197597663972674134566261789355526901109047554982032747148135412251742059600817403282231119237128984060297237380318529113653201752469603334806982738888567684713794444110766544851806683143013832935971843844162394616399341509398564798266482613609198124316015860981367222968682843764336495297331006088403967343890211432855066150163153936189237336833926329460688437107310798137530208564403866971189611951759250454787669141724306134982797218010050870237441122920603568382853400236801582821268318253907364675960048780112711161095931307599316692352840685636794529538117114892478205640030885769170757828081446630429585808850876108918078348309359514017843152315783076881927908238115735329363886243202477473602939537852503223136309641259488843066904739399908472152645939489987070467563254855402479043083571921016213416460907198674686293934640530197765683082482931228965162668505170102580711690878549370005048466550411923666982714418597222544946065572358079689027594367137239256692839805399603162630214279475649731072409741452356034694908556730470135708210347828520652696249127259206219687989978544915150248797998390521891621433700642927724748610673613040249895297889541218166428679419808284325399171094642673182161360393732128369685073214093576201065477303965726257162651709589473266793778986065523341116024630460344453630949841433660475420642752929100765579290231330856452569571635944541055432059444209038051057524501514736645520871407794033886936596714820505824147143130176151672972111934550879243168890814774315185635133705945487789218509261375179392932044849274499730091582870232311633905737429809757678456230430945795432710081036210292907026339316811598360157394048704373484552962907168119543527607500481561397392396155134726893829872177322029041140840251043815352629974113875465649697697441870906246701671028713498499728934360731068704940037325763381781359549399669507302220892090435418680527550292909445221820445913277795495643261690169234086203538041014037977243869503857749094229582112793918330725329566926670021701000143287355404099586301546532456846932715641441830207371837062512351069183483793744997368780129971384682052750805269868052656242865395672593102705115689325901643745131288990935256891028508278465503201438887687892504780938502020213922170147175250682386569806023325594009673175700890189185789763090187533741908143530703072981411913014086821710940311772240187727540744549269330546305504868455587897185498465952758233506141582949303525135481411952214193831756327060708092012259563622921492462585079809295808447791663311373283140932348368970811482349953916799133551765456580622911758837073875904860504923436388220501861997026791287429951783125105073501152859015913280703815792306642412479171110602832443554205721945230611893216623210955819292989648533901835339400060248974071762397589543969679483206863204327528187647117565565896796072935191384980745624238229505944378778529584019974532992275994366842777048475087002974517299321133536840497813717687558064854116594116713594458191884226631080093927804839947803938339268082983381287621940013892773127373216648956215192044216657889578120253868233803490261661840032593126709196102625047423001656913530642019466041736560698631851221401141803208570404996444826833089832592791949663435529002982830646631582848557233049293120128339561558674888777835997351646624253045502224786185590560256885410572216221138064807809794279306475445193040312772563016137025453947992774818408163342045324720372674520540226510593618287806929034410601575554141470479663008752332607246690938254776237936798362876511600991458748555330616758092032005132371843523399038004355941049345330766684241035953768531573647436188599203347664120079751906241642110251414258891023770636899806486352809743770832653513509868269865455278723054215413810009608686097186567855517968826438856440825815531588787214084961952916978879917092532320614138530651767320272620829851483347268958740114201316904415276321375085023677125176982538023934752671275186369250215971895189850488367491445539010621772840031927233788406959052922060845437787751734303335625469194288394790503089706763540165350465314695537668349143049201662560507422491824408672273997305041718536861611610393170641047338281886397737767124617494915584812345321913917166250018813586627797636139818309286750623010515136364274247447922875286751324737670217489894573421678920059511998250499267575931427691282694577291614411001796280892772870680489766088461320201342339087181815673530984834623627087967786931133670532266307892428296797880411436716417066676792948947653505636220469453926508949473074730889933199861585672327616175247895168701413347520079634782910886708930734574763730146673951721670402313049230388404667639028733085081171213726762237613489701246245006493638224445551452415813522646236360060618706514918308227299625700079680084291197888681752934712379503260969456827872962757988980777892018661571287071007143805100718653376620502334628378793820428874595641041632199054752036377795621218813383256246692665523556605065490693678212309078167345935410701083866378009094170071841318350997264504810694015475408577201593407903534896108716863819950258878142962038234367880194675656880213727522921251576292003402567744583376929354964552446339841060349792641998989638491114853651714770833880914598004156190466882621297786054715886512357684504433868572186817800768945607208845653837389074788385181651985809136855559694616020580377603793982862539267405797608307495017766631905427902013304417064554890850122994463108957007206281196038154812819045534117208481166546942880331803654225782864284114281471091223468704258073400093738373434992096011720788798691567906604379917128747708765054361114372527379517446357942669417106013665526314087969204573100496411837301732941730873762544602368121620645108458116641321063908421006354341463675036694544838499349177199349441260053005174081559987886365954750144580991474252103906048947984597371242641018755003326387357001968542815856882945566915339942560209563456610134395595383709056458220181337735041112972826433840876621512728092381875850733061403247089509438751165081996596653534140106597036645093935865056589093348104292239787630339796646633064134597615683848946895672287609804510131802355288118616404567827629219062798478379243843556985484331071850111539193693637257327364617327415200582935017396493813554348780735424857156018733659619671015229789349339634692963478398939334084886499807171339492307117389108243861539227248084338101798126310022232115997237486125415512459981775122821276724596138199022548531133537237915936657642595165491645399895197723387517798654809443830475700128456310146713638558155699168865583137139941039436555517630171640074249286480401696559881728860473701716950087677147909634762763439827007808838283495916047789600144597296600180532083458494380326721677918631449383523574678449661366863359064119896621106422914030591154458084040682177176373380985260718583353968869635963006458221929199172523840874660399550961452737029896115312457662427031088839106971169389886622770557319412949730901542263721531535869586053063156340274071778614378017248951473777119871626499232981448580608928555907436410993159249243452229483940509790558402021955242100328905604577412887703733716449324476585749697927820034848524907459871842935875995592512968062291540871080881154019182243416460540519221046112726967505921126805045361850054415051852434580989307193577120020505548568598322771082967211164459067597099974975770183802312114487829124624175414422282385968223138574613247670022153659193128237234815494504830977216760572490788203707996241700080735102829584749372516086756723689655501924724397229479418321285732840241614123370810321164479021696698063299714885517888689644151820922046438372048996466788387210984607259096404154549078280650015604736780424378846295467993174828803578995431441031437404740998736054600086890003346546693282167948164576056959410777477976818019311755717793110229596208804241936526371627226642710421194681913095342754999782823077271981365498324141810510769877422695618643448398306555477787282048515581614667423947491066264144872916481621070264798978728527632467666857809340779769705874861371436602090973634253544694558640348880261240923444470473618501416460506143651872398182072703957556128665227244934087133991128029522532426534495386273068589313364885586609213562287320750364171607798864464918083663088610548575099552541046446422464105391069961119140558006318122040511041745428068974388714912821267438052309277516283652828962858258385160512776483680711707367887101665190679177924904990302316605536139754976210596798124372236719537197285096196476043267885008879866421609766119973778581780253840725627839742389237883411489637649115795321067637466142705664905682667325940785455555659867603433528560855848380111259374831155035090477452512395468698892232520535439662892033263393500787789637647248862563238939241987255087421087321779334477059783204961825116363931110028369293518984694963795237373522605176580578436846766636650560177309181248158866290160767414050692493358855646801737171925345848479217567875826866376868093810781063126165630051550663502021916041619411133028769290494094373977469695271715448969937404346975189807144496201442300871557413599302886728943276985591598299095434835388487633875961048542991835292023982315220771130682413158037665764753252577940984992983695788872469213789737394874334711302302400011409710289671469254489940109409507682696701818319130823229636650192017086605098639743104657363550839033698319787231322830217241141588936356227186829162450829151853506327503264954387424260247497968058791522978855597510463756805829255857822319443208309175661191976279028604745020357442152512191902520634353662388327138391048054287993426026312011924745668496631258986963195484512603581933675149159255235083778528551946170460755493574522241745253937135076813206852281867547692625295613675421818563632862909121765862444950724554496996182071665927789453422184383114822268815035103447035617816770008573382419058747874665378386583903780196438532759432530877115782664695993107217184372733406239008897092988470402770402132042217968922638685027268111207680071805224584240897502078141367405969015698571930536368647113613039632439201412063499069075553503549340291977119327469500250245882942009438509906791381368127966651121567125859441801771301799065165345906803143317051814546284997723827768322944533947371001006394037664720236217613181243936018642094613645647405514027858811612322063603581751152097143164638418635395733517272875105815428844804577379700441802599706713922058072427251169240481268849936720833343214921653290594081816833472061592955235010270157952113146915051635462910335526533528930559262670723354942366856482853278339572656464153812874711373124280153608061161744416343914999556114070754380168215039215938289523408131161540471522107012337010306018822748486385082721194087982497678006136863301440536044888884565656174782487202177628584171179038929661834982204829296318284871329435007498380826573660731050055083702973107970776737151787631290125018115755934396593295081146552154811597239051154658992824714978912515177404601784939715575454840770670138876098287658619114836212915381066965705952539025972716399384820668955218478139309688018848453957072515934612821188889011482469570279374366035911598552337367790472175729794691416199299390219835083646613674674096125734024103736167520617731893913438761629808264908564389509955076957850230604189399292916118246531206155912099833906598238992387570869793790990670343062863403950977649646531795391015368928943852082458600916105131249608695355639750348493854400250018807777483901226723697675787533449311075294354439967238113792195191614097138828008805124100419166801555611688635662031154894258817031262589118249028169245632468286122413817433638497112988937199873242581574551858357165049468104510411573767954711513497733228046939296566718218675041886032118700489108644840399310385681130823533397806573847639356866121058057283056775869121494912216659209153113224721162304306100294497515596201466092867126184988553113633878404178056838445367443425540836516502956423993493376974620126280765721241593242224812826983307264771046307938608494773090635240637695156824319382027414807624043510519427184273103778098794300507491083177367912613705519734829051829019576836086114763651380820087849751758222652752209800540331282247978383093091157117704784164352427084976534878572084826683163333341513004291632659027668360673783093026161124204559606072617091199013147842448787097044252320839618817991945574205197108594323148081578367899153414739794078612296373545105363010702982138013979652998627397966495731623743400472737202384460144650079984313699550372621681520955064124300945109569002459459636170835084621865872376919050705949076112789385452357133595433599925165250445362230858089831749334072434077485904967233974471401951913051371352011040287983045874548628447268927972910010327156257772388127036078014553678662636005018809778581091841670897839649104496504684739473605582978213217316385799731864242957357812138559508944185790013028533007874458683138765171098114346490711331629215896611094636392208175576912059322330111295402232178143465600228495237820795674863608832805413022821286000093698428974341899505677233628749287323173534113670327270828974254199587498817326183173881852609141098850000678580980483453758324395087702451841050443623470137684329562410775846685821444593056787747157512381856116184100221318120854711833691335485831511968676596476493552086062166542480501069627123601935743462148978617781764588951756109919042265523754042598461865943960785689317641020945339967863921931830335991802981330095672387136376882490444446600619018766306583983064722763041429954436547593453755879870530009350989107227529899349480419477289948049279224247065596971571043501876372587698698655803763422482954368371482137125037111440973809982376424709043026717918094909034383222438128384061028743149809899643144113683060083705875712944524494660805401533873709835892230580157213010587334183990923967599346960728205608781723373959000032415344291560217148784493272762717787071908297226657696642937045206541513338665467851047120576962309046651895216253704059621660060935101959966816060226974923528690862760904349594662993405161193937636292758980756092971805039547799519149779162315726147921240973513326583001871529791870892945019658635176624738645695490690965986570403905912619463582614373043276045821739063755296472634772819774251662177838427510770630902280804320263151513546999270764931856859452619031481264194106729996697777515281734819008889877644937130316997616038466861476580839340049774968845449671915813035965659198532916311114976257132016315167177271649648342477717302012659078737532525227693055820917692599950745150835862526049499925473904534302359540390838332743897382263042473011828378047356468992018449049208131395942446192687838573073063121031734553774558919512264702871555391144863161926739188640540826961576874853572488144785315999962578541312338219754216416243746459872390100785150781293681357448792099664353334235323576990219286526827333907486579804973761191346412930023373313416755417202305333739330616884912144428625310446396857603106785045844932502601546850494436353250602840374669666134305800749537834884962389916370190810940051034748453324784307599180126921104725409228464534865289521881684881022641936679812022943207620221277422696080584724057505977250250234602424967920377805073252971612289542797306805164793122069985631803700708249300577908256898299384475438448875208745144313615452907231582445177196199552299644046319425315406072674183499716915773728363827511153855811476268487067339687874199299286861561819110761409152232611347556990271923923331696911846613644273003824170464600994957921956269699821494389400257774261476510074159677326811128828650739173205452441040846854969421942583408517412937584616908939397490326824227857045523392729213088333197877941744156001097345044643527224291073930206921119225407365255859772229209896275710213931106490318925267071931048407387524409666863988795511959618702165794996503038689094108067782627764666483506706912952411584937452074520569365395362374846576385440265012917836497563297514834699444042222501051377483600060192280214578799848697499425737941569803703593514881184240269574592943910611115264394726173890409931307283058882068981691600459083519534702164650835469916844097623579965507327721285625383305516990874865394638809261150270454121330283925006769212615283981607150373684572875924233967116464915280060133183418550634467114782727392022590095732376538041173559068612353267315428775395222087918561372686754969529079116644213125081927475181834702455852461972228371510208486413249809570857237364489334743399965659712746965695215463857710212292614311940863741188159723847889966146353281387626615508174899509196931060724466549462071591053581851287452527307137880895733013028652274323644636647445748708726739872672579595253624661147418750362976241339806084342130280362187277889724385426312409614333683357265076030788587851584544765651360850170363558644492824674382975220419058036376301806025087672695211822465065856169630965365420452004342492135249745980465255545826318387745334342106505083096522394840794500902443890364799697801578540490271465353869814669674500453903552108340639332214360794072395884616438289226618319339932684473120735528749816101191764427561393709790120396535444787730414925700290073701922990065993751101497985432264890468091781059425161046523862228099015883754436370430786467207393258918730379658281178418214677514062329304708496301872945349990439627444576199951488614557450659351033666292332530384547406553775961979749855296663538704257213885088401882119763757092026936198909254412660661574986870750924098246631511225643438342551575586634035576041204215703565908560122600916974627397796325164870934658053020809798237405226656210239822007216905994238146584155398988090259597662715031610629421208664186968862084288034162824885308580614176820078275769769904778992981929213848885830734156657997548318886373186546743154761948826898960236599522255131249757964880841439833282838562590896847749135511944997831413550802097966288256056904451392641550144190985535323348530598646007979343605522583209311455815317273033139526688724449737788595416001247498115397804396995179858538160258757851667334962101360905193835915326897189417103606152160300707740397578916107219354502655459671933657835029055201994786660273511620807137562098932016186714184903557802722466392889942649353740678061066429053869290242795757460340506725130743421565928975133326242607529993125901987253107751392824330901494306443072210814975601213704964697137645567430356989458843367598726656330109832648723657850420245925770050550075208563040789543068289064554041711762292737653294543890600494179722800498950941915121655074122964327362992227964025147744226782422498198668282835189770195106391243882479348751435870828106307611064839113608931017282586197620108710882829662486216844677962473372762560783519658101220828527073005876480558631282145088765665526136895427637932374546116123010811745542769941759756231892462129154348850663560432824010274042854574628122236370760774720143907434783836659377768616774996173515128103205644734952383901272812855183066506119622375602504550727986750653933385991654125361589130961472818673173727446471378743260331027570275598530668149459209784693107325974359206546354507168467342055283863190148397512994059331173178908578523819601045714630355854265711242616233561230369022784660430073999114872245000767395459557733845253008020358836380551902261501237880815496744519368663471373789218545731539154994213725189999799876743208789019631120371946006237306111495657674739803265398155813988902127482791963466972809022917673039479639462387507791426807154708653770964522731813820110527379664342062715285606835757992542821494557201404721244435196003391950312612078364429787274456126558661055537143949069931106371706648668909528148969333978935545938974304869634040056655395320283495418005647834003134273461800727937369136109784854659623839568976778384480454055348886991408703379710707837216180990756784702481003166466857477720179370203417038859599986896120265651032350761861335883330245163523511334105515589714722094897272933597399135575882155795896237320518317501481478159518984347619530664997098246184275267209789879050857115852947893579781097394723971675222620049362140486459390697531247307036786588978724792859167338632946379600128613575108278573379613548525211360208428167453603902197570853430336785098960428171853916072120274242521978735872230771073054067925129660077330128170503892006190494922877333847468554962458539972897484716759621858534956370755580386993239703885489853950714499307667693347759362648907497522509375778664762824156935141069413911812048407967092559724035748158367646108921874760494000288857249822420178235675909924679129083249937867943248086054784006847330861085912789582953026151539828507283375658083215310785455392947242923998871923634789218040583790128800784985307970719199809950882478187420817362397715034778822016608548746722143782331147933813346274702996411311174020518850690765218955099726752621241458770396867669458546879781989348760449565622665829693937775009605167191404100492313386751479744681253033985066908340725686372853270999885873482494362665730474272532466742164940248172441190921684621466529700633788389931158333190253508469454391562333707612190858869742980225718592037026014830763571208314175489135145731212961880196862718655890379260953823387286255538931558864531990816838712712709415082669546926309534416178828052881333729808056210209700375863788016995628579045129117445532743025029792885342871806014989355645461140006557599490161774935857850419869563220759798452253014126694669323674744934187477513618499957892670835560278421148156069160451829589735030298133606973156984423763869929955259389352655692412254139732594971041054651742400828121318109263464587341143519945850727781569701349086123240673369267343733984797006798955839929348712339462323405743095665004555975110595266495930157235155861486274536317635078864212125708684261446186388289876015568778352664599985746614935479923826783061743446567552750834707466767392396319116021290068871719584252840524405338629362537518221573670611832148428099004640500645360281245748016160885677200113622320295364723248217200351222248910129398979231675729103710086652275212803151291185521745096024557371055092015504386765603690677030943448950689353388912804974083379381508835683829583781769961347213821530438831878440632745816214081078879597223810021006846401423549045525988473100496168419904338380707381774615120105547768074295916983775792209274776672712637854382816637085945413365314323557247678559393730152729070040387523829004150829082550198432531929071766447190076882766565155403013852598147704728347076179635024209842781378969141451633973877012208327102695944571473605686004872411776857359892293510114922320195373981867992551531298758223568815596042475507985843578008701987537266798226868275959635255978243532102406490919400488089025404946903545498376823743441299855112060500340480872513269684324450655499533540263213793661958386173645435330522097097338077949438621357438523325352838412372721915478251739152232809680626326103001418692954944010216992938653742268400098965175786371163059382761668355474492382760870318689235102864967341102735327190073585479814215859674850236048125544523832942465704099695279537853463836557746280366963514465459294805609568300702769711235853110596759151379056308218113761800844604622383563951288496501211108620352702810823676733361403718126426856120968300748212376915700082975937333718920535474211718366440014051448871787062427107392797396233424432496863404833873076557792118691801507972632368699446144300779268662399582414607999546548746926296756760400578797693469811102163297305851768048258709233815561468327097953220830670563483410509742224876585735284980007330419466194626028300704294903936334607377987563719827021416846454776840732981572157220887297408583919903281474332350308084792537289165630379451726380968521711634507455612626370959953916051090118078011365970340466195819079782009648473912895605974132519196760459124693529363998091679776703953022099878218034260589732790780201561095307621139927132758872755664152690098807673365177149717698077946280992792373508554637348220651789886578951161520119449696045944999366541816134497525861805654632940084487034435622806756309772218618907854598879526169140483442403740034961338024466018063357333979832269087326998159824744813019628869070914114550794268472743195154805168353789563392766785252987342386080480626689100523347568245054490639593627113403569082531097719786515454693823182415517812626166750130200561750634700331253938936338431092379623840293117772560939810842404840216927095908924086479336410459179394126962365925807457901017087928180096706077316622200419596941972581421033635455762606357385859578586459812280234770053336227240389411120464544859224764989430485786695818618366419773696443635387019495579752339969895471518276701268408796077452053754378805862320592926590470861401036295227226463487892907777873028506299915138225302331092036905329633136005775734088341720838191940786132527613636530362222610288572139049670471290247884975055398039657537507283659611016381604036914459601364617413703784953587849638955260716698122735554145016616552785211158868519916995850157650930274306327208011570582403774344320845903462155477468014898847501494644699726559788466108590318899791598115872219630033932655646127390373413610685885026008450056909441659679287128247655269092409140640809170809491205911635043884661437081261901900338358690548743222446636671582609749093413870082944727755268913005952879339716008611867466186023475046975700273868530478030151791909657929690171239551666056151118457918145956086500647005534563469761707292283832892008508796996482912682783826270026111787479665237398728427531725567435387973873891365325289460230496976327534945667013523692515249158966101926728489815945840688643416470154867038452387404355304523547535581572710180244301871566960571299884975117645482287123332206618814389216919622531364109952341909738847863481337567967610263778905161957341405247013063700954824386561938764853608616421012746273611624613496784309554508039501395249414448809408804367622209131618906699059148751664011744975028841814580692046000847392585444434060620452851925479215494530472756638547709167048737721093369682770360244038099641425264893527044355276322113892238192736096106588557473233719650660671198375975584761166670928024453569207601456925641182121755896618581388761764051853129624960741967425567508506580676672563117957461282210283648542756408357678224417295848713547531151840421329417286996265205088284756166283907795376504585516192416846937588784962003771790746869021004125240244330255597033882267257022557961428295120293359062061218291781706869605963920271885297853191157640719738092392884684521005994062394239270187634829825460142463371093499446140472922525585567351612656641963003072586257426310014691306787126577278667316010710195095671994084938354381207857269360221873569640201733150020907301953436269780170103548020146475993365632728270464706393030234069893052626522834240201662408664026443908532828174628014813129921908403081282789973782268488670915260480171516995652809999748239369908892119542515032935143158460560821922503373461136265972752622849647179197070022234454468577708325389808773216986692098467818389044547461802637614080345177739492227324517373335251115366738990207757160783280991880395887307865231801161011713435952642295433392706718101387112373749729491628065306986769486240145582285178035940997445928278982484088879251251524876046625597794381083983118552693375947143536171532689742773061867510250371085243390654794840523034444302362982322300692519393792967246470283416140260059245888947553677081574015035188868331002323953289898478156413088054245477770473717404576138351260921662707615659002226525117646029975370897161191144243569104205579761362236027407014392846316705727377436628830595822143206301062855145947683710849591589702580794386742869860906091612673504234932693183775396214028877169821881726262979908519643417282232197384701196769488732654731436372602736985624810192780115871904725459717894161768003961678499104988596610162586596040146081089981052044557323004944815903782706576329897078542413724478027602232426056418311730666578535161656959416918512839345647780455548451958942125130235337316280011774278678069454409291334954782783131739925889646561532343297269470194668698789451104539121465925127327191310690432548800916449892370980002041769012198760508588601649666827680825747658737295201860137398865119134394076550668749249918839330321707159131647312718123267974103201040567289277235547753252951266521809971840351840783071486990834424552719125024690176786620141232322944592857426912691632957433857751323560846003052947379987659612494507938275503786041975665265052616406308993935488606699219886361383629968314830222182197554172809521780748960989918806565310965303247521838978528810360079862356616834988738337902819615059661860215699145294737154604952257834385803876006985017878053773955785421182202267973382423657295074291971077064908754351458953585233081221082781059513258871562168585823993396363438889701823531565576667421115351347827680895886813144678721865957337840731468269160841818584706483545927996624000081439452062291598801192674384092735412527474695840658086909388715300037313447260415743232831488470379314909644416375250031910001763532544101295118236696867148839578415536608254229020226925602170565073615928758404215183253650866129079820709742478379462781313272400375203860388090442199561800573803750299758345111760773040798589321756205491426885353549002993870042111802062615626211595764705127876610936511069395764497797621523871715106109779031133899689258277998997550746938796449431085070311276715196322946586844404500256517562695768326378541370008600948526341597560709936794223994697037702342600941243388733247465619665977878956686081089956734328797519230672569735473627143207262826263086951704201701139916937909596469540944349382574686525144753681446481238103190002220890027431444159160247164937883435284946235314301841126509522559114322704062814964299385618071663301716344856204425382648060136085837503290472315757072986726848330530745129580499817441896202605187634362151523231491290084220137493093560669662984871729741935077539571652354978884356210254542113956665532228790963072105227604768608734766113231999195175414244344348720935114666939918904121748752460047536493787455408630329084381920042669979664491423811167091286590334710408057429577868059671607564906957423389777322649317905192065893180448474480477639174539813141106446861356698295075685744237826221800503956563840257464659484956081304972389588846621785982698167434547912852187366425428218854930446487492944530782326675790241741491050991170126365710851560218134694516992966279632820021309483971301249062379066767471255045164391082655191044617894671271836710728131007445006979968439262957344055964084300771515047128404534199529110016914525374946434804520882749630455499403939390285565864034408696314528593062949917716247053053165135350163119222412625512645435133718917888496122698801066617346858692290729975841736257318869118416326839237518799771655957743386329295686648055594270836900227291475082080349981731878667502174728613130939158005363251062839600953013063467328942839763310540941919298420033639310124919448515920449114806203670308291360452056613559960217984859016343547683080703034037913267280250726023838189998168037155883990155951384341909885662927462302726371364301831077795122358976632925180824985212035950963652765758252949673037824317064713929277180175801654218404788925905412134778130123366570202693124079009800979599680994003208950725948660432996583492956354775889450205193635305044528204475263097383637141248573119857678375896344119967870928996450932450225204625306584175943699457466405648320678143223654354589961854888583435879075925851751687763899297790274099211201097830143463611897354309246404043618409294475616308059263758018526713289747664427455165557558186806867067665533862671424934739677531446478463600150140914097519758708179122415258243998667786242790329752417086178287380277400684103910361555710148030391591773897964437301666842091713419181514299336980129550472782073972782183756968403673709629327150350245322984551839089072598121566258596681709760851083677885770093484172162414124736757456293903194775858573770214882771220513527123530854110312523912480554809412150920584028384490803387540846348150222854808473031960423680487556169485379138156576409977252032074582476559347497321700617310288306631875747413973432228228224443078788972210045535773955243466520563089179136526530860744469464883892410402245399980423707014916360495536519397276123598107672163055124313095977188249224916063540935901404819815743892214113127456488325786810097816910090521580010824144784052317354207067028450736761816870294935856852294926301266867786533225315951604550081510982768695410367925151482144920214542900376724543126745300976936576326593588169589690293087775530789734848918214674470443455954963103023212419290248251021814538646173723098663590291217873355984688256256312403690320453018748062332770936107180068933664763058062144382267897921226004769656921210344947802616260346785408752586277752221263044980743437250294903320520747173083543522201090367171985222628633649540612025183227938887468490711461272141321897171127518070482174070739018147819584079460679376273022782279581518670181868998644139424006258061607746901920684298209668442040283523235393842429693886535572583028537873031444497404125736635730456259008034746345644082627681940749601572248929053500104095612900066715647053475963023874441995074181257286167322941869453185123611804057996644652535955953946073061388247711902761802914652971057807979203488960583201054630257822496817752052193479938922397817747598646379744230465224340234895907355293787498242020930561467894025562094692905518784833510502372493556226773402944736347639198158848820804280212096270566429840940750256846436154438989924903389362328190321698322034158099362691116676610247944089792944199878015381033738283665648227793137095849533950572524748856429232336594731343411274427808688805691767848987053470688201767064845622592566395628078544438502221352329721152029987198918384919965953986538290560540657272408654767400772684538630915742878988263192268101128145019501283124665189700574764949367518911360406510400189570384713394028950596623475133593831922018403101496680038649083280912203213788885081958429041683754052810242367803527268878464087442913347209801752127139430695163472783694377372799003583143206193368256009562716294905267271484642495848081150007205682828322405998929854347061330016425833474067640335412214742091452351513863387767311147958596678436984491565324406652211909984946811523622591448499259753606548724840633114433529704119230615020255867417592321559915627511695249627374049400293108085873302821580817815431200832854428892630311723926780242924080594581292918051792576462418960154133481829202105147717058340888639254810744118791934864972853293831475701177555261232184895345046711258987573082334494148274305669044226482444875139900255572205666956679727738667270554342966281273733811945196351467512034092642373712322998535411344610323818455986328200953329637915914635188010665587174257431212829705132926052374052354009913285382512156899771207086314019516534812036390021488066701111785260205396459311696590125230594866048761072496024417352156478393977443848510323415968110089203314593028199480743994087381946289842464204341560642796027300694639051426700336286724054359520602012623383523785369541507718074907985242363781114900693153019331867649704916110052606664954182282046825729834565103674732590719155492814125660715818749054439938361255382125275567686773719215042032792091967550676608134313880912923213072599723628058782742090880297872674343540498431001105216960982673599673324974200518664106979381720255658154991975059522268273271171473184264930758635247482157969511561998234647952574135242674396720505089031351269744556568904234372203366936078652245198477971618762313548130877983722790459638044847992890128078413660351691640706960434094104128860724502557961703066114594714704913602083439448607020785557201996644260607646070541744024549936934354966987111630381277744707493367902537919224368929894178043718302348048125092740878078582627040008677273880169888203971029012181043315818376703006696119157758986527718790408869621984349348924604200532406143069790075721939693074092231454133029132326771701971372787641002426779529809259023657071622858800918828479544019586634481925583175410988695719393337720929529393370070614541244372231625590331280924612047280968115993381057657341863344555133375450141406599074365275688843571706665498936942730101032334723377809360867766347985166544583438943448087001783340535666552686940630359305277895235036494049164481244667820100965684194179733691689082423967371191291839095711260804968196966449976615076953744345212706159721730869527291449117120841619312031385482770911811629305127528791268665255034317237592281313785170916330107827652929255022858444048373675025581714647391925981744940446221336591319328015303379878619444255382863194882733146084768367858919016215655935661208114853294329048776800922430266024240594428484583447146725810623424214011670256409247080988114380753138933446738210666479273362363376493249358607639113756965040386647856711008530157361115487165508683014141421453705812650958592703872557382679487081846093818360588948301566313674990727279535474791848134668871435198819657860953463803981974690092115947200877342489564471159335618002379092105505504313253906523237107348269426518483671912252476969316296737939080135282099185713477577571969079886197452571687612599484787059314075933102851573780960429188106161844780648182956450102102239002052079213035265519868289265184803106783979809202940858750598479972281619687325166810786178731088311712670498883168923338372680517537416168041067212337968053918562213300202843319869890649880021125449249460251895254366702484046680076248345135336734040129825937245300513596785632864185277750983676242334536860281981464186032021292010967592357297908834989380629696247276621873303836958678503331582949027089460085139809965873702406028367313828908567638999393428496190621275962600083451946738384540329543177508382718707174609187112123058997397592492669941647149977858331339055546101590902026496648379347088663737065317709177950241175289202978966489004216047953118943440158355612883604816499935517070500842058433855672380787709629931222679060052864181080839545514978807588730970087591454648802884514348170069046472748583651005072363548771838372216123873146364276221177722795578881632948202414440946063712417937163354162719444935727343073288245333616550836802340818279038115514830794278130094182690984979385061684270986456461210648369613641472328198265414066499561926958861819243241806893758219137703310008648920886173420076095926591330149496278077625597666013249070401986472813178544344400506303439517183349822908061698041337915057143568511454303555909849502400060359325000022668997322771058201777832809996881694864012911534213678430067439047524402662971322706292597205097214875510762305308758987362939094356614482987652815213334423581561295008142672308077274260354912331525353095102423393381713640523808103403202924989304871867690972539193000186029064308467745567274124871125952610144178957615163093940803950420411213001437891985266783159877048680090807600032632230336024086208294669500311677142121259773584402486988163403722243647270029209197716155323284000515166959370308967842478852253764033509222493873259049500738533490772446343453350239097140412258420419895570660140826996876476404393037899625868494140855764848880681352360473449802611803842035934249180596952486306556328854761401421491454654574252105581388898078747639113212777732638945289175345233261485618795174963240652047203055601483706091108337243645659370080601573578905026073974636205537235569214819921178679396094787882240217202283215896682467933106769852900315609890694408526937848568211850137990343184424916023394819922619684625360800129918223890305649444191083358628073283329423324727478539247085464375559428923768310889756659577444133709206291782672705876067190950772163547007221547008957426136033902743989699613780747433018823025221208879637320505283937944201307710553506775574769974641259060765053051973080460897571897803668713021081443452397078019452377316094496388741010063981994729444809919474779340834980844819217532412077960081090326856429945145974675965696783841089798961601196224821460437334825810825185355081139023989705085151702956921576757059592042786393105465045634289604919439518212166542865162679380547571679462439354945193907206760803615542332775524011525860316480108584746109024681070370897741989508093698156333040218323450864966923937403543509353357053315262866790939981298459629702774714918882124265793469489864370498784968573841719409354972733815413876349351192603271157149281098625872179540050242071601393544547329724179652621334222891221979353988491766982911797064994808243041284173773437522291067955264936719637950205294858659443179766968209236750385975879634064886566497653091480695850720811822953048827328352151515265377977051430188235025922224979914114280751536146413216747649189665961428483010907330439634420356270994134323654260201917235294329669302539198632871207998965010132483892502770920709317004491442943703861490438366388770586658412241585299570852013283858662010522266284825109368898911175050994948718640222554275862587569768849177896660880124476124004924168608785525475909841539369860503748719018364147300326806758865230643723084953680357124400240770996122625728887113103226963579846225573864499826289771316383552477720954551111333957859641104407695276578815537505836789656496750432385994117105507987553512328504133446511031623599932956794847678054118724360642421940015774817391055656431418714566785229526651879889178312326991558783329429683972376027852321739663097461060508385289597772335173414609889697429209022176756211990105857038836847223842300011408239477080358081842679808020652976468133767255767975604847715970090175846551121950577151148362456794166832377787494386089738190919143749189622835295153232775912327925368433863667324874143692917006941662390300001782615113563073509685867614306095462243358222240391293785859395042072606636527186988975708782812775220411784481435349018968013683487977729312923543659410664749328236373798663425481391569173803911354750406447588432656322792669462047018786988034177509108589341274894445955208032074800079013564761027799059328881508736786860154081897612350912175078074938835283953507364611750059052536780089212177181160119579694447369091953857042882328869395719687055429647892353658169700103796175755804823634040861429223734130754478499774045177484866264597401678217236682553655585078861245707900519018954772649967426269328847441899095752176853034758811504440078064804785123291795186632733336938537882812386508083648952283572359836856592285197510645220972499454726902852108837257317802347574162368746774978436109018877457301149678929192179661464893501336966139701824667670165316358898480894754371247242624082871882175299692333348956599454899611630898752770965822153056235438918693654227969350914495743382990668944051206550841187335563730247969643879396308904655241824974221587269108543078604301323740436331481810218273250714474005955875815630607667243454543835796092881990457924256212490825392451803394164587804533703909467226165644194049385920987284779576337888427025120075728687352698108816640313883006375437868661279807505584728424754850715305825011301207930617885689604004134569409310117735613915145943826641695274726455440810173724332258691007199927044945000614248145938720662431045878747294264500753742017552042467712925662691089646665249391916747269616406663441216584567896436184636389541309377739771020753415894578822291753984574150969756905703182816629886786458441725627288864847567032822541531205340863030986399746145224951263121865101634531873809134807584525150189406545681087325869664308686833964451449225591337567403549780938484721022874630641524745326001090173452140446365708006902992502660333288154993278178557467246996938961382175007915494051639375574068890384587512843384862482349923029104936218492771389565091144499028132059452850627363120049099482556646840631025005356658843741092961011466464537518844357731437381347697510966528115115547502004668390343900774326375614297622412623728222243480634689165045104565874326957761667531094183256862272591902121832865796599752806018498992165038775985180793087468515786562556552111003162784220104055592907002445055278412712335412186619304831105916484305821927711945193143246681012796444604693051305689595887554690213486994701517766495232096583259827598176072461716084856834414287629429051047124858439585922330907414939112548811916906558984528128403820091570765076681730344022162636115009307635473387853566073973871572815236631023471005309073720401556653935911221240513600152103350331769570830517044725282861710582099306520501177770237392576470341858904185074534217218482528892458164492403584062514861193696419032293167324165243128252201070499279635480356311646252282420052050849353596537265475600704097741443413133232201531702559196803853735633582857597559581852621854843661447861305761783538826048798054307117249195979969098651799767153501295968288257290041299535589582913692958845217354278522195829991817542706632618329182686613369981377412346082538009836941155254864134125529379407426244951265192294098868736858914382776726808924584194036419586355703749880658234623588995801946727926417561736812353437911160265903034977593075895244730686005029856644867295197498052033363331740846972354438722204299557123712089047408405556488466890300249036163571711468583374212327927071251553120499478640987446437707944524455202805522796962012192465017923796024717420714650750810930128988790189396457471057681223598339784203490933199817032651360611448445098994587766803559723187752139882593251800139076720932331588990715925881815032290753939169642805423148922194631775803086118977000525873568158687634379460552903698282633903895758148989791993194950222765583150895910777582972765001123188949564906926257689694809236776558206117846346722641482799687063285592935190070809411484668421581170106946107402816131961245001018830462602584108063716452108689838823611995045958354993215976588799838518782325432592695423579645407687744126800267593992154183455191508576738657826522059420021041046368898409788031015615597072309845108414378866469233061939454264531175108485672977871965496395008867653238689568074661309914000777253635304578110372951225500103065290039032012759689053796277836882855338666005591131373615768302494205787582723878594518496312987103741466118250243299376828110122588339829732584196620375892477198773744875963218446037513618325351692606869047472385262857024717314669206735115380695847868422039231486944675435977924734001257998884864061904206866021167608955403721620924776930330751111664901801314641857434588842790127147925808519148479290943628975050515146734298434206161716638066187089467162182668837881619344970985121813388421042627310647189587177289087620248940981773527612288249796758713473239166923616420101243144456721604623906196959986712003620384278024612500548443697582857155949130322139051359698034071231741737561671555449752271588216044446020347552374387094389509427403520468307474009379516882662269937604701538533610193920401456529853541691850327600266648706518185445015501883128828196289904392782993009070731108650401339635218447021639990745255138561567175255225510979543457722371567382896926261458367874695539046261341320106718975328570590216186896018532757072407263612560305212085618128996144523162921743102437323779200990124338883326480186496940151660917873031640337875875933245630356363352590489877578472405333824180464413321168499200372911468048560459020766431320108265237650546211996517489788423835884760705114947663556139463314241798657486882607138710427369656684634898956490944233454645366725293365146897946483911083286383796219041617394517579566662129054793338232896947470233779253228683262886726588956783067940157681122454689095537605728611354790477641671011548859137430042773062530028728563082165790843547054655671138760081332065852581428548508810971808071188067832032613434321278409824713201801416364708844070172668772369395761365908281630377595544476960550618222058003108469469414290431865332203940028996651144975222128187956084561072309571717594360099179322123049184778130578534009854637374595741540809829264916237662658164985664150835087804018961254444763066495050093825273377124833224024278405429938996731978564328712250709715685687333629110155035574775819796632569061779439216136846915551344424016526920859507072682403805377563653561140755225753488011075912381485115316936132552998441889609616802480812360684327850156109160997194218464164463699282220436259204658828605720265191025935934122518794607241941478488226113914773553368852199371133894358904606883351781574566539335662273728744965238755520958202771534040334049161213704289197038614391223986176851662951683635928294399220199193433448380861286425804485502343439510534303738439318595426390208986812065165475760775789613867131402724627804275907761439297631362381210797068054135839150248985567613030384309376063002561720761619201659067867798032064532505279774984774142327844848638212895384943367738651803950987044785687863626984017640549729254077850136531316418682503112250947857711678947778699468705031058342672101470721649565985059354389489434084441828914532451073585900790013791305584473816504945952643440361563760137427771721903996367399168676302235017121836109447659549400218959520328135424113405649674246559405168242893230244144683148289347882042456358150783601585635865475172598530096491330473739376116875911059553160915215865868667798429650743427372987936879387612904087482396763421798657194344289977915783810055741660304424223898081970583392415276641852833288941845065555342848225388482071294233352157730138640038737540420853773040524337862287161387646989478513672667037500222624605856813062176197569276760842259111812786928013480808279389571108559602074728381538807720199815040450603166801629733163110961632676922133182064879377310813789088405839512039513021016628386697204835829434257553110537394052546012340978020969854885463651095871453545276944651170388294694985358334967038204095065135956569620302520929175639310334374128359175221657518757364253969842919635795220157288261069150577130169892113261000047606886829494094257914453897216637311422150883287253791234256175308354605130445805785293604680189275122915399255717856035536613646572902275920066629523965629835234964667611151205533466088738029797317787041779527347535024079982956040462635537906344850421984440138245702555138984295508345546099963674476782431575414955116297138855846860238295129476700332540745669694679596678189206919870828306834223318226728149923016065814354482089325005223760675641583086284482087121874715160075519657751908687146668124621456354058658623687519066425643592717221003821679923961302770297527557876143685402016998986732898962972911647142595440428277759892960074153020732069864538601150098036305528417296102067604371613957870559736871387058129927008060069002967235891035526446450080025776798895324529682567321043041804384807120395089829740045968611535123662897769774260204233854567620018445820698128262052509809898535467979864790278143345296390283495325954066105140994251855601384641645867402199558385237223347187866293193458460028364449668796930669640625176327388184238278370537441852712859513379190567384704513004109750768002415288785250750271691295339309255791581249344475832320575207311801897712581840497442951644714182155968654055787150564850070892670285188167043712352311311215110133950668741975830515358891338874940963199171261195284741816484021060282817807626862311583421675115211725936207021070006976516171007711084984727403557695650060178508488297471189578504875561553976832425632938446119750972574808610279541249982718219948731263590121243258354004364851755781074229318142036569281107184165851596129689617335516546682993050595553135905624846250919792076756367851550351916381119979343962320267875197168981071986194262615615479571646351654140879464591292228041845817897861179545507478305249994086874375300523344912058571493616987633716896611871743616202619620709594647028297311338268207135216296395167311116744119880872917964270862940931843351420279325386851555544704983963547777596644661649460327365954798457346837507843674413935511371862370840641640642817317083099192353583524839797878534728721428282127905041601223856704189199438987590200060997388943665236996454217224866877997663531882494580374443631191149899071938415352258280049968166404087767756720596865929957240622814608663700839019114493922930512965546893874067925210162766690854004523492737166836566627297393419282111211376570398785243803440686239346004333279747218911285074337163730763998147671766927951622184570137074281247805918075563475769692678108630784757781605077921464906418406739045991005540602599358795781037124879133378446424985569803552095075704448360731896941853068359315611034334846792856413256539016972506243729332772582502613857426531285881827551340466962965682683263422967739760356406226637791361745176551557568672845240867989269264417464332054188640283315128252990351441554716324542462031104131452249652936791739050426562379873211816024761325425385183628819846175443163461259390941658209691815153595674173189940771513473456115252548442733138296173897536923582629414630842583316127572378687662662959889557750332817780557725503934804001217306796336476367357979480010291220622155292050904629543680484812021529892750126133394063437097006972255175093062726427159754073849984355027198598475312939892066884743528045438295064966915609970487405019172338430843401994861626584953145966819583269582013583713679317031024640983954077452056864861731602357156996986781959319460895138430536246738027443270243759844206911272607941046862905244754943549348762327099051112833057326882637132281101737109592378474052157539258180140827985694732670991090794287450352185352931952049052885975087139889716673814892313772745242144416269035503020871939979229297816661844088411875927522246895310567147788702865240502057362506053833652278641036302275281826231294868760251168373354974451217987561826719473732083970294166746008966154628165269154587178493727917649983159786692370074040893884484062995719419240756184054300707002152023200932005776064478503575433787067716480276182015638441706140284350330143046829858371545378370585578604117062234892407274086857471630703115660444631486503654058008098794094921203828263270537263859208608722452372644230153829142789894316767465996484449382133737891329949663221461424489233811167196012260772740462606607509068708586636178529917553670875547739295069958848557063874734931112192340320979554788441543196626942570987803596361440144898969040232516081389653848813247508875327673214904642675277666063955747053160682629510342601454603540599221390505779551941511084154787126173138090989859226542959911407465055795374452530847644673907864313888118538861661728391845088685932471084975465384593619955753606318619201433057487667293894069493243653378293452337839991425326013310028138764925342779278506772987221467938541057155013269966570070841854982208121329658547303089070133260049185921197711599899255350214383481271211219974665161407242515860478721399763659307311822244024382671867798898387487141355606554293463018808394717190137702195809285815671199182385704005696496723699145236908985157433406112783621770121971240572718294157915419117889174281971128172185588340867094512937085289814036451553433313805092941685087975103863889892001043009519887234630567711873459125242077280167255725490368284219322214327949278082336809403843691472628918834161407513803114658057813712785230129863539836166898169183655587654082963895321671286332528723416190264149277751198834700260189979871364786389016008597174996688185101785464947281658724969170338888346173152087413571545011997539043592454862836958047789783928303531397732305603164866408179456904137371080240020317752163979766254868485915779893899049791251576499776502830259806197967069759593694006836958392361800669782828606766286605717837516867423858562429974867624209547048287117766812611714775057319903384461480112443153151528923322174988649822231155639920028714630787062916784417289717856551441267136128506241844788403384462770818116710876932260311752518504819386319113627964794211456491425006898221059672034557710392386898863668264221315237729864837025909644727292912310762974129680315194416927516464876582161471769478056645847563043112973530448387169652307841410810408138754930383368601459737167943911765349591025121630523117916700646411279191897002724730896522708930399636102215033161036088370781811742583712795159276318713565491998945492728995035854882649298144948360941201464203128256567219587041174540558236828819902486818500303579901556059405603564609912058169666925578328433632671555398624929891568498902032437560921835943740825928359629583165996803509354094140351643954411200049609362392015392018361156001401081683148820180428602240385388451994348161140393803472730733325870788449502101842956434922487005642608498670677876759542082541196432609504575673403144762912187007158610838011213017121471343843213510122399635339598919295852065900621773656976718323389202743369541206369193088534453713786559334438773410938295269636612745953686776654497153799615657935764491718925448364080209938883259690816868695638089075672463239525009958929588113804049681672014738410221162968423418218417184464110375581677336285131266387636950332965163848958985602994668311530280861102404337686278290858362549204323686440370235596534437526839675592409664026220480339277679493519994862807412218486965662921400551461888857690561574293005683558642203031288858731769613768607695825870824934124394763847552482084950896936372745694173036255315637768926763390804028964802004192943734736712001598841994306427979519507063456909376107209406651673727744439797659497775276533392000058438540759583015723959597555184704092526148535932306109002379896894840044872296531769845664015842071502320312404727791338223227751661501456751504722165166383978643473159238973020249109061938112990961848715345412243905178029923221383875556169317711888390820020722474728851046723905072749379160006513050104326295339257191614587990013325492070083080314696331394410103935679771852441703440257671938909536894442707651221962474711974553231022462969083433697753631374406548186400173124749261242745703694845205558597223494112981981551096034361715042251014702079989890486051009396668116460639106095481831172709411140507492936577095406537589577498090778691001770816229460345973979613305831480173553221328383889379957770279881843493002641325304022708760942135032734340752970040181113208820640648071101977827049533803908682228773786274418435228173129841084868270790054799408032626532637465646753296478981813543362137264317366707929709074765798269790192087154498996025676487181599279956631031193470607300730199408797496269759170482927782242939451451521459555485368781491771234133810695885610244355224252346018190990503835283425083311351698762324308727903871152655605836661347554803284954409340205462563665363846553075324687269148359075864842932626638907184808700306429657948971403289571787974355151696299792766078112477982483056325434635160117877595758985682573100815000830029524869720944733040086885962360994413914328454366978612256787388228690370718084565125032909068640750374666844243212100060970683411805463126861146242351913376617219516337506016981758020166312407148984501008031798425216071983990758918352248454183929995669338327325317051159929035237801356004695045019913292856255598490346797433095344766862071138897440522750028307970287145167377382166974513716057129112076232874037539399523157645198903584619404037150758493578472063828350306470794497793175921589282162125013302456541322800369606225346520340123534179175512934703299347004899760447561511521007706587276971923807165750145739035459360031162070370335777540559130036943518168331857914726758376271960365697227835765769535254000118102725289729052548415707668749519706752020832663737521099735372835410456861999836898044012641949864609788910379261215294203829042370900419793689626199992690450849103968865555081735670913704331434862536121340514627838448388459954726976714352651508006540672482791044821038257411532424263582368531048799536418403094809276732448662635626113912647018652373650084104270551746232744188231744156096754339809911781607024436502548413234192131727971284715818735446485808540046126804410832169297296990258560050409010966505729034557177049680365485745199171979011702622086558440459239472849601548992494082791779868450844177388272548047326924318072900979088768965264735790880109347526407517599149695796190607150709657004768607396161217115611350529136831951931041137818146703256104892525055773427146030681477542874874256786730576693756837569853206725277102807493751709813310124561213632778238539435844745772648698255375307836957402143610421709148213817747751696005685789363809630391476343292135405094656149245984475959885806859446694479092424878690929857581657298752448264407227902052802620215132590897876844723323612925223617493491235243536759179232684294579005528768209560730707254197390150815974482818711755794701293413318472256469653750759300080937427859272295670787929221210598969799347062582166501514098010486227049660476393929319460860394617947928948087963065089053977485003881765054028434226730553526818961634747289892486408508043633158943580350145538215846786748176293635075235991891743115164802401312917409468780533877600803751422593490867120322601907431234197650833058412413353809319655507341726484599172264705334020592795829077801033628097665960253999796550383989980038547809403717129482356780883959081703119028635656008797915038124431595340086398442490603256928696108606326923152314916414292788588865757521047749931080887007205082285154644561862302090972961106770242119161811345617386426926744455318794081619636497285559736512126464361646156709471625803869036678509336674032370789793397469003002134849330657984373150595898107802139642266054654787467727007361239385194059888624134381616944778956040698054233778282573222981398011381002842341698430151332282782170694068329564619200074667825705986456761523914418125699919989257758067051936645285016734109125183514565078231779001702476032455601216387646252658152221958487052716902733930380026485625711617362872458007265961370642938101791000256905164843092313812026123666587635271298646941569749349965769354173157330310060898537173448058293079243156147601768488675560376517467612507298177923837568305752786579071018920008607730481723198513335314871222963966517113582427096734949428320507095593220416896147176927304118475789875396077575043334377940103093436433783479893221590167886533145138694151639407420756905629602072112616953219363710107273218978374426771969593918159059666415742873946354232195199731906027782648190822325431986941615763811140322608277527974374126936681430558741527591654860495445995203998001384264932591292560054782737890827412207611082916697052232740425596494702984698303705959202661809285592143458248302213296181385759680997068970455133431242407344395003478858094351627127062246978208109786080694384975871904233784118237400482694190592485088333414547753986744205787505041393411423873478607894819982016309790460637322140167733544624009987538645601893674004486137186937105558618188474266084333604498283386067794004946367833500678736834060300623520544504423155948315670034707052030994683351421572096698848773119876260617304146056813031687981677465862693796706696149852642399522874030429029835019279617565767570859276621575969156264430509062208377203489056182712755204847045199644003037922882333206359084478428979582429472255808005627113110833949012813330211828097596382194447053191724543609358895906304752789872682088909319496555064903511669354522694947191580621059695097665399369066693872430423641130885412837201035550773677708179587090964809538558473028861689680116266920649353254884901089678671674186561041329473895243816447913003465156906393909170542828530537799141161776642810253297129525644385650657288778614393972405555371792048132802646661196455645252494141600853233066628905157771483764375410556237638815707147673826755083658571593653259670970655710262181620303224197575091368093989196626811236882223831285525300963105061794576535492399049141089814061255171663561868254760601310911557598817961624420143877081062235305158069691040735856109732614562060918119284635808560379530911485564374948152983758103707000008766591598262348208496475962390684316354383781886905332312123487078050029022146965966476733908632213944571312014216137651529720610063935634011865019402754020726615424395688617004365921326732197038153752879479984415583094551420870761359447718000927925517012694146804977456770549830412652097558634634527309887516346713469496030382643906406156488489528315401148703008741545697711804726336519530070569000905139247317276025622874453240480190443907290508964092243057641913614487577811513612149317381163380956185006048124971727854751807557065209010251553268864110377405237898128368970320787188119254273645181251030979501519921670215453492000799086788115712611718965077557718157119929784701671394773628214175552916536305676112113390470152770318058430317816730609726285194772750414572979628033415930368638949041513392512482588394074862482607560071669557554031287162730274200648851804799635249902317007078548907268289512031896772653595118819803827088970980955666272592171214409369948553183254214631397453829238828691876894152911005003341628097861998834393200789961187068557006651142232207495386454198923369293163050436039808356091509054873430046228842101501402811203316796701249795394937087088363914622495027952216754262756374251784957684495618962138576217595287647373630896262444704705035254507838026468050197253469009124542864923907124792509653219099053598685428240002061748939534504475918160499055943082249242116092869949987069723553330198597693240110991082927282560957174252976732097611933747253879600317487330444916173799040103317754443187200771980469495030957789712700473408662533340973494455135660204174067660870028414938225839799360898703392578471619734264918921359215558331661261315644408934950578098519893642772662133762099383559082515622543651610706250196349298467605167521067402507200339277800742415887903507503091498356056792796700484403345984308284871546261843083689398704213794661206084272761755610595562515316226220959378233377285809749668967502409398124014013147198814355504441944562047869009945212319859067807676831042666636168060999392922804958585158387501419820750667206405992946546921583732623875759697539521716187175653259339089247017179933170238980774978849672806751434334125386481724434497986264088810167248997176639077073151748146797070986641570847345764670421359273431441822453573076324852637038330347012563020410612496211329389645862137618100351240415645408413407646818429835773747008834359470821620880800159350164834865795786106758621712156132627584285201810456585680912404617904928022298276910663914704704579467792092324221044582634657910153077356393928425904892311044000869312161084444614942914853407532262466156984127590582342865969847040389405043104995813348531474184803718738952744334105983270489883471827726987791584156737851032598325722526343061189821809229064093870504220143892766558347742262372964702393691012050495213292506424042597778381383096003039441981822654842452540924686714986273620957386630782690021365689818238462114625652081251538560592513611900538804702411052030248785914696246309445938149756253007188140202232578061723980930910331356638069297181277778303484428904349496380631381401139396002597253413853972565472489384367388704994391846295624310614344488501774452745036159597689746266840794089527861128545448568742469256167093981439492802124611035016743645195778050054863935849624864977618661487350350417047952076445974529281685973790379976476449770953859138251784755411811281253641796157685593016322896910186492615129160478666487039752327516578057751653279868103277477094736892594965609684417599931997290914669871086683709690640415299448151567280413008942245141716734875599426004397796900332081955130314176787270102641071312663342249236143191086597450355897123942479176159191906046851486047391893861816528470470123839870684753749468003359395141519548607353550803538749629121792281418823137762482536680330453198454118473113562998549444518830923732085771288067294743494027829048332645637077891396836987472484912524701556058965007235204482610346281969152074795416112325238700367783703628849301846462918141110519763401227254463583669437801686376215841581059599235772410629893881445942666996081036427525382417441343784672138515479115492267869036749249120702220600959206218560589080721510978707123932632356523717916645245092171736408405392591691673615262388343224265245084430878481950506775930199780400198745625183595055507425275243000349726542182171343257983728291957036097357040999221663078973573036189691227325134860171814463525787764603612530330819965223347087147506605010215239303822027893276277292118340098980610469123845077739371247919683050223363347560636417978715593400004513207959451689371296950230432978997717754422869162310029385691217435948053211861005174357037036798110693369238197191365626154138397719816325288598251079737943383612948234971000693919237348206123892285618998254135407370169903713359446331429374956581386883153614253611669376276220620299711862098044749669492793415623206232581567875011808413906148084092937460328407687839957821927067647328622955629848127447897038235364973392602386997402069463557772074712823611978395622196465600993973386161643927210476316122903418360445657350030805256217956821682184297912382629203579372986416843270349622861676176045979644914188757575108821880694610741415397769109704443439198558255337680013321768362240942327471000511212446390381222974516943426712742241379419015319685239626393980056716147369184750365151592943295831668464436747962285683093631799926609330844695675733959860677723040438051556663481547984079186366843110052250762850890787008256262035864735497926725039415915732946948967679858805802391024959626365227382334638832398293949172034469842894700482255732337806219396724926103023350339752316011652101599549899480255496279747064613195710025602431063472443279128737385380712319636493306322108739967705891646698609498774358771394240853756175417160416777295077710959741743643215701758378701236261071457308170900249236820376505162417350879067801536600251399003542448794428051076136116498313965309546921712680595719054785627118522939354148543723181018816822567972610569349450915060803574482949722793899609343477566953866522949756784955991756692095795661666102521562173397550740343182032955778300835425786793197872855593009427863553122920713926923513938335167098676449969921635305794636820829676251952634762938826355228122986224116802146281473329331945703281947506773947846136306281637028689531193255899771866751280419650733442792928794063463623753767014446608345830317622671674726263265664925723614087460782464527477135258742181638015313037407351184178438362679476212893082423307553402567679491599271352899658170979496758836523332609205081830789141680467057019541231221296281182197040188879767232188383592111174327728261546833483070740942305490032452138175601099171826640322430834479630312020155550630867339415328410188552566182519041905723169946024165274127721615417592739927662883099503993649094793386261717716184969833082237374996886648201996270003846422476474361164174742836629870843438288979129875785054738041059105845482513493062309790864808362958281404818902221534939671176347784513788530322429446478113175512389290698612667230396695590452568256978300529201431421254869772361844127115558369099106862741592170921038271861429495978052989530754635275780720034100364088770881815754964267568574937746628390997556115782490916293193772285086210694851099044818279985564191617339683893281580139789295013968098842564952073460620259487041337732651153895720756464176481251960526799157654292158834828016880472300685261666694695549017005537641734694904748344047447085172509477818240845067619341096945053073441183506509926459311174007158740847587324928537588033427155430952058148265651462838650312676872454104980916908688776629953520265842054351556547372401453161655003898694900632003156717850308090770298336315015379096364996912742911193660330016193803152442845874711932499005306683450270002474388437156621696258264318968812304868490089860169202560230685700374115287447893827710597249787357314055879472877923515301170432879393940695020214187390491851190718860086465638724347661409481152916525916381442126914581450945091860919282547877250600875816456191373170499267459673323147135027711945450417139423127953775670781691355510693702323669425531267275222125180565356365150057514409543340383642754579543761919122569894955405769500888061153593994731118768757183347630574211767142184855543445290918007236708357267917377822877416311317313416532932312533454734792499063649888230603772381797652235540404281665433147836418462074298396373514214552698406659012108774312565675416786220000947944203689001781267484937165563066999307176790452438734983412267468434437237855304573784820700491464064812902310334170154294519780621060391018413094720970339490439041291902805627201714269030877871465520233709532045124029249090859585003366654510409406191239376090058831079935624108912318799263595825113001902463005652853558952904194945422874835336138772178903386490371893146244221111651847166380546386689704788710492475825700137440727134292216633865355912733756843574925230827155331746791126798269483935773442492868780487901005066636289410082358456811495472774246082859835231794606107381723064817860942698195126819211899111272955063120891507160256972747197067377794558461926121428742511058510044119332571467806840055432236177942953260714364785923331496266957964312175980071844972104908344539509832630754294002222478023098970660919458494317741217770361961471816406437444097334767208772549503564054990999886367182075787371359496543520274771164444340896568904094173679672825499280902248995661218805895629946800411465787771615824363866807439820966019930615052028865456991515019147453525560332847795153684002370192927384202655183381376616304868931576830183848239689081566806429287209523649490001130554403799674556410660684342379414211138415659591135846168179270611713396118468123911808911567179253301260886234612592916190567681007050185028704254180389939188320140205229783817545973247170424965515508419636248712305465182025761378053930508967922693838245659563683273553190411117776996638019145222399491908278326346834327209694532361198778245570983840972543435080895663580310549932758709156788808323516321570069956338091540873753123478241185908878045513589842793120758248654587700850812297453513259232606208432265194741172775314021455007800480108469519525822281924122832948282010435662929041184208151118798307175754004623191076364080774416162733181396192176350500629878417751530015089870695350967441980376484598957306247786923157374464489765248344753030128306134341529235438692867131080438888642709956300000481098677189263167032255109946793425636067676353500510341146000886623813019837800110447935450260151399747818112945378408868986318329583902486562230931135435857720360853694518329696392377112233924315409717185740852256464408742352876725006771022380031285917349058352816837586657528803473737742528667996262352707218202668983293225689955077052933213524876489977653591136015370320029774230368923900940180459832869479829530223400166662100103637133000109481019591380209764004846542359556055661109375988242903133000909965230153217442832307646572469699600483652329852825960680279378141247428687358641817437605291485478490890261049351573822948324781613893380453236476938484197614202340250427371296672456844177815511358973538046585009787271887606483251225167668454082030296180106555746989740406067901538798417309105712739387303455944696140581841218173269048181781362570759934981696963844606135884361181391474834823624481901878021567244931800194894498911288794027318803518617685387008712234357943148613112459723628612586234487149823832099503380826294367395989189956480616134572001133940614357503128756482615346483303542688815459889543948612884813663503252612024399081882105193263643040370914321095019421155015460708093915025653928950681371833857270745003338801719210054797888383410001857533682184185682284428851844984157809741948798290801226927581028689904169171739000098902869364488569465232788876631655784298328409735796665619772998521549317443692168764349634582053904669128857125467652396665177762056181902255119627832854914593026274341297905597742340555343321639122061237366837900560420033163975144702481485048842304495506293242330981413349339263540978806081854040742747572182652828350772627032823397733816041854852652598189008013663495285211572686923069142418780602003459160611229216575105829048616576552688429473778786611919120753332566239968521776027323156199996566607251737953856852245036772093886145398976208497438674314546815206276161024996273606896631260944092910130813771631662862444162038931467032922077108395674820202452630625992514042439170673983919959042161264716877069765530227143706383740356824792802103157586803829351754270950348788153748368468575414755503369358856943472220144490294673281095845387959583184848363022529520192116251610511709533153990382126686843411641548858450835827386123993697770237819327856060410534528571031106197115944431503817916985838699890953788685654418143932956370489131341951722646826587712264942696772661287562951511778448077259897181472742201254755699180351001565185901839157457733114541591064807101167820389197546280744948687729839411398213311440374355446261108663029939997198176238862973835075266215293150274463596530775221166850404181281016956534482077467734456378989464649784028500396080482088612130616627723471081349497677080328853869817378613555291110818714115001175389692808767777773397365463287058650486489943755149171032607339424114367176011786831320003040799563351465602050701373792144350584384304179667418427759763545759704605041574304796082328763273766266059357601060727442428557847911258431048565712249043163178729947325991554432350470888062870084393496483457529016698408818307355850298532354600686652960265751660852514117366850614382498243648265735812008709348171718739386085354515014623634598260843674125868956408395331713041257327257692076924079020498891901796330268416385941009335439567746366249070223348847226301253371942685593975849298157282972854290385872393431234509566215579085772189412926858435816295968709841837484294676789503691922193468968862819740815780199082263134044474585141580298411131830925590571209271332507165907085049810850442032806594008020347410147497716890841941276379279150149827967077605689086701775276235587519865978125044012419572781148581951646863097347218092041295547536753565876620527472247919937253826152618773215255458407407538836203285835284750717335387857467717887330156925929585191358372002097952390333578531775660961778582815449675441233828847940506930961230951874483881377124488127261921607148941259556279483593389918996077767141931508350505559000733884227203584958815273523102129833021658202395940355811811585846384866470862879886429061464042582208198330741884717626958748241560940898165031117943240695802304886950321267486947087561755340494045514514406741743194746093254042453116595030102436018680837814789127747170387869864603223813677197335326841772989708554068691070695512791925810934399655880417807072850274489096174559324208878620365801287240487295396327872050768118681363799189724644814997188442196860980617786100069102127771649165505180119494325227375837042756424127964377689651788585354626431859394479170214344334636715681272722484542445394841672308649139884383985616225564416593933281840504379013382248619023975846326687254636111197669178825669399916438840982556255105762396955545565691451792854663102843404221332576692352883860283744296041097734827085394106218987709158880605548313771521578692689049985248885951938177147506341345515679737378177694625424696719231097894315066011833307867037987284894989815556699666828554361015425716252182389579881073220367608474539409105220260266851682634660228451567750048744957289638091344401166070430222411553054606976724622584529248850969132727676208557404789851236880219062903268667588420387700657466605613197515187819609615821882256645749590620911509605851932372681443075434914464055803653469503418074170881876786783578615437008371415911521483255894286162505428188096492129608510782952652814368279805318981046155489402950521252651658846067028271801619136631162693353803828724562897949156552185002375625686211059044527775747790463217554252010479304255884428536232155781197260576294476610038279419426841577873576623797586602879733106733403640799959816219452939575033153536770858111624481455879934164591693679407899074340184035870634640576967149790572600984673304179504210289649940462851311526892191864660886933667451404781505394735921956221207444255532902891115532437662411442991567917305826886140723608648705238415766064345320223714146784008400138639293725185608065751382482932604097317265824049703757334905788605899052467914299172082385214747651405305422535732516843657849668375983018563707430831508144208422461235068693660615678758447259660282802654715097642960039423206102380766515473701590981133649569983235583105287894204577615159610813256232307592254506442033626912491768482757302156487656738171675007208734291949925869393270327862409231376702247820839834649785875212640912928812681437640754434319142897345433417139105678579079038849380608799742281635831259298167594605667499974233050943171834161652076037457399525615765942704802449957700030473467048191920771194395302360547753926705627199247386550536050855832673582137718120864174910287405850757509381094383625283068384629729797513293705636775756882679591972652754460841358050148238214681624382847529531613078273612577331772453726188177882375216130798832595547484413691555250631953302573397695154519224998870246415060853712637801169939041348371853119232772967107778536232625309019395317186106470793181683606673891710701820533195941983890733173547944602395317278924035924679577700557516802287150623811913696321821461451689674531328746084133228968165416453814867923771232440896399702788852555191982415315869334819384428527413749366533182244097440271062428378956575862805269510098483632147223039581647238431971492887379280902885766875487117864969665520036429998231101080494907634296680933473201125171323902596734814136269497106150497836580963944609314430443323080903124725257907284526423607998728782057805275959809729663116197728561990591155619424705530639565167404526198524277567217512643404263903253102376993911711000110340126569825076042038805751355099875400871984295312058220411374893886793305048987387668498197608301068926246922110565308611606588150439926969505554513927506268815849012592225109622856824798791685780993800105659833010398815112273110278124522497494885985947800605519418753011438505364553395579138662501254046328657519018139633952209775893505032932731755018511256610986291565149775992372712555660290697846905602632131993656642598610071048420552200243216490133539738040705121837613238923561086297661701902656153044481980865732304536309177088977788459984361713445276534107755657294868970103999826968493142719076097554326157474765873769004608361541281206260191277807133114385112567582753453299068762518073138587391970547362107670088995374118063177813893721700349232526768654794218378428222659158971340692234727232687078594546700741691171590126203565608384401704196107980423058879234403621102426424061275104729064508143184556625909998215861227576576721644580700242594452534936635260689052769984903982715833899330189096852702756695546305116525315214368323908770713598241801182003290513853703382834623900871508137515127163698799619428975180267659961142597415717150035531111327993450847705472805825917802905699961497451047912021728375385153592139974222654818960857070171395166376861708915057933122406578793485052080757716093642250729073195909106804610320405007094596895176515577212950014776029234606995651004623055839341830051951976301970269488797976492871995487994366282961301331445985657068739562782625053497036675521405398282762956058570343937634572004942737464283168405086934092344830762116506790701742811950349223778681756734854185473983494446401786262174997884151405170732344319724455905245238588879113727014598385742346179184572569591151103725782576421120376274304357644794435624212364382840019738785665010853192251522748681880995083523998138511158415745138393621962088506720298213271215717523008316831493788212013205453684167583841271406222964854294876794765190302560804087865566325223307845851771820963164436465032997323607752824518688335449885674725074856335075627979859701364301937981665013779558991758472323679130791405045343335464294956460465275834280668340391100207607697200594271144040147488077212380170683022646995887832634000244949344785144485334284252034542415969975728794572062102909439707023339439734325197085820660820418697093329478296793813305668551741071988289436313993630245092377768501264423435005016166842634743393898731830802594947144106782362059031679725358174455778726113430840323606594513553795902366880427836846758903268128519311365387728222610466279410005035603575317806873443976388864204432756849369770362941659585396838899081974666357088659979660230855728626725065032832740729240833477755472348062148004977650081792580684064076752295155676072961573805650527033975878966913096029952228168306986605601034128290220268484038952591038261870405784743110940519782425395373117350893738845880718465691871471971941925533464352931880358807518864114801946651741539496122023524625678199594790157503667203989337477455633017233744855008276549785738108968409989223268364813299733190377866054034614437425826231883875712144177156991248134153489624907362521321931451793222053465046086548530242781617077202298058627286982458354686580972791145113159865965473061585854024613278806521494520661861559773747623231609945891192642219184732912576443705621106382932098796795991004185978555428093196729842583242064063169358581900538022187601572090561958407371111863973365801843720663718336558882284530225302377779668235002131657362677077855078147160113430171551547735388915901941681871040628814309889080861696630076716388034054434332990947755239439959999807292544098625977983508815815901620511578288040414498348178897869097655257709780252975027835156745014535202864259428661743087032354930751210133572643959100051611905878960321562240326143242838850774789940967160646341621297279275542815403755283757005631295789402700573359061866467408532251411969278613080843818224325949847390248741859704759548920671119444696967911306372955283093782524017689005244667842550189389850728403234459198765454845008637222519384159013230789664126636465116292517413113265349901158921560888507572548183810911314354903288451575189198225420791119690194833456485790324754927290930836765284197154865209033886219190365601692993843951700065929162429835825197580342030200751585532569544341310293992414014669915712464633502860950139067570974716694975238761373062736511181951279381497448363481008077070414661543838602132096411494974393654460467838657213169782832168080821818807095459798924364565036357562414547052435652618301313381715904762672934447785091124852592757061698475049001454294034772681497100675071414977483466832149479890744048224042484040514969979696270609798795205968618588264429853298139431366949573667213156880817234662510295316943948833633208733060265294210994727312361836486324754242081846208858584278932092476962663725959800576980654183060036866112953135672965998453748803601918410771789317014024806325092485932659964806056297874743537243454793464317533748366425650137682915188912786607426772159957633513398589233003752241777796225966229145993448688579422794812049906469200645856549911943879021244726107407439892629012392264430910180732087141968525732307776262130624454878272624317251960908760162543192272806415858137776733326065601224921499458313415877540532431224750293500456906501757010069132234736023977571418440198587401957457351907341221298988324647874768407227235549197190791687096595154017066719708267886298811886016400571441959305428252729580246701006423646064351661378725414431347698369496516830276267538302583709073022090850176631909089875251138993704534831491654733526858304887494378321981181695658398624694844281419785659667412497484947214743602068687013303016215276841002248658775169818028598472058696852488752720983444042447507148271154537851610943917337568938822680354224386169354511272507685036315809673740750446000327954006328116191465688991336930234798208832096823483508920307155045165912861361535998042594801492960002052523171765510715552833827495656465511102837112511600578192082191466195133352069906179967988783459477758872551292107411239872291905678758017408027617412870068170137963419083567829718259810224374677702247169693574195400015529654386313498652401022369817550562686612221247674390221526029369497626906739463041645026322048593275275181111462271817046827194735424643997809404466587026295064688593057917841225570322570017211560224595742943044028504116668485577719112653796422705223279916420028799817615028455376615044437533100750989319872544993042117162980348753307348838861778158022567376361501772645918132990618885847573703460690815014259483597970267562900800226386100786513566984693980409920608008257404788568077755871108177100263826741120853173348979129877490622591058574304472078981261265061106414429391642475611845321688838762975539245196051076608727841021167928494457868721603965425392963354170647300304460820576161487140285426162934286118269659748684652562009291182945800344265939175461438014393795606115592257384533266953413569350707460277606823716678694698157053128683970207644549303361110451719204251244105746531958659932845429990325425656286605276030474503209522637793378781799027528439183131425761028946329772212092483462834684508011602081479494919821640401350219691698480832589430047460701222032107301471779093377242423459381722937520494406342565996943378980616173022060511192267899811956002648179540055099517361744712813242543691224605825497860190312339704026852346899894629729760175171993426059848196759246692164892064035047882353366327522890047510570800692907498138366048764125051431121310216266945362274365480273147098104709490414220693028340474225713402579365954318165396087458346633581030564631339876652603306368350248172844690836910784467978854721733595075381564216461877906973519630016545856364292701998968414728405456668983782951571400507918616865023207803693341388962460577354749690212437124123294951369966447072365247678646965648245632272940453723759911812941678206187144927118930940350901401244988973230383518229253950255196063755268603526774691801430192621855404922107593429891753356265269189717421141369793042801065305258678107534446505995037935017000748827484575987070944345159145125498782549737640116083216292405928519442563083770923683951523304218378424076650569310964394089366426405587188725717331127801126397172216410738764357859100852849285221087628026110746188720099157898809044547723909195242838393834279974213400845590842588154808414333840456964961923569298287257965577631802601255522079233940531413492183068893721796818960594619263585964859296730926821860521359277892632330557638334216469375122951860535263686660147738003888664892399382997556043232069201450764917428160209315016956288275214271366882867483395207994705757340272425699440226663744175294909722161312856490359752631488221657450101466674601602112999664074318413999333061864805528744485125094693969520760068432496794665300861066916183400654204746532734151282331714382167247396572355452474390444476627360974817917136463885972915155535355660747593002189913981212338578321971690746193764423226821981110580106349934395728408488042618247407448735647359173563997294464308887917129519093948591683340875743240642278080070217062843940638147371256396716867652029863669760963494775504494103791400531163640091504210981831633099140073558116434334217602486567495745825639767767756091816201959422184424290673334762332682063293548123033576851992178430933655051050739033480705192167653731365776854978014790702927585358479780167791387198787581380828166256135719213908401876427011075426540895123022019321131099986585701971412258097855219381231840919300947088813072291923747081551860312275741555689038861343749032581868627513194216697475613406600881706340297049817123342407174062276284037272275809602344532891192050537992888094048076458001361320657020430557587177178377511625858169174174515903066364690275569134429463700188955767323781878138478486923881139794645672389796587332096635494263603801610197146966091356204015453880933951861091324980850626737065240668975414136831274446046802582938929791935561877597127288913637986455882508720124277517248229807850633457727948179872400663050760450123615794337230785712952802295343792801080969559403482771229018212995920549116888468224690136060978713176608437632061067724713423649664157267477123255067440578331812893016384822856902387011935973809792454379577520228559795392544013652689344433663542597345160972811309871439476577137601750616371365512062113363073949989421190875501221223941520914406728233522163194815089887575005878206956921118104967625527426930756042704548535481878049128293985699730679565285303812806927708893645703734637900414257322108117089681188170027650419274668491569732617369475954216993587846430023302944319413196744502470161517961414564166404196597832076317920673499607547911926195207002839871147651892889549553080950222111882361340821774449943070231635617123010803502542807304824222704918879072620798018439470043278016633843117440592593625546620216466645121620828468826487144804743825154622055254708628334901811003385122195832948654419290104532124679956582912615509351179082550396616707856179443669134936306277822131866122288022636065748685588260021446185040444854257981125213093350473302941184913371276907118795849289523164286905645578545759618631155596009576234415399138859914769940983338853213363179735436209070158517859117280957417144312429421950504738741945500516487053163903582728290479436430779348057093865759645314767365810662784385027140000897948170065747840792240184032068551867552982074857043440651508980307954291260162770830489698374978246577259769451777343434273659306906660884300298196200214603304896628771419789128559182685857354684148088634289557760365331354493905421543748671558383359736198195449961674769694676503202742391652734982082602735642513764747727775838506470065527035004837509407215097414459051387379272122732367210577104029735971408080731570985420466609539340821103933025667745103798323159238318843781620665624339904519229237699217982850890042052288899318275946170977531202763072764286718155346111907013359025379105327777188142772418761619692230892510187206787034399392210539998830561231990747528695729806387546999652183557733999567756107371072874424690344172672010555729654657725624163145896358547620878581503613780367937700754300692156180665007587291770141307765038503074511249289147696603183988164312482564733319042720323107769068760873102297392860012018273948818280909929623194593827367593211788269093528105603087637906800278558748792588971962907340860535197412655262740996926838286358566523929334669873294808941162800116268040810342843019781247650000064305485956242732635136376841284440268384919095887175599496893075262754730808522644884750659095076392372807049995780942853568683527929359599204844277182394415612067945802200663522528827741338418066949434357469255917827973126646571505264886379220222054139439812543802404380606789737642523003986796163812647825977033402958388266752351536331032390637098307934542757920175101280552285007555890771677665029051670063396089774647800625016286458585762649900068762840813226208056958370009850304082033543502249298479244707893211877882296167472868586380242840788079153240668645614457214341369889089685749821291190463384225567931344462452989105432727015123070562405267617996937307222642821078180133385459122935084931257517589263046191045688859874942822334759407841353379442043266744548065108766514141941044794868882844458986483055479729105494783519237827345501334780214918813646193602662722416939326422586658197311453365732151528942098383586596070537610165441562845591262152025680788970586236786415265107821452563937200111788933544422545767544619854331059175642173568314533352005036390127186535647972769267952044813277365599460591027597992588787410397536520246153039872438650935967200053783971635634523311120036059978001070543854263858700341593478788553646349981505251421432413307295628134697204631147677424718976631241053704011222592843140327449906524083191678165600430986413260495060259061567606125441481333434558431465525046645248695538537192107885143667437652992526104625654314238969398314692740247589682255189598290752485168313895383714981112971488425639837652354957453018660887170107456559790953878838427148907221671992218554167894255056782738060309636958792674015337124345631723203212852236215919994133278670632006234916253435700349841240139837565366229031417359830778048865918697696911077389360280050736331655659966052926084203293452790161929443390457277535501941365141488701513524430380121753492274050579554133007913379825987056928001679057293927027653846493228414387991631275164020768021557161326735707621414047945266690923653108587904189427564514478423447468017690601698361550119900553332959196903575975992738490905411354573721453690786187611476704024442020970523266032303511778038080669281157471238305622744293998851579938109643480852844219428738574410831594783395298248359762875064458478171182371472549135654166161544986101771435469435292692357645419579146487136897537098174592954011643681343415421614054174621986077031885751070468981149094543482687300744506392154516244231221109582974576366081558807756206213747687163248320470985699897731465968545787622078051899303628677351580984320351836295114293147071603268572322398393608991182312008313036736525812396161232168167911719675228988104801904361053307275997078484760721343028345181753676215110383551812801337859379678735304901735187197325517195594120837652737873647255938341618190243668100569914125026416073097638828462266382800780455287390277730170114541644078665188462972262261443584591001083886713601108412961410350773534689787045776552452467356496946552393217756147599492414628111077423487468105382079698015650738472716236987742315611166769844721746249987164390896904982788159571298573263057341713472270861146266063990069229489575366153917435668939833421294039169131179613848689904672222516619019278957744135139632199468214361136480479799292555478542057432372510945010320414648274669775392355380154035543937255049674393865930299644987315891206372933702353970185433909055135181826938089227496933980722890203706812353719202056157455587049217340324513819994207652540865491000835907953031007030214889550568110117177793362682590925609048710998619656326960105392578094734717863709597547220903225899707404924378492968290936515180515669969558632828807112842282927525327222679850539761422532155208812181686874221926600277757047871412813608256423849286284823040212356696932298152450226704838425027061428465385239101521842038867294990333417738030110384257741802658308972979100163132405368484411023971562635318513353586098622152812405715789695603649940238131691122301068051744017830527512593716408039728778102081532412019665218994233886449393230004443911450156991492480613222151550918205343974570443992975670692387373958793488674734535050132421340536958964942281751757385226762805451630834407819930091638521973605961564187518546209250072876123519161536628554300972729128011372546504461022391983306085231350189215506732305108133659633768738596269060783617881551093943361490636056429957766014297654250745353432846532222605226578732025446460935018482768755835396717149962615318083607350350700131276493447408992949138901857068532674696354188411471459199158026916168454451847224990750596884453512251350070283020864860486897468545997244461648155939288908183973462543360843393137155648546165880040722662807501539237065741122556591489270577461319887563156757929818403876387274914230732245732058758266379625173090848792748836449755572986644795353961138453443936351357220228751688025185481757184598357589702973294460075351834921818350241518285808048610954110646204749237155616874493576992965510176985701188585558182307629048749827089344307163369428782200569310582371314749021292317418055953978313085260418589493189579673627996640665892860595512693991530332160219270397631014600070963565067248717884470209571112828073819030848831286082405965535868722890899549285449365284839973602181262205524463546956190311696998115556052344942087024560670390496632738176421317369853314127247168117851012745213211526828967279822262222978532971685730647713579271070382428412154070820648427112889937457846793996933198521201684858101512805207788569418413340084956584314503526945594050282390497091619216498529415891177653643928016224244518903122905270086318418417884053832657594822904720680008421791608730643715690966951646395298623788044758110636191457845770541205904116404556926649207796694994996499285510475142189005959034909005033255714722342945648045782684874618669817596406495255966087270963928563077521726392745962039072998286711817476376495713109545675634045041193465655544570456429212175757914192488251179270654140727558596077626360251846773621432221464151078437538819588433165036746308306449934579007797239921244574983522166502675929826976755856613919963831301765443972090257380227923896624072813455169035400070939339574174226808694339533350744339799149445220267855637829620303687188707525482441160404726851927794929127800383283298490828104505736278546798430556323416612823754865427945475559096878240848174747033019815303065850586596885948761409901846598980064129679127145858547295439414111759519287191734888600234308080221285284578120679454204625597907581378473614220596104373923279185380128846980979212000417622940783749493185987818618469396478432912630312002810305405742775384374998511448519302583233671113419846510032848157733046162590571610351122287089956600274740743349031537384313213207930515700852332810716311281280583498805967095614409280617399591009590714011267503026414754964441027969427308005929072268200865400474145435651120718562657976870266042366582871585469785516790659739279908583989266189960921463737019621367761425289544159705798233927126816467130285795916271826185642358218239103930704353202698099342240843932832822939197126750802907776020516511311435815673822163327728346083606649627537306726240244892572405111267823443163370087700550459091958593003112210586656424102113254069884092181720254322471026973696403274867041283554076133401161327412260461428954423501681711426440593684798295184652409759598172755868401109066568738445236239729757145572482739120269216917406750710387174307664768070875209250032680679202193613359246905336845539215467098499580688873937175759673874964493402770265118055737951669132777504576574251409843685815625857208967196021807432581248336114349798063387970692680527860189799269860026240353009394578057297638449533492657869715519353730006078141743709463363206860958230136173671380792388349066726758953708599440701851098246580853477018214700402043163875474909944438479788411005612730886899881176685362048923349870821578663994738732479725768836027627171246633661905658995418688584851009884909536236856036866102121990675009504490139266684111811116067337492087533920513009231706052383701306512155827581114850444718982740865874401692065040916247557162864611217930134210690889935458164843383695237714160458946552324814050931469737332099830079568356104155723969753798493312814690725414794465637162520741448507012050516159870427862014444509933782570934985368405513002250945372407622112614764123408286795117207326669792555361511661708752216871922421024528498810940033161530867560876073078098191837696278163363596087506209873640866784614743317736930601436419502089921153605343440313183424465612264245732364233242741684185847326211500700533347553024046742850919956808352577317790040930484767107744175163321771195703530353482304035566927545492323494416704679413159120036141091094983997640483652151312264014944761226902424744485744020896042067458023761112566778643071322183219947164264338397707612373496089123822588639172025574610737078144568101635811137238368650883933889071249996334112138807587310379220253817334310052124001931811220070105784367312016937502364234648818195353800561117189179126621281857303002072524109453956981234839004470508252402295349486120790313883413921541325992246908891222558550808616519743077847766602863461160289946017711414679316628958304803752201750219535573017635332564675160957444826368770165745965524267196309242405815638007858107664256781995500632707668888863154259255528889703890140424316421779129413204968404458263238078115674013286539347984664595835865885935531132492448301153294794053734141923707284205263051356354803733808671737823930118021365791498137063202875907927137596094682372528045986374518264553644087038442832285916650854997482246065464791347477211933174399406713270346536471607008844376883984108297936432756725166131117065621014545851219244587248438160594140601840004028322060137715582702515283421925083856114071656302009747397262462943019447247306235589238889928667298642525335432143472976619594714732867614106613658912073368651062966269050367893064540329399724760657657330142637781972172249259317621737094728553207184178349838195008097092638751542889993992883354383037578613963853778252606041912098692221640158911631244854554799479524934589126885668110300330040812483178689281675370334456678866548137034416116580454664485710164705139264555638509799205049917545273310538539497987172862856147217224518918277473324217821212823935837644741742862602210854519811526733800546511867308702028279066985520965537137071009668028866017007716949976020401373935007514464676102128410406284428687178093901319298639123135591447245213106528519913936653664696720273827351593675990779306757240599056572198741463256062659273604842896558721275438657381089828201867471392229535081355031126765099443714681480233135726228240695228942080003189370113079974873686782802811724097532476343325943335674971066860532269187149872201875217131202395713889948359137841688771432715118894808399513933648488020233529780636187613549762490530568804257231417074417890296517373886420048030706272524435263076866373294696240023653440909533120808280008342837493462007412075066571556687008303806012641340779740709849644962545063111841342369142882153118489158470793993078182412768548261933565483832308685829222339989378228175013444133827764711188301772577186866568124304214561529991110873537089006828574708384727692506775281503410508441239670219913686264834715469015003689970140892700706008522911716540251799654405160772352299835564517670750156910138781029274071785254682468547490068839830717430781673809329911790708062517463347928337217371409737498711986564831492350400635313620554883448725617758903150497118120857665638002840415288722990703999899947878078137898519167452784736277157183580476230259133398699954776816410375529341533960018834686455166041446777104013814286300417456921658559905362799524280824504068345694211324503452436792351557001240762184861711999300025459279592913706459427604591243508653234643354141906108327889455837342947016575682957464243845338108974833237067327025654388386771444241011896849584914541648656189939271473499588198366677822492028433306444019186432144314230477634096260107452707287219473284846681423300399389837464024929009490514953986562249394177455479945953276434613448123074229726382763950824191493003349475202241494513943861730285466759384298902558363303728534855642575550792445079862595597146284566080882620170664661478504323483023217565008010133487596781318845286158072822991997346905597205211892572846241968323498440489064203478616795131049343827908989200164487820652878378083018078935585561289824884870741190107103819328188047814921875694602944119882960636131827725010614108050475192070508407523134983336609226649593545190266782305218153041464137016392037121713602522089421725587086935910978753457814229852729920577931783163163548782448631865022425196087046093336091998701037897175908370891983997888807579122177124202051159950128703731916720211712215485900434851592495178765973387568934330781400749106954733218762777185246654862216606822553450266290970483563618126235327049804550779464364032965593829029611827010725056818370566059445143086475685416817598796052554708661052597122222989653285496746599766600566610597361023157610448292243414426456447855093669642968085348774040936077784016493759547633422439067763623060341158553166517907461165728228450651075668169845117850722865783571385127524540342395810499469223171006711023895694767497809166491392422677962736659070889719652022325437992785176758841751921429795114672315461615663236121030935630382652676422693606766278152398371053104682831165541371545079327081853494559252734639721681004921018875925724045665732254262958090316800303212484419491604939233997839108673766810242613997920237608491114768427673909612513299112353096191754707173366512403485334203091744916109387150355696039032576498844775541373234978937945022124768896388642421153772285206409607370925415551327528801466778641301942530345674132023113823846598363386389082053145243315452234457963138326234738456543840866168961884664073789307124922794919021067616774234957507430901386767952140499355826987346637599303159915042839290240099382833916087117245443357909184689748672527448071545776863079783283036557962026512708085173893813276724359922375746292358361697994697610980983295536660377706336740092062318975252455600994083302602703640257272629649007109989458551155969087094373527660528287439269037178540864054948315700335304669751972419989540511688730042513481819038481079685684978157550768435687635679157190438091447513412292971461458269930664215726295212712390303486952486565406656572720800737446281756136251628410270410717248241556265507161789445310756471707721064401891997694943754235601390935938235152352657045822327879406607144634025192650665831728616370352654614724884742533822370071690793601371889674080510171653575993245273021777118898041134678011815071456197359188672583705377730148721306446502715232356026239780493805874591847614827849588841666597940568782473604802456295017422776983745530900903956867417034659548340436942261140919410183123190892636783466298368223911964101782940680382409614599840537702507890943285835572421621293060274976955581800639136508937116741842350376775873300516002091321456968221955031661070607029055377403297770106152290454233606128507282577984018907428804976197921347513299236716635462803387193603394638584816898527007952059639969223101854299532482371694983767131447972503846491682768040350297750904893496721641092887631261785644360517525989293385978020192178312039774989493542064070389692451739874081870502373710005864452214947218650540164466727428397968076790769684338346972347775285538874633823659439649436813997902678970354435991458288972782651434720958685411883094492901984823359793213271681843698321084289336509077596261195061739613252043914216244659305034870028990241139162801198582825769964213329259666335500896190367296429720054556562738292745197086435313530619920830801144477794235481596069364435303676349854703239587644742259223767190688160951410718390455357653751304113375092436943968288230008781292020046667207007848295303439037885567851590187899902024032401529283959498811482852236988404317624496301047392846557031882053602900619981744706380838670361884857982172027862164341209523141340597188475941137625760673166631117950940165124486133271058198874778116610797389659422560031390761651998529162239738687843779798227076867035182554865564341145396942383513723106323842127834593922203263966035939007655928259149495163970754718611180864419284506941207578268078761567541824544441621885613066263742711902503947659546115942051232561720852559609758422177471561368885333752152890986643236527961761617347837724554441550576859796970589355061102730284748137338785203038626509801094969711374784946412824050397798177488880122479316281921859057578156414800281646842723352440398670230114293196331365026281418723645760554187396987043184974804545011627684940447278675696849801216251883105851917365076126973018993821459292703125139425842847815577016359069377729766461122871405508588946354370151651468516188138564725776953711933619639615872819538281948564440191251923307520452724800659501345596806813166447858116262247980874842335278493145354469053975037102158885504664239701791339226517748959427846006008510233903523321239244410574526548229017664536622004494171987940542770996016512554747988509828470157437331180236474987249912148382426503033455888328951315109540511008279650698378633586446205430633396668224628916926469268689517771728107377417676171653973053669990375560911049707398630085629115662496051563476847471113312802087853782861876704778444724278111437269582761922040460245590580236299917204936705724096464534264429770077632631143337497363408409769948630102675615585217666656296493404201664178304180436789184942376122033317572768385606797403168276951422455772002045054903268574878482920237770039358946401835637371010910960431980844269099353087625061036274114076787135383263316816457397625615011751067690749296590720478768111863408552855228905471376162868130373097440306065563477404757151210481954041391657289752301185352029054812740652435078203663825076609149648863136013202055252969000686321050004935358348145564848126605083408603000891854303246441323318135266421294214474611678069754551346038868979644572250872941086909144837522499576318662090913336679954172657311396547357599058567459899791034396194760713754440243529782977734510759565312593337277876672139409421574792555292446916009139184492545112945181170830059252373828091076343509552256086964824802899932748785340061083979967703592555902224896809803052624571692135924423839452547347776604797287128564834872785834997704166247428271554568304335263273808230130756809945942427801607959484988092833321077779730695441577975316680654452301895744580066823875743666564136395577931848756584413432813237458561983135424495974935861790720073112762840679409269360045175041947587442532819233375055925516463862194499452387638675973386898581936349345227300329906539523864041874024850688258059910725525810301293502389445333119266161980864697142912978541669405976322522589868776048758329790963242335651647719317044120604303120194230924107294698548297454640343186001399717182182248483009630286068861907803991707044216682325327095258534167148175616621298851689846853760736376960794209141484713487756894216477796311124706399753863490875678769174091337954027393648388630997208596052949404099973620047040159864778307163666246934158398941386238264652066692661777250428572135234326796375536440811091332405844588672800228662693721200117134356103856294691506731146619625456348833685690200873617320937869192917860309874583732280968722355309817018610814146681211615049077564734481465327201580020693612581861304726569574721799851821657467665668003742813336898886760174950683421258240139435372655964009914096532572231179400976383079933951418093103089970137209124795626569894779812090220698888675237747584624790568348791671468156950220114426863180657008862534338238968571474783854599121928357213215767584050898546300212773805281283699512895198109546314283042263061175569144517376033746402744112122130149349287249825839066769986378469810543773458208804612448667696074447751556677109834103494381975343547289093628589052063808062149153694923784645794739897492783583402476606165138663136653986515898860658800581529705178835619910044255481070501008283076833739044985600545327235671741936293122844980751401915728611022986395089601380367418275267045166042047319175529796478220445019923158450979074259200685712181615871999802642324242699137279655007502840315017442021651700179162680100498672913666542986224532554882660610978669429840380769040447626613951540596115287577923821151485072671304785752633574913305443945685302531973486979376326142237120948624212703391712281649463501652558625724688489127267354584468799934581621679579728330328835196422725862308817931088113308216025490229825353878637558177069283411934801047801005709552974250051995574799681273200992245192592418951595338641027113473846285773407509311080914223690626353977331972666827979109921855648926021299638509828634171237654416593120867004765322241582008836967883144093184709856174019774893207312103543869713482971043625667618343068159895608542079467476668465266906337752085168414260070582896045230781433367688677212069628037880761521855563922100740900313384830690942621874280750550638144818186680514098412493807237770657003824507100349314559922202894614404513065921456984130283960406884847586880382238615576756859673111362205984304128830743409044424901084130765454658896439332847274711868284904933251828964622873096935476190029538256275057773102281003476883644187648908712115099885981895284958881872500867254831312695596388791190143371766130345789969813240825888459778294711811559880405453008246313850879210228879451510416221861948297816607198709607841824823304405841261607795883459099060751263796571726896470797915527124343313871302912769516268503668385733897754275755623069500310120069766761372712725936131991692434730635994691487433761168190841286236829759448126387726028345058602777010064890547088848650351602683192384641356081696454352751116529443743895681562785982008755776759029667452282705587228021828328564767965209857273362331904322046716411020803847478357785763963578614168599516080166567231234154863103035437387455034056733688055782331848921851078047382110662570784233508673154146692392102208262697835951905176098955124283287267678962915261919759341647398514144668540279894649621408441857794432508618312463030868525304452435005185193281410163050429841483521422615669999414162145304355097332937214012530133616442872300469123781841624139944701067628082544292425599497427355996236855902078026951455529797512547884975624754874602837361795649532215426940832371791061449345133502809521880149391537290711799039094245800337019202393909054858868539837594237355793112596633207096986116264458048040284453330376786353214540501248240540360569010029956904200422587862835695248973590242211481557364211179490023935095477454148809925018871510348005402361793549413733342643210649488641944774883812892434266153191884187645185601252863166031255902425113141852788865624449849589615937009587754932984206186457875476280805818016800015624764434959045613154915990208342984914137191021781980808594295464442837006601071616165497610226151390655944630234943578371629687841750114436881979667109568009490624397061163415692880658680422030110695490034003704362635394442196016873877759110275314479281542928303845382738979679484391042517032334336774159826990397386717106626335556377719794770875542865983881360019135026960236867117085186699464026574462559012043986944987301391663014441380795642113160558934590282923477122905885062408280740128454830233330916541135682593887647524000936100985016516601852705330936798614487994091283556127826080167452506314103206554476815417310226986200653787055627230043650458179502791847476591907142461750248600519783860141625151913092417745402782171660889185935886864701671090962703396224063984466837450345074883140105648990398891613557177149497565580310401307008491508821158468806249561683643604909810075226568988504579178824476486838349400914337339620841364826869452427887345872900898491354337884631146358119221013346089415082073573602330260032373723287279882388035415676480088562878331244931515785281998101825898199726576049510980905919382649905708435873419531469651255460633668262700690139392091621947504781528308803849912508483247869045058494491858198745258934554080623528143327855893243422732327847265584085364581161271464008960826787507621851831211322690682713662371051862877691692638595577381150290321710772436442772699317977492848188276338400838133886251932672015481419320091448745984238389643881019522456217441723071932057971238066664446585011664612691128114571544333839824269179372705309465825853516942597889611383982604694467425738588050109446771449612770389998586745522080467971246859542855118137859100062837367210472721095084292045052166810422821923817322171399832255232449319091358312141807003014662621241047110625039332428052216814146935610532822732621206991827645833363823159228586918930742273179657936604614508812277636474611999110991277368817954191086723451743040514531139608690828178419899707243225898200777678392400206692391372506597298962111862366571146334136896281688646553692967494427557548191376501551521853471020471267424974840909613485015973979375999300748399339642868920740837437664512920822401066685535122810340823126583207430013335110191837774170492692252147674322933695192056578745384496213741947851047176977182077379737118470979714290803318080323133721923455075592080548840472032033011873281976180682257709933611802551268472818310582944615068573968560622957973865797790522545617000366588481896376369826637347342683434411945806950575694237072537345589485049723068071540780963516455183171709513053715294705211934179455039056169318367032373850422806793360569812128445888233161037826765593117742342935746050477531421375072019742995366290074651442879482080280536433098509904028004536804891068520746848086593960617011531988937570466323927017787587424391316324434922812722183153810563397796743106343076523744497073700711759823921162963816697483586595162460898351401619105450724487597926330817125452354385105276119803841921974403109433290386049165160325904330595368534419385662797146525467685323784839570403056849772743620701913635307769775107793945679110211810462914215975891096328106071206139673949170637244525493950624302933143646664349594822885008075089142983002452131291682997640102700337419414133063766297516292479707296241426447041248701917313562309677572057260915274994879270821451420765416214932163827280830292481465146661596690627710371588668089906495744350932172305941232151725109696122269322508881636872805136348573876082787014697430043495253691472388783269095287030007258378190084927479438853158661126022246015596861650061505450846780575897506369739001065349251053366166700982743503432048599920008915281247473643436006846630376720174092621125442800543664762974536113791823187513548259415924899743952644809384229124962664769741953934856537716610143289118363379378552740562246012039619352034836206894747074934349706619969306324229834834985072337803195646888106918353692699336014595399715275050082293403568783801058850882360313526829480544755761299125562859926915987105861073561179966967506614157000473309112291114114417352824203213928690413325377230567426116543673231454428519004551592167708139980087119709480739430292742412655279986382213625149722549973294775379660844028262503629885491191560311383201674383347471338716987394566866523308624297719136595179515018911478718385894532830981049047217591112458977332846885607342407475121085014979992830091567717786528925646653065834077245446644108422732537744864943574148077637351684915432049010898004625916562458861180152030473086221747766610914149522591716948499224477806909025213818533321924111488904894170940712970137220540137677029964794981785267288868675655434686079386099644708932212041299647600824330060441622517424832046739718840770702332495882127728961746927544037283414103091731920324966339002169688583108809528845212689043670040980865345903683302159297082309314693295598298529749461536334029118659038094265933077251364520386926213318799151981716147076868878307879719856732665125388228338050013933785436398915998303366129255590231836615757283735761194708453805024719057384427010210018153683145676590394456266855690989927595117177045156711137437135641950416717788584126290890399007076038220338573885247596736527391131387183467275340459031751895857789574888449038559842203720153329283050258670270274356754274418551095879852977802952384998318922088968555037482945398841960148993826024572840768326400426253239997177643354180984245901266368358819816037327560642881577747218056730228869397584126947260228976144395927649381580354645675199964222909195356055147756398637565204333591267310900251015557488043757566071570725076331160319243238254448394012410127775842423198978150840005306259623471634890583751855466098376114930073424950115851777077137110120989138540619868118780211259574105436737241619301608995793255753322147812581563030935459873093339066160737331420905245362543312184287461721092381792782047724757318835105871973369520799176855244130775284002355878085203425488831835050401197301939778020231961920623829920336193430464746924386415817219099853652498491488126523988922430368705924388790719056652596625609888170951715835544562845796476680717801206094271440818596221833961595517557889605753666400839996963070081146686389666623786055785870056195544974331606827346664346984248661692373374544075041437997356244820861915968680137417377227033517263683916208773511466991201414585934606733413879591588852506512221366224112641378492889932274995970965787902190483045934870173345930897413578004681174353685413541690281415849068789063227001764141629068054871438360179655409674853634317822168978875584874036954168930150254068847463320619619606139167351752389456506439496205498361638765730696575977303564330824616830764509926396797902270759266426495513173351506595204097647756613933661493399639489822086190002499384199720237973732868020856644230988427506868772020086685779331540485425047135823655509927790759766425397556904100114741098161259857413065303933503163247493967684235963454670343157392691340623715772237118446673463959410498593462156372997751860455674495599177939853100108712353667987255231995137254144813893623006535774426561791591261460858360276832045264333739574490091636203916541445998826718146279133824899671123603693059557853365261727159823158795536884232467382213692095359828927294729077585551185464207772881398570479545398083088619545373399305901292490212005018362167059539324761542228263813875945424270150026518859877958953075371258315515337452495625857002757508245719198499522659269767446347906592690357266321116807701675795387205126363875384331802611068152354131734608996552326909861956273820490698015797162886588276587476203484038441278444327767436842565709075756169143707786008026264429718477339205016271905380242108401759016113049603657807470186170178972735673859450236178028881503252539253797438856575684136970029155487292964532801930418760060182025594635223241140926659289232495364647986143230698062689984507116705258100905578286692819336095438638590120290100770845168279614775389960701654364736203554512380662624386466798516191194908761462039703519083804495054031675309875458442322401353019373237171278551492556075723706745621750281511574358925050297807297099366954284160448012571104838255816725045355071231333698568454641471383381259973371634802067197341770517706094070342272029392736099763514717840906452675550254869716346165977926355591387361335613186128746800509875247100864375895636384938874586447087630278990429504692513142903244449240849831428552165215794668205223520690797859753635261112755275608629269582758609583428144573187808749227181106528181836731703269363247098325319367284560374828088411052238026431557927499557900836826386400537257468965520992049532801647139114279002224641572826190553964535800010384638293920778603455478284289353163124774185431519541236938014957952207787791311436542848521819445801313110513426912184487808114040068617972695623171334084678349921107893314768910880661058690039041090523849085925237330050474120780533791173804771486723748487791672228362108369877283280629848940258934537635705946384879570822474686717252151989724596476332196462711779115343246386999546993464958798649149686614153174304773103341995383451581225586955177865913386966703552074489525767333523778780730950167308465767519192135210264234509820783661647383321674135948908181841589667461185128381742257893724921131557040221208287918472110980380640231135359437701512906715939782301117975882321563684564862278900742215789328982167347367386959563093368229735721197615033122515308916317595151318821105177981548390342359947039201058850990688063515934304290468517390287674772062678451966370229827996030933760929209165853466583353343209638039245810419063983725098208788191764425842461006250631499147570193432256886352723106993343824170370032905244151366210610044842445766390856969585792337141496758880872371932004467524856772482397182859681437843227498186804364724995680657878173621397390755621574365262158906397359334039804657390248384634512799195458240025328278328480959382175213854725045409464464915922042743076562097558145595613868277272187820390955480057397115789995739182005828673815195667287575784799880562984617325597923498277263575884256110605311231015641832158963820535683322707874846310883218051456677183780635580517244694214195890260741904759653355285824855380079442559517822017089612737842191421461527116246261417693956244167302369821761780406742686201373098728781675290768473200949419482885091132795489955703029829129546454222313398217885883477433253966565835572698207189067823273868512699377061266345306622565318249791011748547930162554459301148877829870262585779921662379260761938682653025770598997525829603074772402786789488346305051762307374127784942486420543706284717702555234284829810461024060131794986038845889950691127507754160839372348005829658725331161399014504106390374606618713159404460167238451522334524810508911828786010835350409812612168531405427240516845728121802085271941972145209001745687882771439988445846110999605529541899858478837894136251455279390415896957994732444881199287181779103432589675115023251009087499487741871267357384954844364292429565163777955669990714171750515949635411934808080636235279850025472155430163299555834005407840819541678307475582132757420821689904969748681663758037279618559405682276658166558242659574971246371289012780527498170906369954868948478752487806333281278887274780637622620562865301010587367825145755537726633133265570001303019032797569730799292605564087202945175540974368270163535902896616013917134740061842648305858128032996022553507767152453095535355142746961190861882173268457905549452794322287445841761694947329464973332529960140544154886029628543011566185241570218741904979797429478306426366923417072611782769408832347241913828943357146842587381837382288523173494769267070695277199336972932061557311986665945665259904358402348411551215302770340751312449868614709358503232316869926376749602347182401400367230611163077275801767680024373673357831944478424723114929510300465785436647342367847479917505192846591833092604568829350552446933253889989830534208769019724018721055360783231720409054463035445603846140607916775266516137419924381014105409563490999135094515500145900675002520562811862618560925746542482202152966325539503331322316627594173837320997485033909921289668370449003783922116741118151369746281598396449219367027511463542048250716890081295241904715687754886576434864887212092072783563615762122543238036878351215723095089317225460952820744110881530126092753039565007332071480781348637270241114961307590645162305175918668175716244813349887178013396083281463525454930701574624830824781659342515858810348730355716499371630073154438376715137796919794193205599425364144971238997518776105381010162874038546432629378451424821940681003181191236383766242121968659114624345565444940884186655947525490380155767905477231085666078714641248637504866586405998979449353845256911211512285509655261461858452903001623505051833625696374979765575454013009523476053687103022916866401475464253567223647899175800076189672847308998115158529470116625515244938859093547031995073213756402602833307419714860866227856884460420622440183689918879573068610101659267782826042611608691538422058156780890347631936634492735565921795983339390903322982304152137091992961182822892418274023229213259047224932320629258954109369608876266075547183176238491958348029344109997918880821952006570783677901010874062756401712771779647746844688525234425113743418614563788215982543970486313132360231687583864606035668323095147940265015907995782607306036531166065398889392305339264144619065536973754118562865459272917144127791736842554299349782335005159079429877458886191628214106346026347718773348681327013936145519313378526031119398486367763922552271419084807586177282631501063309564509764169857900594206388903278132739873918291112484595783980914706799017160509476377497125089947232063116458535817606690555861109654403658804141939031810612359615470977269635647317569053204819496027326980906849687933856183414616685102363277142375806894187961964346775404877604516373202510388941950872369286686508076726671646294342644503629343402429295322020597032228503307199365540552182472394359033649397788328176346840726016161238877859810750940632831378126090234226940926681360104652643365925884716786033103289531937219817767723206209125813687876469784049478680310246129106877208709816861098693208500084874607311705957484228848408768663301050631103415802393628614957314616086661428176926311697630808804449404455868414820098058957834802620383731370824903162010930612495553818711598548378592809764798501479938776019644959402919076677179417734981430299651029842511486068676104164946173227144971820802798261547755224669452390493495796827792640680266190000250128178845303464335505453300632827469585320999414759719390335440640873578150439558050982924241533873760041597785383400190939988663575761945803082078592427188602787168101056333562760711676208002976869412222603307709734631598423623399868178549050964612486799116754786069261594889826820213167797409811770198748358855460789575268895478925065761789131956397296670772674512286224330124689762587507152281756156009727649889048728704930625538464791445327161070041116926493959769949665288960774470398519760682246200213055926704568930027020487279261018100142634666282099805348853910714477825339507986432644477892370839116418383121745403953654214968153907305056145842901530584863043355943134934278007677243877697700052517615554261641904064478025573511744897256634628021892465452961731096487382976816727514360642345361631575137084789534955046867003751755257603881883400390709714315530141334008294683221535758304458152739160071883101595656413541425478920541335414678023485255480390230925509540925452790580130444249793294255443899350679826644729415214544609285784341744265239941075234405022143001680752952480016668749680739450913553992932887040695799724544077445912142079260558652502728224678771618156824677356287761919401387594437095261343978824966642723899497549220957180803412862647137135093576196249132253926822303518132709348149873221680036713100857063624185943883260137152074063174642454645701742545151780130344483226298719104586138475402658320496441945562148940615238786973564967558677597883254524772065192649201244292068329728593860227230135690066946504840569610008750318194429667628033895645151952156836423429468563684165648474110659940000867214024695363574925811128589187109648553311193132856568099397150068547399906006913046276350612801838784645969036489745954415206322117527071335223146295139765447279130223832459157873352177966517795565161038632795015630486473396798062328029932746210273918191529606296419142838566560896938669039021414647772292564984284729212729126638857655370404363631112109659180939173306377429213543349255523317923309188089624165951130602682278630533947227556140063783302080717429782028062540547979636654436897565275102765178225270755482426152018658608894127863518715507697874801124293741928655622849416973807681655236052495852437902208167505870232534906122734382445261291651346604197291634848159740116991546150768004550598914994797357999140406856588644536065576874768813674631018693751451528351357948307405012643288731612542078251684697433340861117762801208955279303318432244599500339379318332099097185161148458619261340235031691772066625920001945653300546808689721194906943903658410678990121437494223105454928677520892739799262920154016795897349230899462141954394823345432935925085727816001601783332334362105927092514965693626780944075636679886739719267952209858639247347059748054237044342515644371289911322253827406406254185220367034223184857712876815698023534010104383498194943255327924406393257331119930047173057260654141848334086003274825049466897560825774303116069363657305949980511053834523883824158242459433055360465725103868275134545575771121769091675105755438142140672045383988360023939165284848645334265053243237800692947782998177813951949740622539441147805763975302310453533749851506625061500580198395197906287206747014204881746738455169508472425658471070946394239434037834040289199326900614246495405194611594459343634184249828240129352038364242895873559906797980136762092824794449381711152106125916061889376617557356289980803670864158920204206537155385602083958707278807134612166614815151224502521263746463555136142541207061187764698752673611858069060928147907493041937903922822477093650878697041386513657979822378133835916727378771482774356238031169895304741955177761801284406002699986893478083689125785928690812380581443327386069512668297738326766110896271826149157493310463617158559004179595656999754833803338319578309189608666180407691667173932138541216970435445471192747827912318885551623779698485115780909731940746714461427848468487060839958231586594047210569648865531928154562603778024993854858727804051635194039305735383773252886256456919461322509868663972290546512785305083457083255164914954532529556688266078272694504149130530793179835617729407024564024911311185596505635914419720442281560607699851825672551795118373342239358786468184799916845689165598957079616564291206312755044043827071480552667639211105811829066831186591527901278938776192608911658175457639632258865698844935781576828401609380815424535683585897288655600786147449332291621388203823915882023437862093847315479005370811519141432349137316168623485015958473503279778092095984562928294159560205672110286098786181972677057504301462494025378984821314636480017159970688885365426035986775691742615986682535041052782602328619387743619976781213630837075786762907044828408075227643134856837264143936789608093571995068640321304789811528883970659019367921366496127945183076104692297422482673366330682813994465072429662350668312959199694483476407247177949609892768618655080384397522867583879593860072887644030609262891137413998038802984286237902578454183090737841603850102080500900689557740291670542022715464369821616831729284643789100935437381545600695275834284452362816266339663997682980360134979809113398936816634993303404967010998964281866162540045210074439936535125370618702448792822291294145405600969359046099614874063425542603701736649507666383399436947808941812384896894291936444940166707483166793287340861052214656747177451979546263268580921822122584116436280143565050336268108341291033848331512613871079387051607129839560433861692238039722190746101000324129993183660712072896194279506335358603471937980798401676224508898235172677740479727266137069976467789089709291062182546415339761297768671139535492461563130621611207356620150890829466104261432384197778077885328858522356161480454846998301088750517591713745973868622301877531666174846385707728660038291703601423535576553021031864154573353535057678230355404978372217407679027613331604827878562524049984300015955818112832547075814212182490325759542933929983534198178601723365624402243694266682857833422716877206795333767725492439034124165572515575282124395308118384603008592297291426727752942717146822048945156081887149233849946570445064199242858354784089316949793811705746764070849671447210338528790859412171126808720325390977042281845917871620715272129114950673620293215353537201911184826129670260209401811878089001229014601781387444525067209236714412744251996127599226381524363184785692179879421892652129404469302674445721978934005387852613770344091750643530210319176758507607784692451529685562642171666395869990695297991473988038128167733309011869715806227866886212306338249352821869572094593654067747634381451148532809801468446368600949557934421112823469365466641064327018512321426672185814872228991492758090102834895571650033356872793866478352345082842184114451187376862263843346952960520079896792915208060079667106699045251617003579447612254440247956925818224381300528797511469664586684821501821967817131481317954488904879191854797990481904230689639633476609591974510738368103365106390235275582698764204340649958144315637908967383348194414550875615442087590817645755218948055722610658237400872173167570245301026180890447445863794150551262142802183754726729127127737766740449721344476133028072696841243052524275311511417647898425077803085538831635280635416689832006378996084516952377186015444812411644880151397092355770408742936502390693355708364272493697741693276171984098946539077972158722130991151476584689663466769580807796634020668066120097891020995234387004309444310253817668281507400194099176644748808063130058142171072546241508150090593289120178325236569985712743513539573138406330124328075238284855953874504848287158804765884609182449209067755998713458134557463152003223162381313641178408258106971366653414578936257269626661396487057292581911957681845410109739569815201876071104225813367481597938431787022277180082784725102490355987405199995434207136718211328769181343363638691368728039766989088562542778859846711621282051583021062724320011519043178756582163065551955858202909111066315848020242071353062459097706938893017653742797304089688661389428354591125217508563102102377442388225857961192452662350178706326401872617003365199169388029076688726321860069951452428597617152586900072963808308112419985376467321753030350417085384636949305932150637001123618253541942184871604843868831869945870157053612921848444057081715849959104532567066443029755283743067742547730889426858810505402235254090536441648163785165890741231350949870109319767640781775814537524296572566256916894054676418095465516598241749367683074316781561681081368307403469335729993924627080032294297224490094895245409198174132613187410590916576451147172524176236207849507197338275796970175897847890483206052771495877232059207849895585241844909506631690966239633399786966865705828879072030518038352887079501394299401912493093167997029109533447914908272285563353466282773273956783262010305183238084288340440280533610469332446826705540288068215509127124504516856120857768307906260438141501625078260068400404318475070846471960716774931596871137890828967505388892741720177528578021922749064403878520798753442486375793518110652048787972330328112191321787644649335554003736563701291160650951476012932444723274437287933767866669488536791206181753602303637329621834233045375473385807757468923293097505832987710771435333109729142519561609858217234578649487198583583318161968252642916634315133749099794548455479742688990919900316272696476069150871560877769630143051538563158759652115605333335446917266071865800002371439606787431415042112000697877603850533811991889589595895442278552210390737200759549517418775826039591683354730367441843687842410819772843874914306348845048033009237871830364459384210027739783173603444077660343286998002859179267185762333873279487319859042227958570400310829984585267059928870093294544453928079596798780752806613142421721766782176906760407463932182859075417146022665886627723708868215662170488126200649570413126186720178800394294685846742294000130795692151176029087417832950573322755502638997762002219418701351390511559472075350881587291600614628392998330883593839235838029317070109226520074869161396086601657990473301361292326458374616411018645471383114254609495531416193421709892059111821685451911917164529995489664151886979430333235205082198953708944597309496883385377503750130931062048478710874113325267649450216264773550301361620650025110992050628971332952572521844353397090698692525742904746406563706220831235237423341662431663817159750449488375587292104518434367266458775154219118891591833103996833331815826240075952411485065676534587676204536008589419345595943934241250907780852736398528105520879169671608034644042026043338349437089846604582883202943720540821129020458483039547563152892899522191082064471778938914196604913411829627378613050821052422241310483272957870051225825900411340563747237029436382345817922751069069919947566489127443415315419742176508143892462377163218600059378777301145801327521885527845799889305866232062014439230258084341162211011037284597610426341167567612152323432186583470041179365223630518323563624656070493147382385030636801965716010968857511690340576912340968040445863102934331560394907867116349909085543900555716659724930634241033908526703372762850061276813653323335356545594342256182785440350065516467834772609765429101437824285769496799109228830598003082824079206679304606795048623303750671400273328185397249928458746003965712207372509159710847151478145972193426437603226800170363521261098124653705641297267088727998069587172566267159337541694954450767427431852543866658679813266242439928161136609830057123493693720630491695485254475899553066550127085591893809685070824149870180641071171632142608084518589056095301159647259115612530759260362080535783153778485124088744800731384743299123343517677115120393495311181421865176998214140945139605060279879223727460298429688501039138212917532027120672579334282098986400352350002451158600275850892730514778739188622342449398056899423929760032655614765521967657235283180739012418937065236542632355015195106783913251674611738893756804799897865062131255609857304240562784457560535980517992401085720439774228435116406430685227498957674349419420706543875532019920584135656265051283308729381422301941335959023315982218132558968316972624983343726919788454505440028097773525979713050344779737674944761115412712566689470608403778713593862029502458957326017627061572697848348450415205013340210753394351076568494006786106435516990659662129890521863127293300931461989805002130309935549368806436250528591566728693705105599379237798564510474522866521778443688833559277989547190331224036729442349506180376759611628010270795138883304855479136883727169181185422375328760645638296654217418992822195941413509661168806773047374531778009177933267136340066761876502683119701531105360547558330758453213715287208390989664827021590443205049495285287398022477118037923324291500078954910207106528259168044545445598271670109270515687580462069608408411030286910969488426875963411333161820901021254025876919853180796494301028218496391828074509511109562255343753101021723406053674411920850527101607750466558657753037888551962909404790366848136901274737319728810746302119504895068367145231945722288092794387744750312350411618175568568374602871716242180645137481739531805063151769076888707657052777310151265732870647983816754806724459011351802396947648135321196736379448971814126947568738451310414983169227360530978979762968320566742956578194513561305192191293203484073262100788940428854151377554680929599017702971479047018947487107283806562696402385523321987549025999941976683621432405298448217418120836300573708915483901020417593551230267300322157153314060089495025988865773979474408647208377805238444759771378064689979487003422235767321467880476534210424443690747274987865320451234793421741244093566647186829876884049713675622480279256973501632941817031260806572867867935616784615631067475396571142890435524290960236530478865120501186030112047291245032707318756356273175245193749147358040470381783148221262421848643171204264266984437518216714157763828686967865358779434510717126763037136934325208680818155859274476914146607601687051036424671340977285843056978712691684476509354264445392725300892382235854649806968532064074290427673973767199258407091132440612933857219277263782313138580633378808214638724235945983001885195254445940510999897875524041790071846771768453959211953214223128157817103572843141524841796725906389678493488810459726301620138125711674593752241901992560260052980035784349419762769722220584134778457344190467619688004658775474172262041508491283500303335903357503539387205182298306268252998469239615152246406275697327913264343332507254009547519628716523252986780652470920063519953008373437874490277695308358619144387967842872807784724930362706722044232601451110625989621468463428731877781677468414510965104901095204966403468623021127006560550672976340680453142613501197400835533607860417888115061219089899147103679282037445703460812268480937759349418932935445351593761572933985093036508947545978192943850908248154775091523589914564000369019972961248584745390272988524111179042462200422218129328474022984943434002333051226914550496737182391568228852712046013829765355568923235422474963463384815510339771346806801043896261894560996610449422705312280946340089714817765361014559141991511568213942932294691244043160994415784681847408905676104887359060103322548227210758685828720134272075705673631577168039930863206757891807391670322561131412231948404752750509827302414744747714532820427613886456300468740390788680703649423864187017246292328789171345482546515676678165245725087189696826994587429343254544407256120828057456647226700887437151578254962274874592558862966802568132004832541388728732698561601448212010607190633658724439570290298783373587128380919637226323439586021326420557625454241191115503377853685924122980769430425522306846358982547965592422997671803732822378330849747766533645655414360021221269920066146826341754405936102832576344192588583821638816251024762517221888278183038909380465716814257248311495711414638300843837285337628940846646558007233836400216644381584638440364076707580587495334333513155733645220292268691789464775880697990697845777879370927999469292529689851789870476906685314284060900715468294582974462568515223838280069511190454330736222271945557818838828620719052013827368226472045322068433011141846401160542636217366629163408103784191183390045761441326916969220070147294645011930619936231427973975343027676895392568241177824275364020057394319418492704923757273424049264518501686354973229096012348332645873218060134498109668030367389133570202766015462611847231362019246281587204255386161829254154663087561091427350391869405568792532522114031686084597705425833724289579461939436543100810472918410461206607292142790224047672894609647850808242873656006118009879143544808112010470999326117291113364267152348328273547335586026897428799026091623328316949070898492165838178256487263117915292788764226389327011878087295161027624954306483129489543797243811379331098673303750992923594480323717740622830327141637982136660907895704433836531225180417605627071388141926491489219381639096390652888018476601365902031402034957539985864170176989494653190045642437777071831355715616973932182979230832527292888435102843593979489542225109933714422885568835505973715345590859417513383274847457371173355660860587845166534326153846761721429317667583831411129711307621671214162576177319757389415727320513590760793003099036821001299257559659637046464766800266181850960070732959106637713925382761920832607320729614260547889280046893326250930278299827229715166121858487461390905261635799125873120553502199428660766516866307867845256340344996350323303076641005040912725386101020811430689136306429125020954304248436482894072358270222300666170056923238499431460834762575427032667056498629569006466863955377394384120043088825436380596781064277546802396481519528997801430180475341619518148189611256540042452328278066595596478045546152390178425950637592604505775386590583636421796128377891158757542880482577049657396880092025208591887395706085927870607293878361423040491751019205962492391102819333387257961675689837529494824118815902466450933190341062957572444682235072423168007497002073675404933433881112838259070544425562706317870988304514334011235692229030706435410033164003463148813846068114163901321211650641694953216968152764136430688916669585266761295459826367484751485068547837272253423274905819994443678620553890206165017759474146879052215020501049309260808351572409089475064577446077631415534783005884040155246370296718858900749233064976052764352234433226065326305021248977801000550393136106622107185308206253926175314774897208647973314969190073917918716100887772533932827437841950297392573156282336936819916091981420156251332771139080031733065178863815971966990280590128409077173843609379789109365652832810316343234587031454603275251858025716100528967153514430234600949815632071425156553890763705420126513411177519786003727868478450455760339374409757219642111315339326976839498036951487026353560242909150690206419181046666578761764085232424375883991441594716173926133623631499245018338609230407511168629059552561597268431828200212210128013950704494043120882094743024627277416101382165901388163342414705584520645914449203021232173688147314772357982948532337077738230409227834792150136743746016228495373114598994567010036555338863811089347596160037999146242268523087529101351184270663752478982357629957859803361360969535417512027320417660313592535401111408566359273848274898484141614943009579975536718025954010534972820589884189470169493951984942849858033630092396435982539656784530791799692827185146034996868211454357291088545857620503736337915443550720012579290421572670274556665274047073807964852311685857427148299481341747731474808357374283183134364794693919617269682834763217095004473109688457518477565609434041158975031377251279144008622782627359246782630984556311282831736639220340212336753838929362709199214068608669085422532276819759551340867610478337768953686097817334061350383321231044154562673989969583259092277847813038696486055364382010005655101314129235642937379223699420963244450356740585182676494567561879833300854525094686502406536178391720153951086650186045552250268545674897782328994200078530021878248221951928449796854905768863179780326983629098525246563374934720860461867356065528311453781105735345348807764875991722904041172950132063105546531066209355775569508087399167513238937108946376455050696241392256392458533572457213706218866973120097418569685124184138001884826927572657684093123114549883211881060450866147812796794647030302874671197945973373329175363745337754316274761172331357865017285603141466162550662355979013172045759878276119662268874449694156565311148775450569992875877153848976715489057528377608940456325162555646435109734622939038622062450809317112634990327746572932763711169514572025924663682532241497635357826323243628331025625426382549542545797642176216816489338637913458237256867238576127551182260468054539668712862511245120491183487303600512434211539615553669239548278504292479858290099518580706290258257729856827917006361137880603444867022003360940015242567043057286861859582204967575736902137495330330623822243907144552934382368376226298475073990714764703382961414599082249845251532642754637104383162698387912170606833988688490769656896678698485826085225448055452745153933811204627648279310498295733985036426885136050143395903046732856282934140263394286495570505858015524446712407227976647485341588378261687607164926890842279327391749916510457791349725220329746558113699500326354978718622466510712106068972319086244824884125547206912275354226375735307398349212000128231090149857266902808094468192638885809434064449911855069688626843018567997896817855441945667568516744333903197292571441571097084896638015688000463374095015492536958043044583403035517117528676549232323809762977792396417189937411378987707963843275380281042132922093311468458508393314946481380830429297626042549891252330253203392173249251707151771000365488173334092993141017430312045107702447114517017285160253746459176750148258909699305551289245372596624053241512029709926668401126983177648823583989396642863973708795657630910630253893196105110346005174795753645177971434389917367068057836248274406118239832676499743063261036736181812648707912467852694161197463904773636957165867198481880860483410500448241715417643693743249763383997025547507083682371574702098774985761155078266708438552540202798399789581650999612925427069830012778259518881477982002649717072823224828102616049014486002953462149317773258379728684049750405559105815510325755201851775949292124526983950693210297455105789455479989566383584862023148279509792236586406277083894779314040735232753961336852920492242729102148423758394994548524457896163334676997024496950266552739969715702578693673687216112792048533889843882600405738874583608070035574902187475333640899278935878373366475253818596279871043163612792678711266634753808598128774834329833599109345998503406126576716214947231683870423877953629379437617382542476937114475459395694683310823551163826811577637359284877292571240583334478857904000740781874675552307854673060039749909797733257706671128696286248379434520009387941415852255653335545396031810388950016270259529161833291634020766958147678330417985785124051716951044544604897408812572130988629958530510262183672220682945860486514183780854323220844790828184949829806826620937379369352734851937232428071954874598241847171119952469095520473930521544910939575359298688447411012358114809596722873270566792841559864524474893339845045066266627478727894201104167502895017475977930931902445596278420586342122588283905367809628899207405095567932493531379770515358644085563356692134205691675828555346134668476997272838640735622563013351679068153427506490200570675551526119000130004377908374080920577698497898541258122826685631722371169217446609443403532444054404263365096541555542203443419137394463637549414114191532231253269347912211297959674505549181860896568627778468155408789782474148128718099608882654894384387420827619041371145271591478912319893660851942531585229729402434662638106526528123993343291393257834156450799508968865951848743859726236942330309500822563348195968097402649420217788656892112790010418984456941946420584103581158207017376994773499625486907277771053119564013062427301465247512808968008790411157429225803878319001623312162265913596583632765986539016756012403440875122024843009022258552852907963591499079748950927366455430239535309356016172014280012842791678868668105511568724637268081956937001500079371406288692579824134642984641649627050582346977612305419202568708898678620226834663500700909034112821848889378241347971664861645138282091471220325952336693084564052820502778211112419361882361320141964432709135165995414935802477114404840645049336183516209237825822012475299318071144508577194265765906446099062356390085520310462950067550709940439280653171394560573024194841734301480132265371947005007646248882388269657060433068884501817745043864723372688429024579685466542319885257260628660896266978699084692663482264395364151588180361894819210380094663180833821700644529578144611722775961709908312952128371812389488252178368998734006499329136926541239197968509679039685555904182815045636019706237181421672679499559504263640305267232554393397599777571964372091717956188848760773954067220220243205397817656342345358617818315074499786296356939529109376544325546779935223656112692293906532515830989662498014325642026763183662805827676657309126522893633379888613158016661391147716738812099807563483963471436066872092587573469649181086454900174274772032796764589972718707902481567983771480400971812004383128021932959753025996138880739622243191960464572135145406152755892473341346228844064787675153137147923384052370073128298288675066334364495833826630684697790152874793596682834433690564594421100667718516048475789649988004392138451197055141662024090258086648298600549279479017205724083383844523438432817877099771158569651214369618172258737250394115534191457769456325180601375552443371424718852809442496048376226831155424340081949810614589099259235444555595450052129026952014620381598554223132583794100258868837352277231558601121430153341805707633930750062700828156281800891332087315733207172167260393062398777965961787422736927038367724551749981724815491740641450710068586541556409785619881676075715399614013184441068413669602776547802340938555126033310506377425777052286458821485214343665365226087147823501816533304098074121552160022105673893494144562190784393344348049954030681350006524033706462294577674921651852813030230522212351840887889832675284172758416359644298389159548742285767771826547551078841884570582973604210535582866598969771600226127015077418803743210499932189746722271327244379610051644930820315611010452452972880367979774577303541688580551328589015119513562990050807043440873226073673355131845783801359044800933348091516727829168413672366325795420293603417330965066596252138553874475183768585619348974568467533990691578196366841499750237959662727435760520267903527054208402872898473052948392348414185192099998307694474209509715513328984948586148924420053046807773609357810033888291563127006355350374722163154279478556494028212187854612065459626407049766650447785644567953552874803196260682518308805454886864237832970787812913190622642481354670289102398859729972413581683412285462725658822779954228919766062140822571033661691694972697776527553550762654118537584169959115858169670653584928632527425957470492658383751817816538985671637590377535127571548381518450905476432158883438695888360078925489323858505931902960582535161566344286609760492514782517939096984546739734231922950407115135657059399845137578472900571690888472507405844230206415173168523619354058325017485404962362672423440834780458268438054272691142905833004401778775429642856616886922458084932493652488735827107321618327918939944957030705887498941741355669905009356650638356993099771819556860692002377601016592014276403122885122557907091906929492880389232009168665305600637719413748973641833449878765928168143946034477761292085252079173034796074581952290739719320357370736054116130060299509867525744954891810536358570673561893218238469514152907680927449219702859582781673464473503229369566476434001912891968465165269172042552060854112502629475013717230968973243542945814987082900921063493453116654793755136827670652303350335626087531812336627613751818180553663849541607769802672732885633132832271514534464292841222718252656490990644919336016183242552098887977799838890112049065704500878873274149780187393354522082245045170858936654023366833050480443018444298000474433878682553444718986636307887542576194583774204895163905445734385082027879245673215328702179942016069667586949849501060991897012238925556403590289136615588497427953873918474006254536169989732508007245373204720571273527232753672479986338000137962838429207410151138599078555835857230442850702903170217368960680699113558399919082111843877375670579561983127876205304949877665807958263798764383360822600729260726204526180848833957979947180646839959727074809103473797064543016327131482193426227275907452674499810356047382801365618237621811113652209162178365832445772510358702455675975226637411598220410842012757987515873577829287559621199041181720481819095056806791874925987816570173180629422480682720630479751601917735290475690429530757503773799341967579586008084637727219233589795305327342771442745071169148480803569914074434844164798348518861171981160075172526923630765211971722737855592055776330068475493571428268155258348676347650897308469320945098405441693781733640352479824598339893781091581785609693678291349570484286600596024759091975902005724040311834384157267027927890841326970971225839713545787501677168257476522690501459003715474525698094431915620141690200179659300776750466330982489749999360337227755088426434007083722389939604774897001803685706200041704153083774617597148210569566992667820874758191627578611522649191889927219111773250612899074899973118209522794680236860912531423405741365627151251978986709605211654663959836600378697763138789122969659868285288395888509832374182356923324913132553706721417008458028983453409712752618653494209804131576408666844714719490602659137189719842895478246910193584997772860955042602577267412585517242113678496697033646710735577106135183390122297341457153407224088125883371456579635614555466386070329785922441698006327177697525469358397357710087327239246608901722156368348739922355775579687609430744972465472183719927901956903760380207892205737263824841484586446927555769296811609627592229864350095024925129400456566847615634636025713397917886721840026083189528124245558906200664805122202097126990458721371976738727358238085468780961744022081721937102574861969234449908486784139323849950028024339924404284045893970458807481175565748148804135763030958932486950347757412995549039848447553025996809890006664309684628408442970478583966003564270334050254364208372756397322177347610002163332132404270358478745345265962823296744691178506785172932236230301635905226657150184846163619723736103915908283214074670811498234288409864661748488885237928809893695157385373118161541661095630336244018510223173632565178404572153075378381772013623683667433365056012309927311933995234767148257209467554915655806894650124612960510013174007328485176894175271399685924368529564970974749089095645270778345281200036064981623015724721139569765381597570843520590324714587938500188554361067606369473624920268381156412003606077892869926180703984454098364539733243384863402236462490806049217812747251512287040627012302275520376854099794283294664657239104733462628324954940655629816955710863709908996241748794528251192358009022329468298336567157185712043476646661750958780677553774701184252994074639754051893841600192879689439726739768138357689565756075797459364410722265786904522203490592103718458464227125036204588466800971630774050989609477096129927886063664461047744082339912593827952978633985789921271872515404622374314725956293488813541734006246657058723718121321328275275772383842319100342227030152556890777056930262827284529285575929827906185720446624878097579114673827918571032070835210750709702387395335619634678166398792496511459061742166058592809357518593199107043883586630953039584181110690326065015947851605407813342020938309934452576210788694859679585672864594743298821466367196858464571830365434816125137158042243934719526179379855960217924353154473874904752827286560164687256157426141597600211235252473874134994672343421097221911359847776453400150830961954867235225496508977308870942823573802432714830147573269989206602044916925620352676918136704548114371910345383655554602462944480082443386157047413499073282378270781089955996160590166222348845780491276667978785040608020744144852414245517038753886867190318822241537723803699256464619081407187293263497844056516288458050968250329347542229068214139535836149000701845203161780906922958096477751028382769052583004441740456713495348872886030686759364559457117209374491934347861372679190971726431716286810799948617723368047200360939423858814176790938774825173256298470351524741801553645128084277780703951956192434252186205741990633993658384761824639540449864395140948738511756493486910286809064707650231383202000895862691306140132032818345209106224789937463536517987191812616900542821500530325120909208011521124076780741622452949322590563223117115693758516457857581652763665622134202905435994918037988873864065584987833447762403130322231278175064330481144385307944933803237972851071298676505813906787361470657094729892974829712278301569467875890385070240651397898118389638996904661492793659377326211745855825858010643169070176969832613700444032343450580438382587187955600076882420715135635611390313092382606384039566766415098571061485208777787139512846473359966596217716759553467711128610804218500630955705774311513146088287650925875328184326408736189229963692432754817137297308259585658973491556434211578921887872560000585001271065219094335427264915477828334712141056429318445338980888949417626325039040661663889093077358807682535499759799872147712262115738764313358277054891865256838368196921111110965062116044248490494990079163500310490016256561069645096791239816024951271995918945236750808352087723066796407577430479534353045238275964378589931095313701422015676533209942696788211094447515720390990853599967790918434561266471596081805759612670338992312469646631693476505140716684073103391811751353262925028445445486975685266415772263344693901794947179959144840575977775776094969778301007595899019165378073982114018998763662811387393743456334200842096824156017698214726009976393805275345483091966241680448345766163839802105598191899793134548208815640958884745744493679672392125373119133795491887180417957329563811361170041569363236903921101437003849560876618799164831068722994542924588872658555650242867609740355701169898523002465516679279463921155086799960502343710915254799015958357329223871126157831552132048575622799000034291879461039845979609404322903962789444480616411668321481068530655141322006200891515166434215673125234436385185760816098293468448444672264058241869314917793525715234235088871359124168041707714392436423679184844846025295640872882324468781445738845347431717811627817022135926528553465083945359486764411824882227179014694947655640928221316016266646061855782827010026909568642172031596680108390750673104871393196605544246751104152767800311028315542334631372588416802474936196917248486679592756413452032825290965077775861495372741527465087755337659490020935639608000654692053615264440458244515691590634531371075807849704112189113696964862641466228995518077767650511721473366360316111474843226703493530532983296056888060165809927680657754968807298344065407191269771109007201875908716026491982952345260814094650185175941881282181550208912286493600945166519649361818392227485335969283219973682930481307502337201191639177255181394495673268395557485149202927512062176974002506078342919402884763489424852806311163118108403876482098659398400868098877689844092255526088115893254716261455879457104720045773490179766421017211773638116729913946685165166287817211615825858709679647979627229426122719571172942022119484553629283565847723529925559414835894447678245245477822747091687869433048770002191628374848170404025279129684898517405880633697069209014192077521401748759170969731785402473430758048497488873516941772209493828184916961112684282430674330408684852604349674117235221540275519574524076434425961811795967823596721499692248552410321656450823972683191726026024900235099901177344118969778098874833933182416580071280530404979145057394458779715727838914545878884669200775749856478431797127879796610752859146761029331919513570545402318998802677433171208157883407214920104835224905147835467616783612009172766208725927996954863654314208841586287658237029075688495840686272967395153561182422829778224908221858088367021156901872021152444523330982658033766864458274984781778381784700807332337282092482262877851759778222588348908912954415697937136785039512849981174296837989909749329525539314582418425591633208630102754673422947537158264163238491291024305003837301786087748005983338856827875209728138028931474118678025057592234155851813178704184127491287154827734677316662913365024118120570218147778610772814484016201727361748706229007157044204671127995642104372197621772088993394133146466872531186057945872202040075620205429767470930767886714524400500890079982418077790563536532678610377425452454818676322817148177722831668110308255137145378426411558370271312988397580195159507962398994541581023192026297972165332545379299397564944381579924045067490656590840287057355866606128571521626815909275782709704995717936786019337335236642859682562740339805238064867402941914060970374378146671475940411362550384061108586520207964433360517237800865952243574945846235318942620802990563774981458676658683355598377738781516204966516939375041639106884757418241338797314881495141969019314320980158448589758030571008728115855118484742728598358007288256669344235560614452600775478956141329937959194038345816920774002038892749111339190505523411791791900095206330970803503144953667105494756386404722157110809442589126968556916519717431588933089351618051609062089461114094863421425275197408280258106927616438253188032381431556830368994827572513678566008411412631597100503514378470378645202517880715250191882585312541806469518621426880439408208781239853625748742633992762544733352369039612860579858650787027003978559899077698216511184951185983461816976020531693789974486870066621942625995185808691693996144797303965043154250379898425050219505820139263017616860263851018056550969822194698099114805857342865827213143355363627408474436235674900394164347133976727494563629775345033904054170587017634875271198764390432908378619276908831685479728687751784578235566080170785882826578296298863461219226020530276931820960759171446116485601207532763141164767050778026878896739932654942745491330637795117463454121065391755530409493417428710551431813358964693784642067029783418621320612261801956781975647595470447050551112337827780229570828123892807897693147742568131958176092134114124119660386108542046570620689211404820551394256945719637458977807517159969916675436979721704906323878458164944259954478060941285182067559023319225950259898724268063451691946975306831831601573073533759382588720163243221187899880304490155295616256523076942125119315699978209052778229892459129336171843144569565354625241616101724410593001445109783762463588712311143762662566129646662806472036735163071394351621082734725144500041974513702034558085131145076327636133813915920782843455243300247016939173241489852035313567379311981403466184369163866858921554530314352117550076894928792410030003940138551704492022773111812406732100412462342183076479783904560724145371204452086239030730474157797613503496518044416606325037054653519824111445165855671269971693996209735201831362628243156474524624333349083946073884057306409409495788802421215035203251026903460571795065357964823858190881363363301727990506657262279434823677542798867043184243872312180642083832627291792926303563748131799662573388724726897466134728261089464448085415994536093138444690229821840585992794118226277316570695141551459436791745935298537430045687054063196032817514679026320763622235449229594289976807921754683063441051079701819991056148907072676824757778572089135899445044214730550479757064904604301049746629913835172702964234893260986075040762807003183969447045501253056277760916662452606504142242060300504099651200682806301500809507996367565091793376496797036560876180629225793488120153113708205411394209450709761067860373749204991989276100800208143272185700888805346565971165361804522891571540864968315337231019154107524762367162773085741375409504427591010167561233969929153787740181618002661330276399944878540942643185907056260803890468138469525358796103436671782718768770021777355016417687227405514869561518671054082970091148661888536612163887489012665275136447477449951376255846319398538798688367691078117649900733702239369617200832537428493470434359788021955323916868165162163982715999930564518587441819611249118196420043205329418345140667494761824478260887685432188086608093669207314726505259021288266638082815399429789953424805645698945082078960031244025907484400781624694909055289589876307939190654783966471273180158663346796435928224155640698168992909852544525012117586903107155135632700268146650661840742863265711418569014457194865874763095875594329201462655273418405213007034727707927581197227502264441412341971151095332449714251948116195541099617253294139370561174727047139306940210172824539411378017580625415992852429723462492989252435927673433247565924671667556118505841924234032697855356606999131101472045195785755264556311118222941994585881979921209524906445761345069155631687238233137389625117952972619910513772481952517383791065073841655884467402738857518990309029193785579765640323957846658392875278229341019414999390198096341771516356679716974669663297103904856090752834440630679105434496863642558476864428810661914619405306992089397484119985694921307422206705361979709147675046471608379598699137833809106602119841102758253661151947553418053693325186445542786642115784416582526134648496627286546947608321883485340330344114003054231091506128187588625607341594294137298699399970776796079479016102571704710072939781917430445222440813417330852109394383901220774070278297120105914024866195693686125676132987226235653081375285083446573785193102388141585389614531912224487409691481923815785196628394140608116671070354031723891649345320615717749033234220885801435715877685939907846783158218775802521493633330571117993065194926938898096091358492013871140136832577189928296295948910997251739835231566471126785080387666493921544699109747320700587556390534214208615199010355841321555456859357808263606813071756986106262636477567949935374900910961703228366758439439956468952966100485636254211381503525170973984883816898746120703917012045955687240543410866739997278796761468584584399500568506159411387617053749651053992218343999905471726763887965242624487562476906863870223661488733468932861096019698244213737154596460026057858415917444512904308058373628713502786389444168289387818386637695089276547708781522319327105644785836723248973498281089781730436638814626150069063217692281941823966672127207809717209137715547338004937447518954213363832101298125991931939271405165337509054276974531686153988546789058483110267901446266393041693117946841414314754383895071229864379543470726489714306267161074232757094497709610044009793323158004084641953875869082825259607989120041604533770564369428944815977773188449583376756644594645196070281813947664481797025495630546387275464573362125030781586065017985704021784562456251757480499473921976531876975405535883743575393045903901519589879666297751818740282122793919117353381158190072587603092117102608590956280334375744687197976873445225015297108883138493482242859775028122116832488471997461758990192441726755311406546840772764785625823442397991357655061332365087036295758428045850788581735118119609187456377237723286944809760415497489456811981022921860065307262409094097743331625238711347310356704060301461499217185588333697889640263487939815105096438703748302185222497803385116543114963627179080351568556727411492390549222990886958615728166741626091047793248938036187234274368950409228501134970784551149152454027678309309316495848722106050423235348819825601994732435868260154044696447962249228712457490382687432675229996125650613996828925001354592442726592363282162021826050643034133577521973749450821128351528812887178692761617981367691733298995779085782835009081040409261411448546148777592047420608138660679195464934772147922191299951429398242182650059527947015773721653326302908496805181934049109095333448285021306263763929090184121799954017347023565566097351946072408523965839652068135532313735069580661999972478945075283405010909687508872015505857596119460359536010145219117591070056878168430307435819797416841720628372161514810051178135283652913693192010343426319663521537770775179124888174200796883359728361322785375809618497476476042686046886373309911183060017230911046551369427636006582764814068925020973909916585519440370773984301659601898710612427697466967005786769950098897764449434073698933725613751505622968315618270339420701345526668201947174825938042630503717480171569692538296664799650319642621003077680744042811878948854945958384301852413684991086626950478090355103351405712241692035283819202477688917759903618690601105698656787005235921126644307025882649541615506122711906798665228642846828352208686331517039533394647077062669427146531305862416737200898876671474960067541607931795283494265478406556693841646118543501433329443402771334885629099008156008435750608509919909647000854694628871423586320879054166938322286762729705282583800547832813954928972125942195740410923293222584655116360550790526836879270754794237863084364876373868823861377537041139237570431207243396506788357564472357279915884449175842241284519136189345778791211311766827980979911697238984547336266347460732190256276735002918158566886471388583319880644712602889505142316250636401696544410658415977555722964746584275795833928081465508214795790540701295788509647643325326716536375385678234013633589061446419798544901960929386346349268280424002587875582956328901703982427581938130478496581099193454076632232248734348629934406244060884271716570592912820862939768204866283591359248633070914841068074058758677641217663878054240784356888537927897955235409983894367907310792093868620175899824614838665893213953748236248697055836742732048432499527196949902853625477680865241864511972657121482555778280469325254222336488053882785987223749951144028024301154496057584258999029963813928856777497029233851894802172592711728863465733701720587878054148983641305635121883983197994924061336972652553899554116770979935408362981295330502707645739297884556367959733532262244625398270850611568019365512030392012982507454387021599399056354119467574420268915346509489223858480146866865229456138462622666815343437060445534574290942037390497067315695644704698693181465662282480831644199570308124010695912486684599112329217888490721274712801777191562816970576360852524119270368923375623536157433164738551937429239529481072585095144501211918592833354583535464158749122093139617878751565810422037475141211912421818908291581907631770078236168371748808698938123196038206944686129435889170790082916640457748234984804652070592794748833996439022750579301410812628725617439384467986822721374030838870925620088561511067108122788835516841430136456370268370901248133083568952070250848139496933568048757872517004333758928472719106441501811163934731795800995822306937456089030477302485958780549107892997222712849359429119882439709080189257564218087587268830965229715856206124170282812179514992226568023589307716349854689170304323813551126813498997367292244402780586441413168160207961186837555997397327106506582965423477143227917242099953923387477527818754049851111686746339474270011330396799678310694277821525281020038020510759300093017115441042000371256228105915770637088387877620293857672635077145846566293597764330073030973911215911441641675328679245629067818071110584201072496467575204163063393058920228058995450122529794896204428320008732864307866118827693271986320352208691277777899180248987505233927867098331656095064153306294623964849183249690980014039569085388780158284905086916816357859006949696687960070443485145172247556614506979180773052355435833719502255971865808021563790535356075515616680013128495198168983389585357247819553175454518429961734827061361843511771160857490709602704570088360059022540259716353081318347740214026173374624827087558253617870709354574115775600162207192539702437573661529289111810419139271440408201211197098218264785802049301075490907542658297305778712926253369429012085908101846236262434562028095303156441574088396756430220650099522273116855134505311285479956246034346031755641623404527746773346846393031503292655487313341932385116210674197918756330981566171783916540995995777904213034165931332437613766941664038893731676356799853123732740698622194615263799550016348242738950422056502698511414328950106044123749030068198156991634849526029791178355697934956979925353199852528032119682477652654258564144765597417596410484020474917472000558105621893385408919970357508720380855109054299689285736030179829580401651787603255259629140656516499052110145564055313271262561947381005365924718522300612801586945001913117371637555895078586995421390069520681311667002951045651817960260573646712247138043304033128812518632284586523780113508224187656152317233349193277797927190857524216161369519731879099968097599710234640948796846651238134376360289693700054361795073878299246909404823709736386051750493145189510621319932430359576313379807743433662505859463332160643873569553140102880371129658335812781394818225847157747328852765026314756635907119274274696751236399097254500695692505498617973140722665999280067201287621041432847698845333267638250015775884103137601010023214664513332326929178115308088439532794432151831224140262051977474751267180364793391600544807585244127905984292033354495954081946177472217009301184620494025582957657168525651431152400709080803898537378626198870385168082209738053412848730025951263193753433551630520414740707533999624029659880861524058549132590224326305252500203559584985543320579534928431092393320128943363205403276085140139571777315542466323182028500662660144180480615901181088807246261335132322895755685384505199699700880317413659784368789433883850118845417047143567884355865184535901485511470828533177913010933850540839904501610539044500740205568475413934150712523266351050766842336022621395844576824114332162695885278948339030860101755498864834826543655691622029182204064197902903615845764148375942336523189078140995290718405730443125817610439174036538984891288124788624694356099746357597232254829769857654086104411854944207937691487075777998633901991336694562606181266647004480809071452701417870413695549829143378540873213490724046227515444939001757192723433638094899852832339018921833958145801721480653072935593807472388843359674755222082608686183149094031043644916444473568192752131996426455080945486182810168118277236494441765365962388846765456595858504334905808429671538677293790210897925093797202113089725829043114059780749353755211204269581695527499285692259267349075454354307675066423253030302588865571388240528419200396928874699060296807374361307873158204018836040938000454881498280383032303899605947714051717177078590714264929865300961793751872011600518634115701843636509821446567515671757823295677127504024085863963361834526588228238159212831830891420190610981109521094140553665193278453809471351543064168316781189577528471996947005261552030146886350906841068803529692916013655400353593726433972964266183602284878051391525437888428959362642974603844287537949470175633645671109711788435117022555285166219996572388578346015040162819954057451803961533536912477356115676203328023452182650822615985901148719255774205102305272029299597793858448270916847097804924535852660564736360632159986200286155476299593995442858376311646991895399407594412811172554774683837916287753273495352872638270485088670349106149431674177404218386179687071571053548767160214664186998314155188988498119862050542083942365975637543190128783875494115388274599015618257280986750899838707472898764023692206038778385390102986614010956441865925163714292244611760770056977081690496283376388053135912232252530065817276589021408890358170303381931272629014483993601014233288166036900110839613243454427776028899757974395835094716138570703149558651012551721736250740839937857274320193729103877920877395556584642844609049438659125530512026028667442310052841369324338758637413932036165835520781545969658496740687947088654598169541046151119017469671685459371412431556625576853364369232328398078405888422287837884648193770319568759309141480948614029508761971069612494398268571640563548651167991335941544819429757402167429393255830546766908872732443728678315745464689578641599383378534149956223399979442239618188439666819353430128194074185018885365756531857210797026537410083796740176125053658067732049139350430327389935024809782136655515825521657759689683107908447066698101469249876034280877191166382102297183367881277352967762582329726178952080876291294306466991146044955314504811706399451996522597769628655521977842286756280069452973635187938044571694610599394196171835658894512590445004576140876795996493883122247330308867624644834678871528767647611911960090612127287150798588389267639987951768572283555716614012980732916875991308066118629989352983352032826984608630565452645732684766174273088081968839300712140816594049466579779813056318688608852320710827342374748625222886609816565221291948130506580160155758908116494614333262277895999131222358002544545805374943149866348838246801429624302044244158707851250399575237802321921912823535598464601961695062619452252164102316773497463295513579994770315085296385640180813592647977066129548323800522313997752049682952423543804158346571621907382310135112128658347172110020777345561929707043586842264930580337075277803360514547334168769177294383122766860546817057706549158111445145058288068452021126221335486160889323971353597355399484637294741720986575532315932145687193964493868899720981600533179099283310585232799051836781993175762355214428948287509612014873758273790772072874973931671384751024462559246488683744509255509335547759246514332411067263124264757969298754599438683436197829054624201941439375306590186262956199987222455720589399866885734738078453550661497892684370860970677940171439329381232946647118071464476706357262784148935798598594211430718735481956455476718484511876034390989689343063964418472125761662960347881285221219345509133038046432391978098312905420192271888929262138006448041906181668544591660032045370254841284346044917995716434364674753082089667050321282076040528786268982240302826102538904244472774630804314442426135974002168442900810997662498709717932860256797371461361900040414067795743010577484178522236040406842398214189895165514056326817632053955354106147756685450397936126233664852736771283253239484633011104558375569415078216825827736319365611246208807344735019896921237969429056098159593906754424860696457755072453834017715460509486481218176784110870412229777786180923773726184225412362247180660129684106516869342097955018497122539041057676555355498012199720102137252491671309199956760425262342584912003499291985751767510067944832314777131758506757407065598928630581894889228393783171953203550261555367272226594562300031341910268062089351412261202605005567522843455400292239359666157141794052046625258221033064570349987604555754943174911386925999469465589924975298761851402978055480606310343857269520952288188601468045575883679551463839483970705081446259125851273330439951979843487794860039528425068167697357564470669670734876154085725981635866732546048868425166863500975151952367429344356756537468920143249075005123387569551802695849671474759221608868698707462198078932452903569274024909452749169443149674062502442577803955241124619404543054374246674127573982098936926810197656146131514716755718949669349394827265120285602798550030776006856551572999295299676582792118359824672814839318111537832028305472871857473029802925993040543928129382745172936098396985183139933096395944607041806968075846367919918569623402538697238167183383889210092949485865285996882577300814385005742216895862451573095691862901644788533556720143894588658871405287158546397245114689102503923846596695139958542660497566671463921080169098323537482566528326481305509374135879220731780351768772264308765848432288738214058831655631613931185515825964034018080231870988682680479387022598535133408766164547899222450800532138915201222805059774832984756907009837903517994318523182884452838406875202160077594131717165104232455970222697154603063763918588795163019056117810432662640691265324047200942542083247547841903973318030419684879846290261301985803105257799402341910227310932894883577270728228684318493952363694840729878747954665515948278816370790675856686347735742362495508010410733711579104924917763396980183523851574995265529773964224840672376896174533871764796536112077282638937221420633692521911037454200288575980218140182180068087680180257711679732132705616569441629477300259558376918834239678426838583281040048500554581967451053656647864205103039423524531014856188585443537702197761436810889682939050658686449573749947563037128369054401134809890478431802707041035708061832342795897415558534688137416818584349558389882590877905575634366724606746574874430464532309179297761234330018374752998004490146173240060359916937064277486842882263105074000385294214310911476457504756815418562990446012525836266475709806502371602449459035384768099807589345790747232209404110047282357057388317699214030542786822491190961821142232913882833602685713121772898995254654008792613265133364460755244971384907131553001702952408358427908791177882549914380791125155705762227685333292352342939431813385788284926983704056700948840699949684913409978556678963885469529021537623174562237679119395006716801630981429545804605532524087471171900918379255764152931815260190970402510232740034076377776342479640072955619401874108200949782929239938734946975684925920687851198216774598743354139075316221661465792371991041951007132588192738961769980183259945933357202400081597175537580170129928647337793970093222261740319889921105222567970073955926884091716750667403353928796143766980552630953548663390887583579761518979658725877957767639974822788076389574256922856831850264779125804665423909180098423316929094041737415069614766319861266446193376925219930734714020658896622995347740429175899394542871852920081258547179980216435126091103184020286798167044217661321858385969920599656459320440140814370940859539162341250065688294677646100124200017412220230455821172202958842850286950424491902000262615653402808504874736348905357001927035933359502322293128561859122082331451893234918657081503112959758791592899387017668028066793451806873677707641454253571486429798354908706212308511739811202983697816416623593158999761718593019141619524266165969398505021318472788026468623044898578619601720459703758334769591910416951129518724186792274156301801196371990924473141232275620078883599101820187773093347412240013822432103980711518674791238322046962977990260173163090999918465745664976081468600019184624870658107688513872642966187869182603819976615054123274752773501807282020318758465150905064312785266190452968331504936804008951631477478282699667264853514942096244847997334173355027156183135278063145250332215206546809419835896830861036768695877046451659523253415661175437134614127814383301225418044385016456926569080483191475355066941390306683665298307275071798926900822056364502495945507475004607090981873903863657244251500785558240522730337971482297095600683871349572971395689750553507996032749633083675949154994617892470072283899567499997729780023358262413149970835030961020123993228473882049574231977034916192213488698059197669477040844918661384260886638689514844718571087345678446572550447691248098474299447489398512205573080692275167178839527639350751075522335305480521400022347041229464408982827046106058561608592847540728277010180770357796576826621979306718025219014288452129518396224955258890134628219881721997940534731272276960446397213059491247605901726827218592529470957117204635759666539108092922014640748789916877531274324157826693960577017311267187399062336450947196291103031665124147693125985272423309153761118107289983897184072271561908371684926726712805297343144409135495731845168722301782657792250555286093844228234336591967045366750978975364039573992345451385939413482951624901067629988039379270052325930712896296483892634909371580255958349844516552687526378660409959932442395408350347772669183459953783062763071296187073185641767130347403114345778406757338190848737289564552094374381207041093359678853590003248573832439831842715648324062219782419928443410374095634952080886209987459301423449283754934390298472782167096110739190694386706101682923322157041586238482156795959913428526649110243190421702749276260091846660219722883911449445800103022048509530155684904269572161944216016836395354197257561403727051294931287913732665636477242865221984225301573716738040891328629637874988700121337082977711131289680284109051212591665817876911408093104410829889014372743595922393779181223708393420034740098093497677508690279299980031409397075381898567514880226220121388866901086518574154409405138567710798420244210672393731460450339085540719149814252681263957008856556049079429495538184887113559144406881294716149821806021760841397931254683142648247935772016753677021863840840602065951473288327709372645898546591285283397178174662789516378668564112788596287324724921187327885062006228335217512976222853875162919378754664310932578688705493956333291830797089947764393562565040621652540731174450277052122500295379197483427029794712657211110520736127513587263717329491351818484038466574049108517371646853153317430879158325991445613692101654358285383901620699616892237045982664722721218205046861323919193957209535633324345489626420845091528176380563278226880992357654468950019691918460080986451884093770400388368393444614567920820955663799833253096483713628039795673243934663528897756783522340728107193786844825931750925374189343483809091610122367318105283790954669391683234156358969199507096031706167760822042282946015151684330456556525976030789508938247470475192142471300302740719922729029856481000529279823504074366023117151119581469238836414112461435870117924434912975908847394612481430889773953593667017733751733123223128062058546822349799956771250514399179094388110951339266299637562269774461807770544969012859870468165603053003675828651592696352446344110481498091784371901464654381072404778405892777953279076712453870337630439314591437784264531872790996087741290437276287302326435508997886110743973241309447540191852431539834136231239903696138881583885060067585924528632743812566804234758789690622154944294416533435162661165002820174351754743410890089878579550752715411238864850559254553014078111340201575699957190656679302325424472594013963598070048159721982752170046654813756905845120802250964617409766535756864246863930311002896158703686498032287618422720045028501397052482488232935346612887733744367965892092485094964102830526999436464069077502441723696741074255516388769607957290834413734295920386786063454698033619679435171450238536996018432820606343282472211316365728543370954065486310422553657313743200309509145722192186417952598875311546191575952688490499202630418071517769780049844415806087972316628669286745734941763658529901484726937515295951802013612306806416802845128561432170366772737611800714351972421418462056924542282197951977254326981439030601828711032138652634525414606990023435646829130609444079690431948823040324584370819585146278164576841467569597476073784858998889150268285088588541660283693987906801720965138758912352353640963670729010210052436725914413649375463935094853546884077355976249989927518733818520229879969836014809803619824230976796131072992291801223727917841832442971943398775195829843806497694947786734224897052684606299137899762865566600207502011390975195710806443797204755318942506394039754839370817859460312345469558661165723039980644088571107944863216863227151113553094164572880704693010825329104356277283023276985953980188511023258081737509815591872211763881152730274420694906241962117451838309159647482898630193167312202199820782808000113217107488559503226594015016749074125470064724086640025933643334994376827602649957538865114746192833195962886683348505848737161549325052801831404421617410188051128431480687393960574152727730967667225470112528234976762456290702928242620240890508886218619774724286340045592195258430570579164463898957244472176679795919168426897303253839350668134912029184254826015952200835216732806674248674575193827858071371994714735764978030661243872819185889417830353371397332593905760738209339034545122536708581648591545461736818917051391296189452738825072756813133234363303471038806066397553194006929704658842165802945416541489905509041905097670938166612790215613890726606108874789434155836411900385386113318508424194509597109269956189766113856213593544696027762695476155640789056404697098071115545662518489483720120375788374845003351681385400497789321841921757902933869149289287749444525168984244268489864156406338729833411295373478968979568992881175888799146695611280087852661879335784522635390282121076095305967854776005122411553184637393345690434597434014308362698173101551898564334962611092620078933591766102444842211788169183715295331575672499279642314931678442835914154174199971779105239184202977757279010035894539262761599454841934508839053013838849621676188981450607954569394694955695181211416642449418405287546874471152416214033668761117875181017398812772133342725258160956030361273009394773895112893943022817206308883654169445169764151768763087084251613660244401640991774142318405876479251924157857819929138346485171584149393470331357265643839581660143923883826481874711332778588742530285216892504513081837977577546642817319407732429040645053552516004882452325116395905168856466287388729425365122742036733537040881405079557637178528033354048826034088853439676625830013669187652190448369088522221483392275579767833621048343020416010004293137143109133803268835254054786022735470706647255917497559342499674665524850881263607654064343412177930358338012825223533905476739958163767048416483766829857030409317132455039270181265784881556605497117126380087941763927244813374127788348177582012823938931156293596829289531882655212905126521976693299765126492986051363832249122233233220093683994944069040855746327155804323685910876847721360273526144664050157919882410685920011668086844667928880218794228988521277143836310433381844452858566257069288596717183343932781605204393436545789892370830326902671469340369149852929065311612563754291393941445275557053166524858354685904632677702826941564607120055637219562975865327623565272819522560462703523199390436678918333904420352226143003659130822247053829715161475676207166842773985247577647417085530645434321245789510044809573210695966852896931747181335163930641460862694832111598691014511424801942075822780130957469905104131950757172151058238505415558438954076017137907108989645496758287174237684800331810714683287245939787447295600978207997820280344864730482280154113266134007000425682441390408875174946103204989401188866938025210181211043272003118278876117514541753986111412874294256215868831417946763813091391315796912280226858663591481786941438213640404059459189389521811606802886137102020183899210368316733871449979282214685958364802009967761043205030917604137421839803689923809021209799989329336382765351518028484591401301479902285635241969871812903892266343340309144188479534423213327386939683100383536360917160012266097360711727691951000692882619573388241455842753683156765030194292951615569124331460395820947734692475973359962441167970570142527610531905387812487666879016762935003759398874902030033314827055939640714643761215193690828801914237843629974250504384003743687078104728041156557141926033292449090977578675599708643190814483977827800479307490673468465461460258610694352884135473746762223521124012025011010399610610514745921265271687509791827804861264062878386502664753830462935164235152985279610778096978264831102679732750224384386808874015573440776736404095239715801619620418259142641728107207986819674384080544395703532750638293623985204725340430993410221157231290207316865990437700878916769450570198490480701020763785264593270608789560972923373405038409646243155090429432816487551309119720965866043749099057851473189800398825813788604084842223425032715158910099249922479659942834096390519207113893380360648056807781088404517065018482039901932335404813037124327545231326124110151532673529372359489946750134677008604946719140096266318105772763303394103464857339337562861826260950223141457621737147307538023525728415565368134807232765342862101167996390449158015121803808311548573471702342831030501011029995175412316216643070948468215843756659719273017033869518986621874813712072430408587605195483802879324727311210501984610490701644473585438632199968504777325896011934969839492254637309787950147035014092393445768936270102494301448965852410492169761493347218635896894524889173739060112995857454833035115282459510262772079168071781645092113273614601658247741867085149223116996842023482493685464702762859274376023797916608404115222252904179496099645876357400104166940367441879918473843687675039437910022136575401436737622886417145678788040049407207741774780484212170453729136476192150479424994528786536897069947533413752142241603018327891411689738800435897715861899548068236880192106494504666999269465128213151731543925953746746726096503116165435323358456229324021581867349744439775000666833040299538029669451231831112942434369882980210433830245591297469454506168676952335816983608577813100532838684085058048106901848630205710340055876481901032178995563353087260745800925079895770212929779548079022513469281292973218610486787909613474194106043730245958312921919263996991528818229868565174922331625135160576972453802852127304752318369468051397621695827841906539731209389836398154339236430941442628958431754063552329795654642535620377359066172855363778042277354939450973042130113186470504475707282601730667274893377353361465190194477143199474758699286515310528163240198063321818993413803955486951789762867330041763139116023823050392803988348148005254018405096440875065652211794598996005151517869596824287814129140686155395665521155112102068853814692730075962686894586754157944201776579423901456705957586979534404503252754244788064134676514145119642049360455018006657267269607557749132393624757614628451556201722387008084995436361767046557310970675832408844551451112302831367903851951863519047457516227239621245144831369492232705955912531466233430311010692888424565223220417854174185417985107627468909334809593211935984117741750621628218601351702769712206363114849412048772500246814901429841975723230763176681274181314507096738076338049602181953372841987687504305303862517444982106427610695237708212177645658614224733215781898418002333706873574213131200259494686460118130228735613496141536781183443188999229650581978394937805099583697935446185860049895684727705478986516375696179516996868647240100891600429956030036543038180805436413115909808395897412387388141227372564535184086666153820459077237006006376247461547913360192844696167084379737231534947181591683577004596280560023063364050905055404613335376249655051429066245113357742702691672149484856789444044159207458037884850481568887055879378148029072549391961978134841088515383696070511877530897876842084919912415516495264844815813082353775665112345326036156364116496535772186521800633959282988145768613350162060052850651709570188444040565450741172740352249460396142632954978913913340170396886695701600945972790914894208467144172800203650570764570774559478074346772254494539949040264649942988023211909073226105892303400699698032041524313462987031315315325466796767549881168165193962117429176282792480945861325798960742747937485756309726875971410725340610184269899935729681581996644868810398090184387964344173652212703652693038072462077040749748493314206363730945239777780144190379055190164735045385177190918403220600724007103572887051804463834355377754855385492236356274422091947965840966362744779536186440332173111542037975814001345980833708140076460571731795456172426488632913247111972828697616467124847616687120883157399389661074098529550903434185534708703588752682206746088765558930266716789414720846356233921590091735965682075047689998963532394340480489217383370546503418690977949300873425381870062022416311408762000471473092679187003157122475169394561626363140795561945362288436860335426755736114190139239620453648477704619281819170095814191473883121398249739304018054337567356888501053723538944153986960761585408758719589634507078244660086267863139072805850128012845722550204508074250186608641065268280108157844647603394840960520581413820886157312446603482095752166782241847756126484128073686418095513746576807038172848998807054212107262842605676927682293354617943261024738309859030555581427299747009317436099545972084076556233258797764594473570759521487828540793349953850803434316999578312209936968808487481926305014426052437626120665536183743432742112015791952914767909083943516762146969741934149825970002248552655976725414106021133775746439751238244643816907257083224846587764178819084038742677231104233335948661683519027089905716120317368436377791352531135370803296767594885538194772610213483359768385531514354438749060241681937137198968229667979631731502282497319310430903487189307671587614483424883782753443716929512447590603074578974115431715454647651883864815342218308731367741853789845521279532021719888921674433150420732902610020492073567475848913012026318523187877013748539652086656295583817643237057832436888404269491051031065023122339683727339736008327325312394976749924339655475857768598426794076781453135140788667150017475970067209798519836643904393379151406898309036402349844634480658489516702115289833441490577793564905201880441397933197383701109541203079024127309231866952240656902424259514274596408959413413238213079611887386690707120986249129843010603470670679349610832790020870929971582324140393950390443800576195544609779947438918968745710079897679916851896674542716653987728339039695777102868455510232839576900906314163950194558886764748096698482534303682354428619978398415410608776391326430818177259137227411512800046009367270952453258012048790964366971781746134487894819654038748866479704936834275265434377807441577020762677907701443949550584434378011001182620598295894279806332091112748800855654220766008447043421992098748493608556808260690988878295834483970476260486570701461102376746199803695843418072742987143813269368652967320595084610612718487339192212191422984223491829481598497663660773764254327483837112998774390740524374256458066403705871069307564671355686394947537583545792564802660215501176130049230612279466202364985415169877843314444867159156958583910875619671962976122948471627735057621922412326487672117052641325609441590522177314491760595166642138702085121813761580160726598390714895995137480972216913470125918123469147147477580995017438411455414438491974548063094555654033291458311642590081758416832897223412629652223725654111595380283960714060787652018112474095403653125058349046116616395392612414852891029248951308660666784600418465808320114219809369965849413015135305201651687644897564304881099047822217145520987844776564558238352490456912714005925563851118858831536431242105623841813242300490598853078383181468536694961801420052268093482717628016369353086946821247000393991149729418487465247089130479049633931935129520033740549550775718566795692659351195929078743947219976259689260346736603537006641042997078003140352683628736023294989463201190117514118055840440985484876637300967264559934338984359395927547985268638764055482622863122540881963752711057803156971165752104462301621267838065142503416196389097822325638568365360989324061595144397367852021933856168311947935084193921157992420306911293790322542370951409939233302084378428513955588770043628053065922826415204798877631839889831673715767960684356454366065061130557793720661578878907664845926788733949884202341185502198751839641777421678519112004678562695360233332817657807667479087217551771380526707391889743100458711342031235005409402678203990374805797160921484785750495146324815745743244504785488619514206065358137036195875368818158517845823574703016329921033280540922078756915028956643950066353207994403354860494232687749381935561613949536862728828312170128545196575676795055002217417307860066608387629461651963399737958803126431353296263320091782529239815028811174273513891372892512452858645372768862463815951558061660797246194746662896124227929097403019535302562323448170490141574111996148694612130170756854595420068543160792721987647248530306462689970460465983900022407148866996658821524071379478645734382488671773259792065577165873377747212519017709300454118907219018749287653581441961150730152343352702274654579707977335827308610547003924278516500034395803159752972546799287097789687160306444823342874761309554366857622611277836710742404914578051736315133619705010839049901505655487728304623448430225389761739254131961578289168192010403264859032576821868334455916949303100655035523822274588032067182551631619324710489301993412938875894327706007093484166969906112682740895829047766934467647602571355373760122861786762226051492552098571296000073810245486060246504606101245773407384066396768692306267449928569612210755089752427649565490718197599588652196050119322584598961773525620588224527732457911522963718365448306286552767723691764702133198367200210857035102961582970344979551903550125565850387037763735487284762891416772244408991733149642663686523829574831051191869374513985781632753895011839593229912154837177498285157551286160724080154385939006353959050852052462225778218195481730219437541595693400441597853529064970115639033878074990926338639160798562772964083154722555147985689490735884689348521447549425943890285795056722659769797334613747383433361106711292608241441274794230940263081981058014593392467182258831394897111815501811992822188425466866536618440203756960971538976494652680105561132038176854955550089381745234818674667255950335157903074891771637263749541190748389492707790218525026989079702713560711783713862432918140529940488860074730941425546164846808632070499640591429736456535543523202736987814879171236803674566647620040094794834249752564311405481112119273375756387651961370840993131070133725438906650581266778815170967886754147323792131228872000581897166716908919794770506380960766986794816154177178245224266783116355491465803987112561800597203873247094513692545602274254366318805628145061579965194083912660606008845392432071607277329138595097245339568295902774414836957095377666489360605247485404395658848396053087605944687036754777331268332487826244519520951415418203459015450178282321431629201427801816068143706883603756848685443191341314542469766841342005755597748478949096136822818748044602337932796132650073192619869844373888427031983841040944243239490935250440157220473859583072018499675817900113250151645247260777578588098484255354720794112205691930528938930096354988807670337875266312901715785047436509662751428853611939776934674869099359812665192323888834036099601037717495929896054122047349290246453341630209408405420839784818874959752362464290360224369943152154555073479992365330485470282395721800520632778885747150434821118189203436813176736337348399029151423715674540970148998131296831196937974358382139830006384582242120537862616543538575488060888094936828279478190474011164581025099894911043569315095000389204258898476546138962776271331486291065152904237241184965037319050249123423875227719352579981909023813609017724977666920666816292825295052082042635854107807906203785281011593103004811215055258465115808191630538971549009551472920685123436463172731956499306412806845855634622322888797908767708822231287455463778771112168422894019062944081084495570297132096087354660485579079683160003600581652836325683566144687469096523279494966469353516257040578577250625499371789745004924490949258644739929382437872769329364110077631449711294742252000031929154727872490970750474257463139334358184856773912053451272890193767959120384315041578741635735421703789280681995908867276203598726156524879925361514127501706417923848110365283833674834956747441220023553232804018564406939382173199843021419745935174421625312567859835806915631018293508599144075412260057568071490162916039143377472669119745209141426659695537975735225165261149344827283217612764219392164226782377478209167132578336451903101045353451375267316308282373146066493830542759982931922007689494469644605623898669456247073968650607099163641390092636540667849693386848036239393498048540769025716071817279200872526194904104279206591014755793843619004825867655399595911407007462657870289703445381780884067093039824487778059914898992286854827960434955615109062218938314979885799752833761820155304303785851398129917389475134930132956677677507353897972956386909469054659544894682705621580121808966420674992353314370542947102015732127753917549843614438132186769740707615544398587033472471529081947414936013390585456178943872062197562713604115019337602134256186582482299509962267918831433281652829860861939975751002267171703265461002077719426560713418781430191233171480168688866510568575559404986754938956731016064065375360244873502239619183814874159669674151221627726188544660900247936878690132266182151079961999677806235417234513598783802609531740275777026070072629046235472743462613439399764476898391839385297428606866708439813493437056021153882016193266804966004110766049696321751293911898949370663582179432825426416194418179263389300640081665096230227143996640985643849611059598027886969192932267740323448906794145903318645260749284055862643807167057850227998598655743717107596334758588377288324499748952192812889262234446529061449893937791977471594662225236307927884445149383071238964019219468630006649246074736751118865345763045681478191211375104335940968894197311216705427805716210896712117685182860271751978436537291538637986897668118422384083199587524893482283796940062227298921055881559340002913968796161963881130874692639963593311570480554725960155035069278056851962795724413637237035776762099582581670054617676365552516614841695116882248656153682527764097618595543531840283922742228998610102687429575960446937992285990089796946530633476348425709927794831145604049535321073556531381450474963854837755274181151050719199563572705583957323765665385015626231267878576768523394992688174559113369678763940940926687560803586594332085271991520747008881643178496250673186113559101988827512299070550767142045101045051720760496375311788146317286419178929940546068822678800015357490590886669212501881846813387784155747486346864155206295911353740378217970544203840569994743469729455591219825658836741428806105147200723078155124929248809402013876408635682611593608357415703186612321928586431092893820292873900517825833462897172178620555433882720863466601196996920924178593560715692638002805684903440090344078103663871849926248227713835063732324534657384578981575651196173911123983641251795481201245314633397358720530939684122698246565442351674279131849467955621580270265038181467149999260238227111946110581979708073709599430545983793844617955988144442752865756992655284680747803359691127164664948996976762765239892336022792396593238116279494340068173759315924391354893188001982226442397606828870970901641636362928846795083368414914807570904525964089734767322769906274640998406087094140604391685662373336085508811349563565785497243671068072565045135057740031068361809508491694040449406635052952365141893561799332123002872304966671745626320651029853532938766322345642732545259733230138064928572004805674301478854484884557839229931733996153522266656299041136264722651733650737019724801811810139978547643203964852606817798171295388992093409747795557433051997464340834094804132744739888773452004527290066387784989161554596544667925489143812870619324064461521813206368197850916139210517767572000063486186037870009436252344550455565270778715419273256713391503182467779409052538249113068630887282422777349045576784704693090540024187611461761456185899930637090537210243578853351189602909088808572927577694610750921023072992250735948554333914629602860468065672125122287499763591920229194933635958471286970504201691956237528761829290199766214837516070299860532644956713691785919194467093003830339730552976319677850092420861045655127135167892626959502941343626827306391452646549946680039148406831377444607248427521184910590546811556634404404409573460438332829428538004940908661909325339230248129003159696970679163992608360147750063484944834481338844930013525387141234052131036741162590775497925730149490721898219751111691979981232086283333803263165163282401686511103666275680080185094060008354043066103469608285520543602682346942732696466217162586064801152561778023226485918644222009133757600410924760711148495621751731072294740025215040634764917621339761954922280426945005534248556691047630518070038497049254366209039632408695525525150135597746495984408106791117663914587122603032674630780652076799430133620090611488086694275142747196046792208316938823113297392689687856577398537388215447840262393783176767826378445100442122628068771038739415247281765248595611906910552116237188016586442701599606127671001022337674222277762498123291815248399752669258239248445589158485585572816554448219318470822533717713175706979492828849862003583710627951217307884892039836058834633514742035269483111600101808991317033004091282694928595804074472139398286537862993458498292947969357085327245459944697802713409754472110000190549687998489639536812959755233884465011109530491724360274179474798223096716639678195451748538448674919281329335983682967379160227988825651416071600770948150861523333448000509405208121321225986686504201289507328879308835459587677000918223405468173768327893552680337888045743245357149030273612227992505421876216462796751517159533660831382372665342773612931115521055722955340875912037067043818109327869338772391596863630218337109521481615832421840722247584257435260713944676922923685808613724611990373821735731886328133125830588430786755038579366615911821914858454535400049357533650146522368031875648216362675308666306970864334520404823554952902363550437136132947017481151146847096187111649598909810361320283332144354224997064117796969554302541718079544647791516321440597833425780150124226451788731466786821909415131538500494047777966529659811715425710810648174626491107695124467820221023377012816773988097493794294918363819743249205685588205577022447615782280045278269139515457888283188032416449609518452665103122381938578324511040666744265500345036096217987993621799230609604748765884160109968233522228315587284304578303726792540043251762552533756513757532236837193456206927761771020804053740996014720021050815644954495558353783033176560740840466637033319182744638235355155678848237680747095054100709615486110070114725617820342004372007974965963415392483275482908820085075620681477745603592932026345902254883747744546598459385275915080597829137093009784767037145344778641488212285134318968774478571870806257413367110542438131670563035742974002096661960358436192946093674407430463993923080560702094289302370096147776083858757135523386604312617780842045100272393531956282737396508800297264856587490425607972252686215292380898108009129622825610191737557249282009206634021817078355935369578579068836033651526590655100447900491996496545329613526820199298444006918383597134391364185163192263901773377638934991176602226445034009385339747155691343391023162749454780719205505103736366983036702653738540542816951813689194968640927749902017818884858795320156859893931903521798023131569346126955354127013408516793254581612084656332626987099489379300899302815690326714190349760590165338680905946589399290519195842255574742878972203649866047072081307225078550218569568883958691246539540865453565489664402176339716004622311548764073739908183304632538238304515717921846254825634477299594360188403107983373085652623068927512038212726585202732239184324847817252958548032176346345058398437333814451905254402755035657458957989944262553743815837007307743310950896667077372958451224469019150736657960127307001573645052612238608893480742676398300743165459171265706231547015380469505561858553227297267346599418572396294744448180714190859498093049998565312250591246151883210782516385831249627150795030181311760862325775141132768224115725853922073197451221687748527356054253883147131945893352497875295151813530270397715281183590846514155402854617252961270655696691287700631227986667586236124848350468799168185784496262649264388516926522204755053265267570768306410188091053589421635808253123329558661364321015559326567235784232303929109851953245092808356734540086307448053010099335413079331864138508163506656344655588911105955014321349489414529937738106727097243043962919660400575411714423801815716506990382209022000770596236400808599059124603491616148642820598676522901089135010553998510012621017036735564624226867066038481024872065773682174459841986928135856206992117376853104048919134475759417049034457423781257306620701471507535181562128891509189437969711400542734029098492106318636263176972455661746663341526404828401239329255718440378005244059476699922528181031807348163015339340850052159512187795828341612841465130502169272689461367825781878620156634394444951022979461082806264165665262606921821277211381051454320021161806957314013936384335405613279567009288506054510026110803419714314681414491231524496325742795061329895306007978985074750697974557450096208851734980933070778570522352808881307568453119813788175755338619585042474349640759202503051605254866557290853332481659347382453514236543846736709071163481055008549034252451772815027126214669464838275498100831687924827072257167754177066117465636461995389594662182961943024647478260720377490715967170224522623647059316592070067090672650014677656601758783495658839203403577723433558587094601952839598890098765249676907398579156992187788303071532851474004577310629648864284221317644879054964325360079792887301686708173464680732464764621529734052650397479695419461998357740249126186996745765610125208075928672964906015912841934198967397413837563521778519117378985927697735908769944026566152700770951250337543142286817402493163259605029067886507998217245944249533098794075577875528212340839084592482151531477090368951094590928377487272420988267842140385582066286245807977064066448531374922226430634701059104813906877216283302297391468252598618749155781840366344791539038786338708690922830164985735979346026934275199266332624108979374075708706432516681009083589568554789373287757285647088862906637370829787694858823900954231578266656405761127824166273950253706354053598326463910990418423641247002825534508101594125851916109769076701906983254118397439486564776382288219360352427864650029268475469823209902835640098639074998837908648116200912779339667412334419963942849801563490995801791271878218618232373227797261576057501112483378299317514122509960108520445890683600328907278490158796094062694565292102770442650829722225055419928391204595667155547589985153281640984181860250662692116398459563268395374138680538937367402834332163891355592006223895707845451749237005110201296341696447726897836528634624302779414106752748902255421081339788712246016488168975779202702715167731340631246625546319258526131029316749629876654164981355982261503035934273543691616157728762739857919434963438258424407861825078109576143146537231427214183037845520947471620470751320309384707339922503904519920828941993725745273357740483830777403692857557324684014367568150697882453323488134163368326592466455904537314043295572829621509692119624307377901209496291836545180668855354428134088604911536356747116829251810341381323047763171964526318236527190586992074170164349214027946126839093320271774766300130750306820278587438687221542609494881770660487272663340645465641528481765922068693557935930370235939524836722477723451648612564709508477117497481520650473099911383059666343399515136768719255486077853541507025976626391557332818774893956697569852142641659976497807132473721489098865010482331044235306653623457911542808526057951314785739089388503375962735784493211365493889635508681874547679351839165903931347823142544714517461928578253736511265429208558115889399121392514146826305840981968809494015320584019226617560543019979588961675202017320064230538744094790407283028005783896384009776122107785925177149264686137770132846470080498645805480599216647874142137888682423603253692260852785331570751713150638806438094587737390262586261655788027750454861269301876522349399622405286285832704811477407215752066361619983197042999579721498607931472186599377605000582386090288751670157285860435360225600422003071677250934611645798529905428431044965113223144578379047151580451885858571590339804562200505382219724779546632503855152928554262860571953611132969036052483857982949209763776918598871168777619631860657148624933940226538442649238259677213544402120915977220639625769245498051757630183293799123844861552416877948546083687192420112837350958708658924327402417742575911796289366008940802414972026228831458256303194486268009801364489604753991406093109970541138355249139082700039770120829804102692632041199001324177801393948741722460799072182204654463711699133079370813193297350350064719706487755947829940791005180090454155404018690517878245359513459796391559678176629060481663891492634179255980232956654452054726969272487430055521626998855164541326427209549966051272908930945026173820145060326803978266764897964476352233529491217777820378376162996658318945706673773176799802236672093235605487057251016094971314535801873279785056307366488046935959300689936416087251848732352230573986266478799301863891623687514278891802006084175198918169046237726068889054168218800829095352083301633781868192132353532473631334062997317304925965577397528472089484467968880062402801652303008634057941773923967347989268701746545250616736216975816055583449998879127500231646049802865869440560943607432011648004726884289490127517085975982254384147396083266741299464730764299466166045161627379399855937156345351753463408535553720820829700893041967857153493868043697393788768244415973548190230079630770215090757903479374123427208644027407562528303455879917612347973320376110212164185858430101847537675187745340005250038383480859290694379148455453120613455107059654185837113501887335057103805421121329174823982270719939949091975121192835854203520921682728287938376850757040569251100298542523039890722842300401010510820281767881084773299088105075438814347624637351183972378974875523267924988672671011485555439308729995317776069595495127816555584202039841409444949644353017581758467033870697112828025382996543140118723293604839453652091067924838526540800102293079965339758219046436628827717901306053730158585566969869088098804041350640212114063078784171442127875167097646179218784205464572251038520037773979589653094665031847342641451451626693808523502570452284788538749918789139583478086704391259273595919303926918078983965580877778510021536176341428023933480547712453378140008320016037325963675859827255917019965364732040989055835748766830082965423123145165729264353952123108306585154797115962537249711968070846595708701792230336490213562240970742436837194104096702167980907356699587775241179926341652043555081604843973218795834342932968627249004567423136669652091256726409023965120687340093096601052548433501949350111103799424600471747055216122887319095188644917505469383546631970846564929173176109470906140521979123117052047798848942720260583659183909026916592691109865057451325065662429610868502512861677947495381700151929717958098225340275670581351728315042776261225814487086693214195765758289520071367167087194662295100361346350006043460165108267350287550724623792588605318325284216827032995122298288459910861957967561564053641135120077907129069490198408776662531826053400193420624019541122597692379881381910972995949150470307326470661791665626482648590952658261632578328504328118328789945158448176925796936914809118033452184008515955933851110775561541187661816682340996831066394806160070528711194232089307826082465968288050989661043464604926875404680071379544846743772532494793927216410009672203258191569295802193387565828118312514718456171230163840429191815598843649269687168409796571014861939352517875704278458651569917939048688785745063202289949738332275085875779987400657997716571233375126352148866839371896424274901238041813687369170682503977752223461522936619356028236042145477689173768708785157812531881239513186337992636028568792371148927716139920871741577379779558375316749221148247140099670590985512454634343100655058861934529849090271675720857014925517437816862753816194355942389586931642364338020582363691813648998629786064962782525976211293961898386067125806422887561056121298877683993156321805706183801273344560557519891729791643002526161609352785704350029443359952324695308087578124446946912079070817908948461051197168674279007713689125908021290813879740179902010307195871733643664799269829455307729120018430601993154249155627839883065435446067860081681337218379905755622267944777607963951409540695035875317488474504718897368577092388648025992146995657663944336713977855450700892794269177797655332262744380884712547915286653777555738867731872405968382795225335787836205800300853848276615703189920655301192394849341227661708517939499976910175672501873477263449107376757509163716273569541424387308242570493969552052356790907577274080309171883682213583386700362995071523088054330965264660056015973481853571619246888674030416165203156262127834671789089478396510114545383756577168732455980568220062277619322875424974271214827990562955003258323329851946964545107041178106571369128157331318887459675458541648190508644896002755915003503292070379384631438746791593489021579929525229481559593659038620624501723555866421312966625216392910580580218641535663743119319291613074666288256757022571014986374990821303942851220164620521308558735069558191855147730547802484930561775791372528825480671968344930233282449274862232841553811772177269812015425742639211871469551217740355647674299185690010599691053720783803068408151124410795007044132632123248947716601723928950544140891312858750407818344415783055097918540693374872300880350639108610834434069378937711789299048810887995398639891093363606532304571643591998241759901271351283867489657758416305950648223338967736181791067373386697844951598742279506732502655367124862332960977919841108628981913851819626805372345071541167484303413686498012388712784487945819844938019218830329338075916058207854631707058664456325209276806153986999540466536544264918668615317904152426697195801193573366173720001349063882495420795539981474887139077437662993023765751786002436222484272229145762985589798218679675904446974094183685321135665122728337784969106946729297526034527537004802267431912551268344456797402122039056128944487050314425782132440946492223259796089228291669089767370526671199202516656025379136637576225590300927813243507570216478753856496483559823673067535490809442393138626158749895092102191519673989415024384980245226013494763271254547256293432046211950329795433973290583294968415836023497528972214099769103728616698986636875802241394568504293346926785189827967968698219170609373111134801098608950961758603076308585549147618806175304306271998919697342251326734507286333707199246215869725288619360235632310301474971839517993425338439769002422966946761060436902060004184936021933579770818953622328599224843390211038822744702336894504465960977641043024869366724380267308761079209729105174936186555752824383536869923545507215817175743736988021728353750160117468307802464852802496117894602568333120836697814270342009054025639288977984764409259821512928445423429884315859774716455815035386813281704465323877719699269059510443141860096174682981858698773811678637387464147615543207559341730239791616168508154865127924107956071541273087747971569175279436354783027644131917795904260097208062652939271247549817092150759377311492075650764412216484078194460365263220830531204093516086590281019453078525776225031105599838401102707224339699212744215120457182246589405113377402575622221946836306923431714721616902956541466428666523970656236698218271505358390413839899507820553274721425763023719506494241077456673590287128309804013421945048695588060825175341159476754127682046089938037697392604371934240831323157882021986176337778238062712262958967305284386319769926657193536727585736750961286961438078282281339001081158223520736251997831771017678135047486977588840743939418234328540293519042669455590033056734220379335138583465796151435073949097499270034439839128584783051333906261067574515813229812832214952655184631123294376300455255687688198226000608773321204486640921936389571685352932706341854347628115953211192838858087549442080239498742339363548824723542534008418502237413880609234721996382071250835652559090423137855709606029487851217349923437602331351255877593663710986926941784594592794466824009971020814262841950877831166039754069272176665311885693210573144191213730621262909006058208648378217137586280868533963097747246560638466081864283327156668456410872209077967902692993136307061003946138492720372054693951382531176309376190757021625279535030679125814889704493777849003945823536085371188291348551195788562460374054773181122401482265369351663216450134968719031087382857020625359640221191433844153423273655383735228845847696175921895575668995579961784672407753482218533647827628882977176817657064698752673438552054159437295267139758192720776893897803163999121828961674395305557657627711605713638188757506851600751293703476957076423124730983047433138057747206592494170342391702792015386630496913581022244034946878556272918574141335626834383080082017165683585261885127021243390506852849567495539241916283416387156317251928299856224823316688132760193303914681250978418923295513676663350517433237493674173948545632869588612640873975538525381911978742684615298029402851799655915489908503063320851523383031963494289518823204730894479355064559238597974471966175263748360233807001137970056956925341743664887023262291236694315487076362411590993070317616157984156433118603448776940550476811104531346132573196605364519326783463756185059275687489702083462823465120458166793776048130159302214927089298286145083274432271074245209758030803450943936173327333299708279309434490680394636889750810360111556442745094414557413538923860887097725322295787934290809921005175353259680880465400222648021854156168881318107048790826783836217838620948942818028224121272562719541937247095582609116886547424136708210987097639863836534036684852915561322619513573738059746647887720050604203339512288419288833515624400582425366572362756239987873845354773854215582409668393462205033652303566260458580488766134848900866000934141352264988001113386092350717964736865585615586665448891673827022754223520239132366978733457610538381483411342473235762114631536906829082408219185250180205796437189667104145274888169099583889390894700920443784771938073089020514127423574077076473340318364331383499981016370242368570322383285757013218810987932698302894350354385863257525849946024843914471196875862650784593418775094306483890984018428629901012290345373284019221702828012084045556053755723379403089363044213027474073948184605077685649986392815184104066037373143523040365386356122599260550510391007452504516799553934056564396525212167126554391605558901668237273724653244328137299222797907184887418667528335765459332694016198148608503187587281963917491466345476964106539719886704338898624121362972594196251155282521269039486786615425007916105822480646955125375523405183463715041953719288022296020391401531815453681727999277649283639080137551597689559430990365269660332152678625579362194634427666432147248242899517132322909743142242258775006550691880425306890932860564238664071006071056934172718752654840329588862429862453025382198106004606426179362358309636529968430425597703689298894570690423274394157687367338261134369687107545304049778802798331699117300864693185120320868650303492388111573198357561351951273118808280356268464705048089970704433807579339098960241836412127897060494966410064510284619161212142305901345280225893674703905469394353308367708426397472389606417804419324164584027086296367366678206055499460628605400416146244693009700435328930401991769387909335692559396897819781186534717539487763332620671014647362542701037137651482813059814186885224080407573300439588707408487991704152015668099608378806428959349774710625641059022985954943964809092038143979443804591285130045674783554419563632857625873403569278190929814573147684888480177758107934280665610545896502017665591578592874323702864687358471291375053309914454883274006428070809526192386567050326119186404509080418669137392401695431610908157224293922110708279329313833532381519131788609942934325407117079196411392680286770309313596720941063767537865835870741362856939390903100320174752445134240507642321931757259372011328968946133287039240003062575610563716750971295727236216621231747870562832847741394930385523320404135036777809527351537266945135271089836496091224444505484829154128312989813139486792368869040683417739181649525229564126864949443193079685342230173232674324145364122653871586891079663872266948140433875135268799507009435644452153938012342601352837288579123347296063280593734457398881252214112300489437198728389801780495146288711379323124175591954127772114411968299651886207794428942252038104364685536738718858289870210249692767370147273804274932985452858076688393188687963309360490006268266343626752580065830050169652208739992179188676788260314263121447692474413457189582830450696606477789356009620335170362052341808471143414437285361355394050772077783157037826637855177465647148905397856511282435248728250269617290976685010468513219973833813620521741308637076716622051987338168843737938535668885744710179400516453256926305315932055149846397017074787807565772903545405407398260697791384251957480521501644921204280262156202743669868345830950343418587443542665142657170717143348955836187801492381665162809220434340255980112076188067081799616906997550623055075911473742236385078402325242961162892635696178897497806152860741394651953598406942234502203347915473652717314789002900435163418453261247918996024276523274768968421226743445371484131077042272854602228638193802383836871641645763386390813346461284885761372636887952473463235382197253191006703569470782482083425457342242657501850396081136666659664364329538908729863245944730029867169286705058710094951475318323865128023102840635940942763717169737144245043650466483478406932330745753774333720983799999631328875830054281189773376056504210513162282971236049575460671120636643153810360857211020864235638729632612910154833123881409231157565516688437667799873837209241294732823956708403114973114961461915485495289130499686429728702089437745414518296354736976568321097195873784528682856765166075173379340381469597130080521668497571458339989461385296096653430430826010494204083305217788364568183406040664691011044271562241969962912756432938788752482236710477148648513681923131780037230038788785468675803881954599300666652741075060557132102475019504656511937739195048621075125854293346276992296825108702691228103930767501774005679266931643037535415768398550161728211430368329651446988730716549181294581979416180093426502627038538334652936941089934723066990470085801462298307976684922129371810750837788053006171370252322991953926692488968090408785813525112291610355754571904384656477450984827509214675982257847430280970667869571108096944489798161933543102589658646290318210655091622275874079001102103503951011591418442601800454552737942172608035929934556087984503151361781746252807224083642175602625181737417936124518016599098533130631524392238133299017681157683256598495154994582269365294139936295992192709304682744757934279791680619223997261347933502882493190115573886107414917502995138733658275435826858565157471236050074895082309277309661668477886255909814060006445152022023130131479927481291599065851664187891933454496727082310174796426885153375136038376094190778183941977258710484559550844464031071486763998195239025988455037599132430288325628384494026138234286718725985301366182806488552873603398873358448028477237858832568672835610669469965464941173104744365545317212694043115103655074053930098730852727164311233904068369352305790973573042982005101762080125758503584668940762600866968303948485663568322114780619653333482979904718455137693843835795827669951416604070370748941081983407323546220111792655543848232358145866121617271119674511652624367587071560808910537387490006647505261837791424223793438938718547628117684646415617764012792399847054414272527713066615044824804758483225842127514467011532645129413340268113558684635105308933364191892796241398976072521930758047960622933024087919371151025912952491978379552062733886268833655531193411579987047310619036769030889620011476824161504269917279326712811830718324644314310569346730962582408346553723522203421628987610648980940454253313525385421503306307217446830283246532083914703471193930632074906576749878995197512819341463704922737522087027686382587616752970144676049017603181637980446006582394378889774730607566158360442927695346599029880289670340322846842061921371545043892880391763482381162403521901846533199036119882942477777717710803187018256086003651743362967764909017117255927328015643301701699595109360684337473417252894401330871430684663823686563238229882145021680266670765314949057396127466225582946474089696272734417880119057576908380104658450441717459264788058860781720392926531671803126649962940961811657803052078628507312044975504386147115782029937802006998908473612604210504443894602312631587390961027074723492231596865348002199709975102804364590830667700803183412693683422997377133288745012199472319215786564144202320642618296612724754056208013358842834705103835232572907840038698307744670017426185238456534292614899766396787191685332764816365762328831457755926063482719445188571624696166559022944435784246590532009120767901257574577466586317238007478356003423047143237718991912155912211102670429505919316120511677395315624055793377220460547028549104077795595000202983653448287365725479004174521270544246043487521490531167215232423052912942322308833974668999031228973616934100295926830336846239991747720066175503034070977694327774112884954328654516244702368616179916293152866572838323015465038973519972101129949831807972219953738434465074320956481549529753718141169487274542250630481741675191013345094241452770367885335702473333820750210413671205983412216003574227214904096495096859791642860041638325754715279497962381563833151491433387197178747947361939282910711375985449746149787685041322697836635788589932315146091994556593741002622570522987834323507131394323631435403747174740313271360866961914833804892888957478514791858765916871207575219198465656596067871288742963256383064417477434557706768007551340953993390745937682023179356976215878858910042700788111643701697114323396701705678029733094391041161479337707454630990766742914625982425223837041434291361947141877149769773726449945368984619953679615708925563950491797063751522556452633932657410078810699002385951583737599148244624956033659096137535537626459406828531649793272072167339285883052061696249171863869346350644997619795410635481616257276573212916027950777766619616953249600676701708358455773330457815059048146288040620659283097991885381453726801461308628527564181770675500189578457894182720840583641010677214865509773216906945346399855649400783870089501308115345361521948178123903141689964297358255798840895600170863753180567038324619125395665325065176312643250023528374448786326182955664667365598393398286936707612735436660717212306966881902084320173420076762428568417347059504307227695341162236483895882808755859683225952219917828580064456484218504872758833108091319058645280340269375337119563524979962344467542176471676040734553669795920224342277607371909135449868259349914208325643056498087460493354223867144358656388223030134066546394147095939534992562549164506533931158561788989922742989428566198347216839797774830701622733846734207642218185114082944007103717253074796263499448799739990349281142012998221039946683078039645887594620410897575926065515418950682588106685550819064947167954963240024982353639946614062716325806036285349958120225274551542564550377771534330852096331130921828117013325187234997426522942599864844450674850473369056602851377032263803405756534575157252647049781773625368940068453406628708405413932860867516508290214603869691127015181226076407016598329175761175585850125010789536273784315683479333274816881966716420994238365358562390618822952286686130009097404455455377986504153984304796630317887932112617888573762892131147623116680950087326386087874764000616380506772363549391767217463175418845275885813374474274020991267078785569794241164170075749783231302210981034313799512168459043735893658227659585474740334768410108485307218839662512889907064522933075265737016990343885153485483856928827028011638170324943093643750127702809783675697244993063622709480297224122074749293263266911405619666956863042460701313264833565509550783790193725369289537024783908565036588838772792489604683718940778697931495817335899340935630690672818090880678309658716575628854667402112116730396863826776043183500131451124184970263699292613663400688934012714312990927779802512368091102653736240834434280876059374544274171045697637038118382888552297891100375320851805455530580383686100422752152864933517050694152751145496778068369431156545168022959879313618812163144277952673547832673395149209192386935722079281165403496696570814462083697530258776961481321757137968960246172764914829147842832955156288865227412499427875276117768395608724324122278021844014438135938672515698640839696237854702147261175365096283950700503136944453450192814582709748176954542157569215346663533757783941920854311110031867066644368654531702560950581877581477413038433062424950142724097283125050603757826004406365988402443847042410847824921085524093149837631120785409945664979671834066514292801589637242453802160445470232732381347222186300081125964399933413646950588290981078123429848512421380522690895167415196987060689586837104971523669714288882787882058507285180833886416343354951940580372132849398814476748430765319013156689254047731985403551825446791925309791717956646324880321768784176533193008985848711059222914064812388614683868151263127899734613956306988210611893813956415520168893369711395527304481253075038684080989666205018376326562390477314326752220658080039280549293423440825991116547619859334063730895422087698132923262326466596768492990379540466531773891763017162191765016843763632908087762575728565193275456865422771956813082088718652717014472856833519913600184595702556065910111599677657903039869122456758754707638615983093754788927457315959753397233677580488283498329478001384197754468809326830403321991253205034177234283476998336010135791724003808675996289349530902337744635344618393275439514547937048458746296792855179452628626381103725153100482539702415067582050585986162728402878632352783817925607270609593207452529177893448056526922854006088758581226332261655359552279706358492713919296014346922873794665571262398418160625618669761694238009371546927226658289357426227638767070063408480969746690279971163489246685353249159343166285176927603150053707356415907757544564225153462405783132141655497105247664622127903153611602267829800694714744453885710361860770115370991290657897323511135873210529715909167165458065054183909877689049918860984211716261303904024110128243344033391073882698478002793039027818997660675503554890349083315081196866282472449263755810563926804918756820609736560517494612193948076192589009658706561740352516029494827282575756080184861244774324915178739694932411116983547441919594083102518826302285939153392034734744025037029897561199409531325133935995897123959104113640253018911812867526256312160574284762461558207518730049647515104202109784400848599918668435485217295536253753945560306176782741560267862583811854081225455000247305800467789005946895843195974486479528802377207719213354743879439143731496198220485511729960295373699273157831721088343527245290623217089285325608452622513728665760694513057520200019832021654112830851877357551773097848583009100061552735278360954298574078650398209516391639242087915700232359802453375982360787029414790412537008249622310522405665986673116233859503351576248881791694520311471927551343250174765327552928298115784836798282658909181228681404663169791904825932516886930261480574437304538171928804770255568122983127090735340948543210026494465015403206927976252349636283731352684461950102272305670758513579738310223452290881843121970928518047128961953338370073901895825946253250567747069789273962052345940208949319404168494090138686601646316174987280476039757730422193025430302042001959908964034684734827784687584207002702282825132172606848103088386111590601920258146086895714868851829259928605299055943591463862973216992954708080295532795794587117564580320127179190969326508389567646428679385367578739411558215712902299966053444829890647218673467279175047032023746813932948656126551252830325565980342769149670443126021683318158158115014584073893949511613121924922611344642115919128429319947920614584866177118199987977999787870262264715870737954475193589284655235900344051342361052450112177981382702773789145393533110925434309585716928064122277675709350141193918157076899389792199597056678687364442349219836402684563632651833278723715545448788491572781206896618190703274649485490307724332450018256909859907487910509263653319246099200004727136830032035990968250899964828996865911491904621064908303627926387452830968221558696443741925243544007504856689630836617388135073760105217805280217052270047938131066165607997972473372346674824498862868787867292124999620744812427465933979170599172254433898256142252790275036185016719578927218411916910762085804040272240727197609054912269969772264408105856109551203504183205873159941575847130320164231109008574675481685079926594779919132360969474061212647045601382659673688725827257487820880507576051284073811398424160568199657936755147226984429897284289429748735818476466097224217481514506350334502239544749691662304989483734459730517365125852091760921644875169376506229273311825910595276487364765287714194932858504148455193057505607098109209931855064438888232976171848459616586560599641682206447452606241408002837269613744922558315430548960014724363477970606381533006450450592347795836287500686146118437312032795689148878250200635397285682624528170889971294132821087288775596816971462642901420544383696645204298079054862899711625367181094296423023434941848109915666623763047074467828422080508191161901954363851878819330333982119556577615099618311795539777335920937519721646009001800909767501271762166364363485851244697502800030469400902552981783185990250736449285231118048182065402838958013837406824093633360288781491529033701879447877363279871211004911056585042003815849453105757261386467539130898341963227607419946348005052499903308143199661689118674145628410719753590189082646329734872526395607143220581225836303080096225216972676923181088105325640257472785731735806980106902549963661043213217381387615576090347063394619075254962516974870883819736666816277533416127890034682396386910067092672027096557334267990426490563125562846900960011591358680008899549355971286663804597521308745617555577587017673693418168691031018103767370504697235542932603916072341348646797005392263514019096187797217368219940854548937326908315876426198750468416652533136937570879939067721812320287560664285819278797713318372408874066281013545435260439036250504166226600557219810615390878645591574125012687157840837512486604487921875200452227223130087930127477089306271329365695583868532421836289658629365676005726449886248513406479347192714998425745658620134799012564151769817456945671686411481825509653951641554458887461433064873691160921182938090496280350341848481846403553891604276799016505418387106763760290586921839312839210249333361291303311613209529058403324077836345084301764992143724983218316737269939362135833372004261605100793697185402561859510301560261445565528816495857931299487693292560357945435374609808383982609083003830547173508101063849287366489917194374431174760713361735118204341685263116639747916728037061100267360148495872792627627245887835330312102341746395879439554405698969588960586658456432219430100927008293105104795412467658243604909140743872161947328855452158736826602445186487638509332376478930000178673617892030432754226344224643093911234032950228488690498667022685313008566839010360775018256912679030936359160097533106884179218566723142305063782150941364046626229300715684173577203401887749809133674115584862609400065787144112794602981558793575792429806123389673898627895919073743480944597986659101391935333448862480569737143644139782327022060252625102957845559958880910836045834158404473082346425516407555815767406679412139144674684419480214936416741936243618430387751978429118813680032386584145191426217193523618342772686053741857290294609107651176990085287263643931499612395306045590052432525876686080136869247362607655620985220479956469467982450764028709627506399621329623043849892356708233197965280195772717499115845589452998356027344557025799390314621774338231368667302422207255736428232909745270296585378964626905283344946885304297148406365074724802818903026293711567259822623157920823049652724727227619082360809804863928416360358623361283069339869324245376689873224476900774423488309167980197808133253758499699460219251152500509850911276076215893808382692603293060870281208359034894361700166769377606785864607904506606970328083542726757526967651537345140005511594557142075372043685025983505382292288843988174758404300568163727843178034830072437718228677704171917611895120577717455879821721133243099302538822730907182818957608708363863997353989010784220141701442451154252953385468426963449872313806288266729733982607856464905559960222609463981200035497679611086430981412954097046637738534868050183995715202593873206476952464467857224563419743443811703981019473736109634490180637230777290705235850987633759567785494778140632461258983373215122285095765209626891401767976072368572871248194876884530299482491227341148011100917529407227387795255596437032851865507980529331759272914614133253698381825122064717504072292296862814702145800662153573940021913250908148395140751362128446868452418610945507458112346637036223108628675604978108566203744201905559776872201729345227878791375096565932119438787438664695220214018207411438316189264579510575747447353006284063328154441623136313416825445950269631384386993669520575014206650107461015032462249633405582636490709614397679417870502025702451961902139124300097062397216707670284173721014569244945493445895865052022865682413578147979542114195610402384367881282208318389144613223976726897533321719516400912540702925900743231170350830610480161518091973107265267975969836928398315084936637520508246984274973888511247799322096147937556504779936139915052422235680344152655617415116510281816468784571502038045986698800105580188207851080062958362446437840717697830985240276134037134489429536880194184109345775660322623379690062662026944798873193376983597642071552248428671899508612294654401535067937975181717893888313725525961973924988511975320273857287110090699115246217059915495877740794311979105659608724375300727822385049327940644520211128328982918098535482113352166711237615696366856563293906635202032961913722812730453628664700213417220075459941172228102600752880449371253950215953320582434198007247033187831673949064565260326594079287726595961927833907909592172919589474210099621712739468610353117665967644582630493585006696095701613695701330590031469422035956366715927197591188078920211413868874703259574545688237529174358122218789804533962746517955123366921943656167230573696205191949524479348572171639634113450735090415199433677577079669146319034313454734780419493095794615364088716370415604007826254561274207879783873526205071383778019408389707544523360469288990666979990218734045937365195836719267766849026711716791843057886932774969283106069389603206990797603242316755704994587640298863933773548480773435690105688525925086468080282946184747906874510059437064080737626269091782024276881071345725437623630252455683385276649319183004837004063146886271453320898190397862022728472632973914437789092462059561920362613389023969727868389994992846782368850807522029697119550407502299808632872511642814748876051681976297063695295251460604244049965703932987922153413632926612256464072485094165723778153153459771547165714584881630041024162629009325177144338484209818999479213578251983096757329401210484932372471293153842997974845941620920335584852591149351213218818183103029775580939566299466863372054808526903654978129967126085700900444312013765613766742106828372132084308801041513736692306530122524219949619608697591433241160234369839189077436208383807726806450099940273366116792115919400225284727414609607479981500764190901095578796187998780060630398612471974985201720996179253881921759669754954191704023163279451970759992217295309862090903754871010718607005953005624156326296294266470921623622261286720233372422592054321725854256078210033404641477639307942221191338040253687205614941534733612146660469822986918084974539879681936647232643020875314292763825897686382760280957375456520856550350891194353406347127377966286915129156856028816393496288685410894087832020874811744164908976691027968048520444131696452884088127949157345190765488691185754126307142416252393873313307060053222930705245133920162774601162879290509116662389429107387713523671967577068001364927333417314076952478619341462969330037404631809375614760510089381720224017432015173191127381197171740103319815893995255653192078056761103326907056472288364666827943801594432549397157773667190505991101815128036577401380226596845769869513469061606501434546659292759832572250671966834787240362838924177450385139746724101336772703204853010835317261152189131064434625666450318342156135082620064618614365283898021256117301142887515487956030400482546670442476636271707150950821042746815862559697714008727074141024381439876426040715539318923315906118270354338702286870003874135617084044841962797099445344578999912435215284016454898409257378724594448578666845448220409118892246712895862124812591862822656255585651070745536454656923235205703894793005160847071195224613305020852790425863841150932030782694146316806851466802369599410684970651998069862495753583075798535104980931352156407100408343092329235924015315146179783417647960281052936490858492694611640065590691018182507308486036089832210488923773990705745228052354679496991682708503843630870141100220646082835212445740121393492208777570493274457558078957814264160122545266581505028479452274710168131772205589513241388508455730660202680415643870062517720821600623671084991311442011478789703210545739361010419860094360111992541119531788433453003512921667953142672912882072816483987002553546173528627223965401926561955340837152367425172914521404079566620179731279960964365077821261036802115692628181496561583450661620512477529540876505968701994318623731125672543160263005942025137725603693050294499611611840312184116731870852255074999233870730087345448581405797843202132261175300641007375593428641390958303286501507381009550067230090667319312284161570839599802590375553434864800259170004504300147213500597521166103722197066380365240523134687779291982588719726815644440725954149838106821576907469575683423958012228674118848118991075979680433863762663167851469983204656922132801872712052154122364927614056859315760606488993966843491470031882651127638980593873521423282366491461478244401363957957743723386369801506137616416390001758995919020679534073284056096740898329793175181729727178368054717145566101867333553634161115338132116944519200463531748753521102993864527456247940692718046370818640581443079190705104407455041258833702851567154679798997228091485164569598759078945796979567655674340190467679160812656684293656322970923221433084751694958612308485292784928455699319418369578510105906396508694785426406643922310877836132153776051872698473993647947801288513610022655294730841269301237722343408874532223143341396338097260783985241137014835838525626795231725757715730422510308565969558536217369123574235197819903530834156952623979627862644389370592699317467872632993590710369180947785878267420752354771963899873963013332871789615631837915694096879693138595842758188551133253214405642597740641586560631725093785911661981338617669240539339900393106704556969588394422439292831745456514216632311545244088805031641203480158064500728231433965865570703984151273489371860795303843142607506470514876601341296195857873994754366532209839275822943680953761298320887961387730261340281526765628132035709712512554036661100317383708365159311029983554268022201145536677088313094070452074902160058997015359153734457089839499225814197189486859850251283153835213362880409084556776283033406153870230323253425968299025125749408736261823553487823817861292121680480039635945140128725461636404467423440271518232257512504725167181212117166461707530995720941532070958962830941907690568207306317643725748764597717481841985432322848006702591925410442980190499778606742393824790440646409665135441073246464131016193782570302622475959561100543668783834469927943971222744050170576623774715745668296287130688537273965051177860554112767031498701746410829486837404745396977204719245206708605401745925207497889104071020534659316824089113946717516568858212108146117581037090949838233932461901732244232725183644959488801866590726395982862911839874258128898627685633221056661133642389358143861276551492580680332054257609921095006206118372420944890993306170789015141043597504069982155550435854868911778604645470462417767619420315034097628048131801929273350596815980107259926045391441441114666152631260511811599291792756345120632858146404484192818629841277001096725960416522632956252205387286509451704615883834968994028627743031417089288039945037866921780030530302283627399792418281738771704083580542229204462350113758010282760416791283922903700085764988744040491560020016385307264987751342882758521007938183240070962753237255514106932051224809955236730649345770817697863671697483516361532156725004430313597460841779002905306602816101196726981993885274370612831848103069771161117996522249641200179176274997931181540889269945325288017044730917768762721913201402676080127778269568372375595400910955669593057148927882548914923174090964836768996195532341079220555294108994813867351458038993296261105048213981026748367554229524025950218294192630408254522177921089284738065249232777646394921165896856415272805945961919047912371216782598312672210041781730216256359359743614267350021554435905756301661908952954533069618658127217676543694632748253581465237750816820378322190585620988395359901512939357489586216013147421646020862662578000763671793745746969497026414510657571918640025838182231290872294216911844954542793283501517256351930490084698596459230768790715477633746820743788870212813324184564739803223903725248623231955564138845731328020386827727131462980442465547687415386609853282661582075224697415307685494022995533473023189538846134565169909695980985270881607239523580366247627874142575491555482943965951048139341766376849106200262435498645279237307878562787251130035620772008138016866933349336608430264071122895255577304093120285010849590140493837959982546275562190078314135667390464425470188805024237004290553120059319812879814365683532912917166606359559929076135020893051667149202060903391081082828635040452437829802020244330364244132484151278284078365866974069865972666966631526712495696532567718271143287499412916237393765886874024205880843814991007804216868958790443235136831449290324619648160376748411636536877490007335072146173276426092072478036316937513179391377188320551426647672817079861099163709318327774475413043459122488861097404796184239799437998070206570254268754777208899240468837555335037280971154941461091686119679786086561935764219286781813729895802129199323080024268818977614105994394576995043330759615754468048706605760028066591170516265632820637767074355553619873382211972399009589984525808228887687585738470494487811902085304159312709821612912893931011127583913928869868089898658944312830872145167732854611030650434168095632284353399236133382460132139895788601597257256262753336184834056435643727246478513693403937014297702856536962741220540653998436189838103826328444757206785715266679447547649179685507424065273063266853502182228686640738756625586151433879395225975135203944756667567373236404120041581373453684248526216570198983311895907301848483736659672586212230662098598091095888247893975336969042761821507817627496581565192087705649932740193792030480663343950021851173331350384080265762869362948054278879427012387231451796287323310105593460166778408069275868097562062548594700362272185676658679959613716393228826347829573955988371731340528942037141860081218515614851144223781995699212913112946502446095675360157342399634274070395405053993460851086413462368817198706106311633459724722897645919416609885343213386704786011656492307858487908708310385331159007374345867005850010891390291636785488031257167706401610635960721110228669882664159748915443154656236953298123973022536082782595625473122863456675687001991585618877580404784278176997643168746901791996960278406434511149595630217824766252256291788074076910588071741201089942362152546423275347622092388009586180605224649078308530334684515211767050649823336470753086857581373608081339124443458758177952128956988288662334716635104706364744706273546304702148100873020279614546752164652683421367416725415560945560406209773522446232457408217406039281913980145284575009307284458620876273038807493380992697879068429209711740862507252769895303321915662808162192924546473267918351315303914356190310355413085746097147445483479012138909389506648058329084312791120632515356978688565136168783931288095456235662161322757856716859112271986017596341137652617296469538101340690542644061523650603116345264636647074381969964907979083188157312700899795049473073860200170690123338441299455842128228490275602867602474226683021018993364249758700812836749549791030638517198447945447364742197376578006566316989457233050010570139661542461683564288998885634589077931307208026068111066647497672250937661421303909078280591255283581719816522682135512618439808391001051266271304355606506589664575501484686138267682366660943680758798782957294617484970375748890345084867187150606805600567324273807792460860907855497007623884073008328118455697472187630213107746817117395685939250712020271795974050337905295422621857881737560443371923704507517910259400791577908478691606337884605358104581568505604555998092125604118352457500219640449710567459345092071346538127596666273797140564837374301775944068358438522124659704043950826281636917709094940086079868540713191392338587400460165559844969289345965570472353129808204832006090389879494545159104823740696285933387523416176519388403184503071066196644368642755581663749947106696793168003938889382600091113375415809527588867527784245475659735529192179301089927948448794495632734510835716239968690608869626678539626481637519250154205630773433540416750113731908492292779624945186892254403768720630502984118898800638684287201277371894827005680373945615950476221607550557922768597564586632378943747462997961732507101276143383013646637643434591291968855042254562681729979665143317538391156394339757548788652811229448422305885640441107553562955558352743612003836409424687128805575625257325555234845154722754679197111379699997108137495457193094388531826896746169908675660985876410098972447344375248921158964087498209633648155729205884358494789819724510373369107440184314823819316108606937157675092052590421339527398224037221241294609099760956147807674563198413515992562351055444345818686467778034858368135588634317808120068000750723038080727654570516991530945831659293300034155406812477914057419103506642741407459545071880979608557418180349873722235969880354612057151866251975712380290513858244074360438976515968845805018043606415527358606403556123338664032936524875230886907921456911206141038318617343243746573007605448539598369825904759944593117143416816926888285203096056868808309165588365737567698584584272061348758771401660458937541171724873436259762803747468600431792666763269483497549027134609452571479000065881520550811487062465260589208217501281659053430953977476358193421478349579860795389930497776310234368588981770219308951120247858313408463561714718460369307981081899325072336846497856602677255670227983587897189003338958486425198006725510173346569030595549552587063994624370532751825438606969091957336526597071866357514505704103861126467173793851395940799018208274733891147591454215799903507528059774868103291633258560188771838006961875494417561654870689970571807217900355710989555248961247093142587305123435620175922049359665092174330213063951108252940821425722822825413111374320584849312715962529954514441233027255643637313817269704609557240970355682896808138279917972144716797427197663462113201824697017657172745334506598150365185503433266291231105134756551276684662912749672039805515774776334963642548577393764869696074433183062036520783557692109518952662037739336123904803325884874047030495986710435329603756027352472287008697722874326205475047873378956267613727226413473610886004153222351490307078322979209406487710589482771591696208794660494681485998481674662115541359551675011292281782095121404689842995128917352652022276433115178628360987669782532926732131155234872813944417081049450231701200795133164668205602975439770953613023691310187724721467416464362337705573230321953054949656558958960295835441412790326617406608875167782775237443815878130661036051826478408193266170143174005818169676539872685816899598045828526827368798721796762066566442926337539602155098022777936218544940297915245056955890643993449689195844375874651220546686320058432573478024961461784681682227015958165938394274793828166576114902775366284284910265012102865354855195654454326098708235557792713602563206926272703499259377523923306394611837604918005002032718175885891713918780611405589561729387671893696703281594435632731939474970523288080341869154813291537393062418935913160774296676132090697635054072075822760432660147004604649357381919219189269804768908972324294202578558600632882984580610044534610239378777259199512398217341430665822848644733805633209479966557708802315763193692491861937865980299826135392097234100458060655212443215681146886943873968336712923406918431238948684295201766600610522195079560184034084040909211979513489066713031917784363512294394976879117748050913385923137259666127245809721844377841679581278035100173414728660436766658533557707793357191826222825592108429005413974532613032217263637653315020769518735406854889152949261010370825443830527965093957368037274741580313663702189650607511784160641816358413074474730181197842362087441862366990427277803692546934939774455452354535046573548322247250727608931353451831756842046681341747414131167995051805650726439863421274133919716326456929112978296702533704654690473992896668879726968196139220190396067993214485812547591543391542987000348072313900349324934886588174575505028139576457014300848405793918481059835070215888497739147069862319353740698721830388046892265528157383786510260650713726923460393699215607775029144637880157014060730019878919535445367377457958079595782264367306423360803389210667437579354133243780761038335337758032376482695218822585424515981199134650862059914654149539411410775112374011870029852863063739682497483951414539675181718438465957321922332105544759781175015148058775605750181949027315454985150546631347739039749862407007851669500063130006986368542009918459551406724485784560640267257740665745094209911699267012530916247439852693458364220197566996193448508942867941575532419802437488600919143134455251572659624098101365371513304604340319742103008104917760627710991083478015922411060491765001410062731731310356917553898383241475967523521866243127088972477165342462005785213687713990752254018709957988674834866933885773600108146832762701702083904269775327256823254414980492002077974459839878139207459337168890808351586639453647616612520289845350605938250709678661413154089303464058296554316893300198195636162683887787936468184816975595245545845666348901674795695611571655211470268796194853042838861041168854028449779130282232297150667077966509752503109893968609936960527520358772155213264936126449638006089312198029335422164799421767295806786675089145351946998984288372533744675715838587930279381284049863392373094871018878516995513108742591022783208372203828933092819840770216392055991511252011798262081753463197133539749964760890788769845302733277540128935692603289020000560250135974435738377743898099352308356966610984648082835603130244433813030287324079481480496171238618906548127256930757216443289148032226148238844743066016961508318190081962556189229181517274805097155258519993778167478414346344679159271177127297091077535013506216290499490921826184662036354597041040884011285588352601364943354434257459443783573749094636733157644069021248858015935991247029002609671731093048852459883372775461050269547600713489426625826329692235689122367492509992440058417630148483713886661525893497870802755714738792349545522152967936869441553598232780812050342144540426432351904012384578107469941388375389881183485777909161018964263341407086932647055998055326530208774563035813234437665564747897159661462945704541553108988317010329603937739303242115901113721719227466437654664260180678278364106035983349994629246432998038393945361067157773457508725950149771963509158775154371561261161019011249705968840512998250186792695566263208176822013937734882915390834477721878558998607858987429219920189237075550923071821732218504413806727520025359629680054758622231649351000115088491865210076175955793037709646918383221827656512408000960801534204372116958193775315392554873541048444067243508629168132988528651757636480126260609386045838898997322612709210758464743578091855451361500907716277807859700939647476240809843368548082157541318315444680663115866350503409966489526079206242788592400793020103282027351018989456969125913933031311903787146055266560755945724839685664757524595609015106999118484849072124116645930654902437256659340750125889076296155187872628738644277980287086220386514960150839866390751385457928553366668414887961773780473156364390847446358754582896498666481823069465470362913177672158526034548326604137071312013437015074221303579286135734809138206773213491620091049007623562306825007885232138748852799355818973078296705938764129227611848837996111662705348181582422669939525121979278822314196718620821313627199308654159933240264834050261388398100983744268793418376011350388847754061449182075538422119974508496078635389876730552731538235056125255835350080048702825816751498553179209688823392855378682791809103154878302967887627439584237162446960088405909682737963480200176242615050164469185921319812265046352480000895050023842365418531054762074710686354576562860328782967418913750497811687504499931067024178215709191463877756306893265351685178276154087518388464042719896286723322106409809313792207578534124367273625569155467260284513749769837331626642982063667671554732894936015214236744293773140941566472491558990424693923127433768752688607514854791409815284500217071954470058135267870314769474849627996105672098279347055154126839933885535801272567597620599136056956268233242570500180462446499695070351905313542105710377909844315583053797149330009544042327171281044309185343795998011624679765531659525754807613961239522569674821479727374284205771364903167185641603108944247376321400165570619168153692476456520049228831264339720015692401276915744663346709678455704549577735154858754529103971024866047566013325433493903237018490441001202756754957081436199516868171048518018110132240079598065040227709519928462298198819158840424915344776891622395160383687347046212143128449345520870130135707964004585547929621788755124445447003851314582669403759863891006615587251424506003303497492508721730867523630024134839959428552270305558039703848238244152172973873411896252038910734889609181569035230150993053577736645955463913296614108539543055921578093486034566318497743107397666398562549319342762050533295997628163647293726261587339179225754053606838404755685211175240540587221951023399522222430231153619350038948961480740454472898157055495273924402013419011115946519303567340084076695092007667916205213673813325370529689364698045036090961814442862822851917753314129377502810013236818788174806273861976754385961311923679682879818678517789672694155587433101506263672827771567921962117916289936340545832298987251326915488485310609087272653095677289796312785697996004657911153225935523417311188680051673877405310127833293198940155051289162175347481883310269979365773487211369702612473459910415016986518492755249704534108082137836237090302196347572653260326183463574023624139368827935869479551724495169512218415843669032776400807776393708868757097833655365126767990204512735961345996828997607544835384892261010721538477710053255864349896606595357224109165730958068246086096248894994619890158471396277066312368462347489201927890595996710049145694013869210557873264648184269210049868278555531896382044622250902743163946851313873964999122501218762278493948926369582909687026961463069926835556557369763914571135092766421380679285887430615211878823961870365671743168744181949491292760762726961406924849098771018698353050974602150969237815305300847521658460529425295907836769124540621233605978598436182279567238227633026474090981336548281162902352338976873712099784557620093157661512768091653253434640636925002429450738986955163058544778348039584959826750493011307390365865012998948397682871772677557660008741640014547780086271333440095503501344545789858626639596358525928162314848325982943061518946721027207699935698723860314836598602281060925286256649650568247169617969039488096655645688675709009050783984538947712370711556728195529221012378378935616170928248015756571019751744577609201778188281407331581695784146290854269732068606738344735076147136627635052844373418650841097723581872930629507271495259198259642981875216420605986933730391502356582198990823182667236462620659650779195723641617265727859993749851513365084474929315173587479916293693448623819536702618451671917213584431250747957074597736152647029094478886495631654793039611391727882455378444654391600514442736241908077930008605487136687510546258646203091959506466741802840516826165352661353532046473147498974027114769311356565319129758805567420330923034417795481785008153361282315998890550191742581252687676471812705129149496568048000199597074947279324195370568810658430171238655252206411355351443831083523495769182906441311554802312473777331296910805456247947570614841412906342975082991358799099062381701147018686672183239825939279879147832199338768250041169723526240221671914961631275059311542856611107384072645057957370757672741352077894271316116308439896134709297581381704403675665303441265969370109002332918077362894906421019866074800487475118882058098969643820990792419992477621095513173800134620480752999376360663620572674796621244643186520439826345214642761814623762303983276177907856153316451241313462107105356648078482458435420118869259783837104088365443823370443518981241322451346876202624824319310274075906587173273497259093985222472043613097669459413733887966255143839562520763481420739124163921280798034981449580616165219040332780718556499777880270130923768259753374198440210000382623358739176993720133125425622167331735256734221824362726841157167561458704950289571359867923681830605314195561114760905478507166476612766014087463969081150874373639293237838894345976252767591564979570246728559284463579349313238499581760140049706003618618646113854816905456245786533045113688926010205720022864620893571152790537415136304237838803319010122945294135646304962762663305165708709858957501960086853292760726811129168932057648007781753720155901433795977074127337457042637195700794432262913830547592580579049253585014964318446500478275088488510253211408411197369609773599518198419129284804532332242681249880539868848008354329607475954240200864525018762267899273384101719606568734433105373356557312506879228628824482879025350614262638645630948321134798879285501165873173233294478125356792641342365949507829032736286983775115310769424680178361313197562114855068083721372420868163229838214689788502793426303116646565474554590761711225850146264216273188193717554420452036974875604093477293311586472445728598632501496909092085769235698424631296099469291712204385598121073114913162699854695854445773802045867109418886937123893974544512911384189019674129544883204737015584202594657464782931799709851103798488351234977032681937684943110450367854305502562349008290528243127097577854027066325166430627241157326827505344704749900652242644663951589611433403180061878575283937835054553970886200472838418261835262081130805052826765966171184664374823638130598746270671205511480602276020988388945955474525150933443916688541422508659001947898740288951107036221536506886024123017499901392283545871920139464202232689164076792241079010449963380752028150030715738798282151876392971341627246048741525762422970674701977540672580155447596218099604895185153089192511614500320497789605592253943878453650759591208344946656930345090819018708479061642493226360691199252951259934519771241329200059996550772370110468609902678100980753394397623179658559728843865846738545513522461772154612103900293692390461981220170405534278349282445666258647922137314021137233588598300648043440945628219805305861999860458618077658907749836953949148858383979518805467274990752341000540872152299243888289437816183058875122673890639444443718769320496059985526474701006169691154410553728039916406619524456046766671475917036504079379401338308859535497553660369137704823088510461899668254936491815686343241077807095361971670873656341805851201637244663524697119918976117242042884633762431100226200001040052382836161445242398586699802345909578952587108355562492993530493506484173921119071961475346418483664961570454026776814970656914920190353812086974410204288250853403255013142084651701171963702204833199605437192927761085070067623629485872425779019879722555282609027180389392112433781305859463386356200279797451689096857725958631827163487800018486336768335851043664139711636420889351020945316363123642271403044377569129416989776229105388233978711625911701428885105284842954157135749322439785582979962802089854179839164971042355467962008343166266572653668250554154997188728387912282454820520461688687773818438066717563362676924446487018044172489967330562762553495074392656867953549551418857658447035683145422467527427280429956146515137835609592567690255768985459471333525424297793853747622237218561440863602370216856493494802963310337329640036837959917436038746564675478590740628053427213133536447349545512281785253512571380344829837893921783793408957654700015935857423074866172009730862293314769234779645100274182238431119912367028334850943985284758968890933536036445920026847394913619123539665977938521237826143515663539323118758210452133663070161514283832780682276151229924944477911582142660761636003473843741625640171100808130699755890812774022981808044797478327833751385779718655705382690787763801625174347609613744512986581876678866965504969967448637600107889756113544808635371689004643453349713800005359406501046923350210251308797117203817572606451916120611301964095662799587385129191536114642928749427919877355144790819429281366271383165515919887226417347746608061497969815193073085411015128240256636347914870083979995546605858879869283529981713338989088949615660143360082969414980573054858326592866453714828450427717537986796368596116365158568667631282174119603664711677567596646975807514044451301973515121797097286684333573672866987572163242674668977136833923568303344425100307440849263546164299416023853483875056380067701777017890008907560452549051287195949095047801776454035615760399162252136894531575058211797590806695616175838725454616439806204439150723211315783199604824880120844566224270166818723426580247162027399656232241418716502699196662730371767394104157104789984801261041963230020016868447087259759644270623035800802355123035414946771369208329086173369074411008264495109282762800559268662865771756020925647185490175391915671586361612945539526388216467556912018941353206446086064987196004626060232295191696837000177697886719667856560817426478971969011080259373328288887436192821450253203262007777315617196953345716210912279818550203304672993571704708161801601515195581649854664969964601478855235893093803054023237040372106126591150007853323161831376536906071096227222025258387726470248232596604501953416072549280294261271045776328617027815770291632363543554801900734024817042312951953819317505210411412741459108872243177641279783832430494577559662218355250494598307867032843090875344499410649333551455198952158538091813570966223624528365825828642020205794869090151911115549524024562998807930063750394695090778542029171453004907472408520631530952086216863750099822844033313658364939063944204930647502063383470352323482646256797356113943920376015899605524528853792467199835388229458475335240076169656032047318404677143318674094843364697409027068498483729935821395301092148272628004678368923179649977701715662701983886114305428667631020199062359018018892899743773090670622967597605153830379230683824181744764601404069556840516301811975412050377417762715093046140354073649154412051461458038958502302300039802702610790428599004090983710003143773978994755990531224506049905903274730012756989270512852750472115191944499734255139150548422692103916327014039867659385618407577605928427906678009969069398136775297181883201519718124077653450960606289116938267742075713375607246985834736503489416801750869225025652719260246981956009576141648288041058029651718515192856594035015420958484272349755968709919872534304283187492591437929874745518232042951618344535189695903981520278028579336024608021298364547357753613054353764049460991571011327235146691693271182167157300813417345836565267474316193225945563416190209052834783233066792371983554627352568982874448354104938216547186583547570996678409183176128407094018975782731953428658472946601997099402281388334011896807430797512246615528928339599203466359563131848250679311297016413366148195060031559623843581505281043213644203007548063662551600971706283707510804124572330025270703472092636946443563792939336001064258473094690308646185834616872519871773833236083925609591587735459775759541550660593749126908490021636464424571535471723379800888635826222819571440142765824923393595954311742172102994700632766077471476709814720440960167631347924998140121395755507232065448801085328431313752795928506600611529450478943821720811750037864765449912551134314259631672217610196345508051425743588494962935238478455331099394508219454636377341289749299785320080348203262356499930952207629802002457973256853115695770928932776699464519313858945473354919013289097087032850585657514719971837842291039028685924673209074183947153671908357521053891820939572346239540364957205048428848687824885656161487595854617633131798818991759370021887911694716915396043206252291959702109922333835155464815797428275148372632405174212144502844242683772294516541417377484846450894502509452109737661969770214170195145702363963389876731724317772387728380122547661177204566627808878960708218386181385896995321455239890181317176984101258834772624753626510361033754491934730938824741866857348240712401787655829952079969224473578695621274305586566230491098761863307887567336705317076371546534231424871011448395715567912291542639617707037862618494491923995859907433689161876947998666635012860970338304393317714921571069166886095117929279761942978044097754916135204178582566441457358016317672920578555091702066664281843878092259819251744966281954193704639741499062342806092005419652389164420688240418382545785641320358021918912264340504683760732486284472883392431342804662767221346722918629694900049330842269642191947776099867853003512076902749326557957611132295521815695038233298030432243653629865512583341491679633980593144546399384934880496963075309546378765081190457729138937047378968966399118996174645921257291637775716871558809582346243913054226397654098000529179686217058613523742337208446355062076750634458969225595046855413188029993322118549714167942672055024908447240613809137298591791206146895757701887449047171591711134161970131596697383673622644386831284565749915185755222089162905504588205681294628002008122579905348280919253037037256416158025511041121705235364373526590591407655691257326260248665085138398477803856055122101977285709245315090208041030586776942228379732183492783453684625009195959703444682839557889676214603458150489061007028907187389598933637749321084897286868978626107806019796600628445296413164698244880822489611309238071265109925414916719083406287565575283520943298045484798865450020242757770214041457069900255223528727102273822830012149793330226251989376553474088560358675833572760507187967300645700492919903404955675371069633212113773152804512427325007167819885766756157093740039968995946993009156155115156040268242198910086378062677060058703384570825620232355320375886732080874513004052136176698146076503796012482679236732854803297217545828633942251508603691409871683077563410510826670625137935317750357783926636881719249062389329091437910036024111185392237851341363380732446975361457191544070695034955960883745003846733954593637358873828666392935758436552658289936305185100824011776826144953997414027563019382798796928963527631682352135383862321811971334533120102562502671797485280009164482693852130214059651970281153187620037230981500427367757625533742143320662102333142431363398891181052878834467419492733383736811292827073906465681978052954842947882750568627645644184580259985736480545032030506504138302811219699226676217378818538407125351659586417452007372080420282372909215930415044959361172696160610100902459362621421494155561243175655772996405343036192251056826902618941889078934332435855509059491699146018172556479019067336971321120338810364863604832756280901508768344920977173221233461555978274731539019805949411677516957131024839950799567115644090858663450136579142077999417942198181927293213723589831769588930639435399154554619920822066013130690614184136859896618235226222841559032485314261137789112164235362034367003989567769679386259057637043299367879658635120301218181426546809970181991914924738261619517392239755538568966829394561887580510927229901084580076322966167930008616194068852264446598905177821650018059258161751182277567678038831339529057857584460419281966410523134213469119079294001494522834980380163150405931801108045500718948153421994125972391287832290489913145798823316399174942353091614918613595222804772069614403571977585243572455813105227889672961853782085298934133871135529551848137299504587419800383547197803576629247325885869422319858773321093008921214342865966060629480558558151369532698089371073621696992894495104736649563937342880956244709435036429115862204772737355238155129910447167604009382142555320848005528028119817016509570819246325025535124975990118092653425088432447855803898525133314424918606854097222349629773197566714895790353969648808796127104116389892067687278605878418714171749999084205737314957311306426723724189178842694262123583264207707578062753845838321467600715587910022934050219463975518348102021363511740921653553676033301660338755858872479613162945383155283848878588481422107474290366169457031074758968575673744394977423907739302100426941569188416602043915121898602217535821743392733622257421530485367067755892663886076795741084570394174391239880522935130319799202649363152075092650854453593000092621015583901707067750281911162243728832958186396920995269730854727965365113022768848967814447534576333959632120916996623779532994327890648410491292575964254687219201082212522023743192830506500409458213163303245215648294429259161492292530580256554528442653390574178166590554221516474654943957422203914388593822103993957834901602398928916453677855583732813974497618641479612294799011451540102844321811369401233395723069902504653746509746056672054047973998532647801500295836431169495313327772337877827545477538825590640029674647519803927248008027094818562032841601573603398187742096169119402824443574660946142342460822157127378706928173074224714113884763252381106671293819229692015957247974396694347237785299973235734326690934263946043597515943716641882434064041757639319615114139739188618803567930769237912996435540777328282928084765389359832666803328523676694588896839849124786307931815798939031114492001506458558954775794698291857415109172779296344121367837643516060775104474898019939228516910819681110307603858269693584660109484262050077523567600566905053587591660863699075586720342583712042145722052766643428988853102263027874320919213835029673321567880976060835792831947544553021924968425122018496452063449861732906215329803676664803944213231256007275443553958129262140971083558006241124480513145905853094320075419750848789538320726569421118942373616528376189545585596906727272285568909859457201710087698991877287273274344436822927708587948564378153262568322924558339873407248773220810317914583149273087459900057829159433092438381852578972606474621763975069366295679020528298285387154453827043517201588936034158255541223623177271727187829070492326249676415088362235187943925478898390801556707214385765300543943529233976672678557365572866807754912531090384686159056535644479398892984763270740570850679284273143518768172196906784703581619130688025246317735738167369463585666198632818276083362754819441734206703532723812820101933229021007062070672726998559408305864997848059499895429161221918462151045934217931163220755102861192581399119816555055845597290436479371500971439104911925713434072660077799432119488286675390759071281248862729914762155028365447096330719624156488135341984330514311688367075851027375738473798878997789573454125849971609373967816094058426469266072968364775467210951144749560301960599319566496864662280272404001903010617578621446948015260713116418149693048921413237103032104161935876382385067170100685317040525152327618026962200541559295899856203750424037547868659930684851714299736053072286936777739237510637371014486807545470495276937953497306549223289352529769801658875681744329050041261859885216821643666740545440843176212874379574226915855353254216576978437821948048920357877490150445418740173846559675645952591056816510398145644270797226750334617061657409647568760101725863087940989260971092152954004410593892112740635734437438342799877730519581865133389609722864574848152022124086050795984635850829817423086914130818582068708386744306442922575475620718513902556201704376667685495594352216342071553750679575278611705227418928032508149251121418934092920134345725333748447529020690433621142374566047762483564539673179161032912090432927927407324069928722830408292416684869541104185205470969461022652200688215424751944624750477311366857617767839542567906489047034848867438287761711440331372623174288455395428421256403640587036313033111813799348348329478881398363456079268543898158018773595046824027344600138102384799271388938782865966238002812340709062190208669273393410591462622686562738793973380911020357091747530618788804163562976225937618765116929426090845831585354594804320144538810731506311776870206178602868335016908343717426888797808102844230576717901034145882879870927850521779468038344861770658130358558430420895677883031086867591789607595733033149877848370058491642815820195079629282729661349703681170724186431608571563848653584007449775983803100223298643300218236808807451791870771441745296080778104251490453743016448422208358072507226579352547449116852431337758157973690432000669342516350747440193333052368072439514736709937491053871915584397415954850024954704699099005071236838319631175501827536840875286498402467883269066735988255902546589893908238925084269959922669714413623743431039151942545091079422490827332766030017962671308789278703266459311757075831437522223463266632332063090012792008550792434450063826398610567213225305935791474543304334905032619861589059206575311569164589067917452142721688177856786475113801230371980620509622146828432383974703137434911967363148745561860562289879808655675326575775945055446849196780888386929834395819464312687423399523940781915354434775799790998103342468706696436122608615297217908715688546032220975234066360750629611093458491384748639142014938233619973609130349065795310720702831627682252958092950865083096624121127408750901572454231630266566520045092660073280129940674378552044828521096810380422349113359053134108797448906336281952284015071661596856881789994835178600013117523890530016743627981790587197395228612566662353689608633146794370848896783402396085622960025669077758078373042353679669998812064833840749465937571503905670358497543564881934143963607667330897177206175990105704379234973363066602708521587977270371055585501759363869493392364763802086709466171090723846892754414253171101750025923565519843181015756396776132762762435296665396726059793315850103216756427253914630213885814351683967694412130395158501300921442828343688113785443051697085652569925284796307164074577661096780072715367754480320964747342341961010138944904272008784432473526919391309035604010618045468887882106066764843860706660347029248049738425985305655689980150077717792830439862880317081225908005054322425941838715865124525627075966235548008173946100057479335507421267928840974863394546799554648332737847421233742622862118564094989696003513343275341178930135818349299433459913376685111271572278675836287872444908788920720060709367209774224183952713488827399246066540136633881807920717410024769478038507847379816329740305276856356036784785485007691269350957582825562634614830104863462908131207527383930960955449233073005013150358831351194711763837827587083134538872931666552096959791270490079849063947515480999524609274270831341518523425732134082893793219223606764068702081695618158784005141697083022130001268320905777234112824809491980289044106224581018426200707542289044852789488688360513413790347378239494319757315125367141751000880484155322421005086831850319212397130202245359707548725678768829739175809293232905322143625227298908025958584448501804862475089680163400135127140405144748122040190453118720433818773625611326555467854424785542285851911116720164275398750716936957463519371022383842444620287219782879667692732584210049689389209614193013771526282504443112078069369667388817735358882013535142337762486687585307356903482017346334359493231258351356768145703620702143524142231814431200875293723451375702389209022304569547755461399388066734081683365254368162660263265444199829499803916843898939641626372532659072624678076177724042988176850467796472563460364337819186438997712711405711716103457551260616543878821284369139080970544859644800247465826951219058464425542162947341559522492763865853277254980949551860412271657454306879098926881229972178307709801218001892980331848085292729865822293712537688805260099354856271603906882516978797140704782053490534408139051678752573525307425931721475472752157240202064756359986573068082682012247926824223941685737133025160447445147166874898869536231046783690940698074196626788528095962571376700349913822122376854561013397864847668722149344041803312810195214037896376372612899228916645531032171422470827173441891844225535885386089633683481336588175250644070451941356428394178677175363180243997756554897609458070311208035930584053173357368469466655055468048806066210406052160843146039240154420661098897896301513112422796414063595502438671159211084395526365155885901929843628902465798079369507277887848727329769731675919952252559822643540199272571075396640778750045629365487696210939328548941197853561481376382942798884517336969918413346743133609100968135020735408297828577902175898020611220531473923947025006004153640261858638030734599716395213511318044895732400547940616790146888964544328879469158044669586390619589698124074134040585026935803758361218016968521640134097817683357695751023509771186144795809710201858543017765774314613075038353692894442013738264300310542472718650449203220455250685020946694846811553154100869820823004028060584231429352898768233413129348717028610434934474119131634536847955384557393024409077033205858298119811148233807604666296383729480654006415893328444773236162163497752453506843188872005027744626190620667259097821634533608658170823231638056380631579617075908326033749968114443483622953457691450665600769555015466603958607253140172390057770267303265669972364562464337203447041923238936637591119817758941273582879157746130108230768795506084093720585077249396489488059698235043072161886090536837333788098109205346666294179658597623502105391074670148392689742045988300389478476241392645844454032501621678038689305345806572645439990495235875919580280925116027840793410519443355310410065982109052242839419838033309229824482259548017531604591491561683581511045670258958135808482219133094995497212008432579725163615851342444539306390758051982327454373467104172500787830728350250920471366394812824373143939484450785669348466902597327851108959338036746628272020132526326605430822391178474412722633122947395720791935567089379531186896094584659527387141301982858946368000096627845519849828934727451344663635855823169217777898030443384850387669356672879159843512311687810467425033695228420359458839189978696758911786772606575999372359957733199993177744407658485502166163875105604278942182192768787063819728995152834977317736606998303970221600241302981401101531086030724794814065517355978944639662584467789952063226551729274324727520347180665732054125082395809421002529980985077602562166955092957635917359820381911998156368419855079895420053024438849811932076242121380038196349369747562378878218671143573915757276426644420667898590326272217345954224076164247704702377285148756379392997083083185678526789789091699603768268623889032668782804259406091199060747812185246762806655883954385465922068580522105497083534076024015693106522930460767262418626248340571511551947409125576311874308133460134438154769122588788146785875451807293028118300300353296416470067311102382018013194594122911237911310186450709730792833494241602193513935839601948804332324370748953539494892712161789585380628105633574122236254329486112010537052891774193788116475699033731458490920592574416371137203042993044027927497843177669613148181141834175245142983846996330945939025182696305783416230873896951118023680379903349981743788994595109152826121087630972905362234245156107032328234493146730853188153830776668342866112202155142129189073432004279721778875321915518010038011574280920059714688397671204937814955239211795683077335906709569176429601921174041035859373783448778557811404537672135503373644978361219742199019353080721936370740394462091966045628098470499587946682388098614882453445784213758624068586113315457648877338461067478035270204807851510717747360776095103321191441510084688336983144031468970464370295940585690324755474966825336892964088816304708271961623594535346600457538879272513602675971526487058970597681695741038679646924485024338572520547850365964369959065239479428549290289744319862481102494718160631654202330388185162719088175508350747436808386816419937532751091750525802407678738919983643645346087906890491411560077992792041350008713977126682652375530474437848088859725506530143662839037553853973542930652567140764918984635124520653405533663649598079284386443846552406977644126600178228289064825762621313905303626119777278028682076935551000264082458092366157500611205922313085921840759353806847122970731544911936219595166848066704751327916142274627406187078869621007914639887236371603082673539192930060372406898710302293518060924203351812029567483452042526774709148919322703019334523126365678668051499082998931477456445007676487844910493870627374027724490076371061494118645048952645675862743705847098191905130007194063965972324258527751044654211088290346485112226566310474513014708901416164463476214866464353730037888244062281451034684816259145117655726213181550933196335711115637274889043790025696190820783839591982453449172870067573558052596173305780305923128459225113381445349420401587274589176185424843003943609287462905188701058412463325286525527973506121504271775578818089320881690637589800236772960215493801197771981437015202810882081314709947028591706535407598002382754726980693370233724880362539649027348130041507406954699167211350422336079762325988110087416376222218931961480146842791122768524541566475086833873874379227712048446638516440935866762720463142663534250078910423262867745846480952800704040550546698475057036757091214158923942186507440300872183480759718885114788083910273467648338928542167246949328532393820163612134506188844634421861730665279580538395428702135872449255687181025668543527941322173598955202972004818596884453066732717938419050872414169262288394760830438527380518875418425055428113793350556676919899368403494621380498927047783592702746262261660449649736665303756004638228170100844608890479804995226397551377761486405145787447762608592274485892774206252901251631367171436973707072158416765780991325836065615733968460344271845565224139640465161613282836759285327495678295379446695838849782229277053273905106246442378322607755362998021525867217733001153708606933105431127498114203142653114000326158054622992893372197831461420483079271372524649652106829251662674147072783717155709248690518691832229390539851303888307514670021432954839786587567452368669951748648883380163093419688480792725658648478369565229744293772925082301266933055755437974672944850322216293796323652630446213977611010816165387795934540032768559217656763054316244314730076458225446392583613576813847676983718799982711414636719312346400009192620260611841048022690146101433147680783152175556759655315339456100042063472885023033718669083407164507259064585501064765951572720863563014134486839951817740014071033436543279850641679747614343619594103881530888302848883781740703713583725352588596533345246150886153360918828688124613670984427965984404185285233910389158499981071299477685030204726788702437880078554941066671779232907777863403442402520570535109072328702706293547406125245178665541005595530739165279717461687838914873908116062199002209630401090261584766451222596070141908999194377035426039603792724059809090844352643998034813230812125446350332787349031985080760975813355350138838869058445062549955825943986497759326067095336375836074044458225359349141952818440537133509341316751548604410958079504385838527199169282484123839695248178449532172702360881736134416884843228196075195223469227412949102186118208042165549394786366033089768482134114087132555354088540088101542080506711525090542449223082061574559309191032181489810026978114003600678675205683632807388226763283010555825900489109638692462119941151681397590176265828491524321889143973867001042489452333936385477470618693599996180249067307806607449936336326370298288307682178575630769369282941304131419743774309344714316877475258838425803060976175500796616209714442069171057457098182407182194394138200795542254150252997141692342783720646386174803201073629949863275449577360427183115360872675439775305434171099348166800892733440327437126157549190774807395730015076194896303310660628386195369452844716590164714063482206232736528795009725083553033956080044751454913490167526095034828759056622968557475629141557631962204520470638431970257072449334813362733203255954207542066140487092117338921542456162400804592329849838412449479608893981592437166283705586781484992766937903491886945213784776977971176911110003590710470687388006116276722191646436704313076338721867079155922405402466854822442394816563669375289788358911181072750423248357026451480489178612841848477283367233234191253039473461394976658421077870495523137712878398826064234897739791428552797352873506070809968862345555558278300015485504919369466262900090318111393773262616245523083804014448331724822981300755083987711511878441436872795205436611085775517315039249975386962051218078580718900697603287873871196102911423914265512429265024083636764243757499216082438727571118582135035139717234449717773236982017927991383855881717476563441053138017559984620729438287615991872121471087351656992004528397006108824907144580026867505869968242328601549312694853856596146750897876045526577493269518363138287907506469345996405836373353289691263953578571952280941738401792809199076218985136794153656132692546822693725315563361294765197263028677716191672995065578082050852161389183208431613926196668952649719151795342971246088656126699344828060789355457318289352751695137936219244442828004280011080407404939997703230333594148615467457831024681883079781863474311987183963386514090656586844553686635508130346020819170069781281719359628252134050188406954877810378032408590920576774691977519894374202960756786963877197571477929224408286504284603144795821342122106962222394302421074060900649728091358001033989297559293858321083216995576802700070770545948189507492034907882584089881624330271422066545345647442286642579344153177516567585661750180087559854251713284438546981423113072142226167784955420731098602663629245899593496475999598499097991511264873127859438910788109108005709837794808204231950817780563396215212465232967589504017452683050135929995934639090257143616637573568491151176552314240463374401549316988699164449842593734996849749126602561366900536946244361678956937348744684841129248182119360161059696658843358813412557847868456121524271063113096061524220179082778545917737682112538202467464902219643443731405653990855765734222053179675843284444579546261023910314272241757878982257853584115342507186752488868472192944974602350232249474423067630352487004261907007907929662067098413555474504301205398138011232840190410896577869608511246038934409265948933303236923961530590022221633519912081860261996716705328917706104093273568483560199587820204915917762071925297627281110462570082039609094548033178937453564683668986327155894188225467657875412820681105401282902748262561941008864745356776713650870115509812494124430586745031218615726128376230109275430409556906008645485993384932168039306046838803396965334258279707468360384590222436580524147798387784232314028230109600404488084740600914698532926111248793487828900512372911332513306433602530414298976591955803841190316341646695859402265940927729117714117136205138328510863923029710780588228338950132556922345496258184041836724221506956547993098886293839436220157417602049779422865677951035908945112380789102276167642138915764519753148277014527750758971184512591767881499638216359847148343047968065846489718725640824912283678403375893028425080600460387059076504041605784324868316500698224662056784646546879803943807068619385640483819005422577014797239302671553996520376651105014465749470105724118221605656397532215621480748554456360262363134415146031640010630889470694187791809937102379684395198914083554298715939889719801410093286933047094179845766660671159051506499850112148691555696752687765143139044148065682751107509576967508008218714335072820491766218145995347540304932816434459119348512536355934217114101328632174825306794374177092337200820683747658922937239423608242666586841051638548021493645022103955736858516589432746399435736544160502621742125737670106886537801665675296016468943362905408955720242238053168464803873904199868223252596470207203852730372687346995113260032782436407287253500842886565902954145813911220685951990768700709746723361410711169957092582682250037025770452029411707364267630664530672250235128033918209042697664922565538549788235455714939580907109423732778095230078783313280221411356797185886686437215962104428308454807662774822790011918825108160551187595191746104013904638329110491331275988068427485822841571825738634682534750430770117408657731534864091972070585976918461813594996794344762579076645580709354289313958515116971430177987538724130261338447762929095294984042908276149957969083241929261535101514759993657951284708038776160295386279898408579080206412518823631878055649698025231798247211744285638798898790247213905727109187409145629203395186021879520590200427537597291003370283222545942636557641024702457146946799810229838035845607682801376290938626073601144834013200385539669168720560765180603268698172640810405524521438595870713671850330020445691224800037551589006935216029436213818431683715415968120343521856257248789123789041679270963241531353947303204542434445306528169360597566922202429829117556752671218504995820359012882217908949622667623243412323557086638023602416002542569437642379163200915586491324036521835701614596242997426039542454654415525052370194926139242724929408409111384799746877437252597808400060607364561940728117193821867252162318913211305063439336541025985780500501254440587745194845266910804864880362956251070685413690640972531984748371587469834666879717771678675181719017611738452797992626647545607297764246989440876614617691712537077756192836687472576198554332159621222623447577229432184524119649615352433456123689783047503789610521711941295355013591963907567955782400389825237869550263029025928446387723473754316220959585030093143777541006573349728962096255010017712338724846952329028657038106879246159245803852062695167162750380121317002260938297148261820748125363680387820421560922656335462916684541023271525623243893332092757224075724107117991899631282979102952349193702385435828292013361314519394387215317087401392124105490916675956767862602445375216894241001602502968070930065092388556716631280336199138818037367184755810015176174769339941000858114918942950921099587210286165557117100015258633136128761342975648500102918341414208587616766506073289561936582002623897969978447779096674427373456781726055852141629549381493481924039490474932844199185504533614729708295123161454413149561539315999328210423406515826823066750345256716261030267138680095602110959271509106690118209215523485961145452483941553761970873646372970541910665602181770448224327917784858751009337472328506446584108411443240549286579849797848827543491551521024750571363123529003540240186375947839965409460755884879861191304699028064161341204878904100419727102258224374707749868104644755994176929767589024898617338474073892217264857565080988287591720608693644744503055762565247265489658474360286982756785582730763716871811236782593089202462471412409933746514098444966929079447290894055066576969847832864641890406014148818517315777295029019053803497035946037017170918370636350479343967543140476508005186144105612037572788640796933219525586954353288064226240642283654215276457177858383314095138427385222653623356513990045065024006740593399980400872058788966779063970874487273765219321738804213604129661674389343018105009077876849937507914017464150126453094827838884317081496030294188934425255007428901784001603571602150511385070509467288803971380744852516142586817077596810396906871061584042193381850903443095741580422151588927659433540446502593391007207060732547792683498599253621231922721762350589952530415610837972886012821857222466258442952990506629767997454961734129018126827848901551302799557552000642429546238159437779263904753778029841897900248498867577354306460520619393690286833551372165149546712113826850322502881436466547252161643762651174476347159585575563237715322749722508414778822003153342408276076248075235522395529518554238387184066561282729825308038235525541242186160096800864880146787302927155769755283794093289551564492380432070922984006872258405089729958570965881670809225093214338907132738760229118802770402047295402161532326242306766577102273485916181248740037452849842858990485743799118913857666085676329867951412582435927832267429549644049326481284242564492282545556669338121060334830642060632061091187774447095679722272267494119815760482344016552229211468430918744853164479524960467405567842152572011920397404656384882557816338615570548705838701491160457204573437397526672398330227890277951888010106976367620011311347398497102164957108136374999612557808154340769038939078123399731029388825551128278336302822640174536715788216161226991778518318271944207840381343158858868750650168821718318063034812085329454716031288234301983172002947211237498015303178183257104877447455770086117284510789640502998275206047353068374584958097311586370270890688771878490881891663404396966716052487807835972615322942153223849662258754404509736689361039645238833480234703571064229972512931425332872236297458049758674640648657729334377983532776693708757967830148013494282252220943147913301949510120295137176269191973434569382932564449655278189131098310667039296296065717786636464525702809321542552806599289792009319553108027483087272378686089665299307236547683634526116332067362884052974650416914621034403329712938116504643162748172760240570662421786004751226073487831641065842642968429717760858358087973784079840789946872398656021304850058286675871206798363202240200428714466769093976785977744914463335223052556743323743885500636157286547474120959374841319627063837896749609839114116021616836140022034553313676104448855044607035298465868254451993493992183396549986545144464018656126293750331637795302221228163595050625682791893184916821825990191108769339019979818566359195434048844196427530287496033026439917985524735971899158517617473133634355751708229214864682322955233480405868554525037871764794903572831396018755251310645526396372184678746461617029136280540905096281193834019128087519010424819377560785713637019254015538930247542287190465013963638450946252901493174441121467104640556584657468363165207790872396310079222798946126247484290178757884999614860480324392627365661925452640946454677573696050701910649080370965930984273029232656582456608513818651356761065672676356375395167467655038576677333381053772886191578936611039975578742390109725803137888987897937353063765101354290545724315707342765105091656800081430423416795762984018497763188896383688576546905570357211438877076232605403554181050801078376727455132550507351058691859121299138392570690905911299270586273689610922580967422602742843123597900410610048429233084757699001320277445527533804654928863681308621210202986087442213400429280277503111531546536191737209094763967647074348657929917552521655686386705941746094605290028595174579845818623127998616198934066819263353506463869762926355231611142329573027174299183817332822146089136842357193312267067515068671311408586336528913887254482331303939607871826633771782407327260542324793081737819819227440030025205242517953334049733302226243482530090324509936196182283874038408263715213342890467369005873200894550640203144321507017153268722618437826132206061100023785552169600979082343819565099214943110430807030497965916857524096915359309473101855517414917982076224269867247665580972494084037374066554675923693842975676254916725214124270141894464688694584146438167864224153808972832282587130680308392799689535098300830915417888240992492826818680892230410914747024279369960437254119640579775769022252425178121805378958839935847245217079896236480635852447152512352378611815107506811269248776470316298772822909059259752882222840064367431798405739264766745119230188871074900022789598806918051088353026033221046346276529321493402883516609525214872895083112578996939528350584015318876740252570953920298025523375718848099693485726978873707849231203062722506257279032325208075054056781201358360651923146962551429999727938191578665106968428974816655399434046485906277376004319994014345244902676754213068788777387492907086502015485215310521450078115052181524159972634000391061505204313275094999624946886186800583790460010542680775669046169314747283375390077020581058039701918468245709397458840361881181514037937752008160882164541057222483079408515913198341602353577740481840343003837303317893032424933720726379180712277641568035233116477531673715946354250763484163031553366963021137132076836712932707495205493812121782310689505085718902098751292527985426622596000769299645774446358160854205283622606118554005593600071850846922765422483781249691326625694716983769322342817985183262878666593003962063709488160349542127732629008373283500970636251442750613914949202209029207732403608135254484253217301766572544292033357421417791761162119221776242408486852532389243081829958703931918192975389737566997442546116549411454234633872017432775060753176015663186150912402213547078121722758824665440389563639285570596075367646163674194271347522903794320649112471982061016504757567732771126155102102149220523812440009859889625956525796926659910939732811326588316437552481921122668458165010604657547750597810200345228118270372841090610176681684288509404697944763190748401883695486444247011377169938360220853892764940584833851984410895234658659641280830179755419149774900219600985229118858537683411905409873789658049711571338165150550578457273338518918887589385114208735691068532610518776027026632354048716882591445651188094271474059634283882651269528001215073456917602093747266733896451712933562069371622050429530106733825405415927384324365854542745314314695161531129799819206060585149339952308202905494054494059269464315802507640736216450798358529229353747775186845696261183763137865048023901147055639241338994110263236130668770865853545935134755663590343811334940155036213368439673021825760602482195900322347901407779534860984844237653787405614130986901367573936885029188067180556121601344057718442676011025389965037622802842632920593084972962218603529477741108806957720085236406800280540877278120872720707535774146476451761867949270875671031899191660280074954035258428131606482650278891873760006479991593604247157890715116091294317963633712853533644169561732863501247512118671295499181964811743443045218519033971554010554839958691524081937753685579015079768736757828369174601147669474848599515104138523405221642407882388821462354762072466206006071716642444075415093745251855348077202394449781923341812104707878068286347225605606478838508716498004398406322113404328799828597562391275504448749063855881907871695442632647780669799408690452960797114394055731367333769441390903888088804648608756241596223277346887996228045663184334150860234549421783200655577273610654047121044453588691159689458812188683722342408591482183563663190965622142577755360446924275282784757236222621488501467232000982559931411686602005328947993475936298620870158604967034124212221552063467105716371200533216715838718410558372992783452581212752115218555220184003620855481457453619899229100169738705316653223826195946187900295446668368673591911692862068860387016318553527261920119406981709952682989224189855001704738064866116901870716710369114969882153434389409456600419383520388132664169568810023299597350759908462359632822403837942772558993039910097785843492837593136217702570893613585134086702058853644264635641511891679494968331510322940013322992400131904885871614746692265546320570998688873815303229035151143531899927164185740819416177856196397133541692119761130601642445607561624096874884129704444679207973971360147949564805783519896478836882734765752700597477202074774567694021856334562794312655250362487985034336201000653906305654951729233270945951402624062664084225412845943531608417220885164472482770261935501602905122085767652042516179126326542651013171356798924946831848023480452269052166557250785652094039726575681039797507913778512515388248985263589093482822694714864176887249707469144137561214108842075886666854314786917616064244883571114450444913235144263563230879686996128845302398085408436745237991335013479397959397582823331726760572109273757314478133374581213431305331360592319609031455078479669084915301541492705604893596196234536427643010381437949956923002421912091875739788170880743486708405803328968350431108653022875337768983153873347400134736401533650432860260520757450966972230040720398409815532155435651254124863027016881804594058880418530378444103615048332573143578950629023236139759634573928729913326554206695563231989074593142229518524852131642868437698918249475298662806024973776217658486062815536352427667666109949230213774137082709590246416719476883103392688974389775531314786838129544202888106608374468545161144460826288457465391003332888049611563245504244442370850006203828618987512493353680953439633716194602022253570320378773017382879387855838278535754345986677562565409079751840971905861946935181981993916339592616839370205225059218335038469714199344000361389956314175375316938334182897948380949935304830943913296605127115947493058194033586092922470910725630028284074630443111439363808722368268570214555504514285603245609356420050246423955177272300230632356548361390597955780069360710021870332341822409296688311328889461091977283528692847110496624210911173795614956219703861262278395031071279820453590841018612778240544341200944471943871477081995072390757891665169033133794835873853614671833354739565995177425665257963770059191286598896148298488930282827165984580834486631026058770443020364974293565598877296749402856913423285842040684689110516096075681638059350884913314441949107826927183166386767781523851145597617124036435252921880891569644027307449117636754350616361246121260112400818379369897495460280788072685176253196470589847127235681565515109848476303714907730185583503521747329800528092290432668293098311849998585868736862659030905785474954174085459007083175726834602153369556175836259131066893112835326238251205197371900666223021477514242431966057749833901408556571030324091905774085824647571257171367283219174538240297953682419472576215186359984355251770355023018788338051441990179433086911553320991859698211526739694864551760922758162833114486117164602416036621551261205811280542301904033334874673704363590532019532279305965458933904136383605827815560843082963568423332984109886923832487343554259677902286270514656217742869608200228302521740901262841166203546171065337757390191059880702309594200170560818028311842496844976134410868304211511057192070441241335079934891784026218952696708765645370427102964811665390946836014585096117142182009173213873873718325182121782904773598199385586253577968391251942146835498338418255142151602077879818992426721660186369892142347236105203551284946733237191451793905961234487322818422636089920705649487941087194487346408026507046947202333409438373472747677048977749599634856572786127603157402183683732549315559576139003027778513522403631311891371471223297765289130988308149944556760853692936264988177789015849155156682449046609516635668605518792796818189279281281401329721358016420710536099881289152905163661131622230611611599821064285427327594157629176380833938623007526514907341127849023202392679396019781528101406420046185810544255149920536987281259900786198023597049684168037059463341687692393736708874019067717545005523996334192025237863098154502007331605325647740859084826651117891586445476009409657526057082971646586035225047475882289064871260011213300483825638086914059306035066233224831731952362467871659109898287546034014554222510215611104126419687562890786906673377267992628334711078275337439492723418503210608685350521248524006453064733505630933052098383683794069485638777072332869996289518059491282025996829908856686860310049448257854920456790244396722094052297668536008577206820603262583257049616681676303107978591441173691863685640899049018892284761000891555465528480134263983857068181802154468540446489896514882452164532896339420686279650314758595288289395273547646099111747726711046030526375041011002742900763906856718287626392668465640020656655494719339813181492822795275486164006006280678023176997984342259842843978317607850035217055274763946094774364743508521119476950428635726510936241425308312388308950409098032514847687536906141515873924851301517595141039634438753892225272994054897532413885626658815508672038955113806088850746949148299564422014575283468132377748954133074617042432526007222390204773067884227472303407780091304553531096756722816939299081466027686952151132847038703166508969119567283803868595557540870471355109302539639465842765738985634423956460367801330381160093731126177776636499184190167242135910572062541003519620928752216762812920623418368235525974092422655505044035200498123691199406078721942088231817446590666083680219945792035495422213862409424428790940635553940695062423069365561025626158670739138582884836742449750587645130570994730351499942551313329442371018987150981545579288271273184296368749706979171900676021575124112227950797196438918006612071435066135383330499224888125262209593454629384399800421447425569713407605390741238580692360658428323489615141420144171851882986203046106286719701543365967326839306509250582639626536818977155407374827271521667653642813532633135159667057962684197195444216085298117046658296151771631115799958631399658568254906252110270039558365957806518121583809507451448246813275819047854809306637055857675825052996713326437965959685795598703244172639396357250540842710942239462250188196703669965901481816894331304234797379545842559379793059718124980785194957425578635369926621004970694015327303365273165715966272992489026706870896397178948927444529418999761667204275535821468134603472215850863784431569390461199157918117892056811248063985243132001713013016825178550300479321547291656755976685106136431130223237395071257845396700698136045280731322992421279963121324863758383648115286105439296909979276380446562107083397224038732771333046137053548158276810101626244697913339983454601327220041096712888411353213348019726535399279101339224780882304886862346097367227511130713325835170396880063414786998370994479462618317084189656820506923608930402127975998360551912780898325488900244414245455074019916650039405672947296744223411272478705108537591120800500943835017780678004223990386622972096490911173327446737122560740749351178926351714184207317072803451523038069228932283084212832237481953097511250512174540076977329398495660248423294349215208664802442075896569381645045513008293315133428073100553607740738208642772145579206841131791364380631971980873773649578330418550303403110714941923391919472992979878483166192368451225140320195713674474627770401668909982874481506149137761690351642883308855913954537442510554867025557524198309598964434604312801905546734636251081497839443664856588478946007699584239834545727661810194917582478605260482701738852145722490031513454702775835756679901213889910962018865296531662088107138884825936371222847081018568398455559184266731150138275248455473580696975477428914117495988166413262989038898524873092217882877610630670509657271287200579507520962301129513944461448643162864107436547421351275775126720824548141453817086327459429727666165887821878749016626485035608590548664395906501795915854210947654844199587463667838500122787168309329990025486658733120146032158812015070802656556988438735256100671256296084993994987774609959487788458109532853321201122823224854467469665055889584631023363149489656829271279886255971080904939831469550739786635975264396162080321321951281783582193382346512546588552774820385530085593112838574799915035079421927714489142617316773658344503570468356169506596588854912580589597926537195497947440703232320594877117788456371486637977465863773537128716467298089943851057438752644796347747698545919281689278568905602541874532847367619518112482962956162287676088751169259944327869037348632758668324942129629248964932061602626774670707080659618109660848837440485612927127755165509522065003199498941094737314279817607637087582385252824301864377507366562317996336874318795965036950541020528084921818259950966378427491320433983100357978102823553710147570980424890588280877358033553778961034071746520200461077129116716475659701941634429065722233787640588894810255166951640662969453066484287406704026890853647460865224005987957491087441037434169322275273248176478018134600105625606041728574773877147843684101072848179195991229865727558754995468535392719139602053723976978851307438706981462386398191670312304306459164327314243788210338408977467089943459296507863953428948748182529148521859235780963482647003437367005604700711367632966383308283991803672758399469208893569178678065059385245574845273214452190889112241866556334084962721257573955461005249128137353628616107525780439666831806112718492630630562149115700556747356987285994527967458471383812099416205044127422168327079445975033782712431804627514996400952797409095138778485729242531482543653991192146679788661981733212511591500644187327622969969241745209502734808469797945313473359476906618635963722830957389875932028329150583121905988063377325040900188954520416885572737130630382998205758821417005939454281252186127629775090785054770099842371618999954551573849827953655733574653099520382894109042167412242726672173560597186751200756101453230152225922848741172575131899572000623188830238965186081692156129385774234844302073321925994417830132494343495371893321589081733575657372730022429726657359274002321188158690255146458925061347333753106094166555012233676922252364867095232612124228865946230613985626941955709578448210818160940116282488691285320752694995999073483126535607461029537431250378550755865668039041446422510811374541341500785001862826168138341080083376889633230892593063822143367800733414418593650004112039502979879565387977852920295384963928714000143257607105468069027168907287370567239274882788505846694300615436284121848929234369542553206622703284919197573279798943452128681121651771881042092079662450720020598615931075617880159003265993215513990008913229838228251706553304319077809797100367498888889951623009625646384995675079931567936618825891031501246689140147211588072534730577873844663756480131797305269997609781891052296362083838901545768149573354271380434147738306815367587548825406632127752455613552744671430079031350350165993476727526271298177114457537803482456376429006680880093405970262150392461009154563273633141252737824057300248965888217743239283269893714120161200886699825097174395615385146606943153571785898193334369573026155198599772377447196167707871029994249587180231777190857542607381490906695779267392023434328677399744969602449160681164695404167264296762209589595495812541813710678979350304648895501863468392993406120441405344773537328152624059419179682904536492365668950427953087271432182448392598341973687880205530529521358321758948608161087198935673306368734845809487937048703662757766702041291784152270343286346196426479731269009844272662263624474297027839558406323240532005910756387684624510833091318811226962940097251897578884378447777512908095788995867960052629693935270371057024650505546560651727597352852270729679843660084166653449978397447756117441050224625550143395626816583443086397858646370210233651053776244863912619007940940934254274575980091222674727703587978404022698676152268120460310899311850307279654847791793539389529778135220590172919299042561103155143158841375825175685061034088865447265659499324747991113690254964433521117370863574989565618558196086668488612132974605391451342220801273796607133418284846367243976241980820144925443208966650989008594691536286017001683561294552768576995772774043999684939914529794053602337099608710298714285757013822494979976273288845770124795221822093447680535083191244497485868071608783138608524789211806080257828129959944582475925872053020217506663113668643803720592428297808490156838374456424559097821704727821765067977946298104628599137988554369081152105053194159053638600658989179397526203690252731892630251547897050475112916769333180079834914089430146534664995509934344956367440714231634395691884078334944466233950182585835113458853694859279191368357996878827418896995515735867657276021273411763036367400666591662476560226299838460192080276145018062423549147938902591213099944048647004196534784359186566612994458467922459516341708515541921504342840715066246907575167033902467199497990839678654936271958888008010119643119010065747729263727688962542101597547999569745851998293347787897861546339060854172232705020072966404933925200887962653297557810327695853716715920049549442518249671671196885021050436029505614435811715385052492359891864475559201933393706131536381329645058717639351516726390271685869088009148350621894873175099988613492211498608575026836538232981055110752412669310403190848962205450131324990579123486159282392885926189652814857973967609945857385466031975610575081114457795013793925637958316620629028745041276922776161650669284118539615617518697864198675024373461633303902660425894875992522802757606542528728946273616972462821843209074053033707245828094902528603211798884918643368571177110766129923687908044286420170989833598882272813253886677543039443422159510711997102589818062736074332032779875599108657500179699894852249412984447358460406027659354708593180484483267834080597164170652263617203513550126931459415027641213812805250002269508263315391693918316021790878454230405559026012340933857699814505852643882386497915980260480482365372038267867224827953763123703230336475165040889942359948241693354509346709186415492322457968733198316527951875107281701460543483331719808350756683588692688596288252803076673128580312625856298957311928400450172806068135029965548895453059345932046859808172326660103678345060216341612504273767927721608936503945217013813189933560817714362935619988174456814969745294349126171007608947539699612942888569473263263762078994923929685794438692215489847529817808624229197311738431845601499839825318687489346822672457623027891482629866196520203810051911729021476872655965652436009725077014887267633061401545045139143836178923721317614084454093971930012046255225277696637079295768699005992641596441733933101501597438623736374372680234126865476744350070222649285294576195574794854411412232239607809214652384582057449221979673732708656515853587513670486342812561465360405300698523092311155552562393626255683836903261590930058315156979115932277077128099504976151786002820528072882517682815557568737812671980893210407351672005972081804829496424474020200706576516602893115616548285006817031330204491869014720315491258201747664722978633876810378701697767555783321946439799228759756272853494144247200569426998232117420958614591459179381676388211301108905550794264552715140627679023062909292239456192606370956778956888366985351647654302327938725259599430428012792391764511727297281176700843643078657805164327359240948520724106447347510085544898587238535222599384337724721506091314396367763772372999194291763966395724330787711004438076993538340565903627045295660496735499067673958435239971440006827497448723782684826303602257977018370268685801191033067541749399816405736563768834504635709943347714580371228585412732307744167326237293345585680302750772173579659147406528445249154370372899870962953532486921196209391136476163898440507688820639858424424896182549392768128804473450938414670573652883464046867549918855362744870053182402503170335334793198027392422385244913981022536749765877297350440982406536325993524802382219285691252410924233281589065118997831841103975124129408092492927926375466485754587325245329943730303614959156557959899193392840254019423353752731148535435028999403909041772200035823117225347015190026232113100616835870144973913474079405427315928731880776687690832379551490978119040245532541967067747257352794898457681476626975208678104786841262894146138709346136987651209990182955816123019823936607773061550560154284659439392989925631264382782843531064279155236921723955331713599751165147430770969285892150301323555285584208429239237198090723988787869050808680835035071970953086582266538302720003142992250200632038005254880674719817620531322401095973932304323374980394132720561952220822969327375893990934913606938705568441545945994682549380524971711256645476889370627020718877427267795821284304613526220136956956967735196547293126762121355527465707543663707201364968778086823758575988196108098119786457141850990886533129680810789416781063678379083250213459706295610751815669481210621024116134731688757871892294946900348972632654376993989730661157275097847716059122093455582751949798791880987062275752226725478268417525021677769351603112870969979787604382206792483866226829807567112777418635018753810032364700484082765054420341482873243873825978765447147744522556689299660771941137109679995606078569806994478820222116700149355015889300514104479665954882715575787600983640970020091046163613108278620179564652944824869204341535233193540358743056254983654952108742023375593964802380356839948053914802452876674870610401672837555207560021542678411176651015128341820981408148604176580459969797761598568683441165663967460999310245457553755849562099624027462596568119137595129211320517641617474891280871770618314986788674584841359922170832515181989473338989091526166224169606352827305658212812433812014848193099745355485793809223874171482489378365585436805301171127050349615340060289948631595196166326975683525444707733539978960737977538690690415340744138065930974992900561883665546465841602181900187775993981054339171325653754088576181185520613665484802300406692372463709311980642036129969544231935238018186232826674539243275405254045817769732173456227362039169507196842618777777186979295527835687171183433281320487706698549539104290367369019986246593886932445473566314793622237218432963529225197924461986447817182054834886657776294164763334442007611971706825282910775569351506428943509706160008472317962954639918212983043434489117529531114482635870290806556075481868614189464674812754341043553658337775627635797470789795690827670530861723340766959155984813453253600056261233685420488380459890948846326565851478450548502238693389106849701494227642530332889934635954054220215640415609746573910588970843921146926799103642823721083517297075380785069525886954735842873162133409542406011181579969188161335907647630636321569962239326432229060425332360211963660268095956526313518284830037661406649414726434406373420689026420069766131999466471621623388887638433308408416800294520332268452465416263373293540613244016944528796989109486311502090744966259452791093229591449754399095465834501445804395103211923121339603447598072760320103695224045434552410443304191159901142803557476098880411527521650476165116375232788236587678638742527454597363068008837552018909059937406453622204577724887485685376103268872072552956344064601975026228429703641944874927245013837359448073391181168839261225876956064511884341136249908899477651620358884795533428245225742308991333689734397121746578301730525750880072087733636154241840132749736373049924464639265229830386532385412168993187105365373112256109408324577549889779911368786922966741884001132874307402163840368210355413675005084952876194353413002236979884787781580296246345461753262230988522699129463855596633909401038006637678579376955937518527552482288818159831880884284315675021143008168908109404083886694170257439080577564436844990686976212605837574953754990857384368292509370194234027563007642845551541508403452186555193206312192832556765969651387311771762465912624834497471315755527364943827937844618050323830978734525177312864149026366032134703419122658157519736568611247220971337635300479091829730816725710618726321147797835353820566887315351890431838639875802789877366071440871661370148095183684581317250222857252371487808955897178045665932074331345676140659152237509378329322082832318145005137573495963104903277704630833085680156571106306530191798064676761970536334636107168342049396739724324984276707735824146344029758581802289207250874462647432036686859097274979575422006634525011374681491173609841293276695704681830855162692047499959449706009382892546690201434880273040285409717053493169716720341118877044841370809888912770232385277712081583413741977698498516380098451960095965100031815181883895046253283132781612027967824709020400617347801566645856333880497080026208588777406837934553195428915365502241100566998406175415348460091041421897974144423520644478009382622627388158911071407658637747288749667063990063758357550612086642227620190829244348351898993723968069081130608141278877925201681631091956896349653464701274818690652333371813258613200998386759197930936447799240295516427904823455482736087296079511892822024824845050037196194582956655449010342128182856997355285842757952361077981585002354372129078177245746916812218661812100055225382052714341140106225845787012192519368180529307919215543950011904543197130433156573612174143917616695963960524923621873488826845191631290033480761708173691086493235898749660133527361229226725600464418888453441868912237561405929915852782559590854391484310955330316560144376497427406199115356068834239480559379683189950640381614113254292611377642900247605894679517511676489815959279354349701842436746992240497387648666660657853257095057288739034678015812283173650596366697324633870608724270824643622609689447499963709477219719449344481204828708689212522091953221510340296753367015342340631376898915758523565151999973351448697450513232872200731698518685999826066673600522131549478702609275557102418969739150937226401477127245266207177589897074450584283665820674306795489314398657150836728268094024241094524663860679443749691681429515613651757916828681769916029712878276431994076696760470013970252197537274331390508863199847019309874786402317690385545678772745867375297156482376594757518810152023436739798872579491056787441103378758818354433486485233585719908456628189882275319999634350387323304714370468824029164803590013368595332516335801547630951202078905054876168668600585056231219807461733115868049571412872413932286623305925728405398166076410479358343627365275789857209843311756914121637562808498423919366666770401499608532030806697650995800414140939363611206592324210080503099580044054200808856757815502626768423781173054241289552151081208902713780676065329476417200174210316954794935644030685427461909797297644193506808979788228310067641086870464213657419579146596048465399613079011648008835144878697865505641976126822475598159046680967562389521011982217025736831523352442914999640650156684355944201546447562593296394888810724429726757912472351504617698851956945904655413737324327319557153409640515449478019952899613129468160718371226063276698172938202206103251688460825241145600799777119503575351543426798514948136578525282291159601943816139916009338874731098461009112677473397559483471100265259452021699295594891475595475383771419182760293201444213969996946285775279444699478200285290613822510321932069548246263650391903665256198560887953325645211852478440396756870249665464969399839517659221888514741418237667528500951903866720117037054191194172650381076905797543822152645399544529245253747771248503688218397076806500915082891538268521566918453500885196237019797576282513905009593582741939778887904281811250434816536788352864359673228676613558338578206174453914066863990511508828599480487370971397074765315779191735306823226527595226370902122637753250937255582511004763744859998502756219436733753531531861539049476805273580628039001486550917658519171524756810803326443623646476132349019060007976047410765162325908792783957262619357520778813539855677504116134385922226281412521543844814988649002943966007694548646055517213032304785721144272988491196968865675426932363011922613396814697652342401543883386496507605141275690774872103330157543081211157412919185987276233327346133484314151046533741585296553794162406987233680527135235330026946774601008574452895109731571098354368334207066867708070998575701525703493955524242678070483536527185652505087391934641080414092780495571523938817564909444393662206743256812693789425957824467500957909447332028288597616029056308555026271427618005514783225725660945561355528129915205512746303758297901955084988962935040631259863520755073396354046423257415078294900290049413045821310907679853953267786137175577664824237715570993091986442033157519199657332323845234781548976898068496245548219227480972530472752408689725462937793217038318611060397018998376975166274867048680967492649242670097433192717104982805267463129323616127993215950548623203189894011191215014611360011569217570277156209889424333695134811572299899122449287466554845444390306702585385209527363760483291033161729714694895815029371941288188653772381785381760499388643831153624161166070349664299378860196871529740270559857559588026443935446196946895634636158357612723737271502849911126201162747583293644263766775380396946761764705161537585281579926462831462525481024281776791659203905543555213952007830467965967250780335003389950809064359230798103034196999977882034519613671769245478415310119575032707344738289211707940708988715488294950435357206733752487395974565772276358775644665219272201081424653106962714965110852754007996194804944895398138663357592327727080417011001398812167469092435970086324456786429744772128690506880964691223093170784923764077570178447264289767113532197735137269208229271199308440239621314072570750797529843553104897636562482562002157662940987225244775646233147534023961691112402517812783711204104092950456940197224847006664149258719691288589340093329947205208997785429575481254109235052652587051226436377737939959367576743888626461436332473293497654670227422896836250843795978303897008652816882010643882849050275761638424966728454829544564672462839207735403976004953387074949823340107490678565194624203384358743190641937998398467768548517642242423847666475136015246948419072698141123735296989511853969030631016721063377944500357784100883006354815176092242435943176772323092070309715111533589137236009084401434701772560527256990756356836960622170094147126413923694244282272885698817408412414193571823040287151084834205280723368161738043810743454660006844500298440003031150944661461810392423010640874365224339374733373075283866864642345553046047485884610357281763365610802193727372638385639344281419126852844363725586212999164211893488252483157777986104682275754581915164413150119100363164861601634851747901881044561184898295480080053063933815180077654747374486877987233676521866522514620961277318108808167007653859283077849185408028421299137071015301883077706338463662840834267163688806485888482983498454009641655646459382110635220565715419242253388809632103312035584763479902702192266704868897164547767995818681785455796426334651915204410008651458123854036523417529928634490081788921655716164663077350758226023851312769972078447889989226725745270536576144650470830553313610739046951890628434287166342056458593914570891904593878959926095164526833324002598958435920546912785855777807616934085909518522179211458534758759334331791105589460240904706578063405016515121181598995113361418672690317008305845163976495040554867945087160962202309806178350538282857205830449511943935234711952034455123726470091960785421541183349505125713554632143402731696824628218230171517107562601075671782156465293229611758912532948926462770631302088068552372645042073102772124301730786864994509378049562211833423852575836438040002657037973444369121697679191839699541016020096835517571471654989146217182288756239592521875638285141858734469791073232566736696613741795599914140521396658279534670725737536998545001112985509144088471926736492523851935609119306180560864488048522553833146642051731559236267891610300085723276718965788972865560956680830559763102601476375523778473351785183453561012779859992338743711605174450860773237400587005392567614126305296415063253923073759463063312049121883927671955800095969000986099664832218565343281818702651459031858553160522077839586793960685363063766832038688203670547227380003602575630362479827748646149058118471506527795528049541552836400710706886095672664465721855684424439597979592549225525947735395470895372485537588342991582997344333450863111125452544249723431268274210598025669957065307506740967830321306371134739428313930605322647624123000513304855406785731554053724293603596920383911043466922163503166461765005440810757123844513269131771689971731604547351792812026602552657564504509345959144107037350745842058025753866382647160625015808741641950698531772856798540346096588005500881877742127188158227111880939936091719482687411270385185630215538323065841648308705007066373333770401517743572440080024589580702051818913235125802160737126702752058990514264800415522262935476172626316891981906855853965969034818171650414211045069326447831540257371121277780278108546457868786527914270107388558285808840726817427344506167146042080635669826048023577554796129486631439683873465206987173896006674319612268895378954313718746232571738898738258112715349120001886785432502030810768274610157074285415407456832311282923999591421272957574365316309676360839024605567175436928463499501693920596328893053601581537248588599668570529377685909799242222301697652048380443176536218186906713354905093850018168381624412313242678954408766873397744760244569644919051253731668128936091792868076675989368291533687798599280972374708746057461892901104739939496071671443849286973018954144569467109833520312225848983129165859515013769396699079131715805781612328619342261581559519726425291365852861649607929929164675680312817071073377722652717961762068861156181402141879337162320389198235730873875358484845971937142738868070043743259840771109597494332794727756470659755382208178221413701460029866656761197880585478587829534986407962848034609491903153471711676677897384513940721515264896923682235118760077946333969015662247162970078162895239754908248421118564404895847131318898760560309541767339260281188016524672153594950363712479890283993992248877732521918815411321542883042267878670185108671390857040426083033178638893412820914344896365832204868841086898918471847593837127385872828596649018060781542822374599938696309907861691060723429550353111771037288176332506210979546771569009553921015353402722985850453123943460000412880036563531841474688123155572054933309015188409783466857762262585851471556408640851620087351314273791473350286316607981265099933145072477992344732024931260532532000893222024185354941421357030962078212153663777267959478844297017951943868317650561733558643795294933384563842415985071389440787993569069110163166570150047479414873977381969698013041365711818683238285665454882150495430087732241518149315273441037059026859862583941454751224132608738163294332738073468858755579841741133140156885741159551972927737338986225477770821496002163882442302989273922052962556428139582217362103087823387169455728587384898170081496636950848250894510258524923360006096403694390218245663287046426695353520891645740869932605999773390870803609858886263449386189927164167842847962313947884935073216782501051960076583571971918911283398574162932058073366336781237780517204864335084554752251996043592711582759860259138738951964245130763392079495454172456792906312598233115443358151692806766590009705167663546207240924219049035759200437363704615926586446983016409196100328241193326897741309618886183158459213219151768635303797219433444229474347330727184824764727002807515488950241489969939912109603725086767804857729060875976060069939467445353185506134333039875024797330993206563774781366670689589992392246396061893569741118827324964380155090781222657846193626972377019530373877231015424293100600186531645691180157175809068162364072644907032609739444830198538339978218614000078877612379512395372262480666183402781393471644448179095534667967924417688945618188020999261237711396290633014952477226446619039602982026869994416493394461946119889052176436739846744092759661863114723106903022569865064670364169607384875274938881343658325072731621187605615907467785913051784633396652711012741434549622969485487779989985801297798016283670703533609150073825596307698979168002178642088908030681375296082860886943968666184538791953983918762855835795391522594143127276683111477201869790997538233223609715830746682131220987384315381981113118235728525300688280719578460112574958685682684114404558857505818191313926378096579133962257087590848628366743842307458435505046998297891739306521262719824713355157290541543655140291882335438123411894283305563301561753452918527572016216966649395783291261088132956779825082006299647102276377874266930358741730320268252129165298962108179511383628394355598182569413987358853745233767328189050230693078860626690173452880219937913519146104856298067037587790380768684200167409214813998662877820900623576611045350045519969450236973290221514946204147359355093081425024369069452250459072622858759026767571134475190351898023704219546269330723857469325137816084299292143154764382044738486270174186985481840845073333535072959087636441441341604171519614900469400884962863639210084173526192896094113094928633247503140893919025751790618372361000234528862879561371270115647389308794822479637994738564329788295142046711707211384640646332435881767491347474957693776776894125748900353769723864628117751809052932238577960471015897952780044900572011172377370926876206054936215540410963205807675967751274579201059864159917723312102996778490442897010602747847457856241950608906982277620496090471907905900611775227550280917540491570558465923638759308728615650310469653976706377109164181788237969210083118603388435979184733183766346519851427179004228290352369813601968829558655748489272465079452889813177310601063145836273539731491203084671905532860985251209373771357841096715005502363524795919332185140068567977375580310473127871737647619788910194311122597090471719640081686825718986612614203914976704423618276334149601828335854017157431652394545502077951519187967505959700867718778174925626139484013884795308923852827346644414707890267405331750733258858730135523411227988403160365498513241754268119422804690682570464541707070594024915511656663571024046918367741679093480201023101933352060373072076649375677673730699880149377607643474850584531382023252231091505372454128858575591462181201079962233466565000472140443768775628082885441158730619803080999049850566322694484003027741419130866458053797639039394493003248912593417555329393443363917105369930680156480933899111336789976377441217931936072990068952453708229824606512022121283536318091357214119959712200473903028763968918589436448600638448541846063437738963363434942265330086853982347945693448503532588730401224211259627293135668115143928717321460794751613809880023971684946195025261667884841743584751599870524378055712441183509703966400794512954862585678806371084495407040923204596028863445715206064932791233209200937388645882092866052335053635205084492471088766861382220466943269998297915187935135950032869356384889043196716121596226457044314996913222613119452318836681028972702847334563370159705337404356024366468894752149192490402102971844855338205861105467096555343452954902880759894895314451728634597392261992436673567348233631748007546875089019278012176869369523001983581784229472020058782887169854624925887287169594317861366723762635121884588170557708700972090985194969627125737686827161536363831443110573565695302524672606400059589447194490340934967286768172987161115875778962357114334850421419468868122759103367302844292800336098854318016793093049417958043681384490525611289584872824996667671220361656245912731894677726112899228296689346607920642999283310380017114213999504772492065872158932781608491693404869674786183061213592175012866802900662943969295336036703102246837953293477949470872729459157130420244326643203180948558871990274508498635714327062340409268026529356231108898200622632330680869118368045342183400034434176863267336387087173278619872924295590537895436079132942613551165407385270703488647762492241040783893517199723118509275356267785785168453533480528102814902011181613066797478459844201896530467102971056597558759874576004951329641686010250165632960770783999257965454058188309128879477793236268032699828886569389658174761232064232327402053361507886040329633513172500247879840358735966149648555421188917057964650463225659228342399572321433813717734425704936414668252579985919397640744513902441309167909370249855729700710996209983948775779064455216843222725602500182541907855265347208063092348740085496122531967723067638760677721978956463564963523124061439934222008135453078104227556755758902211575318397735903831631750166756555090901922602395945409442178734831232476612901339539222599357583573177032276162789661234674228568528560708372115991825591960665192711358445760033830073734686168316868667994168498970974034404885345614390047284545573444851383742023836104110038983259556031347664085768661038724103583345603913993710019773027739764687078991551151684477287207048931523506774722759998669173111105028689677423941433097543626767302893182764359024561187896282770539508704664666601979973082589163623290505000223722325237704568371452383165570962479305175072212853494043503715866099803872123350184195151059273948425988464965265733007039717307713288762871135314425325418355786130792168991394768260130954964619819651497031922949400739217894076453334864656486933656436931406432706154525132265359481015651019218899031008946310812212971485726289272681663187382904383908531554559816037782626077373704773394103122433741784265095451344406865071890246914866246763604188414138039423608923065773783015491744834192043234178197443050676978087158793274148552757485250541646008518681552008735643516761423392697859004967086431233620557029659481596273400655429396811630781096126082126548550794851894984505251378829455774325345343209378969622778061315484772337445869234284664360496511829252447572060665100534460037314282205960194421746116704608418808310499697739914821469773001371498202144616616741528614101401068140647790885159906058157208376421990514951844788333530073235978386154638841779266943866458453199877516997393421677128079015864276497007384278436822034368619564013731199434521869625393599548020304878163936128847598924491177498040163835407222343121189679981340954687538102539138070425631348747095809349666852304350097505072896797405737554353998757510495650264609992940083487196417304659288122891223397188264856101101588840562688699283490049311214364024988940287044635918086481519247882628193680456350155454666331199365016403761785097961345253779620838499586184328688732577980202079061113512097760150624762008714317156719937923618626898097588422551917002654828121924998099522501106262246857126684390259966776477126535014110236035201965355217727478001422397772064182994322265388403622155525254277611057721298246467690707953007700772965513276337380516364090720655519011011239366596225582213057155869815767966108985582933351765625272471435591725538081193647859217144074578447346674559900479898642828452676850940874088377141465611976890308244076491083772650804125538152695635934944078571138758939043503839184174413319963005628586552464260433123692947892342198790016884918452458364226474368820641779625096404516939586691145007339853509439120546697830661654765283809380867325764158977985702487545687750352022656403499383679998431472961217501711099982945986115309771985613366905739874678346159786657392198933263154644291245279432802827189475515396787761917017164664785048404318656295775538523765610373605781022457087184874324300628642859630616803204179856740601834325085886159517179697026767946258137072691791178874991682238862536416555546020639458827211923570590333247771692510455297783064231330461372548260369821073387177752678342203842678116939180929894232602111246213351500166874634267833038920207224209064156856755295972644867918947678219104271240324801830992745407769407110585620055687873118125525722038248595264998976439314292032427699156259659555856783492558336382130572494401826602049000960385655981898232911979802093087710465055992680866698474469939120400727666318160682730250984960053291820848678399771857046554921223598255466575500060242063952496750826197430767957056921899904014419702032833825348366024995328252051860959728567465638560579497866239534616928158583041685020764194468555904958073901626659954563330214343053596601046782963028034517437570084189656588994511301671928730092157512428745805091751842742976634485388387611058816432640173412369484028253018816710925708951197037277697496529539772714539181749705623498642907869810029305950719956889460727392360696775702665743854751235891590060078358583431048659913603042620938641097911817446803311785792705873280172154754655221051633115184262102445632196486551629793802595480330656427436498827819995756342484257540933697682419728144242894189272446538820093948338439712678474356786521079500976553529404017871544628488279341894128595921168967023776466023428997040936096828323154570960063777352635199084108544161199180714464723593497813388337871121680865124328028094625218726217669422686585192649303540453728241204276223396836433884319276859469315233711213849742689019139791658476853077481681762860158608136673471081039780782926559039584657023266918527283967390058198311080661644161321388296433100514044802287963589262370843765589584669136125258489479552906057903651302378924349194614306509449026358833844443928544900084649822099044075539966409277144008308006860776506602894885039887971029508676332893031591411512745499452223695202256787357817366441881023037892325669272659043816153208088433289529860292630099078427175633993325276164906139396844658359706734520928021374571571177255630728429582832552299898483398459223884959105886507107963210006894038174633521087512238339078248381907627421534874680116782320884675708164209849683334570775159304220847269449459158357311200077557824598977210274876327080798985430624252427943334090516481518543630733504784230644303229207231407055172328708497138627486364366178335656518836771236401953650128499692464550719058383848576727182528085390700256879092608192920055707407904361776919143814208113353986645809838453588730881370291195089972432245240624977253353941282461458797992988217083830822144262548942938799966424441684536983715275275081268328235325346854381009799360197162286715706113811672159149232889569754015800090144661620967684904183436159569411089249043652437759026150618582493214832033664223742306263198763642232857910359158525689523913469872704863195589508042803628720433460945927356923263441048641305404156482809518070311069171826965162891771069349797134627872884598959313231004474655148835345408092318985471749199329045543218757336704088508503558560354620693596764430740876986587778012049385138610129853682615980868739783378111831539816789836541768366098020725106839967341464336828297720673508129706407593322521351392203664060098960186749475262362700410114776670327024898268058374613154777602509970201265993947968481629946990975753873531540034765917536060226464318660117571610007432082052964730009050487114107229898532424884358444675942246234900046238122940697273740998337972568333316101322483286746911680785051270794940994870201042589761806615599843147732420526812110827839952848437965382082302392253062282611809366163808723264139216604832453610886559632751248512559095334922063191348068241158844675382888174402015020862548818564971966628930290148953681581242594739284127581231331647944270928884352596555287615041825868906269657071549035874674929724310525813813825511052738833583724772249707593767731467868017793464506516787467053295295526046319879902796013648183619020128945006013260836820766406091897911776708398873143793775992854643317182965388234880049021824330297597359908677196843345320404316263816038576235555303777328314557571680231591236039207459672837683723203244860537446222425114926327079736751213751997901808594517907063854054343760594733918711336109132615292521624238180818973167428968330785430359313169711475369704071661610367584477507744858598313360605470428025397779282488045968584527341885695983313621873555396316939576797247494247734379735290923282286172730020132617714229064186629301917936420957801640237517234467405140984941891565251428685577870762351567543823362534234260898643227931726055332298969048350951449925029666702794727874228326885700879348390122059982986185191052209604479337914409335644911734433939142766371032004909080832215294375862589091537303943501185425765547716029815198484346163396300750730135365334245658150167831273145893819254543953147369495973004340737028156924094647187429567205384485124711493494387606407435357543031937336897693428119079641277987831695398370262170993847029637170952885007386408562824319482202958851351820246842054727068601850923564384085146787268192424716567033245467188091925669352315994185807981565003660567744802108681977518707372452890733253771136553532477625649143486651748632411598116409440291014956156868165787299707119585930665509560650632410056811505151886550586073158185701177780811509647945776563972025231294339716470832246041791344537177852869146553633107014919682092115876689476738593570279430331354873299146882480995577489872073155360688848960259528884055591250700849218424759852917882837501093151825859201669389530584551051211525216806901244925406787973143520163451158483994080412615400390891434994056003486854633077418721549178640914750225026484289273042391941230956364609276800510329629097317881052907551447138946580635998338625668738543647250500520847687231155788265666105881120315660743784955050558447959102112623979266890433074097313949719515300248631189961177432669446005801889685964185192631077767627840636965073548777974607678502974546215476178003617932540909906662797643987669227474859833973389830743962760018949614167096799755085327199952686006285181531123947339489587170982497001133825267280719241123009106105665869912457320655317784266590538759923087708520691485206763046914125921855014990131300604180182151417611587527590928444265368727485786237610764835466804893996988268365107554681113886512333743234300340608044411887619840194687412193077612568336584428823860159089468429550465109696563188180802545294004371195407885736695344212737961340644991524997730168517537580320841642697171467133705798920705423441295640828397309233392599746370751751931355956500306201769920382717401659514154973531823553478009277962485517547124784441171549521945152337769964440216007896307476192334873076903285954461383519737302952739032430227630202023247814654962619131009595703675792285000963450676273003824148446855429315030036581097216925708110295377704082229175753389047523727494072286999605591843786652051640686467965275489319292033596744621244586559441430461087925228203010199283548465658892783513212247744769613965335872050440931173990443538567226625172994337277687051841737880868627479608688333562777389403359084369894781116827474637304120602600748399009714391096137032090985941853215121292504447849424052261939383017580649707504086303328898946724983004546452351802610367577019037064580339488415551339536886022034697095459180686051425142984476608879344829830949783719471195140754447622088306352255899883351102313099285874028646519834521912790359748388317083002780884382477611422253399407880580375891115182212080260244823095862841240836357614020427603799072878632134033515959791668410134643005776210408388965790939014769418357464006257295813571875021702334927036223628465882370411118536921128307784877283974320612136130321592562194518768216078259442499772318375298348184275345575571432492601018649396147058076746395728254939710865359046552696795715034206192742208713989678895105404599876399978148611061363467486983165489129652798418934650146073483262706633419928455223734175348382607434120488303837867737604916482300679430510117557721261361640093980295246999717104376029217928382225910004374429129877630778242119133117236482316186707892344509600495946525876400520482930422551514000033683665135953779756081489595522031286473250683510468641353990709677817881785223569267385081871830430879755076107950765135135446957598195904097466001869803519905055603188037902509655234268603823204934574515802422888482951828416113313769966210163779650197701801024725329828673817651172781767837774260669185571125826031217390468367989342155639725711344321283892779601119971815454730551778425541386081504451129253749006540546478202407414137430569556811732760476901041245250635527515480011366873784623648697143310174794095947238063054932368314222111067006258568099723466354299043797843755425843922365909454023026822800795577656484209174714309503688411816409673754291162560678111624450527343222887432297279094772232193986991689643254631969431524864409133252894056827348955842772728442525889742002400998368417220556319411611244671209943612633884144341014386379454654745929507964050042023527539850143629232862867866502340703625511996223853404311877491529792800888846378851352713629988911264516718329579813820126754188375248792577740143852714196082889542819609244410119111128628811044014446351641058491212389549135004234762573533740108962097358306213601420695183381478889287796546580878820702353237879082799762739768061589054249158180218726491309141699040657877990814606969275956832917350512928048279910084387420277134745725469019300064129563393008995318282352111552964250012244328295454934245645681151735650945091423224430497692486552917654507023472973651078027518180483248880709221415311253974285647529894937407998652617845846626433326260903645122692035511108175550007497147421986498840051164208536798833623971072589358132981250978097129388607469947000793231122846066902517291991843828813515050297610124470873581477041558434942769914193434117114629689477986852441891189954084300226403418034077786772469490882588208448969506308260853435818265210165071419123921670176654587006907396360619588087433949256230642134032933993753333313265198131284817672453773601039524307978592308012893961545963741735748463429884537368950707594325479530323718266941809965822036767365697828714098331767146274578654638772799375038715393050913523687850084339750798707361263376743071605787463284569229037375376945663465676870074031177051027574668647825448119509367729486018982422308899421817557391293446057437874884070372290029729914038337608498516722119623820285147153529698387590641477448722090652060582573562330387538131079490015497812977546430508301356246687433079312726575639751153279135905941454099949565470216129316542641748988959627588145159293246519415469653750003537597774214790398909320743013864222173008183984642456231641669171410026416099350955791980726698594300366334325761460570481870485579203316376691534068274856342372034446163843644111066897152252025619192799474808532748005213156803006370170713231445034834520881059784306776610999822590085465306200199922425005553435072094370442121238572395126616715021430181991531171440777909405805823725963351929064382176746600321588629362222397178767781620788720254338000786752494621302151967064789432981040705212893008562380920607085799884588897828376752473887673401167371413890717754351894713101399259728022834469912952262926935951021294756715041166220933498723396476057994453972237930084613602844795295089334451996664158664565399985715420580440180442821041203926521482015621071198091528745640409911403957225924609340955507569922679360726425921467671566825748178914184562496890496124912066356574827941102134277471422278928193282394619052083217170426209556632088028927710003462877269108394987226879040090496378047897427898998472766405189585362581717282442534672346788272872496925144120195558766043351599891947343117531203507989896932257416121775833192947033708056662896658346095792391266799081808849763081189069021836603520925028740069517990186559622080954453197808022799543779182310808176938163285324156353247775781541208751392993456757034725338102803616334334984768711829965513419045173401394106027153173549847460990505359232709660736480141320062321271739135600001228629018314503277869246422860530117512311390217081636260130801674896359031349714775815140593885662954129849774547272414617524262349160735650355926901497553755479191047832758815035338611102389428433645955997084643584159917287501361089583255409274174375772424242332602009590733657909544388488688301716302335398446969433015563733950265752312227297105490203798398220008502246072289050264348791402701344330629689597628850348848500087275543702452756648486070891074402322893821973744592263437007458886223101936607550386200602256283235228463842404310342661573135908865969119447807617691110458370355872310346181992762270825401564364630576044293303458401683451551257628918921362636628714080863647361158365125877406546040754131455419552383061630645825618523475676995110233715046690566883173539245576118709628575673933758816579247894227046205926737490201330865526453731317735741459516299398024802856664185376491279321625004700283407603156609854152014855881451784397147355505032922221480511201436756392925698750971958607362324788228541900667068958089312039383059705556749732162146454402212168097722890861465568098086252885990939448662752457973101094978701893884808999216151205935231753454998011542857065790769203336177917471844660140039454070895470157035666595409749393589847483698300894998797360485928899461169241101116706649767574845027162217572066353770468746913642221816190745262192009268089605378672163919986853438145274965411825915906868361134456890321565499992576044779045945535890936944003150665228003744262026264834077732316115131631925394113758817378135362056964618659994889009945285620914533829674131704381862150456788321888933485020840900593731451955019169630419912841094192299985766925102142441884315796049382448574781637273818115974239440605850182759721913171551706303278777756232074457832512010109117309276394971918541078612318526536221699954678064502803865306130006591382305479079433465491300617023065942332572122804517528014708621970932868888647369157321570226792613313514784573081014694115295957345832630278424751038980333419209695044888172134039347674444472699201525697204107058164963378900894132987150382043305510583761898582099493850309559814115505471838543336397607733136257512633062690492701839185533173594395206701224699406131515008897368583394600922306105595518119679992097828398107514820047017122742528388448122183208627900145785827156537511310174518917164621190626473864863464706307611333655707085927180626752860782631398760967004347099585316045162845128286073667722760281260974891870486361993481897599959256115102361985064354395574779876781720600076669052472343607852546893271993639497876608298906844203710866881968787715395062104183820520226151441580440439493040625151678142228007101800079079471772053499352642945230734778282093355099295111955282337640867405103265477709146637500814934111808989414496231049956703051043809011502075221640153314029804937929296919173647379843662195518465726546793186537458825732840713197659943898008381181281010542170980674473861098119328265579455102060359276605203503488808438775209011288227519965195317535232989253087042965070733512654697205844701998432693123574976961991414570651164799844282618916359512432548088914751335419281954421529718036421778748355925154265425284557867225130917913723073853204749942860813333326128623939930884627295944631158770355748687486428415714456396947990750027978091758916501136653239074763105460230000056386177198485566552162967140905008961536071781686738216264791224244756368182300082857536660404999192332811793230234142220294673435897028261938004591489831969546970244953788794772016084986072275848725614178290604085763594279505354484626250930555228851363517805216512189665415970753075750835023790216599296880338810923958599537024875166180935452239299655867236672146367284892262418476867593310726204826878427328212681032953525546544369743048546856064574883673431979415824777857006175549575539547049103752084615799360984722009647878019653117738613995256187278008567657673342560920820242075949654112234343921148917672634523444030647072342781416569140462576084489706567979430976625773182668067501451526963636230152699353561952715326327723170923485253115656877493297855199074450041903767073468599781906111581116802437366871836690256288456457870429018974930354759522546475850473918531672413505107753177710132646369901882139800566145117663323140217468227521343561873598748966020320028354797155406847236643068791273035772406307381938284384351091604487989036744883331270366534217855694164322937845915689502044765338662560316954325197913039784450626883060921301724064770452662373189454182476786842804062391473606702934949486065007911749619813450943383275168804613210051894548979066205279517006423648705022246112083550593982883473865605161402776420114099644696605728623232314270972709304791210531815570034536912394752791754378808840809162639303512210499705034222038638027703893489774429994885343807924258600857550384187965187997894605175471269908836325845223188909175297446808264123214533584884581545740300073955204278753826537625246847959380064205827394957906383549777627298991732752449318909783782088083868539080294474977953462298506260356873443992220181569776780867483155915783224113656657115715878375733859923790199152894508761908601184534670062990611341266485150844221736005459910855993647254734870731189617723987486123359727913087501842589454546107268481627153225966654154924296324719304691489377352747181025158655852786750610001367413583248589473959718395744834628061790325364811551808388174847362182941526793387140313405692013356313161459545685229285140478287412614953397660823808273694525982598988749402304231099568862731369265077526310134791570230588683457042860785452088162298120271433661761573226083199081608431093434749230653154174657910422737128457658574030067118701845615437374974412782357677789742296088088465373790220787985409042644044408861897518244879773756667271417339146126166937771571886616231847329325895308585249598872236459259526563300643880274195569753430840012732224955165648150147024444277333944007189592533569122769461628017219653284964663293439114597170626811308422573761297710763317022663060210986668017880939823567686255935827911128825134421109689736145246185230369729959713276478982561690249632147278855418784705167337722893340393478117110580913809732348481619247833006187662412664686861647953731832573684913283949821113931773601932980964522602394802075835919993476607462313914827534845007147469296447106438285482530735027096003167124136173829707792078973815705478278617791946577981680044013890533761045265485748607146797152914645083488936392760342594358270770260237815497999934136790547827600632410699166843059602336461861980451144329026261915849662457335686653056477049831582134000243574875354073079935580923206469187720541843764469592791655668592616163754684018439335205766454875552212333964968334791573442618967818391308184976769222935515117867125234681943833985355567942098757078021823750043439805211690887695471719437990515535995842754021322429326463625352874771285574812387957317980552494064047679678868932739441425530486834665893594567464490379874872877539329458130057629176149258765382700442774954044832996640603417767143720467523555402522162549992390492822679785039867658308418818646429799690619005888033353715673495233745195081344041537881240728567330992768969789839747894504306792459833038650472985438782954099524683309057888565680203982487997128057729524479652793383012775519651194439474912504878075917015259905844194886622509263541210407082262159665432046770485056715206890861446494559627461999835453668760834496655273892381177294618188960275483704253446285622995520329723045415611414824888699655246232652517589630966636308923951668878629442397648026045861455880864293168905398393760925020999881528402515825498888013711310683044593186530270849146295951440937729447017545297539285107758813588006542715917002717055288333922294093270060240762486849711186741305987171788265257196996909867833465848289328423145792619089675138520605623233570310322388139961762600615075843072138499922786488580753503105589310486952763442494875724445162987609212570484333566841704599300448775210807040361448206609520314864994777173859340864439092602371450678590330588080034252228463827405264732152782718556089489810659043593704533267671182780797301680938497945220571106945051892173860359161383823236313192535009017108920066268021390376640082112700869783646223881427535979170301305376751645316241587981279912830914966046854270260554262222000633515075847989042475105960484899961585739656718157414019503164618303800034607245249863712265316335056177735461266681602950015986738074137098333414324478218220100400172574533531758991268663541553575797753428731306150050874840303565950561103344078448905831205482319174247779809534354028851156341547961572477478410939291991611482434433465917438259748543244641959581348618968286485519895203297019351770591459328097440667251760725549023600788671870648507465297928217332805978771837732782160457016217909291278186030295852813035840732536543749136136788727328476417395604253784445300264029839791688869339596824784036195703526592235045122479594588380638669453532530764890599037447395335716156119513133567427486585539746019933027459666045349721045655398629009216654998563829892263664089566595589557684956884672940143125125119514388940006417842487443432578799092469655427530918444992610073107241098960751646896241029772788826816621739770573914480936727227194839457868946215953884534753084661652391066081440646625905224306900754106971895948251781139275164382069559577497368357013560007395027416545956174638609538400773121652430367276538818307417514715312962218484998250103873325442261856932798450374913066950090997574180794441243310133804891103574140649975683931463623000601302456725162864178216910342707970003078570717628302306336681779460056803243452504593430865973572586028169789394071774725319430300359363209476861111796347554828555860495872950983662664580307792044233008274192657083664446969137590244475676449871163420071357583470836149515353134601038265724580896002601119800395249619821494953709140859334963191236662993618450592791363458917154534689014678106614594640670612698249941345606973156452623531788976792998252510550305027770052622856064394011737001596226256674173870390053474235108220631515968275429543837913191572932010789886286818520302240341063261836173507731873109562124729935460910686044937950747921650559833672705964209869272067559756791543987454826420177518196225246437104816367513496767356241906050627927344802950998949560271537494337297509885058892722309313077211134621146564793535453472290510736802185216635998222444367110159390809962278051650126787309366107347647062764832074958655422421015088252843529392607336002738568044678488642269399699791932709222844909240950981557415265542569441539013993031170164405175208624125833580104320916790259043535781139885585113003806769263082601778302847607630815670218348445985749005346939770393738930494215367493667371858138944766309144810532324399972599683273254271375974767782762943223431853207314440613019384510520610403612206981460780547888007792559331305173999162278503404009645930367252152633097433262871725419527273926311581078523505486193143441408049605178854092328955486028095297460439065231622440881005240631357010558965508979642594982872271785338261734170653424940261959033827112340066524937582200077619772141276860689138355703359555959927298864301655792732766110042823545833483174301517252105378287226443852212647494156372874128410649942089598922508022536017800213360034765965104219034028931573634231772874599524429974228143752161366926211046488089581944755568616266995822641863517213777993414003100406437893120481673013540729530024741891849294426012222815586767888799651529167952317952633689697578060332208696904651151519645787542932479320937334077845079693640687778637659673992262595532789588515485344230135336423276289491237517909096774771430949557736416602834403823169036568363195285816520136155269000849618764418417427064367384034896761161212772755859662495559769598859883257193599946071502698451022283867666622164494899379171546294441277965751712710268496704706780640617044419073899140802392158741124960183492160290516471020787812961431340044268973021009907142165601045476801458291608135816771161798026768032890882254463611686289960906161241410664006249332109671316060748008011482002835854397838835153951915048501590350775681975550980176038558371871230581489139403099410162182505461109199424422400797553394437046916989519269000484486208436208968218287554531618524499695437214123260577359634926789042781312465824414284605577629877666253154170195815365539537446493671540363110236229198776159845029994172290028325306113553652499762309168471750682970801258546284854941013369840350601593084391723593464618175904435468637693500600805991650919047289107226855044789228133551767735691104906362328041736425666944098951927261432167210050360499032745456817764805687890614477444350570462927539559676348374478349008705119162412550120786195984269789060529032104558003838105461806796812844992489352949263010771400696962997110342976214703000357924644459984784774303909748897316212219525577709007891354102899141273031766661666235635050178663898562786550320232333359402455029903593616967127442804895636176719603008892543058075472839076036543223029903760162139333147609037603115524466398666676045052528997206643352237492615894794908018332780210750473983275784257742002463331822291401083563757163586362571262544367167315269144277744511026412666873724376041048203070627328137744057657990965859149413319747093039799476570626819436692443294974139354597668607716327713342207861525474911949640586912064260188514176302397989917701648636950079238438298965033097853260513402242943634613857351783454643186726908913564397162506163249292127557988420826353186490796796270458760101662948325176811701880042202444817715754959565967310864785388876027771029350665842390372935381645477953612897706120786690551018049140147957198111416138184581377565426703297786931724376638376992394493587164655364789056953242172562724490571449737785061922114174103406155379767236805093256499307675090346888223201031614338084736788979928288210128062566311556436692173064779496702226798998859327741423300985976740832057510820620552388004246531564708071337587043675642310986968390087590329079863052886943980103368013642657179444620937398056318132163651493189159296416347055170395899207490926916398100129914155051625042510323322417337726050738923484276214919536282264015476659392699064779344954234941426091155093815105199670277813713662509288777370410301121437738243717703429323051350650157905788598036387579257180434475047768041006943248953924635468949985523180476275012525719030082893877600663632259199113327642155273938866791490791353016184264243983213764866605333317455107149300293363626202978540304573355668801502719751157202102997742102604430069348557609573724067744186289435178085895979176961087878009305530335568134091234356223287157382061057287772514708262828507995451066085722416492950587372820877264811663056977896452625155874669384268129185960458041608285306609290687899565810536484934477789254359986048001891050505968310337884669833809288372373451800479320027271453132036882030336637242106120024445955932258048487912013042614548195115014832842939778166069048290197609854964991386854079560706273918562817889097855884649544442551031092687961719265577268608039513827286014681963453303250221325084769605096957059610265867744554374585799033453238008850847927231224305852537125736968668677642916379094919534285432768425569345842495418963479832045899841331835443777979115817098422549006034926220296621670246716741232386834179765999734834210482986735551366705642126668380523331451924488026695495780568067382208344866926223427123462944997041794668714768881843789845098260596438280677170760498796037448068599880024682570738132205615693412015555013941420090350307742574890314679454961985170585042081911090717507286050326963424843345601491449557094244931753679901031209388977879999696633505069377049547133452562178335733439117843536538396707507254503516845283214313493224573614939904289088541798686430915222689277121152368163188232634925658028132078396192141926181310506029672305231311945870501905438829467332407702141817930627105190333084606639667719616740864258070583680614460426458402899448654812693889870201965936933035701608588775495849246286709631181071919089395085996086106658715805257421489589462740865385034331830696778943965954201994635965690520199993462565304830127566497719934070079719536619657200724012689750229156296481701070332264826625849431850790292595031870555299753465078171472091592704778367473685754786817632585332533769922372103308924702362406795036336192156334601494761988802924086060830449101300597921622160842650500538105917948940265616556135052582424164444318064235012608620518009533598587724743303269696087610837007595310917896560669175151097165479572298077754507103311853763891990741046653979693407631035740678065585968248326496778911633305027048992263244347682287539582100595098372525743520328230835688912893987905596074139258887391008230229089567108093041686562387870371600445738621786871774061698686767184295519255319761916006166698587802831587335185576579987279326782628016979252759676999695792024966249817027856540153380392420689247245264835758342727627896137455877795674384313215217178966293396014583174071378840189603881347806617450387412613612213214437038316332265484370444235766737081452657769608629006123508555420611561265516168125584012116401854751824714891748437974149514695638871529294906538283557944934228027868798763942438505063797360146577799871965872501855591515477758547465215755427888294745770709465180363328518666157933175333559397661882647484208221000049698818425808631394323668499321111315042647815755617790541825107528664259751944403733488283973125326113216840252243976351558178708138732603306899932633180783308393063932451918199848734634110735545574753953943423457008480274802432345938455913092259271502349234114416697921274556069311584655611758810083532110973706379332802151022873142336987271577507898686341861014983075773333041892568340706452257140454698641102422751738885576194910920053645874493264721248402476282321682129292903046211263917394025214288728517577509402566475492719705209266875755776337288536663808880889467499709613808917014997268472356668572902098936395610287276231451910389243224282960906908448363481225494487972212537208851603802816972020921440797051743818594444145948676414675642144343867582699228107207148696164960029143378719876533708316143954737246297537664456939353234900758509340737988041890615902400660251302921865848234859292890186051012164943837227495088146984699825753591560304883955252263031971137936003101830927147303827482676260956407097912696465746169304450746963457273359130865994097901177375729323997938572620020133034125310657976811916577234295231508982311533333388485561345330012767420643093214654509919971022184031412289220492705147491461979761456399212864826833207577538074673853843040751658900658286811627321760102912565053399623608399715875021449565237368557122669531430267979162526151117940236896642246469646339138657113124123352952058735494143917139625838000974696000584617030700376004150057827872690989366929708219837453143983967269801301676132105240568036626049492330391696301188248359750288129971979882959864192967264540204215379658594542429646212056886573299835890769024246433678755860058860220469222975158361477662035792853523695661087864283367007026518945556673155940143370213284592375627180267903962185288607152685200603466013614060128561405650990338743066790345153770047200896568163133952652977630340812396258566786228881972319389137454792345545350642377531763215387463382832471097094857907142976209537631719920092942934329445350882168156654352435607000843419558295707320223140883760211142048667247300112426457258176954247975685323641683090696713688140251663991807085389181246786116542215644530402061197134192100405738116557086922869975862028383746520149524127564441768641990558983695584466769002813388250098107444471313818837539851957827903439870961301956481546618864776330564910252804150515363384610363239995519845689787224215853496552758124422155481269145763353199922993164813785855083078736604535426060352150312297238978790405164811134743505630084476250093954185562531428765184035288379155743998089340200445667825052083337330439464745030728622357961174104228241490174273292708535106005688426475841626890143820017500680457208380142744076526269459723567027135836356600602871154942783609937459496321110288849024639963163347672512489555693734779938185703929355794102357893760374176709555727339815988635464212744910745433490857338460778482904658016075788322575032659466116756665994949981306290257343415615683381061529640232229128509351785037167399685851737749652378287532178956924022573861153704707636639149277058829462199241465883166961191486242866908132741252953888803335258138554332208199444954412398169011859343036608194578537039756267634286674537374869889207877528049338291117054539409430343210234030850290928321550557831078280191802199440647790581560085740470313218075804744843511831435347281467690048978452911639154759384289688346981301019296197369750444457016993436703595095408838221074512530794622665240334866498446831961920576937078252277358634083756037425235311902278375689576288144878468162551752723309404559502019663329811073855224541429966439180851523144884906558537710106624808799603705387050149669954984631259772923439367306446339346445372117894850405247233723012011604735782625920891350262117795964538587933584110548255932590055899034061683533020107173535241640406754649593059828387231424343578843768706159024451144989953263218413163462403876505299835976713386450140783343166341902933990167002623588531568385085359918188933032705938506110989940413439187312735275262639527543267515547768852844586373440687869542100856203588818378354039173264239259225149590322239352663131716749242437575615704846019880892140489006960562591546462845926164302030771848088138076674208418821295095083363274653767670832940271274617156675359865256292348944192410932005543114942501786644036957314685499996851575810616137038031003420399191018758179507956028931494364316632544750095904666155781163527061763653089026123514522953808464874128438274645756515751108912698521248842391265670041127928010265286475602034859802018351467914661635661606457759599931045118861871905502746462152067417752424761992960210155829558621191009774683297215939421068208239607618053961018690491226328464644529689413797482447757637138777287522201741532948602683834521115915572608689475253163874682153107596391221893306207603133190771669835020894853893152941528861315617529929542998997980003743887158196691016588389796960246683466822841603614064155946969628780770254307855725144668157079749460666129621605094947900046479292861637145341218921168430528745829924476386764124006794927904858335455826458675791661317835903970153576905776979007522801753975172288633898872797501455248032672041297656561353821025632054206751217433246424821049763213243331782210706968534329720110917776141500699511842880089037021157281021653165603221164330219917008455865111254585616420326819137430215467327686892004790481958772901950490415507097745221284856375935553601662215595227822742676692312414210812009448849394886721384473135854613572621327821510213592682396305103140843769896134327352082185644454566298396007518644874442981225066154204867630031835549283277185862706781136660741787066506087867736699707738161796055993706511019493623598574962837342802256849331121461832895470491448259295553149349364556921625291209160380946860221650652142612005938145490235328167482815708563322630252071349759420945013059584694292875477514666183410781150069691701571815810005967653486532890484144293768198766621725022422258676936200225975344768769500163915367786519515523032275764125513068136398407612707352453154933755160785741069930302945594347763528093885204369179579348781753837884036338618849752766956884170811355356762600213967760038997512249882976895113741007818091439431700460004710462282128192470133055133113377218859164936204160434869621166906921937917509700788008313440221812732659579915103685149272737189141153958265675635951619723890675839703058227136552167141373724044772737099035321525036235619173873088660587945336558886684158141619053111372358301521181674690483620939570185437388108890760520993465495908485533732755862562602423777900975565504360369479148619619285059996873335702745782394365744985215548631196704197302407417145656442661071714798498377702591237563919162014840126185840847914613987224740998320431312923845352817380786300000850522564317988461343490356860233272422041991776973191563999639601769737489499060124581216796678257800226113337118941661832891157949006624212878105371479512317808009866022506308023014281226648411361521434520851206059972294294586033462103866716014829056577662629018111138540362219697547593450210476879861501895739977566553977930563473697150773412300537678908209843664333758376624932535351758257353781161688051600970421081291772490675302319431504972348899096516993951144333271734876011747971905495935089760708049571171917667563656320983832104894427713882794969360167670166395300339146367187219930039430820562171620968534164122209112151315614061097461322586125905287251830699636196695699576844218372765297898919880360911651911389031751948106376599760175327108118865632050342947426244710728031947687142266538380805543865643857329344707882819650865133199827916745636999326294737485635703384904941826510934167726727963246480291418459236262446499998658522055884322006430529351681417549038222816247717757281579224721114825897233459878480763054939963922316533879597702504126399047905250212261495471143601194954113525323915107474848108840082010556703431445341463978225262593901968397341701757841307235567667913304030574869171224649359220579070698149299606934261781397300841609919541424373479392712646715893774152124712400490486209513838067535579254156549559626540866949233786833480219112431992763491220375017142809695913260719902588264824598122185137427231471648003752529929848176859887680171292633566885660804465385107448347060212232486748081021006169589309273245362327552320705564039902019209045869747906911514484048857257966246680847233088631563310512422593423612925810492827850317720926299329670756596953915571435905037456689029036306863255083968592756171051630148690331024474580467831082394878096033623872644909904288999361382542683045160995400844126007828887693054982165570601914461870181274464184030917263245147435832566118795534991682441931238462801375845383409890977575170884435575162905838622454888618401923813709784465661398182728214064091976370078445966168568447218525855978203275610139688938217962934288941131267780722566527445393372809470378838422018271650293639662810239514123665412869769695322100302663133677750633051723044669302223554263442996842873388317494447327400686132736704330988137410291403348937314718504866468126107216969637793005629552967714806721471845831723932613030142676332440710081615016580512145214714559235855224861252602483368574287264459034372738225365932968538507820903470402868439783653747969969882626670253465279078293115804163258587626621694107469513629532486320058986188579082320723077080042368771379028251233290406697580904652096488968958536658357569747223656078246826116712940923920701405861095987884468190552158832490128800477682836415769723563967148053159820926403545148072218754892129368711356770566976233883376454566713704962215951488586201037090557868417422493484419255925902736682102369884296483347785186208741051547728915069347585807027133337972616118541604955028146260729416929165384076059634850286504203967533781203074607840095691790468716471607277265841420500603466477749930537944328531827170284044989093988996539328151479602338129937895681044332667793991323571907644014881466245353597642817583161592592373471710161870609970452719145729904703962833207484868062011678085885310758946641038496448707602052636950935242838976190887382458889732348529362304728272398054533400849951236443277155587945951039570880594808044381231693716725454593388738043129393162843371411350362660408858863641237795379468982580087545834317125558749449544156886326517808265566297749207248212630248533924395990830797566514887372439561574917221906716413321370100315583569785803441607195179276945614254683984923228507664236657290454079539578575532674457460399570159643448418476608257183429897102089808991214329589660060672150669440937914350736232675610718015015844810218430699030152793391148680301125413524727298636758186554046207844913988450652530033512037657425495227170782647978824666749313240716775284573623361342709359141976692252917695999620575238012725714754241612591583720060609382689607759500130880680977649947654970655562117124524834374808630948142833609966467963100275584335130976330519861740637837281118872154660132374053838230805779397210661515797477208137868413089072944231614986552253578825672749174224183886302673209883289770654482060803026080251211376621100847586629778269805811971022436061971071005592756037290247780364871122283852220674792048717882236616953292953954886224637663412375098517984261795797786419887778304054826101840688746429992709646259649660228197874425862885739197217196131432284279509949100769790939017516990860853537061719407442503662955659223469497582594377680563471656882472410389417073856489085468973587087553735850487944205481802502849013760220049912103110115309011842698428061476626584295592321266397974390452769132731129867486322363680433367811083520197098200057163133955309231541268502724835819436220853303986009234619004392621250082218707464091190097527620419996684982831295256169903273324586923686296097558976130461200963051660475281892569082830138473646804071284436868956569478033961992784220981155619614001438734344868810648629792722398133744811160895105553568810219886626773810755825189679079514770501124442286635365107206898753008052883056870864842481522624497618714284208965322262382125513678922414931618615877215117283676434397265530543927480827499569091421728721009152453065593920092865769606527194441278047926634721466975217020704906076455093757137755944187075765609690633061183380046449968667766989347250058469070780083985747215883330980551465402799762703706425508000183808761884585103060419389724041641272051275197485367446786951458919248328997845104230135420502984638600732264223132341778089012574730593973834320909211198953929453486099842226260188238505832957103591881292109575923984018698268836128586264217684139125694069671943063025546022309863563106226337782025151554995692167971476981373525762354195438427327554273107591758090716074132049135380176549228448680408902366704945968604072333773603346405244120582843950726490507417842225288162125789068835191147471883551660141101096520177278591559403104741596988937826292119008311898508562531909957064541880473502467222152314811644866686702768459138285260082535499965788817053269246509975879746640338244157745565556655894758070779577128971775724875866266403412948727303909305233028070871000517612497887653747993812100674532352019391021790372657452330537989068578959848282851451562953838073101182139039870851968937248674818699682668957195035512340453128221678019945590885511051327492358332769101242243457805023074487911646396487621595130527118541632408628986756641358099018386788682362680113021730559220717582289682630578858666050820795111282870302022563692247823246485899091294164753243413965677559097660828414810403783983634914935826550912883047967248256787709095655144894524782702555150366924920733017417206200342057372366083160744250665718686284918948353641897742070629268161819562081922119393595546425404696114047878554665605351028976053618845099561562060484024385730104597283719493622976141055614270464264024847349799585619783379081906907151809204733885987830923647511415116306966874068185033220466250139786126684561048901542119497978583688850024927372947834895807756328812437932164296409842370471318946968414454555772053098740790315872778372379667424305890385662917868539411690706510912495169477704394001540284932833922432902355266504794860190734976698933227792155096177437399423291154838970565586069764636968495807717601741447494582718225087445092219885679071814582228376889895661757971409940942229326361105589053404641332882636861804575103299214812724404233340621015260500038640828751025582507741791401094668294132059981412165250798235907349568797333673338011789624268781284393017196539508528910838129723488397013585027329869371725806658341943763612633583541270497079790157295643230355629436441466491871715279665436564605948922472625380717364990363409916055351942587729512430075266147582747831238232685429275010661763994900310357914168984983594228125242093198984386400793177525486020690842726348598936106619776418500046433158953378365559652125318031260904260612552378461544907739900971666799762276910066502748148252679250236004764990839912928933205054167750031465826792195092605892777991950418250011568635469536320153670093881718701780780677852515619406109775854307359608598220292710950332722750713468286339327985363556071069326190504964236985215863521244329545652255156320486878961721084041266947191919034458904758868894608146711424214785742389444039739483160537279580315086049965958007703024110761260105471662162779203726437560793836736612739097088969837658646310491468909182368821631089243598070824869929947943801232973821579759816697286881802257350811399332522843915267349408949710802966938590006259645290701952207980168116839990830195248341563225961516725007412025765439936298521078283203284189518815612413541241566295751683958910543646623970919281920440251829208730749060559955504266905302656359545655700396092866488519122118155678437886585177175188135532969675648617628936458925414294433363971930522938904910770688183617735276830099671229675920002152654872413884686487145797575358913522039857721003340130139906851651910819545093304832915571639929767851004595208370654388759512023384164354678666925434784735502525459214755062907605737911972513944630233905054962949988791674147536246008746542126022611207620122813913789693810127105513817916889092628165366846917819691820878334199014216807062334376984542083956930808364332638052624440929672774205836931708117222462910570105657244176174726037819095740304948968265872335278085094161517746544752147944908744726292279378675855875154902413389292422699602236271314807463375815484596398852733021764135291969466973171094017191732181184559630808535091658177465468670701742005844316118230859360354282902431398098754859257944607030095661873204768040736036066457358897883697349188722251422193266082610828609495003849924916806590344215874164222070962077036279493742752197931790044823211667376946908123537491390523313860330660133126352453994923326986919407613575918207881644347791111038234492705810232991203655379353858833495985690537975944252840033657902753979899953560889267529558877384812662214019536108582473239297394692309631017503535768864708172019970692339923052172269251210741884049252758221363170897151944090249250246888254664264136870223465662655441730636336977942119812463200029828141939044867122508372117449197987885396893484976813880122992329683579223481811058141156232263597945338490255636080100571542813280121305419902816745384794945423823899992043897730761104414338138009526375713552383794556876092521253736892951946127788636670070902054089053907836446729127132035666418299773840112679159862834119747385953009387543708371669592343435545233611021119056915081987366855747402579400136278263379324555844989154775759352130156614744468634734552858850588562905891358269810694045459107569953344399300180126867907508266047166688173344319624651231704259474631207117217624155428363615014373699084557670305338738855701826631104006793290017261639156540691267673186477176825168791722761430217780158549747445439463613499958370041483527978791688633162152260624031069145320956295717919856793414889222049003516140701516082478635133507688732337639301444890043001174637478179533587582954037648158549671730029973818253886476076778036487415387239517829305965207138273652706257305404082489440314133858202304599117268119092367552159374564126379750705648285569944732727965946960761188463828280565300268725732596498014433001244336124678269446064082648991480084903473705478907104383663699076099229687242435227731588071080526489767831653857333671220317554813210046676025733658309848616014530007234515682123297195036607851673894085999132985853547070890719636218116467076227912975351628934749102472822890563514823359450762514294569972390777754100054224813451261869464971331344033469859625885666055808633723954001336060746444077262527889004135174041331910204902418639451002980997733635936333604668849535856660842743602925333955884853092466087051401241470533971833315299831213980018422292239010671222669153654795963820156933754752136639374236614753666875717955895855920813614568639034761089856298273915003985498786595884758090011267733149843331139613474494955751131514539006099000955413458915962679735302356395602288911451178427347505810130054654907982228600161756362456265061181883114094123673259033654934060668397077206496346827399357969608798143480595056351367436112301365677729599408551426241628595730785168406544071368791909847716090891033112347020050927732710452961934706650883632319970723430394927377155890411336348615531272393546721689579842735704879496153275682455816844877904192379477723270676641176585945723492834435644361052583057927586688182410448111632231610426831316975842091510336263047940576058276276057981419948693415741515382004624437143983346316664704203318092301667995597392364582321695859210853534845556857446046383050662061710395280221903022637909501728730470554064221292003619308201392451985612439365438113023183969233094192437601264243105032779352060917451747467074427345211091814141151954013866559748685318853702782854966557554408251558821447016144912711178687253312461431625683164752383586500576880609361171774226934960276631925856792418390706979532551395468019649576818233885041822137730004768138108487744456949344110927992544253566940647069933821991147121680104519704945891444867806262685694520964709742379159453100333673022982219240480029151791082865854780009019706084593059741315014563333843224466274740280041991378053205587671927837479776717991864658054080412126386874429665210241666737607068372540974200468639905877251531273419725185242263857575488049002964487146162124287766902455154326785512893717984613693334528871533892801104278754763165644352798910055153153769101510866891299422742020825384746808751870584736530818012316653564402599660965420428360463249259890514901448506588051111346863654015396540188054875946795820289763891425634929422079095194181682341072575788430867081771992341414631496917766224480922249384708210252681158946303463656501755648735783105186200268104706593070309234606278673050554539192815207851730012496210045578977504205597311011612905989562410653945541754940181505886448924057956096525145458052009626021820048157993660445735764153798233332473669805265977180025395732710742087585682767710556737723632659974270899279924524476331973733493327459745056120926959149673418634935404565295401849345744383043463267442203172704143734424215381320547560402781265456303393969307274002276424132167969629656777462410519645768309903131885289327867445544123287940973628899498784950754589649243955556615214337107670911243797141435931312767254728846475380421667046376214738804279233103694791789139409347721857321047550556847537492719356123034176474465801176697315934987801914321538844136569479711309918396475845465995119619713069784429992800555094801241769058629563498151763874821469307691923071362959564287822635106974899219660046269474861202940945760128322066233124804198374361477391824094997399776090758791824044118535954795450055421707217721046715194689308206511687885416945629201830702530154108008413598120835360698319660630549006589199105869044838001474914148592620498319995559522517761558473174820184508413220309845229222050228792437548309585365705456953437238030947151175503829130684561001611524636765805754916189981871649790194015676374637902590759951981326002100781383966750254518500934172822123096607709604518771134165950619616633200179791235246090150982157735340991674436853672938847687427702292128207392156256217722520503918863070270151655131369995700162276547528066108713791309986917888113935952767908232703162009493458561607988867702448504905347309122105668597338363963192441932884434574131748913726264454854973366037721087805522584122085081748509082405919312930575674850546682723148411646303118963155962314812037978796804432462884107559655380999901525427463849126367319470348788646386719957409234725479004817300620048365952914481513849636479313226817564241125396903153506912320585864979333454461903643010281358998183726440028165460898864376425708434413880288964986961309737448517117198868394412408671131540314323896244981856427073396025381567737519938753561820993474906554717950931157088409670230848675883546134067370140356022627252223462124934550541901518914294809355689330668906425265007663166914917340667798512984686333886871111994484170188948567890100397804942290970159286200386661528762751961499422343796940217855814540169807272967777083050706988138102209739131956971248814096024360346955470447320354989920590135052966021296304655448995931275769818593138436129178418013694887261090844216732015394535850217350207641632185466040050826847330663449241967816593689703388463039873862147298590263526414767411076582890559535284101703900228183035514274644940512248056530766533597271812984239474200338172723608034591826272399395136146251839368378185994565353138916005730841268087391022137332925018405366928094117991647922244964419466264173283730113127718793886556126254757161991031242555720778960110109503930281804175057414565185237109338315125933512678148533373111359406122908517375377550915461485326898260191220124557718526517389965107696013402481545503342393577315314844041187438939403616961471595229167127266607083887908180031730797468911461420388166750162977829176371506173238738019959025801601892501531466748798137269064917496018054323092638720174577993827206080900939212428221526203364160026891783697201122943287885083180322277156678531796807946457484407700367414891967684008437892854744268838349032797778894431696007200425843106627582999869405561859723157478184642850989674903028880818633809012484938401542455494117408392982548236524676212986188257631368411064198683151877694074264424015627844450799544108136185399431976952550688614907486209384190599498288755535504106612233610281606026131031938987825459120327517327011749845621668963318294949923892070009922624484162506165393353204798767702819734873231741678908836833863454787749338315845629605227229600915410104291538254373777288190902657024820265682978621234290114881719924450390989162610085269147972077211131581356080965430175324807012855406953344421866662790055862531990808317532660022809040379288910448773997860208679506870855586088117455465806049486879138591096185694085717476480337752112757756698672875637209004519343966279644292045656473298912909964280508937137646558758398198207445640794226522547888586916954695076593155096625542042031501978601162291694290150144220753276406056485040556164777201807892325956496473679884241761590018825665074438688040754581917134836719318859247648818710784162918742631887275224481417872481363636097100997941815934660553227580251550733470132835969085651320337854029138382144212161970325200020038959830306781703449350169648135452691117130151215835665107597469506526651281400499667717440124036086384726427363920844209950309290591163231816106673946367184540995343047305236949157521910255104109642955170008292835791929043339881775378760251801853516798291031067812436453597456327463991120113955421262274172022976503149924525583675206843283990750410125053244742659774259940628571660832260574536763979168505911098389823316503393333983964207223791307718821466749997503789641828725887666482810624639767602908299633573831723108513209586871515852180214307242439846511647480696406471801911562177311853094813300072141644323431707046279764225185683534051105873070303682307336805230011561332082496349920258942176141295488507914639972619011846663892991000750849235377940446085773201186398719894990335237134614725042086143797789157459176175750079650460773690474859511050594574346848768885926550956466156785062204175657445892992881341120974363168727517475381776980466672192713451032064926315307883669431524329398633082940986779000570532503370584207116047025502933226692006890974394789786588078822226643808300301738254612307434978112744571528098693607135898683055718365745451490182232794419086855908184239853165058618975792038916299217275125767643854795935591292427802296187960983177921326140749034579887283197526405223437526057166635482023045660524739459515249696405994322833282526984547863113787325239348342205565646619291989399692946853539993198223438684783617386900101857035834356202919395503894399130206170384993770745541438888575993967131106380367141656963984072678330708061794593908791122519817418980489680482022165247675859054117459969213088135258261110303663611372116500574268768240833112138054512694422915226765401899212993976562322890721669014480909183389269480109101175898046161625700235100399125205673093419248323302996712606802862035955565936910171225615969669834997037434950974232201238081710279588732254982224144197192311457517316884457442717574361091577719930330342446505858050928435722865890129751341996431593047572795853218199875846429776378485084014422478053884676223278605032696922933947614326940906867789238887945239816552751330082830921310545409419494910590079550118716191035988418416692408261489435684432705821733883244645589799192839585022648145319786795468095443016086422142867549547552903766946581167278106178181877556095579374471896622167741237938370257821896018292661181937216056023298152392901850724555602570111292863904175243948781092081770661317796463433521510029415047786318628674346799119248028302914199133201146699378218179542546153402680740100197505891194132606511540807186048673682994424424184987580330373102284095595175841404568449494513176520041428426777052799805284537139966202052922147027603605578442814141540719801142336626669124992337227537471660217116257796153174024484444843314767228072414713325874291046352287108208207700254468268643021470164150926987349493579470284624179754455843663300748953225188868250304125526488180565811880830672895010211092427735546879384253407328645693762392693553682564107269963834083342144760831393089364001219757213918430386863777404317485575710614552031891569349986620774416249928037677195754529767092242317223056455912534974499883205590059088325053283240102684244944807456799835658916677018560291403440888737966701397152465121295537088389398832201098468245367299700578409238987905267931511979287982786382267648307290512179773119653093353359371055722533829609169654274246016533334236303088446998141202281567887393578262411875313911711421667520284321860601187385163285226580606223409273296061539862288231830885579808300181701640082995990468357653397424494597260783129296523524508262225149840900635042701556560395109549712564419176785198280362579979130375589009933237229222658910134341540774110101663507271663359481663805442707722258447023459227939929150113847142799167013475915605967927981257645102751336710406882295658968496228685787752332535428354684338012351338597989095972628029366509734915937090571886091671980774918574487016131344147447559826785393576482239142099716858584938914339241782995689888231468507426046663623400641832774083707889126807704053311193575322534613421234642856310459369026454785937786753822965593923243081562124435229400493222444115600070800220952134327533453966014790118793885742347412606225091030295491197241769435070723210980564441583446124820104174103591658002306770487528571788553499121350015913628906683715660191247400598694254418100534509054442846116699719126702021047699515489441004234846014409474540637274563786416486297274453333754066784512735655490285824548112754364297313709107609357737240249109321875679242552884452876182736755836083504300207124018705639084924907198723352172742601392042830821639938620010624815933861894543421633614538410927543647722970032524369981379459037461093028280808380558861775191150120318798238023199043412077460173676716181396640709278671070386120085268200949654936695613406555919389298861351910133772334087818493296299463662971856163534979228171706807869522518610268185951166842133540586217565893076793519041076088311761856329191817666363534971465841934303848986479381417168902673836734557291348091083659403208608169328412655653518557663250147055834382096749657675736361321368716666330987902471687656035211922437057854325368648554543423474273261727953243445472130209798963069784006658591279801105873559184409526655038803437289045837509144871877046500349436171808604312448158074120560425061138695837565254298707193992634520157647527894800697208015242713739868668655676796716268430721417162892115860370234140857552490780705679111045797775306992883759395345896393331177706262930230896299960793737131186896525106974374115231858974439210348908919449948578024137288665809204863687181843491344902040579913957522508266153291034326379028454420337019616145684765247767462881331429924273654943542516179703692291709833398076291955765588841025755656773540650000055618790055278127347693214390253126956238152589803641862182023083468884114353068844450108407571007025457304252878160961814773084385398790521761882804270106226879068073027353506524232093095150881906139220485885327760488053534116372763846016279574127089255387672522044789359289548531296739953070262619780894018783473445995804877566399024712153135702110654338796346463290502457516284981262750445635361178420045753047681203060162393952128795388001780084525534055533917703123598279846031790691445782542969304456272477854653639187211525715361995362222990794432768585322163841636016091801360501880047799936532732575516541923246649443502516026506658681305279315122168958393009088611382959730144703041062510160313037275260257811636919034638452474825962925213200887906744576163848986362152429547141963875049352120907509184795917738033285707071293641095297008560087850692788045143783197146033876769235014849370373026045390913700895805102897682798331516795884108746353411511191920447059196598268539726508916676372539699445293759155573810455041034292636460310151178592896374681923283867537742886107980703725361440645151839409269659718068266411890233452035105709434818278512988829815770309991555143704846968424474880109013302866774841438845317557207700269504301257192684710735887239063129423826798094853900701485967251231708149301247754437546815261445307465004757988036698898339082607467078530292412818566206166251987810902530230701983513466133697705081249856106081853389476399726387748094034115964456182632709861796060683719734499774922701843953540311732204254042003460033947942296269216337358946601939702944036259575582923829478303035229145496569775340073746430254021330533244274502033521650429901265183138804515144903114062293491052045122110854011535378289160330342912424444504623112246305492940898861147956330908355690687594806855058458716671823445020271500943842405441290183817475073418360668903081329514749365706324768261325418240809516331693839843104598399572139880873150339346913625737798147700859567016250442771940539160179212569206478567769393587864361683789117383779415825820963802462775756438067887002904911215985337317871799803577362316470215631616280222918748780021515002127309825943616408976606361039960881458351398569651046680648505126393105392609255423432149948233157605977642418168843178283691370073473805890378382736989452598335279870969746107052026874580436398899084673344503395251849661053440258166560936669526153702869333077748914403561125248746041217368390364700469535759378310531780074544649436991564052725860124143881838095327496761871699928503634654706909491410095848465402546812705536518995470409037860060357385855888869701011079647010806673498743763996912675250825554146145328736724960875217880854265335153173761058048962419747637943650819134012305446582507006492961947826418442640059482699685092279411263499834722166608266146669020679307372082505748811564162299312646747853740799669732708269484774832116788963539730639610663327879400645984213175649968883566806719138994628365572594678000629248508192754357700469014397261600084413003631524348206321603651218822565072018583762015246434687051227599616854170445261330794418152412176855397200620821696900261261634817496617869069773301155813319131293377538969338382501125460927048815116514470038578332534111428194136114705762232343325035427972121357632087322477357012644919596624759259020519771460677245990838465596115109133354441377607656337779081463954846639293560312436074936388260211367764681481103771278828925198023457833388363385739691808004777642125481034150615645762636765674373927751276191499109221580414714811527296212131411258897053051386756505333906769866284135154976460555789080008820226836338646881272066516325209360308311094253558302664563560675344210887822915091517046297965725438777463811989232442868737598050693691788337433579231893622081330229087600693013086458750471959924766203198852878722910960314242487151956058042404739708254885606789550479150492531559357761244040758125051146922949731621151426372422509407825740067232725098283913805782572402688916732608820176059463790718169872506839359249103420112835183003292939325380740492845598257488841807488025286998494301770306776852915163731392940447451435718675916385180037454443160366469635767779005658217213023521008249105244217167425913370009867953018195777393825732634880484834840929411778494556808875246261997012971586374899520519121923542219610142171127920898896831119276239021470382366022453188398277387527493842752726675488622069612341088589934901659368016790206539237133640766310674590478336533839936400803754825062412762717435618464652601502935776438528663591581378318340169749134190670557111821455225586007846014474931712463648754603683368844744291485749153990915986727902538268488240156493365960316565739259169983729207416253860502445999202228724010732878144926031017502435664888285885547932846975652356512673752695997980063759327217021213744140962247884245075225432011142584944436206882421306290252982271870043896251782360889962609514909528882432291390989442078404019431729134027966790568582924163602556069383919619736569010010305801899593012529851614042329898531071767704137365647041759771728315615069700146857914691506836446013185067410994740136564738764456930585797751793112674440853603026015566600314211495878418571647001996476943893660608423229480474117076231323633014449503845185775398892711058653846009552333066951173736204169903361661011609793968076210939755159508828774219927370733539212520116597717220665771126040087818318639202223824887922801679775883102990066920286530985650749444114525676775503426231696296069012275407609659784281151447346700139302439749730710061589625455236980608290710649945096985853034775489117764970908089991064237073019498893808015962223547431839931206370860082059925206684542456740360257371372212674584317969853237696252705907620975693456061482824638341898158557338302645776710616850835584312075966612944856982915026293611496172035501226637105906936228621305461467166387813010469510878528396363811157983576176994625388665688454478203217083469156345603925725398242878537213391852677934632925914567872691862661210591183739072821206395918926579022247836834775312874534143404772087592214854111838889796736055678634525438713116959225485825704923263798443557461837794884054228627754143035141222021042632253115317201870853806306449982054745880646623250128004885490040811438406335260249336064324048489733071474711160098279560356953611021063151330481610825380708532853762854932164954918165855087852381293254667486758469615412225183410733606322465816895921908577430542980929966394836261847818175570030448128884200436764425300743742005508077573416620167463444619169040766083584693621670997565971611020700107704794663623568947281352129743756689592863931862009543005752452225017954105479712077863412744743237295004745501511963291610345193734751596450513432269540560669882648993365205400251556594302025032923661459267391818554034302484518437041747555405735330147978008384198155402792059183129698698846614569753113637660510637440505940489995947207629564672130586103355787826417721250310880440309093189180645344142809821800227022410963179190544161101763021802364895436133084236862843190931070877136038756002855497364228378243675064699628430071489435685017134707798021130934231549150466750709817491361735316370758483229982071045777921299204162247504625025475413340204377688408751730022138645876908294380616659351544371306015011862555429419480885025643490761725873724635915847834665312111740879477909343848004586309295986765864803915748270085587516224733041496963707384863069155775502327991222380699885464997927692937371828276782861912997630058501910511914490299309973282298999985853937746272688944960503797621143079902266094657724177732355260641185034293321620701780845035819332563448035033044964477084599353972226256955568426670444309841580612991469370567276887341482160118282276799348638210278607799924014034877825532100904219721585400902785998398468374987106585762321307787416242835193374709198583996422881346815671121984221009191867976054200282807809178927673980122599601994526261917033900545916568812632354264731641099862603117653429483219670306889752093246831497508162252477135698453802592208018151431368704325145322177146137780979150295204194747456247691726532919825456702354856970139459005929159149249085854324605828072869516893301591184082848109479774479213066392920271908257170369504697744297203773562464730061895773147594654329809270820260003550692481731554850275996630340993287319647708163064802602243588347995682901306658401982660343160619488898888821347827249153544895206880637619353502627792072156526461142478289834218571842513475442516911607655361144496194983645354029332681349445311306565992747464886432444637906749205732989117074859448001650883401003801335039469458344510905575103010600823957175689033251637967408223189274396271841973087612341361329869822999772093068709201899831412712962811726506487132762977982839342127942574255107916669845418353932341428098125986099461196383273385470398304196440104693678245820568037153522665430623220104471322269153759542702969885254583975781983260809755480483729564806948826797545760505666576667134482749328618889889820414618874760941875579319994381118222460861381180757939460687651142095759948908836757972302220432140405807705764730778022487744550341413388454687154332805912024220563693146821851470191508027962376649716335677732771037504249498364891141493224968549684124857455538319980538503793647690099351455323813734917305094818377180513229330514061505149445804416528825513683190722369492303005623877059804593905843248488488549185447684118899425162947197160379977829828387727882835669922724968830041491287497515880457452771037121855670230242723922097340059691085151023901917282771664243671212569017279127404383557165274529266687414244594578712688885755764254201377714491977135006278701776155238955037442406851380640688119553263479786247728970297877286741001037019457438181705351751198990199071414726559962955890759977412897749634515662280305813104041443395346661959947645832737927622376047209888614116239136651897820149843228630539623154061585534279526601381952381972370621505595857640456606953918231013010496942129558643220367590551693735778686905305512693189135040074862633793052682677508118551444341755619014783081158754419209099340772766823246176649570527519239637780648926325331669128850062612392987908905934328430668206995580966087878190252555784727126593636093978586998514006128154203815868564921008367607753661804237683222361756865566822151475261746201507738201992616834437461678347127004246844596623299586026325007415012226262723281092018621778220848974276573751404634675188220840718575697906557971788005367405890033895026501587830998725510715575690207457118520295830983565298295578528844045762246885315852839398953294112486950015863410915433797112101313801046417453555271779248073294714531235683469316182292970193240449918451349258393874948018013518204170787795790593565815156722876734605769535705380385294684408951453414988992230305207502487812223589545329415793505938678634038913796077138482310610913507395268844390445183988810467430754406842431070432480949776809891009502545530905235800180776311572162157833654186493016794029339789057024005434190830142811441983880999962824701834662572954786390033082747315617487421063479690717172377768730836015865615106822256949116187101674671194264086751004607906859377939725634969017190964879021388825401266993895914645537707471005930665523593745164891766543815274999711146033420377834697757753480332743302541440705573588062980800938740534922182876448328324662071321669553147835239772839158195025343741468218148002849653378369675899879415661537206239142071292282363345543595029667494609690863931956529693461081199599284475484906602034411035396102799695484580813289162197916133596881410683418619509575801298374115264967521044805909335825293114977257401822463278436224958185163638290464593942168351220349806087014271561428007756592449791495346470909751868499121628748282973750538183552913963746527967718545790529200285856458982487761525755451498664964183990373978195965053142528576361559666641662929755890250935588386066716432531311630504385736827525811362496523301403416199288828383627155679934419591624278003631786595482603201876333128268659395559372201984838050795707560630607088110556565119495229569434467322492271593381573538383043175790839618081945009001578297229848364275047396959763865177503963204326926414163427396415127093697585300891864732476375574071430247070789592210535946702166644295971659961738965781294998759647184244626722605750021397823593873499808985611894750715141331619988373536455170413073896248909757140659547415075949470019825987088052701312482944401371378248111234192148883008566203659679770579244713764559804301279503061450394510658910737750896009110800897315480136737230234583031378607393743273971568080533440695063994694379005109675944699013783876093680990844345049006556597889574778741913779854337124411369303548639844424170424230303376236069453385926928396737727980580597562497017426698975180915594996455536201013554113337295233802197130489267717433304832709048922378500284986466779738547544358269149348555650473162628021465451521793195011527767131766174598655614766776726769778659196095631973191200447009152874014748843065540259331075268656253171296443831206218773818256735031298252131017451351154598327403398292163751000791974835658811742233339584437384764696794636043926494242672467663061239314536755217613015924853978237864269528446202079049680154497199801996264526251421431428402481241417033495188999179475970571306424256465465332769745157600629460150237398023255216596714752522054995115612945698039590376708758756426345369374596915974455657343727533130672911329919406094025283347711750658608251420274159231058320407440199502118889262940298414115408496032405728424244080569070146338730547612601527533821295122800229476707810497212213767783534931225372941244563845513499905026009879469015173028296472762865758338159596684939340124567707172238696610242968763592623426665536203400459668438744806522444291379084051651451065677866330355923901331821220718226436992490446938465028624237276657642306696958788102053362567500363850915786874561218789443666223711005613934771364513984422727212314442018567645411427102555116155548956089014441027685170233749794577380057635501346606992054308740359680297937345283011891954974321547216843282839878585064792244482665344884604944166302511933352742808529985721896806848711900134425043061420046772890741767730670483115303493226256191269586816799706922841805879761797560767300139764991471719395930501965435922947860117141839141863564327071756049646398749336274911665793880299838306912590056706455066336784159858643624845946492276702116137794296616431094945409089826411639676741050358063202082200047082655798578556784611639293409557349918565794228233866187761890582169760742012086470920849997396695798314312242698302379343398864334209181520022668540248913510543129757295542022441803058076698811190641292649768810417666974674549367602761330445498565127342681123932242827837776986056374232571541954376999396816030926988329099457804297862085079205099590227304714703496765905993683569125344050186637218804416165719197430524635834213776169735345174476375370600774775434718428679038965819401915716106353635248576335764737386070479842180555095758335049461953688923900659659975480974924126151469850766816319129747501184477422892316590752165212702532076659215272135802839810556738035788838861154026706456454218391529324736564124859862959021419267540160875302255673838515401709374593601164970094253154495943341793774630877985519521918487517899227992730240079828005046600995613170758186260613504836163453407090844524483544985165777925861501392447594828896123498519777060863210967225313975699516189984741054134727315200367462528849790286936976976774955120049073478144959014925589463827543776623983680534969668957477873825219252376302499973868888579073250580149591335443912195231829092642822042187804068845924585937249890964345171447529619502776460716749652139844624665339070345839499831694655198609243552062412387937136154314577482500001901685253667848511277051495055069451768406622350486731510354605378407950517876645153934502003485586497909490533723654284788636668415232649605150435843297817475769278961363226399870213746908925112722697597133185413393236141588019308438684295706203314851497168131537299318360149805849019412833601013192270324920120219957375122624583014464754421427646269321545459617181586214805855734259543093261916991065405876392424970560358088671860847264253498734345773669760539385629889453029250684143174804066520461105922403087951985593523461430288489703966367407100979781808269315316255724615135122219894230240562665892009517526672772722870289939562365183624543858512945860286873044794069295364163677668796811639479881192753890761636980665899669590923726643693948611623767880460088554712862519714335882803378231857060103493396838396599937509293915385976687384171566812801429733782699040056405253495482392084428205043827150255614272609704783590475427661070115414332690170660163057311672694866828127471514712407263855337675481622777709347862254740925707107070033474872522766364207837763162138852470507914789625787550920969644083577961928700278574140780609592063893863735397300650502952068537128503939658682830103496535496044604152467647141691853736148289754292574941962934365842049736654337963662879670289772537414686602996177018618478839002075224488310253235189216081001395014666445452314775445489928589330304726397478515530645711857819027807892483981492948899696732627768476271137405568589636285749034846521622980095535162568170425138988128444202066038592339731963162159578820388338256510176551655646516970265604304999829414465907481968675399279916234725756661451950406991372386056237318371399171873407721649772527730527214101086871607973866346074124537282202377736239936513573842933451670715724090461371293395787540429665939440817064218337828842956931872323602987646839251956284784114530846432119068723196120228759521974481341455758894207266201754157084816160296682999696905978264443962244980677917350247052054937616646475313954152122271268536921857292943254741640649066510919263099797799469961796245741063221563395376811499587652423118193557020473299919366740572753302694805349243213988682953813140426205404315409900857863795085553128733922179485351349966443202656243605833193743618731889837917189693223482325328164914104453507075743794814594905882187897805509938436975717580167966390859894399295699029317780553176737734057901030207034991074844625481250809868485275697020262299711979839413339751099573906800110481647064052565085384964595975330486682798194689244489452191897040161399577372922964778132314004135373501761112584472489097144412445638592998276225413986678034796139583080656609086460628689437376795819474324274151939830476142474580348319636554268728207846530178282786781478561557231203326849172617341791955615177344985785715958402059690191449754493446381239789475261106564077637093605377855441147255017514733149599873944851557634253537163131459826858220003331833000782901733052703313938514378637770644279809480068881977399743017229521736115106836193939775008062338001621153862765558932642581792925136124435757178746748883821239865907981756258597755297216799479031864832589700335150654569411064504670188808014443975875124684522741689347525367037284910662682744046925279178179970369501223158945954782957652547085165957333984090399983239855795917151622094997418943104391081774003603284493355332963356255014377154199455968166827568522131779548741074178771150946306548176464744853684123497955141657829219475384055568771002982299443210918826878418755180788386899906146778139262751889458193818753220237002898094729298007990338435555649622645125508790950979026982318355187032388768567542620366596120112765582356584266832866393079783207080814039888042088922213646926306934392915692528456823743163793391935222891129525926442394318939628921871890501081458236305401163446814858353868825930209683720567194013276311429482197304429550490092135720301851284697123583559660691689635956493358359533796873255407824543586173046893651023703141027083410633826135564581144904508940505300147525414374143567376909514249466001602290910541609983502127554782005468058754296315945866308019067267389608150172490486034533043134701107288957549751795080436914374568954212914230480371394093137863809637709006641586867951969325346410463046550087475504063690931902957108970749532688574456282446746442236980543625581349338338614410851022305821056189285695965999668810427884951567528771109576652694347505763774221699629671655585889843770472171312771489041509198843479052083655267648758981868962628570853538633539432753055217843468764489813238212081469730154936681637542840050607946202294104555435668221972024766016567319857933081707974142138726675666007638719214635265974379218397799037560459758118872521688338892237309759668812166175955368496496591086548985381294942670989532179625410945972937528703744729764017184089731758123892322416271135054522553610904108187293604338497537614005012253232927625901113995891756955112846997888143450529530090808899977946758298801424952676783563942974933841922242600958142623203907136071237821216216856045030990963635590758977342623492521162654469439989272378827947480877440967875158456119469387741751773961674980276033408061168955481514198860935097047470933793638110708728077787101677020558263641616343654766135390190695430283436702761958555116844487778119665131058298919266622139432092593850419984947333567664785477352190018933088622209983318123076166793977121264155436437164887105363765041010285254406469152799288621834527561676377136343375045645200728129018528997684205112695036728656133485567981770690684783747684896000675125554481474612530865674115230496070338286258364795428974948658190460249620211713426450343522806584362151889786711379484018598351600915547108283024821976467830583420265767643481677943736598126691539124916328180947607524492241615983943436438161749770340229551166417066383592955169806552947373181829127977278733010723005564214138341311072399445717457990254981941349459101110777896353668795618982774677765107440240151259519482718448762384245564110251633961398248983262942395602751356047387792489237014973109149011781228499776253310048542099410805329446200600340279328349855545753246939062096306611317616098403105781158541414707541545823881804653367873195430172309442779224441689442824593256991566593971593354732108782332185012750117747726343983143968423736961322940170373132214844660842262543324146416359851971957558873717442162924057350031406396412009394628024892330268395998578418182203297904719259760483518984311787665694168652286950660600023891642022290171331557191384088556441639119539896350453858143541976263856929967319607164269700801486677329296958034641401348746706637891108612176149857829688249497299290779216227137400019997794946124597761252554111584301413095536934166147872031884763753583859382432138750763270906450192053131220639323388085544685374502658236962451562624987608382189639614248047619369021464019202797161033195271844060563404384333760385437995705123044391573021641178797269059453840844330022632846149567535972802715159446987778649553353740101871061138764839761632871609623662780719560233508496199072731553975322051502989601522949540866118010805476127773420372897057339008076841090135568816229090221007950066331984084550084913872125800635711327434663538398146500912804851481681938199972268876231092495663769624319610455829458777591505228610464051185219706223196796267901186031038821420667967816470219268990865236690612706550794045359034221899079566082467253145572770903644589190037111487437751210172422025053979735268668230502256202213814224618848215867895063220795886531471277126000896398516453931010826278989256126695787488695727625843360614914949613634506587688934102856771892203776852434728366483664587305644714563936582241349563669524286537798684007920052161011087425209515390387215225351812899785792876696050962435421582773802074570692732402090075726133330205832754132572960949552736995097834673683985173991999169216117838495962733660085689205666605113121860869783818883986227019380228204399383980912777258602820991522613586422338883006684360388630942518111660993219864948899119214957977497192040270408975126621684223780089426647157963122030619255122278833818819503350532303240531536445973045089009982312926611655247271838122221730907250781902909601335701461970363561967752227917733273911491749660273194221194809971416279738684319145246138491730671403748504731048941245076384820710366932774019730592882538471465946908431544811436006682838230530508591048772043991723256390068442755056195648647687045852673449110642215644029730983172555444757714243715914514116664421698634921323729011817734753103712221328783687086186351525853014682065495568995308709548566436344518477853034008687055636920123297889671501760517930671567246862701338823380199409652701461568155893915772453574796962913966849639948422067336658831143157129072902970407236744232208443117384061085490144078309311872324960059364037923583251503667174629447121551797760703218863936242177230755046296443683780477797116221325736550633077703615094293756338451294890650879927658004921799235260169423778767314767388777310219086257012891743849801680064223769823836355723477985699393695291610629685296418297573404529137346443381488371842834511529335759340817139560139298138990298068791812316571559603717086186604720927767110356776856645687475421487665353547972061084990638376690970611924043087420297405209786556541369789216064326157674436217658078750219903198167707475600049218723111579771247415520378048121002564010056729991252583461226029822582779336889267109738253640316049434116884459316432963331689164502066840942985494806801399568680822853036702019538137806311002593988706099043585204135874806837996266244311556251196170269488360570718712827276378381536611583176352883595992056324320038544621996662499748100743780185459916427178255400636498141740099124015302245893204677135197113186433542278594051311615043540879195463347821383113519818798000224327014398239164892964594456093877547411894354292789438710014202190429392001187532511983359838610339465571578594669487074094929718952185159590143017026354711656806708160763231612486110168272813570382504989452698401075191433921777326068374473121560308520383999831394528940065031320060409592270984651099184182097464003974824524167929898054232053167576240597921250697833681711884453253940612399536700876357986464718463558722594221964287170875226813040787868542720216913764188099615692149451876530130691974157620208980825493150250039341702376087472291935852514141585637138018874290841018691191364386451814877785045452178481892379508473573308164322256230018217033925124792524872116726105579015432308136364445100332048084197624506461591318004562738282932547505133221861420652736768780419567978283264529340789793316103041969551584915572286426793838473545802775538580324567857795417984962913267426460354764499958095777058103461711647214492619316422108577711602549237602424485295587674459886575588340760913813223041082500127231868904226642154219882095238252883764995299908795436470361712274386094803287681386969310575128445680107146969220785790333152458405666311615754369410895748723582061819626350621228233476588126190240859948706940909773643847563543674408990129099907546163466077275994850251747330252005310780449018976902154280920914424124444810790762393643503808658009982608807679923232314854631824966471504582761585452571417751328362851093275161521680619085071391429880680788574497661283055184016380539824974137526030066745844603161106136047867274356459408330795998048219331878299094553496083182636227889024613005370006569883077231364143521251545213455510884783807629144779234576502928180321022096115437501195502853640017483940889984823514511746275999896792282783968236999659728109849316019207054902951832501520738718417728096325723396370178254854038700607786509761693379116678164113925527118034283025837609188731375561932291040999153281911866774825795166311969673585540929637053894056946948237169752259650960996851263408848070918784481252042428112461145708186962872948205541075407469810246580607114347789490054015054127648583982974728268943032762258120438069215066188182045419016018540012174392879123103929371691341046530952240972240605452985586233334657788288435560951310331762143362021639787411159565107604691244609466681441103988241685399880680873574382167195661779788822207408758534426539929716175079697082621633951769783547127369134466125382950351697511147286640768712166496380867417808122338456506913175639613487860277763052120487068336221406619709495268510727401528133790727084320468090233188079479871134281399080787235070591997090242959240313494229804522544138286840603198871309582087202692328171302276249447448264629727331135126104656237646834816405610056821001425736814250029513908266954393520375471085479432286455310947775265523788421094081650709193865475806899552288478174688035230702732011555235341899659144485077848859405420975699516837702842020575556068864664779022242913264866274176963776706144780081050441675660033062933543828101270016722431194230498983095485046173809000154853393620514401274211687570928177112187134982765165620676025965579571577394901442977125618203367058238428706868253357003918641498728605137423329593998881170924395995766857193337564151148653469985922459135006450224477235005943678073029577660812898540732466134011395115788249008374266404302684216803652296251520902172908949515488082295102019149140822680695361914578899253637144811189384799853105247579416884902820259164291032025994775615453017678581649730111204340704351952340924752477469683831478377113765874118904279261300828325005330004421778369028043459545569793876340649519289723246374028839582427242562503180222911208139950791189731903921197539414499439529574895575962098835655860977880883105386762571079505642055888117332250539934478590069526190465409243616473309080162774997004363769429699334807096985181356068970263527130903039609966669345012798179168416143626964007808942528818918927114735139072516866377467723876389772587427614212066733125457745515078380036607016309410211567484115896794482563850817274445106882013457685119529756315407581526116644103494850865343961875008386172199274136741385893400863638736678589874772472131916418962797405447311328512085827080901591253097161490132091639118632666527494502973543080075602821899166162562256612337699644795990146262491893287745931979303916734924021545777464131005449707023591938862191581925333592737077670347198559510806469019432861070586635406630979938260807976021584089218261118720497950350588822772880968096565745868665354329560058332968328544594979670623581395686284080873366110183548777406419406319817694377961971172005464751362712819808034344943886627560137910711623858803223384684522186058167839738783097915794716987911551134056059467198611178314803879751371308361107572786883813586745677454884525052867415554546999698036586972196232492847376426302419929598593092764829984717554458921978286145262190146843262304917018096868006090686052187545367355187531414261891452143904226808276093598568723604740540571380526773974003337751162314261827794436207246090932434238818502121348361160947928503119366338066608106324420055050179857292639975313961461388639025114156396486180022408376005511485560635276637084141443048225130673929706802509937552395704283963051479060835692108731028233889230000293982964846169150449934965665410214447016911286651218266597619590287526733305246655719915302088634108428900742812782204785807154723855944062093841313253326707932549675581089583945889159647466434380558903323243983523162690638669165813357201631373803808773741887524024431873052951141768115012139026133627190785540777055456373843214397020442369029118283336891228643070464065006380908819285976511514927293216268160507204864258441759370195792686526579721951878164412070861082813132641311982525083754155610230936984728288940123728490992260365105575610385711627490193425068475356328994451045180203908842803869348825826797112611908593593109168433104533640309540751149323187642703463563575770282356684088329444070465667208707305864835438053273532394432047743613179776845588065908316555199297505064249926102490330834477058941208282017852355740175326122943545087406082762538985278467302974931620838457323870884653948344613780530891631162719504911549921379270343210872470804842435646028542228280240817628868107265596748469157705803820375082882482585491601855407870480461553730890068259508609095274727993645456025135897343325490845546523801131264290121960692488381702144794411939922546981010101247614715341746544256736239217157370757305968405669610049928085221502253876197023583231524260860470112230117595487142704854548549869012046442558346984665462619808953425468064103040350741719207609868726626265526609465515909350621977084292026290086716890019266032591454073553861760753152761549718137651537403078281704074880263490586063572943808188998091424779769492933431875179882869511908247681144222899312602706335112843719853831006142641021220760495734603475420432177468151272215016232892488825406770719659090734528720375483352395257940179755883618789595731494574192328514413484310765092379856003614828241203888360640758362271344514835486506220583630552299653643715350956013641383310911987312223947854965948573348878753350689665480297155770840022499473490277970778560621368537009744394803372292843197494407665325628229562726597523948775391277539364772373939521186959664351429679860700244096866113984810918239977512184663920427404260955231662579590788236169358973523223823734965101233406575665489314519943410204504096889298646668399162711030395224481620491455217547855205442442314881963030828493271710104120481265328148109317485232421248160960421193334069599734100121380048339178300822137214610663162054018309844998246972997530539742067079133415901308561789145952279313011897237329731584602208955497793119973916741819815695797079878841507043188948313172290754448315393934858008452681033032717824491882312972288590995040183644777999572683206692223664986904146262456585028635779265043749884399814210156872332761223916836638817361838861768230302368430331893156815966109693400436335238791315007268118714392979900595844341094157802741106060920676564062266190897982669454013951636064058548066383680246951671465213406671573594351054684082190268837926791107133413942498660582556906541144049452162414917351467498377321914698465723318607785650565978638068742995124095203620438191034711179656876307487011254790836509419977296321808200446747418025940536992076515898334002811651200506729043817585472705620164406377410928916159562828554788806168167261092788831229279870443497459611617630393580365567375751877822956660819156592749609504762393278296470315424392911955645765287577310859275588590325435825634985565055848941910239036878499086764491205221444197456536554647493586088537976435388035972631789166136008593368271072341126297186248543440735959033933431962603391901578078407312338066021389386448528748930484234710533054239429382065022125516557074405215818754775324834748993231278418000660079317657825098159408938319106530228278420111083043565801193007833367042788822314136425699360066992246576589712221504167894946085105746935551817427630168354863340828867654556562655200071846681521910777437159186973164605897443176441393840343778113801800133985295814705784074593713708092601682187087071312327579813685184110187738582340709149216835776768335655518203917004067006937868884030081670595426426776514439028221645118755171772916796779642349777260401119817414022712970696410308838606252804732816038185517591463996049648496117023416293526017744027630655245856043745729424176722388083120046359407939317758875982354789085896798004139194627977742921415553307302173555945722079366784313524991231248537247670959126281584385052596079060772165665590188978503692809658649861903343099033329990152161623664867236440769709244598467507997210841414321292677901399280999607560436110831225683868890609386458438364698086790903670814374298214968718974173401968821910491905486954790432368887424437573421443392167159874553695762862207659779274900456807904643452471012706822888479450776707862389318858113200891989082582201273137611803923931573531970231150441802171772929730026516884627117746849048534597009028061147700215548658187919561833377155747970036004345935043248538142775588642344390290487414460791643901097294648393445656857437406930997089512038570395774220383813615587970702154345535035227055213097501951526172777865782233614033016806375811763017630470856427819437088588128457663085382279149845303358009012032209527551573153765188972232478477516917573199342128516199092446760219802950456493684797893232550497074147294804889028980826328995548514033877525166593797452481954120805556187835499094152552581560047192367162587712310059041446480602618091025797730790203069423991981034502082132478887039330866356112792996378103577490769603677213867468973698686584976259438520838421672623345408350472511643912489081324560831211915176729432516290447424211629087818139760616358382864053227447216198576077668856448981419404523500560546821958440557036738549721093919329692726225362535854485757737368569744937360687103661402145315238097883975929208805111814674655656497547440180193637984133788455047201037057506044619417269997097583298955102742623580984969647622465242202878464753204102402075404603548721902572427402412593470879286859998667280402701829236052552721026098519929077802134587566219808946895128474506687360704565093088181507944484260250465002762410538161722102143437648293717726925461025101468157494270310772725115200827423757166779463581993034641691782874081456424381346778741134446640605218288126280738775461734061104666931104734515648731678265838566276365528813402427969374195065214033043660157023683624030794614482011987317830639287859956311263928617539773858372626771356391873232050207551920917094556719419152067093579142333709778409187276353903585195769463083806240905390710587061890696168427521748965040110913954613257452764383530090352381297828663063149634624160200900048714771644087762172347957053746659670720624259575822522423842282098424802855714283763552337020889675757882303301315864545704397140924343284514329262697075378565748411713166932528091868134311557036678539751253021094850233278683203136972124300019590543391136858421236645708631352932069542688167875435390985126226468852884575149592801279514103134324281098160101875401387955227040460551219225346784005636464249929821686401638101135910723127282647543871926243543029600921119811128150640387767111011571775553117038549429333372241841003347549894112211346182216738113466178328767986126901205904958638292736292328809865331857802725211398337243189551591871620243265514052767580993065112074216584041596923251161828861345066579271569634735415687907042636553398090036225595071801504010269510070640913002773515119653290470137421556376153243465164325305734784606788633170861487644433054579930670537958294083548677846222323535266095863646703283940094866616106058723356784831772474921493624864295060871838526152705612889758147347148308654385858235431040822640757356612806928592491371853595776458058952376505170059025841904756553501060329838655609344476891962648163225964615431091048416622326547976362609542824802657388692412782059260924701579781946759679906257774070707581842674015277883860413999245376523996608447161413529555480274275114469753436024554576910986815661013510756880254531231256058552289919875125115986252648830463980580132680152820062232697591353843537645068961323942467891121260071780566440604923352631542216894720716496243934429098789203540451252023415717721248574741660672477496879896172549684162831110824204090246390182470464497777035430682851037208999002745030024521465830285306365047186583382909388645131468152660768010977482921691536488365952325516330581408170395567929361603223879529950270947738534328337265035454511625594168050530540566055365299641612705735813962287941173232893307676845039522659974959822186463503212588866138444973638054499565484414730155244551130296794288339605134680341225449204046781319873691354176754278570531228683605588066438025849928677423089630259785988283944072637721075406801075731102852042772750015164668864412358739591544645237886554599760407978714706611560054943124487765924842091252909563602131424318845947985190855453301883221206249836185348932501786387395969644043536468682156555450894784443275111118655846581179651193361569677898139006995212617892074764534742775698280490824309315905510994483768120797703179867298601495174680598313486424644265549676003346928594992578855537107649868780396824418445042059256651466073192337787857797957038182097301834701318830715507645512989000789474816304320541887495151025201978847978669651408426532459283856133759945038305481812061222920395145906100145512906239674494674094652418432353364667852323606807829982329657257112663727940969854718869913768518216993641552459114875619325940021799848998366997231543988949205363468951196953542883564918731331738372488349021872301472139018082552341369215389364090897041467086288115635010308882098180525957689937750837950678595148091932688162545266526744887821367823458040042215261649360369916535237974975534924707310753434798112487225467590825329022488929703604381099728554326995596342141869841130288475043187919679959189065399886344156256773465309244481400757752986705698283854197113478591237688194227443737135743844386776200714858713201703151948817543932345303294316212060858379701378965376424338893203245921933002040582481546105361546241559629485364368234248939893610007853160306456521301156601317961871934272883374414121133342088442634997114700452156719375546459312655528781038266384536115438162587990569953741371544145785776854744583932171348965037676997335208072823606486297757181834784552492322018888576825041593628983327169675244103466912970803323481032518607541451125750781849715913734117589508234687310643829727068202768901483935659627325774274672350202642479151800918381537118026481865658793662844833480506144902511075731883455269417253415673990343694244458216806280175881665952056392553611547935587973815250339386346572964404786587693887035922254074558054191813709418302395326915786962521627778730078518937012084092158573939328168419776412430442400297986136528559789632165126237227664876874679482199947269998066084169953482193959527519290193817548420185546490304536760146144373461918214926451195549749235121963584696523855032733286069865020733696885327534628593436725776447766883019683295079525876757801055705006709000821409685297130851737548323852954314740904787639751549749078541181475131315455371282408064904126751742966325307860643971995432705100317218400588325705602393721103978979785851866463814793322615845635323885754899308653679371324211164339757521894599607803110888859574788256002068751959559509715467625408441283210787541153352453471124009579412797366449754843297263230523536627590452193327070081171450477545435495713009036372891434027692140648360756194468561126011969317019535031543155289238849052684313380282241970279176850539165200931392579018782979791904667613818219695179628427311112469478467176773776812494050920372806589509660069977013014873574887884939988563405644815829009224779137207660050437092547848404538373139808092943503616814933528395535378941312965057017974910338816891965355338651966794399790307366604544546903530317074710351776410471661395251306367068535572300801146772476239480616383403884780142383382749764681156835563621603412120242554794321448684267003458976098353683043096063248610896586498118661819506143442199870876639857910250755244053355114421413290001984080294200947407299615792790594274050660855495026471949402685475112234360609588812000848520215076098064657026490867762361443441816514203291764618250651035307335834579332822860112164795792399106673594993676385590529415553375607330209710290028853536727248747602706182677392777859799633188235445611222893765743364312640509432311438473477839821926865727246508046644239471099891897965254865065650341755407643231389737056514465689111496959148601964768630617838329189914520172733578206377584181108799678656242149467011650765079475264779629254487091012899119740719703848627327790382646961953553735440987594906754865875543674886913999717364582129735156452063574245254003392816912621541425366601492843809286535656246650790205263004326023746086700989941348104628293536396064725842624603194898705786025968830359038907557920414901601813856408651740144488506894656561436509848839708769703301894746940004239753109306863067372097655973940628722675940873918091376802364547936256560666820784768201302538492708156855505983777926804489420968594117907108176384900632886614814810279549645081120693824131895982060255568490875492347696955924862202250932561916696605242222984207453998142761920167757991314781617661030276686499214189950942624829814267349630478905243674159816787792526425647129754289781663565783875523233060469633714074109686920203619747225963889593131579867195928840006737039162464819747016237860647897091795907423514410711538813495484443899368930160765467862029727286893554790239490909894601467018938389747307507114891712395569343608381475844047242041731421578301431263167031270202463686309443807763953169640189824884101640959052811792591720437573512454916278254293483063845329233746441308826786601889974528087756135167421735822883304518093509472985465746505899999724247903494351528896184213213450115488248546680734942570409710661824898294146564929341732259275221964858957636729189409555289182947591998256924352022841855133925749552609932325349054585564631539135678186064397927085621149266332689355118890352664113494807560562358054391985638850724336600577447969189317641775747890138379426108512629142214672820930570897480494511489960905548283596387771412703485361702768051355047813323631763860356856241102100250158052215690951640027608743459987621440837937617070947257688166446820653839943939257301957433355510811155114633798597573626763917550048367113019937970366647994365775200068147939891866231494726911189136853697710190893365125456536203774379088278937297187510326478270537140221087531702895278103617447010106123764832787403713170029758858579181795703351659231799271298917757181455852575276985152154432074640210717454934916320850633042032632477822408081270064688816986931593751717276104241871249587808806927759331184501044406962853381255164870669102715849006635879432252661069491288836485320259546447352670939602303530337418149437103881093271977613942333857269212866087618234440843391411387710361551565166437428899331917628969866154804463801646267277333324374639397307640594107559666433351657999228165746280815671891802893957154750292264267179011050024169003200132622413753790840712788771003116149995513618844013013980694965552517787327551367338759462361404061049201614430412396552157298144284579965553540124795878089577315906264764671245228816254701739222460546109792408926844675902387219107904161330103263089596403444641399705456056427299491948378142110627882747510472145835719857686810196567143560869329447335461883294292634500886726756381420301133337754777122263592022764471615997730168300593927166057858144399285952609642141516686240313865801899175773216842617452404662230240418954222177366640909351171401778489486438056682895063388347662628406716120735091441364246564423780299283537912479277858413442573126126088132107825578610804832596503918337110689161738949351486023628883045936863927949275095547683554318933253621351600899826588111048690759598375901655184593050295279305531860893919238356053197517168059372260324697179475525368689323448871727855743821416124869224247692464799430482983276920517563651260764667750961126390716552752357620445072249790091741081377558328492415405697895871677694531035697639836042286873741528634892841431990878219913329998245045835861841587254118150674324928322404937720294365031714762606006614375377897950606866818065209679190679641769782942450839546371770404546978447376730744422996389656614409580869898979111615432049277595076722942744110460675598758397669535958766789530307512337252967148722355937637037962709295232552537051611336874256846339022344196108336702163612051232371527119524341602003868512220000770912807106023840218522298458371745287115041770261226342007156341958273370352089816217553646542761649041775571693504704649323575643778735978638134428031632424518076107119888589797667435308808142808391590714422708564151425036595595064030003824235764126284218812608878011190117319942403362323531180033708911519379125769572716217553958563206027797926068485481966445204464183449242311102123248301528898405964995377334228232436184375533680599473194911633259320206215086517193453571650669588427580907758112986518289739348347518805828472484477460362366421866436031065254323680876206869818313520700410437172178181704765787588541108077149807000603502357007656448356214229516236710921582768132133234260224749609159623872424433432691877163394731980740680465773506466497624157375032661531112551836704688538619508242383894181611793180254932278234390249297756096325287792695917036195115439704169068208877382881651991313272407684885210282242214421530685305637056479726587413550391314805129224488231581657642021978479725521745619679062098967716379257113387833283629805888355516983289306460693507695255873762993926426101346286794079802997236228551631571770927945383013555054941290136767744143478061901589357271252342422576611271841724439424077715908615722891689932498731131846909141190957330107343250545841125283964135104910384115053020015573110468155645472856923647436260233144974680314573618831751659176587568567663699877165705454420656947401587153735084892610589262883304229052333036254091915767333054864709733918536937776771385268546408721710533664056439877564629139965825888233338881338973515183451595752957789696607231278864568947153274974881731500249993093304904820240452060424472659881401725918323513227026312095541336539062751605692964961161187239592424859573843005259872220003394137611875899609339986504366400830002150504785799858313146977293849424882108165327787756596660605743525962651500283272788364436072008973627296142284935774144781307518648968362145509781140950839673151919483643756765091750667320951786041864816233531290769439645321839453071061182679282723057933257174332103679248243186346091922706728803249229995830725776957213892860836041234974349655257582444358347559066220890212760073830964371446996514757774629530203545907062396112042166579012417326090651333361860716303302579671481894218477601486210829894980437872015800526114895433813952966907856015002855186603920683908704616861557368790359920114002317325202762492432703368757393201785354088164070293788266402161552948030884589275022683018007510278747601588816896147506749744243010091298702197853344365416389951804964246811285505615320691851630291870446968100775820259415779692182092714688801250928256657145008926166539087910522294369972736083400344739320592128292025150767337855295896490673487719282397232649817042174370339894641230736651435144052655965647452979566988191150966343335051311110622652368345931466505183786920366711850927604341483811519112974137336569772559783821192116695848682594097394788970244834773062278944517927632590801568195152247943538354424820672902144939679534628549071052232197354104983492628560782360140002645526422268449494187915514893827394427696033658816612340621513690454065316971043133941527068848289117917566645235078237356569974143801832418838775058842686417244269393420232316096390083781658766194899291564889444868564097914805907702749942406002574205302380357511505786174927403548807121973957207485303011024238635221492077642669611505982944752199330122841864752939786412622720270098036472843611018238561452256494600548050094693349341385028878252713915505207918345659820062626902772925536533401222996721477300294191051815428562236389203093753774142853572003227450871468752539195371400523629989759963599231279602337546432078715271324182567819105374608466391236272549066008819726026164238134054815310866522587515120966138243804373485508455330154436426769666873984226639708156737394271344136330737166272133623518689210603978209375738445248296334695196894709618163887991098133964496469063806195042164208235242544935059310474721424171224766384340484898797366906644631147596376073553845672831487127291539447357743654973219998487583466052597414080911267632604507061788227957918027928943066187522696925608919469168870186841109226506130153229307417382097288223478253977829088407106416006625972109600614553546483420423419600515393089026229505676230524615161372246256749800044272331979947760405804058013551422082742053968994266241066307137195317148787239536391094214971405901851127515633083404991303375020898090123510157033414434060790208500607020184607036609387985575535197633441302314082168970343358529930295853980556534241690351472136386272044877280350945385282180568403852156584140373700247026191178932191334773116226094501545171421696022689233646289849443917390977893027057772851676705505768086258682674012031022668733425573429145027515513055947085627603237199573122913596066807653166072814496791695818696664765649568040991235714896845062939507895064925034026143423483763925827539580427159207498317279684421272991703525854606465597030971392095881845130038610843249307163970521366509540533702509488490774970202322085910891274142198362459872145407800555675045796820263638499061198148019290885653805858901873392088335607770930183676874546421431889987510817831125204238606045630871634015374845483347705743965235643735104686544135542376927168881945903070674566057301902609424258781595035893934557247182016742413420428534039852895817700594290336929885293276748229137642391435116771442917952514828371824312424229504960464543508343735240442567161943856738698202421320766431092974508214533347024919693641412700974621986061760385640077800359808044011014940339495126150667147747794203780500595946580843021114186659848197264523268128169515779530154324969969564098240115691543625459783535133747645435824186929551895225524146823972945842664549972154401612340800798112272757815629195784389866278362776419279526597900292828462691752573347379301434318800445370001948903755292411039115555843237490228377225911075215098030978604654369902488932809885089154489439070444858745142697035664086941605358565096656734807608483959972370476694307243837213907541152002096794863577832961233001863126290689742130542050217988142991930982402819555542081397780253232228168333912837374622516045968185304165615529006212446418294836308804733073013729111713385147431540180031269180301877899970019831769989439119784906855747737446876582654503490703483711273480884011516757873533412363825556020687682167641279591114005349834253683641031395238572940934891061475949151778301770178434458571672124564763082067463146325081955616636930386767535808992875451163003424685950370356602673372442788001649426901062529029256079666977140098522002325642901961891654814764483781806919186723914999238753849192585581125127520013837026939890528945421637287453940240600931853471997588270220334102399761189372611511544059259837747904779308212080176727972598342211426965469882193335127604602640402727292557275660594670331731497965419211473185057422838552100128361172770193562682009277111058853321027266120740841751851374426245694252943951577459639372757189679885616740644638837994112406155848844326919983538828431386606527483098967468990911765124407461105739157291591570004339022035750699382010419465413389295010955104026116905077314843470633549448452651083082412763050914461433316537137592783097000527745952701114400878322147256994667458478143160925668381164835594580642365794003410802574485470467338745825893711897477278684294142536225488062927898173860541696942692792689168068074705234700646734928377822930246393622719724557979798114619906177293763395514971311465277807234328819649114377051583958564902456927150536577960585595012440860545066707752711874273512562332873314173939907120611112803305332119216927943807238408821902768925205910528065277251024376469919363712001782184114766769232374512615931580347714304390001865750018643500640572562584011727483349495512486232229369162431564448640919293239283890856427528368959314773112743736708925934887170638979760334953573895344664448024035783762957774084441122057816763253146334973430055568548370649636159713251553523873104506577446960980838779020260414054098349669312439153064604649656723716661840558466089326643364089139107212946870995141615161994698804490141575169533893216300843831844902736837624285078075052698579325989663466149700912884993876682671170701151713477982353812867051396825978378605960054607174307027573606212919896712579495688244129655967500158763406404682793550404536096691264950882302598417217453047631394309248764519633409932311365306896651289920304367438855910143850822764576633876913771655536404631169046182511090268394643099035447829150404401177821193682515625236064732180221403139188687894062411320995577733618123463821284831384233789110183426775954523092918741686969610005628390065657759538763242430427406054109917522291236908371398690760421905528001568863024470860862905857653778687681486253849328043849708322301784450080980727719822446562846509295431294195129636500324358664345671235655634282851281625668365387852461097686563473248136371333693407756667848538359042951622589852156284578962318782893917178563236416045667856818815223099282321614976840612984431203117281314257850984142090221782548457200865765606376720625293753728458650681031995419752765274693338403579255465017301572503919734907170860571104146250769873713353035573114531854741348018910567008634874454477304188139527463084877936598229882053915479682239766755474693955783145321177702301719906759971376613957344485678537552371566993457432426617213012925349609918557825990417113211356148311242364886757644773039116368671714017573888017076642076194919704037756856263384529146346492921970437929320342327627379741110397231354693350056809653239783064384117467413444539626856728410124643111852716790318823473587422235753103730464400079411589080007059021597083743111910261214137734967849842482167513353101475910263522150076552564914350740514100480783227053563005551650401348638818383097910961006659647238305928825739612852906304599773719463214952415790714688698471904151673492378836837471147848610069986797581018004074312308324919789324349024794332203857383001663214959979337905889726675033445171445297501324764912473603016015716562156767990093560698611608009820892489780217434112031591206998782336776636404742591324283774773399481402699627179274464006637073570566050843475410079595820260966974603900553326492111736919421298876073278909666413398154702453989542550191889253016021268071210580073887931994278327547718374831002026798915822789295899765474981577480292298979218473165902795488382776443933637478052744280277866706573473098646308901037771823630534419928635416656070710837086821897486239170448784080743467448718971680660440998492998009140537972290688656195535415240561703161542915834225810681005424344134940027886063500860463353172124108124191011716573516538651118187204624421231497734748094600728236758563373613571367720161870023492692534920398484258516058657492115719607890437783441709556945480165117039672069405336769585770868178800525865732201752525724170880380142378446353438378408586206009589995714312551596636170993146652229714622389467158626312095908804777555076269593977699512090717792831271056293098215089847642490697400283012090887808187782334340168272428994510245739862132738142202017228584551077622157178191885313775016461932607094748123178930920622123267744697230783126646714348865600591261729720707688119453684761553332811549110336672691539180187324649661480418551904175355763256516163129520094388666723096314247969244994400033157526738219322355354202941389729318812274672324165017292589736318711713869493308691351772445390420037571601503809141892417992098048472408497571500857354428919340420615232275745093371510308360333465195787686905537688774238906521253732933710284265749573312374550898782370770706243700504467599766148208718264247954437203069468147056825522255737489124493261514828615895199681699218951925966907070329341648872761974011409398679802678626857503349302491896133877402832811549928079289559696348678899905639207256783397922811359524903074688967666006576167815771507447598380118099879064401503059378597763079445702738159981620195756131171579547047262204583963599223907467236158614806307842187601369150387093493766790590718835132446107291611480848542142518934091747914594624310210144117853031807721051951101000591863537092511440138873175156121370842298601305937731280709702475836751539143510698651000352017275587846406690644910751418169538851270194928848107460897653166601825684973732803603612583010964385928677175288051713555511983220333762325680968664570225580741926898929058971896300364589474268796177824069272832109126058140493211870300297077113947789691185165709739646182317946763400433899693834271684202224460647380455560278869182381155288042012338304193303450957129887103037765383975513975276592982220710282240967508054275020813808479227126493515314151999687477133317848824918850034357229450522469548941372557929867905083075033688548519016772299581329495952887295925962407040469636475567406824975933483558550444741962681361348614090441838158575986134265028737349684794479700636040181338328967239267149706297500891652904790082971797586358428498914827706422388646898832898634543525695637183768919303487568528406245717999874422291568722798187349769498143816897195517816882412761031323496865852619030382963728148883908740787029591361578647387284708354285205815533100771176054240256916143582012133503901417015259049895207954651916422546320341502868216660033791305516295467108921171771298316704554452789684035863508774449917863770596224095836221201631270076794529491527334211416261251813899324759410513308984411455817985277990663078010442441902909741855147486036458634352286679981362487403764925471638027004303958843133747763580890528738022502951700683007078664071760743842451202089935491782152208348259072820000668345011938481286126876106867153088285237042687043061847937762707737843309692347295892203591604585673595105835944323480313613891915808868533627522137982684903128976155836229899541373912649846297881192984101628894314607061386140950781077126501131984014506720842786693141003842123017671088620961218314919326350008337673941075027599561997468891871917943392140198241271830189598622800335580805550019515210011391313958943960045958663235377461379577340925660237883903373330371479184134240566907580093110068514326651074410976487959353663279625285202723533628894298742613256196032578094245328712915549302699538466160981237840838220839975827030696715374270123052020741996279328996300983822735123836567109609070213722187318131969082920907801656330255795755296367117136595367990725981470819878397487181928206244738506252589757522706855964279885800726207547885240794087560441420571764906296201340172252373473333459426957932121469396231279731714242757543081750131713396431924812209174537803680230858887168380018547805130718006763194494739138883692752507087810747863742995162828464107138045536033709895627372491587548540541255903175883995525072657428246333372714547220171480636677765659619579963156297218014498904602188404169384791654109644722554319362097699053883348947257274364676249352048525974898951080822112185206287200209025060464551238329041815010345865343798350488502829047681710585880699001363107058419764303257415968095210568624650911539811824926290825457662885877801219367690653386259179237174371728369298498783099432625094699699674983173796793172408396896970807475898605139932719424197164315115115042719315662464345128246511385362709241098026847767216908201208896043842749803049161712055879791885297560557238676221835570392249892181544147043719123794731417254687831833744011282312118633636589443160236888115579837733413530010883614853630433599263969072449374897405052231605570446555978373722700152291499390536769574648170041336045717625438164976578906692470743470413347850257010310068144355608318902517631543664605271866152909321650014939801146787226849073593972830611506352447773450320508551881938097717259524375516846338168781337786388867048524248182227588476239646873647730038803607439554982378971226927760904653846647830006831539682135869924626077665374972053960451126063014629056130289213293785395602354834301842795637537923955952023780026848601569980660017629878121150482289245822525431526294386750286960175881903860463288845449122685924919117890463666503107662635768660546827272841109405106045061526907749772079615029640616822495997683774887514844231150274920896199108143461242426792258159782930380017641691746166293541122489487128165433376505711498833292443473339614153102940519254158676485979980965405222280727356728223929442273903155346999554970158190691038893420213411540200407110558148707317751466728014471645354527890041129619948855844229374315806858269833756587431418416787866716635516261554162705746835641772025330404626877548964309469968849486245012714043688367636965524059928414767815734500566960907659345468654663884666353834058093950334562426036675963866118546744751325538417208786249861381399480636035333407991515648158867687362417503068433298862626683986460879940163257354159278348152410727709553022054886579053315387927327636391308347016483922323255643175193015566269288960447256773347763816101224914801089231443129023591483541413660280546543643072264992586353810773239400587573367267972532802787263985210493067023803604194771657519762253229950456757750966750634954595846374215820815281040799346136254315421122232467404587242090683551586023228207362239928742889555344428857693062359289869017012106779693603766472799437546489025858092344393453654495955194398312273754773548481355411618095061062373772049050772563129181245564629199560729030967839764506014163994917764920782864630509796828437848646717676759188053574487989042127953914100927760678879751319938798173008165630582593642543605357586692937166155316123923982459836491799545982384552155749270267723361652303957303902413248065534465281201814385163980275337491943125594032128839367583177221829027468770223740732535269894275853105966166584886824926858237312405487947795158738560744303740623847942797073906218183269201049952563762832228314979244051910696909653149033592226112738495444467544846436682794870036916870645995260496655009537055114530830728866002863747432779259627685815096883326156623206261347859551596118469505124284818885755712266992214690098250458545351326933395512684816847445715782356501572960505826766405353838138631628268674883982864992107251629834251616691091039705280149189507652569104805077654628033816820798448605950705350219170820013504242159511484278931879977549236390779134785991288044602339011573157178721117304939770271555668989940262084059735730849717101477071990610584933969797712416976448653112445257067260199910750873496752972663356413618700493161102901861902076954314441611499130096407207433068268026960934922477079528681013840518506785483324784171364707595453668347981126683608986155500520428897110548355289836073393943107628496442840819350745112358581952093143519971469396280357914155656421774180954429106799297644057331968687464765941665787935371714865901781416973491583112630206779431829700054044749727389926013077544471916841160694028877864104914168720190144813286302501547441544929923196936075186165888379376288359642274207887692684625054381813018755776806786098160763621561196052567729898872894161441015561846142108679781648681539671917501343131633263962648487452695109271168529319103790207237521111050062014497670083386813423204615520935673248964542866348059679246336367019959415290720185281319189161703585524561887666620714892621971059661111707694722804838237975712933126576492977202124634690388679937002028856930667758913619646564307251673840966383722208301736430352776956018070252548288710433689367159793284112252819491887081975137057575516921276835361326615920691358975531553704152488160319919071026547623372480733478809421400735326762332261387133600772527918618774334281104125982226729993715037292978975580477269738718045939983218087666729524283901931514801276703617281738593157340551252349370054788086083255080316322996694046801158694174735143530412060313799998565068493311832901958119525007205406739179411736252888327259122848656129401528202551309003158011462682120402743829633844888398667695609074426111411633286681328249177227687611921449222684139737713153898624488311765109238933121224485699064130932985459153031402154455047735450763969028581159775986552629184424798384524031309337127772258725137783955264106444472042800756195283590516086896888659402429999615868840825412900616466387013544088129885406078473083231205781529147087182741695649837952657018384804249284586246236555545372408604131771874227401555554833346678445408590817779014085547825415403869220288420281193095794874661019411986619771247544512288359463230431675417461364836508866920674038648412995116699283184643429743972344359026253515638034810081152526970124679257687600462154459528913451428705338332657146412241908516385658336906866410521862663810793226155261945879186058156306138010694412706251056179535001637355188679083813934466224194140097697061781928332940690739743635547592217081622800472519196578987925222024093013974006263758864674204078373000655220575416604433504695329713268951945003468402132246721678170608653133145450144956206046360023886293901988390622788453266401708482688702341179407615588708964441072013470408729129879868468942314628771791765158453493713826025978261705643811004533764319894918482988245998789402221040648243819706569757509615721347067830997633378215219034379252320592600119257374697382463863849047533751764183686263871784430651723350378518197010126685061858508309006090339847008163141070564503125226424020803660574754280074730745477554433175667460748763570714606338395194461085395792843605621574198306601352223137831625708982271233553142459434247868843280293013130503205193617640799069125230548643153355619728635312032912177054486074821309275136060972479377698168132495909155274719032560115082214283270120978556610237398603555677683011083678070620031105895096727498331014251757791898716373605052899833272137585018644509476466579342406220407487905974767302060981464150776312858099892226809741846100727117913439730173178841504033343381317929188424015344730807391530999059446189660802465128730390161392194701028634601986928262224601318308058961865809433828540763710361977397025405260738859057766766634977325091665739050622834564498027301937355851939334638757379212853574320445345000411392388360054957868477137988160643350720008412880556935614295911549167870663083975705609618461299106378815150958051217062121909447310722188170044686400955579621729707210317337750513367140064724452543619246543540966195196832228980321784015159868409643507356003745971104387762158299371039257748620124591847970373451208413931222149124187340511582978890253849219307337849962804672930842813326381384659892202918046055310145809547794315746529667448675071124508781262785044721623240714436161598615340605077980417741280931104523462499640881843455232136982409634424359126180028699333794580476820057506479078236756339311981970417811607089089192138502067632913559645054483899503165813083867626433573512582324794078821899372530546762535398337937606166992521339167521298929487811287571915055618094714048816267158303662363907217849383545017755405761881900368927409208162033952902358007486215789622023061356337619276957257556659178561768998226610361146183589320493992327293398657771701266777576519963588273792631594520744908469973156434302201729107725051776182847396803112046011358986262307993105774772185295157768439817214022594102066251899767126083321815755073618177009990205025824120630238021320387491762964829322299506656618200673078783122064022289040030943831726431288312281370703818740466172355500173810436323074933752106618007349864622480583045858017972211889259629495077178350220415952102995944542614083916732317656246722758755698187709463535872709670974213214434961463427014262604065571562922823808780390948763846120001253835301440514131341131806688536173975462906608867798325343448034671564913150682238763813664619482929405701894873453104820302870502810708961973072919366224358778086013310132418868301413650851448816864187370417316987011155003028667011558385349602507453930333240957514748511363402280558145505445228193361222658703286133122116824538447523001906074877360949246050056807969907053691698218061436938251885894227120612222301659889797779921462232322204430960123952996310305745046829171955938532951203730106890709487505181458994903680979605016038671462243916549627211412827430569351934947277849121202480389707629439394065280326519403715887511183539093265317944944369733881795182471086303053099104410995006919004879289962078797329689444009785026985255571468398894826565662071555538349413293056621627506636987068414951458457490142302732095005586789059849119737453591122257655058459156211580929017151634783283812389079209494888819564451048224742823771465789033924673038495420407562756976745257748906017103361043050050423377798640583349435056272755421931424119264343276974924904894168924635970569003633522689049330617821219341889102200277876940307104872479603572427038816409247616257170937174561063971011097819361872200152279741586469442862030204560896598075576227843768549800269831254084352525228798106124133673228374076975015365112135200652561919939224555524367808466504719611854569971179652060033546767573973800923801991840299739229206960032464566768542704564677214580064091442793375330548278392261131079979762394728892464900399292600090345482812688475381441643970078589935597829811910880508236298538592768776887754147745212253999625343701469155591478234291202212881480311353108147069585598933993684764996863679656484745046787283386585127247500483267354541018181469672135858850430499020833315208323535105879197071377677719297204079041764042931218650238418757762421501912368738931567738351959400498864664788035305469068449865625388774599345937292167749280301069559376970937299362333679384424844734120968718343917155352384478631066003873598048592046729383586403573509141050521272397525707246616817477099239752432381302752021702316694578615422767425700460257830728391790360268393175711547051131399204786998697576093399331241693613671276313914731992166486648422231275219163787238736233869630218822943613293803993676415665067160599389865841610782547210468909272521417409339295133850503850107965029757620991262759145132466127339378471593338268283437605806393067802123479601231841897627517451355987681871569213244761884790785082101758531664997046633340465306214153495025192975393990619992450460596433822380323777538490890659041793212762572897974190017405733532512548298843640773204544019689904938250051468923390278476541834179682534136896773983882652049901176890863648672231221201073577412384800649933362852704083077761138733695940386709945288246806263156014193209885459528008344011248629899214783074898716481294100007513437287123659059624747177488060715131263372092298331685829504869453256950097251980702572505161553541238028250204740221770739223974730872947520890081719359675642669838680061249727376762913582966587385506163971423807667577604406063017349797173549592674782292637253623709558762160726017751614536054255134990466902346604740975728468500382669834350906618428889243431016956105514515565771964670637485965428952624627868025674461811570415464827449305410789925867704075951456659274420786341174670376139614087875689201295479005254884993497145679508833088784845515927481797119883264603063227663396507044166631990137559693692485450360665262665597799624235747985952241494664947296121026947430579253755729497591929842500690026620713745051157623204531555350616199052127341540828120999975189530709683133401968442649201925047965116297817019822221389485381177830267830748668240871236828737663872213757533760168922273933470849002443051049714563435079092453535574067833917553776456520873993119504750037719263014841331026516018291008080812905470243166170876580886889055934569877134905858816071239659745207801726487813774492445545078572091235888183943810128989963885736239702735625493350958715693947082775532845821120473107994353722462921072041883436180911242574340656142160151878683463838032441751159468480248720709219808388376605861580858301177827039552912264322835450909331144398172356078038977943331988364549244982849085399674324907850942939328177741866466843607341760337169372356876889865878465942762511650718170087064521653418223597251812335874863947465325034698951150917251663604818299780634291446507564564377121834972160578242727199718454489072458333013251326380752337542134402313968125048643048586348603764463985179913828333626062753712832785845481529937041327404404907895319532670617406910299727566083451774171802471023344668323077361381238328806910845900367574968037588702464939926569456315777414739268917220178530400961703119693685987147486752355178638212499058382133357113138479155015850448612679353526731500023765813154078126728815293143530258533108467171529451032618309860178219286818511042012229579098155453894234816235811066378025133572112296418181495618634815117541484027488283178893669285921856803759176199841917132816770792129235963294275011329804187721533252449076853790933157606315973962525172695485814756883311999556678140802413037063072256056240404537455457505900785933267177980600192500578462833166955256841623911291383538308926782454828239420763772763759590507993133212450024101931272612609837448170042342585927217762731940151876118029684664335737292967480546561596988304360324043691268670783078852167471965970499114065299632470653915046103039182685734342921382561446921570463203213598325560233398226343395735461587765749320559950345595046481644289312137812560911643439843924182858397753059724952836864800267423410671337978969561006084684258777383167141906744948913896569165379017638579546674074384495207330040111329525460712746851426085073284979019413590721124878126271098066031738807753361740679301064620032747327471422698248133397620393569261015104431668551724643909865568093354400413261010382268146668548374287225949225726754211930704276438670340744229560097892031807544144592047976910421342312709920823084142707895356237998675565064800967660823867131582009250352330525632005242706711226810525585688639296261792069754704013613937314158917506833944512911492624977453803111001711363267597475992796662899205212120304318883340821913417070440621410560722962293136625042704504395356863297092172050358319324053573992125658551549926185631257175691475218475803305739485364636894386756689391277013291054117080221711322079064653746900734051906114454137328936263076680001257203168842096659687529462572732172717720945414636832907503486983506357537357977777971909885212369955301683476534273613883116771501596180915981077507738714612680854374498658134024036606438455577130516599109591765892029581007849623807218606079299796821032285033981247015379370356943135573660119269623560513413196317782291020883710063168950904643902257730230511286743821438016305865757923688103308314957095126287057403592744600270054937318459068957685335070826246652584063247769631065096040658687554782788930582372496146738344239789039950944623946271285058705557332773325273612308374481451776381091270109884945476174014341682980488967044744468391532753975862992702706319963094296175165600143483429922509190073519502574684256460173370846312202334663282381705312147261453095336486020663018448970367662048772787763295273085042002092645829892310872865408729957298401978061830946606028000754999331133212521849742962501233592079145970601344080993270508025856637084695972696408007550498729324476177872473535749981147092904955639304256770739996712736396052758456220154338497855818154079301923431270655494203632322008103410343612660468071546835644561849058583558729707623426885751163614060805719413653197406489104771390038779334351852649306543750930709891901078839245832343596957261080186658907621622769894891081678998910016568419367271996810141998258607917047180638701361466453578512542668153196730039192057696793256134119020660730646511451462781498555154739086963809051213806501043797942787942134111110312388497957484716234856714068539468161362787188599921157213897167101119421188185945598795156976100541865913257172016761342388076546933689685795288427684289690154625807206576274756099492374495964984763445215096183252705687677915085476154918707129437791494249615549050518644805158139309455552531135479893897090678989246854109660143193221053392575541441801350260507527413104824380438902838186313898746797182649469568758180978481666167105869819604610076828406177001172377335957185336728521908252090231151839250776226986386653844159478103557757606009574102936135444661637360204331878434243757849663339890266319040796392694697364020013606745007979882965323819302058579638852976464968479046273773736685552521105436289227117108912765240854223343079324457402692430921500677444893141433232093706445379924614666101572993456869537330791433927826990409923087040813620681558347720321543199515241911588674923219875337483965968744293881177505520918619560016887273021466233222469536270375922718256618023332337850486997658872805994995494060579175694849671542658644043937653602214901276086049230914475832263662194925346205648657136905404170797500045483357845612266045187772847816532495616974533401329200085505816321022391880437786309933147344528301302573173271378463529367546148258331998304897875791311924487146705609029811059573366074985687659970734324607887399055875912013370453362589840292172782674705880824211566378155788268678502693237571984617794732691904699712163279551045794356954958578640881983391448582882854978485463622348009439827617154204392296054005772685056864230924425953241877958291111447314807584573859625127190160838735081717116224062552631370671897934689382581491341089263373330862147684491833531369084592417583497231413565356908982761251383678172323267426630049581090706962557470549351660070995880354151714306511096564121086177625078416922398484569586952159622391278313344431786644364710828511975500330311762315519021240341129269038982318406869862530762421723813251785426887244369297888388348235841804830336450027678433437170317000018197453090821250015623060363018618529848380803637275358467286500997086698295276756464355920732298388922724375990131753938060852994638571587092456802733862281368623620108823136786273341977061874326928270231746771563549387983796966017933856334160429474160921124255863498106178224924222448138319476356347552397911631008179664324892634606112391783772018732989161514808850012820998438840319596931855999098940762164408128315925609323377591552604221295095836472698017513245316347282287225145541036662029369784705729601775937209604815441461474604640013154575563751075621791020821372118212564159437647233148077342278309433238633731143629939168501381988796251877332286030997371816270449028243112643662279023589738062620429632123295460900429963280669014834842110872633057990782930360875426105684194328599517675853397951534601281178522906139421855869360338298460121110245143593673457941819646784444704917256599434559383308780191477613476250899348676695738283736399126795789404715622871535308540400268872215834876867712431177541611114562570643812689758546868410899788317586415630346146917646214559033950565560468732392384488832698141624665882722131087254764162791790167280444009102278021632752491073176040843912462381875731211849206320645038286528907405972177610738617476525495095375633765522839326264075432904659414972212075627561943771062817245687219568532228962328876341974908570399784013258549475438193858696271433444142632956266765399838889934244739408299203103789309024204278784644951718801087179055294491515157518136270083709605849965676879073620980618230371289586382615035510788717070035069936226631239668955446409691574955639911679043473375620095719181381871320638577800767424509321259883700779925153949258489380601295883908286846754803635567530542150409119301131138134923043609562061433291230429981940289760345453532520946167295408807625147455183828558477041517809954835590167409269479011689371838965114732401302725986083296314832096639114634651973363221038874165937669819726424686921679562948343678800501734346144562822131640011490576133024815811507242385202980096527066119173316873755069404675822632094883049405039006769569914511417345788317104828980052652428912913418947991938090422925903135270098308156727689727981079837293151887640592222178427567914744242137369134375825417162218034166304561480726766581924548826707651769227208144953941800951916070845362029931434223986764380534410971144385911025087682638638071500080045214086237030647730080481226009763436376371256837972908532891260905832379845493642485589571618452771325920286286008229895719376071510030670833306897321780917004395497712213635004490262814491094106558803577807180645172751903419607218628589154282950100712029116546940965405806105968266666762904058927378812920913001987939662147421226837111178936714937761244214149233161946098692576232641277178777472652435548269788611972425540246137941963755873629041208657444768599343318029670679583104190689883547792195545498462844202478368107482098159999758999196433709781538910260658823944158115039968502022895444209343838918742738119924576756222197427925591510676289169102380279329364839443768756456055377049912160385043397680182187324770949763134439780876623608775737986185018358366248442900592047799199309912118845766246315914721358410950853437827527600099232919910006771122016065118229805189465964625528860699437699302804255360737610286546225829924512975208931511540519126689446438255978627037124570155000816948598526658996421385458319785877370957621331907305531175699162172379562723876466812004311349835220797514131949657497071887846933349383046904512175293371283041328790485183582586243954707815790051511393697220640251336858438665058967229068168670710746128497079081372040076720375368462581434086681948970952418862914138787591564558977697600208479928260766057736698215659346368220071306690354734166880745234513954220399136374874485191596585944962564431080316719811022850593377892475129775640548878413291914489400475781837552211951286213442749604206287250155082509352464367128398280675961594510665133681774288862561942621268985527203282473628754370914862460509994804753572298632723976654470648973820253375397405283395057603103069109778037639301224723127742089809020108446957571255684662617456715329844230000296141529305384019892823686544825874946945908417654833731911851573336937595195791415801323903707335761466638350806044052393861331443129333976433124240886161458446652106738688107057714778739801524608260340135586820647886415903587675944008881407218192712458929620881741184066969594399315679509528713775490557631722512185111435330653789899289845935950617201756380836783827867982891015077680514216849699827607876182730774176312191834614881871015573214696932545065080643261290588270051509836063039486445100871119132336371952529385105353620799610764458998994024487020329641574135782247492790568255490359112310060238117587480226157295317093237319676112792214264423606577440644938561165914599747413481777217629551513321315816383285616539943392685308371840758218776625846224702816234320845443608367297650753153338387485191593826331842176995228554175626308584687111852901738756506935583704102267873629572994561496484474695624920568899105961016634375074773284860646753984620042700947722533207420685957652138168322391373381085295519188060595283386957042391847089092926321148195138411307891351333324312826062038759112119572629020331613250569833371204089992144277365603180827397450046582847655666359123779302106804480890604202599454544889587303718923713005532623835126911889856806965605860476843627220964519686391620391887487760913743973819258035874735426545067710201042777871975772141691869580067383635252815421004884298429116511454685128640449168661257329217083229532161213529483956204349900305370660005654554385200482763731782127796823844628259705247762249952995897775368384559145338473750605371706115190600266020735705417288166737683295228103037505913538793670567673727331262812081811751579822664721163617757719056659958182762866960783857111666924216736224574803028044180583425647126717008989920716652558120934161238847217024133720920721854119353729891963189523133318016584951164738743429772018161597958436391921957452161675782683771487328211675829673731330622053163342953044009898238866884763800818923457948786102148037759003743450942840313480641221086499239225729234713104039820827879217270054776608379483308365143697134767108802519011561543062252743442463809517200484400319214979846475157707861069825991450759671048330880393136784005733612977418517190533159033456437507567758839266811142816309836388533500857121318544584544044664274804180739773851665975918831625417201914820061622986582832429129578293928163914828160289211698513047916003437937951181302241227049393769587398954755154287925090498550583836686116102006996974398354359678651461767325973521058887254367115467022678911484640708812570547316776459084089729188711391841256454800819872218834821480887711330158163844669273590466275775387387536315258499875321396790134640670013067238738561548818740690643743909416795248139420855837276073761150902740203450611743589146970013751415664270624294704338222348927169069089806173866811756901925253180122141690998722028806555850384150290644676911357903502555606281628121238272989248808246897567326135061125555050043164005074668041315622058192100903757107363457486743609463304514103362055701018890564984877534425784689468981172645555181993294652439891010012111568213572087062874727139930446255141898867599701980245424767327601759181615856548400370685157607456875113353559227039352377622724236760290600186769586564758580877580998015392122820760367622381193837668752974547477416070597343692832764994418992952392142265463149523987201785025190869343899508241603607606051434186727965558449040950725068857642405411598770916532492697310287139188507282934195562400644939076474836282733585011408936763614860016952966179234948440139569167159793734223565587040596503196154081148300019601659841123417086096684695998485624155736585678664463608936748796106049673091587436164420657472791648160793863939787627190162743871232147576212143439403295096486477144884864041971111593229472838439140222299893883943064829723999876614632486843171115492502530526211321433361498847268930794638596166991135685177355185566524694621108537629700239782233120874496834811282248844078179572775345152990886036709501158270559102828746136138235142677045575655876577526558336173658960038160635917526520518463257140884664284499952156887994516743881184071646418000855988341840508761736793075662350297735930935773257349395161791529354479304175154686230275233229702714222508355146244588443322017855112149075785157700959764886678435740607828881011279438522579109133365916541057300983402005085682620684053884024490568444699614027003599431450759173891545715458790798500546996121717029880057135579577318423885330919285172979216439535315210143849674482075509198508133009655709581797397395384532356877337946399837600132935476678824677764976420349703502298977473325324899190591107923062812743087965896641370395166586607321839139356154534427471454301763651598068583828057259626887308246907075125557192202943079589408256675482230276011485505111595526088577490674896289468792630673581800129559497503266173652791658722174958086250289376104054516335312999021318913977495203927678267616289120514918023629475902842622362547538644005799922935271629775484111569177560182962940446778265482210012618648378001884448076407806610974718599206391351215407834431061615449135463813981552572387337722002772375529653817002720576749923743158844166964418589571658963876458948301757156699078481839956804671243587413707076703102824451835452286648908409344005191109578279346923606548818186023632187979117228289143801439620807266499854590122006661718342540977883306150506042688177688818404329916219553377413818092743286131182327454473773220544900339931325495277700009304067386735915304219742693021282200628342557340458554743720187799617596809602442361883266274592768161787870102644314548258577923425376526145886468157969855704796071976838477860541967079652637250529156497896679812043028861195890322169615214810146618635564289477217697326563046924759469169165237990237063727559281376337866524068085839309686717806258156972113502906244981633428709941677769408510270063796461719416323691840616681770308001756752636464015080086745246225641442984079915128055631036734185060992520185379317221122396379239376958716633076977610342678905189867136587435948220663843239267659163226123594390961515249669928432791778004059812557527493429995452770520799470884270016486651024001660860953948692150553764156300770325068210689698251165582755259551768022395988181682609745233459162521449191562633091261354736362230006156238592847412759765215590183194139268518966326434883093289588194742291780690625426096194030013345600437800088288589055251611597185272087737145332553417499623768015898675858111540084543371838548947231093089360979681510998309407782177374241189202714718811656308226132947843548666000422022048123896459430297471818447136296425930830940270045552142216158703005551807310590915672536625656059245942404520920995567970310344031386415641606043299902318141489766958654364719223146353807318706835572301271366016529692958067904729452785251762331371662823301469143088593756205031445462012721476443921492221972329582613610300923920848199806128722786627478386201766070946493909780769775301734932193191089642752572844247185686170596626648027356204947711232608652337305083239548569388660023124550480035159929831644018483065885340251930294241612465308935085602434062071029536978406740221279097933768198296123929285394841384941577026344243588087431537047898204079856025533055165559530071530616336937254652007685029405875941561081240099894024574900996977104891159872658255689521327137525941413610702772642816900760711755717967393850545260096530666733621738268194468902277604040350020261289223282050406448214316322650664218306564881769485607549145549598266842416061120588463007111700799006898814208726680429797043152430244516932671166354277700782284271474346282080272188092742415970685815232822507614732926470288138799153066200960018960403579289235396818901558544344819493672558079103260669207935351707336804733682926658663031969943381220469198324115503169204995933927962550799062192052304067134448630040648170491140093525217911583000107960492055090698133825192910115126629369397905150976623547881913849549688427830792392360733984867527500329982204301685168454968547190018732090527739675717756099981577010944075717574115784074404605748846367035061029019031127899894726614705652337773388701401822272959156546636218458022227157162556544392189772013745048317680439007856335144810976704537251920778520941837310172364500571332404545670582251652625941278456156536985367554763400138998087420834161732777035727323710891482010171866976074578244582485054455459319025851564454224399207040040375834625826857061504835538552145311413242890525670848152012464371016614272809909912049065203322547443059285145215666837750355796289489844797188130007203490654839990330753491633680783821574894096452335164774340866848310975054429094653809817757944983262411578938432191604026364563891788733826998141782280521032726841949692890899067007331165222491080827253551396748408881717529709447586622271317028053144305444411494085925910190777744928036965641737424144297076877059042459785473874446252962380067517038536370305051973046953663559296796518578129070857710583706336178074974564861694989358825145896255925809772602423793008196632111775976619355630291322492555526224702096654429117188312388158880147112324432573997020472967332945638253200217790392310660819665725606726000117511203570810603523675962003431853647089081782591041584305931247630432114932804578675318702373002090688375457719222348562454173880486057445294796788946377338313228657944961053235629097480699876964976030848086912231192443812931273977198565517789983703631301855913438441798059109819809700085084655631223569645870857450928647515564200450758070602851686905660038792250731737905668442565301403261368995382624499535957386335001509676641003391719821354399403956525289805475064467224381116473331523930947809053539596407423419394750264168924591262255999109503569494859061203326222285930062476712147157874999399492199948897620455610578538733842775134020500986910436744027508586067755673977837563655986611376163679859295980037665839785266087372674999142773808899648447480549872873655127207179002221946111855920366276143122415730909435638503629953526503599689339845736238124047868685625574020172202856540676197273287777698447091750821124727310125750372215632842982153620858695756946078737809814795898693345814852560199013751589372291272087069590761117823136027461553173808102741666009357565912668578278599115169882468832029918351389337707652830244996018352235276165656292455301280434890002486867131877123333208626512546104093892177598543400787568258117451828380734947815816990618446422130973625673023151400972547785597753453921471223734316268284169778768654111524437112401183361196826050866336544174994897038804780941743035786790914962044768266212525937996296271962452449928620869421259195303785888011541294841819196052972287833561037881391027408433184065937963398927188911324267209033560492109276539637137139870001542622523084136141677997717767964309826487601210897176415471054058705412590647512177736958001356708134763835368036336782202359105025957631427308016308700471978133980413944600799584094617979579503433125745665041224875675352220980464341449285814303073029011310067173115083862086494916187212014149339379917005185670278254419623094957785199487897595815111804615152019629596316175750669990329034428633278297330379572730428395982898846716906316352660864137206299102654570408162957366307547169868284865132738644206285986150170678843989480562129255393570999113440742572061737139132050698883180037728388573810741331039601263014205097390531778992644008486918285074490973627868329571955522777148274518275546678705494682926060158888002549499346626366684246274307336055848775489146603435956274763142871190346360181225761570466116542154829195077560398126327181959715154841998748479430319639407201787441183949210532541885846858566192326136272648076504825303022317290500603019545238942740713374181240983221099199993823680463018340337181445390128253823571382686633665408347038275233594346313848427669248166869685616825005571496827332446213346448405296986001764554458870826904898398092078570792303348271930798047718233975417001409200238459923635472029222749357587320318882029438628038783512300598133894904718217990155131654864284387580317247998425898962842661327874856843140701863620365528908390342624718574329735714735256278317872268174448973103063102315554437746401122009251777728944803141082944646992728222948661009957456505883544186701086704011558330656054603944348148407817709059818718786134629517044403585134774937861587203547523254511001125002911205651004182484434511162796633409123679615525827091631395432728901988345033929851925237390520736107312012928139735220900752076348442053910098864193325771732817212059681292098396921499451190653314837511735260737806668255175333568096975897649048987082819174228197970993627385488526677734829954921945743934428676506383293385065876252775083683396005104560738704322950262601800861012165714708447275337174965202870920549420697474754783185916312591646155975397340966189688356622473562752133997896711338940243016815005122091459103257451056874565935078081290729526848864403191163738992589128282098678362383672482738711747120019793697708150556894460557985403468076025265848438412319410947212649217663067829127558631513718770573589366959355273251539860884574124558276717291037102607050615418260533190825004295360842698449123278255187737352102144522506733590100013958521377187968088614418757936056763461974111436286781765728487699543822514202731770157126024274407022366254002914812150342048781201404395874508614677102757562696606147982932619745712948320759314121579469991682151202360770638756644782484363193572614700309371258701308254517818210798886118798143122168536210803187945503907583630009587763121020176870747987245556691049307240582010840648835334827214481828451949115678585762824852169748474166835356155298886415926908690809374219517691888872766490001618937519896616735614429691158677000207487820851214230570413872570529278936670954131490527060772653364371623847011371450800875934010033610325182563898942411458447520858157340644036794731055859689650189197864728716773122608503819374504619638357242362753672888253658850513002376579907772989468485558855811344964013529314294788158876342647242734107810762217618626784086742492750338851595059639007931784966677822436563268053035283055954982218667664955414319270333959524789846444056675371510575016517520995548145614885953237308347141694801150199537417961333564002288668256570614087739198403188675047129474416330967862824404870704025083980126644564005785581123637325307058486917008343814223234406122764436179041196254171029964365478568198478782164873201941026693698044408512323296540412595861681600354971666783733691982965976561820004301868835208977378317546258491451671147596958795927407579748670586078943649002083289554455351888618790276184723158600152717737081560141026094273754849257744873159692770264258345771035744488550355266362204464680960908017284504479975183225585902483331121051800640110731076842077771824995335946795023232784580066981826421187998425289084425136579384644063615405312972310287435180778237352861525129422674669717016874778614698936258664792349957551064830459982270465640786986856263765907575050122088542602106883254322239904542367896660955918909414654680633007396051367337498416116037432649792297711998108103012077583266099540897820506892956553211670628116590699539851811425948693699216574993264195277513521110372427702249885120163227097044334820969901667839654027105207977568901388276125389855944334722425346932653028443613685373868292942158097505315627970795351158817962018102356957308147568855503723211683687379396990055832945542104646875076877180712687145529057375928704637912119485471682455591923718605263655410465996024576341223800494020466130841767098650990000337114684271020266230672688182339810477448904948718215798046227122524332519476393578440591979236669192517463225363498709674553455222069601200226856286680873875533626161860485703092702057666127319858299799685536961840297681674094767816561053008927486890114336042055268435835959622801945287548598833103723328371883238470274392759969749638091353175076722556512546303701187193863348081690946972548422267833414074449240677527113935399235464599001024536480914496988518454393044310460970781278455291411213555995477484668388536946492858996270958853881475373003832857713822638878473579429643486982673099164369534121226764127895308636754903776453891036628930476211206244511069688485551559171391926539457350918578466371299585763836695194068607326318907968202784807802440741782802727759313227309126893178254867345855717054602586824308518027867590773803393232790443521845110633344452270064034758871453888312438808830906074682250275928782669656359101439513749368274592729268772812103232792118509966978669999781040434695530003234671940805618361650254307681293429541583100138764475123611734309408965799577700756575462677871151800413186952306574979528554734306397273738109021330626683381988344035593181306333670653792963573487600128915071611279286179229514916341717790780431319518123946123600059280863002998101263243777376057134116999540864693384228890840378102774215570595512240590348160420964521441446066029959939126865153083328353049079356998724805855476680701626069455501039721736256055155255580823588419130454318821883250474383365570539042869875698651340670832596331529329376826602289811678491108275517565129541111626339213037037370678713455883421774346359062493160755937616048563572340861928850313826830727785894073128967214161383689126835402700213892813720497209691380821482770144701995199741556887556057433741024218457906654254109550719299941806618953980776099826751851319297020466348497153467770364895801106572652425534863038885865272443063749774090451218034437739362947250558342705066458921149660441562733152496228659090850243026380232460178342522638623931948353435964290607378322116936204035524812289314512899184587723580565434580037715785428147972684950936649678572698785729300599542869069181504157822441520454657157999156863425409045235440442032111800884335353768293746326312275312935380690255891219913747419821933586901779707837942057741137826612723568572117859004921713158759798525487816403214832947598944542968688283672580593836525986529524260357271788497436936683061254433187499140913798706538576024164958957691584124869384292010341504704528237519530818472081649689992549340862665837738228620168825519477967644789836991142576677471943060769824179752756607931369560041146599437806056577620285026228782580752681105633533454497896646615053994926305805014400998170391164558445009086735096945557987203024099785220652683122022197477277041366228174353883931060775631155770826197974672818341735023227885671592855964433787271567770664351922124942375017556345402699612356349243619010737747783576444942077098093173729284833172004000459182874204806519750945160824892005029540957469385149622602209071469953037402260808792974961822737267390339717103137165078912083619365079873115753781888751732356374062421217249714673159820883751709244259162507483173411359586878355176875544353540907694546846065790347943472687661413102510970060899894774852629809797025869862901270391786340511853318096689842298267701924414650565311971993826107044969013834582662155364366588319719791110236287211585860555993995826333416687602517564658718604022987048658184061221557156651910785805451630154787987214203352088078823526869165704920056295200800079878703174810446368595509761914917736169105420685088241113827801410392261106910057118924368495705093680687749256727206800295027669352938783492008821730822968685572357670225242996336057966315417637925379097117310020382802612139795526668393433882940721623432744866475275301352457970619105079428096253487398845514104759963904248832476534327069217874582195164095725927730115106620719984058988008472066809763934327737025556245580814888620692490236276211246991865016579481969021052166302967431837459994188863652009476771210325923299869081330621898122267600458329494686113018525912532856453002926070359638662471775697599364387155853950381930536916214815154177094206225752667614511003671525178803502347342961971561616605637422017325465408995039525027622664624191262427634853979379255606712664903087583537625810508893806082422798162781491308556897670760471255055533902149454008557140725758380963906703039112695086571791427734939170177362155764146899323907825640360168886848880783691650779414837131500255459026086716459837825304360347643490905878121598937134154212030978939167116159887316034771254584689445191690210326745596501020858138709259519074047559677225327848762858686044831556862582133569464751706461880802339069796264042174434098476548865998460878515773866790172819371051701158152289027664746469415317087433925391799800918402869112787081129108952635391499636739287348179070389761224693901322220114268046665557886014156591232984637831618185811171203430861158685998299950899537583409831296355612038702711757319293687144454069889559512822655183196318275666504160184484309418400872455869316179463837590135447605119853139065457995397850459950392768341953651704612008956798598640481186706151703028061167098875181672499426475597314368099973922940842095222508432035671517109501617549544809967701919321137101714729335228071769372873148217933169653656965995214770077507671497761829861067161506437462962066733682740649788349480990187681470537662204733053586178689081508825686452538395302101165058083172036796489592661331426340820094594737624612666113107305788604011879452831158057734636824157542867357569264043056198652853119488173687074214696129935319499045698264301002248233957444715308812185851133961086872600482298341585142876598006559536102254917221719316388281245005041146266398761240850464238808810799678995417702029027956796222320044721205786067290221563352592665308458309411882596047655704185779237237380685870298069347287859333264074838050759711737372158257206869492352896561731482140778234506955459186401799735195432436699897663708436233171693534499479096946711021581512243887263105972205847854050914886892670962093866126207366130400027004348609248103339009773951527833782808691161677232636770099214507176018414579649864799364456774284129794510263973051942940480012843043352664946018039912030548217390376135884357605727873645971883196992558677197665426697997111104978383387107712472429905411540522015171126502095791024495053092444950631555746782464578192880298441487138584864331311013597940120876203554403232393018158861485164502741531824582527169744893023655500360384682788192414306123842864377278048389915845128909071311486041077035504629181578809373960597195437549478895453583029064313714686689361833188153909987902117369823655861380308161809375197795818423741522056085572075335920831998282314992741327980367469688810395375168376304590914972953510337537613869834180376841586937529346866358582056170107258472678846934177215258290421082776681556542219001687909800421565780138550500925412270474283357505137718396872756802424169607199465447243521044160683759775614311923773384725564303295555193621002578441547515926503289759429931721336049157005250735047184155997816334828215718457519793902665533427289307590627725432601236950853261324209499437928262032458919638834968116490269955909564979179544874298669474881876862821952449175176715217936513456151841401447991609868766682809649201528417168860888887763968299070103486847761197911558599324557659188961091237944031180531833593260334091336469237644049574332615353714575368931628998959550449984633652627815026993920836672959258533234846744884022226151469630696936008694978550247512314504880742032336527431100915228927487739023758495420401638756882643760655078491915101845971744761899675781627276680291037892848003199367201981412350094573083001501886406667383816890503702833451407245049268921009328809113676690986906943769611973723309078423614217255443188979386171791232673778497946005921698049331521135494805167162330738693308075212699261917067880851987212405885602678900860929809943460774795370801640005679149495697231744013835176597727642918495701522028349355427632067079737216603070143260802386054731198634766307197172591624146618822238757734897974517684400235609654892612941089005304873935530340895990435230930485436892487711747289720990862233742299593642312851587799256778991177875275025853891105385253406049363744605074363456864197131870535964467322137414788073722136104497446483407187904803753793089665327324156889920147680193274923051162381028937433972627785539761982765796290847693589019914849653291547949964862080633087892755371721568389671975886937296502445031361183298071201777340325069904973347154942612767240301306596025722905447632518272027200786778044123518372121455688926226007699386354597629421945430995584995840782833133156560238130858752357698517932187751038569570698965161023117054552774129118029662354386965777525635207544961529945200898854514418588292503844157948987611048694083264345997282486847117660071716577148818189031344750772317211130781214385260270193361292765205589992445948061635799082639063016146203388386157474506794809681342678871831988542128011353141666178321330584228874990112679755077927803053704545891298933848506261315425909011999553340572857368899028916555740511769644338357963260851825691105664232901054953153945937278501058142380799683281630314137623745728647270866944456400818281449002529088647533867489084522904678456563197500578325050148357161989006514095777947489022659318666880475632408514742960823209111933857552381384114669097413967701167911776113544370670321520831249445941423112286474170507511694865514279227476421274914758848347175472141174302785893112962669179738552261755233262639795794156396997487969177844857941925451111211132618167257186327773355632319518502387447931672914983924726413183230783947611253345019342768258470222380449085324017569752583021698569329205918029507599125627969018665914421612322016435588921347192961680181365357058764351748702775453014152717801929746277765331914513928262095635346699510482763128483432040299768881512734708227711013337383233608423585134528055110030900507661781211020513525214535068454142024973215188266484421727809424207371208420620577704546060263621677536179711893399650287969690079581911678795618806687980622113741009715859614695059678716594619159789964323807208718071046788393501919528561519974647068241044925020707611874636471417675029826665292144541192737838272620789837458558016713301426817981444694623909458224317032638569149456674103765576627412160942055840757135026620214630320125831082866673255359825472859651374275039238115730451813087955525835975918851022479099391807014790248535786591095067968375076361076869330157767788630927267003094527176240244931350262362080556059342118634373495075125033550534531138342261064685856102149779357895135463860532071519339347044982276817806207659047109360212353087838211531746842368492023083586011338923036984184271180533154900084200748320083004261165881697079586758296980263188119820376407352903632616405661197994253114012239948464984811240239162690657911275783810396697059219847004592009387652120450455687957621465566884140412078809274027353806547922679409430182508475504100169075629186128397388978520889638519730286030778111191500118439022229286374338048513708872699844469817739634388926847768685469122355470309223589225743195702760376105125952557521411415038826211622200660723807559295986198306554039324471400680593712593558236839895000070273910964097962376375793734906837824492593277290777917965561770192106310679562929127663210307022415789679906931209705785218856643713290626983736856984531005238497127749452955908692209231584891876156707646409256411880295125101441459341417478096204778228110447556202413778750834383825117670155777241397605021250630537758204062900280076960501868530875910900549257132152308350352323001072450074275272836362879912210737503677272161849501710799506954957642762443123075816407193637373175291768589628488365746673166372850767970425771773285960413092273601828711213980547849961778305628405959681292273102423837982766555242251049211085798553265375447599006708851896395257075813982711854599629362264736127541221519202470571592142854460922236682590052948716164675493197071862849462155543101199912159769515475156346099394981482018854732039010508525252833635286426042233459453286193622671344129568906183126237891475361005825942123675031188377604628792270386286707462432830371187351915557391431908279600623126261446908184014883772659218983993953504868860246088384251210447918087794792570246451476580402508279844083330286546933823507419578092593077948247764142620661077735420654293467073105927037195158064787445100654493066417276258332552289972224234881142075633057233952755156427990299727803011097730199355166238591754215110504889049295325715806341194815134896326093878955121907204163565292230467534966257949396506580313598770380066523384926166000128305302792158703956330613368189661454607953247557309123235517621379898138350967824825591462305553092889280147760333556479956030466110258330145579893802061309289294288313920301724197391264735596364896432738255874716813481015507132196358320815672983895829004875432077833305835494463751558513994461816994441083583940713012327573269247824830763790160468699353492842090748801064102097882580073698658485310203195778076000113575339555178237939633011942346873521264204603095735356243823988442222038734339941825473837617022012605030375715321379789219728910569103242846907817355888974996580673533652523622201236786686830980827736405928196986316604443644285215871939871672337640008941124629273796474072677202667236720036452649910662988713911081120548404456226288942367657915484650041297970968736312859085319295169490848385991866337636342105867908983654496708950752003935400803183085238663848428494610644016369494380215597657750864158432173757489233192198656421746668346640584710973288145214254827972468406709587931987059577079278042082398536755102451032255606983462174536958470135403001668991429214373450815430557619377221545639767119780233827193478257029530945569677260299202995128453023322313088289844290393420031764867654252648913111657844435222227931496292777220255622622434154190283423561812412347256355474120101037824613257150545860696027834682830817436248080795079131985659732975402131262199336327989325753358687047198457377553893202070519522857153422946195746489559467253577345923558243687039886093847973762320195688440959985963268046211665846900256188843787476215474521379918935603535945318214609985521814552963829334881237616086062830128497450580919157021645393507376415591557350130938304290137535975259515177965499047843966570829526993631013495414492909114643602925726311977470660458699292388324897044062516868892836758803997799246838839055985092256218879310456842677037710273837170286408756081863171676180335889901506001029398857630222439430938476106541937974964691316092415299876709351733496781213197966836631579109703203652519610423810201051497745886791613264419787569402105223143233107417393690912973483880616035904073537716750950396018942574949102993828901156649668026739898128560082540111929882601967258872579595522863794243468294088036942625504428524585862787210451678227964024904175780795763955855542357508688131540674521090534457580502882345777156015154735581367937494218837628832009695540712603895836579523405930119630047800362731571540502020922196314091648246549386341273814633562897075832456410520883477073811476350049390699867345002362015801310545145309583674251237157986669942452957648925129784188625834522947908281243941911765328695207811643607087272451777518557997774665486371406863668846713877429700506641965529564968671273494818275554354144955818279624924175859156137380014922188837227514535518239090245718016013440167419217192386298329116378615136119369359509202402725464282046664708754317239590569003111260382862884632707824629346556696637186772625925347582502866225657084780254684327154260146335501644951698460291036118546792172456185956170367017027518333946757100830677494716376525996249799552131165975602608570962883500167511044450924874169990636311406042507473513451232576940984597057829310657885993088171455090810476008369215082088081954864180944291736695938452209311061290994652832626946031841167879607580253013081986905918462990535566302349072270250363297149312635661021071981316917502448490034072868737970477104738747433846997100768822462776497245289319691274084059864400899950010449373743347339741320397524186919125432793149729390119742402662522297132145444094971660139708229377361989608741644608138522848218147675421290323159266163227144408019018710447763165411453397797261810202957538414637881836471994227737472078869231073720783292287371003558447549668395608255194789248255123250280113495921278919767720994153830647670749348074724526084639406191386150903710616005239914092215137076022182821851803627528773037344321181244786283644083703114825311818213068330601899724943676140514665693221022965632582868447457289121214362872761027317513638305150567321841735197844572612944426973039155425105944292316110936093855993592303748668371193719563284292703842843179274375682619326522062447263158509633950527681366053840766000359607445514289920762977396895005972723054397391551102087209028992968251465463265199397386569858935064454627669153814672882296778587097085931345529852304549199265027712148842578337044277617352721427846059439536357307022914787454781883052979308704991969068148703596884713687232905310968928602254055682287071402031818175354246165089028352395565679872712485506275135362793393883754491509421464491594256455676026495653778136114454857845420320575332039920513058967753987822585695454170128878933626385060750962915658353514442942633158711058590262633740451982947052429888836146613858153858377635099042924296806257039985605113271699338324494987150403528355636025786869866099989592031195758966082835651204938708134743567082308925699709071752191342934007577569185181291321814310325848302412884445657258306348794653586880110967686770920863870240277876575492570875060273098588654747008973259055814228377716270087949361643155135965146915624284600244433751106944542795320935307077573082388441791232969226573092972283548604180740948680667889008177638135258386203060663849954551807751873672700547777338412881469496629494735836224032691666753743824852248636672309806880401291302831260008630392235322222174046163015721972435839508961847534110321728172144348451534541764953555856296327381131872940161775025442136631529873886054433275262205654240299892289836946895910580153366819084260413565470459530584232870280427871322639400912503752366976690251661999277161918726007504954583093007527613366470726724609068703377130915440738893280311130204516254152215369340413948721939426116199865723799738175061768929161095972692086821771845833854253046875291246451092814891841506791266237991147510321366212391937017152169460877616699323977449681880999843077834484651326292967111671679964782363234017885017417204549003495906474896367425890922478103403908305248974022277409449881198085675680118987576552499600116249933728522246156641063455045782528566194526891569298643345345706812283949866027006485405134678362146289239207624533137333496642832791318668666158421880185113684727788656031440905217306556967596361210798184266853687440862454653410794439533763468634124485838033168293266282009027023511322623757871309536228223981079700115836180310086629791115382874969889340039506916046468005175016469940494602997367260825415832940893500562757815219803757982459723043962231019315755562083245816191135447356477275565336751232705307560094360723853943570832010199303797925750423433254045270369661979794241612315221033139977066522797514076649097688849052712734304021871277650425737977185892648248126441975282326260877900295081330751761843504431943281127334903459336695983178836132557257588242578368139354309580730682401408590911487509593310902572938044292589196653186025435843371932026814471480590740181539227966010903525086587549649252586619916082181114119038798769950872448992966099503661832782865761558103759309525357387266279419280706565436725395092745523997328916378051349800144515810944501632469519746303114410083087143604476282981560521488013565150418854383248884974519740585213918848234708222341243328735025796128789274848965925493541739892390539314614932974474730928516644034587793802466238612216877481346967658488697272599161378596989950675533285939271431325380776399628868693495598084940256514569521570386093035446091897625354375352966931760883250262940927967075550576908514669029152910110632472255189643895939044236027208359981122326006568817995191541764230068367180917500474313127747937595398785234152916616765731556966554186328379002266846830043718165460652550181134385345947122193256363820275502069414048346774649757846646202309026144437844355285529444343646895295993294998521175868579241461342626322805653650943925998074757182693523090565406468552148403166142261712836866646768047428956916520815859494995854473279643752387853120013409109678129431362898780914495904399674262786715607041046340779798740195550050756853983032326505752506176273482478535517865999640848161038271228530892877809871592069821613479911970026109917412637095001039814611761807013815656755737459809526683788345475300951119625156771385518169747652287722765485837635364157493073864707584429541525188126853544064873913111608903861798944161387808370990788229764009651968698842362702241912772428225677805288068995655078313417952862623772273430069580564956272489104940360940855744586689990996145026651544932512054775835319244688127880114554939972986126410554304656190568214378181252326908837329215983196795536417760929784908110713445762445719204766210807370677451697710828289176735716202138666189702141913027554616288119671165166638921440847975789290871644294483372003804677105252824832989962536506948633080982490875450000869893231738908930573700564880894442766826337248135446991128048815960253382926034827550611716610741971445149175752180666072679530415494435236032949100016920415251129893961261210579009762122161524729511021649554328472422293055247122928438988227412068533477211191328549858644277381864326722712808632266317107234952369677408349091447101146458301799473768302715995706396532966397867411870005316814890391702775327930611482203497183587800907246465118734886361576235650812107428914935816147609809878400105140402801158921277070017534052866186332992892598675758788028991120456803451186058033285113090920221559639916694537037457786251382993104200654911809332458310495129134877177505465851249045629902524041560613408948381981821933471779578102263212460332503835945650520785325878959655189264114284405686445553993169481218979630025972166776551349681156762163097127398948013089377795397814700365923322058716736366101397621262801034812033949970336100667165517267721115871986507648055281569660740014607295634104374452804457373847240139801132340979242544683829907325457321088530459829600667559563714519243493888090494972378861607444205452438783440827688199529501009003390547318667985988959323399452669865324124496783281592892193427576507359372883347119207407069592982234667314412652055018421809301657091113000282908050985075349671657536794864058526442895629464807468944699879995791301099765623439973574713648236121580043950421946908760050386753876326854682444455312188018837425097667625372622959917480623199585024919585933732563018578792457693617536778651738321941758422552252874191405213707226097928602774185094919627823645988893720192984926998972783213086160002910746720755282225947367259722626618584664509945539548626829848295523296225311434844160811122996570260026587987565962620874875966004537544273693473900450894460716836028953112287253627658556378323369485824731032961552345348119577142156811700380308945615107060807134485308894554706768481369538374720087627616888412835950452486609661496837858370229965746762204388379824654344876287800956333735979518880401380054900602625647801725282463068137487778895147252559684830627953758287322359154333407248328652880659131705061409566208744780371749717113006206405553479073523759387654743999603534905923908168790973255677453695120276592860441500703881507363370312461877035080433858897020653434626215344501747370663883982941999228376381122886333029643043094599084012401463817916791335006176232890269687811202148098442883010379828209689376845018417247738950505637035654230883565542983002990901459045832968224244449565460182874077943768996904918133680153721954698386047493113782998458798247694895858587203753226768955631613752431514972548675232136901829267172626266253588122138878563361870892102219134053179937399066455390200843282665218419738542287880955863401978348738333941196772155598200261719978119837644642337533169154617185075918260050278263640737124348358269295183960468055291629417455932715926573694149944875510827424645579250912162849855815934587464217857269283363486657749612096069404012529402897204695466805949335700161038929470753426811973554996067438441806596700071892771349196471690255513156245299563894212812552079480398124140207815540907061796081682044854580632298301609959134516483278937698235122534964568932102851449490267987485867170459836592658180557655129760846035398766693760768654828803573619084050679446223259384355411923711907665015986089235625565988093251363834889201170142355932999590267309210726838156539930362415826237700171770689864222834163314080667233260746262779787738694119988256446713678335722600114076795566790714179017228206503742467638765886793349076031981527264089123485066995920341629236023124426575024006726004978748707514322684200706580273839901591217234017676635444899817785021885175393946324867217353929082996330853704501725763346538595830700678174631394301149873787576026369714145741692957945457474315408239101922219485040249950394186153207080743728654766101205968052461610554700219293462027621585937050210969840215289002649504647729088228850113234901201115481437745045346473947574647582972137243769714196509367138707220522069720110632566536499849350081205865889186848424143070546196615427903180356921276783472916607747475328335714134758567173254251144506181766113529250669062994816914377633578109241818484820805649183261210851344634457121273814488974636608808823494563984578261201209967975062740942204298997888959056738375754624944673982234869256993146373006479696786631761874141600253944933813754241780809982406444290184626169580594749337865525403211366688002342004841504535352065923663743684056216278567271611247671703958548604513557533284615149204709814028076070257385368969674885062524203526788728251482593382726604127514790264010643351589252910285735950581383791335252215048745000906414798966667967119898846236022031889697388958877355899281943438502766965576488450355797573914406503292956800886527794549194674925196375975392222545961623907079949929469907063931449564468319862807377141190207636366049895405481240432862073200905203989619557517322006701850139032551498450387364786590612328803795809050379471822845807479184632172246680946487872971461396318891557406934192114013003573260685201677228673517462522575172792189466748316753787274071614175002010328681892517774539510317196661789455334644890274293661710759583309929283672566137681621536447168136950968549719801752926930027989314072346830897190479453416388218085695546353390625750406584754654604944638824286379506988371862236114232757496186153534415364334793453467380501998157620712677746617437713957582602636664233300263722167889987624712274384793514473081494904643383052282596368451171494134252559404922605632253665841129277940070849231387185673368340960043213555913364131559475831623228953082796583734329499929369761737090841821230443444116340435088268857097570358917989271755737613879133008507736033252280751093251544941536239096429069309215515052969820891747578951855463522442928398430093400006380566138766268397613187342443878001648432679931540936597486443064379913677411521819597446419144654687538490504713465507367608742748723167581569053744906525444063362053717678989517252021857061976131974101045034009640733103839411353158707509216154795105276055155992968405637469740533377858172401722872738470025025091401809079681456320589884704028392319207885914200545509060429861694010827987512116238707544822835119183057085072992116067720100673782806143941265933640440060261036124472237166630369053089629084459546300947281786883761627839603746529199314066803749316286628359545490370508951083899830363354360726645381754483291997113289856838035095155939688444451830339824859074616483469276640327953889283735895219990638352202231691088169437833368142335962305995946918331610459983240067845694046990206650135091380317463750570745705864865447172586437214967699182712747305957415927996621166666677817581187741008532449590640043646861547729423278630607901838759589482174977550398021381659973855462230977712836689191172057379692824536646342167733629842992768856339441674698798274257631425404684361425750451887224483843047815729004167493379475449371443085141599390538226791769216943643107185898808481939240726681912157828988210485501994243441434292290211937855508384152114444271848665345872609031555202115065714605830471674394221810036731606493806446415570215594574003188023424013465635396859825832502985685733267111137552858302083211570472150346002855439890143112030007189651196878207903598206630512355246350998904616796642593398863464993515868054150218101014889847150916562370060410662684369897421984002815835145019173788665359774351144455400266213745166767980160325156527008578951099890910446611000715836146996633993022986863511589600782219627826970488155521818770611708934441327452131168145039875071130824825163969757458589815300039960443769501419077891947755610937482431948983265466046131301099189132831911500282077433607834151222774960627057499828637741594895618969594815168031242047986830321352680420301254076663787792328057168115606825538104994985501837803227514439296937575709201061688419144381714366125255702620946583777077809725304377623601920499316335690722807737231668572766901153150578055418689077799892273386909365211147605201494619567309383003816931417711866385270906594627615253639969786404898688693794370242664436605499738364327059273647382881260823604698375624189039529909833205334170987991256701676238852806647785982520162930911788964203733397476525488639485482900338845032128456686671317822792059722543235257372722227406132660648729674738664220703907795217992154629960440994143763440735414051340128105422330881782319533219550640276973215320651042523353198351532398147809804530184831329266916207456630213444317263608167113225504781029155602009007071512662757481118449099212140782783803922168705965166315264745506271276213183926129145620801838294974986119971845659790686393680584508072039290361489798186782629252916120802565964850027265030811504490231938128377213381090448884537697439474738087708606662289690355133962546853075136494335367943717118777304234683528513888230715425952830891336422653807796269747688664634388820933054390575459350918820275072013624763679859262037502556462931150112752882441089644612284663843724873763743642067159897021406029384244641524253621141830187727707290866761043200880181907662132994710191091397070374375622739231963140586978625678519506547393736677231335397761177699108235033417635353268853570735233595718231118972104395886500842614591876830878544598608629715554812287497755194446348090317110012650083260866535996366919560577671712881575989033220886211970564021801153268919377374257823728378351519858134993886404480046679886176443620482164654344691728121224888913926247228904016080974776024245786373921978046258483415071871446183048337531793023240903188031937687227892526894895275335675250766109117939270831684615186568064746767962993524591162347733494670701496767263937721050090230555470922773001098028739556361735655953684113634988952986167340260541538462297889363527173595578438225933883789554586415775979310435320276301555649391384502936460382654324668618384353725253629591832916057157306621211255825813852535266560365531113344066952549234548938815663248421654640815147967230514316332195046341557699609080366360939820430446712133273082650523653534946005734969058338195983293905466083442005937835973469520613911571058167678701618215492664139159658004452573598327557397474033573464673469910270532646456510606956001692834597540584552583659874434444672107664198139093954256111629293321886799679941622239209461532140947055351134639498480000799959714871745777498880713188566517389253481168920449507098557012550139860248678446538674443693748047926144165831140157415649240782563546436028458727044751778175885796361424973214570184900775612882232890438865290047598245845435859267671118338280286953908140482735603174118570887421273290177818281920788858022778646502915748086391314814564986099002946787130707058780358715071107493215056774542139895369775281665233941433068194763139779722517927838392394679097200736972488120650590358010295187625961176781699327058494798996848155757456401550311839175678089839481315427038221069549649793917744164202587170637578086652876039261329705115103526670627102183032395173698864752460212552568114016403804560939297019214780222864017046412605218659529278278678782878128264908466476644049330196956103296635896533015455766605732807870076984020184134995352392027294655008417506324407603256896784553777121742617042985427087100819757957280553342772312158465859070895034005952241779524088074151094657554248337661901688353302557765068401662414456594417397377296503373563406145554202389887695509052364652589070596598930671964225139133051309113285589997117450676861231252678064897930190276736190658607715689550558179597139511136626122797802932458674067228716156664814771676885538918587995054010187448349534495739428103776096605671402813710906846644616009066244036449929434639665893585402645198724356807650042186870830355289630940887623962350399750558883919061014549628090947665800053452733783960815706354101228347763994152674039413439947190468090592873496916380652780413353037659612536996083421535620448335674112489176690908377665835322234411414812424916102125425295720167294955914326574225505711628088432567709080500694870595067551982159246801848827633283973847848726234469908230242805889796341941889674254160939152321045029975379844052268247150994437558348765660897003030585519870913371674780714668703995789442658017626597920993763297994899387513224473129234758366678321291782168171784372947674424381778351171860702709473690615839112502733605133969352741226653610180881901058959235300262106297947597822244044696626841876008531872422042047110610128429563826211588797845038765437132313820267344741799833203743730977769296422264448876512273510228068390775028795601679752660311820509846646278509522845806479662158463663822228092436671099144432284075301216633786217015580886311970995997475881688332027602376899786929460115480906551625787643974251943558486170696237292967202710188871196907220836813067615106566140852862777786868047521243241985631134018350327500323869835237473572425204603811985698160515739607396320136895579517162925528711213639338524736273462350256665019113939432805476876479702455654486324980972277346424730758442443855687339385969114424096073362966518661612580842782176397575806870842080262568616863207073248569477343487833085877176287765258121201497394958581914035284185981459752294256394725226812524391221233778741965391389743892292348640724126038739697433201727270303984282361031977173790339013344340220349934883595205112037598193943918814235647653968902743484945985365836248136786836147481093092641784841413727081085934763651397161292922599421024241239777000157037655191021453077939233275790992247027988592253639114644247576357537479858195616825875157853529385529700084785695820205437442362486042157449755582281387919485976096501337768944597247292630018606244744672691611559353432470530312259093670624508012320839489426301170723002194884387587215344393500429734766726462845798199163571501008464160958722434853999259287909675782094142958337888157148553990015397179927917968139737217115199135589788195773238206770800888909365396090039308920591679080807855003197451681810974113004203312826149887818078649014815661311140876918061262924685187776793479272243471638611052300413989832270960511837579214162300493858168371946652233430485827652549586114515713082052523458497205131282774901117957876947683652601494778258008961363289344431677509571079059806679318163679338254393158356660084721907393062596072227677795785638369448315484753969453961763430101768150620498746336769505756182807329896163130920463487241685708529207521760452632291181249073865135346433489546749348171808417518166991904325732040793490601999016464160179689227290469270480588413734756537073165483480557180494199532236963666624638730378949968088806298245101214359201123749955866538392219272131350510994961965790004349815651250037392714561069107038970707000011823201296384968267050755163106056757458403395005789948612445774448926582763131235030977706216104917097443025436394896282661614297946626470021933091719789533649235654571640488190550282749395566781700192365726088496138152819900873057662194739610346653267263872668514369094233624853804706220143497594004935289845999066547580035938848295065116416325251488983466927143785743861565149259961427327500764373457696776160792573001487437610966049920146310411992977830152439028166863018503436640636472119295633490350590466460503650068362681895009661897196742514411564027340082430214772250073855640727276153030488692929176484240020272206641017873050565252748635784016305758392304712906803025639011083273592260880209699661771498029074190806212704633482945098163335273173993530733684485165609192163121330506408001927752715051299862465744999719162716017121906040740329645236265909085639602506241768698902189668959015320044234037933175934221331031889845864603217275503445510107059010960990768236066987794573013647282196663847023499213192275595875097218296383466254378150636147924538107511404586726456199106998986204833361142163161945665765366241190168053632738763738388144502668120653058884427179339913691956981840976513509921864143286666320711110513623201416326747190826641822090158842527776384771643505742817338847248363840922950069124622436235477682845161573213349830672892391937542948774797442205010966778749866080150139236228570690103070093525157509565614948225752884059870165119280885665976385709676970008168771725026961707740746464645069875374023770602224175193667673214442316796780827033173662764940338131254852553852761540016233404469312210001187148530066245800988146683250927639750642844200670165465332886283168987720245397544730420296323725848979834509633604464950472628934500274456638030028275790940761479044666816437330980701594343799287422927757098185514678306896107135646623826321729976860506569195993195952962348410558914874562434502161590168405375959051536111515060733484989995145484758034585262783178412082298305382928290404827841097669469027091957037551459455696442367781381965962200230066206075604886651644814780507140133534201595067815091285337266787330373963410711557822411769714883008880540240483219075277216458563060282839647047684212259887399525760996712703831313144746426153296423920204669227727380003947325968272078709736800153607061167499565026917976886540616066359597436875285208229161994678465249476352465754504597268420501205619853966371057409622393675634240576198549997534485592789413636612094074951153279940582729354829355582486240111525146037883327202478697415970182235864585730380236066144331299534919151024717588418823473115128181162525470346839947143599674715733129704643778023561679370849386909270405302885147785090635278643962251191412231559274223636363882596687079334625602627560041646362419362457447023671836540325719077560174495676722893359120489232852594402758164186922920383666315934833774872429250079102359809689695793788430405730453689161689213566787856811364763788625603328816048177420904380786064486001604436292473464778151284707780704491510518950320321124345187440594522026501451541678531941205884376832944810371808412372947398468493335734952758973321761726825131686666296701939452271809428543132896668368179652571118147809179409192929684003320978724894329693457962806288281047123254766759915822996584199894424276135799988359680685213451511108434064080583520527780740415566758387691361188128308522517568314992529343977603861978049328865971673084905118261916170580100202815904048855924017985939059940537703900234029891058411444038008655070866670671925313873977664095075986883373037692906503310664918178046609735122442274503607196588898157894939956441930329146615526188700082458844133668349020648667927878165670039347751952558091328867509866428975623627067170338825987517374815203531247679558193055310355940170302033052784750297111611195528856051693991419492486206333056953167362329846650997269400973550117398569755580051078080857390713286652191449203819814901224599855001868154983685968457807058639250067208343406844230527017567488708129221982594616789997470013301190063514761171321802483315484758499359686532444516555907169652547960877216597820764588903405920757081116536989215617439425513950990225336869156282015235544756733702998991813783774555392982600444301794668752168182926080772812093710022097342426162224122684903526828734501374507184097364873274187324015578644201216168354254040524671115925736972285473859675051173788314675082067007523437025466762591573712745717073177973894704865060524714870833107998208706782176776472375921480212588721572619047357148364490908776313782350528298061181314617784872696076548868385991972526250700023361060334764571754178534026134913137102270743256486703395738525742357863408471491635545400587321854655213884998662296526065253325001289178901880251417522816086228460531646241562525358680749294949067408909926911455563022616326688725366813077803959041912686348418219083143254326565981015222708664108671866715947990663428443902020985225062346666085898126899741073326599671184237189902214493326663680726992741431565869304562109726213947998738744922743622085708805453417276209687453836412911687022708267994755903710108491538425879088273131933223487073974647902837864349879315169276860992667933722042469037620304238139675861032266284809846123337922124386592921661298095557267297287972095379130675497080910302922100067986463607179594426680244404303792078799304527129943398935871036322075701320956991476648278197343603015829759640941242146618316616969079370790779289873661493818813699649550864561552367040554216913731923149346095508666212601269052956049219592457055577289132762842858590947760321895437625028833556307047631723842393896931149793573947948701455311569769820354177604059670959829861408096682298578220509788825652097732952740887038271653765638720012635999937170598208970420889123065057534313831846297589124487313489490077851775671834891383716014706854561326443823017628256196353072499643817216485999538889952177408696460849067652763922819550255268424918257963421787139762646268848870879599413729885614209708327669352537516856887540681966691565035029931661689177680978167411238698121363226611182574227230422637796477118867317278982311728960677790368722737893048952277986339614315460597862584269045657169840582996479354525975307140957729045195727198864898800726727868041088003944629539479345329689014715110965602834237747917381263163665775352497130591413053074346681657775296946065260672153690110487937991252677957459086215650535781109435892639085596932222905169980069573782514852802885280051774362540391798075421233541578620770976476769165510684092963067987033040878095656770903345217856997961792334238846713500230316485588142023089176630224230428664212241882402687773360527301163917739173519655762154491116022239568261146905244776535568574938035325115394715377530108258820123293386365131505825925487629405031995043822318139728416814472712605594052146170992009183077756434786693200196157807790785322371825709067666836275678539247101034823833070235406744738332496274924550560834174811982904264969512833663207073045452344769393643506835525717424267970129428854213201336695706262537038200375729500995151259690093336145772671885556642693092591529584821219382044087893374479967639550016210922522782623686623306313212368959797551287184731280691140718910246746520465165949816566439889307404671517488706398249829122001693953407404585733360550238347269618433859756983259002130633874661119542706323000899584739981370035302527013984632800503157291379729995407255907041486976108633494653632102904435736931985145153680548093829047767768778211679034497431950190067067837503429334553157823912027717476584941675976470524380502169421571601179313735579512468117691937370545104800047637809670263154618845819155612554677062054411607657051112030778308746380042737967257286801366479929116784403294820859937488449557243736466436692125879219294392761349564432735334762987561615844083380103115977860579643405825886982027895225862399276472763954290892370768778610444254223388096842755329004852489321001594288234966885840101424987609951524187987910143530167718946445364646387075281478339059036060104652515996674371238133372629425484155952408136211275313126372570239715929746504386359995683095798323571699398118353866350709222833745977864577523987429521961757832150075787144741716087678184111451547555199103255146892408957304641612436760581730568202212590209997996614906914750298883283956307922906420798222898609286385242414473821491909143890479671295593101716684522056420812807652643448954413157923857613044500377466674657745991257452883547887181814292082726391925059985703842468150703180982017068303291848995150920489723689596707390294406349332364588759762690032559986363284128536615144452665240148746837192766506346796943693476695069484416342002593908479890161673259628081287423110063572364790415668317318334291935509701733320776975666030873914283084691197863656909129784104931704385452094038133534418270044436148087816326417964378457469522976379642270793996445889172930001021233214623673939316307082039240504322644773546914192523310102954783416079200313409577060383401646675390256540433094965235311558190197454831201177822673626402809937383941753288004803109082203743436073543307178003498577895286627627625050026784951093988889969420240554278703916147401907773083428406313590155307086938570397799088177196852265423455378300356177645988035611581918543131185920496752856107097133400347626056229831096598100814505915332494820243092686718536606552834919174096453324467385075684995368009019477185409862114757953957155564286560135809781998499699932771012951984064445098104979696513668651704362018517012079397841894827162797613632600800252940727154916326493063452635706200216590647771324684658608539267725531326096156223581017350623922534716553361351519260876202920890227372176348941916904071011941232678714628230289092384935782198058976880220339438378204070952391869594341331705061595398715461085161228926910849481602848337708070155786737756487999942487930869686971348485643358542159297342922240013883489121630210367185366557436144462718015223863158691213107227231130071205275252185879782069890532858479185251442374837846055661680999093652526430024002907894785890506744099092814299198877388428868418383797395149717056393242776458607137099605425431759529777101695744933245211843696351346111754087872358514415603638714484825252555736998028299565533482376850833097424422309272142054588535189874519970462042514619122123300821900349022091277377028341377690389252841232265126525647469753960638695098212466721271593650182252342050587785607291755105877344404338739448359013710908776939827077910488391858333719498942614035582138952189683443685840344069568893813464264524974184732884180552041943716214279820047999933121163878098921505025834475382943365569967120191099901202061544178423662326728227846733183942452956119993272356702522926676369757467059729124371979726894952079119249462356461353639548235660114625847725042993972042425745927551876192978374763871934411206587280125026720479312383939388124038433558011442940116120747808342760230341575156920017713246524669023776281547289694675981504400991348532008063961004349159397438864802535518406161039611252726946163920712401660013956235817784086033208541119016292019290548485281368347666565728137274189811243245315875593258461193855946676125987100202636690695075592479251788994866929361922575830620978743964210334889654729121261828023709887848600004436001467401278667945765892139292383504035507223423716660079127830036021383854360717432464564683167939165138743737825655241319210844807832858634901399391717974528965993204805517380672160524357319015178439595960431298426644321541033353052533644362175191098472000679818365282301083955558220394833968117455507627741130162482232334954581015930493390586175525983245976476946886096308053481658476324130839483442682848867633171715991874154990673596944901466638093319538890888411251679882397859676547284215109470228725452403564277602932549668796025892343573163685656294959899343483995320072672213206937076651162918970439928353733866542641184753988636176575237013826198516034002555543134702234615970146804621710052618085963274345225506544731757962135051170421931922781826659272295355881643385367238659888274346528943594285009010819922907078123961459621160045238782353752855405195052980061771519933763468095058980690749084141181150777908022921861586712109436050299022308847913888964038175150840425170153976260055974454145912554931429831715914475099751005865486899110850434440265016849579714014112159785214132507342962443142737004740936621563993301387660386333928351012420265808600140316949675897035557191337146639562281515871113191100617339255037958314244852908746340314318337692070003556130781471805074395654604040877311014889037892955545526730780013151434090869279679592031599641642798148598264668107548691965083283824993861469256536419826734585308980147263232253592018517984151850073983827018914405665026069203770887229263602284359240729647082027573172708328633302779582957172781323804614135682591751451212025195923209587109528534830661300291649995807024703039560192945010068640314947929388701491546550743099433276497642867150283959465831695715014061941460731211584049742834381944200986806034374450158272241094990916455103919376300391729170499559149234068211613575619386310606814863175118048589440447881761854512951723709666308708160964207027452785765693944794108106759801851640221138212023379072369265131861588303710701917665713858655055465776597861751893352050397290825519630999412058649651824658773342342053299399932837629321763112287211130007008133210624044361041447022194182583593856140899057319617817499558821950110865530286386597227786110666307327530524111825908663262142388988136864699956768581965855087980385987032461103578153620504036470578664376359876003675033545795985790970898645537480937109586175438119627680219446903416676777831770201602613822158148364110590190855225372598214378029261426600105502820586365566807058121059501003118624769970475314293707668848669627826824080280730025922063596414134026379316726631487436379274427881729012566876486770201831231064042450160776845624653473413181573716911982741152230654638375584307007076299104762262796772539489275894470146424528787319616229000717690453069782877951742918078076119198666423023464000141906262930899207396659363805375316126739811027509502899850858598224111757672596986022284613248213326934932140909506435836443977490305016792078426398225034721552780456322538420089902928060568546649182586844099666497202922297945435179412099015906070209653810127597886811204699390886229585855380401872641446998098131313102652970017761565903035869170281359344841974382907426915348719363048606596969407032881803398555793545772362155437409747271974758857838038939562568639483567307136039109675688962944593830290633301087720696367853080881891350982683249422570395130771847583869928207019638448505863490263307755877986113035419933946709018268761570494258984473399280193962044818605358783375649579384133531159911016342484914970054048309116601147471225275202473819381167349367935536883264018774356215612193988549964417210850417376912637589485160561176807489007891715708235079289358841915707998827329748022352425738401203206522331858636332281909481248911902368405227487454314770138845991008632591475811890000547675243237474706614950345110257531134269214030285969474329722729209189711584138502405878164848222011937660799349524919767326208289512572187454717839659933291659842334954482745661151131455538700881755660174726983809990747969218682434797525075586439744607425407843918125420646361516089340659206075212226486251910128272556899641057439761655558429087083447518772687630191429487929566593087077465631064298929537472028583889221096550724863134624228049382462346893828868209927017776222268421987767150355943653876227155691011371875620309343419450596377070191307493974726977436238114963130125043108719087899305304630140820309249401215291020417010400760764989739497057263159056779013071428521099680579481675089230500326509159620075476335422196552635295894831070458739010197658971895107968959615149887139834843463272044321533736382368766078843364985178032491448053285710874988311536039757619458871591157851062732249979188225804785708224694619829223967528569016806709416527079465772157276218126322381792405713748966510640689583794043775534526846026885478295855503238851402775170605070678117761125832437136979498281861630323416159612276132731953427237695743153726082927648332605749630107434864040271874107667318057857784498841659106017829052350184861256951750387362485027618041947676197232379516514848804838415296709200709145665942819881972839809653029461590677116538869826758461476208329491474597110283162949889731440135562547576363935093928821935618045871363019267040575115982820931002796541991009241463018397577009863261469894542084072920207658271279815434332903117602593495632319721135691811992660503057385253216007769985479224428076402420489511250246816296367486426161603496005293916044624922097254685119700897727513474713802985829031489350591181544821663756166965519141077227747127337960778595698901452923414863132648897985319236276718707854226420671516139109746770085766782325533168363775024154259323935297942538149603822251558942133550681908727529416382223990884439477649829622565680631878405219457682604702425220413819259414122354286693707244977125538781959564413560589917513673699573445534482019224710049213993998398940680353761576966580194066821106749983421803716851852489758494867891416951127131341607892795917080330262867857747628127842736441552053789430336732819123300345717756374208288629774788356155212168031693707986163722997870187130648703011659833870673467629915090467428117569552712531759827505606980689886250372917442905591475434052104882735796734261688479139346857983879720439594560109400896960888268503012648363844449835066020712393719002249654655379931918033505458974892280715623071325586546258134622179238684402947481090794226668401563569788107533331975993931885882914566821038228682446101064692197905190095887708490289289932435943072352788386414581873004305342522755753749060446552098748846231103953955584676022621664030150919553835342402413852437109825983304826812185158982455367416196018770925215501144115245543748195574357236489735819056991448122180295257389810300528460870010230257611319453973584642730345392627275392093881894628012714238691279196385670727082096438284595428049357962072165231799533181723971881655657365715699038769326023102795833002070064778227687600414348816096963871300112946831106611204643700232414929579628872828372861502063438609832033558546243329969306306782219939181104828795246624154067022537190657473560538274598176210808909144267316715735599741962692366659083636457850488790804585702520858442235740297943027616120938724962771697386729020243089008394397449113344821403012547166307711562759079561244323958539371966840470936689595554858637668888559302826332103488117049600991502224730396588915004351781927390581271363932505718542288262605196202746140521718905840247652889889580384916513417293985062879127637410159372455825576029391221430673196691941568922463165331821015587500768429200781169118439148618319457293988044190240871600297242390829789019278377960284250320764775565363302763072268968637563470309447609129326961025659836709078547291989162894133001612244132846572542794693782251927695889018677380430587696162878520007929798712188315473140294094910154723534926172865894515024413548076746157158025111693997620169564717839897186611229024478554831634389937389352094338069506785813654312179022901231180780922762415177824996328943591839531896946528817525540691389017539322451574781516136971478014679862281305655677913340269956041026639139170085210145207751966671219807469028496754348738745630519364018449834379987885234548015012118412856161625978575592753103912241589570631931040484719015999704899394798529315072078970765718070752938634338753352901705171285228569458709532954656467448147420149743497063263058745228261547809894987856573034075067364801700979007155089795669367348738538522204191374640366547278567869504729646478116456374380797787264203739229798738812475622396256977228928298229089676421470976446488631246408899780317857593211302499108774750427582504274844319858575839657983856751234567150435969965815465104395783123382780548153789272366731799767942890883685955960601104419783780499684750970402792650163143624120334508846459783070213082338672948978005039119480470362290949846642111317193621032174489004488719037683156733337138746379367211177494112812841170203411623989644263472899093154102819368234924022938592137320733848493020677684077638790765746544140420108603880977155539192545588918142207084771538637762999377345215494802372706342789695078897012072614650624258511092601701823683113819262888227889854889989922901027423539627190250131667063822041618952260248736733348355733614020287875415619427267749396243384913842154086256004124493787660963038390912754562762620459476516102736441297573379757149263550414608579186244784966218312726893516679458930745758705644445308497777334816202570104758995136967276856088633073657526862140418848100556729763337253563450360580733713000816711059031800557455684616218250192518584088077781595967873747492149916127630640820773497154143900930339094868988342384604476450304457648662787040880712669324006488557379964141798813701318479093302812914688474848027441813382441201682068366339634612645082701583275657446637641997013068728946226243183080936587037051903689884082944688845998127363339137873976947316511656859427610632589835850583689548058536476207710877067633799806158291374700972100154436800664190300715952083354615702506785145389313831253147929641665327784782480646279821403815772034549648962831702836671663667817154311095481613180461701029527554795142624329876613656141426550698861117534163962091417346713301418237125276886455695554790174596838941353070875610203290658688215305349022880970184736099597916939057303080721364871092736981978330859995415980531274401749776145803295476194354872653201236414233542484564919891543445738859285175507466081984932768716048648651830644746083413188110310897980750963034335575179789319149929600114532717914872054684201109556326599825628273954311268256414941147851120463436149752927819732085124603223213532026069738542603080008693869553744889660411080446725865103397011426506756357198029590707431366002051458305532286602154150267461204574802190571181699171024822400795024980986543059537694657512559103712972001319692893368372993179392061110729588968354907006538595080465539951927901733921741168612391577924437729479164742869598693847572885646606945311095731458318912529250558045549992561754555965669561184909310688276602443241417798203813665036895486225319270422783433155193358131355926117639439561795143694464053370371661193341548672559732127780230302998422399058215108040852050931661671405841831529086701004796008452411175721339872471718676954422412614750528205862953799323739524015313607811551355419790519661637882549425893093954379329314221464912982711362718877006928401529459526335298334211645204053707526599742095422073686305688762777252948568996473469208348861028360374773721282944750062291103618374887068368966292053480801868656502453428393596622279325149831250448389017708703206804658609956963208125349040482329537917127279046408367614238877810883808124312564998193323204879396592607082188317092780596110235176182036869259209705756755622044708111013615848327237137742555840664241721481976363349710061261239972775839228390703986685619117716304394130187998892173599798373251320206467246462048047531786626439976646981158932452745548298650194149332041315433356931565679556584710467101371010007102296009313744268444259263014730138803143061065135908913203759988654956138548006594887476046981141254616240771527474586944290574147856128058700420015947735173768201999479107262779802029059465394054975459050980825213531676364251793648539751812663290441294382608196321151799470441928594947026632862981100134447972684500208150495224295666972601389164720815172991342766373116704437905482249922526999192666163791403133909777185027358804884775376192025960634360336610545844758528690931727889860041245696998058432778024351382576347248786156293453067917055809564329997834336385371999459712180579833707455756074731636434579560379590276010316420998194526666432897130919977690949685360854666409692506399971883146723673058726577762444991254520494947090923094819910691671170142889606281374270897596134542530024916913127937105487294080549423939944386728002670327285960469608368889985835168414769727903180026435494317308215105635353638997959049254809130581513102472748734971649073313332360423615988590601797524259312484168260744886966502437076869752138318831464609442825423054912350883870782361535835216026824369447629459300478788877362684644675930338752247043709088920656820063961015442702617727567262674321772039387420213205111942977226995456410594443545292843716178762690864101384119503642317213362601946364420201230929870181830041173474161233266160964336237655727559549369390523613928249923946125494238645241795550361993129435573128685061547411334534912478713222691832549220368646139304695323255982242228722329741545367967426550746207840661963763219874837035713541758379511718007766264824569976454693982327786910029284696106110391895524283523977096255759262755998763332084514484761296488270435297513566166892309954779286171157798412336553673947716533245967079620486154855944894838500416733493263480647228459584273974498162455351777435220472498025359184113811232563148816911856673420628710535626905565432636962917334656780990471488683055127109642519885045355006880557755891763667001848167878422051142368195023631373865952572352848527551341967106846982924600270834142424117905723199233503866061048872480670083180526607010949300513215917952623608703463714329685582744044220283973017249405047145810512365586857326791417036771109599714456586498737098171629919978117961251425269264147900551845647468237598796958172570062461703718231568935455079397895412712856785485931164352407604814250699922536790466794493612257861948673288324630694963170145834271203117611622990503425396893070680434234423923294502209171489933209811724392534840131204761567098880602426531796263921073658364587948818437820067232718070215889703371593377896155238871146061797394813255864953841618867605122758873904483178269311410182024044120520088260570967939613866491508562410645275464768451624811331059397907833653247442749934487083715194623128519257005383448141819248701023208518841203671463380454603163731261959309969674157752108626859368216960120527529090726797879997862429023798910663955476854983992137393267936490207311239504482736958898090374256281549247568313515672628533696338238097044801715218314492741061034015847378786069874913537189586990230987896989237057628046591076927205017139401717506608598349460316349080886668046672768776761625442013476483742617129661831323808232308145491680746050751539438766084865710044539345598759402424233044664553065145389503941404954768193645980141779037256220378710218441506322278033251728358503758112383790165933935334894032871383593226976678132620829597513786910100174421618289056501201903520863513430575574390968851802530674108471393934496533397601563322764713601651794304705382921566416070070272103202315119491554463601914921126012965938784774859743301863050540632227917184883637236974650898390648442488530169365927783888042667057876928962384042089152191273673392486686518590216407178262711998622409955048532284117693126755246531964503657264339266753529083684285618645255669513650595717888402358297935684656170077624026958407861727418979063423789374066379529492972902092871798783076897857722242500130005468297830255145493633962108599769911328563507469718222341918986775143648937454992507888156457221943241021197881991579483554425086311775744770815310942778299281022414820089136233964073161736529518906187675051245892639624207092665656063726068086060268921537489519347110360498763663324831697429575184791221560846798471604151182702769909735426525879440065509013513167887731249675489355111159256225481427636079119878424947218428569763342657801903648726452628610587177596547330622086316638429896531107867395902783282563313717353388833436321862069285204203977125939440236915742144116674015077650127344339191385302289565561627478940377646008922696908088747955768565437613986413732993544751892272682484077800473470279829251057147025920698732706491914092489986488235098357699535149335161081289608728437451687253474587438851544155014061569112695420992206818763188393616169452195763915106608273610574249107351853002612527181380004663228858165028870429456983748356203964413602776474775877406677827566595755156294658152402483302026716498733471788998676320770930819189099446941396761200116743711213803757925596320635772693833632752343395776910296387672212011866279185479881241690632486146745468429595833412190793422537603040648881958117834326255559717112822843304045455124566823912960910677269269985496951169917207345410683150743629212074499010037313563806381517925585984987319553796395794274585777860415650676805228572820259345233917531417137836955226616855827831764382233171852962895683499102581094421773588762595379040441415226932615804470986605459668231819823380176884251041526739302126255558280570250037114322165272270806361001393160627049305128884513990953272780617582044669188061824405640318156664442406751331546212355104642526382013365076114387517147063782446991661250639108977089714343339979431759204986186152664962667717013032070188315219025173330504397311776521111057963101951623195492661286926717450509128918338992956776473641703150535353721480720235777907057568028653973208185504157960855830239542854115005620679965127009565617896048709980144655166278196278258807192375135356047831428765113063494926980324813062576133147154656243398274813511978305137756521846100473202837326384528853632000580259519568078943654147255886146324776082001166020458882040393240178095162240925775575841526463299661710427685670057923264836579072183217458427026906918675585645056795578104899112643621462854154996596816174151176254341431543615097409377242539976419879988507483505310732485855967433718192515773702903340481586414564468558790141407938051866258471039258134034538708276901921989610293437128927519969532589193505149572227486670315125569208494046614479371289229383501335453762150258759012166318656400671114299324917013509646640150703804546569043550265491259589984051709397344609000709539463627250905957608735179972881278563413382805350965311400364117061740913211742548889523144877730480476089694425159720254415574551461702624902585097401815137770573462099416258902481544634547272440318552924770139773574104403050320272646588232876655076454985401592702520557048330839924004637101225695713460975571046781423490969965615794365822105191961596807747009964554415250583436634268709617810429596867327995644850425828955155286168090713202143280096286349227975913109665404888543665551502448264404896720447369504839203730563025314574648560254991495526053343580137159843840044371231441994763558692104207493279685833436136834521153008704279526433149740068475202215514278013762962910506537901172416769675939723211648260194098179811324842676278696899824135536092589843272359710428421074652142379847203372521232171441352083839193956100652002907365255726206400475842213544524212478486049051957614188526916985333226906286794923396621490364281174756163019494424391210851848620381622598495582593280852943832560771653208027954989346995348042116076311369317985819331549263138959178687109754018578408241378018250159233029415758525622321987607609115734802780524273623179260409126035781201245085232610723305528263269607752358963340869758051818482289162486914845856744447755920373004277283319765567436254523951143057490667601368579176629636774983917135357980613843926950147667207314219265260165680236012711327820453995703517901669230354868159809462345996394657263479288788760214023747582902109000286979489285799021557715960732095490315516478348956698907896195997996334187444190077668875618596786547705127205709939935163844338040122782819607183431276091640628585376203541364545416813989272314205818643679114812736398745953622622458888217835760428829071961464583058297306229602261678497195870161881229576329744677923048097445274654563823801315411159037618402127716318017669092487576673168440179647224654041457868627332592920908365227206623848163275017913247004096152950722138028878985688312243483436406522046438644907783684746020770254463208688185334918484797575407969707654188382253815919559845329860335736872060138345459501489351587002425716452359189291016561613690865444240425285585675314096359985260427247176942662804884093462544418229503313034705663007267906884770882379235647746296341017646257084749134489311164653292534933842121029193153111016470247408437843405146011511039877880659455197941527650432783321640065899093985288532696851480170597188729298070607259448947895576646383714777802940882783859365710341594447157555474195936071880340986447332578653680279471422984661831713793250733978755661669915527898002941750825830397732998026039511743048229173669960123775830361992690414734553297930933965194614572765655794627736063801585023310643642392696748258080562257551539500074733265088730314500979660840300484768453475704027995445815734040457733758346765951374157133789125550097746709845936733967662750181324321147871782880685221872009061254951471681233673631302285724180584141403592709792812715356033889193903565876368760915383307041937704726142001771243883811221782868266456717801936009041938593796342541832283213054843029409993702872324761789729129698971322819229890018432453838792405351504885583780575265485883097657698905182905225100259867152243586560426947387356800441616310819536958550606750842185691270002543094854585478917947091390830442450083893401293738878961052929889250031020745990166976992809224641868852884235063058447450871476666535489591208584922224771713672493062221295427776461974043156072237094188164266139090886276170090411476157736874779289879722135774236496727406454707191233528855649488115323207511844752452861295198964331872318883789177838210632036930760274538601760447942085650084304353041512382369330562718122321787244161517952761919749903526073162625572881418682003691040689077463392052046502358798877205075302382440879736050690110353516803687032431294351147502886902052489259069538576305569314970330086405621579177182039183559257015930503868282669104126453702062676073704507075728088251137467437929852426997502095340597644362343781059194997502026420309010800233648500843018671082622135426480487573297444079049262075105978733427179506167066441691936416230088106508623328270638126917318716235598699510889511026083251778575084715876046166804748233245012517219911793034266877043301158378398425917966313232299869318858370418918033724881297351587532444212247704578314463991830176052238292428882987915201330767687434039078370248875170841109710231684589535492133519146112874350800447203104431829522909421964802071628894767956399759845521524817227558029615727123657777057268255575403671399343950485269886562845832490128253188200829811676346789497528834553934066708350580265850907241495950604375167434050680300962102724870608566951478295666543432306257415266463243116463884014968705887568453754030127707931713721651424962736349768357106863751411887458060768732234556374339873677938283053938645526127021274607420542770997228469204251127167114294153993280697758915673970004684099274149421212317089371670269101078715906101558285184576934822722516755342560395875166810482652447942527766186528677259413052628000199320050499412552806143651520503750116108089169818017107561298854679288478285899114130773321297840103776577628548404926091060949424133439108479761388820322647130772882588729472983894096222679189044897048466733638577426959652583894339550186404638021357040546709995630339994444782578117703364149671312013848275519997411199278353123479304189498442708619147891556195543852614313928796368454726451248153776091814578429298742444663340329983880322241773993764310018877975528502995600265987237284037302556804874625641480049992890568087871090497576206772170598931944624607950756321821831547789998847792619310515190186353776864477035409044815534194403755663946211527910806750378035657381036502004658717967780579280975323341222031289840341635823523122759068666275153568306568217293448180205809018267399113612722031245609848275987015299436178828188226328673473733733741094345380071639113644260060807581349941007165425288367689255946470435563681902147890273640308458657092008535696581412614299809650981957660167981152466342593630227815880433597188468451531547171031723734151266247886147330330589672877465662064978934629583336100438075508165746277307423475480850656686164138218303838202366594541441452741677531124113214288572224723797452397303190403298430392312817044775846189251477651108961035653747327041180763933758925891232619254213820145141201452195506909253149522462145355104715437798222263131463038800617894352885800607438754932021074555372691927187831143587275265929656064244076629059423497046375326543895034455105463075679084553007817208044366140199425305828006913936401851257883706397979215221779572795858347737064210195491420731274883383676421065660384506189534225752540124528865299910382903505911240603655803729572380743438856975036968007785039555448714812068831666483035848356134592159828926349427005778794390082516980490016757261564288629097657761302211817262085191653394307395000415385096292018331193592704660792448421705216323916887602089710277012247532414183326260599599196535078972294259806263942272979800449968918133190426945772094783572437395967176930356945709745653471428370000488354362887246270122053310909169024300346780073742813577113517805339951447017283760424587804976071582270713484962295482710353726209806897241277698951018869382893207630454865523392511874694884725643396909150992176277854547700023731408363284265249711626117784156172982034727571473280561872817268745736114849642329010449301654292199438676656913455618853473528614871792053539418803128596000790729917680605741338416289550018873594240634112665503541447688906377666954043901158420577229877526215650171534733379806109773117775014943069044011239978160670962644773365921821779629060090490262056215768193350703649002546891203204233619126223501590508250807462426364557724654186592802043737218422231521299393638853396233717814553504250515673209138252482279861945503105194258051412498160368201960486048743431270968060048378856784963674469004997905494431143626439408447408796600920518492856657309525432523719827106164859472417943419313010427458342392983551850049485013464160009706805564404146227987145316662455806814909861143906542108820852526150318553557316043719098371828917462663730154803248192364084938509782020098806082016323518227673549600454604499403718178838676882120981043942323643471127888949234380968501174469617297894981150691921144962929391736128409806027617078353230181452374968555532536913189682249417072122567001082882643665156240486544099610977607090723688918653016610606405231229365800136207264358583409516131314685012180053126551581756768417453430212906882881175492859599363870989113690234213219568162629764148714656421584208987959589265049727421912498106572629203127658274155859885674460705076745155523170242218682206066246579361545589440939282366498595320272588665479882592579440802750045209575309280792697034815028091085146753352860990562789857047496931414483256848151543015302719561617347585393849213738769151162974174151581234098917118550943035251510860067806011019861405772542209482339286412505722952967794747905845027283408705673355511152925275660702115685651077544833330787907241190819502633542734085629679865391811302490047010160283696378413089600600410461448069613998962552135489761214898611150397320579173501681906196347833533987096332051563273030999497098671313353678458358286335528158494696825834844990033952805709705011693290210635681653644504765205632181071666012812366164732371756692365246564460287238994304444602525617073839383041454293277739694411002265037888719018094460066708702724497044749589326813101362519829040838213574803485939052476624636169285448028637677733103958030464750441851139002811682775564011022258185257101531873017290276344191444248237310525792144334277750532555931776892849190159930656149775935139372453387970509702726331609857740018822798771930127465764302488005304224492917048403559282791673891377211954666978302888104196215591560254099237508282812416550000963184078777021752789671540077322425630165328438785041964685621819657643719396904769319150925021675288165308195556401766015370383747568052716782597779939809109983575045603992724825786342506321088390152885066741719336210273836674588897118387524143630673453418481873334596426838035565252045153321906822434401138059152727296265237276825717959669093055220277126815618804853674594457832864636119161459037013249135947471860447774785661281797938908896634508512020927223298947378722324190878630282631423731705323198703608662282503123542374876760916258059582533054512641206562405703448338198257569595956622432134466623302093017001486080382512507838559603097909939020177834969690970656683198487657156769194881105560189044755942995018164231357449787867684973220824935254517946166937894558806313335184965600537052252408366292865447474578805268682471478126385746766374208095336078751810673143546056687079109136168697495833089149372177602667376723879902163545619523936945354524594635960403867810268470129296116146693380579309385779777605141939233377471178925220895831527127197839829943003737001606064390616890709039803938050728548079074155234160108136326458177728596773192402274570320194180376696832540953802665284609770650139260621516422616831337684949445547327485361613192595935710376444256305848131044054011864138561197207055826838279415482813509896869858374253772051891363269415826075833640903587433705759560595014243990438945178083609592065936715251893612459192390153205245069190476198691968900775417177039289916152183918594517872645422885527526537262567090281017541312727194139154726191134850400340241101616246566312188692470052556910014773104455307517796089486299843442581539450220531517814205789141937650362054816983983436752892027976853978378275687196668722341085967146682072537750164154417879974726174491151588568175126831386967153971319351894762768626930181816462108397506786441730299891845314752525319040175436444921750842215652295931462076507429850233392442079802043977782262552662559850410371018191924635949193361030293028508775602438247939272689444249909738937531709448159834465878581975804322556050312046977820029109571085012468462194684909713763819609515184485305314504557532721112142008974407814978303135451941037724524223436980013310270935036881551827762783255170907293749115520574894683465226517405222420138343591392422067865287691659876541792322502141928476843156014768243240200345907160007026361605748969753735900929629000780466938533631179433278199814677959632640880012993128085184510789989477530722961287767583738207296332454472613480324193241435141621327473831372263900494952590716501188934321689457904064169034956864991966840188592053157944528622488185069276257971188889017229553435602053810268677669354067563770729674963972359681108272524360398180452501976937698443370553380438725511394128083868299644937490558091108092427246276403843807556309118880406208879682013866724928136122929963565567740195161066998979055036849381802509363825927842334062940814648418929178167237954120217329297134598134056244624284533553270218537183143141092394532689843215645015084713055930827971189240495441610330775721836858129644526637151002456629222449378889232888295882863904016654527527966616956694872918183524304598439460614041090413831761333261476415350007788497664250345756738335365445953872508501959002620805201426216473299320562900683856264959370386096303205088186129010513880341252631185022325173834035320127886718835685631847535103084828692417763220971174365841922857694895268424237516552285578902169111796124976603336526976914117156971413005469404252757595773848601617035912404951290353251753676204405944980225265215826848586567715495440953647338025069427848336110592156945687732548359972362927611864296195487839648813785997573767336450396043709720115957785206001249690324153645049841221730275862957113179010945951178511133064284104160141856718545541358990255728085501070090377182535366187016587386148899231792644663439645046081738370113604377034556251373328756954278615614503473899187769941846753275731866057358576270437959093424729642046603219510202601563814067882757746240328616656845170610689046945296280949144408569036667020698329146165639372554156694881108520535417251764330181007946481785314232853634413387132133711569129249364355457592623050116993266369116486498189545813083681981675311889920365617496440947444922622233490483558860017071500255185898525437289969874396769155360269558760139291626254491383230825124132185251015981832896409281644861965885123856993849248356012828457411953697692476548536596558010782461979718717638016357900508659705934298919549892659679522559861295372552908472071509972360545784057356378519861564988445110995399354999896821719322199429495559697384742909754228994716203886107548303913372011656293274522943473727868681651443991324134820107434908473974789996214722548857275460284935886652225043293226821172016198176798981771736041750864141408010458833081292679765400561803034438896129767236554655349999278915625450114812067424551160622971637052931431015945827206751405562007726089872838335233600161726708551716254518829333821208642541855394260184942744801459156689049632996534988340769226892441495791593280868667971529999183426116925453799013785751216746586338383163285313597241695816667218494607605844148035751580680396205234865279188182128363543961328144576716131278895335273661606085369787803001710278736972921802617020865249900350713950077921351465018231601655844478363216701727209845072724649708209025427872775040675656025771511254410385629165439130514910592325323172134606603419634239539978460987877230962421884225736360246743855581649523937541627016048226233709246061222856453429338949789213928799031173420233164405867633004891387630302631607886369986195787007714794256329595184935436848246437501051169961293592770210970031117149135039610534903082746140665251946962481037188439153106833226199493577098107910668176479943004627974484357180747629020618722254097725079377050444485218138288662853725055804592583764183813381087094044225471923923977234933523524247603874893495433910668144424492407669147076540116456304338264617516834219501925952150138623723592411557302920816085861641331934789920187493516564428056047185946073103014206284907640595469528443492380341257099670897800558030269602281456182226467056235401710049825830417272899392481546368714042690634094701151712359934743781377685300842266695154343982981070101494550340128934619248756445686000190047997037005228245166096893019951156359019127453760891221393349261567596818730231766571073130844205303741971945126520333700518261277587873377211071148455962686811862412196186142890093998914286467931480939979321875028879794942374487125694475317434609548609069370481830977297690594115124791364223311478928042404432824918933318614789902780644891241903984570104162667403113776107568373623716995440230732710058839785364357933023119680019207962470172001790812109840869545316332931505976733306079220514960519019873025031118972355584558834935336710932507004726695811465044955403689213332683684190373892572870113852903240322888647417057938138429002611431018202323149473940756668744044205930418293946577460164366635502204504873228189666284067500933407006010855063207114916393104853070360889145259861434532117089061043662457298030526555927501173692884363791706283485224528123868281104253148290608457544124479615171233021206421859734534691686290332050833574258064858866425229568107869848771182726498292698673452110876725537309782879545674028870790035567261024144442639322200107324758355191950107827862381128711828996878645649372618385051591247887388247345635027270570944297499545915778787309159342443258971716429769617276160583003250344140646084499826672967606389105360209353170678715440537224440546564248941603204321019540845308772631915774613945806243622041812695965157468001978977339493061528173411332004157588461980884480029903997640116490261142407598347906475336902457566467764342519588803887761391945987369501742915013356384067081923583312652986784164114254487665563935108428157911633763876902106654160504394577298672155524006085106650592742005607575061671462181598260023183086381338636610334199800837837483333565621459007481740881482200874461331233707384569691024468030265187647686034212243215481284902059687331816479170305629339872009581212565642191971762201158650730545180301084212386757861204925183982428483299495935947581640897899575123744390123706528096805896848583849455661996446119074187185032874214217872003960744877335288384843053321564533722799476510895365071514859882610613226114980975275552161884084947659171864358393708535119040268848211369141013854865950587537879397901231480042131157615811195301563159973302581955716765307820008912518250597422175695686901230318641263890146123878145476629102834907521008265151496213918359979008529922085402719798949519979174278951693854354468090158888033112995024609482839336214117903250744748531806938732448412464875256325081613541260382230618448940827274304259014568679465144242125436378885604035605509357692868664686024707226946721269683210569330582503298963271042475395899721532847373840526350323420034582178057813212064145595213335589625356206920292890521717077254846019370711008690052677716892928889316275745794639310390220849014547927036965424689657218409500262183811495301932567898629312581133162508354782851868034715111602431387107581161188899306656458080987009238109248311413064677464737031198128865693713882411275256461271794741251783850332378382356753877035702271299327361427963636508804742762325199471052850331766559318987927696798454321885712200964404831812668634670187026310465489275097945104783674534269284644364980649703808492658761219814082466943630420214898285362925570520032061179072572989992578111787047527224976148901447314843718820879747690299535460315858700446713311706746829467253329589177896576412118676522568971064651699877441357709218362377487094107361117130988263743893907715579366523032670159310048983978774087014470991002103788563059681928153240648135426399575541626067483319085861534903596846036529370679464195495739667746274153987476195298308536743958982653523310248942254216889489446048365704156662351427110501534145029506264969743648475156043433663044790320798701742748893997410076733823348472935401739443249900530818072659309878002411075563188646075375430985752286380628110077440232151112944416610446946403929352782349252262396054697752918733950762900937476685377496062423919697602026882370442044955191580248949494238507712229878274633793031206195730120701899538116389347192793154304703704188082055661816430047773761845458704605763984467323240811643688212313256607458294908812284423144196235071420801138078775346800485368201337198210567567023437254608405185729116845841307571803958677043627395064713164639958603249992891050979267927818651230393897058937613206476966931698798194626945991887722606688270841557082163521957914245372544877813446736007385717881769922639427812238096615676224306409267212669835250560820071562603639759545786673179261372076499495331416554283114979033773934597397047058748677324315169106787191653727630444979092004877797318604056547330629203403266741169524308795749152323652740124500922480455553229590927670206082892821917751916857555062684416161149306025503516578227849474554814640692691968049668749930117896695840640469445609046076291143056722305866777242179168607684951498906325311803445899758108046675349856137347328344238520362420436872354339306922855415523128866005442197005184523291121273780091626387887136206998641301700868735653097811816990271958147529177651908879920549568404654153946802937688566403024897249159218928046268480255690146079073850435887817520881721877050424555494164306448587484097686193825137515925339974162090611330527799938173395667706532199939156864063414033370542254690068099117379962799904301540542426385604506731862112256283405373494540661407733685179953939666163781192644281462549620012371470623045777482840154179114824135625606290047387977763375563737367030739412168814157936450743372567722153605778585568486449929679646082914639300899636017066381531795229687827233918883205115874425568805520305124963257746560778279014497254561898294635116737202712463550058470640255483152997527816060154869329227352251833156586657537076181980604068597092990750241341405283749005550822405580902477648464111914063647641794253845892381179432781217133364752040504277399684867390236714326245087127313475735180439255963102010876833152229350357966444853677330819217880419543817561152870635614292810048381322759398205663960749139687383751026341360248885167925794689901578839444492173227476373354083629162805598648067192832869171013527573068720820719746185193051616995950909567345738722262099450597678742055406516592409891816397121103418255025983526447845168093930022269303314353022230333682884478725016540097205646694560969152305303308200600075133353497863757168364174002058917131802308059143665421369266930008588837395200398410093676482586314738914679011682693236992108448200641592652251719301564847825431010139186341596451963658579799622262485720921615856966868464734452268961002483533442809972467090511252891059541739352320049258651273550384107654664508227267846685221750555902569259858994553427462448339260858060870956665964689985809374178357133841526219821091181967082667561156617464873744544903673667689958865821376420895695449166513665269633190024962175583253314155149493498081217735687943225177676878418983590427726955941826050895012096686691840236419534527097000908888817975933495213315360875398862885889453320475813063202322054086909970227023797743129657163546998729102287577103000474977345536525200147918723868054335188920674851757762274904783980152032120059591059506129077157964356288327614065049930199729849731378854084376032093644259437463077189736766000025666847986520386849431144160714443680546051524060754047008324567216109855570096733571408030224895403027783641734831586291065282086457583551291756613566468369013641420071483144348255971966574289880678555273590520850574141186238651970278752803163649145559862289752667496118332661447069913670890706569675226971390335340808230998844970121014646650287509444388411087797954035183702968773035426801433954809097217453246705762527534699187829806130813735155301419807278633155215206731209665188422103960094475703151699039227110071921470239415457740363904274333082105026459269057340947480652535718861198362706932609664899378190339347997834160495511610162333023532896529627715905095204500547421468900342205867854553690036183419688436490307501008318385012699301749143973236089367742761567463189470119317942941305169548404046816786902405355796601691141854664068775509389550029678659134786502496184085119938447324229320817995740458285863459444306795940517941371846371006928130370494283927805259333546485283936373279902753148219951232101267236360413758193104673701024389990223181512122585513626556343554060901504444577363515562525128046326455218785245905203323872253998871663849561944144668724291990408359438645332937082019850811395944113428187708741313298734731402864405847770222432803249317602233390749280136287679312412323624708375466198942481171755639588288101464100489193200875145579731413103282731551583324464434941398013007427148148377868100890029842264075101701188485568717099485537715519164592989729353217247339986365797429884469060391810899674333281995707722118867948518274441115939791042586989582557531666777605896997439603720573980947700457170862869753538294972395150056303257425258368330171339926374508063374207762782739344668551305952934231907901836172530547067987177176838967623542693146486137582189302059395346003759462667207329550296884415884484267611159333392155439429707719134394428052241263920574824411889782086883494815927358706571171508851079738320938189748638715216065102030188143627756515257369703572699839519996567662169732528443068317751583629360279576834652342482739228063567491652067482414167676542607586475595453379148639643733597724576719519143293572463645333498886645942706983787987363548924516138204117121016971652383954190074951737066668621173101764356202789031468621912100963540936872240204731033561362798045281123717808480973004365961452737845405538000470281542714692778949817468690650325288656217245130980105240697292350905896670637811764468176760849746361581396407603500821801160795397058899110404673142806909725897859309108454931031854271204635204478100771219587800566217065190955274585646405469655803354912627789259063235396608343514262432615593440744452135068677724385645658061107738170666276762144235383788345003535024247891326321102331732452695313466220461208263500861759871305647914973230436777652526634905241874512277529247750467666323717851031314002281572116286489441844437292766122609596394974737642670910752721848014100959777106002851075858035922125717126683537203822529489791381363373752910898228601952665067738798960148952200005294606364942118080751299176677527910129942339476708605381844845632394908881378929420265156661360976368505661161566322415966467471210638854585665133767716892420311503803413000536949533521559066099457277937668444549543706617942407220437402826220082557818862590008130060444093635407142116683385231363920603435685978792799122648885130873073611402530161621396037073192463785213425295054615552317270759905837249370386343476344877868791509820388511520444516959868222028522375554529517793097663413069930649111814129875333975246920631499620287267521023281102117337639785354793694403391784413745917576366795502580151480196457124996424744552856878215180197403670119661000931518592098187360422573028435341369385165181174369265529208394667262859174748609281634075044943414114700807145184291878609136954789888009213702165579945640463668536866987441289759677753503225412587826188561533717821445139396756882759164193810494624658729115851630174256904911081621025524895291027706555815865741598689372353361230924011308458643575620037249502652358868114978416818303573769143847823005712260155594058875862986004401954625163287027404545685988603997656105152114929677441910039256619439077891352689718119359741977728777375832120094714366251546853097593147000990833635205201147367925764088359851372796193104353342362249737345245568010350023581909847715569955432242193770849804944607944481027304779547578187222219041507776292350810505216684860214086417939445509960067676736177356510560851179281132342672084679685905279509432541553995718925547385416011882202496657040713322801572354719167658701966353446865044957963037600361873728571497279115538481050654969688433400937057298255740581370321819792633574080772483541342836103700800546536464005408394597043703477040136006083044032272934281046595558485119165732020770239140092697139049601389297417768088182554856295166976114597247439021891893671312318469880301579431234699012292707000475944039611797811438967334866420113081560455935156282623891522504406804008942918134352265113347296372715931449248884610882152604051072109968100465817909456736268250199237511423267366106975663803705132401792119829877334958361678980517333434238879244268896618403863202155464360310229831766942166835885795103365953829418181481749948281631353012612748251060608302368618603123799342273457754958068455419693644184330648133464448663147861798592807864246262857975550015318798092310936857828248044361908663667664498175702531435232099016466610298306164721483062067286119611811896938296836911841620720020518775537285717822269779950469149444506173819984800772442441652517637285808665446035493453461679371290143950569082204381404728719083709983456338936634730639129629060174361601062720750091716569034186997564436635573466542906861777450333379301886131758433165346319524457338102715743161946470825554134668973344138293494854929812541086039626448612166093167165456030678083068146780671772248893754428859949277494723604945813484971561116689672059214119915315597569167394633404657935987797806578379025074348000885941313579891294501960368330566056885677351865631219752183634109113021800923826656426345778346907479861735065844499255553959501358497083771286653201092967617518885216854941911974538399676170227630608317234487769926364670808019571151663877468621748730204079145792538242613580671094998281252764880433216582532011981785866657228657194025218332001607221771801042000236551556751250175523770438294116657809114129510699833816460073322844872706632148819372663619000281963008941048421705689081352160743737561915272046349517974670164764652162278437941295936158112144619317462370056240920045830348380455541956303258667579485320831610050568501109448019041101401614680003401398685127812774350750039000709750110336431855611685273288379038243664262757148124929046133543595658278393793190176801320647912097412437105694663778444164435504781441724423299764462150803661295952880721028460355777371488634357390624035667599608881020734935605726199214245230932452313386051749862216827750888558033486786768324164207348952216644757879529376220045630686548023278304908302438941442708567616186592211774917820306231801968651039658673177311681541300293427825260126851723142342872490063213880743084013268751180456344222530804990272556070661635744380523908807697903499376907596781639420003850257234446121232079808536373768852256852162295890036612585081259414241658639211718516942363525892229791567396897962539720454091774328173262881841699363975832543228075412642147945668081643180253725316621118693661765103473107506509595418012619927037066460858568386714316601897552743611905853352286563822697517109296769001936962886374071205496034138427735813422207865265095340753298149116781436187739467399321352369526136459566861726234602927761214818758051988884815318113692074667813949133091008450269384740689353188746928829917446813177325846409355785002854790345758332048667794800024544772976356672871709631868187227214868423561443222491102340928068271923687243494797175592588272661990765830055140610034954855646061094055269478942701329957736663565955594661715975574866182748954478927551706787360107222923222808193978424901341645467269664339102837128316529455662115550653526997041632808960827970747663230459776783727886341551812769146521746197233051262376254508804277240808843997565329416483081580135178340632012363275303343656530032850245341175640710586232776829816169002742883091934356408100572526953307630115890207235828149340291716338285479838523935761261320474749612497056615280670486278796726302981716259199688342999245627579701464477059675981249836202663106198359618945071289448660070155288130474527072354477050839118161978559807797389301495904022879825760387837011085404269073292654124390374384024031837553190988094215936875964398712523664986183845383401069704458371770283849907758187012846175062260350803651142344063276090106334613890417559479115955194643039719896513002681011934553053020873849608069466544028778860504249087042131071834025693424947900539767768708568446047565406007663005801323944059468753131499151591511838120742444636913056114871453655255393396903234978456467437182059760390726613800495397734234912731608524617275697725077363688164899192518987348188018612724501532907152920393518085812244421033083069825718298019306508598143659054990100967281403537928976555579273470278179843024004410606849293960819387220119046471494045034942042356815749975029289972117854908279152627694998764169632644494192771817887074321871402953704458836769068175759899369577567379750292491269555270763807331808962462629547883111110705108763728796735790483946171209915091062373317305383563672502638177104220807328456510744995701948805801037641909645540163164109096917321204914460712730760041373739776070316311025311592289361507365485952090240631967810554692789838616393836437299649488639841759488697370008936355806761696853931344379896446621804303814495672141940397867942114851526141628284265335606034840038208229679607759152678857987645340587132364516232441014851687942117933542274324466191266107124003497738762615730013238751965094299565842840247841098747186945029382483116758613897278876041938874592006487894192691713975683327065691123255211224791791911492562158614872535646307334344749449845436469448355380276150813293146112030589961725843849037993950945557998873462899829968600246027683782494786106110180436631884155257196736761232096179690956288664931412044044927997591747236799025646200458472594233364524502707195654372823008441326120343284062384736660180763987743636910591564636705305088821981996791407759920215818643801977190952806075411273194870651142210507980157246105748564291604990706931046716625191215055622166778892051696812380354563896422075188762629318887138972079975051030298278802280713092367425934928349048148738537041145940269933680161931223002018539712757843179053510118472401411383258744946177308384976670847291930418680939162155938818000256258212655616453696367052447241279361932480292888312034035481771655362718601221594465359634474445046448518794456511291463798087326275842353581425440282319443410506743650819358514892112772180355212256469591407729624481012320271928398671997433190632869731550166299005554832556525407461482747474384562381175231223596561375568869322827400455268277817154980163082448550237055985997583513426573261822729565417594231257295394900586105398451408181669486566508145898881985219856497013329166579431919595303189677902115407239240706465375753585170206959710253912839267111345669762466926304414977468681713825529853243513415005007986471412618747514419798848264956646578160047326281315136696595401504533561934230241277241214474897131592469000168449711646105506037633434503373593946430436328913987701918615872137266613319580561804687075977542718486569990774471443186084966466344265023411619437338017081070309433870396796623328690192340630162078632249841522210083083026447954164754233315264974135216997048819300575412198295295433471979761473229470292435303958191887697920403679874764379866958521646275345595002792175156847368404190996300288198034057526443703104143399510226479623400915942611947304816934034790755502260915468912539514402052714257102997714797696367823063395295447902656499578615509701640566839195268460936210292629977174620529722138982434822713681626557069213566585351809751563860583769484786598625224660383735465034485117038786156172468964083851681698619613097840993987511962515873076259053472457052338159857191622500882633477772111858172970208737866167921779820889459131445477734337858427482599472184521299229037604651318375119123514749417864255388587811844187054374270201493812985978485309005732280173752378117289283308164137551407581999849444032575960408576197671281195723524106541297293808034189763710426007890086154720852431846502453159042689381173509185133033707340450015346310551230876122328148402360866717818933015390314914181758483758709241711169133957637040425275788141409364282363658379459139837079041802528697148821908794828660082843664323258050830702958142773895532524324328646506777848046564469093983705374434510699427645988762965200628582175446623477596248066476290308562590881086390208526854840408986639507924870305640548985398283886408302270487921403023457143624395848494381804328587290488837332953189062650525984861961761285847901423833048413781298170174239400475672984604486090501871936402955396190200657736498495026579659896723715756884376150882209001578502032935893612350266378514822004255744964528091539310756511911533657839336692884412353527058950820598472160663633674320478274692793306931436378413447997957131850151450845997341379716196537416125291770600117254552094019144335362922596388829088227914964264889217470991554189976768395088370526850431574171920532657442327918097369960501665824074664938136540382242531190290200361421763384471290443336982236274823992135745829473994096708451780890308474497267904857232638006927050916486076179383202739712786242983440847227554074441229709900074487224193016166104692836506242319025037831215278378445054488923970388607497967222760524918359866079410888323072969835148099757553075099414761925280077241620279067563774118241599143142599285918289039050078408967945092206291985232571568798044478187331099423275970123027908139094519817936592065364605404566087795474383077339334159243847391680471201707458560614648888922418977412385186335358648878437415438851659940938217546648916154622801056042836641913781173144238819084402275794099661899163342144121595868611899429796527112251415072942720369425782247027019025763362396953796514860142060331937168901467206977697270409719619196033168661865892340298349380356278847767133321759875562131593128963537624942314478995427754132905107986412704913833456810817068022361543769449018684242536722530887589768917861517328540071987119444141581836266118989138104434294289137114616695873260213400090656314147832836839617290037054333854753767153070606186373555676305785934435566330021876728872790509943895313783083329432620770884918882075111290797901859972498978814437110927437834891880584625215386041149665474113907024593340613687445846580872316499710356981284680525079814147768926099127528931943294097345088644312054994622235313272057049004146509411959116413855136555267186797840030575475878753201607490166008429842549223305745124551205268136497905840505355741076613850583725341406642330172676567137820367657793436826344358889108700217729603453633273450493578587170180252267163373418434678668882247661164879333914608083636107512444265925212218080675555707610475405347643831390845251350282344594793788703027665795122034497602322217755242594683254565933641548531940134949058765940000009859937821617645295514399492616878302377211427780985833516385916389640383499152107155703663286924393501743598751710864161409271739575351812041223895153453988403405071536739782477033459125373703001622558019913541977170126016507693757006149552221312363427059725117439938156224585823889943151638817934115461934153200618352458215281613583760415193831034973937319422255637407662102173669662747039296242016461584301947510058366471716936029194150211621871011571555231405874949665071618190170662330075928607761939014173090188929479353894060687951076484621717975120772488308194977622982285761571259484511043901359027030792902160203479918537287181472107677224889713366836844750784994382600645456901090319668888625073776181329451023305997037488448155797246518318399357549277639990706677502181147015691086221054581089215100092455076471652122896849139902392968752846289698143059388434545371271664990209783043113468315713453794993164751061787390651739171938094228255296810546668256177036222253591309307753325105043288244549953399843825887453060507436083611591587347811965145628216307062812898408696360312612574238225786053111707948623075097416633830564183641314342897998046296078249254035921450059687464606835373681340781861516249388244796854045438015745270167548848353658459663398372876753909224093498703382088915075079558721720794234234257283936194097171903847826849148189799005499000974578440678071799854686934604766549665624414370373952305795755781913109451454749291421301184827739037544569424411916353492414959943809706309237984835609179645845809278295759679275927916635944230091630132181401833797412463378146177858310210541966001772229487118461152046775750055471885126064508639713484988622056984305893463110710582523082296700187978001602960799464054216523997111866446629096036414237059153397985896894428466750566375255973448317453147410904794661314008315877014818661418221576555256974930835723780050511194900925650156362535761701687854330873606220923531242239043062601334072304386111073536120286319528685355139737509065710902034485465455242178401215112545934506850834691559121894699658051745195552096373196158482474167139198620496743853263779587762170325919394754052650295335476985564227188711880398425524454576157292814157823608166460974275286540827861686013165727101618004008969676146438229785237397278526664254503205762021385296077519281145157175135063598925068302535028648927518883330948726984612637171884997137592052503881973248632393653912563006453075817778305046256208016865745673898477199008148013305230715653774365516260498126402486203349343831440331908254497912452820457026983955953006359241817157638188055881291833889479299872887373498193128439785486307079096885331363670048082798926322991962031859417029693271856266489438756909771111654415948872814206883444564945005799933546934360911319234810513079292076886959880107600048433705956471467080189163604522067798291258655620142026452452476931734596288610765433450810587716987723191228036157016346678569250586973832677918235800713993755639827578130357076330083413771106124330973036417162888075813744849261301864483188013777617041523140143262073490199282991006885803186400832405932989073099795019364476034639499929175422077810192515776169255678419896575977547617404727054098091485611281291112376329828875369790824514899637061020606549973907411894670641995920214467930933790257963319846630205988749042351171227173057707408928077486776736539511132559970287858809287724211506042768733518096251435049148410195764586003275533752793828334907771326713150993092184839722462571150605451201833401710811773092354013651150541049284184151151053122424994608897553437083501314710194874820383655491938549436816104663922602636741190379446149477044100901137541679078549583607664450588304734631704063922445044557349434950869824950134101331176257408605268687914382794438192202078956650844330793011937895563996952769024129381411098698704025899712569248269424212708500868830161227744056326761326070689096932814430909284961878132257592707841224846095407231192285215940661987333046035997437458760061353985427714149517440219805695084909174540142568164096079850879097425103712683292371125255995193840333973647943189701572553902980300675768408728069445125162020076712745687333317483973747954907946921669021465436616337890665684704605729628918356616821227525933244308869459068110489794677111984959679450357092203137111373310011269549845447743042033055799746130994336920784471157987710210221312261719504789196942471758207157232289015831078034831344641188687266547037901421461366043182483325906640571537089630608902121335891750388301113927026598876508918842370549448806904668552374697029164181756217969504683738796677829094316011801470525447442288794645825532802330612242031721901079347451975647310855948169068488985152795161924924652842698121285198674492499218909261413884154217665317581375192059859607971603512628545272450916494513934976525238344530661561336332690717100204867534834677307883346517655435733265831723479936679239484387979789643251315885793225416357000067236265844187196591518169813333471733508827385032726771712295314434878678838492865013428227752049233765588522142436700827365319697449454072623225959074036587142904749884374571330938285289312447163881760466177785662425374000955940334099070012767223364640195800391171963881998163284044238967714457973633477756732228051058350220170563337346281593004358585521613426554717933151646327745871151231561017480497964738720006845586690198391836936859275285302824578034039807858336165957807548715426104880385833311833601087919497731840676554933553309797405259885203144631326738929725876975243501504636064988116962401326027774360584978837296684917034733315744697756201440202856879716981857903237295062551763395811838909097579101380066329892436622150248404498057522010860619802493119807663124904467158221394390675665600514655652607587672509917660581151457535306841282431774927461814634170767322107333286309053758018684417000126273652417793178740860389526377778872246887527911616008765709943124621684796575089603218386995178676448112569936908479708697729489253385421452216356999444472863729765991813299047235138309133200748330653934494634780314471168506714465670668252875952291403346798827906385919476456627134056735914983635704228905293073088138466102630866429877936654738118313053518401798358125027144197947734732023201114910322577241253781115730900947611386556367123632133990767518511643568706046396574823378565783572166943356138551496828424891053798409914437042709436041017979805017269756627790309719460839476500585293874893369175123751309014204883957505375579188710682203730307582585179662938359115339214688962508092909107694822662705734906238644719825649016678007457212412463820493628443781965238777545161081856507916118682275775019050044784892917771640361965208497699893141843773037601704395132122758534257140113636561356029061993349212855447166718641367570916955432483238482714668130917034689984047399769650791568281252946047199897443861627812655551611779873296405345524318122331355461216397768535784711797020193769496225763274996078677531577628415165256896308168246403953803808400412825759445278054937678770957166946214149105378258572499465861783098212378658631156323457135529889318564493358999950466456119883533512930782755295123721279412652292547493459247149905835261130507770684662241284322146805556808128407517286523580330120289087974268927110411688497734204472893202108935739681928168719366584310272926376075880381778987151231982021395875770939681004215887288509243111485008612326215976881609003397351741174519548018779677322971664224763538336894139903400102223264081618732397200791313981504917994419558438400485054238053482382652524928581778079303493897550447695958749126741285801823590929511394145653491696666310275030722311012214944333895343933400482525070636297583186659612865987286812164208902718205387819662112099498424834822208376591086689456002664549322939985316896358927357712416004689362261143232324326670212647234307964166182036901858274110272455602142807023047982059318837430577992525545529051913263872610540303893030728466121707878273543221981295287954617130901670750052438805051060403146325485299703670396059282401644723155716371655356226095281045375743475857303687298003679972816146307480365666369824956423159131809083852045031029138807114271559662089541318189723431718552038429837792645096533049254793270206727662008794369205503725875787690892972312260751665399574659455725475205728676639007836321245548611180349299532638799158975246756620547173686737664159932911256315856329113240111775746547010701342682301349390516263687054154799512769293843313530076597387109452349099048189219123276801330499473951154178133983830025632054324980985356653519934124704830582631112799610258014543927807232545698204901686611167493721181981140200497278331903431684060738270419704560339911094733501611155034644743703138911553209660612122091881511414163624895837089073791312250152078543121861848536889909740346097868740981782226840602846798382980942126416521290282136242680598303385634068268108194423905638752168402541238964369398264369987714947612911799802448850720512468733885593509478881884701596683174536724895897752164120728780424668077178900751455276887429904059137031773509893830537534217872737038186432426090863117050406857461365324575542307671331923181169423608762517640410054608240584049997504686260872700116070602352368082411690793771548871488398021352227016581243602400842846663137934402206725160946568619511110501945890970349700495717865405595663476665654894552743207076131410660415781000451614763446403669494264020631588073543688097987917667422196753332158740074421080246418906480556100688495348621659499605661642323077473126346168487836992692901077172371281011178229199992832340662877037896350159058279330985474673002676068834558373599876626446677966572190337169918732719137910020849531144660216486222776407392154971976164007749742661741474499521030461631555584741587043483448714725721528261523555690133013996087428031130951658961373441803374699091287007545916792870974700496507078207784223153116318399533043858853842523785672813928292646166733999479387669835574708746304095705945833213980715527670355585108701993893200215795244713379572215483245370004501101892600716567384671384513149130825689190979561958714823679266073619383400945537101093057286865037486712361807523847104677052177660902938679069501887234290916610172072750043876851269246063102709910447384499031976986097400619128214135765993579839246512508746753817837376616558570728269498911169680359288721822105161188833129475965753524855123816895316219211141613557040081673892506058759313053355693097487773535952645086352055020538596171972009429368823041849417330720240259887296934627051814468114135998742682443726110084146429023604919396233388186580795572380902838562446904771143482401235729562812546810088079519350898730376442885794929910477755494496391390346871826536897762849373559961111111501188652482709995605007793600016975855078774906200873268811750426235440237486195171334651791635305226944574595447026394875884646450630690841993597632377799076980260615717361890147740426830174632386675851700188658309083908342215704964822866901494208635511451336940895466495075828978910363787348698838402461990754236436540779387945564380605466825174309024376147576480247211703659263599909600832538708372269411011511728973845143111424451414307823993478093136148217178643360934118684661260728704802030102000053791000627434830898846506882260164715509559140428266058376957607875078277159957610244662453770160675022616071161109196537617778776135084107269919565149746885477500754679378078018845765076933590941953776888605400341850653307491733947978781545998933512662977041581919041628629856407372750097895767564346114019542153416085419323491371973439723135391360480434087745157051360319931948387772945332243889007557955454923925580636757610348034195332051192645371406342880302794486292208331647741982846676601587446086151908856634049984225357688151926055170160105534394914943161609661143334975507528809832255249209662308564740675041165805371570590593224339439851989110140719719836776559024087834134686381917359484509244871921447850127942714696836484277380782841547359904897814424262398173060051488904458849879324062065345449326927179373360496621436772492181165200313234985718408778050353571484534961060774341024815249294850412985800605303126456866710196796468042594816152237579377696519012615035301438755878089391996981560057664531351604020742152107786762803177440503485578213604540858088519384767911373663116162149179914323799764056461975251589618607886405073671157423613023767766719548567820344654207785731151995420195547893136889849237857234691107041948685576583826171911995192812328694090275764457762627921883904244082243519918591774027932232700811337774987643767915994670467376950342134722935327359286659896072044842116533665539075181937589166019317333082935083742924371200135456625853291485360061301060778654034031304300228117106948789414250073295878317120706679979758679130051136023927515218283345240340092335220020594164393208315661600281596001634438137517026963037326850770515396053392458327493130052170746821735629487369687047161430286344836144292917371161376295849980479682107635421493073883135134540223925480483150242423098548106135237660557032148664663267328905492980645750979443137611942864968095070212684434519883017456052371182032670571684656960215627524579428176788954506027398245728092026731684584245899400256322224100269121737406161021996179381235718772207570427397750698359275396024521677420518812254137266784809685535448343253092975933452101085406842423023175093079573866826653787016015695570902242736666930792738026851716456894408062024539583334283898403503899844045063121720543003518529229716990663543161631720491271943774443449447342367148453383450505095696941663957659959560454310178992494232856698143823950103485187257400073669762740581025097808720784576133687339416936009591676158988165252400499587956514973540679630639244540215043153364973427586936841983701783627311658527861199822926182737984948428696156924372912874342608072828797067278745627664699731863613156179427900036210146641910798188378644256289887377671028777550653288417756837629553405263666201492019050380009308830521548901260397708008727320385164550884399837739890726638499057003082420269193675471549422480908251972707482264915886204238957606435736352375403106399799135915258132300083236999499414567353086807078221990985250448345658751834126528753277241412917666452629159194225969867253778438093572662918006874774394897984131827570126932283790893698324892101572991365848488982272368872981066542645366038480440245785762225608161045624622891719096481459435628973661979722114163513117679758277808923574393764315250087486884565085725605384456615195605156804379027721188278545029176789482415182425928727881520943487012546227054382478863616104016838790941606201203661851954536944471972177946791394574922847095595756295558325060935043106611837924660248027386407386057177853233068396949770778867644671225958636706155412745947578785243180980938729505525689796899011565109039838515737184940297394821812896526505502772392440510660936777385818173085030086612611375991975296924053206712911682184539398187645766403241693541987955874141876430973194555030863440853780752434873117852874106410649156027856106419733570462953872215861570515967317034704847331725131082444091122636361694808682232961756542686582290458068953702951817812517864904302222071588712172409053755326426690761116746991151404359104771617833770945873956542452227541427794180218288759419876450380658018004406265172009318149703116044404638724980772740737758034887532185647886458302783651038319350278607907279009947465184403560691883699392558825640208274914132667893149257631415283276680352086864295821518200314005256173007838131772443281888930696477270531173809865620971581412611731966289116963967866839059981692652819995797450880803105719621856282402259388333397760232392880197089136686839217101117109729151027596065275629235105046175584918832531318752452969321288240632356185403370776500161731737635442735398598388515048500047468997224063403634789744781165637191735051739682349195768781756267390463419273792152505647949161354445290621139194082523185215639772278013941633197589839893132861955849359677990407427637646913598118835265880577024839490084033494078699542799769452357103391007855772998977055200012860562018057091122014702492235751518077650641950968142812524720868539960409110024493906400946132856689284310989969808948260345899044085304969630237452338363175734195678701660139257408922673658232193834304365625934568310899403407998118559678474770281121430435325107621597182132841687289036854856118916335264906998435235338665604681169175404803202276761658007577427203374808384260420302944024632737684016451395462921913747665505003446945983744068621593926970171013799905429442028979903585024108662385121519942386525703759047737928352144910413924959738680330670499792430969547620226632302720613778752477572105210508116251359488390814022600634229103610369480261483630330401450698631255761354886654051060287802815977406202356054363190368360133961374766255318896288452504474446406390839604299335786973782306986170998054399749409683746791519287412186509316083570934340530989680863583927090392312384094648329703628451516181633014849195354059987615356266797212034894517068114206848159323977737041030794969595923899075385131831483814279635298130283318125602692666595526889169333273531728139527763105109230545997953153691598374202838280431837592814241356237121432741550513737239151569337541008206814232359673697900385678948039831393437275630425454738234731370798159242678702356060726911961490390745024841081398225215784857525264441209323339312203300120696261563772373251334637317207727322189990056793658233281983395911942955568159166260084550817864893809655559105364976844550807038491586719957665149560277519223084046437189124893219175930700758325238670018503608774701816807035940505727880290215934702095030807708734956772714294277540220429390592348727169347547904822574807174576695124098156777223234034578541850611704207925165909638670939868865825485178172533150723787507079588341915993564527424027151710420238372184384664004980068310115213971593142673607759128285249537506869035830909813468368403094390722023604093383766107984804268705348957255524228602403329731075349217301736250674144634167255903656801349833856446176583602463468269454785957170984393879720500986917189220259757525903534366582632626080454061113275290975996285507398699141839974112584775286989312438485306763027734234355777788861521726448906447895614122119827004153011088798617104723695334102554622772690068590463340413640568875640388629985044324690751798944256558712813508981169179121213496500476295176402249982330339948902439900743827932704276049266580902189440712166192179852075639686200788768292924688963483884905043900451900386191389642121133311100188008240535911398032077348240273950350457860008158309852697605772805239442982394402981182252802342797200532928950985304788251771051773953635623742046160134720845457167426234900493262306181753358250985894972106999444246303150151915018109224414732415246015641455800785366403408564321221497895956866967658170703211486882038062191299489371601811085272102160226495795043519244235516667172353267921082403050517468603201302089831652384391926663504538713195118289316297048341950193200138554551136918657130430332471806665393386516189953961632929030746672518940524206321032928485886088394013209085702194743223241296158315509996978374497718777730538410374792845131806103261411498110000499707272361627762586743189513117605794755376753216446048937282460999701737372672151719922783328217241852099523972432052767033731525152775622765386084824557467088860701490781731710696675734255254250364140150340216602866471384513629795883517255303012722181250788850512592391423074434937254012776249336915659553724103158932501154575691498899858535735102702738703157261115301530487300824794508584730853502770021154890076798158321181232268335222696670525922486669280267368637811743427532406399859279100304128317120081352402532619737285823509463909500544494035141376726316274501201677783429043768758918609570564457784180889469466517519294875594193080510096672896295641949668281871211236690149036831578366665031378349531759309764161445246725122388278031467482720198244103866412407044988216968589667084447007824966717020158214571095422367658082752086341427304922506247590886164731135948903481878267832551213088403361769162361205624032201553840176171625221689910685307448792302136979543792148411780322691986259656757010734697137375248181195596107507587337106616641142088458344835809352992960466646589213986203327112450542377983959446647855845912637571266347118873485885668393221715962865955499294605167041567778210946959893933869214107198403688280037477176471977199679677285813283925532980049414538312395395619709217604821191220664120448330166745896429729031240740976719690753423612403219912468140941138678953588477255450227378841960507384487401915939356983106471589623283099088077628044651540778836677920369157115194479011300638568550025770142585434141205814277013639528970480360360211546200734526527272772767219640967968970932414757949401292831873221801493244352690421607609233063497960381247315969579832287570675085117306789123059045622522338179044147168577758329754159499352170630491388786344652198470400100553360352287597401212417885945149908544509537745816118508938803901344619827302900773634574525580799321003610086941650340984535114117008951757567328156582577224401308232372930492657235358676217674067249833049080940984131524352619082879831758459371693639860444984646908195990884480563614309309211812614902093736596917567449124386527788793279805675901503108941768921842325007712883720811306448443160398961284775441621785020240637047606949041946610219153010434473352378155977787522615456306557452241574332472660848235922435909689973091175465147468362655535519690972127722635437451659278882604054383026228389604737692340846177175248008821906322640884276676031158176782708220479946876906455254972185231851507014226263429363132569950109848972133217630253213026700868006428983128048428487614720303502946561934643340465632004880278656370479618732603091702518878956174216687668854377987643639834180231020685142069080771185230996200660463998105843609560526226400069621812363399965569352533931149394706790036707165740427844056363378319535088360516628949499651395160518869623467496553873102894895248686060564468304946163181318066888620311039710076342455716175840073946514609427413929567634868255573647624895910503541939698896658661052579840410737050592092776850564663642216661494371509528468122491924784377988422234415499070671158371448535791914963062617410130590902372236507340124851622067447732803100947024956653722770254376700401468280421160306700830351613708639355346242863589988498213636579185014092895971660887450668267389626257710924500991698883444387251527456032006927864156929319610198364255046549655313548953068890990315526940052395324638399112969268257271560488894347960899577007676745794990290995414064630943134372326528994439981415975877118759185440314952396014095131239054722750520766810587318621441543871930629118129814668550276962947732910077060049820542642725400689290634099109377797390795207354648888667768536485661505907137925197585074025768764733098148688043226118480521337991074887145262437312578608041812993572599940425165680239068353748730372506650358769512329218212224188794163493507141362858200813606326295673567969265677150809673695123741289397759031466781022515952495619282067135562340148942761531727422762432716249861355086429445872868193611556337382614298263239442917775165127439302001923376240620834061730858369956064436536240937227544005400766957510123889017441107240987652064121691722603072530051329576187925657787635704741066671295178274293079594582644375457695412504379690510521512164852639962570502304482826052418533395449663035074811528229940892887459848094606999732099058020081574788319613757006972212438657912902818436136812281806817119627371446916570302663575807020518329837872867017497893904990847550239970957600195166228705197186307656910562087025808986920329693140729328473836762664041731868977599444862291270546717072625354150841417194310895367163181936520324476522144060486090606784872813966404817673147982503005583869229874249631935946510153744483148705082128375717564327222698454579180793145847631943284857849985141391803699772808369949093095097237907367126319855743686977648642447487035299430583686473707549985830792389632003509333578258555441836466799415419302426707958778476357949446709166680519526446964735600963711787297160989312850601246358700420863606106554963000780933263983766961733018398639046342456048511672836674279136465202296030154072777412080317432906837470537184183735282273027273538909893998884795441964099671231982594740007303161153420492282975288789452611950485749232195399636867912228081601393640374005095365019053593323876889421046650854561274213388614521654776314071330505868261327256957873238033442483384016447257276439947120036897850938648464053347621484296429502327636281343226999661360799178017878689005545476246635951884530486676497479383090988350810946389634343143000426241503174995227262373032187969486276889621986028948819041413448284946882420003210468505259656219792096429169175940785877370480446844328322261788682587451539311037143176498062179196378494568044927510305974946010853716533708815696645942057936576079024339538398685052016100664283098386976908540241046923814904246932201700135106210815982184113530546379242008780432775137371597092838738533420877038044349606205138826605475038403420695134664000957121099912336535902620257499711970240726956035170348263061194117624935671119371826326452638872993580225496861563211526279993980114851621638111900824573579049428222902535640885253330766480588753186484683552761161038263306055966872029699705696685458661624013614089210581339492633349244113914470521973799872063617182924252711447287251961178980670671036866006526746525081304682550239214730822286799097103175654773217955769740622135588996407848756522230683344627386826495965425596978486085506703516663766766827733345911915025386187218309165044700217380387298038901279329149845924445360764503026274046990248362614579126653659841209438858269612599554448534436986452468170678557637867097000084053466780068817659245050327411165906120050632462829940365658571075458820949063858512104327940971631559006020933586319449006578321072771155705106173329857193245236393802646856175118556060577782872511808035837571895442275136228512239138213845978870870058220699427592236831394790127963450429321944161007934614014964825604746385769216376893539784685282698320465925339099172176692660098609328674605239804816864497243957777483342402279331544864171931656393064556681930566390885836106339516160093772556760715843139405829436641212317132914984830266905081969767129762382145694593893313597997859351957419063933482327012865113588528961030196972370829255228127298088911962799630714685954410077077175919168407616518188318370995591969933538627781458509684226553061194529471946984954343632553976910290706439708007713292199698143537203758298380539568299312067926583501112694359015599552380887741792466698981335989859239493678791340885442325832033467539472345222177827010374106582081700744442950910675981381260590588306316330587495818701255856361216636179492687012545082840786825739666131632335974257175079172657168989942590632360069152944233388388725055423700008553697917834476691245628579670217300874320095628050193433223881929050999513842674635910128028299081237307535392630026147917524780898955352260468137684794705154603655515492139911282412494985513198551004369216098152135144751738248847498977125594320376188940630952002222739738563451983289059005850531044865330820542476489297243054539300648065545122143210360619742207536619886262877317226340657708605720022330982888539300920288548571107962053411630327248630359970724950323674670301077813000987907167246794091011619583837827248938615946201398367482928781100551251495053076619534132112230661920010028463741346750254587821998872459341487005133140533731610448704936418102485396598670253187272165216273064097373559934193483524244660209556183136854533320893658005976100433296515719469289243249991593006839845841777712211270307649480561907454595784590298093923043610775789547404627757117683321389267357220986321102585339694653547818784491012923129536957845893429246643228754329433783404626949696506485840318185952422199090721596016331234827178098556781928761059096834608798031393042389273093779931321869817119891093426630022949465650789590896071909020059132263668272523455264050601416667608451838542675703305000316490450034521028628225643670126341732304094843666725955838800574739068006550121542752848417490092105916227942207347307733666149360378322270682712051628927868546315707802653586352681609773292899504629714014228948820931994954850386268381573340464934878440204049443233569790990706041188646629286940942834324339606433112295594782481177773758141058543655394629321612805704197632247334970420379901640043293825002127482642263175022056670796450419342430995222672843914039564279328749267307102037250353230213038416893404559531185097441713068797647897012375955518571249959852066111257100806106598212551509328907786834317106643109829222856502281297125472172970748628287320960516024683957187811740412011143720910089311625648941780904483500369141269417021479294790796094977998835392865672849549188607265042656351837116717909958887739570625595231156309096044590196914082758994622133230198154709969806339399451552752745668417134278372599735832301444416180790715200460172941132074670705930383768817140895396676372245272873743589417871946619204423217234715246193989189555621250410495952122215345484986132594202327244692352901530355455800469688735075748121858727324024240995036455425659413277177700654334090984058351460853687923887486375934524763209701905493093677257305418106823567829376570736533180668337314260349151474532444914020675758214698214300063572857224230228866023407292479084213296344403559497818843055533182598748222926758140443134899449482569289315268288409185917183509921592538804394820236560335754513194408095762416759721737105324814466450264382806230874092185960316038512569109569635427445615879998349524702880132323039175364770063535150991192955623670071057070851306421936632426491837924708054094377031844200596637799047042007632650080059873893987461026378421831940514093171234365423720011534890298777427464730069770761286002741634031462215930001002975249668150055823448764631731695563812998334204968713241626643331672940640327778008064324064617525180888107363361436560770389079728447776563999441979749571152119082564209161906880758751999226829559799649341616539093253359886289973746575762608485164595637729987704141275406400907130090685570734900480518166426236163746639198237270485386107598105583526393741135202459272541196316787854036331221065912605789028313504617402252132505044842394487565890390855613574446570445052525953871060349920364222054084497593331957117846015464749960552318156158011723974350200522886045967585551127919733546364960385227745208452453039619282224443642668485474005784175963377010643625155119020346823040677392507404287465988489135517677428350029692287800152616312561139480267657030439307157104486087116606010715311187356215393114806922259890122495225633089892432964570584531590702415602758989285756807700222690605681988289117724920399695956872347431257584808530440554061775375903726967855459957174343333597633475671099974650420556271636036973802161960175179508326345472601321354585451066888286300380905629891282629106413313517607632577288564882859432862012166455106406925946995238961986577009181997658637507448167794429534211711714379789781398083027064752307549829647239517787995018756813128755977767619009893467786208494891930961379127137549517841129258035607024224399214168354340985204076087229443902082024436115506443140244235719078566648236326769671981165319772498524500206325813255188423179698589802889204954592311611978102374586299071217757806871244150892223367135811560365794819957802150992644255070419784943010479374060880683479058192375796719961937130140116155748489038456973584593394798156354133760235252290358896861720801783965637712915317159587290535331209483221899896482465381171541734145249604013465976855643383351798793130953401992529858982220498679709236153898786079981830090789807555500671379928952003388868508153707664043183271464958604147856504280083006366326375410390695720039740925745888501096886109178562226695862884720857344173627109368013720401475135481009999322723572498404972316499154975152051797039241724315852825529040851395503832724879548799052644525157640475178021931929261621929142506838962577784603779556707676113604607648768523680434496521171225754343804993892362440171153511577256093048787253763469329436654762857406998922639270104408136114535256013221057565543736081773289351240641187443483475857254717577493630928331289755921492142567856387920361360292411622557694994215965621580356823302880651068006514050494633230658899882742664496380972832398910068183949936307731534070024900273635935379726945530201813253173884770362086549074982086141719599299451657923644205109007616151053181891322984219491601862761282611000193984315789503699008114986592450672224624745855849764764257109978959667271987663709512051219188657995115547989005864630454115179749287079643750815392047207318612969910784123024026190078662466016610092596952268691488387117345627615293005165248404605912692784872632730568852896263425667155781835276871692790365621465971226505520799746982770072548881086349053585623288844775730807729923980269283777047504054424006211693214205309660358822571327890799195956100065466792700413127572416194712065977370583302289118615854631913818227066236940601505471079424074646818040149522869346168203835436247517972554927905388599397285168999776985446251225036915586532989506751082865820784972248365104811661967646003794372120719413214388533358834994800812883013114148469974428187023046506009896325531826576556181514424597063924037872447797014157275173903509130759427611275813423077818775840558810797682290738684377622152663394614450189228091423767633184636704095993079872964584838742784160383020908470722113295636590580625439657903439357288229897571328798603156856138746948764916541591388957382535971257413544905849041094155081710227215840542794056563379392956276469238668601798885661139923212186566653654975510434498702266848493488502353077913672521960450315191502255620648539588198321513610612990304142655745364614945838692106954520302572804928583463558308037926324417738583540340908390656186801602333538853462652675125854994827606026718969455486949515355488724942470138960708176025231761884081094312691994507947307467786212737940955561674762007472981569104905571597075622100085102704127410451596296442529807335273272324919143922776165603177742409557615498528576922949549314530823469525057765520977573335092535190646650792226464756305497097581650446475113558395352487904645556599685037594911793465456356909772242927113328704274419349724790646241160379523880841240778049665425984037544843611318016712250199714926580801718778172679846814841538955916054237121142641095508435792336317636706566206582572028903604715576955690719761944356407117477249259751014314961917399855006327828992779179915940640087626980071394359419780470746622085230406773896482291333838033716936897499196822350415666281503618647332475641678362775012143300111645391274718914240891517716530410472038194692664563519459028550614316471876040453804795629677941854900455385840219883095602020211632482192911245558473167674211143390018885191966309070558372429154536760199700705804446877538917678408681617228537534637638746106686375279390336690920167047334983581468879144744552775770315864763636071852930888789486750950672364782329125652794932175372165565101974640188886013817270462091259254780834104091289004695451969151804282038271665278813571802625982701609469569239397304263993955723588318889139817599140261754457351430767730679067277414303188896100550292886540581802991199699731290814467164772332056971684220335419263113486658742585571319067555166763499371062032885629766929790088467371576039292011361980450570216362657447721881234527054721233235443314076693808325209090221700552975847957528327527507934215408057588592242034628882068822647897063452137847030041624226503701008369798534188837609561421319034240495928760442099542159079237694568901352871997154758643709485286342602405754137794121368005581607522942659527882565719448835986407831502880998560684523237469639327800800599941102201598221510572114252711025211144729815299671106905111780591788965832491787032103970422564717945897299210629045322451451558896789929317118204496898651828333543775863044118564140297151365502952031491951586186683344174905708048732450860745359101083375975821303754955481530441408675280790312972757822938389498792686257708993064969579312226012361082528385620343666765564349131155583196350362519212222378480899867187143772749919690872892732815220450150883499829733463523819162632014322722144059017574027087061199009043791445725817394566511039657089275586438227632460438716460302403128817089212190200962965634647965122552052195528656254760179550627727359393931002664448366190605581977314087619750791675741843210723647851002714692311749692141512536801948323073716754814958506875144663838967341792801080817172638659992957060050680523555550249985687129905910684400375879788639078742300643122729678751702377755934412151873023601326715680346810182710703796426652381953268506504462881749942625930533148800656025260997217080571281430530734116923467210319914257717410765285540986889873867304394038978327272424017918975982189461992705432517287810680927733296187373150382394663955246069460687190323766907402324015066524455016740868136799503437160331686760070739544012147443359815438269870711377235261032435216123530745240136481835127622318101082357044780161374124773928388160018365789479234445771030860061361144380485222048538936035754471163884199042135968234546484211786085825513413547230289258027446227902886816722731693175704094486954120940399548565999512130658462158112390947284963607282362881299372068752827393644618666632734099556262914191654852143856698443521682006362868218868166832729972624402614751562955346380289177885268278743851202883080421176546586805484427127464778683855888469160616035866904020617018967565030262629304847026496657671222877445040456406317199541630805480309926978771881368359028345787408555349772206274098028416483823897038542005808061011185125977640709124192512870817912800507387785994441089952790429262125732201233506858442367736549321112202998990465172438244466421169221625244124530308963121083684074745804652014754375677459011512215802606487089423531000964761697851547047093230901018423482410691361748340212674501518517156268135192296457372368180230617566472340306725200910416419481258350304188136451402253608038336734596018267476864933975346245445314977326948006872525887713802837016717118243162049403663841595634030958670309327065751652479472739393623078152209196102558751923496822302528596975934770505865235433106377953946757604109301241904485910595805848002792082048632955778036808443501827634710976644381601688176495476270793407686469997270130224059856909493963345634565369842681647677535425619986544952597552327624196969352649721958879097481906304904260989726692428498329826172652038050187290957014771461753050128337949557597035307410474111468709275373615388880017191622135926554427951569270253544561375068286951826363613621630238177713400786709768690242126105208571922836305909138011261408603830488496205605738010941633251866708643185556901880298436075089388053694465235930320159511136750923878741334608796354223460235461636356139591449457094959382013250176045614904046680237090926705931596440812724556397654652699501323423126602186391645890738848616914414808360747906922289503994256786892462086743672363302307148590799295644768458273174513958929588389667127316138750317832513243669678072818937021087650602471935019258310897345436492888858919284702064853204648587369498867162440605236886797697964434729405959892770967492770427806241345114981026552297764981021519904579730673224874667866345048625032255772163886444548735003443355857142851143851927402686323060606027708452994750302163750444908490965818418856115670838820043153625622588565231717914167987643230232677331057154563143142764948650797290329246765106206723899002509184477575348468580579572241613309586581764932879352714184609121728157638557569984901638464793669461691101003242420871180343184133925635437693666637722001804100212027796442161232601043195030662599770397520823532244202362328626338987792865458826471333348124738274776454148662333206411941342623357214401078095235898623493349556147101774216009772514420019980007833356747327940377530903279694232444259139711675976248829781511465653825315998156010883355196471732396614869001587248752429351601986353958494096467662847557499916772557867866361183852032142096833458046912435870136418934208830453655929785948014256291659010657697514092145885189363504029469973895661329169150197677894545883209714720071659083068773687604090213318175019257892661182070638324498370484186486230926918133976760758241641884388964228159892971823094271265390280700958275467135888123170726331556970665528663757931259137218349855883069151470377261857620873835748943206196094339167577453933368930448854947185514297504777593038410535212167260294930586151290866307826291352895134725022129472053757130242314463644371130397776678047255322670804078928051666535206753477582552248312739073169078581689251075280819654232868241639155645512225765880063853306714291304598448587870171303293614656500532246008514825461936715838551854257900870309116985358442243658355136651275515496025120245382688093716637013472201359303920462889797660399462415136044452478212857498551245657496115025669438219036045805102811974611476743719072055435490148268820445487916856520914493005600693494395221437358604539906734767879192342865035986303857069632273332863325438491615929296755518317876466791089345929848529112198357473706061864035275924806047270562300429327058644504538099278655357502325804865496010713217719776261206165339282221397590506811041496910673076208121928325241204195986171655246712455083472885946188130466561692470545384016886631803513066864646797356814903512745715689970949286819864995042019547947630778823049348490391203984569529603014329994910584178184399392689003513527726743920754200177683876003159561785756775598496978839849978194138874698853751052444897617080689578261512737116608121441733305907341746018335735784408704378250987661103077410302466481192376220949580378094828986577194901527208686105093971659000329455494014634202872504059556187062430840102869630541044178528300192153510166627731691374069987414596579864394816600266382845230718308461730716994241504233379722319150428948290300513654524801510574172140492466820381540255857100380044127679384817594350497142864348227272596401353563977056631322209541585063111167588533072946245748629341603563260967655188183364700062891954730919850573137914362800833260609833095554624644618588256785605839939262799101777409905946384573653474007191891484800608098384692416763628144072200244920014163353498580817897431696596783477203029966070018287611181436491788583214975922011494662812839996361324441416779557247316415939701529968079962355330438861559175099530644786163344988679378062559181287580525377357820017557825793293396629279299504873631499209961887457657605486115827248405879454974711328994593042365496017421030357614298954431271556904576820920497020840652551404362901220171429612029334344448726892183370823541803485503101462638794298321718116362125244497412287742204577232851369196840198520488722842551338844284594981379280611451943769737535988083617510856932544214929574374714599073274384570047778653896645367276379649629414584497563587482440492823698208188187927730297870844269132050800981504362065893969717210600202525496838526089535503192839036745094102725727035570522883128031965746100233524527224475219042276275715982236218925922669659818589323689053099759788634818480587900212274204759293465696995726019208023136117986110086091136951135651986883182600713129888950884424385713529261388832674951572681757703843094164367986310366463577773292138835209621076271708473903230841201807486873409676083250688554620957384968774339837084103032553681972427063120870499649735028722557429390408081498661998770286682277975535183861066217022592558576515817378019012701864332087720846961454144749168309016451606280712038152234838307671177445494091351814526253503511933149647526575811068573380215267447999941454774828609946842996090498680685978751627249112185997608831865938107987204922805361382169560429133394002018188439411216189797606243344278640367326189010682509906383351092397919679949120036975428180140448010517372003598034426082844357296064217729055419769664142863113593017532104208227583274899804131214219407563996456637509238058305255333312012096248241330436660234952853806230932462044690458825224974816336588185523529837165415616748798788673164193908713087190322060360079115451631781142627989897259944347547358823079956935763558501820492544668453855568989051206452822750957783571682990206838922926253085440342214378827403651666660178826587496797690550271104811061358362582484922670865835037324205376463554982849422694372340224163904197419865719364236415351258342655749160591615139575298490965355131873098202781816664300817554270954714917006608564129029452191354112742305713036229222137221338147150793825875291263123269776392530580839655640311376972086209507228503982911238379440842310338523247794755903265779711560778389801651485144923066713101755650031719662726688919512678860166379899739415351610793561801504341307711321772106240413452879188238846186392674199179943367196028794077311888618439867117480334638253483478827587479087905140089311581703479884769177314881768281695411893743742101968488338565474907081344078262092526913758534915013749220179687037560552091301093556928713707100350994206417605297846901649758566166666338439009455900477582252251855819444116374721905186520179276424664850050868292993633266936827309725974403421851789427596171635530537272671415854148770887046037166730214090424051349678224087756975099531485418739808055760981098270275223877803171093988660143573263102332546768232859375781927043289721095630580339913458109548811436854056417236633793222660647042367156099557390113001416289493652407271464082925576086693008898357165473134196451839120301739193602031315866054337923528073777563088000835837372986126613176297123288142016828797810005046932032574311962924363049644005402452300997361217546877160946369607793506207600359420459826280951532585749054961627872812332130392181700727948832490414269071546445696006291522021032678795612195462679593487336630685500487916804368655903017586945503347653337269351449714477036953310445073671509068519093855361437623799401012889055375543799570560414700462947453957915784358619862968874742742126502723406388467934330573279269022337976569364540517242792003957178614806924457041490554459611283418499781125133854885734861011539071375354908313890815184650969902272748653084105966474586626771461954142424257531370274759793856985204637547301219610968020174710805285145921919857685285528771568306418793579348388884089491544842207736028412731770914420994725928348801860146336245183660264791231593076969241525615333414940313041206360668296533247598131056805124208456142809541797167249648147618923411021160643476015249907806626904184931300119036311997218936750608511859146610067894485857140848618267305241099652393392308790258794964261371887116111268246982538604595512634217018396704775325157106197904020900741405511775100585583625454820781181873902674720014708234273692372552687319710799308694334879619923925277511611886920468925783409592628391898356782682347269769280643551480655582471799540476272571054261225205692524037703119924344274833581317817261128365867165221370101702705666246267982932470272311026561831901994796070246460039646033355686666911155405765757284110504569415342814946036632794721507081336070318386872102095897515619139205022757830820814436605005426082607081650564167198907637196234918667445133550508671459819465017475296973366846734729856543238432577651045863266491953597193791634143000067463498305493236403536237958031935587216950968475679315628030824482965981840613035358765301202259251635090999478972616416457616283719697469711192933542170008199708198469759508989928334077013690883631882769094769722215818115350243973588941630810854000569429489246393118500753403671223328699363855437675270981412203789659214060918694368101251917194851637168205518012252325499518785968736646264364355237625624516258645227652378166785011844450081605482160938878769968171008012125791132786854353284344532850009207082959984924694256397367224522610243117563281213008161810540958009583444158191990589222690567696283520647885030634438658510621833404892703540208303782696433871561091096532560159563382563792702449597320121741180935413203013473529139466658981692071616457627841808043609464319599833190706681004593540677928083926478316839422569104536103536331439536991530838376154505659629030950489259595484446896409447013183952162291376386900170944242922048411316276002122282792040130100795994442324213408337266490393809003215493057036383753843811211409578375232496150934360167485422368376831079832837000136740446944779770999641746572017621152559674369321641171678265882389604403131597763362732085106844905780966622420964630602536432809162471103930150276621707678730471982572605107175557481500412445512870694110047216242099439206747697320368954750699403141745952657177201967271161913756090399511407303070923178313057531868657173763455643393479380096721629655375599874853983922562597963119502911599487603113360626000247519655010630213445938784685073881506658086768210310623563913098051614627645450524982748321424989370695076866628179512533976870777563116420103626022072935366655773941760073575971808424613003598432131341434023544657449278317568877364805139166146298016399963313347284704758016805606694355497856724027771136581491223450710233258752493895956246548378078688578588544674709480745951542675604549905922318044141724381585029492174432064799398501197447626701969586768430751444097014335837007512035908883241723291528861606943665751018975279708172275288303923328801530808627723241346836556088958312403659367940091032293559735960850939350990925772494552234974762371102401577130010313592358861667914573515956181518120755001965204814393405168238999454489864661823242670888279378265129981571998993867954050302130502965839541797021174497234867405812465108881169615341313510300917023189448662102274586337845626552208921726870803651463917009371080678702267462148132413658046251018588753060762593344661814184194610457567948449947687089062481189638523579005262182488441982081354945026532307337962766953612978355195108534142914108099363149023437074610479055588581781664391679397617646677258052102244909494763384886455726919942763624995146954360785220071055358348825187422232332541071422695963001747204835630653930368515712206254956556808197749084328142511551092251634152115934480624209675605257653184582163840461520246009250288399054971529233516962982234493949364021222936435166366446991657172680954092027945590507981667763997742481474294762816031429887316577318197506215164321649737454332869507773944701836894165380921453681426397628896190412838271290482978087697287110983894119389033780538474627419047372259567596537909141660633599280692513090983720014745412946466927892635492903489352510192957276244708908475280312320573709584176038698672361845287296406047588903950992003901286456349976976580547800448935570477731184728367471506907102285510257621950725458981048427104518731244649439938192966887044645411267145926414852990502816380742763917643619152530992137979197699787582211954271449763146377597026449065141912837270507810577550343201218236735013497417474164074024351893981601268567498216681520769561107153362923848629397993691557876153881529081369981869297189661763817603398957661075734911819171575651826879684230124725131094241794037157140848281711000696408253533529457464211101572881598357751267978976543961566919985807638151556535451950529333203455032479233558346477403777151331758776586912558775684245753799595366389668882101768792975471294668094512884116053670944518344912806686085622126517990159285311997707194851416968031532882300134612875116095360651750953142740172759423206592572434601602953161772265620392487877705092991926938089533774899999353718392375858691522771170828066282386328218575377591779025789697298643361494064356416639859359237073128007736458060830208339961351141134061088265407503218036344157479391396317640222732883492219090423212670413985545609961365149409526372308571747960884952238762752275677602697409436506131140752073314923092179814848640779779273960275324381939279374898353623818541173083756474572383036112862421652962944719804487879194518820186412990180193683711454626504789455668614430906681438171800831697570103173916418268951776683399699450990550213170922208185398017195671592184173892713283087544240970808379500849653868842413938871464970120318399952459985686293038863589179595836317961478865965678079599200069598065766019210046863665741365500182335689204653396474689278545684409663470163673767717287630810321092750304252204593877567233774856020963836322519307136243395823651052404897852305899362887771879042811056393398830897737893375018467756355070407539188193074953121622896255177469805100552672643096386456058360348927759655179965457877264195989562842260244204945140604931482407113084029737805369807460416738998150832057234531706902905934578629825279222520037571227534321194122307071725055591648203241854002634435525313630534779421972444587490617835026323985247016794399657241395471843063601514584978391618357397394471103992403686848682336535194674096944641021776148907649700832438529852855694324924261916316762084809337596027117891186105538546045311460124620173128579035897766325767360322379256818390695180001328300924042003476712148172363768812340675273703512642645704565591675412023772006005954472626005937939799599031562334377130277407024716129189042959822329248044378896475928703028807428091521886890437383496444522580649767010090560422916461388122056509710611933725788143274369922396333464299719446947542715282484559420047485159614233839265659369830542692781039506354085753088608210471888812187145765897080875026174060999380040623713630916585185670781098084510117032290655915994716415030280896659438572607665898041165331758167724154618310836652643800951192281544803336153440560679835901729533436205386556757358373054981721916466687256907320137088340339020999040528840720818755440901272292078407639579467115571406814039699855292670511885290932161831556284453234896749795372048687952528344966399020514213520773157201473271089802845508539831869933054429130715894487621847650622565402621281703961515604196855401426244274935877685893632240020999192782539997288282738591462177551509993999690343138943137531502961714078405266650450414475156360117611831973941404671642868017626625552968377524067935111850923729998336118847074656751561264308328295090464464742486470914787915057655547611267997546199675806560161102889997069196627134790314231618209509100582340411132242771648127453887151711581626754754241550404842467814867902133897889980513432281542886093121676112110183551470141545173270666447149815386493171753934954102840693360363769774964920270033249519518366003194584810056828417108326203629068245330760079533444291916292473999702944099238248933011784382982812244194331244182142459135152445975465246554956632939387867289138293564483106677663789909303194698777108743663709944702960774992897146085774171497153971213713632399670806538983165853947058817891119644448504574206635300348247809996932704393987648335938591211949964540310411464690140094586418777213072783874098345442192440420996484065015099567172665514738278288613536960045431811141435833812992934875473917110299694484628381339312152163079911609921422306874987395839495813836264489690169088523443270921052823135623666619507327697682739844913336800983648758805688411735030611647673458205520962757204522861697506227958370366247722465424950117844423045655112470466219478731862687232915316399330209320525133853581257043317719550277690010121366291424427562313169744850388191906001455467216604348981353364456172175410660743095583662181161719904742765721639198586471764681924160893178900797688368554753099815438600573518552971533273619314395374851214988579866960305813019572172766469446936083621489345246706511981121699622362667791045853922193485958581504843303564995673041363502508550186004338648724135006716506525234164665512296217915102804530259425267625023559425624694079605166186532604047738953864453145516182065268466838318172919283287849684706674500603391954003057862006293313796515469245402817594642966759295408754308095988265805925561394437306700082677449646353287059810693758915362711055878964396224764827970367110673666664803225395027693171207519412329046082729523341309803368268163087400933110369613484260309773747818467779032420347417926778183999630891136162347621748993955505063965164057049219620184209882851299742640912873966858111672740213555760990291861458862810373136749429487128659442330662815647168381180671756890495139089382037695369210696894947243455932869025449995294375957748356706310861734350253430818804270091179263454364560522087343295032242166012015162800456011002129430077330382468781650446355295187742510932637273516659017744643707614302945219844303926240495179590105185495435370001540785342379758577981824842945241777466699271881565648496087175868427857563716131377114043331682787253240497119889763741839685296624425966022207412154038188166666785369796693729876803600404787394897807350085369312536085626329149206448846520599382666774705649794984881114890220106462996949352765607904103531059300819718153424786990660601394392350601299509431479670031537916935756447330141633480536221687460657159382866770940815486539926264862084386231828283512395526617955412504669886123312937978726487536090024596445502621853121174742889208526678618527295275579471340401442075595892320044998706056831152934351552144011433216141242255474831970181880443502352767486715958885394448989190052067535050881006774636487705295585392248720538216386311727241433943004379003627632747628509688625287393811790064386510133867834222133978807840746299465482996860299719094808389569005517833851347969019571024625493868415200544383425674989331767070405175828909697665891212104056279589519469115532953070626603150830016042518289185396382620387694321279778664743408022912974539317442704639794212167325418292120406686753564387970349624416884040789722274554911102670935800842191839209520671907531120681990162001791579143151777780870063221368809751675711297951437681228223632984688895106995258338454427290763476052424624684361975335711904384082047697156450546826711347166356920509214270213452846265193321953932518116168643955238701387621782990339930405114474447866257255581550861138458506754815909539982091032028137545694295450352651965520746426893365249507816250917770115007302088783704113856177473307871682854739129519096560819680055302447417735576235111369767365248651918224776403777356257228208618534788968817227704250380954796821359905612617897349305463807464311738519694185220887608129281354881086346060461891623157891298131668370084585570141800462698555816342371196115183075612755627048522786405930105321613999085772722620109105365406679390592661486791338284704868238704447759944505491886253147294280982570310852016138244577265912144222585453330739926483505707580564433727222871707196783715443593935364066879543176457353380326297483107811603243228869715883526352007413792664862346148560221705318120925861234300367929675597848525570253062380116895769928480713211881089713273812653715783851555181091551975032128794945647314276061531801003644533869721976004188341890902272302979576968978595531644719866003956505703407958077604676405436034969853490023056323103534631938546930531007554714644527416496934547236598953128451257362447721067222541507721383507223038024995815423850328015538065755621682950864778915307609594241007342578897411855604854985461153686364267019208614500960835807482891364677753021350320014168525653748436981955103226057288827598683187571693014521350416400113407371799902634143778292640556973437128024929259234721075576772766307272127387552442100889853658391293088647459815663105453159305954498271712361209981231119326835281571602178682859529474304646573076216311479213727292888577453139030936926433764011043106095373085463821741849899702032885237002597861248803649084878483182633630531122177467347679292146401493178799422783497027705566758335689095308413421059334055415277712214296164864151046977949094370346009789857297468946967403059623901375703706130495106480958429509577347940634078047842898090080118875490637609442067240706977960356025264544829240375527512702079402610691960252948359649853161727218418513965069170689856103555778223925177986449940411252780503512351476133940423350411611127752057908387129237230526142757542468665090399895601970661896958344696203819010673514004445523791452592065641481758429158233735664191577331506668651635041633414147219287114654602634402492842657699760503577325943420133913108838040131152791965314301745602292045212111134364850292510879998507049859847661262503319161531942271284051042662131228950233407097420091717404224840619810176777379482456879491266945076603441122172140508770827089268843938752901655307885711859049106331306489651490877988329462080720499057942236140026424928591593137791433269194683076524216736515776359186266165226358835965630020994075127383861309361748034512326430591250538215329882193593934300206469555699104887417796534676228087293804345259527611417216487123548321766160146206149757493941844411175111091159451296272425387438847391297802238617375076374244840234680488446628132908750210793901070919655279191330257223322259020758519303715264440095107747099111218443654005122984124612954253310387474195762977707858435073368618797998600643009718622915395292211340361193983457507121270280034724140566355057602999464516075217727872191390051241136431191057065886763302267267312434466039144673971937176747388025919730862014340912965159791969315006755538003739457519321312809621406557703963741130952654718600861511677400782329390876099203173261980304705105894927093373987862188899288271505532477216324022916713977235593550166417890712853882862991502858449614191750281334036219894924776790693450315322668457308847538913984574141791924086830528237758788478913286823668831208912268384079592629729658139746681106448637570464340952469502660349203848187832233901224396937622852677708713323885699720915444279661203776352842927903862933821269920240675767353194937256446893369662596276155921497069674563528687319251533707316689914168510566217583413048788844714345704958250567668171324824231007238860465152015103183598020766167099920038934942410516623763775771730318829647417084768957559001645238639689172273924610213621299047933172635242358765183190194604367026653200784547447316847269411494688823427692165153237645538366380165308365491514526570961576014686519329993283416687221156396437594158938741681101874836801744356800954075555734609966877384030334207503159683810264589928773070328314024203069920400723140677137970253006209938775273423347072722297063020470172120129011381731592629816756642955350079020804715590433388505305362524523540414043846614645359035830793246789322134774250806604103755480781303259853591631970083035484992898720976100278532529096219016308844412557590471790020874811241818187874060350818235151280153866122529315681107466338748592590433085077615556086114031733868624092051899319850528639278138059769995760444807191426250731269066989121226082215049019799406560634387268286552066828674570752680642843477114561044378886129818267786219567196029933875867980084054311600135855010779318425000300379381079689658058356301213836999152874659982567493987946718676298359024093876784790558074492884217068490613146402135383097440202854074983809402634532626816837562453878145175047360592096560943103425222129689973351728829515049184363395798152286324413455213236049296218398889851904673904980019722190304756789796033754487128897753801105125628820929930117928910779360225406671784545089462717162488544245865963763709917296562235791042096815770766310387963349404033022688170835185332086377208657182881072397149795438043999568142422987356422897458256310060441856749260391018807352291583537547007559393925000660130264315763075430777980144623150724626204311925759625505533490044397841551443013784996791805663844445626686785739847214036380066401237117929460915318669867677896345374908441801882700191035899763147255979693934174416351629305227745471975089111850084260096451355038276395789224170007499844718759684628853445574956789164676047628944780215428127644314479835434125886522675510332901917221245266661466341665262605238167932126847076557266947351096833366891211785593344869385771545834091933517147900179344895554445429917248662309590679402742413405285419218219651512778599715585672127684397320289693957322466893793679956881944361239417095405807691203699290855635696878229268731524704000936271858764195799216802015146062901737472694976112720001358022672593186433516364279188866841383086273626033439132867819071520197451508324213145123924256452893542168844067126225029756694376148863361727728065322082049655679588073620103844684812379678462138925578914903308695978039610700261060912909952505960998996402630092728118251193152482753696394511454311145671391302473964888886550149107923660976757478000875698990536276662404920186908764307446739988075616026963287679203341652370611420979361156127567975043809335643135391626529413291158109238917027702883537696015986698766714161261874959366877532733013044065226714850886446087420750888641993066920475762017336095297470781004978066821488622329496594242394696278295342207843156977811615094278060611048826968752311073883124667811494216505080226287822034459795827479373077013841406999294381920695541264873074928093256737279654458947194122776024786933650224230678980191917979079696565137156544690968480976196336117825474690800092532670967580047309346836907980264458285186740173439746775259102154620128650539598613553439965343140696289032607995831926756062153572711350803899727231310544302693490217138750475529967595891780775755451038445531437837683244385232717523229055467071868362078987216366951653796080892860728998831672938791503850327371340552069458574684363566362844679113752793659682596526283102592351898547105309797914433849107890947152215277315218303827728483689498200884505489833157805263751929374905440406571731182738287937745643052157939028826062426721681716725164833317383820700936920235942019053981562741303078246665579949453599873325294619746640840237896701948590182427228793849073190326673031626074773007562813171268921635593310806788364659937815214041101271474587529963913669420606971039160121621973559284744293251980477381915533618440916411959903584586668395280708948638967273755587351119867113541385802053884654252567095147915083644845377116077864211364335243627491420186873804830031270249772268310000397283776870959375552314189166547238055992496377470643937398726027512929861011289397999236908622313923950936908159695986496552385388973905322080965927993808574979487099809056710308216249602878467573013673624707458694992193340596929135969973128220073166490075485151799408552523078012211073232128687267861652891060931848899235037809459031137124322951593177618036006316533036966552906358381072834247596843550677371950353073205989329360307079590042040952448532511188182115865871897193769386213927360270972438712734477215676452876611361824343378160237828502425582379638198765014520957192337608672063558659285364056715993423279115388661718995328779048664728463744017871902482999662436508382924222559702623611415599556133036636983542545568106491038051009587319386816655727100650092474096706896420072469852017115050667025309191507102595428251530998795329591563881629880583910320017448169497154214517359545541069495548640144082078516082231123825757606398559337623761402038122909113828578826567749381591610347990469302944723066634842838175270889189855773346166673953069940941116503051484715875913968734006321014699994495166010243270943776789291461043901574341801889258764794667715715093445791430385062998008536938478586117564786174187162336303458529975366304884174356557845840975782028394978848120138899475542439580954956214960085962933752891102410564406759212105706932540785301519442190189495264874131792500601528143807830353586725363091087728267216850306318981689658543748972153108583149402676564456803546714214968962180286221383634321034770692115141318198273487118421937785441613123414717015397879260447305549103554392527332002889145318037755085588662946647011412969359444048069505447644243066985225893829144583849412465111382532008017795015846062274116928615571554443478391259443185133494446511430554985988039498412256121647253539057587160844133582577620857926039585259176913965013363600792968620561450845027809518773728747640520528906298866853532013895815188367976500835970749352460634907658785028780411689027751998060282294082580231569289209512498551625843708346486724845828155137057658692914930172659987180601274162779926466891448209083502786817496472447480897278583520700052217730506849337795273388201650314299645723395555086177098238279560220579296956350057823082146023616991950848480981343581319627934660097663836728164575135774940382514973518079689727110453712639485409043779555105813057928793337647089073307571968885751698690711479884108882702266442794118514759894045425680836349143863360556710050098962124747045957639537864158260955234045352843775008790867079102339118407110003860450948989951802060835795083962887232715238700358649905504677164721992281364817622066798777033470164537222709435006432400128486475958543643332804847141987185113365007726526269851665185505511774774109730414994470192527221182227098386872627914010066623224818386185164249201767536843961620947913946647171264022633071357986673391092392217467690805536039540220207182965656153535904818495752628491275457328584911294921277123753376722986485095338696367955622656073648578262755428629627778427104392246454437063927106070370240795613809527405909930006572897462289607367124536526150347810276905729701006148620359232868084994323837498267683535608666047605613975466957351232088191786302302028710657033501884987537058847618982636530227926568390445909608888130676700219967393055287034884941948822827234580108969246047460071953856328535506200475916137960611570453914417793827266069258264186605978043567838371787073758403077136756232777274828644844961795464826998055091805660595369584796943126128660261598954921774393938550933662660008339147967514242779939972303539270792939081610316914879716837375179916343095666938044748176428330633115169971635812090231480091856746316781621562478953296392066176150783441883901126651411174055885511325994082373371455153333379944336354656086935873544302273445467063679114918992931555888724533108981562232583723790911347865751612472804270489397653169786951475207224274726758205343022264735318984011966982528352427174640905837670562797975011134504317397396772826544197546918757422623863173512948026959797459513276331504980391008745446275944747663826784311464825377951116047452140100301099508101166500259811941985946334592496957674490749908234258512292731107807773844298180957633766074491886389621692427873939629480668367224578793066910835409376706299875847328663144331452998325000301873230720407963083825434707263885251502643708468622002478901345162628713478193410632204999880318128970268261781109145613225410770165679088103756821590300077435331204346575695529175926899880461274671045097875449648762405938625474500618230307885564547585856368332786006150769362591584383411552835139425584450724463115109257063167482119825965353132687336712220239510614440288872856865466330374559677277215600825288381560313759452125408783657787287708879058396634950190911813068539886676136242043628699281308026200985423731085001827121936934272761759605316704293748528761544655534627538405240490726235188005317383236316565103852309125449728091259561206168303543906274637038097988860763329139743562983726639932189330128563748825118869180980978015855998870343052304847592028698290975152789296763757686136823085159951324371413898345988136215265009105890703635499862382804336985772981374388038001329376196677227509148882639895408799330195274115164756333108748628271025662752187038923036356253916544627009668544294393009872216112116915782841936416677732058169685754185906337755267407191609540385853387235455641493258725899834466145150005980991834329200173505230684031313944223422143760058865626073841476844780693202726073570173018815143916822809907018673388281711241408845349713588454888201692425617423187059900664949828326863562260668922930877135425783612760619331843013214294854809011268972167818161131304786625069376282853466949774155650445805058892645583874575062120690039836357197325922729716412691323368269876861372144557394023492836769541399851727645811570796253673543929086978377404093928970540357601977604906710194821130645092746111276142566409663250405556105404517907333712659974606053518923944321151637638975633882939361387045627190151248824835043036261085050916274169195989060563990483571645894509667175714438251687406147037534736607575878557313182299456513554166545681290928611185363162710158964869644484299233080039191141982590345269177926136676619321875405712190923542623587380772040108840595550176857395546032869278567165750026211664515156306408824221806106349998021361600448500847949785407413044271232897954958698277442701749831201974088063521038028326192140973823507721220575389807512780294535751252888977845046935107063855240893786611488557501579492242420985438660784565375271861812001048566825444849310952727787095080145298271380210211531180238019097819687628764299363642771602978907461783144280147052732443297299174879506631611755784817932874571009705550188327646926661158684654058400324635740322586897158550289262476431505369451435456873617340831633500405814524783922686286500859989881200224231417649801915755873565705249151170595846159702797688525745862977850965214772501603697559483905587806598176424316552431206715938532474457035060089170336800552593270399581622929400593439871213878017504395871701934224273700136789856635899294972050161077045935642184750810742113012673575341036500899513373141920173722887197958301682952580924652512128213388915756977188854414354842820960247310246259660363498737839065576150138261360558146736243493926614149930417555504387169293302084477368740452653959946367254664390425152475013429424879385834025335288166568757811137474098704215277271089964852938477475918457529300518402737924219986711228532909526769148633262536305748762873590380632686908293914541173882932952880813923338166357469479068369011600529901130970391481964568984485198555288277347692697008535487000684490831923497554936194547721710797925229900425850025622124766477275436339263566377037096134306647399347766881383808550442416890315252877204569074217377677569764853689752877191867214103643630046078665234517370808290805779048570831382680399761658046703768119075643022555223879253250771207561805437228197953834758754875144260076795343840441514811293316812058588433122693109014748096833544696786474589881173820916228803245203359631038385617443470715943761589842720499330395578595390200049389385091435130514146732629601757659424546499476584647232330936897494777169955536991970075427142772292566724232361908007588143040560446833028546742179563601031959613522947861311541995474439863758581941039470856485118379965462967210562759303124300331488547055942518853810487625261705630661986263045910752080838615213399163985403135870018537070901256921918997909879381009111343241040566124752936636432676961954361651805649411774731109552999645733052140939037755714759618425454948789331684826352738973465980625685176331843541628670334726600749014218245514077523001453081760209897776387414282117088125730007800132916541584928321999757920159950612388988091197581843999477288565118325462308937441539812149190556696454061916877099996870132822528979715024804409832212502708551074762631435252513331045949977831283708149874382806273506239408248353661720916900505039774033764576094611413761442388472111512223858678485250803676579189664545735272221043889001987138011044295467664389543390788888771976261656874839098899751607568623221104190755821506584409566051972117113094922157298438894134176335151399432291903874425918442750869588275372312385865962251436472707632085697064886593517871843074979171126221905683285696749877014376600471473105498598467030881586046062466307585768648378002613272726256054290121660109597168936992708072531536518508058867799853599314208461514369973564025516789252241925138863454769410757138651041558174835850860679988680432611173212531237645158451879529653266595381824006562418496407102197373484545084483400844472464757278098696644274912922212461555845250757422713170054082667226587246589773327498629009543591797362820184522257215426402302744939749663107239888738552039055554003405515690005254124119329939683430513166404379827197461642775667513130966151647182206699953468643512616923417078902060867460801847410155911950220794845739459635928378941041968609790547049776569322148786338859646156597159364119813997606276619257419911967666237325748577652839100761482948357805069536894383335212912078580402603631020446979594415809159683628941921902012834434855631781066289000291827682782911830553132633445334678339660214566625453562841780012729731561168930144010708507109718117997252510638313062320823854272334736956683564628979930687933427533198043426344011444364888382142186885199296416979422765416883053445376898526603391081428200302476314915506359537060636155045730354587535944331191257321011865722443540862600205218507990188620898546600763488648433445619979380561760412523707170735316255622454273733582784389759573984018154669643643913622287158344211768208730613516125318798993110486814358689225681476526358056817660419885987867117500052301974797159037091667435781607764586192711061265716413553272423234423302124447637524342298363596594677936045550632910738695515536002695321866445480949684048240797199128159863508418566219052186166382250437249610514669307245279122777493755691436290580744761853585703855241528874392507025661344010863713315075643896842172872920859414975298503858385930430927483436777865794466197612329732713870850018562535799483406957674525774518554827220117657804299053098008824651776761411563397351238261299512018081170202758405642470863233007475614536213875601578080104713645331427295426966323944699306751547179163835665578129440812139501181652521041439851931746301944768611122873088477421466377595628689198268481096570162544290042393696063303806141151122122946918966731096689374000170629250544386761698453286493740999655294784012928431117624875004764395692204361499132452604550401276631973632403258970699512057086602822863100698329140685176205406251818662162672650951378048169333993676368362733829814464019518020638385804918216542284524940905080403690996628512709854803855149518133523978529273580362910021743055166275844311293584244539221145802391622193262811405998250670077274806857501192869720460485133291869788576992696628987017488300168987892778857734445368475440322110208226670140275860946289435471984452547771292434681337668355541771716507398275325118598808584138782533324732112162054068485375072300881030221189953428270152482011700390944540078567942063326691562680646906087702663172239393782052093579088671025088884588641033901024568438085570598780327151220010455762552340797191688630897521600118291872501337357391274646672233073229537680472380360068979271181139451233187763271232770752791841371586612482742909371410375947486622267176789978307313253637350024749675383268496776130531704215849261870925527681591277268795379582904060311633120364485543752018820330625409670941268738181819944829757898521860486451712088827958876625457753918217166118422914568461483385497224174237872907711012410470517442329795922661462221303565794940381147046896711456247044858427241065933900649094936584026586312422353459255203113274510560635974119941065464832947914439718460190430995847691473323472964032822318805318373639094241122762113888819301175122700004313086920021330674414919588241729363737868624596888333865933905554980734316071730363236168050042957518632424259175612909904433858340494138569483302669283336507881384151233824939501456649383574940478239180794776182187445285825704558210155395385069683787853491517205647394827628595647381093541191207459877199311362793318615669149855137619763239510983136249416964325942615717863120654962935477061465611191768126556418255769565142785834306013874550587524735881136663449812883067882346909307639652543961574122081389806229669940857172780127323298076869088179251566500859764224777875626791175112161774677718898701151401839031581055953944265215784003182404333135785756679568958923683837098202155823647288457715897679556999369983504134768687514401542731100677367126137004616417597448686000850994553284816145529938004153314508260601864406157059575017463456047715831246216732154811524694623413209356373084252938531832486150005369344825922529266928510262049630816171910452397293960299323015942133494470266539336252576748992807162026875611837738742693195628175667607263572129531365528834894151765129936687298516250178140622277063072170319440374653458298282100971726720056193001899499511806772772881496811392418927015971639189120005585001635458899450114345683335821127992078350281441192441285727452442546747612494030545798817572453010821352015026356793228108712878125103805258159780857736311366587879476004184021412248240688946487905395308203129667868353731477856611207078991261148640151659005151043945358322276914150563293084552884442329319513427771485414589065542767063981571424626388695287438115040644580757775569664671645711567008441827615967916381553312760096680968264557505881309053835865749271093029606052185036644631720617430495621776747863909985637366392576038562636240781412144162365841696375305343233253344016105697245711664007230034511504708134109654411254875468167869992536956826751123475268375035509201678930012993300161009665648622464812192153319942098364073199554328525065840664374045673471358986842687394122930199925737184378369029508458033827034131823081934517860230998977143038646125000801814427109034130121016633912841059526520390387162362747271503713633430610937423916168709397332156293219402512659731462286071925310395595371409799705675041481023524616511612541811564639213098886771780947007231903264338552183295720499599225439837435220266435921046950636216865603331549808670357765244907563919042224880328374491592318352193067135865936043802381767792894178962134538036673806072807247940119990475752478590380696641136239023364675780076097020885399321679108194476120568434674782498818565554130220456074057592410355401795043750940924590890280766197261840365824100444752826992220152485753339871055686580899230759717020856688528771131808267807770208657375929396939484389273343521058376105306484875079057718704762732641856857292777535722308894197675041775455175715733827773384891694046422438362390914836242075409099406870417025327744353233822290754850072070997921178143651539761445046876628605216098052784616088569930188522305745637117045237969587902690360654664451696404792245751396196973593912248383890589266278890034771710536492120491698986301391253499608793917957812393227326042428731358052234941995281895141099157270522452039635135942306782277967834845180778319808107811507358733537032105691216479107249912860409253367134771354770001108409019861807595408084232459448453334303501047075547482334062016278091418796882305966447663467775535964576490672693976963685577253284925848493865835048809074718123700545984191365149286296108335397891599203031902591915373322003572036775132424652222266944349337185882486897519832432208898950284685087548572242292151339252473270044544502419801982095891849310198615843238286486166317991813380074364342202929642653941810512011331310848770769836014918581671760649505905539701659585798510827295650308754567518419681469918030904103046635974496995790304901907652775578945008614023406379129489582103447281298498151274227138484172337448385615566102054187380577868076011882599744635381250074870444989713028507410941090024103415655598203786292359630924683375077858946492431986509881688143012180701257199620529023249735398264404563964097774889114276575381273178363113022988427862738393241572722848948865095407354351450054855865423078659967701622665520869652502113502709131272825212757110669293715191041096369793952327592556697087902980796281378589367586482297449076885439090458785950903819580844164136853581094206780985294801218207933924377832859331909643772616458765688775406649722741701756053083936103385230190715817094704310283904838675128448368309160306841314888128982681522513478169625048098074675680472879137470069424516749635327073573976456709355921990082422793028714409425637525982030077504554721607330020155411733719434734899682987482712392400540406433618915195326269934526610170453370846003188825528861397631850320646142635036172416285886367858433770478158687431467550165311112647294665405778622546956926765025442531669779727911162472117034431791260901433931222393814353221015696351644271671776722247001659603082043141108335385125712149414564807205836227008160937858484699294557479510290317648677148927699306214165754351957559069254695796974708268582450632912688036251458285041333445426447008013187553442533326858351419761675185392993374575769373126592658232798306520310014333773826198309621282430840307989681087944911538837538898217788542358722502388276338704342982564570114338239915787456948377613250497495120884277278907156518697626484503894779161578553040417664957246067211119435275153558135842412329913418639307195747922241567747537650202764516562568730337072670522819491781038027074313726224328352929775743398679263636934163172641732129190281228560532251347699752873711255884564486563621421374509198927370786822630642351770852501355712433002658575806373714113068915429974582119803147831529202463795506622384085549140317396139965425651294059802881903944432199721426317062341812939686412108210596275477374309835599458262240591023222701298873001180778076911518422994655014740371640615368369148700541163453207584063153289592509491311217144138743286253284243281005187145389927680311449849299699414540792769229866444124936845758168798850949561449931056976436715174523967412274420150791014518524248843601637454639358950341483182645048739899660407921713888088500115391766708428863613902857668102320093023568428288270859671967449919624051410488577913462963880833002393491327266736493273480064750883101777587407277351583061757059580810231949131628867077187833351017004319038121987384967132305979668011699477388110810541715042007939416524031369505936756931377158474750190489930336742860272864051235290206584074727249538615348742191575517558697688979778925994305612302223386456595220947310332169636466823014681601949902247863178156037959465755808126550052963453194347117160778581405834166029092905339686810371001524014457716400831577831189607455479737506885099533170618514509525377252202499009987886425827634689026520717138616129929245342090010152165420595907210497366083071188094068756012948940665785841029418304895214162361196675705272196507262902821222275874534016687893050268806422883963627679997681266105126620402544495324796921997813856596278316599930563999276675778038138381392060996558242904820652026226640974533583552186047604741406550641295100219221873241576100751620500247598358670294936130303636589890483428548686452286076896302079906929233535477135493086094294098785597522988482019898334802198894308381662203251032668379328849765447912319571082702005696707238918834535334657977924582426014704259528082831367305245939982029487590210077229354752602807153603248789066814969326039644352624440237991126229284512706609277326224951513923155117027873052842022830213851719871545661012032005739663135411090689431782655383209638744415211531271683030196543100371899784746354511536246507288204972279906395428838159600393692458721464281737380096412505671550662957671712126347103273990066463980058441123793431527014742177658042872328363468142786843342587235907467874337776089057290479800576453693451335520784910952614747389462984365256040071529580728266184457185605151981439684991078760852668547064661906938633727383009115100542536662565352973291816690707399897865153696356269776753471342436408891873767675927961559995471104194098582383417446710532457514549334801915233194423774073518209226116255926567474374955312430193171783678925727680179554674016552853445614011073599801289336523721245732877532140236365490266710354970713250121686413791756322391197641226442052063776170654712625822395771838401074369634127892794627433685770737075631527373382799823754066166835226399520377968732345345053547174132666856433773288256381806787711681539209723127810787798788972205106904591343820301549377772791498340749946400760413894284514732678475112959210900393263290288738241322776106055017206647890124470714070201953258787692255365102645922081410634456492201885081539563292683869647381329525772451747801788296716871653156815881608172172515823141249339383889740987985174217986054523649955546540087944345207093937841387990670499192957614441481599593590823237000878918179190320883872632404799004408705660746292196484290784239683873948536802772871455516911401495079866545997799192837169269790977321021260558108644810905585676897758873525837933480627671658988653238216150981740693623855557847926383062572075831187318599718144802172980173152440339987147532683774142611544660914230750242823918530505217156208533971425336953582164098966609004626635321122692854986155256037193807358130068214130424934185000153465579245557199804704459041640933358303838434581038665937613275956484975619635321734107198055522756693323722244190191821106220930071978762733735190766914869233309854066113341938531768590107025815132495820177574871946324319788388353689375107167419187309174887211147288851915125103989375579270037714294605162095979347648037486747107726899975969735046982880370323910349509144189811639978533939042761369522486021737344927682750585864719030401889959035380237522170812853518015639989166688822751528404470465219741212014573559792423722289371987554520617847100597571769553179132196010118658821388342362952615785527656747521873893237930292049855453200174022990538623029145339684246265474340011214259393343126715005142098598268779014693279984766034163393033711319633043452220964021829033935975605027531204002339889417392309902369056134069590085369462277358118473350429669747456301995434022633576828615838476608781467914473868287492193423005468492028402956403516172436717219583091331710186745147163853740488683535908935410709119194195203462168168777635046854671758699801637385939622054256332598160406906355649506510343011599353910813594792646321030679849568780335507650537785709339780901884148515891781397743311511499938404910690688177191557653785916383262466295117574482094189963232877313375936950126152948457357376469788124711526707712220738509454515083656613171529279236014630808838039906330083368016173822202764051803392730930578956877313732719718758037284055957348319550844497967113585588097786155200258632100965115117298962871073773101710701699855669986676840341425326335685609351211630156100976588619418393385343512579922033101632408289487036853341213028632931030685259786263399795193960473999305111358758655697895414711779226500536071956550936729529756716339492738753862128168601757516785828683660283462806768342020557850820584892643990006709590709017086119470346641801189892307032098689260355011028007050691852372731887054611120405142591855503638279225646946559933653840975052353695862920585107518168233032940869939180593888544794120380581495585417975026184733164866379783533411136061726084412548315109208080526445844998612716462240841273152635960858441731706563248541150018676081970230789735557940031461294343611359312440346786551522351068239058404601586356577082797678954090616406015329724169339266754561015041288363899665846976135876888237459531075052238873242979279014373735720114820577639709426271349997696717225891093294855469883763103752446962826991371196250836513443946563363667259153640847535244991450200446199249631856737820016571028747608372134276320260505098310309496468429318088566295839285922095235380508018836368132105141349392700159063508568723295977697616679050335051074887077815887828684420646181462920212671950978847850299807486885770179278540563240311628520886504112643229100677542807834153291590443989809282897219035861221308942871764464059685778974073774467628379787836077221690665302511291708011525551506019240917842421365568448101807535778747265724762788035923023740276351132818458982515849734783977171476619024582571142891514668516916079641171303073265860320003202589453146829003525527179790017289657928832079157255323050918030599026330136512285440563517939761252323814082165440654374796469028372576078918287460577789872033237602055351536890138988454606470907201173147926723529437011379749122557216331988821225063554470817369646323806276056895261439708156348769183220504322575851554991146893521321067674153832962218021213832764397005375232477568350084053062451835212024913268581010432500010321498882587429859834159393736531016035217429903796683337240769332231419377009673806381997734129707467381981754301321927897054405247966929075952882292001422187158528590934887093558201034458634042887686062833921319514674992011632757325311534419867377263924692625945288209616044024073457182304416701345955753274291930009909971943272007511255108771482681909810868234180948478401128257339985407585822417386359544130310116183342892051004407663204438842602318936878211552948065576240581679180706689878772021143798682115291644558237192298064290355719521526992284481893244590006507958979352768874389629196635080315162709719183489863608169532849971881576117458284099731482499751444341460642895632914492421300930991083146874284876462745608518375115946489953389479847832609102470987321849171557476429010798681610096186331119027701012459298983794038048317917205347811753551252037345171018052995423305924303333937947746143252476524407201887491630460220861545680955710589609417699767309077672175818355535976653024960839271316488315191100466379979202264858604490088561611382885857916048191189265698109116988707011412718497217320817067637886752064516701123499346078885944431211422711209570465172346848613546317842403908788959748057200607458581125622384281597137526589846680744134698382774293040651616477186118797111337421405073718044458895974660045162257564321333489763164191512986936332823822921032076247778383912985095182527916352593360558056246668312486271951650477980095063716149969323783762538063658972472457279774304345519846102483744853617647470663944565005442833530880174568577493402866422965624097375880853746960285809391196969539266356583856591188609830110542414330668580414467856002391325367285263918029288767429265384749543579330995910086362079971816267010914791586231150660335429529639507932249197280269860314035535185390080837478707379776628878222931025890434412811359102836385866503704316870351660972194323105197741673296685777292593231746345758562487148656099279070792606536700168088848169837203698205916886409482887191469215446013804869225774228672627003931891109935657436702617834885282079027987133296720930896955429126873110745405892825873036828652322373284258049388900860348255699184419984456158320669801335264771717010984484320528472744360853611255102233634750061589087423276293748428214406025295493689826604972989411588397362041415341338523640817151203783150714300315421002209689584491923973014946231532290326883667623234704043991595741547074744995247643034364305157533137306282864761093725817109489338238585462120793315912092793096264843861373266232636563776884065579611099200088555887339085081270947920470707782031821256041938156155368074627757377295593665492845285317290002377562723546432918169212212974075380714863986769106957243531527799858370971007128209715041461831453470681394317672072252992868867935533694106033546052426718728016485624583914800585341249688608864305434872501357638570327798937800367137962198603430794940281486802453113171598385793432521638820144129787171590936420665783622415693142797787308046996363503007657120071673705471353989459177588774771299249585858898734330514708269971781469055119036298767147944973932414105427095267022503101313036758124033002510697701014696951050742794762901677574468436656313093182484207032786965925747612172640414837535812099606771181613683931817699266256499412775059799935965533763530324391035015786963656039934193968916610041898244617046498289208057606142180586068471040513293482425998886573525711027964686910274516097887888600242725675992414044085024368246958855253303632171993671455386054449108536150402310082498326387180496905601211113354509313464300426632396055058848675674784495728718089338144480064226458602952596617765100653684808023602912379773408238080949950406639346661690286598576905970578993337328825520410536349707259168050556408107680556222454995357027144788308915928066309576943367011672817022556271736340923995810801412961038053074112460008243010134537789836839524842528852489810580111320887291093494425068569717486321935578434976003503757760783423613426683283973346632151087165064764849091381555496012657296115882697840736889532521666019594694473651378187036193640305556063647948257450820446019845629793283103676643860242870428016600445519263545767615694243442786480477752089133560488686558738357321040111093387124271311984518879313951979131020547533627345818899101811595047196575237974226230911888613816003133466743497260060421003112383909153060336786891564373728079956135820449800546973880523074276286747857084714927834869209776203793068882911749203555526410835156074517836661301126044820532932815973836662668401381539230009909343830058880209850118651126855977177095634780216816745103066898627194056858902151138725290168492473894194212247210541678232215964556049621098426143396717078211237758159679022065377614708792261378687854462849334183250734955094253252703725262958626325230836765438083299575742259071642440273132920294071128526096969416482431977697976861033168007165915397130182814549640662468588980344098356411984805370350499160404981055852246571094700758026902877122883508555639421503254548636689877800015214966842077795370033757017771342098948010929764927119343531596175110965841996016640217777869420979558565984855781810496439226801978236375930889511745196585111012140738348657726353426571358755358445266290811879943567293731057610989046271371188566471390950914049373261740585843388642937456794985244493632420469102418262538601992955513922718709623013252599638134346237733563551291209916152480723652606492223263699033714154954376877473627677754592482984023650154492187043827115857549354100344616097903205087986289256520214823610680214860154355084681113397826468814897003157306142436586491575424329296439879936181004158853755646999149535612321097120946241265181187116194651514587640412233671965889206259855190117442159203009357615486230831871214054395035263913497099273798042898261199077901895922313651329192436430248838236718351790660396828475292786900900582091211653414589052108513960968830101419349575107710630013431501473740541422229592437583269951083762047510143393364705316934444181037389972843654146257065524659899023073643253887065109047927146823316082245645743292556781172034589556891916858527346370882705538410632100554169499374429890664555531898126212946779899725693732686759193423616540068980963938993082055049570328528253109613420829876489426666026834969148418883012141215160243733315240664647687005025155925604201490420434080594683394576325872438492029438239860647397694693998175504269384293255218459692686521417040947897356364228261120009050916223646867243452844958183318317212240196879078570777774998499356595845063916240720935320174083362702356275838169285751603096436150614845843343035409732220252983859828544852131860711992752576073537418693195551686387917379098936519105320746445139417503515152476368032542496188263993207498038241749173046352526863648846474690649793891989466862329008193584773371557384561637808192288274838950471795959626280566247615761255423233634876885477375972781109988467172381502534437615829711621277764022148912162444773870886849036812910884680074144998098919755862558129456751597172950259047418027744322704090058128493200809385083453063323268895247168635267624758187278778389072963260672963615221809339874114871383398512970384422276189016132365489759675076556274318580433363123009023622230773537415321063956619114566608197332740651220634101379903882378177111069139622915763973653137566210410234465518267107259921792282187880954146755073470992571450939891014958782623583512746900185849686730343281792960070760619221941539013621812154136252254897824756000137249424745913277794770000997098669737072256908568130123857121585349458211830847133224503325667242923927168694917733014078580259217142539406917940494288140463319856307803423177724348615937071230851567908915825340726654801531576483186721520960815124033543389992506376123155860111915991739303659696017842371326821365612370791048183892002063287970460118589886224654117648853934452169542891315065533212956342139805091068663129214342198157630350123529705593771386251286265171005985840045117594294202186955729374492139939867034399417966345510378044729443060903306873769312420341584987665086358813051916238260054988452353560873764933445181573256230607922510768313342842068144743605185206566718328018332649047419781469164128086990103980405374202610854036616736059355804224659928686940115714401823489057868897858630741169149171436979480619204021150975185537094930899147214099940549743034829613401490461663513775871580531954565998110595962107315774519536748583155073062114039655644022932128022232331729554731775195031746894646277501413323576482070869148331386870050225225296956680423382280726757075802734607825763732176061161212092587266591911236581802082367328700554040150070769429223249695103817700920094585315278238730518703404635236336230221039770680792571182299132315596909441151221687703621255963411691786609694671736402919365330454359042646617196856897005029874205780057478680727351866682169977662804283738695120712533946898771654082710801258492581869277932298103796911667802966043917159900306870450862772017217771297478833878492504678750294854386065123870797786078890584455368365583828771582027843646312340216299233580520529305563995801491543122645630552194273161889207334242074027307752495849836570846247613547245824676265542912923304702962287924691929687427850864915104104797605029687311707648351325439858844751629840297202368416722038798927040714585568583207330565789588093882364033552002910307819500443080738202154556433408167731246328140271928686082810205686324323286301130733539496099423365521586010294472880684298533011517571296705067772924318691550949202471790763178168391791681440042273678709795370018798859352003509915504875422156920836083006954207862230514575474308752937199521509148159724945560313286524994420163549770001814053353375401258955212128987083991192366215479177485987347700032910263633233930143882476648600562047557158086374641739767611553021024870254297342126772829365095973345512004888013836832280036108125604276347523804818386517223716751485916962638658891219028486780862838615857700433252539642358646157537732073086846026916803778562038330238448274326583954379027192502798149966469291620862283190515983076262504217756126804013995119350648938551577531692637852556725168633106589695794864518740334593350533758694037203336239457405658786360848626247845424400459083892453457117621743625389391158701700493650238676130490220871913553723288314364718390698710413883800047631930273752992512250186203779365214242213849540986227856393700665758682284014007613274323310303850712050061624379311809117080766061456775084495990258401029842695040043184267220231931675388861166282761729436999258165944881065239923600019386842681434438966791803592094542385685442630027873429702966367428464624552921881253430867206372589126724264419127608238564891053832635687244642129900948149807349589283916754911007539801115906090823206894203558535733066924965482916178365012032161900630101075281291694572743828126934340001266285187536433219532219054154322100783671897384583164834483498799262392559472423920567788301669194060693344870579567021160499891721216693575322319291930139218015597792286051495374440515805141506144000165648241282879261306754144219384141123354260227623476654025470823443389716393640712939521593110307564708690232348024625767069980019994757804291046131389177075328870278297967518467541570917763951088845738767962876930453300640492544657602396772432849025025840230679047524715062083961080032685935807183301270197788234639134207501401266561492430066951717549308951921118366892481788146784091759831736500224504673353872815273068922028544541483810513053636157391470252913546392647321750770871578556461347834817356149539718697183779558366312194277176760864519374372847709856860363817117360254107511041840491128152533202703728035308131574584318091004867969492043765670520395276970232352674872182471195408339441272336776968167987834341857794511283371713298202917453010585599446215846948436042880533159281563841173743222472516325782814790233733070567047271205152024306012910044102927961766592353681525094975958460183467210639167406871816284968423716237238849884971473091136241667720931199606714754337101746237036035158558091418474747322322648324747377062158380441491842731049271096210696811005986540891091279629899170344503653806675181746967391937979352602956501548853074887784094769916653214897504481934509574898818517308790969712498155397588709630476506021272595555502958770741097487426383781022450428510237230340145953056921950469974233807049322711655999480013557226878799416300617138230376784210559904621518263622732145131201462916087478664837689436543691154952192196238729945375024052240330573630408207318616080319923748458010239712514615337234017996163418564386678497126429205019879973609439610760514321078821663095330218895778108676263838836863189573465981124377634667655422967563047958187472061872093456321484296941145239955429982879597506313066443999715929813130282347665961546176877507465899375350379056579721347697867301238896025785866586793985127866798238694175105189077936986885136516494985515859234987513857643237989747315031308954651525795510188139195057349551807861184636587839364947690940918639084411427390738929041974486505523496217801215057198192053725991283685967419937544571562794548309416068324563232119527428777426405231749187330195427287517665281807636365852801218347805287652640510983548243190823405036237997994866824732826639242123204578466457352163949499481769496496786462742676829914246901110694262233593255570952273875728517648414109231193156168440082486048304996264532875772047252336587040485611307591093701448531168269725790474921027323529297878500188172986890670990697493877373055557074569867674772419453578017729962218876847911396805950946554426340185370998539489866471141887333699729937749251222796444107513550873066641933959613830898343953848809660107973696313291599005956294741818104437882997694104355706923746051574731126593954551597733013745449861458812099123635419350397791471621496147510094682144840823218176490551033952858298652046146741221570451451273310784431088726502770488205443386556638211671199724059089910742771940187637493940206204876387582560697457728862474582168493936070419403013483279409603315845155094460144112166593515038310353019735303125420848748368566807945872438762114840554635544373384607586104683555200549879817820072696512894406065668253302787155951608240063907283388525848409367214835651792404623068407380522627458159553203281933285325958371529063820277333841690529403177856737350383486011310315915651208212762190389935432488625506280515675368276024899708624442609165049458991547330866477262682567269246479366049606286030845671685902749382803521197355632008312783044747849177872790564883862394439291106032891524051054412151368586309063429263199782787109696459187839400236960559645338433541875825271049795197707116830620462085581483573020984594623843943773868444926967279290543161925480694900921052062496048890230868612660595060577202832012967475212291820750479701708345416814112549584843778225019113175276768091463356661765851300526973370956486711033901627378974644106936295995530600162232252998151854598653552183036063431983801234765823149872651348191123575979933405127316894580186141063702973747591910103219245819621508583661699056955291528844322540869479121575901527223912169144280042730193023433894137548157860928386073368049626862562760436491393092528128821386966302258768628063896927149895920918820381503253034534493487674457933275062424518740093140293304506773756999796885155192908874773940087269125697618704406234765060138488151980492083580549311162111177686323790983990807353628514300157156971945448829416578786841608020902532301507291002262611415719616027826992948437718423521417241672757814872036367069116313822504295472139461491485197990136533932357400319795888794603392554914287669522267619737628663570216340259910817236521613673044831422582325834797715398866177941607305434420295726921326068063859077353228127767452932376176808521438396153776390119903095176930015371079007176724663687505409432165869672248919406121267835951172736621120316808700970967089097075372664951432402805782004387733977657846732607701179445509811296447107590469102213444688619647159148096903394988459001838692078615220532593547016180813274912422986138791704156505477768381133288780577989871087101296344503852291271681266761768013973963793688177493904369517188577581275174488166715793053588880226094754187394965262731928639853245872602627486140745070095304104759835109887331670798663044301102546532499008357357088664394192924193202227178247261837252006838183673596998853742355236334825787764751238460755482431263233637221823319747238140661031535595978567114848344080732237573886629863317675691347515374405631353076175017544976824418304504789318894827384790534276939886475584503939482189182386118705259175455510516939215898075868405676350740440124365460743371226303084032722778996375552211884813415155124627917861886082572403301652139285214971342734285970254838811023980193610198389268149543226855676215364013255039522544318511987642897858196114309004262870071862406235994663337698772126788441782981674925119219572683744124245363148437132582059629954271794456104998930174839404623056816115489162427603493952408116255882816472312701372631163479936838600481016498326001774101028076061843120228877939665800695930810138730461440536045110478427948094354155643416816115295716880979841898885452707375887279218843602332651083711183585825191286151958053595188814510815759013324971137484826977539584228186960003497525581861538294175659847160666505724951290514561374190240287276165710714680907880019071727795965310588524359734399145759561931044118460016886372427275315567804507275281405173182128035020922140859196212746897887448672789565126820102066985254758317398814059809408484610607371388872080796770088274075180622005329096438909496271953166989386208041154479080890278672843705693316351750741466747226687833678141820933036056838899706660624307593071387901879816889344271622079723886418061161233077632676819523119716227150292848041628952582931387807583959843470327104480133347964773813920284189332440474279770957368609804100098130294088439464415789708195032851116980825992027335965063501508780500424681124257474073615285129639315330677425861014461838080627172098612815774903551237303842089350089521471243982892795833536388158592233182220031092854529750038429660489033246898340252351252823703408761157221881917811766169064899387837623258392487905869317924214284675274728828654025562581566630886853164073677806645126941515117773016454587998444474207082039034942061174054932014086517300149344052143534087910816008869493201653040491528558017735005088614219817058687968932848427528704971015543609850726261377569084525166020698122551876010420725895044406580318417303887484708322466278915832617487784810668705395695665127332550668840649070446121518146049031638930696476323823978999012982228676580949688958948610700605249136613651756505568563151636633166181905830759390550890547605204490435813993776280276776295551812041374455073334716857118718488664437604564899885759895225737465969186052142728795568152311167566429687805322535240283016751005280679281850071692476751168631166411326798705425230106339401923359698567951513817932188897440653888180598995585668256776435074053095823364583096708066747530154297991652731115026358822974639993599580065056730824451955792327789094307061331541777349225411226008339135423381566336453511942301392226619076458377765028372331654925325863529290191004210133786986940470800640617737869714298893308990847447911237830902571820822503049480756683705336037522110032351782110179074258163589895991915338734000526708695310288133951165415568745498437534909540837062932564990601757790051309308970220110001454463134779280628307990090764469810945253329057076540271372592215742843767679053676560915490576412794083053908096986161795636145737587327722064463499923088464519973833809437395977666127930605707782077844068603073427227334643982362051078158300715895913283923123002686533683460344051818240637564727843887865875193115403152298898516179526327781563435179039617334608295915273025543202757907398277946558484551786538283522388067097284798029892700036543703088620557024452176537520437635235388784694742605731845588317107250415488884957048691884667531526465859293962908769613870226177433622023251916483438126290386650289446604384642136491385501111978792194499861379120646399723042725209841719786188926358581023493916403800191911891659142401947710252385389797400986038413700899473621334239977781925965675437759800276732149732389863403842557949944581927265272628635545659478232972139708058665548534211511529029670904083367992410622202045470964842961876475826453171958378897478610861689449237966914028614386229997933901557849736689244379523373039987022326129245043623079748993854947952534962574061346567514211890077514920791273923655233511667297766964922044186561824741771070164349786831601002076131007469543180739184210372904542135505408978887904411605037929569067616867442189641153480400115462446828335134521946156546858500013405397447787832579932151532514004614292650385723286691289845119851080876237839154654843892177376683353263449922005813008647608782608753318395562895198053380965304189672034013212501931380416145386726493012672956689211301292247761319089404320556287279288697492374669624196983380810595000768470152722228213592705511980081457561006637266537291320922680699897230174652924015173514303225132920507633054705940353057635839803874267298972166819886074550646393355912803391831383403909197570932462488234142700406400466912703666114797227316056344209473934375480384338272497583831244993216532675288349198958437631466750412657412152347669404537841101800218961425795924218424619419456602401166939084295062241757267424143535087655253709660235642814162755661596185493444402998717677936578109774109966213405733643760625679678117106702403354151802499170059292532394811212411329578509490901509224771129239665367564926085710470967676196318825229892447475619693346332261704191777897376804952064822360006937846819472977129113208771238047108641748851615050003904434094739866825060046234631079549615033030695133542914590979643646072432474491156911742183357432767299159307185670984042703646064126080668127369626211128580709663522666339046112482117732092606835819199650825200213900102040299080724912363489025119938649358211928751703791260491806153561614356094992768046345832144773490559552418292023500211769932423265003234247568946079320557717200581265138221623321057161667116590487503322926426123509570483925941918925994838580409387663647354542796127668053356889770994625123235296716692326425922408291037183466500342648007883130804938183646915320011375536939295567261454327217537150641619259772283870980198531807518709792181617062046292190337386924735439670373244515990431770006237747091236506566694678497315616696689463895310530667713723546725763276471437034310365663692541961424997366369768569045072798600787614470092939878264818418990964054112398242256981930365784393417571671042811423879399439686415133442227964038090199217043082103508687339891270718447017157858078921475114147938480405093155931179621256657942586128024104497377662855313908106952372181508780603686398822014730913712106743989421285700141861592703292038274420981085574321184469860778840487868046422846538724536439260061722317160000158361925432116245056609525381331930705864630382143557301515244015115421505469079628057336203452953950746537323186442137742823072106065608895612620453537410559959570751873600498699853057840037754213315036846747368179457130764944100827650397049420724409373731370696200132499341682239913277856748167376154367646954887948078684372767079570348616315604238788293281968645510593975295030018701649857691334862609697069575906597451464205046884303290584068757417859180840162761784468395434737253383103377063284935473495317312944851205248496610679434810319356894149585555553916894391015533734251429814809234108832736059404348882839405418996471555803554209983824781251814249233798136937134894001029879351846353226543445581655523065742095086547698840467983271250599355656248164405947398033318522375726025293776750442448268830432627838807819700780332335038829823947470759004256644260539131462876101231987967043123682834812605369575630712090069968131107615393840926568719377368585339946026821610621816556976246880155416687764825133123642930894069538731116723812358991691881482279583402489811148045622079538092752005485544142527455811939505312782109119205193418818376324808402260060936788694776071015411056046002701335472567150448770214317092499804834193468987472465826967846164444303871915864964119465521607100227457359363662944279515416309881210167422246966971601912558370281662781485604830406560931083256102281325028904483054310415834013644578489103961941238666295185948526398177006380402661878236553964297746725499703108302329677530623277016699494731167966527741972434623370878300220680553045627400611766361746246480414487821458984220156953793319775997947610196611413297778123562544134886936477353155531131665440088060040915578739400829557260772849463874494945406927733714104160058289226636321848003017308236508998658084861643829696050351086413503418764151677817572312753451242146095875961497847827299403329436530802844403400380301151359173221839003594395097216147132680171306384388326853878922252302566551186762920353498610922393156810335964614329194801470905902662681477330576655035154928791491428149142755449342844757702857093326044456995761738616934856994288857262707035807408133225358623249663007362504585782120082181465657891843540854833566983559918680072341648582173601686962801387306132209162124384558263139353208456556097217988193287556300927612143512606898327436222721258064947696948162025606481333136221786006226982375681008765379346998176641445275679970580941770281046591369008513033077881230287640630260729388166325031680648045922521416848364440969342943096803890561085467995009560412218267820783213703573643923079646623970158102694993931389225549364989478412399024312177048926754111349849504360918980471223586719047427766308443257312827454221559107401980080329671501110652238267392734988684224211540533003564153436930279385849932481031759680464259469869559532568502200876568710772308603459841506014553593763477315190589272400819686039269935100114959195232958038353589309719142684428883136223766168668345752230631463074602653804390095955572712048502402106271728571623169230054176738615195458196109251111215528305880629289172833768230075140734379632953687844179196805479217016751443906301714933639484383205003098050951771248916273391903763056084112906550975639301771008587787386977280516934065528787284469596189758295257713049175686255772092259464910355953947570830836171000309905612790940060560204916252948739593240040669560856014202641988899184785401070492428499627989217391785436851298752774970943593375605901626000574100104550757247947836567261733105710228600270405693057459111856278826182096574306907479238338096478519074414230293733139222217590423743152849013470038230145605837198016289077923373428231950568050859377000760191798247521190891814035400993063270778832950726829040608820148029530279506910849497592995570841583635199551935423017801232879947009245790038044854346212999050920313638113314793678503950693077575307633629648193270636385659651398739218263692698825792533689302138343504291758450351004014908861006554674607577714272827308039055125490052986095576440158350076974400135834080728084505540502744206014169229934969993353668260637976641276848406894951485836370036206662776511216287084533332038830473769154128434784960904318428312626381511451118521096942089948587079357827597958863708909987328978175000531175920835291781662799500385967572779090133101446178504021914658573806216050482110368459579603571657719155938019298154979015047625082009865336871152679046198317940396624784496361324506671496121079938376666923437686953137350492396584122653387541366194313675486360000436023564114318712884152937465765852438490014310052237138255777286839267222419052730288481947679584977210193427609544564522266827889656167059151679022987322996710422205678316207176336547119926161287237347290853600282690919312283428100329886486282972190015840164221440181561238838879501208593376260171229266957433000071814816947616419585617637090746757168746058632035356577325240801615284634058498690268111003884691268166243126731809143651471730578516833453399405912718475269774850822514234471835367966320024378161284118090839506657818203048225249287686935991629803867316090961108699281529321235973525948573804567861017978039657208451166240653286425734911045198732457045726768756550942954309302845673416890763706954460958799327392244689890612140791021833746392218904439469114528901380500724597329229890079423960277783972835501556090503597437341863924721849049998660194031343654733192250910923990545332340039752437613730864828438409566641067810547750884244225283995016201498375901867583747543474496560093509404277447224264530602555107616917624042118158439947031284588543803868078468999643534078206056214755589522148249094363348492724692966016067601687555201260108264891354547544853763199322354537983263501988169204893831954207987300922641965653804950066454384968877313912358776414706100456692897633448640089076381680124873476400751295204564028465852538441668221968179142550228651157547678674297331860153936729433647607810816113820988580300069272038504944419203989229374470649782924063676019998931348621320545472418814631226969861364703699143432792421842957025736915403429332437739778422392195573463402849837167224841184131360433116653407080944375758970535773517911923476926209866765060430564225286559188832960972449021435738979767295073445529782363277060335519585062119365404677039662341908515275304909225389238675837930411446380826880420523356146064348797742286998821704354374049211840717357431562668988983715949134258686655625787327538564097558837574114611923489766479763229639246780348760018511265693145451807807542409145945900966385138094961623975116085661500445775589490369142166775069566187385246210686759952786878451666544795065531912816794826507666230305026338443815197752077717585767566895286299473469736770708642963382746153386590944266952785235975752488905232185979488923969020665537907780461684447318800223962248338730000821281539412054283855801401473683495755178238185557801467162329124115990464232505345649961127461234216979990218323026360152886487410844122647901451395669151036054350911508412110078568232974569213046099043091029799838036181391132386865298355475541026220692929922667669808111753780233599890200279589252884645051367656245029609049936358320547621423703903076029350704448952531475522220439027251394283167257576938892757163884955088096426792795584401092657741162896811635623735359288735206809617207264942156593625969830057018289359310799479877432585312121420905993462678442093028768828399862987064645123242063201244774337288778327181112666723800019968596092660923454874796664292787776282330370223441437090878948195624202634307669099346176640922672336322299743815759958994258643468839134022043639776812480079564486922805654864271732734431499156054351286195569955827965743147187348493251780777953752813887460660309180512689186670054728026424607271025282991699396881781959702024548883968386122813647988962306675282684727475734216647275085289941469857064256890662431984950452503238726847229081234356026915810382778141572262921485991795363355750616911813498938259317222764166871006951272113077891856933434612809478747973831157635079829668537659988745746049787895278871768894524828411099229522315314258781458784493641739536485559227956264181084237048728202348894483902779594783386850109384438867951834909408771843366151758785727994130707282015933929814336962960896794164270289879887095743638069013642024113686149283332036049642106489191373018531467893484684117581302477208601367055163230956147644531955655421502105496882444212227277624957130847752537106485748463497970913588452284607759482106552295481409598819713618059724674503430321014348548349520751980101173885051769339142309428423405146214763555474703496707083364954236812384676121323308902742861352997049776155720869644425724217011400733600929166348031165188495738118808346911007314722767968551409143925974226506239314510664983471346246638578902833490299014765403000186920903582802798128698316568140116733322146237963505839498035937889965489403223025370577443431306458191313462465907344812876480372998667932915260638500365376938910624050350096514106712035838075982088062263841588800233722484923682048897188189325288730791832456683102147157129966154730703023146216799312747001101616445933563378986722020479852611953342443124153763016142367571179601104353016512405037422918723090028744854456567539773616199576294051858864520623999442502647340148431652576025962087787138268959090727233433039170071203094110264239537234691206834941835291707691560525168505390534653217433294999870928819745259289513458623444512462120814769605248848327317529703008492798903594698853398246690825604207793111073609937072234015439535187676219460781412744752260785929006758671610479803414720086934289565004654613977305944004851558428725558100590751456989413890693297027926705869358442878850765090422633090727999622182989048990437449848398784395803425586568289302424853457810440746274780217438162335648083474797935285632139522182476519061136753072810693057890622379444814232861470580416333642559694953102107766511657587583697191680785058413462247719498716857610908814966170406888976347771586163492647979384972506839522000874496592474697984991127734229286771512993786658228839762363816259348137290717147049869695744262576856512676730786141174707272613922969921006373685480694272912932744478819869805046590011406278045688917731138855473295937230630389076070616163837187975908403571114242886074412301810650016580575496680003711849339701694916697122233185906814328339055714873846105083705709546075839753126193261794599239922609374822140802270476241530913680782166144549857021255060537438087534491975164194128362191066348076819055587704886882267802594198719396494613356817755507407532619058917220088476037075790460602050049806802230416705259642469135757849964226050801860166088501672642176837989742688461524401536501176984123754304309305137963908759808878974345098483019483789523520884239769268858397830071281804072995230084055834621248550089709799965597036530041059338087135372888257509578311668968735912556509153893800481748300626336187024204522358465513393928822026086321745291697446068544800788795163111537555020411637991061577770061566960857319383842976477788562418161868649687995609164958204205398608437177277150261655432717752990030414015110016638490507518834965435599301331092374707176492593554114652843658986916143943435680003819965008284629797196796801157893082437166364475485411714389188606279732137793927099368760722156680796219411999244838421630844779643400107589222530129722029120836701282875003545584457837899543775636313773114027209500259711790389860498242486101534165980272552584769895522550259729151436595654058188920846283546303364727738029269164454978032334699435560836048348658600582560048304693572835283376833466380124411354460722173330967975641245270445021178405192706321569190547391321825451761738035169448078513300179309534919701265056496076414152299850285692608593148894030929180122196614975780152736345049972686066622060441381402477528976588566068032780431573100177771787671553351720224939378250847659401475001838106888528864384131388652224229047837183686989535087179888379526602765769097438133868808279642916451932066869461348766035661345756438580246326472426287374860356454845715632718399855345958960241231458970726235406313361672088347578719697626800179987920681117610842488480313563164744385394907339594881894502769440123964396055715024312934766968558286388418913037158703168075589457389316364807019290527851958822885563628360093925264072765223468271236206963091142652851044614601997265202740425921963370890956722446476142995821702725580372214307762779904112753299380359152913789184517138472340816841680545114853217356598449917867246432069748791085693318505724098743959290796650054091983877387921703562115980970329868674317567089616988529943128845665485744169610877240535163755528936554110050361682441321284020260243635305257477964645082250064520722000454714098781711650461438394011467394137813113636282639514158828306463318675734874647450613959846700129709750944263097511124739981643685834747149051393893488892288804237385936356495671331862367973188641627133531271914091757408997726354755253849854818106150514056101523309354591285435728063855576337235652782766117105296482883410463272590351237936500635974497797620025569863681789475781081787707737636328539968500091375420708955017755099808247690988874303965451586947746853258124564563626638157951309702678168620236606786311214472671828298042201073750490025320362951975010267064080052655504212272533590197014221690288021719073499686773323020600135156716623814672488061618511535681163812191305793340090714374835943198537392827200449529561436401137976837133406667933475323617834577782241121251547139882143067372858860509800352912400310882184891248440021554094002010438596927269383283681965825138424801613894482816576939494516524974990497289227395252541711954267842755277546782591503369725797416939482888091975659139061425589698383391128582700710652350457166583238966287252699462928254611728222443441993926078030584256318869358716424752958437682974152608468967900986085120690810882118672540757007582649299193924493605492449323599043269468254486083725377837414356526167101063422371332203965198525006328748419022652714669239493033126939873063401784996686237437843991366941032478945630420520663085876600102691315028599087712396582257715434840837460976300210467274588737775830727379119653358952800546204046536768750911452433734156503626482327249559884659825518957893731346051029715467027488901560655461539461527152214322087734575841343918408720372741994889521094276976494715792455098872479908009410399191240653066886606235228131569737540863054351207903311103799876997523004711424386637908242750361832049462544630139100977672292446304448882080208206960161891745978072696235305866868908648731417683290544410059710710101799592098309294051983748598567375392148922073076231419552050133780853981128160312483894652496116480402776803139149731399531235552212327574854565124529707180266241178485207239785828495360350900980723127517871024499981420540291913792302594832096223971495740905424009122581328803223419076133944118979358467863769615996555225541532087010441043640442569650778534353281580432240764273886293013489723781852432638510943368042209848105608545612038807671079273291188984849960546835504659497054805780172608824039290730767449674367661640663171467971063531405165768701061424442568983058523427602677873003683453991500703397664403951201070238769851506423102893953749052102773510879305966639054747074933555984902478068712406804926112128924346925591086406705767041480597901765486253385512281871428372422923583902493358505924643048408087392801503518896902961546226513585749894813656688713755412141244270396476508076750298522996326482563722367255492489560728309616600097449221894499603409982199401514788583614463042968481300904263844071027235253352739568754249726463817632975451831113486680378669028411410495564298181251980097081021342033734628874298634039876512871529488313935742109642662959208953959391149609199658085725302871591646468342679547198192961186771752717074167938037611670812063544372525634726839886890179256960913620479398681539835125569986044782341407753840289089425313555061580875342875600516960724113457115498226466311644540145712211894168191681172406745497264209682394186663731894142332361847261838725730702272584654312773827892035352669177198312814079377367139483678082253296411204513171531080345250651655137537246653829830308084394220431046059274453408197891155785478731105750493499981121260584467054408848749725827273535694446687002749433790800084869604549314579622906413450880132326782335007200474124192445324241812934775153521836164197277137455260628839585574191067135108818261083565430847026918164604068718229592087934577667889498086755644610424548577456326265830950843228824827336837619704010703683083104918998835958011045860884328489508626648734713904871813522323216068151293340590296333725085635222550206315303789496244594446271754806806330972035567975956584145008751563955841047210628204262697447295247724494363680345797260476325157270685749381455799924232716325420968486665933695333495768001363144874617505809109401321134165936814909756586442189588421620502433399063827798737733094892169956550134051334745680086089123500495755780227843816496782071271332461635968869415844472113119679213278116855097146320400151443277945158643100722431287866283345691488811947258458112456502519330398521738777018547269989485906523426070852772371906366174018549568993429576091205584165772662815058069070749214928685394446990828233045185283399810764840295505575139836524522556594839037371937920743855885591227468960276515434204421023156829843109054709337179335821354504794626458217043377964902936922280083832243058653895267001367856170712817936659762232792542760022037429545340876446559471734740193606071097856845334810914911462515283035122153360544968127978822108555699147757639504662685317899431823381059195151832435440862254037642009097229125337098225160823893393947070600052617403219817813462830998060134618614371044345518235415333225321466315867715483283727383053909214445273733797387461163653932651501015943646532023124558345544119477593852273576831570633126858521627639539433275711184564612539025101153339269599952110187097110145509910186012586528524631941528576395114687987365886110177153671288457170444834207294455143107455446955176621346444214035171915529112607617804825615611519806849857675709508059073480250787882963171120436966899638332428323227807728139871674680583150510097261828581218052011626941928758273027010139579104613994438188758622470827050913640862748341240988930265161617910736932701259378531404153018927509563539772268556586999783829943308378307114985606338316101923746343231724719906739592609130554882888509484134576145229051397758029461991571269946427907374248990913416403360266656053273958539751933338592436557065354603512220579557563015930455190443080908048207951004375144682557002188567420140316806913018712885566198547795995377510697407687775637271179121219364663788219660482284645268109900915844458360843232432091051063957817857734800952113084177376468701408898697819428968049497998833341356621542523077354132688453841596088785287546672820941769303583978739947877448775218600035335588639283817631361807354793700631186529752623739560797746599228769206862586321919183968766594771849990112658857580049228519802922654429794159810489103706097251452396780601227268944628407422812410182193942960342010940615982021532560401651944283853377426754590007212613472439716379444300165191740384464645728401736531406128880398731405918231956347517699070732551902471473846289242538471854619205270732554464322580780061783928734387771104844388153486395703808883184596322603480965371687369735474787991097737593252777093475553393752299719812251797481409813962997252337147781723855578161889871787528071465306743206056866683100956322928969895647894744263340318835770100355326587340750605015640921509557612805441265750276697779885520835618180551765255845597195637062250542740318154142423833755287108725560195712455553829013835920550280925366540333361172884509867256442445767032340753584730033299874229016752626245984272672057306990639243941066721957337913207078800564579855570589623015545024990080222504185486766736942339671264852410793722280750317654080814710147710250698479151120185750896083651826756194849014216783186021710473533798375093560517763552527702038900987894534668441259692132004261405038149635186447554295077728981737366615099627998311412402918474691551712087930641392790309160692881097638993978850248157469062533754943826449761078055918872356827607904770252731772980264566111689874534275330198945450497067269762995535823940673852624470553577216097027168140762211757573315586277750579618346600458540685430550083552264450395200473637422430435153120759244072698427259715992573906565098679855988514560146545598595775016508125879951096451283788572194897730568405906978499184419238329468875662247352736754433793909374877167598894702630813592178413945056171164892451587541557937853485500860019536270577750896171022263229677803467999100684049967652250005425812137191349603997225493569452028670282196879518306905222932801029383370496064561827941605760886763180554566051776925730600905705781543640443830862715264203724413377958966043324900142053297615351930973601741757797800015521070093863804777123085072041043241226422166876560642954054338456899609086721495550675039154413865356373226378807825419873823245446032078928325470413507277047173515317676686074428080629650599504684435212296907411847398740430000995698711279976669090642179853566447506113326287816205213856086082780874216753366095279487797537284077781496404843882415901360635557346297529174373169128186725535217692277314396995065570967448542271568570260805368740242047895807094590137655995513343825906499222884115752184107845533007481658991561852117929909640627143648379535258697265221367453445158136287803494055029197635409187743507600958220353134973984948493591179041538085995469368373099121460936626009344044883455577412309311795871057803567515599030019710787115334467360945731191745947494654291044193098324614793457736728678979336453086106025001728196932190616155423097747021834692758174728445862034702066248464723499228691534548669960082931569971638742525872863924349340197407879601939811029663956788977509341157990438730088832016100186730878337018425479988582576340203176292682040357434322133562254740617530800341286301473524144297603434303276001888056925581788759623074663475169713719516393072153766856136991489286223130483413041626987646101461460988084731027187378894589500009517354186775438013177629168202465959259928143848467106938101528402756418949617071611532484878187474282413772520984268725296607239776360513955539763339260808034318604978232342447686657081476004200716330892053399360212400552013276383475723416165315063020797624794477324549282394111913409827872737192378957517681742063624095572987229492711209960335533963699717070183163587000134500683458814316317846038973247755490844963836983859130343619449450647095181006728485878694927634924074155008318181062243782248896879824336617956124674605230738010738832188972570988872160290711968504301448995112448421773667404178143449642376503488141865102751131908922137857189616670858838644299122431909495956439866943645223610096805227583258080878157681803152678567371746037600746832403189701422561229132110137925372071269225368789297621061542079562326173477396409590285166633347081632750020078784556708300074667974099656352287420242375738097056166183020965001122749162344507689162552634737315666888617465038129428184201142448187496940450979201633432573252411749014884049075372066029531742316393775585228136231685138587319725017136991985120265836749832489994799493857592524912336293366311254420208449490560056396869333955349618056915561653942631569948614025326737823081662217028065173165404628373521153389849795094909163933297387466778879752081737371409066999054606373140885897219709626381565405912747441272048027603373933032600041124020861791564896414764805573951754692858589420423704905252195315077197113663410495747453382660006745401006185827201285814305707064930350690656505227092833097831477329230759799130068820618327456847501427301429143635844784069580302417736694724210299433442300071006170573995613595946126679506170183352876836114417846927708210158808904544548322506013305979273950042942703421498346641237226823244876390043761463981875370172060181487280073956501511627189218454743623639111902780310354119963614391375788777286396718911098174464274546803888291236431024369706547152509096358441300027293025291722604587780587652911868838168776038803134855254279053813183376226294505490630976043652817555841814770877745693529542234911842595053119193378197307310339162266248857872433289552205796734768192957135538477571886886122037053063895336675685808371865056982211086338624021762846218344135212983978340362950924933312829421783334030556095136392643453739548222464951387448713351020415296717772208064540066749478009964235854735852314610524874232143708971492687191280797331993618234813255090781628535813934736782572949023850905488303300245834829375866706938106252102726539324188496547594652753585897983609338125163583783512673136878974987858046196728692728455019551644195712243930588610158990764008542797696810812161168806346804646667954929280324695227792342797849779343741198743680292305454973812621486106726716966219838284248394637662417146252181554354426249937641635694981334317895983866587142872480340081105748227769185449827816495116883776128687845371825898828453479099752082760788149243452539605977309291161155080678334199566616140798678172084386124242715470653475710780981464172100664538366867474578777598131713638111518974255110056493672306685010682919526651310157992984651003419079052671563875597932210040749127345865860526628401512766938367723458950861474537230199722620989369837820241578434535381778870355134679285185317635876707007089617820865219279784520989738194377308256408844631980883204388054451955540794037050674075859183253331332975317735037647461577295563386389585436108337050759763114742787114550163691313217515188606176778542249379650046514424093463334176986980591408921201127616608832373511860240743105418994546616735555500560597979168789655998010124708291230569020532552011681580514820848074238435765219699275140766918842456204888403588058703117672381578292869238041897266763887305817143820988002749129195144612045059195889444682079057250627159934728256661036527044658255924684421834967247896076947799867981867206346397302545573645171384624703957012288801442467601670400741709004353852687104077122644251292506213997152795464553000484095571881205912812019483447013032884476311506986314580046525790675565243696119800001576418951628530083842201026484981508604522916644842526554644951799859006746376797639782314707863014024224010903301839806059032064280251363623387790603975593848497332911097469848541027899341096466530939803887420625478249054081281953716095775061175102615909183003349993511053479679498658265192986060616947131400381785222510674499810366388670479486946929365468448674761206144234574583962937514761491844758154584264250058089107291977765358614138672579452938148727152928583242595229479762498919744637587082388964453117591065668961646516167831815682885506527207701593919860547404546033051347133628703794907573658467666909563308130476154269023849400975962833249761898579099669355036574261847876658094147133858125561258817841057462924610501925575466217609506591920931295861973114104945251902095962630926591812743331897600796474641932066264092878833606615977162905145202178970266078605585771186395233403484801617985894524934740255701998103078324729557259093553116777501914318800355047066105005882449102969333612443925968896832190902394821389748098955872755637713276928420264567330213431648169467789978266650060740386249424666787443259415661220515455274654921959977694754194640489207404403250087144071486525809639149776412645416892398898095513632702533488862498261207061570948895591683854921412429841730778517484898346765494113570161669133023308459143376919627271502460911210594409640317802433222303636996529840348766033915712339902541844060159778920761596262691145712838155038001482703049106740330901909797493582871496322429140938074370661377743894755898139282557800961772675593387521798017164444852434189018618693244354370692277239564742598601345841080056911400978188963631902932116978226635334080323353449692430731833340290267528468349825056885353710658433331406921442256237878754160560346682932054922454346428274767563672253316080235443860397131093485987607200444526876304951366745731196318560190992427888768007679113390648938142893379554093515832937214778111618940027698801703465635716716300282288963742852015680947668220559143985443058568490414952772689934545123921370190226136426321690630182050097973505334933983222701417913985505937609628542784772166480815918512682880164020922909210718189249988911204373732293195473178493855676874958186457622639422672437775578511792002342416489343049460404818403821850680206963090802740132436140831775788128855962944446557126858623912049537483241460406369286819746792453470384297326852324631004945015701681230944505311443443362156292771201325923921975611263854045307894534929745588448792531519042906905862609553875344914344738411284787386600816228724398614604659307745577025618020987502593985600144575183312402192877519925664051660846218661151548422416985610157815334120375187841822634077590764249349262997936228429358172574030354512669221519658039317074560038823200918445622041527878583635603440130491544289378936897327941223363870918540494206604157164379558106475581768230884780318958460688943681399617751300387539008824340009112943905327114459161786260023834503466311264405560790877373812759941559323731513763812212165088122839017458061550390197547356394652717901934132521022161058360684066899573044726803146178128925218545952069316986659129927570586622367518018475435540885781740453485757814929602600085233077333994442778956218882801271938228038992102420118148806690998422235805791933716771825518152317183948255507728687671086948327127068239346129216184236271595472179294744476430751320482008542449758430653113880405196433852305324853818600313575623065079974298406637651271333104664263697616771475796967213594201821272317118108997741290533695745909233807817047437508978826681699654765097607393059914032458343122081428409769281437820288495529603908640081343326468015675131526969425721950244621461983024590761451159384070855561884040258856914507115033688955483836870355374311071959664264819782233009277133301166650877489678861779954472757623183885824684134948725064691252396799021928945599734153746365542350627010919180854231957855121039392541019604995178990596780788890527885098951716560768719117699526728505975543236614061244986972685170216698700154358623342037039193614364084517574718522486852092765449400501576997795927824627897169792064181645931882945550557432973792295597274275622802684761932621907552506278297081605254782670918264670241871164542532613297119241054187327307582847368792065931288485184904333695788507733449274767194924473071813013730549976015864779296036328582785746740711050993386605786826649097314054331303642006115007975270237943577732797283445714579595532585250277120596030199861986767222789547755980547169244171198236319053241965575169073131704481661585673291235253158313658023770219250229480210537061748160253991495266637357438247815357124140747639311612797240846882576734632762588986264231863615669278126283425145386159007101740399491645547678289089949626453265586509632993321419818259407722594067761338708569802297885927465112097893782293025148567391121249790018423348512348284140468721991431259126262906064193537291627110240476138987913513868653997693461252101667513817776450450840753836902051862273661021901267841108129960756496170754098427621840838517708959941033880864742671461449081948652758981085078381066651492549643614848990877384826399476628974190145786774989852757530710799918339397987136656943198730261342565521742501629697897890705139322224791312659581893904977011534591806548258673357096875034154912500921000965525687216851591572138236943409413698103404254153544185690982184041978862593266454178583710369601502456283569986086929854772495828995639638874102326151588420083644297259690673861479095896605448658072765073846591983290705549616443785627979920344472727268303162076525151070384417956935452655340288392907442449224455447743219102546975945629402902773951755991483164868665821317842916995171737640488406140731176350886589934491502603812489578769059129526519679163351044913724853165437151576168496724323554585888707364723895014799856579403016711355639879156147650569105594743751270800850454472401620753584372271046824779949368802774476666513424602314802211348737725697971991727661519219604181901310983537911972908717228726433489683241786295019851744686538726494192477046777519691948547829962313129786961668252486656580674785138927903704174129504628018405029813409939888576420849320709197889295762736611623417892102355652305139698474678725070058059025670298754355046718475883037673564576014313185517621770845740242553284279668336792665015217986956239745995533045020467322632271906780476451323244558476799139828763893600783845039894897078261335380852644486000128661011187728157889022196396227274852914893634805076976827904616952746461278886117634933058411409345218173998830592978361534298595158299445635666703501682736463233396363640737113739036887250491690334424829398306219451472114920624915974896549568179085899846556091471636142256189292917763964331797370958231323566814639227478324013478800278415694405790057527131492220201495697570850550057545904049373957405776907874341581881723361889004406192243859204801963068359481535640180939260244891563234560984088146175087102703301734523723900334820458699156215961642566472277935050908694049732050005340229258865066848753010921290282141471661636449034138037896094805616655358931264327954654610183967496143931246260507394694240376661450464192963285384863672630241231491825484371812733737573629329885507440016332604218421844106242907702248243724503724836092122583259458013510862302960557554202408500696798301534590492825321049699334116703376314095505904785207897406522486413705583886586900901113089300370972459994896136283578632612549679041375212977750206874019047901897242064740126019434442935758514070876105472059659573927458362429941572906284866053955038090894731986146299568940324894024204754078640491101881534147894553132622644048698772486383980374652104784344052929869277490623175663856115064286980773144915880911301130436988195787029208481084730219388140045855371533997070810655049945820632466139282193476359437567529458322256620126835594687349388082034207354015026107713537163379566615515883255014299790772059122711371651315819871646315092653985513185190636038193284545999110235791757679964397406811074748611899241079143316653150203103931716380871438495704587684756942568156712647379705766593565191837064788220209734166799664341335750112875060837716755577120473807962828143589189554807172854455405544426729054421286511514479266158515145464046961578636021216655867208353450265991620367837634169525310516311539679229856650192870442524488442224697418053622076469788744777294957344687839192787864708664229264568278533848149451199833641096832733539140513148744259920099190694634193789414014335447224093962313222073579584905380048258554146575597818518048297909965897729378518524978395079037056796111415474132763755156924074120705518763786390039769308141502949506319478890878035689439505042644015068047146357757563384099348500755136854626948746903239255250712500698926536567074484042854751924519087795711101977431114991535692666157405853822906777623931178324289763082676034946688003687483330603161197047428336521594085379132727288250561570144207115477430950612298940909821053152937012345898599350841082911229426165487835363252413275072237735797642352698613866611874274991210498743362024543872328767948393276577626341721203536060959193237196194712121448984283664518049274804516738278503468241036470219118531372758692457765070114527459713672154354163052958864362796948892820242695261959814550584669347940990861319490936895570534333881767662622324177650927584296075411720798391259688006951990485404784947623746791921980961194720553897895259551759048728931973422992162568026535498990265304046534933257851418828931671116999934201772344009068973923891998397304207273833472849334597180914008637995639113685672798417112836607299013818920591167264952507075778214292106521372099249088491589355110607809113567377528527049241255202300514532572264626139804898810455638666192383665011819650753226776446773704425721426518795655756025355806290864380505776119917825551577284696220972270929224285413891275933277543483740317476453550425057586147233255182037222071814986709028315778067874852290961213834347401599120782325845891328980136516873506806231787434991496864824691260637121956431164426428482795338777342303246908011312766379966715650821968266320947824371151621715596071031466831160018609626801199202024522222123816661282633723952693786884406145599038474890773384972392048082291682611421233742647047480201034357863069219677852260039511683439411103063296454373915705800458343478633847360490704608159308108057348984821858715119837393720165850336476532394738558544938891908310883923595251251588955988779992596548795654700629741198645251175281386978161889205520292232077206022271180824841360704660100532571730258308587787203969389292875076737613759029899674013829829253318746774147843314259435972426786783450019454226338471977271284467023865074806876125726918398457993901019971406485693578702871267888632089972664563289564858099197693613671109788857783850277631736575663884778795147355415209932751557722544271594960381190358232129927362013512164955840839092325628616241982679422128306367130283307172191388661659642889757377512436354520759315824783551251619805557318635353885279341349937907376055449177034742521829250602218249548457690303853337458072173616795159699130347241771850714087496012285518184416109291224545697479725576029346520888710223645795445484699059482745941368681735939864183793587611498122361873060639968263901402854046178901265912769156349899751022518451939791074106631553398916166062031142396137843492027523456150117894781591535286644673246455926815709744101012364809909669453880733684688729589903893281191843642420429595101214180965680969335453097691118055976067520993580691763471988078855557422442131951219380990706184654303449441121832677946699914564217287411865142627756222256395774589126439626197420361722650080579688726090246739060714766208977152316976268385728429305177239796020211099524323259560034031514587927141587620376237225636489914036116661300559190446469101769411616991112372688243890329853943403421026208071421220531498772546841970583294234461607507799737473322333960168017709289428296209203512881419881231138194570622951681341923809535337713616052411901691360802403990540014821058140154752955537726071690165480989176432250539222960441615267239905214880981355088162723968575934509609721348124990306790445260838375561350706039577960950424429483914164492277924225248246201223152088507226336000846611678608362923662933857244297692443084238227822954598638454830258366957287722009682866145877599675435949680035597602348195952951783511691862629554214807569860073004945353989549173629337862442991670201673066478752565788420737042238664979906006202575867759149700226225382567572614060316546494541645797742054796036662149153749276056610317633093151357689341752997455876417422350022901637503046385462422520228062785284904090447579701094882449633405434276284398201718525930091095106651055998152200813558220085474347056181214269400022685058067869774038181461312675584485939174511303447717578198513155025433646384664076260386097783174286888736763144420805602457295493983501926348956740430838270907451116160827054369501199519548782248468870084723793265148326367606394081145542634541373440106969038761023780838744386303091211660951543093854580184653794031355563596635037000659053508015792410710637550055144541759937692431544409464459683065024720918458828275324150652429076781493101576249797375852344232588944481089498764627898006648321765410109926651668344422901452410842834253957028105892131971174622513667627485867168292153168940151673924099987789438471775971049124787933100413865903835443155438708473824565582479341925392983448601587323848147391137378937266152059404720499688046163057694398150008419966201305624267222043489357553195353930031587823704556768485504815881637407850707529120189463618357455302357612627526204290167154251876786277520257845170576064375241762626559387671676651585132449486680462275187030552424087448372462133106357225166282340503848140625026331768598594091885955088643827866571237660811243739574913547041557151931503263972875080480698657781720827620505529378051280909898074782914061562589471852441227439700844848716613276849234595383043140950942491921698909743206958454014349782641726510157552491016810496155224255824147947088047545341490224762669458619598156656670856554288082759121239017561521391240356398305041383519431639347180015991499241200679497316909131224657782775833393766055591117924750944133751293251401520924847195282649933627727200289103768207037403982095273845036191966491351479751783269358227181498060467145441255712505642224063585771534217800899104855440935377856943857984861155559094299416214389702112548760346965778902161148762512211840422384603416329386623244416896531574754053809233444486494195026985009385442650840698096304880052901730708500029168695545751349196135795858884904159075082182192665135871066833186020072944337880678388247671075397582287514984992995945005335989604591318850861460326831589837640835935640406313583681138981270797948343186211412046959188873157882291593401211518576229509854116041258190406828970969421332331303786211661125436071581077022872043197290415515772831431365955287027053442460630249956472888966987470216688330198313690068555068084060461676544691808821215326824331195082433950691069363067093612173418513432500630440607141623558233279314758699244106356467309120728872915974568375193877053000959091611202015626087075013694743826426491094550379105949361018502344395151914274127409945931968039090208346053481767511988328093154166910538584611767584512592230952463834054734477906169539939194590715462475759107538966142825520737245477724730737679555974235840891434057212006356105196711896161457183148655825790192164850619563305919512090406359934113393273076503035027689484395339076532413011653150488450103278701183557624420849475988200342409316644444170382776674730021305698451371759918452086981077517286332760460261153918731026210275677486549697610789784222057055063256288949077648649944496630339974558249554512632673067915884294641772979927853971115319519631333251287648257140000178623820368393421238995583818271705437959377939811668044300587370576829558099828927194347772717130549207386060517821625103712674743361548475206129548833332638155698408019171283240884497899489331131518082612651880554525456904676663438916937776213057030411391950245816817564127694080985899797080320833112709908718627200773521884258312170190419341285234792989182101736056949433682876209962417326310466273365947529878876423234939757129342624822018716123790170561582117035918008950877563571266505398922210512339297721037412608410426438868518791521333810079816502673855592210799945290653649932822120445143660843524492307624960761175350789681909795032485579409799387102349240929011852489832767133888615847571107785473157561104694016446693093234137573956074360367966681997127671872679097073440025747763232718275249274746159714742614682054992287490548593115970493713556828195405253202412137548392868866811994292470761725541179574314364280594630836876138736596532991413195708374435008506526453084979976711793318332684941064722937272169419751176942078867110031755219383904275255503136143487952337467743248891873425166502736061995841032859419854481996129803909258598874680097897078403176303347876261932703488596350252925900827759583467113048557933404444419258520581578141934597193500436081435019714990352647157527500172275115803964013984593495278201907797223658278397415651921076168592820118317490012584474924794643496898533232104132023124109639228987019939723667268209831913413905698688496302975003297346992969949363586028551294820631593215592788308297886640320946730317319200559266079134462106506997093415911271788610223389367797011167833666890187024640002060456766819731273966273835124554222676572363127630612346643916101337669069412613784515959140717776127280746827016295679590113027370026551315986291740375757552590018772771726941051452244197387320868795698495422519015903189329729275865286990096061018997625110560741903569540718813580073943800231674159886029983961551949084789033294451427643604429987658331554258556047298639125716275048266360345831291475929815642770825745705834350757266658859236256758228985792501261243776979257890166801988021778760587545348683112775968167386082051687205202319940198395264373835683835261196259581865904484854117416477060926866965689754831977959318254697631546275177890679001221121222294265785180375726028002085420425395754649980786613020400361983311278014411915413180633479609684321937704126028435479663178020369986023149235456904593053360957907649506994535963471673740983614686996310355033266318642218555139136878770478379824061500591048686770216116362938070518926826292808545325481314611561621520580955197424086760785179787609456698952340159398957200275367631651760203135909488014240270310538662880211574837805456398567810721659876769813820505353638853439899658218131775224082619304890400399728089524614258647768174628217974047528717670143638731323667074061386712662697354105809350505125132764949917156268442673565984763254776396671575457968345623091325613706413598234221511079617657608159063141234381433429345019820474539738236951120026471491834539946658100835495216624725637467485295636670253022725892641328618847191771028259694335978253409226928421086245831755696770301893597692796135604691520581488832655982982291276917242874955462735504705748399483629256317350949337032993328477877251589812350264432937811126437115017021588531257299295088124850814624117986005117612518497325004110777672540130293042999804287870552105511986060668729233019250663129065346622666745031133770436199679723986805194500463841833357158062188842209393432438702574614926653156862995075263903715857404989469332489940333342147604611378436043073054204280578668233378440870941358476358392844231332923816132424628613909142288293858636392016872680476868826658288810535213080936215057247830192989134454527638913272774696824696431042146402420048380189106629359522830244507636538247604238938164120799755073297421619135170350144185613972150828031716276258599867995206801615720498806739269710069217550170872406064798979758287508470907008185979041092530974180208226629942925349219388536337101745572419103586125054753710154829510011754145330433468843170769082609457173339884240693795480239188802441391886841230488643219707435631302541524753543297609200371102782896523042740374094831705302125543539120115417826200771750222869050933952472839738303178210365834803964247612323431325862541376523600452244810448275020063161151383779860243435199559349442009602000398124913962893642602109753095784847559432301370233586419572499611263399410477035608754480397047485043688193330338934208488337106696025885287503878025842629134894952451659965612940449100614767724985975331500182873733871767943595369565126850596013797139946724642820017601950861610633346688487426256423683769792404630946482802610970903641695937376564165707114218919704885759333464838828634042182835082079331287967093676360826268805591386133805701631519877685792645734328781055962663030944622268109280093748513748758743040793508334816634486100805444337694045747569232318051667260423807179471267904765519904162405449426922496844770011860370317237837012774706379107956508840274336180974930186781464599288255959213117881385114279336278192215671386644258182741839110122388862247297225254748225011949661434642832230069659943989793992767895542910006546851584870142391655703571448109639039173018396601327673711710410020570984706314856570354553505980394109537063599605105777905480643495165972386712257740050012988893897377292025345036470485359784805987936923336539353609908766374595186015243245371717614041548962276222189234028695671058401876630589357322046305406595351515254436417622946214077326140808518943886765853700830444456674528123754601537107528774239123382856579176589379583292659033107623340002905159188229046114255167622233078908733186679880745878101434280897547147569829157237522991524636723789795075655572093026664162917867543738631950886068677593064347170002743782015525680216518511470621961017483259955070370629832379019043926957756860298654724905288860769923016615259824518008096823201412001818659390160624040221779896635250398799898187570413766923004063204580024658093932171476478148053892069932058124933832308308403211444304210308554524666022854121840095375966979717095579296807304579146263314138456060977846849705713550844016550247300087879374081174593628339800729270718103452887961802673923237413415930101670769594788494659077682475775994422638525102354601429240281803585970995185890012208512760007122377976998931192604302088840114009093843468363506292804492528915548700613622669393049388760913790417307697686777685082687420793727232409973950344767937030441507863429371888532286664830184264896728664668767462528491806018111024569535904446695369177539731386040895314085857752048452002147913037062815982829637450820338606356033277609260047063540055608135384010875154526059972004402390484583292121855064701917458312918759462596277399642090875755923769474493541725672148528848754151794100157217997982447172328720647767175042571448080122315162865917607750740850042122023447289673761476037537574988412625039361733585036587415736650229095137237901752461818656582396965346098512476570775847191054120901947659490582382136005761003582634651618131639180788902256237655166631320633738948665527106516071743838198146339163163258490852445540314328155715075227572579452303553735551334744559358989108332529126941575918834028658693997580474638469433807762934804665921788414743565587156872265320919391165688454699932704842612336635689169341577125305898052332514406404699386296654018525218926624868166506245234489928225405445002422798702912158768015252374965317646655139383217263948920178952363257033043843902502398286442381602944297985212702893353284564319999479970713483821187009384860639957751742625761273568107386352330419839712871999685114249146252264481824253435908157030935831610235065602842403261154907479420471792285110653053721877325619881446586379380209226266173284188106509282656198418011931232989512794778536037271957013208358551283318425818140629092658249070679143728050192321381867212932512433111267252728101266673853571724369182845254474537655706415852564843090279945852366445365171450095518618091487664650269372720357639007282972887259540368238090363020391707483225869296307471272968509272427233046081555466888126970204975368866582575168760372276972894138726025598652539610904874578407354424291835218728351222443575041435155397936990565880818446566001152786381430788514519090388493957079492233464216672552256600260408411426035135030450689745635567502448287508345632429069708345099526329779014941502658307751451633494367681415981133054005279072468942033418571449977224545199783770119030886727018575044585595933415669829830912475359315893466002235431523303592157462706095469812967214574807335778501689571409315610038171745752208267192595968898912748742918737911627251768211187131736104382518586485230716661264442778519096224039966049673440185244023146870079178073246303783682410168331451373600521492856512096654042974404614564975762882913353545977363125696885885802964260292425778348235233122159571270244931806740682376560138332748199359573474959732854534746618354326770006661202043136182290492442424303682826924402707332455836190041871997581090581230172527477634768766900950527716544649785457781889819317031612631611758903703007361230260480439671408371651699832370145102491277292739753511532796226405878306430289399248343073467594953919956693687531195641667807355726019195740639229865607812735548245629103629189675641387385680455204772101246901882749498487348009531965335475882410552079749012061014830556032540084582825433284619376779427513270701814523040109744380664194904129393778211852085004469922545461028209460308451833490117757686827763513176102635004156676485415413292323233560994122513302227112636561145145730277165388889624327998678892994116935874643956753755785110451134927586595848091731306311898187512347561694028876473116887691136829702091443133293924670494807793994258042742540487095821318693059143311209399410244522853120239372031400823652572252071825677703949732315404973397679556975347262508112005045517410082272363849960912077609392288010766863527043311890361529716292621590994326448883541057318323929087671613667959241891340140132553567705512479126008697176088493876277710866837166989204674832142155342199589988145753111823288414067821698602086806736301960075408403183259058429208449035266683595482965507427451806674302183542042323851030106665299918702697016790208769174978120283192469040188256391763197536495439157520322579000684121002862671999027805236233968782766852796036723961554082008787408792120007100929320401721377974258627215872602532534968363254276846741822283767882243818536093814027144442063853559161571028324346401104236814210308678738849263711880938828854779032319573184652134816332322835075986588093505695504614912777389939362470607470575376234876692994266853759431203936505892408547816534890686775717002590158551641864737764910494739117850826670441804757738800423037337955635883153130642435693047449563059416621615743267062859798193750812108265786195396627150756828718008560068148312051521317845991263474175037814609311955988828548148409459386440455185017806779968809975569718090970338079546320716644245177578830810802447919643054160692992559336419097902216339662830126754087692365011768298255515475889406589185179986202901857206963741841713608635374871177248313533474108848964164414085586563625104761987725961482509002190747273619679794639315425982817230048866980772504006071546501612012192135404344347717958493087257568606206413343074759512697641991580585654609706617213587465976729184598925330355692880389702649097727242868260087957045985617465886836055377616230139607723795753403343673507415906639890419835349654510324712718688669844597754287256851019814487049836337108116529627823816357601156577637157885674219834318618846721407609816275344420138121366660402072824643313719033625414726265175810117092939986099277020442497000425386432265260684913669200609734227474156428518617602079202913945763654163856091738118003992680697098703326141927248885626860723472439779147685253956195193906311359426101659912759047241500070051009497742178011230397887093914992947793161370536220120634469521993127190438898994373825665654623178827505385800133329001068414819999307093751261815158756021637929120454286170303164700822285530063261523648474319235651593640342704648181928526351369447118284415429221878891072221328122418933541343953001178957197998884218617771948814835805118861678727857018577930220943225065360766467493054049085034945172903204650853723411967355606228731818557753778280196878657043131461325213241865413173966488612470627441662356737908133278829963349294857202390015143830717344910886171330505637073112030241121010067610714844038772982643639770305623956303331651046411486718772830160787042336231957048950282014684480773110290363481637992074504487341875362118902571734026954326484552796516145125696252223597067745287166480282075190335475970014939292113423647386315859324617811794090218445727042530816892450685132871228061706015041291571496260792288737875677489026602075309844819735695232951767318563542228335379174280265859325617229385272668951499552410980748400982273812303101050755134670930418894072267587403936654071201722976922387493484071845199718948411973628618850120148335983873839616540979825088585813019237548810430744552551108497566754256894731815513444210965395368653179962681201284473544164953611290873801309472571136528644149114268748506178540018943912699242359536399801550097581953930218915618645999850208958691808820641019606241304792171314436856311872596661516807905233915855798219987325276906557971002382372818769555801026134642059319143403163029565336952264456356727723710582460206570759476318380716282031431380384341260872659981092869266637476660228725394520237644837056994806780484440514139493629335976602462052753754702220655752860166239081463398609376955403005056058967751847752407667201498762191094632304878957223072684476264947999603083031092163690229469868519837827505819432945275153198808202711455034695399534638271272826505055707638602412194106301084592883901932591063130323909731636518265409647072472556326098638026573206227582083634953009514200048310850579529636375548332487300693478217191659271152911114126620346478223880863495348612709825908468937798188615130805481846702314323919020411506173799327888514663889132390099527918641689568458406649080681220174629498685788319046162530013638295179021332486483842030446106174516961359249508860210919001617774443352960608466733058242115708336154474635377916763550211294404748240503284694960176431610795225062869285115985319418490836301063636707184595546069738364859079194118057211460091238818118972585721104439504385316384006383360111648158956466402167067581342047132686801168764464951043847885037554179621317806335033599500651068933758323267442146753775244089258751618537687243522482134336980194107330470039546225434513183777790058712151389687479630452258035453433003629180368438485098798823517947766369613938555599841791519768904220966005583429966609756550332182109798079681173612384764208474036130035959774957386631334149933590260895399627834186885217727160542639741526020368667895344773096062740375506574303321148322012947229865242737963636081765058724701582491926793957923708493541173131303494002371743263228497485810712512074111231153250908858510464528828149080397200555807917205142671973503262385724202175344634092739657022618435952484870148850035694878798134318647677798959350269289018760625158742018157283465994755826433488443815432346530736005147974638324220544430167300509954254603217390339928918524880594009872896651242154770376831596451552900898758898351216216368665696321382822943779410213921273033422847760934102291502180582815325319784114895949088918416950712425138820513830954799860085966179939297329603894759374992472533788031031034672658064340870744281669811280855596086314014032432090849384577272681589373837587546034107880272622668974547489647926535737454319250862782579483874585453272216084321992112115963105916822088792906124619185180380108885966097615549865286884238652020188650274222109841347393552121703364140177719411877141862594731221274368861449846827521240520203752598778409856171378602355697721241956702402385727657853414302916125990771723071391148809113727274786484647188809998021244670294764138251480773929842476850258991226769465948941063112879963052503131323276113490803833976085079723875018231659106434266220392342263709448642970913578060716878998135889114862097481395879027302223029242226278933882358997037598538849713503880208492575926107961981795193169951851562034850939988196942170570537717810933231548433237775274378663108666706941866147604898610595427278500863067201102580541363592991900644743137021231563609927112420681091958619999226068896509667996173878736652985116419968761915235584306403897119326144490585212716911207654992283360579064604905290565103894526041190948806981578566140695334332521811436957051520741880085337500182328747362943419182480219559290368008571722025408828423116053886330825388259537895368295515343875740167450998608943966200576983966141238516856506020586793780335657755177638961434448397254892337502977026647119237443004284131921845920402235943969294446906186513668235970875291609542383922939398056520428247261762263689666713397251524069175581030809552718889978058757943931789151979454258390094307542353232100795814060368582888874010350414986180910729583059565765561076407283424174884444295896543737265951712211631369277222536337591529325979058342032784187948405284354674753084560256498095632050124764794313865881886684531303140222455524569509030056065049254247831094324464620347282636320124733455159800142274679559521646170419620625316294996283682833609894058956899363401128383022736268393284061622649839308201112399062925487320157287889796227943861235348865001560238097489261742780670021062140606184337712936657202726157235521771435903005289315491403877610815957599117006168162781915402181747404639306677434460545191839684616019657083203057237180924148546117624455000415085910817273872169029080609208064704508328820831771104166625357338425944421803748737687319155335182684144832224756216430991774660339816695209390245970421777233900714142329183203345127987702132128617039282351630357694870121157814603637268743818387550444957124255788979265366882137627244478317558196696742487592671877420711046325686921431930990371789945020726975820711939277085876759281588464657671586585755491974904195490054040066121642556537770634115029183525614923361775595970300046770518511117125171311801908903420257514574828732330206299893582689460769362603839569565341170805483764801927750782829981064697551927297328218658462601330994891120703706422501843479631321809728529448654445454689969382764050837888073939514176367932281977582770649433895873553661776974131565307225389143961550797412719489163753829471499149154070057216981318752853152175051228311445107410246336112006379649578670709607714736911067599546686549164978501005789965664139302055523859195318896531979514816600938803950515408252524449669948093069817954884681718522013127171502489294101534762216786173112925548440749135815293162259673300218416944606991552241306221714022400105776753179305406297868139240451719946604506298109895236137611997583619219367416544147506108491994995710683695608268751689653074637195951044733929352080205950277237772239927166439743601687372144839742884241204192471229732284419559121150629195060927149831533428957761575551725695076333158024587496382966622341701483495798421869743015475566919310950040162756007973336212940219542399862775688819043148048204448963768442983012641769476278998606013330241765466094694471330399577759281506629331092564483402272097716804299753838776882092334603470151048580885284726229834682639285384947966876771467062833944719880663542116254586142824766047747410476305827612919940394063789963833908714422059813186671156511869793645847474157108529935953695545125930447343747639317786008004880841315924507720454053136679368721434159765374736742529137799546565860456273492262872548483919025807673335530252750518912721341859887713991563862656562633260733459460367603667616434695529806967091613526651934208120441774917630001728623647465694536526515963186307146735759874653627137751000164902305021226231077901177086169916724462964055158317445099737426576458881238652026130901837964803753740898919143985685102082815330309993074184733237179646960936408859642584124571686555846985512724950626497502405376366748001230074183383089835806009724772844389761438653417863686361096957118229209933889845420094603600817463287038732146797341889587314361616829011256444908529821217582671731358416189175089037577375736939642745632174028925232519284836339504587571475587342119167737962608138608124088060503028621629897594212847320187266737734900433636206211441663376585972739360889133027835580457023831225667343300606745761902015989437485117998822684454617172801729850244363102886758274123271422717392061979839111275700771621666565544122487039386666051028663100449409307059887749800913350611621942155739596262139930077559942658334765925578475809327917647046381071210242369461109681417721663385380664197379045989991098067434299637970214514155680735887026424138796893487561180013310809604879117608006478694414301099392696250737518713305317118044280347478194619249576950037618886780138575392746878868070657458206061777720297494247077602511485720674195535457717163147938874118936087463007398957051261516553924383759001602205762774933913507533130158431427536710183902182975040415114955306821601522491088814089687524530908185904407135370492206851904038128325275553712917196766813945818338784060503775480680628576181882558776687661040226633513593067185186269852525852252530523586481803781383699295016897334176852063567368993806277217465069031337459870866300339922744950787387247247114567294034141179696408564879676315770476288801177538934892798898285272787014132978177193065163764714306158223814372804217260408217212206428130132431740370388070074733550819170475753576469921612208789090786484684419288420875369291772726232051738072770278368390459624821891700555826717676188113731409916352760603140453586484414285709266226170092303783677927671204155055906072495350471630259977877595804600501071186967493969328974900590532351794644674803999298040194020612963174768289070676014393265254806490447969608320546883919466384152697374687867329469556430879626887571504886047323730111932283217845089714542945832124732490404424669094285086748024908806044689250184705013484658390043710277340443303518972338046405922724403314031780202339157908087354968637011616963007342007125325766807389661121897239460975686475518456452969157811157716687055835225271361128010090734896507648491451907998057967463601216281177458293847931751840352152028664322396157251649981763661032155840417275677880545879541707612611442528881205483059785617101578208712796943649839234825701268792957048327708308842752790648401480462132109865740652068504751771151474840349297446553039772367746317936552052873209050479456523665501410407446856048606101172684395746635562424435384131608008474506047456687912564846786130369444962300321542350686858448640126734729188510093812625609891209556281172825149478769120596848263604653161008516773749063343599095071697088724240443459043017447080925850392368628678722627357521076499563947029150126696592528173788367098076848356093220547907938719564198126684690371421283500756803379277631393537601311245931024010024589521707969739258124031666991630799636231909740086850306238710183783513306982650549410199307561537883113194663542417110878472048363602216017187714759005443747215277518310836145272800897517918059150976975625898101629523295456908179826801483341822029645096671478848375779920936910823459856854547343319026201767052461748429218944130366252661778182549027988782080783183585853890856121883694728983752201316814971209054184815982267723021139801657178982079957806316426194519764622277818493695186670172887167081158537510905119204058635911515770567290228305683455359675643876887797214530563493780115626788271958690732393599347470063390169817866858282189094035467292443442839503857083387138072229351676538029536105411952688735789701322443016580343494586260076593532815779133280190587612728478499888942120953077460785642758211273274184365452515215566990554270894012896091543964210293310244202005369224478845378370158026223350979994955563307481678460752124416407553837088371290151942215422833598679207946748841218402708027517273301338153271586634853084559152563126641959585194494374936971681272377343043545483977174811234870945741366379146179073984213888065614733871207169201928614177623669316559256332545980879048643651951296540383099052405924345922352264938512610654793985722516002825153963646601583610993019661012957268788549291747503995554336217381353283442375114038377674923922122032051223746936184218077818957166343672985269495774656261281399050432284426101358564203913557235496300624331063444229968492018593641201927006652610743317979380918121719662414911487678246831086797937042241373879410828272373473241589023712970317971933782838761294090862062780165205817101505434112112732132085635379545617951641097003855121346219942324106837231782000014070618385006570235458822384475452036912327988117777078212864169633300767978533620632269639336174675655785714706725488389939294785446331162114373233112382620310196318349422304925599344515824213783529692623701514544907577860592240256508954726704646842793282481432407193498628403695908048968093128837624705570222090996407381337016708365641113512798368373780184048111569164417243478139051032593093936991493906095752408372688833469360728162538872092673454087421260647531703671178972966498414197537754933679537494420566737081625576367791499442279160596964563680674352940513349607099973906615565740192064848658630526002619985110940126056690471427551679279117758619469510188477278758039759026493187024088692709392589071331805734639520355253631583058116784915911356338191543488670147590216061841340233624871906146485961580077775945106982635013687445027639312785632518099225379057941430004489324471025289359971461859618744213144492563583275096595216737886086069052436816333859145927954847020727785915463897336030250243220168041380392480126650302528920780657664074588185180757410451910629823421947867186893515467190450793201387452596982764549992329364283624400757224155732204274647563756223475696545134419630445080512360972926080335541937804655686191273823654731138623980279251189879521246139851267082592375619604486783787472548276202323649421921755680218089835434325479838619382767975185678327706287066608456779248015016348143285255451399382447083406798926321908362281677713556381220105096939328526382780008066954997946268818109548543561399826639848482846586900660665106395611678307607421718734837379413961074854249806159842009202736996181093147199675774853740688123908189771459300292742024165483828307039472072163520573663137965097637564805909233168780384343272088793800542429833236077459346517674464555686896812153162174466118987058907475624660698332943693065108433093339922760922104959173670792325306679830776219207252282218798923256963536559456311820949856930690396090488372078590368311264448080275579251675944393219363044398783408629374525360599449543188226975726751427257074035804499436880542708845831585190536285972701900043914535664482778014954796991335004822040389139523805485238755670901630899710986050308850644505389074741512034183319069460255956646367764671423961877166816464634780596673635139098198561543526161082572959765105633351614841516967217721126993426060838871379843864850986579451471018953476816763310623028848371781064128521510121751047210208798961877535330994737770559727009920447819337224483866299054833898474058201149728849706569918000662280412520645873424901320761883670789485491600666326823407035414059663637859438429250555249803988541397644034392101871097017128682614394171037991252238568177353856443181273685222765661605681677952158586300771256375504650135869860672228021404111364375088368109879803690089574267403150474868658612235929094536310589674775096846201710590422505991313091866296115942918720552458761529513870568805989696092119318343709296264546819476530961032290384714772809802914391499741185787228892644013316097799473511144862803158683365660068860256474909624054760905673157930961387491921334057541823902401132233871294033807446099707560083080160742038542255559951634438114504709900560506060616456698647970766849402163551828752972876261727112992267550418607579599346694837520792151216856508908838576177744979475254301405777458717381805804955841729326542522094424083543656978828130454199048918072140136558269472735511893184181864968716995979476475529587124633130070322461293179951858816169680934894661362015410183974416154058473662095670000892269544026027744064002084043596400199114797012239770750844594453220732654069242714455940402969383565010869958599344550604520971648777907257121085036396266786485233920108365105608287350316017047600892796704365689228386881374202999151256739510122228985749575537647722272549308819790284421221413605587215887251801994129448426855183342074640423091638132561656068219318272273435206558266065916689496576167081650114534182626716792056407637085816101295969578570817751545028101176358163440346814767199523354677822054795423286764302375823253882602247526467518987514944330534012921707226016051878498110736757863395228059807415367707207700775332334457043868921335351084461935721373427820625962058273452436815689605415295870580579132367457696879535537483402021719806105215217319605977871703440713916292864568402502609392157198940387820692047171679748349385014261776512656329250360505422997810276237088089504847623959776333729435754848182327760565785490410036077241707291112463345760673501721556100975304062058143075830832471226964995284314439738531069907077006071556206430606055893418659972881175885353115739306143916951212099603525168314975517784591917094784779069534535558590626814397945581225412067211557408339123320266329273391746898187342476800158271459549169693145630889999786969070546461750344808163549296791605977290632784223418962857473027496622947340003532973467587332325660893427216763909736173616306434615102925263190785678613778979381574669650084264899277991571158258740572615842483908409750746950244564234602155279038937796923803793771109731452501200385247605372040185178963245568503723886521964704728007696024459669673094205000694670970393265594128705003921793326627996058984794337115953947539970781870531551923981450171466055175705103635753446257128114630584343929991317343028837629198904702671379743128988900530921269487112510923521441348250397260141289360451204018253285645860641900844723282411562624452175827478397856628042470733491077757091071537306116816901068870627335629594574358460925378326480394377601108685367675687632389789009073424219740841938986362625992022243734227110972313637352382056083415619646420432261033158937982004955574995430432053668884120073193465882205794201840740710750870730430921111558747972994258501549953656468580891430073586090152739778869017945363915891635269261278039577318953643052630583570529414493018550924606494132276449816014073396386295183120153830072856823044096705640111510651287469828540481556774923691508568659806294254247399810090841470729489639987975031182706393856822572476469364034933102575174762488780534899737785511098722088937827676960687430802862188702473092335314647676485975818096254772394555364711747651433321042898457844730511920598972434174277984610157191766274990859061508382147942572690912091921963176455759769805737254789226519838655267695890551789617336532376320210196753511019812238812360703777479994487185030418292405306508991070574879421968108312573712814397024348259303297548724169068892630894381554539294716649250714913538362562986052726707681632371565030075532725673344006095946864399969597649538796313748891517263064048689559804008225093086866937895799116834734605790537741685486590438756401591506216571977997433724207006988985105431081353555527615132331993825483641054453882958042397136138678598352631605581753848750732105217660707176135614181776764629367901516450196770137868549470695882541554471753694465473296463105748880822783387751387717025549956997333364981260858153892895849557277721156348079394512372243065018761047818552092124345279042918871397799672253145286087419673863041183590820209598653002387576860039833526752798399795123339266669482610882105250648678274308396952814564053007011971625820513042366857123216284904380689852420914894065990711925190559015523831938334725865156042697799090673721999237292191080395948756535476151382813143661857479308017501740757819192656722399533595918030229262227220430858796514558843522882034500431621728623094594583708776704132441077420449764089779115752504071095021891362916549494646744088190964168849341706947944367392957969891759540234357171870621279309933753620893642045680884070385913365631676469448061329713068098733183743971829507004764239992908936581370438325007004055369072762666359443614743181787303314911057374483173415387442400116079358268658235731061071965957781168072877947642042478579926968584138821180513685560011035078247532973956554644391480125855492152002631754043878967996742000973793272850277941326834899977757228775429532953056869390238178451624637346895510854138867996065610764625863461867439987089849297757652534698827271272846921779449301037946718904515480131204196917838445759483356794395751513424975813991350747737133589016401540651116627036577099881340420880960004815291547945732803653578674137064211921494019009458025384718624519187754965307844171598310455712144213976042636393417034149138193079989624372138274313739006109053039981919877928446830468439160300270656990827377302576342622643292962034091405484392259839013477769337709606579613545006159528994971834380047544708619840810146905826044287777343783599211517814476604913161458286781384267748245332688478528537910827001138067278890606263863781235732578889372197846982101519875889116827655653749340314372955198450435698326050162833683205909025851795957944946424046193298552253795981824876569024940117299837495352153668282301005682848481434389641862258071153023199245662869081554338474942945855407386420768317970243326047751392984954542868498880156139902643252083319587613142953041868819220941999856000461957009115647811987963442915516263117158885262305653907697266231682610445427772559721032568624969058392418422769417635279117243568144471782908426966238610242200130240599948268915911855279990273046264755074081013064312435469353203983597641626812887772634327203447812606554182086232759866046478175298976890776345065151488179134281026893818853461803985854088046777615280437689622787855542189761171816593667556447583539828664336065203201191964668951711017204161870422645360137335666406841690839639882025101985585876865195343686632487674833142938803964069977137919585127757745882736175720335998025433529857977710349203098577504039284642147504657085610764706224172592077354006161093611133535997670075352840049739304494084918098254955440497718297880508691037768493626863132343623237542765110985282230321844647995457720743392417426433010757556082335165204396173968213895362791345289607590474438125996853950758198404827329424275135574683628300273344604332326393072877516751547138857396890637668534643613750025222467036677689249545719394694608804703592860773291596592990582694265752135566838048300458916545385386622780047581784506585392530935370583234102799893864656544100282987539689146886849391320245685224974678185764579756803217605666477939018426138921083937967505565643464781020292711218536501784128369801137664107280908169461816339388618504791992186934676985990667013769495081442558415953857200341107079454790088179743017709344288202599460135482976736863978324987680070065116508105844619844150418940499405071068643112083679279733772069078447279689205819177994476546719172210131896308955460840531866860145869247064669928264558450327347330439016610934136897232643825220568662482529002661329461552564816301183704379387593142726324946439537416880879664201058551411537545523717026506405061831113086006963330657982579158598010904442800463681446869915338090065322289433784446671272226062526576940307436447599167153161074542072575792178700624238112916378647012026840924224279711212931983970087456429991785652031573700124493995760293254308111918585645868506106198086512494889299160048698984424751852407355042636635269679226873787268491904234480125278426438711915791521566483517645601891047172160459452825673800520063095284889194819566147613870311350336350807141016109738579354895521853669688512965157742342756769036132287528229975988024936413874463002440458702004237200425983429743179327163274413516978627502045019166006793916384992236388132413466845274133577338486502469916743505845029924616966235829001485711888395110885622646086419055427638364480538555945671597124673654413639551239672397380483988718857001724694651642254654094274036395728393014136476352208018907583460551761630694091753371961850764909576137550934162807683007578888761492728939935475722948904150521409264916014152576190764261589216990834482722007412761913038271921298945762137994817091883731084282723892387268016748380499694862257645469698557506578106896178781059099037997616391663397822791096851931868855285935794517196111019109532629659967986599116066123254067904932360661104834898669457973510693499141124919119160241076799919182756309764797098483722847562659430627215188760505220946813091162694482359595474140036138771149984346576341617414853249008935003023881491655784540805735697660790634486472364365929622242712414255566104866807807203717701388155126962290134376258355945709517237123925692195164331754023459794581186543777415606271961115519016225193715560279656236046989961774146244621786600777763340211029052154504281001191187730116425572362015698609468329177181248923973508881358335715916624486500665561465719201194956385917112606249716690961632584100583862345006338835519036292013563783419549872537101274586855669242733134909512673579219818783013605678072980986572096724260742046171345348766915037441317221341322279322493474973957138849254643806905739447682452085883391232740850007318759756660720087473628374743576284585027692341384238127436662931342358510444341979506247294982979723980368370462336944000842547205937051752934927414654145458386854652787722076008332726484970172164263899335963415665113055194016825040142945224055822410047579294728924066957481159842719548086639664016805910744292591199865943590570624467035772325538873657782632191462392197933768255737105187666241919578984941110719522139999268783621548956332175823213489421767598275963791225525366687998109986371217701092367647854244303136999904892313375123536244113190303888495718036358337888269949774776139350766122232947969279879693855592345068816577872168087456668035121312567017478669027251796697551391175579817911936839739834266930200001062686784457242096800024374360605282446545442368202214848102249331102418192999074808534223630374614368159525516509592905273391462727872375770823075380133179751944031137763354454865598988185188204907725269346254571757631235024627234691378309892048871785580099970866057367775025638662483849052905455333745100795855336599086927107547810753927177840350141399246419548800599048177691250814352391410228638568140235127527434057639866075869960365313624867209420561501086057191907701867748811813934779239345322584722749929897768799639762126142638477720665000416678616985339206598228312864181793182130790848181799334696138964960387637256408189549798198498545121028077731180465479781215744821954532313927116413179399481643424999487130940074654656676931281292069589277854464314788503230656955417646447181562860163380728131895665833469755813077396149780898453824564717520352708249771773270615267082906621869973002688711215725187099690272614192086455411399505981987946121165126195994199286662023062989008389204781602051993136793048872877371772528248592539486886545289706740591291660910328364372790580688994776883608798905388896204959173018584174226785747886578207959151704111234748259489454195505811856674496646341814533172495655975976145635088105359356164817765192888971936423976444604501099940220263639706529026446324869228821545931909332293668214929452905741934966540333727316112832386466470172079995138545357632361647940008474819358945202117482196354321161876790129373003232985892375209472385756447761742341421131772032742003265342264383891582797018913183906303770042036202614219371796797709316170906710822249850748254565759406944836240603763584864056230622660811571275643159329398649204461167689389244499147888087050244146435844363559915098743410594817066206210139976910944856748150456761191719005725887166402738852165522351822997881303194018240654464465615349578941705586237129492766036400423688152866486429804245569996769800920098473397507311628939900915433066777602112305979148311905147769230157228104851372529260415903371280735378559249599018085779133062153668066301027420248049126428988250771537097430559633822341713135399027543978210957520672108081666572730450493471613287611931471085764966121424355695372899867172282659208555524085847193703119824320997936335891871965225127296471786033086719634093914305132950091340756984691641501555982814838762809757657540425380339987386018079886061827364017517679322510900163199679382716289421439378441378765120142573260470197952538166930206777771295295348937941907072147865208615137936998764459603434532419295453802780501322619352630747460235177947171766908754428755783941823332949341206770742238281376055048021460240256404550182373921474580441945307148796603627145434233737705981939888996038559539247643452154860634941352666803324795005215251364464403285649670886241444693237168468345288513217621531062755992303621579425292616363093917083107785992610597119711036341260647006636087428805318900486240353965623211934977874930984179544662351366179613556222024206270817151378764184841021938725222977618051565129770118834508016588114794206870327555689834034006400472193485239220961370411010698363256801689846276203711373482210200367838586790134452785332579707005764767584932142421619909037808194623782443586060842990633947585142881548739815559303216824804863640646197101138090624705377770216423099292638415115846981286652830635691851060767269772213560622271290000232934564501269173481506221945634331773810807917731399044749471525140329956065762082747116974873905318122416118657271800920018624586436683931370819285557832723046019529790397982853505698915089509102065735556663684976472394408405761111051528527073261614618092704794583059044088696688167746148769436510455510285897352634909747934336550632431811922389823345626464905350094622037473012506204662910304038141525324323544228899548560221128289502232207555076830632431682584812832077923857357270541619970651567064567509422612708816395752961628843332413001296967571269136560668421834886087247243154993108170893009800035798847422822205820392885954325309164464173836045853463738744949342814428638132920055771503963406919960926896201184766378121220941601652153322210178872897552672965303241283100807783899928123533033896777411201938988072273316945438774561345874142184835789636451835415823241855311591095076143253897869865108745126603200490445186827482975152570182769502796691946776406636257287219331505233353150548368982099663053006964312758766688870964600351791019399308110632754491904134320235185622314362574471224117813059313673442248094610684246963523087826157420246793585209684135415664399138864512217723523902737292497757653509114830815812293823317986348439254446790365831479413300750809845189818914885763957201282440840856995072402398627457768831133670537307975779471899844651653822339759058736689611677415837133443410081705217737234705463344631536577526570695605786548423992866771763142423777815855328623626449149946304360493377051126978181580780668279208647308211631874510562831180327417600169248627651943766419810274503323634860725311797162114489763776394399789482463764869989080310418341358927500354525304239458343126639237538147869489154231020726898696382373557527683694866134638590416655819851106506353320333405182075898187105636094018954173528111208798952705645467837322047670112294940629787453127184695453478894047488367063709993130365171276128791959200308948104643745668278796927546518150770463375054571228310725320247218275436585100512365799348360719970811875783690739741965142795080289471365770539990376483651045715080683008775657209780655788928365510775039627570818453345971023488064310200362729341040426330949226182210017590499187342822928510446352709710550654745862698854022414373137453323117932232231463369060737109627261711243155961985734567159295447486349993858711905151796013719530350667452265394585543303193445189855909976648493857192649724925303804607340400948484253311859516642585255019409203603334233826871927058864681545177593565894891081516361000958651769730354916556743834911021191184471262573439512460709653148618241384203918559056956755673296766105401190953288997342542780092604818828972384864539259799200425452139495495535520401528024334921740019868730507843629489940315550138873372802677239568368054466242184401475569378576430369714990591418317702195786774694178764092744121972191644390994753103497540995087233269772023565765062877975081512002704031012295463832911250120164763896805951543071272638929836402919310031680359315815742980380870849831468708775570850964875903878848616048786474634685616785344387392029634903321121928099107582450816684156636500834422945956078800258699013988836363818593024891206337524221314790513590881950215358180975131704303127284341924398039743499761208579152026858213895955933769604571789632142011377375335215708340369610639905961331198543099915187433569845618131422446221638666979027077203571153414388127512002984777172693576234882004559287504458234160512847622742251460372316974967176969287366272973684859908085730184988405119213190052045742652067154159285476071112709514001679294083503142015376300588334960713790862702822064479206362283256359622156610148684622992766196060791417332620102508827494820889510907521374261093191409124981580111600684264144787238945939847276351884014040655285856931664860910266741151437155615166801414089461106810247314884033342706165839185603772828949699891970920282033299173679233033447724192832013310839957683689180084069207008036988364782765708934801135509649145539946473673214155220495632735339887247320030400858380074033259756802386244221331120128844326730150873738002141286883652967696663599671592076942418250678419923503763651619254747836886646181046746151010052658214158524518677182345180822434319707791671552412677081953227983436084003170931980128090419443379837501575479236944720991608382548592279239652339952938292371155038682415511081652629017994665291715427618751908885107771541843669263583256779169314199521273249520346545547390946221695624443505615050606012661166690072188110131733664402094437234411477337720067991476440348312337681295552796903029001314625098661924737118778702379753830020804661481269091563272662302442615725718394824442616953585186252859092586252979168020688582494151819717543458839873430950724987809460903230720275106350243519208602524051100586869398643512438302637527639350606998142077684147212975233913036867110894618018919187160335488220018905028323362919217633998521915399274117801148747808916264798076879405139353563403074619673170377234693710235544408605339503301837686317450070629886364628636292779778909279454790636366566891359837194964636153825037736202975499163481199628112379087208723582548492783864315770940216901407294448767576828269219132805299545846771213421535323905954513543566591563817768403569130079042125685931132552738761960687035209682747828542799112202596529749869475785524300916767581651768519830003039075258244996214775800235604647864337718228708524343904967781859494949732690057322382453804446598952777069851784447630011705635504860750459742010066192231928108697780508663951677986156989126337157073332116536729282228721985617546921521186624437433352722342393270406214244967920881175630719264884139323073134146951517301164792775062894885970615885436866168288624799540236778182624165608311655658030034004338132646204054444020710626894730402703647711632065537651450528610631779092109350580044009435655571780565704020679387027731488458948040337505084217887369872245528209421679575179754004063880589871026467675501294357790051711755511580863541312504799587539044443089476584182028619424645754684033215890691106304823237375642546507605835846287481118074853079586455056360960413408880453975074232626598588995269487047263823569853567386254999414587602978318696758958251940836502539719536744140941645838501524954622477293571132470875046864794699306633859676276173427172592434989767275691451808925442928749864495927882901751446070311269149041781374817564900394419658357089093580354294217693965343081628751021642084467958118788368323620021513630181489270056276795606604841228367710930040955381511050175257006942968968220057554658321531405801385013787028217254546071682287754092238768523645345372640094731643919913631641599532550852361374978898732619344147431774923407522793499660732117579927319152939596880642826256870861347103524254104491907934024552514822689333654485929859883431076768248726448526219790762327058837686571685164663897115663197363219723530930860994305463832681590103440060294247596300277100816542399031574629450181311301843732407714112373576570746663232656722612743744377794675935488586544553794913663918734862316030598374279877649678373918516978259584562053590818170413815643444568914858552769637531942859901244397993620420987566860152359425868856464835273630718065238715970593640036997375733757871310830482851082263998275749890580346326786055336553015046453494076973892207170054294267236004252083498662906602700278700039815126302175671862447382569604790579351514124336312142880077846068669841765540626017509032933203495905701308659298775087467008365614214708649931691118593097335258581980844417925926586533523821147928979221693970112673212999045567474078287704279900685835506278877627263297088293344795369456508994253663902710130966408316817155620289268846441547979905163310498361165871835153708383934565952258478435726956334901086583156827494121781710551469722549799085976591936982681036207073185847403077362787350455989921939052292514648684049114512126678409532060293164284562112541333407914923253142014277559180410374419492883339354578984618056588372758011864617171926726642032826718150116537904536353792735977476181635178565895363933856481818441961931105025180658530295307654451465309875108461937535180881083465138534357181338359040792400316511189116164222911561076672777551450938592494105650256722989114537042518401523336218544395667026935383883881250028544268786584300391533788921978297620765913008839565996534485335135169395316828950338970481979188673982611025156823755366904916094149678613053361396323323298546732569108154542114728841258717858956471073185182494133667877781444930527915731510132724710594254067569329572505111045459846734089658562296509929487260928768806047767208620318653308282172324774534548364760692215728514454225992204163567571847557503639850184600596992125449546695567484872945250578725214093182701662993462412347782837707177984915151596549045414890746784599139742662501011814576855730683335283086167331106648156848909063020515138306875336157132856498109501555055878675426621208598811456978258516131087636771836942718703991046698418107740048261389150881346881042949787692523564208703917682321584176654652599598564943142680163989559116677943252593041035801802330946258479300446899629057305401240151433950676837116658313005249809408078175796260462776202640916022640142087347440335270389443775998266752725285014643046803170766150985935346653497575023233138995985218612443878347276503777777799780112593387970777698915872473751889489791234849280571165187655947475143633109203033105020310046600244326835526639267788636396180065760437466296567885339597081535619830707353093335258459082626025968341684559883548759152907432862210668851095566140038053859761377697409326043577342627238907004912174077650892376938563218162619422550706605088746117957228395895095774193764135937307086459320746810522610723718746352583355746932231048293484285995169494168887036636222781385621876339490193927887584729336635597982916611908695426652255835509944080960580770494286294887717811080708433930374301926655646238793785842539146576165100718987059816603472434426160096309148469047670903691236403635617111393124625359433972968923358289383994985092484259793151498908995019791771691461849319129113456661937128047236218830964081153874644819984433551898568923732033225837928532532761427236631938998107229013670868483340003915057092942283965965121089247089653784262707286898317342002740073216258118081012256390502683718958788675219884563125192670346156895218816545538389848575226040642695918859343225829165595789360729546475176298877167671904546688678446485193479887050093998706303238184258366725827210136556945623606972783129515559858614480289120679025362633458408659456246645617289647822341307129770410841246522606111741739473601730382195398862771561027954860305846506208420670182253526614371522102735025849827791450531038415164127953766388954987278607167241921574295243402603763682710652154220949101966396428317718650092899856473505034058102801575232656367996047915666290064181762209087803117878468239867794893172929596394735379854208176022894541021566621168756382295619798011553129805165202261903620083935545019650063195952136821180477123870701553509139990927998874006028002574999743160975158008677287105534909188428330680946207030225674361605336945955154904424469135553168444052404404256785678164150871627165989002140087509417002338727402848962233522179881510389324054698412887694004381096072662077147737306881842673531321452238299787975430735064860516009578861127258495603826935410212440264587416898977567722293049784856555531805947839344458699397091081918478823530773224507776188580406972462812472306060881647583598859369157883426733962009538775659197523755996302797410435292641669757133445295807106754391766075131510058649263778334606115162582018524578329287828877178207356460457633462484779271896254586650109929774147013478935057099002402241846024689382418725650973172654955794200037202891706587129350882397002394205719342626678297119193448596300326479187339008424912042834240232455140692148942786553919159728758344210587249823620468309972256448946897032824423711746219889720135059086554866291719130877126798541262012215059930354869697195392147050300959379815947451979927531055088678661507370536714501759385853198095581577297835164438837815696058776558876099502058696562009978080315822913596656562067776410026381143496989376752523528627212665795814675701190645341158273029289935947258012394263166337588207177438669672506856602428710371257650491148021347226960665288588669652937213657178342809494243043376961503887497288313191287288798181751751681556484357443177236268991410651523077410160055979846122993975710766620229926091426365688601332812202389752274734354418516442993879998010149364814394668799266588724067198825286986862452807164511641754283971218799497665361359449479916582750404455388653561464743739095561218101721105011189096430314639820626817352125020359774281290373949688454386940462677585045480039907948753190717372240005876240436575178142904627464322009344590695739710855326770227812558533170887175501257776033590104142967568003180780071802499647712996714743951019755463069509534219953823001299165256562976384375115461200829950202101154126237637633589322443106994863694803721767137736316989858525245464556489622410357804401675972554947176614094890703763481406276827456548492333067536462946426714499023692665886483199796153751753285750069887621590752043100187507528301575748634765716558060424020711457904096150618616977887483879834810206469874568604571529365923416323757152169597628991442404514171623677883809876070860955513616195448902400829821032091702939778372830020228513741595301686723696283957292447291149064989424234386592073386441525115382217036636917571328437732565167215107025723335481926754533519168488098706639095757892434651615210609810076087553232075946091860253310740255873224296218142968662391638618442735949686998430905942141289051131604700208348832532613931591135558625632204651734403485456656456224611740018291878695511246564498795259133700420319683963845501380638843242897444306905322510727743692668782373997025201797490751017466390520799412395385592159300701108788500939346461373087801594495343985039394193150056857655788072571876345590011937452207021908707749689510250450650507443050152503189390742612342489634525705575450988608841751157359909352564802308512936321512454189489499518284108948851791596088865144136252135407551475581960125284519936819992562852529869317538479227796121250887648561451126636414825146359725756890493651581900519044595198876220750881262092334341968063603851721588753882437063337357070197508064594256808036611746729376356473607374220547249574263617049590368526690815144033091529734891716634396685317721308774547657262447590097843680950788167033058907862061592755808713235829728272487264771708066055431544635942781242995624340683278407695188215738634412842257809818558066833133956963550359485559994804583939956478698592462660202281199934175754462453702500417887620898613893354804140922235153619450590623391543888186466688325766663856601864343692801546929610943894917965499390479105332341771659210337563359844541565356190353675761693570157128687425955582814898898380704778750917255958841390250699743352299768361892302505232149901524332596677019965512322120627368612629198276255816311640467134763481942913880713933656205647416285093983331473788100742765589489844275254901016863436433793506962316454695273252628330523804596609721551666970232058401500143078296278578297746182850412107733596192828996858687191528649785975731072990024276171623116729365964157486788196588776991122143247307453269605257626874972157276336586109931110225151295908722825104220428946197855376005431083672131189528091538423419321173163399210628939174701000599221225571906218578185050179782959110649673377522502897741573513346903387823055656936441258516881309759537372864104086134930313448062928854688798961374149241454564402126183087542895883065810595210275673187821104989857609367586853643551746692016044365646563193625172556289101812734562508186890441271882004376252360569240270292385379650699897924469784537021944424818113938618771229257488262341913052459078211342126421180138160893627885406546398321602411389741726483269848859825709517945033260862730142020235350664068483568209550241681931732078024089181363893200774941110791372431238392319421482727407405847302660341611687509893219662845911952647126870582218394194210509221022431239286171046739860455780077334832945798667206699998698447996930314468609023180583878016361017811296473753097032850128688356484713739148104927783977601367717817040826057691797209119280849621010164567857625508154059218815463793584887026824065513205380423635463499542895987431352787692961268583811528087286856907851108981020329746070258345676527062262462586134645201307464420512868547467988526805016164645075352065532062738892958409088898487046772090446749568062103470608054660220382487351701518440704647527306159028280557737662254664157548407769546414481988335436299643716012802204353938236440141012897024509734985275145122987866339902026550874281195394591103669902053420984771437666155708184483396710865133014789899847764633897090608301454890168934855986643600817501173048352679215601787824947836979610117323068113344559178557620420540713614912931425482063443596063766181129410788023290299566159095179312067967476082512774408572086709863314673678287994225541734575709696918420501954871324566481638191401572005157162694430836821262021781697525981809316081050662125136072879855319848343913882349899541891219164638092422179785036887472213612142708521930533727307560874522912155871182670616764390955170795085947966543796666261901991309499219927429333066489489936283803294471577764542208777076653692647811728964402839319098968547905206105946344075027542194893407415837647378952197022149737273070594614805543400648681459807130827488572595874774664104780276768927665577407191472519874791934611487881886397276906214465510964754941741628642947363214688192664110548671541406718193244112864542196046908697535626518190149726268963422598116917086812141769813765560073086520640761592614762347250981001174470665074844174581693326209304672751873464080193353439434719122380078974408926265945939102600535455578687966292728130334259774361071896523484422523524833053453143225508064775183495401808733491664125171869140541910930011431204798595217727939164649405928876334836933889766296529564590694374712214472125492151177099419243547839056011996349263026608862035149318215237876492093859876390836955702441701512212982518088173686116867152075500579556942350126608144858409865679092759007656708586916402926451810537087598728555701266093605804940020313975602844289228020148454235867035119457586297168034152496831089563937751573828029451671570880771597669158762260649135613031362634911293235904317463757572007932180830906624474411978987315056952690186539116103212930370417650219717969958539290680147028488496546787848196928015699399279589735283607732471520451972037412315607331062226979296276759182284973283944044760828644111949309693628681424849970549691391972236711731193808324214322795531710227974711696138488187920313639041474515356312572296231109391925351262164154717979306894397672920455223918171536363622782134833830698422293944241558115501050897785929978117816657272172530730029897934346746755089609075024874525719223390120521405542401567842757411213949211671883686925964656720671420617810140815804452355097347029028130106545684396132274814848783365497163632774491618250675972960840522064474900715852294509428166732474208697813171278463859190017251918541044419979089807771113439006396403537458971501961205965174278220199269756888481187364601191956920652271347743023771430347232337103973563979931940329264748428720256638053799797858753305012387340307233234597959076800370939268049956341353039852992391344137169339710807963983661046862900768048664496759960902936377540946291566391853650173736984852037877594663582783323634816323089084678324144192403839225247406611266551510634194875140322112583986720026861233830649246220774696323716115576429235672233280475174803828061452180416372720841622185559775384592212701958601227564247249077611267762458613547449456966271975172038006055538185655873981569198632242472807724763224738211235197205095265372757720119169355245108254687726433081264404707687126524596264619871553602748251486173519368502053825187823929227724186144606824999301795332483230121220168579340290722964528593801179990812907305351628598745155877599810021759197285168892766816654112034474384051859332015028334342318210732683015600557413431829151610678723355183079413062550183736431843344803203957749357481061855645148919878192035273600901971020671945492017771589362453834830893116725985375614222845970319797604903006568671737926427683539258223874571458359000911766490244951243912783459334336559154465394490218152132531696208010594667180277222873827559559412360012588053933453310567333861492212515503094266885319871809162538824835351300075040117061608593785050981335942106188601375814718372776828120364635722450549226527542482467146074190380584169565035639832854695793615821094966580922311106494749369922605389157588580025316540870373161751015736143147311619125068515962643163790110273553615018036138405024905573966639786615975283280518775311772248532411825539672786408220696362941772305378121058613486501008386626724848943381587433654624963842644499630510357052073941707189270038246849394401325378469239250388500823261948536877684112746423777676455920218452668800013183018134556495344627334482666519036163702203858766188394814412076444561580603375118002117224401635084080994911879438350753011125865618862041624602875930563836320632247371946675297038058580221929924041607900259013853133270142952639934573161412611721554427687024310135270421921781735135197776854885701721573006913800941852179850601864917211205740099814517669933366637365316341718981806039090163369694776370497841616603818522036061718425826098584031999477569418747953160582323545208867784427794048969470895309160630883596372745283145774427858212155361159692137743911458096078734276479539494631386573028431003390952592692509425041481937056782122374127545180811918916778358566163100181023840549065032466118672902210522729957619011175813252079572872427483279011107259209584225774406021273393658095085502097094978666583438980780357515173504124946095627295403145269759353832250881742430191937999502524447710007746670008210851925817359075960499899828724964659046968552467231119447280752755757119877095896753225969395761291380799250680698665186239684518545189010248444422117692767871320208334321873518603359547165868176139390214917754617378099323407026062987250116190258727474938027700384272763420860614451767024350325126010166309929266574060080052953031484208212807781426056706859013755285874604503374402003815071957827752459953821093915823369152409382869476605554093721725562826746013193873300110639038107601665840278317349586420909623209169662224965791623012991982113124711977879390585029684282964947456696198696108969705473733405372215794062527575928559030679002796849769930999034724305008278809683132812266977066474535494587203057142946916275804089368749376875862202152522968609347225008183959191596460218201490699201404468594268141231551374761735995407707495746072048950776298507774095638698340370749206368847812265624027863946309673245299839304557845520847199600510342602941067913858878142034949452498860349232632764457394752092903775476165193933746487281797931046025606025365957168021575611357256875895359054988814314117862523996571356983376245269642924743611165685339349634314353033762693862202665795057404248508369325625176369492075349927032087431135027602247767661834736027855908853573976102309124390274049558130865766637786138642251364342533209162613591584558786675371706245363678080271094413117925135674282277928771253880515741166802351519420127714724164906660514065891809202964622845512708683858533237895344375784890367474769613210442698713139853077288998311870160299984283986805044232185985177808934768823653233232684925994615104630993892739847986043644989239760176149932224037708504704287995395104760133189779017332905565938581759791547240313162713787039383361762139949835835431262086941773368506649669915159726577545820381959039419468602106564213401671947460501229813883195073945342545366708546756207335932205028542161992341756070281935848790527209096696205430353295844025315321902662597280122335706267797993523370579829697573275215983458551889898718396182964505128805690536259159343821043663469925321716957812225397106644194400904743563720908467848607822996886065051189270997313697180581570937190962995331132167271729741187466435046018508108621131287299848932597711584866323133602653127416164268707239001882678079583840722506952888659133147377975920549590667735530147550765122210007273717300457473746744200336479183014494453500341343183101366468764332120523264137939884872124523661503763218009667079410223445711286834307515237748052151158426835374328277271431695498913740224879852621740970945184735186518239783875912156697055948336549047304807048982590865002534363777698608650602456677207920343971764745410306284414535858744442527138227912286761428234700924446997366225332735175032036745293060017412715323355048582396258403865119126067282029614566977976873298265115175245812655995920765451891590813524295227313941505682388648549149906412727142807490040798044689089851601428186075581925054415408895219848931316531075291336160827657272029971757456862320982220417479884228387699587776067951292069828080806742426330539168640281931870431753684590154265613718779325183420717792609802801224223798432345525293075661416725112583446957982164278307822468434211693868113008642294577332872505116075921668655738989495607409668418827639420101102113178728711251933575613767604207708303607856232023693173639374983559610988226388233753494606766282776734925185610015685984919489522005264881023078181556802613185225598351885578820832956219243277264744179145924693787377390216806847840612898835653384591578237446046059201262700641604583318293749058267986011890547544439177706081497036397260867672437542043646092738179503099894431471690901018695859773987394787852815460319894804969856732277199733247338893645568582891819015747541672710375912786892117772513662204201522755778896430866231423201212827514962297654653752735735726239031018902929467285812901953954075507320129389077746241418209896701577649797108296593799261500350245307314714008368004183570480771572189432298268281596783353627722809680492934869739461134852466300298948768803040893143640859792888030289029262122588392659082310441765112545675886592206833309548907512381687910703183929821259409743165415381333160079173854128571665724760090109951588019692092525392321951855379362509807740038637837892765974959609624376748419718925276388218601752352557751238365197966865335271350484634768692955784842951771345875839878561040881815663522499669223183241317444610473354853634627334314927276166146271646341932111309093521991457590963438807956028849982013454496035760737458854407020620923787735991203738360488400808676954062326074693622371543329395854578498696948467034528615278194216345277676560167132744491839948351322354125971865117954656252609185888826718680124846882523690286464142770301793848688511912005603343836115423891520359229295833155434957193509899284346070705992244855146763715861445611743812350533912471480829843036174379121997018472537350034611727190343029728264025691262080675053095702653359164294254415680106887950462440255376031734548971691939198015189323394424463637227968477317328600581166970353931832295672462216017764019702997686033507857207285304609951878654062249168925060416255258283443454636182705301724912536489195517675998082093288931806211164616400212860313209910029675853785474618545268974827916576874143201048050425336196084234100817580699751798162236109141241962326645403916395842081668217166690487705984604332599979823435416107609216790162154974801722385602379957109233127060865985749093073793493055548353571699494372479758308413520471183410289498668614931295429963366241949460628002162163269634245625182598121820134884083612325803984937268409572564970123257762392349012637938798918564725118443128626207823094931739958826599887825561730190347633180783906936511956697384296982623169992107485056780151700850172099343369301074129942906994806537198505535342069076968431417202412165465365210696878083969018557131753385817616782970993271590401377229369180989052048880810976389471835944090322292142517076010858767246690285446009456427187091526094851334253858746594145660865006211337770302077716515963731997548310534344562003034163952858075364907163704623318890943831655644650983999962661709200279460194993280903775711551101893704837670654182076407331412446901994109040873292265934520930648623832827531582560390565445921159085733735117354358494802645827858097319803453957373215312203878688155013134435433340247204793807914643577052563145799193157269308448025629030217495864134654950257363168709682358449561725503824859975156690446478846745198151971990310507656999927440522253595044870070501851599201872383261260905082957263379937920745516328692062734669380521399106450218567832230822196442887776654206859264717063935855915068417964379344632345124228570645735718581698084380734774208634482499854582559692592934181534695723239301066758200161924469824819957321546445036955797962965219321041533905916203362027952459560474956685278984324411337795505580861756382578811254834118836461204897008981390807688182607859385884503295728526828150839086711986118803574800466788150603501835655758547491042098501617114972976359446901793165122319411509133271611758043395318376070806225075400239701260703400690144452496178786441263887103633791913725388866690761461940061804026540768809727302078591530648311496737163979846378272810013783424596814216027402367168039466502298233362898548438882606297378301336584609018897732985613922906000559844845478685309339274281651407986362596742094230699058202914894232217020355895564204783005997783096595878786321653858407950779305271812627144247171187547304144480095873201485458473376305597798436367528402406536731750264543650249533749001312486413966624741508443799080044086014732819714956161880049774611558480581254601828309332227048603759285954444574350878643670778946445184554262862052574926915868190971341406448298022622892084533251488460989497500413247577612080983766245138246283024911787624442476420727504286206584464583432715724935514909917772954739432029249130415556340218014515894309548763113667687192265231436249917688240223932069041182574325562757725042866535333806387479993835067588206194137267114222727781734926766502014396338286504601473428013105825407495182145200077136319975082791616463441279834124146111613811223430119525923035535925232362405426963624064460392666606248821016362058185337873145901159655060680908305773469722971991765989067405736107550091968575350294477188265311403973262080833578021176683311692297022909389145687142801088843576095390567059468596811126074737725606063090359212902725983762586105440755525548185517314690875016594361070603560647564774735579544968642243475731687419271572100098470665438646416782979053480818423411142700780027037283483795976390566662345515308360795418611970204855065560809480935853557930027826704024689896244234398506623350182441720078434168548143591272360673450289566801353065512916793482908222983460977118591356172892298400680111754843049204926774430483142162077517092890706807426769444260330765797705644918290198410379166808204038524825361650272077373434685275982336493803458587516951015997085627709969703484871667527079647909534616429642860534871250325228268826550264958227973672039423429600166409323697886113522646081099333440324516924187405804401063118285957158932189546693427458250562133328598397963462010334954991983105463091175139893263951638325276626664395145524558576197153246899818348517230850752292631177367912730166864573962541605950881926891194907548552143242325694980585132462151408309085599748801955232040752613217985154351322681912603753081375295355166394328651947053303234496352323943262145598124415486228017284182230817820578543548087117665409850541375997732591940949437091509807381502827200990439217160443417225254480078905171773640107823831710453756673192798856151165555173046232412063037550801787673917053459491001589601769056205793361529292904493590238799539208463569021257854021605040195960433103536531666271467619523610357350238363514049689503978503573264871163350542101646956853120000387770843905013306576402703658126514983992926966720731672293863721347280554058835138435081069768946700036998317464877772030324083734254476147799994761812736438630423934338454443530157905158626725688862863901304682759886582233660046832137627271860951396935440648429235274051617069359109546051386719347052754664709756070343538427197129330700054078747701831155163474366230440184015363261031781787077017289392076262471758437045875200836435268869485224293035893792923815653562901351549273333032199827316292580594977758001988081257737148913107848447668084447805455722766679033704350366129866106587826882495062749773424963639319562179554706725083236081124218841468948098766605890069434847426788552602645126378831109340007954292543274669689212594300502436072683594986941279043386775865771272074674371257957680060332059506396503871807750960269040278947339713582584387159274811245281755377922451901427422856738989815463236792118427437303751076046128630963667101352442646962876531028518109243074375115622053528276874924096775141295720678800305616276102093859868612622464195832404969821872720324912725258577254235580915968842285320663940401792745082450289593237177374747620866625689052183109273191563641068282323944341476590305400442178775055921872332856204555665180067482558940889822384743440254180733982612903394663379961227783779272663507436577562583911368811316224154487030957010597288408765494790860126917817264488705110597526404865159990484348830425847656926027434409201987644182150437853332877449404638542438254666733295519677948728817328388647044019608581753150697957838686726051187803132067566623767195821753332443624392122105216566918144169439669648257547324119566264177178517614685090086671672480428476460466818335161595417410384139659580648374847380809423197291825952936847297452329649283599180184348211147240348717933251229069255585454971711475234976111790757133766541476372797538846344925073974725236712530864403225020018551194660230246846347841598924869062603118662672161815716804080456995465063381465718424569347800492552006350977462099880363762243017160105702614690074079849324974888787653370834294686992235769069452870079062501991389680012129170842090369658367749210376356910447633964699256960461897761648670520142467679445100795200633866882136055934909444750527327332455776795466606130293641079064166649612617391958582782730481804979961221942430376944508777915415233309291625205043109918226463374864736850463880106049631252678145722327352788014998715335621149865691019431039752570820126582746124385892228608786113265868187587181024752139558139827128518427182420121846904329244582550039222073439437183866860676921128736193857893443610033442482748149401213827679427551751712337402765391717064255297796781541103447642930039464931640432505427711062294899235662220009598741085904393128980053950628708732889460615421803695980663791489000012612124340840426670213701476922579505698721334987241092594017055891712922701191108867863314768862812465547389517196719809172829974303897729040164151637200407646590303369901267063281280806968438174105366112063543363439601008741588545353801115639396840619326144829745669943087535888454426734887274245492088685013939301497413861492064742633212010587837398084204871440441769303188174919575277401071596120628064936110880248492318297621686492407148371371624044098349961048182659687406542068878607993011863255312128711713430890095086313150516789094063529016264456064279810201935822703185697826637058763112133093183164621351767005708103877368838304285974736572756641837367129572848754979242439772114242597112866885861193040511085143608707683654006836747878213175394784580795372259481172298926662674951904594635471605916590963748971385951793552880930150851844981066793973680453984631423304450072046525930076841180667320726540748234005446024176710722133230448231009967241834166674900620171434920013075881750543409085004653757027839773529919464085992736923547947951135626988270549787688584285536855472360959616904902584201774322097101469749902905515592464047591432729604303116097969270109808258824909324267408574657557337614726794289393728335885950998843029959922990530833917455530563335195346106113796103830558555471435590247500606938455451547822400334096150182195001931329075867148118235715716504387155493063424761094333127534202203798683623223097997148974943596013291946975254224162584116981821312272870217200923406190136274321783663791371601361998882169994327340964174490661575838234827129257448524181949201209352114098891954303499504947364851257106710653417534216695115569091685023561458552422498245405216307504455006616719933221597744290056428226571217868233316080863406925855846275241240922402609345065763038344709324647786644163312831010036583129651800612793644027538348936200318910929271480059265695861499272537196117846744281651495421724797133532310615698408270788681550053342153875217956968013011427499510692926084021246302505301394742413138502985335469267591906513509647368512741662602847063043956323514209767334322143035590495162993237538809687275693734714878475989346938495959739489597732831374146214162163740031066805054511533103921559685463881315781796185477987690320707990818099961099188231802975977493825177076072712769960191846614001168376812305673279166883959315934345197702961621357997137888655030152530010238938163554539830397073381066514969844318627798275906764085193652399341402648224542857670163107692208382697844792344073074476256259528510922668124282166260535435981936295629500599090915638637218163097947389130604624950163724985333813134806506544143015873749651951909752901418400202785867464453426293074547268084792915735907630443167560483915490759445144767353708170689584723495110689285367612479763487446368491483901333600732488742798812595757616244814260077049582877593431211339339080798376253971440854931289927998699286406621174657667776642369110604274692028757170174570011358319141604979040582256324685011867183468885495501399186515591669814095326691168852368755470912893155777634857453814849335063643333455097517608319191648735320389167866642614504754893354486503243586106348469290158119246059502364955177977426051107368888597910702078019438728725896406645419175823809140011633062483878635389816511623315722474014283093668812892465479370224858227508092288855724329787857687707601148597632780362910121210846909667202978319509347983278998186698740000527574719078807911796815259612977794621243168819743867969897271849449829086495783655748529725947243259903917945343113337176550186359564577905480568060733015320729127692770890483010077879158285731758224087580652265183512623919273968016890331979521504430331575240649340741732529305247956250401624814066745972398395107448797549384755622836762705652836501399479469676742613067257185459803321199893868584491959042462761227478004517432354189024459410061438872451427434968055332528176830874320130244988341747554542171910076370472827306766115603232026820245049079795196750906034472642374452266924692081916437089345590042934701602022770098476726750238784855841964068484321335157077491043193551713961406944553601084257528987997243923399128078547217901442414330321114369550453637248774356567071539107603096205582427640665599504731701766955906288063851497301729950967662740042355439379513534845670736329643583856705884663368119535933215461466438576266550946547053023962138711930514105074031090115947617993075407719375789157449791983705613397466426971939935456048359023148721665712417328484704698305902288390785834936207009020594419915922414543223482655943919367532927641237283839738752317821543160708731550510022545252411899013747764771583720163234402257476912456665527417370055962260643415104110524164987193249143227778185981707029627001300304811033883582035183091292076428939318848341826662175976801549833938447923326040320434475939728140179465819016603832662002379517851185867156223193632580446855620730009183179554128708516994440251873901749526514192134711356311042702857413829029450597366420327750371314377312342970257427951466867562908650367211805973021578557608864127443651372571308907025460880625898543224278681672186601313345530702787125307453322417569524332921220246938893883135657251242048995636370608067011308735049168799785966858199295122159422765756719988961417766722449449852109213738459250507644424513566078321731678357859341314312095754547250356393515835950824421731931855502842422705943245113000426284066212485049541057808970939821810119660961145608809649023871763806482361315441662840167255015991004657031184464053451379701553819214185277475014936647753858453898587682954064755937568548450415235957595754372151329259228926989643848564860058510167489464129197387465413981968872243439952153799613291571824454468128475296520615509003144562330477668919804508574872765719576839140730630648760043679233534003641051059116504077334009637240111223707584800094994536666110032149551909154775039836663154388373216150693546468034235329898684705860505104752872221074553564915997494565444081425569713262764200607586738207001304892030723710923822060086615888556644487131034457298948688336672253526518386623362002550355833245176735450185511964311083662931588404012081257650501327879674975074310249241736867616330094113149270259647415297067178684640926101595118821340703313210971935676048580243694669350991746053722677739834718883393021558124563694867728046941202631237124392161667092585090842001451990827815796412175232761647399023945387413062661252301532256532656975216662494652316751302796812827815573758929584092276956420416862667322059728498130037372694225099072611548626888708944179791167903721642940154069647387419553329023444375426265600495698013988829057824237647956861407093532978574426913397382682421497449679883965444550298083126154893857091986130733149244499842559246322755597850241172777395747580664198823412922692922793947542301854638000410118044667195495963644377962762751049280986836672375423444882977239379072053389449311297106615054871504956222798017011150675033419451474937198697933093183466689649313178735980000721701856208635317994677131995801990560003584553667071303135837748216421762349294989276014575387283248893255649320954519291641496746670146221539964708286260151057078392344298715267045989266233245828684893760925343171740170766289813378276371985499476162900076327935652863954393462064439212517606426018736468134050538459405166410596015467824819263259245109224724705166894881348507430937731845912743787220556574097555080056148350163566125764912587356645735147199627662212198659765616363977855879969265365757658973262414491591072726667587108425993074910453576028562286311770056003336662214491974473295842833135169370725348613116676374782067314497890213040523009146057773176835751906047456409775812111653698643964563830407130872684464754146563381445373558515780888230090042211288984205560280688442645240687004232692454013975002793961317504240280432450225031223991393356760643127944874930653601871265650860357519035663741340287291181361578215840524472142828858507029444663658715645507357104885843335222792586801946966794199428934540455441473403759333160681066515139416591750673186461827032384391200096569498498281334174849485233496846496844075160044982072633818363588164771171965610027660232474239418271259086275597622665532249987018071938293261899439569420846663700663284724542088463649497524750331514970195135386979387162254237233311115166244023419780533876262867706665711256634806248577553355460408542131035762731832035385124768916480982866098491780394174558273041767684450821301011275314218886467105189378184084115320038394431688318187329084141527896487614415868275788437527753596743694830077575160282929937392546602850468719226647346943297250539882457943271803155651936873610775224507014702628868583196733362408531109283306500682629548078738420324830788858610942774273945416122742809732310022997583533676869011688578310509972903776741280772166161551820042277926086184488612542979240721997269905224927145363642898979428543028752830338806591316480922292231906005873535218413646393670844000727835867735612253174032399257364227835287192766355510252917750031414361115180294731428325383494985648264215790877709207865775478030423610584928544717158787313528597954541883771691584548347160007000401960047201382127162774838328523794869518018333849946669544515307052158729412216911993828042108628021834599874876549350761234988164880408488274809126151255265719683518670110613216036438101717917778885515853194229917664214940317610655692182604796942436307604829056650325774043795593723420243253871074046776544856892153859620701157675430520593256018546633256634446812282249657377717726911127386765176649787131333944312838135025088553261819303080488120899859259586085912193369668228688307916051995652974890933983700932532638560953825880938426163583552064524895300310456553183557518939105621822942295060656643453661767739089226006581582176748227243253459645433760071811138559774528321960783371289332672064425993289363095865982423752744479914709734125011928217805912396986056613647534227330207576793482039276634791377598266474777018912783319875457453723464217256386383111596195102685652076243121485050169091839484662456848691323084926206531595415124235711641844244015028114202655404089467927538941927594101901596190017652148001678989241465125604180009406118646384488733388971326497781505755313104932530270559476167978256879775206506581450738328869629900208546643950371123420847760811220216642241486171323122898846794981420987194553530492213903071144155653948617389885142275808715205196668570164118987892772066334581698584724804922874065404276897078759497969261424137611811565338367924001557528984636589873021315519629767003568719774380594293431523731000123524817338997858117000871025745656390496968854420600707639063309147542352727788824733391881649522560758457362941593941198264139587225444996696090532946164412017082789110596336875182928336487118985554694980229923009824785853163841799757343323911017309975014816898019045311014917193970914905339868359027204054467434387845649723580531626804926407618255134926313895550223094081036694015194938614187095715965445676537770134173338290132012839971980324552500641760833617628912677784980940714606989201851704298566659930441214041497518519726002236570443570925772673362994175893177941340123020743895501319485999794331891522093896589185495114278250133486401196792490145221813929895331862691670920854196880956636850482017342400145785786298701294840451892578275741634679600952089593987503014909280983247434885777411009013002085872908449139380396113741678361456662386696087377635571682575330440766965774142452832971404367523532090765157353789526407147600725404273639422310786702125859849411808565083278601469627610513674595295856841621276092551454902738700132422976050795037134648843843445072030972933025909075387116444714711389142282371531089532718410809428730393816839271456027094416215067613703169119597380601537018035064243950172276249960540333841144792189328973058007566412016005467549280375764330602485673185937568754466361323335575210829133991409632159963277958280781797849244181399950740050577243901762535636492679427819472492990319652562266839457323585728910906307984508434802286882140641320315676768169581702933234146925576536277740076440020396140983044091310397249158442199945292173617859992772461916637042326690412660915795641971518256164020698896090685460474415705053880507751989450851358857564756976010258762092205770690232453070150162583930135550708549939741128755777346805774734841210131072974790438781321469737532534209830313938414218007109254073916952388809086039657987370584801404325022525118541233506551013034011116166135217118517144994922000984808054202143880158938673690366064366475536835798621221061601387833327634982931310652401996449730892501240106383006682022304949380140113355482814277813224975261509703957795170949978148386216053761038540410499204407839525933734755351651095834517882571326804353482759625936434991727045487792740970650892989050168381303449937141657963122707673334631298849882614866874505649145327773614127512857623082107189395256932907488584648050109585958137759135461726093761253853313169088283973966014807689841160820579381960229014850487524296189698980159850000655051959346646864945716491889806971726586564140941999115100844677460486671334660998649630816633539584148402533417028193174804385419307233973845524051183587758852525482992882074165088640984961375057739881809290492322339889198924425895011107157399820505628307889164301272516129288368781893119970517356252907062089064713247187175538173171835810561587594762748088186444268363385481806235459393832002531030410109170193957235621798205236397007104896143459400510890260974067690151161500176924630072808168011070509636157001845424515894224220468883172280476013422055245219013308180733342661161229277338550180450606309359795098804036151618396920106566682717688202366781554966449948218302319570150653847289714825057271876467710976235734389878846574048572107265127509002335819842703919236599951786050888054041460476246044132377930568186544636882953336506333136860107035086060495148030377506634041402449299188155597360476223148231384993014885528646363022919154691755415404033782769524935955856318611494313354797241249319623504118200491858283803814155998063337192733282855182224758966969815100710538502755695148270923125917322230033076116439613672404967242484311932269983313749874060319569620121255230775129004889681722314348083616397613501514747849237234625199486627413652263807719385015360191649631547314047827309878691067890995586315527214715755947773775523739120001297804902840903591913427178219291625523777625470148223655735842629287861397644330967616433849035979766649734387027348384253564133535691537431958438288490487728242326206260645180182484946676062676397398956117839596527377517810754983990501150920185586869494578782111374978311429122372649976767259973210383238265722035729600909330638015099274156411478868919317356250936031044099982186959432238396588063255890729733265037674675301555617984195274181144982020737626775650982849301636974213123103857876254303894930513591011255047548374722873043730025769097452291161577140719110992985988266236923717750255404251702863573092441447432638646859998701494242517980444835002014377659355166716785221514565994753842537374667988543358435897554428211650012955359887185779310015748466635559744558147043694807830187626067768960153277181008325416749697213099633333783732384004755649604950764310944935042147314778347235379567458333441024169498110323307458120541399763684122676757514488354747240415781782358666617614114938875226974564717880674297295805559564638522186552857177493568778809713407582767922514362194724200878793561362914058092332963282866845328937063955071975687847325567778652094967835818999715490793762025043569950713675903110406385776386050641424572787801394776725108698897892808575576367441539965894384835401485770635335376899098124397866790050927994897841981427837175813775760042254558592221310940057464938540181045790675724213401674826958198960668813915887800334207279992992523118166253117405891159913683737438662306514858655596686784133505984765859273824257565871679731163606770093238506921549406704168889054979686869597791132969230175630510668395689479473479120870142776928155173915303627019443696032150768043266181870119651034348479415781502859981878773109406267629039211950467389484179142296438512563592465595019494670517360656681212464055424814211189183196470829417530496928007136662176405118765483975015490080110627183256991269109545157399710817721475097629046016346746915617046513176239122864140341089691098839831561530034390660112527308078706511815916382758646436752264155681824525711902727437015952771461691863389448679812808258385999954769163962384925176349353434370271859025992534842084629323366567009903928357092128980080737392090782665245167193817333239129460661273017952852169260776394836045363065913241932317811766732636456541731999320086902976761393153838713358912477579313557123328450632027234067598469031272473173661988335056804023715854154896786936589033006232220505729463795087788478599909778135789376433259635796210239544549391478283484408523432923457260279168244566145078526294900409118198447972831191979806424487781870050594180258306826177039407966561646767798331685879119827392975422333623733297767413275258229626535456572649691381583750550367405990262469231957765118767422910510273032721991642198753790221397170966584508961741526715913594842476485076041410935350556372265494805671580102533129274885230152543982474019792909003008465851416246658170949434918002908651127868295259799839108398708339773678112571832278328797581010773649147558410093848906814301025299108096139131533892260287930657880177002506236664170098265437985374852446261594710175047912867160963820609156070996908359605153587287931827805073238629665093911307505996201670859983418046617699549866884815288100476818669686752167081811086523551747527686264006371486269764230482870088023042878671315818288746675487477284337807688767110975424327103617312780107586596739668491681710490386062897802808300151410176823070693096189605139727161106107697846978728049645624026231587624293636489104752550462476138458040018188982228257922597009230839332563240363139173554190899316285535823008333323354319731278402946014788369991049118350413923673294290329286437336663644428612473422876094275915099170703898226974834774299504434901593180213369851035568434796795427402394442658060758109528148652250020194498634252297471694762105853182062231794018906325148288238729569481173631590813651113275562741729801103152983946617811937608657151963863983936629227800219516478746963531268767626097487351590844807004803985745397331782572684750748002247883791285981957620230747270059421501593352425017354564848707634036679023629933603404235148936637289297280802321398566363496000159912501402592270918275348680774601542022752997191795347468484929435901141290178493575732792229228470736461175597554538182897609083185825611467654780624453538095400688264538879650311052050169738789387298063252276405071451782273115188040959907639312782037835479494423440165244957804476682588572545095063741995032600276721635382122729727885547348708529652990611087771142854972312515030729210511263137613946003915682812636057846588255710941424836359315144244166271031572227450929034510843353145418201716054118645129781653049983934869320599024126710262367500635223903905456789545692027437570229030211357610508785873579911327722487156095087448635602360767214604871347399806898247566413424838103118647802941071004778906812287188059679843125399415998470421072041864503234208281083204639811219301385630873413093829359969381740697433460302981366691074463345263724576586857996214774612779061356426740957002294159857359839868476545591880915942898762217329953319123301887516387514959548194407562675881168298082416071638599696344775401672191182458720812151914631073475413359726840790067089778955707873361330308229887166344986313481649261602510702474634900272257894914635145643545577883883989547073584673925435438319689768208198763035520463956272020898853680575494263273877676403776662292256616226026730405091082524251715115403954773697367712158531357736213637814906240663397840662788724678069164760618679922476570125913872933232640492829101508408555510756966791750044976508171405691051636158673314967598719766853401195109562786768143873933894172321874830382871336288564587542402545808766940384994070279650735575109593522895505758117042442424021851527944921870729061912730955338602932998496090925291379505521623541520978670270577977525707849074518757045360420773644615579948234301820848390207706701194830680073302598319974497058588808082796393979526566152778076964209894816432511278168099686978622642455755476530222412166652349274308990051890652409360879511924561492341841057278143087997275262763163020946937571147903355786089327299690553620688917472396010191611048595280155343235621123516942155351011993649794220189164810903195911482383553904353584085799542198627014159172695469075275251511910756539127769835386701330840908102941237390912149426219261310738080751611689092383539882407188112245880201834734635699958072102888111226175710614223203840083747435767269911102512919631873412116864705252918746313511048651086401794306156033431710362631574527129205120535344142658175575074216894958528583004715237436057834485941617133788718693575057564074801399374523856062568614273822589726180852355592176801031349485444297755577966699324351270226215246692390170824507586414731132308691889753155006289289671471571528241301257428396145186438928640863980840480803892943589782155402529957735505085331040540492555569802187950938375697460245833428177879381132154088679339951123391671521816615491444545608870506928876201304384687483476179809977253762014030329527140758880858933890830487415712417713731226218560188566245520462584677123255350286526257420940806737031203778582260847957971354829280947169141478245796673873970631669933817597898556380800956571991123422088574204039382357481464295460199873299514226823846477947831057773782168290679113181175435792536807748762018375033207446134421158742340568893954732140346460730879668189730978965535746144841424457639830713714606849756499229112086754466391754298882017986204023601414049655956186108431006946895469044895020960846611916341449269450876666125888116007642866388781197304889896354379668258841914149834051898300182619759615695744705297572419912369049019775842205844695294226014399693065299584642833903146584883688814578431229048623627276231657260452577007427363752827522604856370369698674294340194549411162378370601846140393574390707959761209050962715151995850363827895229317886546871111750272847026797324594335951528851559561535541868338552734315324504946218852479089837016028707474918843370230167381105981829890837016866093857025914273435619011674630978316740751751663036317486766268700002313687299442839410486186334836119901561106512492452292514298342471025824119350896784059811176997213147195696848359081142230170758926476306204691835069840637462656930682774219167857082855227027561480504264686609744169072739463379840246658189271484212476741438951184399023550113052033431941041723426074055678720989143870780992615429732137090904976282072027282770526680588826377067109938696515314845829246245197964386872141119174107055399957634446851099613674983539727030033013035235608181960681269033819037369815341585243359591038542321670955522081433737960041873744527310300924073971496325744025506640909913500221171482216833572913801451611813200423678969796157814089368737625729494741892096390492681919632698651806391147735750990253888785789753311180667813208102614360055633268292748469831837531873969639203082634168966460433787821714170497073694736393326200703919195876859376524908571785250712787790305637644116315171587342171033506421426997830890251671768833278551882603392877968182566871741447942080765825677482168398893075762395469792468043357130959362961636158280380363377888391475615629926831966894090542443453762669967418985905278776878597167439434756342448687657251052654360178999718175648777233688033960865632271744607955184650711110816541243136136805223050312119521068109418379559828727329011323580067399604506167441856700972230558562532452410271133317692090353948729950980984637831840069942415983987557893671554262514845707279203006191695923303368431420966770927654406982009096000620134167203999036652448972060460394002488072249033574149802327467297027438511446166929559102948449508760772959607546347435960859066918600588798335716295398882004523782816075662517978402113146650885017979768701737049473904234513808097790915774781529009991841996292288082361226126513543078876105075580187669116042528740659738131478194064617944037839538901314316234312562140445032346967501234386489460035139503547144292506091391637783121591025540971721357819805337953417593334196886399876926432229123875541783237008732222962552534278847280997302146021313073084460232443454194867509891896469589212301230619789210429080602126136789318200037355196277365240507582214382919797424911438902248305483478904952928126665779673978493074537981568780328748341500455826054902946216479006340226610130095809882009228120091451499201223454086466394609945516700825807076806847126033796723977237800431817886653311851378282305536030221259730776880274688614765100807166774341046349211311594178423753282549042433130889689290799966550829411837296896945498911122292212442787372856797780026408283907796876138280091376181819655796492103954261394689454923581755675961055812274565810598179039878134767208800571352674739510458344959229923027983588948557873628459762327218114205421915301114547916711333255027199152720272153072899966607484155306581947416926827504949725452640377326351443406482962121923058376660472772366091203888350081252505675689184321334791638609466426265544300242321441230832276911903482844688799312965535890110487645737267702609516630137607822915129108817341671311187837161247586199099265876693205952599851766113700784177138822677672552621066055687957213337043829403686999457724366221333976235060838777376476927987498035883091605785690628627271263340284568806468927829585307221985336260774768925925636857368203552667144632329535234853435623364744228429089048404933690283081675505817797673899711895200337129476436384591330349030695382568457812654199477237457960392676485646595192391496316941138131832841811274823388543536132072411391376031497279000706825965881276253463812914194723048552157851644410819878399016291802013525583098507546681890451904997801869822357135681834060916729044499926115064633216543788450959150047320727157875946627440033689887524510121212506614653969907729794124940017115851150918612906667004994093582102200546801343702469600496449199017228554492639813239137826304178571764583334334779907173582763555259337888507277529401807417788017385827749337543942187581866568621014959866949248095889283866670696247784741288646504698141529867648197611474872371976180200540104234530382427983450099196184784255498386219149092091434434899601452495237782315683301920730906284322464271883890659591974783271125521340063670105691746025077191017381845576413378017392682204446693888073088818706373422007149051450266839302316900369993540949084403149959695883391516815693275694016734009517202771960628393298361845020393936101081568831681908476193687933849540551443760516797901494709490058112317930510582557509339473724126599286390773809206934051291517350467518574781051620513924201758302416398494993254294058422332045853112673587180140433423968610303718552901795716234638183501824263303746989117892229800341214245042924343751682035518974325325109584702384854034055868203667811323624741295492739805693671560204426593986313451923760086788315689835470792493222967690238667063855948592273367559406440065345710097321513035317011569824764717247419375368646890954266008472845790996821703982119765743683896205759112994435247626267516269610535187832184103085120101055700079821925687575472392583232347618880284547679973205632428084534825764909005801105222721390033946990666400352399410347730390093935510177636289661515134605550344075380232237209886570052917581049161422946829596454955318777828396095821119570308030083579375128490560406354190841165204806835903800691934334539821486212511503308850946187617748893865701220493549263071228720397839950831273391449723331753499175733345706369085743434846222227452800639355228954837458301054351817395517750124969130270570879906064980722826215603068946419647416027532773973805977854825940499755224626267420144946577672791289880420941394134104929025976289649206908635942753407705069094638840293445829232143370747851820943040884581274064291722601346066010292880038123459969649618166205791268992432598277436352312525542619962702802511211913510292304204514333457141328866146893371359741469968342972953923433729912511727775305284371208947087101222642926632743869650591883427856203949538221463681471156530442174607415172071890158253752969217558856798191808571340408747168600681698185390240815073101150702408929208737460902036037785710707948616506596106287015963120283608432985662454864260063215770496881513626461154377468758537063958807829483124151448170613655013619659609972203001927204927301683564263747025018028702888340977195606111584208517517335006245345312272829870561571291418181228648491156566574576680781396706973902098321936328636506721389865728921128840393443926755877379732105769406166238972699067925197610088440994112266589225352348237520258192551676213411541959897492064500735442714961806119030662453348883430980429532407318008426207479104745916202628897124773127105515102005477006147492339561655443784065543545254477273087766662904608803735062334154277381205299712798496759010217235480265835530749195720034846506465477371375966864841478247654767034974171229637235486381685159285730338476327355933204832780640380678773378180649363912159315215206825674028804001255739919698800789523891253744841763318984795422170869719326027715721981410632987922243731617288609212365324791197226400071143807647525183863963169055938376187298576485441681188917760531264953419750417887754717935265760429990504006234870064920341532153259115055939235679256307806647376924322696965431783969591858378888084571469159900613864545986757686488315468512562671785599282311882249451257160369689138053775543241246174705408038903608879514947534577399532871345385394634514613272155357444705973775724831425307763382310472054301009657509624364721493757905428467384070114856866976059033501848879546296448896432270617502827825325088001520119641370315360485529273656768395784769775582348539395308052599628783122351486255478490017822686951909630360399321393940569674292202617083643352391195266948876568069111148487440548316343928759437878764570544492225354619329317607154090553177852675893032995686400342385425609268070302504515146926743904689870940883241123502394744181281293698288302593496073403375697963230623953760456866218885683042980809585021774013322641779797812039741668147114623672035634274183942155585990778127116721886465021282144007376789748993873277387860365801971654661488696445345455464432588600738400791448883667335668807684569692187518537380106518342557290630217283990050669846388441354872550473528713220030361809692491485844639493634612824230764167974657901987822221157827272492504640508812089619472348568559007694899788424192575874775831416457733878388362515327562069573062235226157706376769812725302500415608566422494455259667451443364465756672755188332608357865831226536386403070190423417897533936746468018456571991502613929140747231096174649870864199177211842645765233556463546424253649193922252519386399280208613784753458274943846475930205855139240688730658228924764712930889560343066045764767347834396378107916831855086806237962684523504925158158073934714648881751247125095516790714141674525513795912832484072768644872888832667753228635151789537697960923830381359234331927063391157769454734664196814193391993594311277870543290606003129433776933085302636342962830087657659771758586965018784147345271240400068130253528052494172421880792774954606115140902347963253097948231805956360247595296270711102205499958340268304781489215349979123299419972203840888367900864585427622475679536262466157822298787618017629400611866695433040410566312065357140484976771778934839722604409458769307297564790286692374768035296205023940281786238883145517130192520486672404239629581458838501795611735257819817080281701936264810124090264482564563185893588796881602043514562052644019506710652412112367788362534410422430950092205637444558128341306438640251277536677389540161536830177566897679767612337512397373248765029584498518735146559884666449063953820332455953321590111912052038849863521599730522352695904727209970041785861714471497855171079715929819871980191505594427087622359270254267812501131919367460379555621302989620654127362143627653849351448396862145377996857373159873556504286731900142807368205655021344103882791105449319136018131772563858172942781698501571216956579973661811920619366036378211109493476429281532125550417557790761123440462951239062165670981048513098422251215215226637902165305333190825087734143942665651489304993389288028069374838917725033533078119839432826180140097146093820680108237877524339803884373080102277122777212804011038940037673787082293365947204860512693270278674837007298705977996806818319122922735676066437772067435828678068543362441497182034495005848876626974307513598475837080590692162605563505642993267802328939074881118394812443234500840710120757293442489141003474959477958795727326189586733337746025344616967459414749337737954195823762194570722568586283869504245402106688298357809629697719873381965228977018600972253000478829571763200647223034816677234372506447249274112239011021276112722707999190968822141971463824440535269463055907275848190358176591646438240539553710247916331882300031933214557637230870852214030905428824958277636288004019211887664328003941870619325125727884276699209277291052216501043456618639020079861417562290907732375966673609572809116739970001995623608688487728344481627326232898525289819343570690165011458439763311004472536162312591694870855422220726703925192842963543108381777572647312758480626015918088084800786581417847405220871780886784629720674904645061797793221145113196067160545558739053069574588778550109517239621379745918643751920808016523439769669538243497552053266449137428634728748396775076066042647868098888176138140105157719930802056190707711919814151107548038941663835792227727971962780453259622500839913085579586004452714516934611030473173892887731017622673203062027515235143625267523168808097950440999055465712764454187335794638413830914748319111909195704125905879868688397497645181194560624264430819190643151638020496333370887393420024384119094544839751810169517723533842980936172754230601834282697101452983459277692284790863971657476485832295741643768193643857099264186457293715940898409594839433015147529176846026274538605151851635553054325899708151938630962575920365738849424161359769452028228570797131607724756587556888244687645404156974787309102110434698373167014417514429105027046774867239624465114671632513464175289681315232084133600750417496104177978726816965674267419970447981769720118251570966705955527131360083253130901327352631746049365551437724492272568552030749245935342157551978914753806090518588099767926595187247884714071421629869479360930603939161390042965250016463729523713810837266845334306572308607156285842083992818790397540488669744377864366904027648197422708065416492719249415047156544276394492199566923586694524223736095709854227426410577213649070290369051876838118100172982525134152160035484761204157422226587914660948544391041937559164255248054112946770957922529392555398193980190865113309772219623350787492135863668946123786101783035003053745674646490205533117096594586940938439280528636076820746435983804404545635801829795283138557617534058796351524811014566369768965315476928821559668156197585084725138663915638886841540633363968072368629885962211987904008676244419028540840448064639258661646467126183369382739392019225182867373229633529954364266440868497234356061220534395356800310283517903766841446639905768796205597426011218380210737991719215126481566482385625058099050826273773593800392379068256640079910614288610294325938034555248663362845247766030121935677303456578505635776095313964949509452277585587094303038306726359397876021991369939761309566914817023617825112230720110221513643976484154120494853269353373182026238250028090151166734447704664437309372660261565270872665066575910249335527043774329518012920934345181559042422734644558253438345894484916590765453092221268238285282881468505614435545785637130777464111874783746779614231907130229970329169319217842126982367805941147052564745621821655326194541227831536964776444677913589332048067512292737801970129755367949635456057019561367264570252373693999951248764450263384305247453611264127540960636449541434425576266473028351788955067232335415724023930247532979533692762114426720819281802367827530509390187553704637920678857651469643807686841273759269631858908403382771334617013537212991418261750415246014339077322345081605040031279234997538355528768142341612364469734252299968805217425284328957487827630004213228214970580549930148759652248448058726427932156773419364028242730867193146698918691615455041056229638767619389613456416569687694832792655030116077791671124335993146399984813248407461377803501090790053308954198405129744869690864856466972433959234703208562693655724159702922054241273417100402064519734121882462569186115191136256530800133234686442602767210904396460677669517582485124576251938090528780101902647919656148495398700565730027116368267483637174746138734476990807092140081420598477952574123292813245937684225419146958526177051696452367008739193768116219035869172323448661691992213662049782376302902285068029382415020691269017361283148095157858005251006029465517737184377956360396734089993983222251111070237712568451391040789956882917428752915624131866910378108306664055944399536772450626750990761084644278171012406533714347796209791983815677342554304003273098683746652839781495941422988637093690714896024809237488984948457462727050640533992513104695247328031334391184527525243892598374902243949873796881272146889892052876655958446315017652733325965723597793624432353026539061596990902886314455022448718967793939287756511416471137203413576139528779831981774802872310523396217628408905045361741577100757781182948119272993391053501631584754605147100015188667040241838871121534514771048170338740520876729129807615568312795210129324115860423096352307090886281941266568025152663171737499732983634298678820628654753996176734326445099839507398155705908681837781203697531283255814554601087880736525894287091340534738784391368486655379635913376367765481468698431060435291869980975154824664679866836096378289124024127766445481575040341349023874493324728823851427607301842843680642405764626451546036895988467709432971891269278773250171534992796357552999065623458003439104202994482313053806195379810157881848444368610671549952036828822297690429218217894703674308059246585681950513985689858500104462591734126903027747108718548441790743795143808507994829269964147510294699727394998774856573418352196958936054923858030621334634697181030536237957776068099552132335908483862144870066053926467870250961735375036600691043682367469717330943121419338796624354068009680785386632861593195656790942241695003405691189810512365455892381134275357421071487031682373166416735329679653039910644292927380924734438896161799017205066535707737413277459777396874488761654303021450837380564288709070216181520766614995611368016880187024150928979432026632183673984074673053681197628424522533159050753866456862899844206681171757754330781786562146505856817696601434808488348423673576504689955362593448052113153659901537792529427048772017344695311071012799427098764357784539381601702128462718959565709703365696170092628908827903851316998667935526615671789028224292191961910292034087599680278477176415088936109238203031350445798014034850768485553321159561592866005873593343027273740619058873062182883026219523542685056680959067083634992968872127573042105871632057063230527414659434131905783482692258930886759129233072678558244381039919354301050531694014336133755890541544128585071632247670565223159658414795581640485397492237186936347538077593298407737651701250569477206700964088135029628822653937340762863387223729400425875748346249851847410212051087325888319368662846525703927649329633497442465435452119412980358649322116695600064902216508139836594332744789034967891394887171592109937390776253477940916783860297874566468246177278511058685982485678701685575671752247261021783223161026615049629931587930037321433932970818293160219103187757425301869101916067734232853918098318734000171359090576392249452490304490443136476697973439015230359017121395743606544757465250624337163407435082354503232149361106429281415487516586132259824588157282590701544335403042231111860864233262889284939869385860247056710823890906035803294732471232382292700081338330259599528050039460875037151256600706962263423795105051856383445896023361113138030156617150319457124642466294689350890797052816807426511848387588075716431712467413157174463932414190682271751553438810109786710025486392607096243368300149005733057498213244804044056336984955257439602129544758954598064317142188018712642124194449235303630456102613517653077849719634492752957239084278152999999153583520921183017410200178651175976976450024634507179711454976174546410457913535797003887784344811322918835603921372684845919236227061270407290192939466043396816048840033180277188105152417068406257907035838003040937176714266259255427989230622972594655779958079559429728507114842851283282404574873170553775071150138543440697115273240760115128011584617690680472404924007372593834361819778535880799913531904880235739401103010209565982872735135132810719736775700544456599116357628959267933551195545118075437276596455258093400228923299447823016364052245236940477513712420446446853078031970753174461152780580826933792864323973448354281341877991737904242054280648884844654456746696229595343537302774589332094171808155573490911019048075592789035975550192510232312315416602010016077854041205928382044898687355532337580179855002617573483066692742885511527879774473040668351416215178605264197277221642622671542030185136111511266311524315271215949622971515985728911527537776425045081976605544055046754410462341080929335435319222983878950387438533727243923577521340391393602477491181136335400187386328380648867914524096060011575105077807412572849817980844817457762678263856056684732184298997994291420959795303924537203812310805265549075761586360997453927443306798454239592677396753129855101704908579399973703783127265524475527431479401442812076066451352402689151409844696255012484852521361313286039798755192836048645680188283526032223870607998448136948453160567589415764618062081033748669664762212725984319172054999328476440524251954839300920805034376880325386277092555635457021011952749501379092580455917491045559007155788075722771896151991952503381556826555377675795962347809961288011703850798901462542401234471234532356135093419690654962677742402611904486171641116435758590644115095673388736175108550988277976307224610366938622899481796607161145743290105535322802795045544914819140115691502961715519733798055262256825783831010651091355712568229973145352093750908227255086555506606625172424380698269494486900604724277271970530548494838794495450600746293295524965303222436401482724296349373182102156531580359436664893049505395720002086764856656870304366947955968349771852228113732528544471949916149235966969347858509635239208987396425036748991451109686594296398264901739513053681863192083450938031783710959398172023116812603242893601507138251385892971946968146577980024844526332887385503144039673194016263287674976667788426358236394967738144398071819631418613491359772962158994469444018676644763883849212434566944377368405897550154239693722800404360680558263782920713554109384186490076158870993989648096197719534679181977001390934579014321986625883472273149926567943169152603401993436802307836742434458101799703528287043463041313486048958388818923234323130393774624501186075358019606065940854504997497891018282855813293806533237965924923185207648347605341551132318795196838658095326949674728626528895204507071218455601146939743862474720910504202767826671319294581773408909913631106398053944402937745014941978388556218722406228276185285906819212340430135194167395985490249495387370435812679901629423337848945134878873430469608645201029401122143190905447258021963480365672924000321265540713475208523133781651952608747643333838626986321132506494507638800808975646930541594007395162378507182071992877163216793237743477865068784164784954626199825272802867815015978888269017416137354029501146694284686899095096096290492275247820146618517100678560307126442559842021033836508520543785829720845904429851778915093359372845360124703505390774108059534214202767811291069436176103945608929796183250513721237757539408477405013899670375733766519186386262483540087792702506232591850601445910938685923782945540907234552767969657354466557784626892889978306285244606420629124107640556557527478952124366505131198135879311971827008779305629305718323012364519114637512479168253518247343670380401190208599140262836342506471715596865232514715134833002598901610171528945638661339829517362768778176374763739929792984375918009342405014078561173553192212641759323949826421587785380521910263930550731956154383368370633531067984004040445294102504338975811446390215423265637661011944062025048995788896877531948654652098436410136016865540851886063069503090652857793388306561849366829662197517007302704280647443879577772827195607875313362024401909280656317891912767151587845776695945068794936290880850738878583861432739153214387516227346158312577180984943043137797427873289611624192643085345932600692386966077984018067038495695275338063529359837001050314495269768985889253195420045999168844507174191060588846949345524012267561578824597929724237028252731418946947771573069082931728142031500984815421030119131995689779678141978102819109389516769254960995681488888700333330082684396513539528041119579206694282040716820809140291184808219124518229402387529256972971753355696293914212912207952274820625012521780120812659774657288559666928613401492006602613973264461476909560003019602651124873375483496125291257656851145454087716812167374698557881981654563432878744565089595083967226577014881513533355642477325151347216770578616929263046180068853018092224839895105769331653129249593418025250380505512231364616245309766441395320908162557430848107519717992560841565128724347054955922536213970148394657956437412839889737524127845034657565618703427641152955133874504506818720749236534376022910834827843031524706984893607252603173665856090409917200209267986781399735479695642781416836815136582874774637577001730677696109274554973514315735104344063875000115749922203652948769305984629853538734367497264854311959437403649149288203794377270397792626172023489892820845974592039408511973327959234826341072596725608070855430933938698444793999411290213316643171764456588070506700110600451440257482090505075053149745218344627160087826792008609328139696351870484707254827285176839526478447392473918778804023218121441244499086518507694698127991050001707607479684837852358963291731536838915912036395952567012920554970407261010188626881922919846800078162139000882671610802844314040926299988712843221449777381091647598428236309128205873347650376059969471790815321828359198378481327560893247769994766566258409451883896539747108238493353693064522297631753885481691083101230339762320412553717504566013407731276949671634042326758920375325389902788027454463122701885615961678891864192991223085401997451343641080147837964389200899150906711901571013066462189554403013070560290967340562009587239993649644941695966374758816460302768117250924567448629106043555684176901700908622669778458953079058952826716120064511310828992909394407223701908782528614626265646044938678086265927802693389752319696784095544322610671385053415671691720458540114631854006508749881905213302862717329078827572695191352784093949134904789107937384409768677864488445366497759360686207169518855758696359201502180722630108669530477435148097863697578836521638918346260339533669613324095673508919808927276159179649926222673956639033426231811788157252314752306967041627412196145758991671881730292276514153781601770101719357447975685643275820728783364829462289559653951067710051009813585723754071506133804897508121635785774715189468024351944650740330399064325695820753476072659432015568865409035869236166648440278104017331011515506099705902460721554747050034220682176853715083301491188308554895450101527263633967311411896996990014445875430725421851001486026690277611635833242644929356130191001846949381497925331963820877885265524455974575050684007589826133905342317464002740479091345824145286522370914408156713255032293564135373272085820342526337373024436420636441267698688545970174752380589898774248079858990401962542275782889091667632588419639404445717603466493885459825739009114190551070474803728537767150935325600879947642618150943688161246543886128543877614282174996806730377494007769987683710714740034254354247573000484112275225512523928972766166509128739611257280392295407215999848671360660603400146914596454333857972483712886054883971903154352997638935688520277231356727721100969406787138685657071017480076533581753752598536276475296654906878360591272957245939083945262303800262913067357008152589983279968706252835668832039459821198677151990930952902989663418263277890142114131403477857496112028228202275996975446784309159392106977932560300129937735959442231805858814260854924983000129271414059457396835568302186871675271260315472404599559770638548026670961276490235464862337590457024639493304155330848436164314912946499369815075597177700477704659593960920633701893499993567763716715038972902613479408376681541446934329092081470028395036267590379826002884740853126635567281147482417244027630952671141880000493291579551141343847657910226018349496767258936178013991357442361892908613936155348619863718483795595738447844415834901362442479785037520988748865387115709018010783483659628184803741414740017582674447309353904566093858205822714088373596563147716947573658921789857407504720703410983749744361853283181195020129826119581141173904070462678822096431910388959651210133809322085458079129054508371224745017515939006706432797975470659247547339391022919704625731816205854505245411304752032403665561401831152325803421975020724314767351511524452433241822382512466074196615545876302577850569453878868204397898006976967477375746468680566121070539566906528613652546227252318517637411605765708043521625974988029226025773490559576762560979053109705758787281619424001444096582259998975201458922335192053728956827491906419076573636907008054790649695025469513188408880050037910981773661366915559120899861389607619282614131664930800829803974328890685794352531702439887899547690570613713449526482192382634231646872009980519600449560287897174266986212724222216482981824994635795886731246887499238608051090810509344222166584580427730106155262901732642325135526051039098332573987872423113084751811078474186624702696616535247147810268007089848614705973216405328771193893893478514657091106232339068620915066615594596043737690390710979438762041406063832163104887654988404287497401934711418901628447228023396129254205915339245117175024946668428295325809432049636140922037706726142706052859350483558769828282225618452349768036009015021317789965152739271674457013392643436818483221292426997919043346333095175330693863601648456137596863178262545850516167545645942026668163395554834954112874646639764513289665098018990483926520818829225860693229127441747867747423676317195854201504829790862305009922653654121922892495814647964176416248021084907986815595105197474105776315826215995089350488093716163977958029504341845577326323459616461522167224384493344466715870142293632910727322211146528570482894354955948574575275166231861524539361771081641380255103319468397859196127437232102034212974539392078004468162047698932344713248060091420898097330940059449021170283016353274095496565947341566164933757180646735648865932871094306474869819646445918674783319082425212258434541096319351503063674682580296812659210236029764228725932328153228070287285169491742435023234641147362967550579222821326483893642431673071218768977814330958740538081067996855270710907513519099738319786003425278682321748479829689074346769485497627605003086112805723221054312436240678222479625331802029228782911581288149737056134165549368798171849718603486885816541633292477407269285991113825040592657953486958754541366483735085812043638554650920155309230875374910191999684592333088411418709405544384165348788115858087421494178355795791272904017224176911346526631931094810659875867773019672805231106570397420565878015898180592070529400303607064330857899004227138614873487670821263172630240661502529598488549697697272799791772235465849142732665983955729083063737046219731784759198751733477245809900990273207676570709260082349326046615322171345328501158269305451663231313768556105649521487655389885466603670617869702606577999471981956206509096872379548022380407718081433553852068046887039504492230610205331362472478597802690608452847112043463239060132148910129913838802179055261353164692755795769009054922622700920134197800463561013997776055425193605489845747995271321315949262000417799421224442568717231391823513277653770210933490815676604450488097029337063771146690217295233860999083157731559616141876133172600664678089795926150052112186263205136278038839770012049991584576378338072088829859292056806604626814196040532986993199642752768742150657366278699719904853562004715481837214525989143195794130199995289277140986558274627583772615515757136657528166908733071708534265650786121712242412961147817463090264715905537459062784292753307074174016809304329967793616157988454863652895038560430263744229827489454685006519573133264543216137790369570274922302771067132065696735452527750196011494105075082492874282173522104678659392996450314974583668905521254857168698692453124241727893440532631741812133335720093555465338562312273256140427356562300333866954805627160888476549314490015247783696717836941819955731550592141842519810449961295889017859638884707153445131136659519450635144540565324830838904479799732682796396787682930424952348549693173370990141550038390861130801948618694872280216780674242226929800231318940520841760400725254369677629133327378660513628343185083572361037652743993516843759180188474664558736292978690796624919205985415367914775339754241639587370900110599548623105795750575849550302514584917703322613286878531011268919403744513709646867784045037202624360435401340936599203081413714856097805724180331552420617826987552886039017825764788799030042842211481414744077797519085343655593827351777495367505180424928860715198663330891137530539358758971379809090602745355205089428947998766476347477987168422109573829334782948205183386023194171100248559438408286357221354194027253021573422148964558004663137224466047671313411008475124136418214079034825756539012294825594563405563235121105935563437655163307415152161892175419393625560961578569791196987513498137867721616342476255555833729849982214536402895623060618160758751082563849022194361960968458865517389313936869677312814467033662556071147376017679488931752349733224150601133728907279761839829826408416893839740153160080167632888814592354115912909936867013282358670599835956392324127675898263463688269846994606095787658047603502640349297790967924375294105166710581118872370160198302991172894579070298262413377049061211645648237214097854402391690543161011824649577358903167706981279876785415083297175929341739571278339491834746697232504007293345215926411115094405692598866846307345404907508519417086646857753762667453007267278265797245009368184453352248121992245349673884602003813016895420993262523960660565006422449126392837563496812852356559356543822175971929806513626974145026244704283096032398632453760035911441210282683009277381055090798646009767943664278065845332115637034908105263963120924789947722114404886848935908041089523101419293685997038744149115333500584198089870256505044606735882658251397817612903646643415177933593941756003037087056596218678166670080000213685058931461018631222284657791191937471800043640400932063966137833258038090398593547532489312412881238523974909655610951634248343791793869818462332658586837565082667667777110071030403605904251315404427088992386619649671318785237891929835157203657439325355773988853113849695634381048206910013087423296990996144511641828266921979675963962142394853018985935169697283608339964540047037085438926947546542451680311340641879341961278190823691779722818214132354897063268081879860411155671731915955814588958307754984157862534112004340349008563449952928001001297965897327503852470579049739134413156962218670276159367297113898688854088955216959885710224047711294986477996102634298462660966539264740458457621618277344959763372759541886833134881558272705725148060032540805196325277906942625591951575584289173184558380556979310746859116943508602061293434111807869640249546101953839858176253832055061082063208182555412714494941291601595960735787203691407459148442294276985241514419920055651344545767924328057776995430270692845267731742112274604585708322213883548581300979010033012624636510055329704034761307509159742439931923441636932512713014947166654297524325620382006145775104473917137441843978844558222902147552217399424807427271791206300000837770846492685117850016345922412451918524413893874275155095750579544735634816572213517288561468216057184065422383931575613429279890250571063703770462524024342318159897244016819781452156455329679891378321072062729161909648476632464865107505255920688266272622133693363880646218131112284740864769061673482056749471281396768182120462363173282177326398770225939355229343542798222515895542914343653678922151689941327798165742365719623664193415686959253884998143841294005430645206100225569730879067493973747919755650888113863502090865943344994815966190836680872227886814376172649461491509536317479767968030082659910177109449384938495301026847141508609834897906283577753607620705019708615780240099877713733688705623171393900108621247720418361318513683810401138354506665718577288177745375513172910964799629170978843344665365089914851206931058895381572100346343913094529712693088798433363238278598697801630348839863808854293731466034641190933158955787615352941700960606929823014380072600554643600083378942984784450096557890500549093887854451769633595669239549768879740845640868168510901796051274397979159504475527768975175085742840098520020260123803392385421094049763301075900109986884868322137621164358987787892819241843822773192537445961319653201841970979322279508992060959900000715239530065595571912139199132953782072593315733854263360728975164286405971161492559126039684286255706552354985669105624641145604090432752004480220590835698963777943451155836950926595109214482752213467311959103094309084988865141173670404484354318321997499515752318117098581777300677825625207492830342294981718957197715466131407356507900052307167011819918207584191876648458334583502896603286966255054168007372985843254804366137781710947189570972539076653573128773608597715977856970190973933758655422245971115064455269179729131668907410177219567707286920861677561994162732258220164959937544911702007046663411887382631381500702386473929973276785372938218162394307056748726111442192238279750300269469715659562500518284968842879202737690863237968586421267237911170185656687116563355843090790269501571771778453876676623865893997150180704502485352851034999212570317983515033961189080042026301005327337991842539901733962708911314864243250059312240394756342505958543943567528835582671355988291843497270100170321263410282762810060237271652001901557211961307819922112786165125984414610162359718419107254904566855510446793156797275193330201325760600597897275517064477255035611606013433807714740611178257193268092820767447871280127423304512332175525008310924613610215684217570721773615216414380538751101528765066796201003394280536009545639555452304257229874724291457896049076916111708034705959995065958034729444464905331203861744980744651545063135589106923124304207736038579475858835150218018739357632230989492808590140718693094894512299804227504006145280858391487492295124775622006183765443342995033732263989229267859044922427354422206642421279081098055091547320535791920081959890504557015366743791228770649843994771366965055113543305447728652911008341466949933564557915564635538492179576453760587541303490816613065242309376140245451870697819222032827904643350567406692904339485079090220946295167781816264106612124360244671767855932124594945483182662567465773822043575219473102967737194714505325699925386088571763340217169639725447993609166372968146983046601213166920238324817760827747109767875278813450232540778402042891898302820737341529237948537353847734615213551384842851519170996326389115749919375490566732241695384700631046124694857622390671720556946739170332392405467184254298086962789993145908378426421411907622232177355666301455828430634203575792147203400151703102961657570695083840876442931604241700138980250061383745678484098834495834083211598151169099137824412532652924461841840998961394311973680282744404857434273363846456353098051619259370325277865920944497715340102175921138763930119768616127521900849275766090993178963508219841257562255842646079371763430467758424088646932296015605163299774871375038188781636665995030119052850120106423883890520974350636314967316705430624589068838588387139882800379947416559929406057046750158205753748983642616503075483519025657247420012966997017171953419071870508942131900453627670934850196427947883080942897752846365168064662155568736072138199983944337504495481104283847989287061989303559947258495653968798014083122325825722596721210423573914530714071395282213371786033190970972938127619161851479422091732664484468354347154993306153116797783993737594913704686004954297540771059203262382798183989270748965616522775071321577402655692251993845560011656087975126619085889901305811882758146446320704447158894201753090602098578130146462733056647570131843611541053627764173346378704674306038079205557630016146302482178171127754689011611991531145364047267921372105133609126227811971988120321146075194614349293027461985431547502739635012801675421554289652204941965965192457875236185852919312625885837604233257286445456350882531567958755013231969367238324026196340584555743839866199007509995973625022162613358727947300371274268991771722926286378996045350426748527439676293931732988119079300656522491575406300432539012003234699503728514109033751119426549917093288951171662596647150256290080792807802038938593853969759909857765182309602880513699411451779023160491560316022285974429415399826609344837359238409963345541944415823288433223969637992826301944543490283912412354413351104410271671278597335346794381618203358931325860726572838309600844831419897735698933816296823544853649227507480771308228275207788710733670805979386352773572845454097323730742045845669101817366229539927042433835155669273762642690752975437785242324309525030800089740120809323148807788309480018173896377062118771260482810708545729979330942123156242035429515335459250085350980988977145305112032160970248012530154068508456240698081984026827892988717496223087693964653601107576259265292962228073622231947431393728386757377791675404516866935688681458891742465349547639813208951356134967641188163756135210987004797251697281188382779701926749165167795722643541170390897020238624756630014411336934932188997349248703177857437365727692610015525474312859104388938749502682678053254480113710810904091865522621453901430648240101082787351677239752567902231971757761446892298985725716827347283892326447117790962841899730418003757107076969764550260126732995544839870578808180152516049950980714204728916106899403907912587298967698377970772000906899665605380100966152718217191096018945603908169001590135172606609906601194404966697444303862720136462997940626561350902189748987878116118099256103224538942756010022110224729937599924304587534734120295229480480872016135379982003496729029022921747983141853439984708813976671668392391327351448117888369967248038699435649286672978043165091944875039157774651106893497313447158297273760621811019181712795111834947025366708402257661706344981990378065914075608515930482727168563474550820873803461844666377767486654324712320445096985418709806652146249924322774040283884164802367534452656207692248585385975625623591759017245081226596986356499373576150495349687494026155140650614619024528616552312842569635925553539174126532178106102588377616218258492600245012132197287924653731805296559042395441468871898023234766062426770901492501498003466682798954205380549060405595616409887863187886823759506588656660631723502377801461405235391535371781494085548876349850909527765456305832505059630388325220468478874108956821272820658164644067336864609652422929848491215466141603388468187969287870524769893139158073017727621523729521600258668406383918996607706906672323885153661388716978875633089730885178234339726135807489187023235344622159592878169178304889153788004884017493876620066910037910179508281368530255904110153843811448802796755987134842721120939966643478575294793447980487715899643693653632191252247664772195838976245618683320204985251523631353291800837188590145077331194518279202372368577185151566541740296923941992520530753632044890706905224180730197547071704125351818237852640435286971223712298222951217820613704151420270133468912990605731716268749834792980402306398974608915051426498312877923305248359022118514169311451079998026610519440507826275651593969316170690839872173340711949459892672204543073610004364170073489342886662604226131642372545761658159891962318117258109434524742497541178331569978943496494404096664167657762483260820283010826643346346997494369453213674598874925386299736462661827953969627992933799185988271900928760258324322087465764606310702991635235248843772032374275044333704418262861069859985105728153707020686781505290481299790328684475401966972378051432203038358538464608964065033606614036011850583062918798559039274101463630467895050338501722759329663393004362429159904435942868125055552085855590103681305845570225344265921249022040911717676484242507246896381954967164919257867077455429949186643019014088756654283163105523952148911255885251442769979375514173757662744041245208541578686469199327267000863425513442116534049392967735603104839521088089912865125033026222712854209048011174675616450419599350264117238992712149445859863341277506983035329020363197602251856190451904828931039916949124553289414314627454664260159511850711676474188816970159006608820734822692113554085577354283449890248089421269455479259443569619498030983372506611018674032780917899870384236365381189388440348617478308206167940855298331628217086132080872411539727448154478432536106707574961303202114315980047278328120068037646422545775810420750378110938068216670716572582158646344142996729104365605638746207699652284222376476736974124535534151589913388008710583164910345000993852310295344664116591795592480210066455333258131755212867146023010781706614568318613984988775553789381504117198485534745722623617080903807542570240036367839906999528139361479371175664046190458808323753509142432539058261884943214215800029695090004714461842763737559319536649245397496064424774283501797852177660692688473106612057550993266196124820092719808283977612262140654653473384372742563955569868379803610651052460488517110864355933993585844004889657022053690564977589442792147089502055636237876923909251800696192144022031921872668196050518265654348050012543713062591105622294558987098126694454764174744044750405862228809981642860395996043264598214194193977176860493748492973214710947001344307194027180643546748333805933397633284721796662460755361257363487547063764300487918108026389861010689569533188951362595237407583952299079630078161450944042988083074347304463134528655042995034639605484962034164551456561119675676645306307445750153452033835504482400880624278692516379401643754146423944651929857426650590677558413539344590104963969700541577812559701312661288231932601731758698459912051222060017502202088862228582278176109229112232323608418203522495342712047522736571583310105106475576951420117748689160658982280602054549963054630421277673100500741675217213753368556128662100431386836049528245690425637741949446474290156753804750688895996626872908473600195705810011871322500294296874793139080130308306223455169074162827300182599462766896602413091359772580969295514471637800183169345719280351002605940871788842227439033333416283468032934714416691996741324597113198251664986166574846573358224196357344392751869657029185601433166853399495280029819131042842752504987778440063285571658433593497860469235357337635037562249355281435245231558189139168367169456409820335194101857452090985406669641131839686964121193835173185133150647425665488724258531538691589636810874922681735533777384256268275189980670149126223991190617629648688815779806248886190926047874196060953056330515572885079016295384083526172054658973650222624327362876555369543278796197217749341737893254064521158175841356862895206818165005272816520936615681863716357225438199795973718909338739002179412633982178840935666896268470198968110473598018858729511408063786957325973839738826666271038515332666448448338676382213372724038800916594425727878480698124962688035159880275328501099340379010966096882415587025441867304917319169607740275665961478362267940278624762190007611559962428204767430234956648814054455190140787622911469248978842559965064949760369844177451517861897483412892797540928332480966257461713180409368049582792775990699448311018518161356418879033506678811233960470693950472536293419633635986678562059683228809503651339048024954053452530738205902955775794848840842664908751538002701006663045045296151943750420026001144389951448238034369834642929223452212316257813448280774674267728452841873330262671057646869418469148742685864738924844554652181667406193259011241933978029343070067318408707355933891785894965290107558398872735513176217531806324488322216770642740330505741157588616802839890485579785731748258929281084390997687573722131397324685537025449335753525941409929809837043434155724348671402974327108147624808839695321330937368269901417010734006423548471856426560625046955735658833823457006993211161215655923765515830919917977406728846151179039130041516600660706494091251809635130353284758596211188491972100797983093804838891852609838157250541831941938386588300234344028112109064418778648459907639211379230685461450817001345200669844076610603837262742726399891304797035589980077092993486139429453842560067899603922148543174217662674817187396472869348945519485022833062978497903121033485661011742143792633158483713210233003720506960273591407936310794617886182204260055698495627936437158110501906168581795260061033756680786468717720825770762233534502475311283958191580074299069812345802752437554674325968877576192520219320096535651883816073220268449356799890940649362016998406559775974782717220765927805789000196500106441121442902277064599104962243622343265798912403272668630241718233145763902334417944730705612781874474949569859032697211192780997931157448454046002572138351669205594444406130151790635713116496238326724728248634433258794257972083998610869579787798460620594627277766671286272073226563415342349980669205124594282923349754085440842210076526642405346135584158453449077374619271038550393443502543204134723217885032778728520688095281762406289739996385801328486246897749384242804277260175732221843632874894448464783400380609642938701170805635614364855900909719778044570636238781844174312371940887930281675472774930914939293365015931205983506206396689145155061911850938616829401386908667372889284541585730165883533839710494340905882229238621025931855231006799540908140500686377871247293391083107708695028159844139241160190422950449068365956594656621224449650837593632374750166910274871106959961489711618591003174120869505391360684328206866494091970430095383988098704634099740832281565784984758046748595659083839479477508033650038367564077106379340066331291780427727577188705205815387199565217272184955714112463955085267489375580164491584113226240479003865953532954238102049380803902882912140593195717133892143471533447092419567978493449281567166129629299919657023540459244813466860283242491064359020640751181174451371212641777153180294581489194723847236404679222722172983605625455953130514960854198633168884364583421053743990657726730857914495585525701445950861715381883051502474604212409680415397545019572607115983633035418585951330027727055260294309653751791751478182367416153418561707787353954349531148029135505536273549247147519092617853374138824389026477031644311219654041451777873078855774824157076822391376978718721754073197069123086595071745792413720801516910638822485846137596864436365617053407168456301390555544523181392470182490954843765157276138874825122218744532401781986758685255002945436498618997628584302733879899798429345380014642240354421258097835254822188351014948826537316535852454829769180616227832512675921804352233611412731361104028242239540028041980213138015324641120250570874921762870973199354951550129334666342178156503454940202677746947291748942172392124001001111331171898140323834787110944144673559998151459582048119223591714048017040750125083061132594118729476683060385556347130404920225632235034901525679258752082401629415342593876396726582820767307304832581288351727247794264934133963200130385939800433867475560363732516204710498995885554708169582943958730292356791424199707231606712972257019145901518808722591050034759664240498821856215346040003775772435497908297867237379464698225790552279676276483963879052758130686597406513103124575543818298674491254402651565323216776428046715679593307003651679601312241425094079869759790781449784841728408901547964474920519962989964722572189685104250166375250140062306175790808022921708821223177029317706594902529720529042353854047423630482527952188839887067836056003004269566448399179856612734239130441876684887924766217917012509409099254983654754047710389108171041096491340710312953340505528604420386816514849309977927144435962875013627972538975215913239110649126803181572232244900564371565618806163317177512395257035069932623024404583980060839352060162292265372251304937086290087432181313216193564287369975673165760879262310524332899834967269878027860102190569248267136106145552680141578310095137848438401089699351806702680142052954839678238017577841829502387735980854036664728943927975045262111302156234183674375383599097931985761723528744914511224168810481888639629428832737822090645251307656903950092282874616548621681489235506445969280631111922276650837961021836566488402997729203299853279644069825818382825595023910550217291404991722365606798724493055092861719287234627933215851364416312707041092185282298912881744339211919919145111842625842170254658942191153376583905846112195743559103611822036059735347234902676135703529448389089636018313934427382490803909927100473535188340296791588597699932315678421821680955154853717263639031156950445344344009000838007377381480402592468071018278878528502920430122241953987841289584566192802121322105493319446703593413539938340922425444369240475322620881607897158530964696721129881380642683900076825341871583083485478434139606453082582671263065697669890766381170207898484680103450507398857693321958813375337610558103683944251435635118476110493581784797197260357800950770957258474910616627969461235465415264199760925340397038298547785249640226875301054002196393072409741183710605496626297100647942458979976994696823096309463300772939072998242805121980989706590767557157762760314172005008145211510016630515846225144881011622779030891409644755240818347170276871544349452562740421322770075091293506396537090593716415894767172995909448590129670275675343045949185052528459944991407406844356257838742277218567463543399457167613648111251832798018178544576643242441644368078225907008035374741521815312652153410263622817381536692681464324248745261996239894192264886785970678062879909760520287414811942619250246767315737409248860060002618859481622770834763906554975836319342505956505018153856147293879796448692200423592025083967205297973918932108162725826802553937889080236313046278563082854412577011571633108666002524926346323931968863653822222100701189221743955754482525913547912217859753152008990488528211347466174603258350484905328912748072605989129846175054720209487746569842511848495645299072236048698879055823854546596463308616133383941031115536229926144973682867601836090487662863729348788510976711795463997983256578493894261758146457013667978677870564443035536757653452623306571389520448205760488881116514659310962847371894497620105682962150183837456100634089836744504621644792158983085534600206797883475137084970592070352843848428314414718893235429932658827292035664547112885312966641848603814935619140941015344098559018702388553232582545284373836539138626509583753201872526166673516625340475214128401829545316352483412398313904066541032520044924478726987764647464061333337101325050684482130317215831903870119822598179795697499679340371793227166957350786365313111474103515080245371144186996699747457296953813917981560944656731703834066826606978451975548635585758554184383699669838799805884414529108908803786418161223328622627797926130883226733351221601746656325495416653413003651598781135116775612377291852837375436720180951537433917136223957852325135346498674739491327801373431522449858975171230792694062555632337180480476672050452848316809701149108474661902446160242924069571034136708919748448152006823038302551459145821447340096987260686407774177216994263115177129917081330878233517540638087313347683185732337835808193462418525790429014367263886776055007240573757570610477898971871286175273948986308732759445138250807277608550618904382843065836391949465480738911531459868271576455961254923701960993004140419568040399487153123836676239077197646935709960601371242844700188556516809003147073029055040471956507053848842104207142216870062288341852864770503420241471858082684131404368955036499605760777049696220373877267265324144390408309269894356595434640540290420583707584017828236820765913134728882956732107185751684427829693799271657862592468737958810068779396573870014220639049147834218541521463994437865679153794188014602434129899820733325889806879952916087930073217155868551798634100252200731149427591031322217531980597470824719085338057315414823423932015910011180195102301199291971430869347967222544913271979075305600889562536940103962283957049175515283768639090353878055419393448391252641917491693135529866916420772937617495495462070177996683195534926727508248416810824961440305098331989241765015106670438083903568490890830738092326209370392983149208613674318351583871753774230061119904203440794476790849982825735742714686840419111576117326582793490097057601667915093057837833192080510775698211824676664720151864139799736491859846072450041285342704217649863416435327862353616490028809280884070165903879720042963450664805002573367898409311570529040839887708441904636847358882394469481468025059995740295607851945862836490507797864299827283389987425032555299814207701142160528445362025999194736051509029351483315496313018981752336009697442960341895532816241578331855541539281380513996017987174510666631778578015657203154086977798823799334715413242634555189246028864991359223702614652131836511132364475784101763465616660099681051406888100866010610696072436949867872891657158067661067904843224452994053164768659376709288922284973680493145168912590042563565031289004702802294685652323886992274889360416240194956441977859269056449172981146762987270964528688868049575271288798139299163661519008802304268191847878513158219642105773893129893191459371352614096647835811672149752913314608457745010756726275194157107707744606881284502683294210577469624150107127278531814296310034335164734844667484506955452109133479560543574643480564255226978457968083604972691879904765745603325003480934913633042738650628041945859847173068262802686861630836787647185952194578040486737753515811531244723689360423867380230866157521053627383002700182920746194397153343434785083719491391769329854332325610916517349950908292483588573877733094937440639562815157226961458781028253882477310193972945631824696628356179662155042547183066757601207619884857859483968921295219516809896972403098083606642281599884805897651294885126440260913449308197595740135052617168976532953954274595672245675515429005033480689725181005212023231308409322731026252857955890544442184714805766551561290196899788192676384785864135897248918691241529237032853172020090828804761716242036885697277374979671354834696932675404674520114827076579535119161452316325901910997568100538120700923240382817326093749207505023518270931752258799716953002284256383019751259871406443746887427725910425612098102649819417786710937857782211962069816978434136108615632106551898130033368805778289578517893727718163442948238371087184780218522991839094316266987195612370513885646846223295080562693930014563791530298284291548643781375462802119079581058324522275622478101401239222360793838891996513744776077031175767662703736197931289576339583116903649023135503176951141477074194179005370481470436263623430818177070348295464502296398567664199368290592799486698451507799099191726777209702239753432756920408001829092862116097107138995305323551954776037035589473525455563348748693323533078629836172047941964154426966230804471171286351525453613132945488020643635957425379010744438474796028919454468033266843237402793329122082827145454523350997331794614017286677044306779915783080093548570318426172620014417126932170555101039571303331539534333588856725934864191738740810513269538738859492862567780669036163024304818907371576702948678516496935080563692058276691934588677062117169760708283926371430253241268698963243242632653486244663949373377006185472272361346065070449836964297037971976469587829757505008789728622886075784800980707333475050535727191833615792383765593097823615351995718590821391991398225307784006266696189045505292717337286917303430517032186802764896834223830240286502923290040644736989988660173991337327072812232127343376039156710620181514208995028405483478310952936424542090841171661664228057531706071024178146821232800073171275997994473484706435326738450594334253251745736899896597442552437554460085241806544053288906106241089812271164479305144291964115979264948227792437231519301837652182008426473405803145348239530311597954212645040249826231079819988128855611879638884057537304801982683743254094974974321351903229983676431182097921381891114728338092221408030669811448917529296030534190905283758335282465931489110214499419636536553919373682138104894926564535237864118261673866896514309774255779899032624470165046746862948875836065284194265079805316915177902413068629243376809921496669652839038502161013693212601817103098515034467367844607169549185516732582843344694297431993919172149708055932314068972937192838591246829315132785508650222683268022446275577731098695744898537868456785826644063277756307205165072537746453363269273832458468919037949755548330155358551462359990641839574329527363908943979172196591855427832680576360261779463521280706278302088297267057281772354813372715891827307822384008800758712567385568169909775152235752268692103081506054747429317643345662576669581042752280677119411795902708643158796241064981709211377939394254268338932695490581106445185846349087667535408437089015686720958354172005487511779053229155972479352636908517752337916329482288807172630155637810934683798968324541339026203844414972828571660864162680426501050118039522843361439985819403489160548201743659439074406991958272262673594979880673363441596749658047110384877843808931649763312693834325885995865317696257449781547747861197604743895787207007730021702080169826634501060818685363903197485732377358726689021870868361806472507919888552731032691799691363628873833760788351508397859612898484343277574473648887904396722245435190494924517167718083315614227085315285198475675810914169367508394095046547777651129977739408410464815010975186926954108106861070621571952938349885705236410411303354498810538793534467420602272668578414605010939555189841455440221552744508498437778117934251000668381246198715261342034591430865588415111996758947804600088858230476337982703049086044454960540211078584321622875613637293298996282400731110491957069589636807880268952120570141306829436801006578389273932573835705797597302408897696928835718046200131625898470441166948850305626170878602013494855236912475581981434294778703370145080200633342224307233459663201078822145427432511682596641454892727900927905402155362197274540428188896561195241683079746841762143839734619509425765169792289836467037569147877952005749878406397436781235093465773953648268306549153630932608958630648768525902859194624797558109479267602380967452189567098722488822654748332246928393108717455255186652720190287981974197608790785433008236452767821837755933626846608157973045624723019131866988917513206262699137498144772425235759559348117878752193577737711727041295219010057178771602523302352845824795503296158054424119877134498430730938888503772550028461891886754307270735009701367848054505498698138544250198007539968537111424680508257499571086165258549117579897715553295316374712157598755031054777275131599081715080940576956131418070847011950207281848869342041097144533745585371166705751844557015540901402855041125230115267905480241247485945539128008393153960472868455178767286677539372386481165429424535497052772355814497789088775594758387101218085304283009477135859182701047302783621437636016857014710599143609817280802045904056361148961989395370886552415780540772428123272156242095866307253936020858428262183894238044728043463925669605810712405995882191493580696880565813127489079981248676310134971343714942831327009279469965943601217162410933079083841793164674920826462358323396730384950960482450778504481639667395082653838690930823182936017063726742025555521694468865782242627679943058982300787038095978521829584299315171146748216320644774338237803162603809240983632639795565997730657406003337376380760969374496458806539581683687571398513457228752792588773347532495850633759854172289743607575535697059539673073562469385581907149931030300281847484902799043726839920746508973396117917942037951194861902274626851207431183691356639557083123304531224847838922892843065303862038258438652899564911193142187080725370072646144809681448786030502061547399877647263637621408169394668546506374829827531644436425310812220037379231993001042281530147505410735327535569216824162940141026791877029751424790169425734387858823111695267543196646520889515591347490391410427376405697490911607222104982197083708716130482856579668679745677200759935860211303946992053801224584650073088129845487366888668964405563460866333970906547358143525106381929461795557626127404731575277454191690383382622226687013464391243894706054897847391030959035398367790525205952574665551161004953065567970322807477587358523002722989464610196069285987750164245464789409100619627816610212405015065501708757122557523431845547859415890605288459430928208264375939089361393993221521241097065317666030350551952705214589796327712978247930032208505543860427891070274594427376155995791305466254629798551237179803368929964635148299752315710087238448632694493792939272296985585754044699528271919911897471672710945752817901996632923435710254342205816411393534232454420726863302952743515942002742967385282457306501506539641339333100704941867900045015437463574561291882119011794060081921871411617163782061035850350291267589915202728307387547547568424942339055696274531737426014319688216001421493014026878772880775771219253034203586180927456087186317238091274501035914401481557723016540593950156503609406312045104801537304070027315031010907386051621091994435628383987667609408409566377058575087097602044027240647210355760330089028599147095711503243071841139325214250470811572756785075828763171177139140982373063108941398417174334939659249370449844854869978139334743431120200823708239952636662275729603075878761312500524666569032875600159930706358828919128446628023652989689443037862324547473762372501304114507054404803634510834061903254534241181332326759206156603780361924386912783920603572906308287670419506356044150159809934885567954884429959332382022763528350803158066043989272798033440948666200305163170051625451449447486101841734058292470176879672753605705523708325863347249790885083625221558040830170722936895874439657730734399992161896584883876753332755682364888403818962223647158881530388086637286059944288479866173041170556216227386431197223580743836247668641895857920711083381464364616600628013239831157704495583703178583395528581076458680662629067834147480255223539300680487681415851708224414641823684004147651917871634962177455824975518780291504410267599966726802034688217192714112494845821419826519982201606676290211118954864061891772348477993541589706337261209218309383147470447155417161642361203144304465518395574781623846027861867841036814495336416171427182311086994294399735916845200251529991723519889542474861106821596481155719846737302134989988385664242034772389623367534598657246709330605458396490555364199041645962093829846424030225654150051591019544273264803652490014051421267561431985792123917372195383300224013998172750184430120834217893688318958584388291947418541422191163358896629848791342699652125973519679435989504928605025255078498021658104565538340498263328192405893718099937392945227105205980278035293384624106829909040530033073220528095976501126435026669910026384334464571419257529098527098544968139293634065884746464903362139390634773127668385092869552891819161897870760992330396029706271907828996658218449234600707641179431194354576976159545303928552839566111326348749161145392077769131240509339737510771137043624390211131775764563308917151141586161133367238247515513901394466383263248044429461117163773844566733288872770508681091201233491465846253151535678310196070386746976933465459167471170580038785735586564990506505574569713984506636755602963605130884022919481706055316223380045506740399455372826197822515416417914310486778223511346050375701158092469147890087115766106760931113041536533162170370906686888262067104104336817251748315370777704666433841599223176279884302945421506609024506540246126654033946786502719334670418464775104707388426112801195569077474675760697533197323294416683699414257738412560414711697823253839659556802130096175585748961187711056743251154816180562264555635554513785957260892865312115351770712313010563080402018299692718729606872229896044730886995357995270397389824419594021736009023950967411520893269721334417569905064717782453750079354760552130461965726873083549948982255158510342655409073149268944408642210050309528123789229047084029113928300093271820495247784697638583246156228412830667496955471695004801057850335045581094870862464579367014557480096776194509878690888543454196384443164031498213584837441163816989611374770472706375191280224245181526595781531682381437825408902392256726389965275685131036124395497653726653457763380789280722249832629151903138875816103365190243181582105496554932084990428681045394705484192540939003962061835683849104002436845946257447211736796515705068038568554739001767114000280062776030840424656389716591522870274970757253886928322048538117342109316942651812861239052493806627170375359256182797756676519913488908018243275636075764096677878036729161328308111875227692254248572986728946124539487849644921990751428673857174438400789138873482926178369329136736404679610201353344317327612198671378819343713900891138849642951584330087557838426379292627826858184759047096468408030462865342703504733196132984333793730871233322018448799806627074408605338822402234932546059791926032410697568629874265202291641623390485415302912183279840711137719364511786059154971569037037941981293597106514132187652842556515672547290318801875038500062906036790180379021939000416866225275121365280314387774856756037757823591188963356822881599787812926642417427527437983057260212531227806910100335790049004465528463395634954955580256046247261241494658892389861833650199689121548671311626989896529703193317776551553752891969395040498646475176891359447598075582161065582937626107970065078290322614241100263562893726279848547778769994323196441373348783558906020626919290950795478245211766514491148033430415065650826986764906532898174601018376404022962227730973433577053260243637071267270852442753406828073949641210779446958433690487035614083408199541935894285308790895045432720778698913027308140307234751199456433321415041571840179365488666096325230439713569890280162612826378252657468222703703482514401049930455145248642737603449505888490590260203721804806074630817527941028522740922533526388075824506768021832614773812026050876176761582635977355754985118091748442358980449657828157117637174038976775388777529790806884667227706092260095722637204039806690253680988679809234550521000129168944372369747788848156829516462572264443363698192279545024542097665148748549895409476578623131109498273640346164443904696697089321582120147646503461308632251406787967016969303980381788625511718330529410940386521940684756118061925782401518002396813881697666280698297429398993868233154868801441866196274965196720826918762692758417819922187719456479099182199295639026971133684421050450711065845333576379240360010181375253884501203476744366369623906646887628323861294553543939953398274062688502811390244528121565614967302295949006603451111850426600005809116991745995610380808886338880304280301529262275910378827228773688131783586450389667370472003598458219709773897450000495257103446476132795565344032290760462884139171912239985132403720219944630832374028296533044958837652021681534799227133076199869570001407016594902267548783423977685691144754318183319151699600815318163851228911224729971827294115029661696756883545696160117607437260544927170818461763732101681360126981153864591212639097449169620889265519982948730978970732870187108214749595892537348107868178775455677349465922588600260376627943896592731877878548250269228183568726704014666034294372711194042248559918327223877796507844628494492913289280176824163334753750700848923008830882889446903589904182315766129009232870255986835862503321354289279922848634206937904557538289516717064460535491161990478940969380781840025058867463055708436865654554981725458962187943879967570911912040679854512871764406875426544213434969917118468659312772041163285597394003518973468883609572809438903872101675298725273773216247723760135785476263966169103309021915099295316416179077426955750322061959269552668684424960634681068623607484041212855117717973142979870095719953515414027400615264545377248203950898040712645621420915499529684531774640347698468996434722385699731840730893245248959727173344497946678641582646620967181063409625492040197511356950077917241522861247760320140639574288324024820622529879319837846109965841633479067763102970641068541262611211457172893601345278056747402990759419613150458779268759036195499475121229114818083546420655736410936183048055942424029232441156407827913640801209906958227344960051274377066855937341176143873752319223291242163025368483996121112261116911330654725383816895836683286436063806683362671283185167418023500478674885492648275137385268356760846684475835327778639716585433441292836331266315859822580512287235896974900545287056080160231532062846066941707390339480401986764717947664105911448033872341646942829496896122103173005153506121823554862383082936372675299016002859313918740428165194846182127853305220377425119029480259336980953972649703117554694902293956020367802988458708778446892646547703200099283698809506820200850113060951573224245164230082880399537454210137247325360857434862309673218427382156016857210112211144163459762745464674751530636332994893427715421704136167272637479731431214037240518607263860569418512482428705615838371175903059984492624357244545001087279928678401772975684541918297943019432304572687858087155741736786290873663397257099598781119425349241810531005093322133750034527715590553957099531085645195705894031880575247128379021876322854075395791652147610748559616289841099787376098704060634415630609813894120911818139270516555542801523997927465247462485588515294265171862222327435078300442483826648120018461605823236070331375329573245496362581836594329188416915007391395047814208760733798906226358959902095899150934279879628528081151185967940610602469037963413886040487903018673453111232004652318990272997367038167349887220335387009011862820733853272686827380333085695325742558957002490139449576403808658510262595827132542753040546528937579559624469438513087523419373325872881864344596575033885862082065425266340148760506538288819288530699226358212219536194401861022965282995801963314491919681005514698445619664730057268772988000148656891521816670893918007012886251264621467843766267477905411752260035578362708513278665070327695827263437770289183438995210895430951046389432407678512442751984068188431863660674605674136982522629413258908902629770660621039995576392247333461818436697367798623569834965032136272269656071955882754122885777258845687991637731183808997407380067897561972035161628161592549819754721782371208389635964312072815371772168220650055385790817387135388144937362978461717745900702984282852799417272308895761382319963148239600717738428942367125268233996096816886687190669415430482332816660358256161885221755413797668556283897823525905176777555853296094739217427743942518419377087050615625479083999401280191490851949042485618357771285813423365419331751503662725045476352683892177441693770073297197037651402502938500579954465317564459539886034312749330574507773058375835319124466385145356862801698919755493055372002417135388587070803483653795992810892773459315066061667938580579945621556228098849967208546992541301034663980926749260720963505320627669057666177919091422456525646635023889961758717469510671732054638548446155107995765434810119746054179356100286547593055661256586935091453106605587042669176370865439571888813661716194690188380808023751435354643070401065986563672213920858679289310656301888987094607968165356082028611993077113443053605621239618455125201683555834261014442127082594876630974729069060811042306128836310940017217764195292648167473462738511867915217708837557873729742814152472009528582893806258607333338098788270773264867405963464664678723310926503143875346320403641034645823306707236901461042286083547003220088750524601692788924273310514280253701844185837011019221593388196905783806469539401375750366777934189093536727055990783943849918611424784153930385130922193500234715799261987328333010672417957478994625138900854541489923692935572719349397174067940523658596732783858171769423623260305744484703296621398554576467908683773750884070732682869810606189773025660549981876432783570971121688205996510975001763562332212331710424886515958655876469476030358551276351038145853464049068082901818651592658297046713520396748201478015920377936930222639593533622992848312767013650048536102275425662542196009118287911801271373232105988059076506305972027252048097767854076608446483891462206868899495527125226531430727092137827044104518238841068437876582635667751577791383741541562545889544494110607133666477662457121155156730805185583947176360871837080235254377665040766374559268692972243932253801654010439736736347999430939654812032998420446390760752654500856885452296271213105072130092586511015127187767457668678425636534959333029077011845251208578485228863418978435337130313395558691129111898777199924219260109408435987038269112747137685305809239475635483270098716778429790704933388615962973683212294603699618562780629858347483212488887475774104617813943403633102577594509227860352208706134913866067789298277307892968303178088572815362556374563933391209933420406422824836545598932918833929331905877817528697724530769831615048044027918168192932106325596243522097207078459777779702354857806135909885435140437750413246366937335603785549398204340939959821546370407245783863589524649560797218201163279488984953044439212580745703033967556209843237312567065735928949133964612805447069992983822353627275820664034747220357266023954771490060324844200916527432955395075222981484787336956278421127956953060150940585882841606917196986972850200721329771164910752962614354244946552760852220289206265569041971574895470653398391462433725583905370226516655398749776834677331237188952880726911614462600342767824504020514525018197614917415052389962551186872412807433466855360325478131399745343481161282392767826121607633540435788671690142263205301085811360830026856722495463120996217926221370945791724609993386707232522667377981639217497158872737185614564135876060809862093266697763750046443167658140102918547686352446609017874375658248683958910282474204920091680814034879991203888214086627107540326842242459905022672264091366588183970576219070561925711583603666686533761925851204447732552823565701515241031002138484835264205819238081542204244124431339266630375277696601329622233300323207380703853449560214405409576309365386793270601102304446245906742431454277421760095893042450849219986264045932343717610582109041740380894645301366720464555553276081381362882720910695892216808217565893769965255671655593001692048555967613162518645110306532349329384024535606346151192878742330072222044569459008855642458308669197611290303818308631967491490084707971821484248263721235282101287059615069580487524378579688741421464514188197035003953701817869638996742247107911142142511179123260715817219456488561857887981924587821571329625579762920731062391066126943476312935500722879065076914325397965673664294433935727595172886513443206217422797775991275216610159535518818829889265630776597326069442284937938724041076498209129587428049619053026171995182615096927072233859916694209428961468561044056376021650073329531432532775238600472229871056989249200913299415394364606837395151954856372598558796290650654591164762268883356578452350448643905728236607688770474138646633476751172265727854636656533419575364042608202860007905160824810574072477262211128056094054153255325936822527210970968335381645008555771270534355055426466456531546032906822829818306591929172632284091644396641333066830831645548492320871064621593099615979568646216208443248869449203187426098888612851777646302550859826857503390376388094126176063733684293543686808998568003184751374724405006492534375612135236743636629381885086311239333122751131533104704139453223831064604484058855816639690694948297079939913616778374206213489190889765915783173421296022812581320469088844223672949034748726728238395502132779260521207798460629918651944349757320443050746740122368048159392684695860226995799421481859683302766502359283973162287714715918868556907878114450023313166724967623852353367589510192409009509218670583389660557206706830198663204802344201014955628287892672850578678195200419547304475806799217038629029346809735479214024047135920996591766705898397209431582637915314797149983323969844898045601111989904833101640393385129903354339698082072414436605548957381145606442338368275102522239704072058440195816851909874138071458395168241572508085045422976295900651917099972349498882333477440865006024222951482930701888188687626630282474950242188600182955615598970877656085530407031468317766384858909651934145148354883334287003330440823638602484865463145325513868809730789649090219951153104816088497605431573244081063296851137044346475217716551199896759839980720895764704215720954003833995365967900987682250776258709679172363860835407909460014866748121694634661464358679186434449755615169906322917727553692274658141855423829581549675003042433904708222760537283719700835443270886136168364490134837341904492039897823909381078282776740154268058383337454514304150601939007747298241026323210951672699591058171187444505523354622066314770400648665302849951131763589454076900641121525754533896636740119527530891091282105599868890461076238430435149662672621231544276699839291411318596252720575940050867025891181680387227928175126645183562810980763853234438917814286856222612709761156380258623957083150466189967834604840530537637873790333239515351857929092598009982966320810563842349324648861968112885786265070666346961131138331440338019668400004360765668233015694028627925975153160747838550653562453423775150318622622773345882993394824445784938926525348600308699220971613012825523544998918827468855202911615026667782066093370309087137306384741886341223450704061711293317557083337752804559784029083267972350976134563316715058206853653667785722495834679621528758460054735410780950103747193216093813087554776883318562920791747645061499559371003759323037212637391576775663992154739149857715111941620059302295228954284319425275672986608624061523985805698938915405796636250960300915895534218028914798044218433735204262356220495228582626443590437422105154378619843642787832715969327407871906136829235102570908857530052514848214757267965241414341634795557196349839930299021262494811340756040720984693163151815573186514591908614214577841983111736422171735512942121875908132171218640757681028496747846809113770059199386637128433181971020578193569268330676226134184367319365559981826264170446524051623699743789556459034801467790515073135961356855374146644549094430985284577877346403088281641176064938686406735318801036665384764717086167399197876255366391901233822759704608868809616882564776083640088833935040115687525407365517274134915476406486588749567831343747264641492097099389536642724372845762066176615552813149572957536573638531625556302568293466328032490652284218695570064029094090949265238985364036051837178093643386273955151920538970624320071661258367763323444407539927469472652860016495566134816017283159737565340377817126142646896245774265609775658109295168681946749234357552210793925357518818481619969112198462365152640818862268019567403281019862194165021586112133032272773619789010945625577208569476098121330864662335918849766154298398153137222924632166557858461279492544750728048588959474675146025491786861775338331954139910344332786812296239840413772388863823231367572428659573853239657844614290408230210589623796629588232456870382164531721961869453375764421229790702654452981294116072466323909659788838838456430910435971084418711757617112969825662365247944529921399417571300726175892600243642022901966975534344804960228609094532919740126288694984969393526465262768913395462863275358225731947141826629283054108746716468075776409997001131001538044718184710613295743755714751599439482609986129182620941630268047328383101116422339724906632979273964246578567202479558318389448851130828858626133254066634679356101830564719071950738957564396666408546417032953621861158615535371687410152018789305554839721155852264070487924074188904987391714084041557473130082916383149706912884260446976857374991758184487283916269894276118145752764542905110666142056555111183342059987223356889459890405920466079746376646480824830906617858044676311180543915560113497990333642871388000650277269595854954462940850804715865675480245882302941600964768674896218852525059611700085924169750627893287294019473393835938836984021540356040658535470818906776106389145735137625235177589966230128013898811450682508182909600065785933701386710118662750845487181360930422430313531074103444409595149532318655945738586586759257037991545096869910334246424138581355360336832522416963809741995805913647760869142084004209591706363242593084207006048011252537232953426428692151625675321093472171010252752115194305786826201468599185527168407048051211998242372724782336857634723764347092881875737472122124194543053237647937892051393655061712496101923191112106422560921201940673956836516887937493426822498406082275878832189951473719391896358639531114110242091756566773257557305522922229993329454092774319584301910225785600815018695175029275220302818036147696934824132363651446609866908869613050968420591158892903065691373852527944276576354142777069849214142074853560983734842346565188100490406691479963654201793579621018752547577491958899723337542791669483456723437360770747338447581510448327916201080957085857213377338523950715428084787913596722325797027279953813028657823712388822235592348485017781732292399121537345105707523076125902587347673301478802962279477623273505207716870406568014150666434597096967599351276276743752390904984387032780699386323686046511183810652776609208357361061766791965471199715225879602416603895560911480584484660583495674900642355148848621778725246284077499342377653409331686572589125924993597978230457777892483387911531787490723688206154280716575764148192833771604044506275886612659887760127366251931193627207673077255519754784471286384640481556853299629597455753449858315832855406358964346957266061620303625313590824621645559387564906976262276854162806087114867367056262763824445526496821452348023875457931202272877366388745088308626472633209260159836963739175913749923885272720770194017994379760473711947583786092699439766913611568616256848151479919770956846197517484493191563018934770417433341278308809526055404355913528864701413109211703695211779839254523470860228600713142096211423572928942676019936387182403454601783987464157533747828671098722144174521647100612252422933729675124099531716709112930239333791397155637879566196011945991054134556782265104512364101765839354412379246171748612680432337745954599630620590730512732119917791907657079497439278977608600619293685835460149297495876677111794874776539656289731981913063341633421202999628494299870180727372767385538195385629103039857543627346862895625444359876904483378344080727197263781664411293823675263052317585033657866135455709928596373158916783289697027882598029655049084155562931716265290597969390295230936577759632384354034468034674892500879621543946863649068415551003232509455776523727068015879228729113890413728052057255282804377214543871253705265702648828868577975982811195424064827351766471993906152893935829263135258400610415582316726726113492747178047800610792560156699930295542337641583277887252050345943223691220909980484267928088349584223729922609395389289750566758603671301638280582614872086625173789743800604889321044918599187984320955944997919273957533953743642292147134635795622514597637113757918989153207338690272875428663077075610068493761108580709557243933766140947211077700992831245721794627496914454591886291837287120453055853582062278204483565874864028129995201466376297329948650972947209206631912188586170913101606585378916931920126203355503828552699443506957485238027741540725820748027781865221092753720245567412979179353768906282449376541129639769374220099550060211449148923008332322096197546713707196372396782845798331156835724647098057356622401391575117381455864900268336626998438148660669792229250333257408035049396162396957712131407570862972037791645930598603200397404592483006589337521684090776242773242589218053207563197718277238634112465327513935957642414095889051748266116341095077487307559107111284581863173584994394002247288045951351315481254031561186757681903282130610666321422892391502996080527099436910623705090967925574371973297004454211378999681448343738220793368499060738677609810028158888633846985033999612778257127333536268560097786214952407084567659136845885801375817963998802913098926614439915295377655518246641557863421675657861697979890138408968708708095620567674034911940267481687982510979661579404214607773550587290534217145136375787822072141651742971037498638981324259374911118576694638665765865816139087840921499977500100493559442176790416328738760857981410839652983060769200572216129507209794704949887806214471021439647500666687774864779939919950833015555430096971544410119478989075094480754590186158372765966484400527536917398314741409022412025553803922529834386435342705704203589833201167949121271181464560387926899045176237049447780881750005097343116630953345615699160629025071085966659524524021306459294849275414061118078887240607018340861629790787150176161181254041328429602068429754306244103949097072448673944508803608614387903923778582261218170003336884102941592019010373327799858953186062955620773850635886356963106685873162009999450860658431097062673790284649523502220022175094363408298886971475323087184336588050166760949498963784611927006955618967874613193447528840314157036595638392472907618447412941519859470324255141761696135367103252684113674413798412946283990491186579503226489227415035624495905058163078456553243477051837053040447610946275462639761862486833728028938477922154747593353130222473536318025675759158325182883758318354002924935222114974334446952927208526378721796489453538324800150641019390574980955270014971659742307919345862352206793547188074983118044328522580793197145514114385556327320898811528667060944920931235298188497270010453454261914429746419377567414077302948678259180070396167324911177052250203591430754389053098120441560779341781689448988065402467384105224646882179805734288113840046837497033376630600457617645952630586307612494741616118591280525780036252946327016249656404778958107532601634416525449953848120252658545377865409845103081731710419991897428176885165319869356257563425254808996248653578435260773689111298107667911765473520997487361344961674455168269625150692451844923672483261937576138919647653521921169148036502829029419253580833200871982528589350434249086553353846571935921769668346861652227410973878072331725002501784962143787145835600471095638019718782504689035116435532253386007052111916919984720329735773702637023573625825307260374889522586462574051548872413826803833919464968448418306162216090697596186025529062432366937355272068978533345000711119508879937475928858295297604095684652444386066591187993972561160484509063536267141920214744535169721032790697536015341559007413708709503004131045975169087927238312931719518210685513783063979497505516100110199448572423110319555175227229675983464895715860425925312264558764224015185974979789468445827803785086980957491553344411209679147677809302153540851193817440657324996164986579954729170783661918572084138933084416540328551256541677569783760224145340927627880961766589571557117736828535782038463153672323121754679885602650330949476655912058130522293796659058875256866751947510780053511215249363889272457169274433275073654832824637296365433978033393057086678477212677104629251643514034471816703563846808806620355465940173028455571063608191309388795730413854639611124694075929830448532741017714434312908712271760133638209091888020390861966521485044015110979216367254458356620253480429336990423856024882725280403157545086999315977694383077606047347582974613356273967520545621249583572810047613603970563844836612468620920456341517396684442105736232624353575452247202134158803424790785157004148031369689691311840910078810420712924949952641067472499455168235857192376842430722537280699132721588694690338561329732777376807463944150062555396172949589430549406126450143870306325326243870995701117231181450359852499211632266586971911815413882787077603895283011462345361869199870252564781652312011184788979388717022546684674419220727645369604280605386381470315523246461881356678513677250896296675150388618670010761822837401293665630943062251866227974231228263839827950840150625883839075642504097811052482440606211124014444226912835590196132100971405729256592679053985765358221256990841435006575335875607711933898306151084043300660022317725712210594387143898929730095885456222404856004568101604448804157435895454425631247529313264603552122161563910883276215074574692585937257192269352391802945934565437333100304857775967680672677845186380116773621932642911240508799381421717953245138595556525376590364118163070284205124937457533540581379279693785939653047127103625224280304270182962534799059653161875763882626339557780518484406919826609404987064939431234069923228123854411945241881041185524341784790322240111418121215274009177267034624032876782162725102304038833958370799276006979676394320870938986824781175808628871254902890824144843429610990120697645450314071790816426792348728679128754184723144946134603965760367415095788312667334379020222650276520190165937268105092965996998475993835417514022040558424087882701067249802027196551687475315797360754687753611130934771424751876965346632486689415249823967909958467179205919120675478248017897045163475647846688342596240974633412391074082629865181079710452707725709916926947216498029868372714608848026200023019925385802882112938460766929919866583044304796372424509209484575541050757387777947875577518494516881214241911740940343361372153618201219821221012803587051335287806259630775171188592665161315240106717570165895079345177408357438206768792734603574041961391289509485493717553164726402544590131146352650447334928886526185693593210758659122136091841377181473546116227344044135400152826845894966717424996117909147425115858916516482562456950027415500138773113288333498955743678783693717101732186188014134121583261324911310010650503683291191390927374447513825011776741244085699171686231561369649563373808186396558629105936930348469673439415552195349860717788287907016756896338152679083502217297133596190080629636176396919881833004666960564479326583933377540554431256478605567041897057919472717092743712651926268247740075947775645958681246203704512492966560555646834212655895698317490179218651770248802567333651975721247409506791074164532757277955333117905420293592590826479999294794438222462236198079240398019970711298768417244129113113818225892145212319591962212975521251685115014305483654340344425596197296888566051627555407904537521529255154674613566452655635303172405890697159232056296303643806248387201668250637480823473702600471882901115212121312839284817068740829802679716671116143921417230644732275265789248117412393688488854615965521066533166552985544508902201333986377091231365913654363111720445984850056973673178606575676447747516163006883969099500479088769366788431452041696004462664057242352955089918182376599259071129113345997547624451261951648020723251269926120439014387893905556740852013098002279401403600898624260816160039921083926666032430132278595217027099467033263469292108868228869237992968137810604389611493629119386721174777950184855572084084005063325521570022481118219133196292973143125851629793605704248390032728558075408110635262619802606901465369587568796088309492139718401388380334536409056300518772519788792934293786092298133636477461833270650102106101844281133482969551246579688601209474409091188096569366451622830815248597769660023087893244960421317480600400291608516186396460948927143961203935821459112313653125776192965233791357474968983404645072042469354560094452600698607162271332751262262945508412707156314852595528550387613355969174144486519903362253642179564987649576105513477893435908292087767548547199126605126364382664167714403569368332480140339281741297648462733933223706419969127350459641918165099382860965728554391695544988378435356543744375787327429652008494221546917556630156355350609536370193269950445427698144875521042715507222848864681463816394362171056523248083855445804366216671858191502968483221320172506727247985942093205563718427594144722304227220394163180782518892885376210643261564943477294096824065166675736751460675724940292093257324681263855309727487633972221402567767914299899338771815441014543449670578406675897074500785781599775258154132012592445206852910992121117872420554088235501106841945708497236125281072486253966199649688342307480445240405531133946252638606985413263958057750911485960218063459643510808790415877745246646351528702943989580189626480550429103939019035658465822828975829055203648319023938999683076610148602712838640152768712517763401039654428546884377981048904426007159318702357921975252845245559255856998485647146316168885385403102913532205727463771793823945533113079460705152826021984023076885246167020137090161061855659772251991860154614817571515101490981365689328901932402537295402178016457462716726053840978730421802925973136668086117701596972329516868402571221673840921228417256184990172030977109185854248919167669414775917560632448077388496507721120905738375644186157684454519174903505169055499670172070536839357380563200312222245205277642328193496194837761582176153042943725866216330034150504383723677271113350525732324162211666510039861456489932814362654414499364760095293875295964601898694467325250682795188478141854955442556533813372788782751662208567879536611487306364885345578449470825951964220637800568935581347566435880918985924079331684359473267113616261350248192166640034050440345776039247891917966909743499896549369561613804455248841191241763364885292062403349583100570191326166912242899704212710748318285694182167809596110246970698578387923735361034404559484354899349833103406542655410011591605327638682119919068076413436014114873963154033761833714846466379091531961644846412912630171075691670599593530179547562899004400734399953630275725156474716528284047643439652891813478597535494991221121716170368485909145772049380379863446042029427713722534601077481536956172032359274763522790729273444591240457197481885706373469660905596975721694968502863373529875674652396121151629583244587895000164616803816364428461368843618828233400044296865539073607324321502774343724909637859308420119481099300665909007982854144345720775965235537829727468609986720311086051218993239131060441357700657483063325358855799933702864659352490590843806867754254465897535486758913176795888528949703636319338395618002722397427915797043557519964429168659649540245039106422741615129106607344325937097482538170710759179710729451960690182944361208592223891067289040422005663631027669733066439245776815377049530775008489228024794682838694637800710194086031061360843096434569631886241188592691917728557087582339804377080393559699129700239356569409408416791230904330211883523039503883576832689799444405587127917547893468902754012172665737443857554093695208491680007158418465847153976256233520365031420990817955523750947951855395906447088313656576925002091323362403857264056894950109062363493532664467224071123786089954598216469912132975300728735492142513438629203981188771048437078414523876103962320731363100844780474785473313240935084108801203575449848377272266026646797442121604460883337289556979786989783097455936642079925045696268396728369785644087346655287760731295299026161433046073937282490562377200966600296672663716810790655249866840929938775823911368375005034365582594087281505137137462364094744200726319335499376331072510327512256569813277925257813547867026248761297769893700848982171873813528287941584724811447020305111221394757183086033398154244539911585146310162977271355427147865103313350721580283482169897693544752306111218282016682796373490923806830324601829536169225769786738440402748489043872352898466247072688285208724188057893672314216367092411939164292271518221462779318329038281398772706141219720301893371785621277719773582656563497778180045542374416108770547094089365733083961736741771913956456495860885882783684862677955707520748625735246797005504956809570972234020721708712627644889986893405411809429630538107507260636029211434108146001191777420881842204270487190327801298681125223667784951393932173639620120005302450415450725287685396602330732675110516162209891811224276458649140632070559219012347144087986453049368451628381836365652053404076717149125220863778888761909613229993077700543052433431490778669351183148147621009064773404080545384570375443637688950432813103781105829674129761267515291469433506968158017734394432106626704419998146135575882512668149635242256477145873894349654607394785236961919664998718180039507903207027808123369066492423889310274908314676838864840837226585222685226591153833978046442705635890862045864230890309269371621693282006336246807663554725953372290192803239849959494007133693961520986228334660398878160832934615105519798559075232170154539772914596503377424123363832428919191019486685129923038421333925481825094519338023849721640995179236362340918651502155454162151854571005194806561189527531091713898762960591769046736687163902352828312873413199066796068720451564182748847853814157262307282261415800567276429516822611359349797029881642549859026698265004795435988275941547447753195883485358112840342430716675915094933101083661566253661841746321055089872454393593619442304677549017335965797394935497794653526618577996735806245856700609897704236248844847497529040532955125636554899322967346856550320821989405051513514392005998608173241583849961674577917159130304540288754055975602563523433815218778216298561374462790263748653665299554768856012999416923788497025901739646301678880542011893347455628308250691870444251280928354892433957545134614953145890688172808775192300115165232574967241874755113326240030433830032134130699262781579137029868795581995348215342739664479544141640061076073496735204735324366886480545008020801430586761599428270569403502205220062195386380790251161258165075235936089475141187105038336222480881957987142618514426667656608511235384722127298088001451015708938684232614494536257646260237809463688121312532915115625198825252358111494173177235829158755287759444258913068808737166609490748070314948402823986838763434947015570632658319283202363823556960048871570673360843883657490162357802711824457386091169595413675950739932752711105645091236267093574011468174098357547841031294688024630950706938500846322809334302062725861133669245387129118935198396946182427066429906390791102936705046425018494581241974852691406012632949577379019564087686073956047308985136630982443456675017084775282739381289404321985298719882456474981396460858310044900235934917592991791266540249584028107696738845758634750427717263901779860816154518495885925306353327897428533177428609780782761458282976455258481153165181284149693009760590086170219523386026666186002148596130805156419934237914133946164800602122620982631778416038798025053637158831396373502566157231766423098911296460373003562447479114587630363542277131745925868664395993685523777671068139320595430119104115525285992212935806613685225686531472261161181275406951630861672371546959228788505290848550074713260712777986592035468761872655259804448919721549913611075635630629052125286162960245987978160180405122244460862658162459847028223751750878282302546545696676916192107808752342027281595082849057459683807784102333257480787585593640206254375385090757045677968063283513253898783552946183781860972851808640282138505871723962646721840814462680670462957696164892283686619422281742404228874473109080779195922777914082625824672160674060546426428800699528463617396791168860094840998409920321598552745872798722580496726269784195338836372100857277565385753066960369981470999091312986721915763744468456898494326208114860099758482619207454935884814491421364085160881811296627545700217065230288838744638396212290007425320063400446383416720870516582792452059377792154353423646406011792694577573097460904384958132440344443141037825097853316467728523723001837363423906962519527937868857938548141933649170345772684569832704553130025030904382315990005974333617713982987246194959186680709771547449301289106342197658941373963357810981257571052752728398403271661751094884857688972742194568667608281223984447090996618383679567857327546207737743821964172951140878308987683289700524148154094705128607043514287807342051102884926647799431725421996135394773280734461766386316266496635410543763106093661676298674676691257011644495435912058034521699119068068299811535114473291810777414953881387362363726284397510561163030216395660551756391600255338614917504333811181864471859850050876500957871004110604508330015172335214981270337181565929006631480148963424877321667271561606457904647023899931842783294452994923936967655645585470344058431990259898018594082543807126298213783820492941608434775153702011899858950792163977921018858079798341424542974854319160755044937252067341590416575970407045694278883639185392407795034754828759864069785164102132369787268973042396040136764714743838045131423573512752067659855538410741131856894235415572871708196425097743576628485783481134798634970102964877076634813225493528117849802162940800318427867523693288246936319937475672196400290765780914900335899928336168530512740342907481764486951552598273683289160532668618892323712454817020608106840576310124791262939157618545213619851281301593063682540878499609251700629167743819219960306147251394830987608851523803795638125108754368067454019682714307509056246149709365917218747063267790933000350952415619955246569553132491028004976838955875070860403426473266440446950486975319167127369393163434081329892111235790361975776568538542330904053068673065711989904449583719309474313370860122763839566004408902607361219917025867902418084624668636416880924934876029135311776433065945095132430414812203230563539417092362678529928434945616599145443285789472096111627364693855347777678032943936257032771227784197834869978001176941229099487671460979279385008593380424891489728635583519365799724549492247817292708589496934321813949131996910779486300515596673693668540651077161614708666344018590948164765897618303818006472364391054229030682830597082875648235612225564942343881022111462189769202334632562195690258251415937794049975895241413404813504279683118086902831929025448037433512206376464568305973884506778099322476908007829611637656285742703780715927039359804635457155757259225060786324726214465388282119195816921828428010268382355275629794192288987964641261972047684240340877800041833999085707516475276484829209753594884906969944095558402938970681708929797131999974845124003006849955771707666703836508527969347076438989702260321237349936500041721923120880284703064465675428981785596184970700390454024193030143922215163149879508637063831115404111395681947018150180520030835531234710999102106590373917652102266943894544080063897531398603975515289731996477861444318890460753129301068639324354072138578169832080067605779486816884299190349676482486612665430950122916295213697798934807044131981001015551154359185834164670383895442891806112212169501559084017183404084063760866610736665147049237052636625071173791921138976304540130710288245869881850050475678123289528505374150749883302989248326204233006295047699190078753884509158941010202250621575142584904750963731201853998168710532000045334738639263171084302005328054569767368103825090633282789006003829852043246769942994726685417640891325671544758671146301390053065901966765449733121607572533424235563623682604192973669801877531641757407548096976548713962721132287170837297386275725299018796918561166122165415831881807161144414363581719913474147212970742590240597222626635994018066112337775569018998972587916678616532255458027012352492652553338284250600839089218991753338430821265341447590213075664317010859921641783576164712031979906155046797805722154710029095162696933679502785350483462409173211847772228036409891782157584998133335112945422727975988220463276187026589543890446801737307097112267220310618703988246108301411621802642615409864200959045101601882468048530495612441266509324564950990896938643380840375802006442968984187414670891551443778425339163517329264970029592210577151318315426594231169660980910474387305498774749251541700388565423136225152617532796362844983887487852937878333843985226622001607608950474767043274507756528828185368770000531073862725448872815342856009042300516585412637791454667226851652156536964769329772747147908360194322853814733315329869955047494728264263425124679704004989084003504864339730264780966659500970564749551599200034072667374201096664457943663647191634440841193511018373969829468003985216172104151489687559756200142633087419925306463154720232377804804901123598569750057277403615389320362181334223858270979846340493621280708366537915183257369724028600737031263954816411844025055203302553517908443862230148254806239541283747705124864467962313954777398193896025671621220902591660007170280831461668295193538648366681691113937186666563048663081804557461847960536881874021008172910906576035372102760239441909909277610236345494890805857584973169630693310720453932386741444895442750974663654837987603543119923304038978301296483188142613110247245611019145646079433603273030714262633588027702492394172195411601381582017914648742874194245844227637225800943487591196024280976403694361272944643704686572763238352929232345638019573992673010036493129540029054230638190548496084832287222038886005034153206194099436925275729341592354150758087736780953305015724936287749457596639990832627250611798516080894831085887889367634064698651234619470409210938365595365981616846546626419986511893662853254124596653998951256202421682856561158073896670411017094482182862350746405155950325684578076842411443744441705321425286842288204072339509809793149112580730531911656794624378730204079751995603712350139476503769794935812255070057407381982185293432262667304824954149602750394957469116555887399689219954091289761661018441006581156621368659585166485863498534057739017984285280300515914815297439644877522848638258063469439682112197622107681385965638552596784998547414325484116464633933773674278524848504233556330709760300861018565495568569185413421272220006740991823904135592400618214558160350362924121393514141260729805986339407187689087292157300693977532599253496059533316092833338836167585254526926103703049314070717455382904837129079406627392882205016402134092418439337595145705312592863686236837375081799130114796847926504499074641481714602116786514432526078339629593824637975024539234057837347944501468419370403215109573605224051225297976404178508170820000089915632673323825553903474323936757038447980565838507177663881378202302883964691273689935050260335278048706556448783971338505646076048082073431078521743396738707722000219702436935929161478259602125931777487901333300478911763640544637863802199882532611519376394347496548841208292721644415585669544408215938241188965214370682953261248404066163988904798790420373509896427390059158600483759469276089703756648727174817476555807056553235923325450205224287263418802801410344855384685187734651937093304491740985948992650400907300765596498681503381792480208408653354475921405813466315646787181070373425315828194038193307506662641721424408553115910604747317155966422742341670007412532383487893353950223274784365765258597425508193663835090713157925573704114816675643113857538514058287670793367690901634747144923969350377447591819738129528221131425715763938131920515301869886625510130896481823261192675787816083467290477189090751579018995671528922278121980425650511283360121083563711891787359285661731550473108988732621516275262589922132461680646284342785909885633599939339581655798970908329516714240642946234715471904006452169271356534162003473558507975681720495630817725828631545260926316436784063454668666087694543702559118252539240930655082793555158882420336969646491639096723811200427244659842019999819107199276426292031411425679120980687895085795944402833511696608241422825299735208591197020901863096996637508138631541957888634668373973019908265924734326550352758121440986278983392018267104763725372534324137686512699300803333426907155532785414070533035855983372515982056016153463724341127144348494442436827139467640873808580349132515251550057501529520269158954656294360669090539878094451625912181807352819522551752304530024350766193914462684749701369292117132563621514026402087449460172827161527261420003262093535317736682460380741374292344028869888297950790381170368446280824781335118290932540472520425383061725466707831599730101933183995787160646745369361261384554159216935721874961594346527036543933143997115923637525698600739999928704613109232832783531760344688350376729753257310561917488495951592142896517730415604716087411848525325609555475322739994413356327287975739455896852485004141254511734551771663768049824573263758647930812430123001809624040654394613773936653469047895722991443334026150870795946015001017556370138976194186651440971243889811162402108108749466314269792749295685622185730088343779177805583098088710662070327714845271341238834217820682531555686410393402069408256582975921376775441251746525447404169541554718692959458877827871484775687428623428522726760955746588227662866850046030527176768133613977218193451403808976857208843413052039285417359703551426559620758660554717069815527655009056947507511938712400395640499069316372612194076962337136798594731807550603940980145784360268466523006345854196007268977807428390813185821918777724365595908243906671263007644843463965208935975495991543278719071609283221083585964427751341251180966875790635178137311592024431271898507195457239703818164673912585321153031513026113433642303587013463115368057650889651617535048745149382712596952994868595953641239938954879760454926012160231031574219722891719542631315159342057538058096100697684532429886482233513374559066780228033217600968860872438535889479298997457380415329630737367801263392862688342790325003882181537246672516141373780177743311824861397827632152155148374079891110422254545158298638220478699501605731070157273326910636353972100854909150110008743425411414940611626464390272690199345579142729559848977120755648572415441074604735452792424631393283044981223874110311380992423286529206529404229294553370563400067203086149204069379045089427969634369186598738705665505348434109896218432451617231681758841089588288402413390737979172322593330564862260359126179675092139008921375277542352818060718589695529578680674619223246140477092648007011207040749495949987956846746651939878836791513873766766731162613128471166082365715596421193777545146111681742152479504825992964729397922910568777149163396606871364139815670460080154108708855406335344888962714652296607939422827623522063595584003270341817474090060632410130008477442623268777101159395690236329375534488996956959304196123084516094246950207445868756197849104822245294923307818706127513886450009682442853980474613887256306870252719220222182797929822215254642673674579404834274415329545336351867175152324542946895701189415833609501367935370735942496146374262670886869158395212330820073001389696425167158676074192656765364509315137459951645879209147210685774795740112808773123490536941571234584173935557669656197079070737729174337269630501083221061164396846728996121481291762589857865455373140450671637067441642790555009184980173458125727683109271934005254203940645579904674355123916606289647922260446700258639166536960352923632719542480247030984236116075589411278128624997015323558939483201204383612587056983723767938048403419436261448875531240840232129898558678027677582132719846035261028538988641407527349587463443950239822850725681826440184649505452763606233309733163843583669031146261519211754589480803686614334563404934295747215463520491143306554824057746106703426749978583515235584969575063040370621364623993239888013148637058902700848209965953343993215018626047464678717399879572132059104986930231561683164325173516573744508414326889065662841233273053496372135607645255218961995178973023704807586487771096903320103206270486607655037868456102476731416550558862818364181698423370343421086735446268226208798662504180858619611186774565324063445220574363702205835420405822627096718063422376650411951701281615964557065204723841413331988697236507609077765835041867359583501457240072524917803555797115682996576961895156787796131148934914503283038187535303868302570705928811067095326659072914041780400572516052091902888421909645857005850937927869579673538056116660368118968329388446252534556149718407377804118755905646018763480594401784184029982076990605394325203300395764386214723172463142362579295087989886511076653396426959951351963802235393672073106614634969022310486151264940040500130916576169074232307280531062262238903216501447637237323693654891859718723120926130956039829806196319828616492899740414774684747675700219634831917312844948228419134248329125333959846068038130769696569764475997100578216739161110675496062909021570613875491514821629892776227544695081655915818941630038169660193133816716310868799357150742202792867035586199894878827942720526769349185832059116794878517695660838194529967204663099142889851153615030292814926924294751306377960778605294095876890464953558480725206502463699695751056071638736155466559976301652108334998528024408493466754124273723874979001383600308633297588012101189616348823814060085552351247129755805044970387014406471347788606589651976582406711607474577218329993236452855467025598431916179455720762301487891562282059378265441207089253127668944038064392800673885489057350187611254226335054613173518652804273112343437733516854232832977012810966133692267359091783489291735846197601588252162738906598089084403239074824816491650321865168440543451884845087908092449691722098681140431969010321049832311138194785017726988298554964167613499194637639316988104357385886061632525134194586469533395620500433599180159798605226920585319232134887048031640176185732771212997331166551033793529187324022325833552128514026529600019098728929448780386298966792357834201039299062070683988572437226538291919873698430305145656169372982883622683512424916802034276422777838128710317056165186850041025334181018638429466548660179029097020006975242718898171775579666825716961287281870868942668019656299858934191860546537324509283601794183447013577753150944530955308215592408838558099176080304485217437268981781249557364563788598817238777677202226371734711788200400828867155609746801591341239336863159506546993610103583715981038673797735332101222268732191711840978889953088624515757298154821608902354461797697965081546863028348952579134758236305775535766427168154147499585520561955561593720874788009257826869695899613528641331406833222162734860746273416289031701932826820654167521523796284654803669322728084895887292048684433272281078875202541521057612251542466866000358959111812506939938754116862713520823619567616296520356347997001738619759393669687776831019934632495511569804985044503528329310438525649766023903567696445305146046219369544658013292588699486858063072328529808799361893254119876992872618249248348371657443096581472193831829698244925853413166673265708974172043380748411983866844273681551416108628013013828332967952251363456794688967710390735003507621630700585147082236876985873649395960578289316012415134050144815936126883053589692139955732370375324873175418472832502966887778764754843567905085395180655089106360851448054669480086851186158555598859066707952771939494575518309065913274801568250547193022195993331193177908425679416371971414722521399260003287592357765294518873168367209016664609925985659130241177849826796363985141190363870891182389306535307224014486881688169126816371236188981598509865352243163191205902772672671178942451583967179983226217650431018206380435206418600727972360374776707891973328657576782906376222384230446444310113682873978876105312563813965693899349952307772467294634901938474625348573041512889543007014244017784201019441463839622985882683946435111103284865743470374310569579929273195815055416420127864371949611127499282783341434938315866613310119972745672430334377762558956689683299342589244124503359038102771452161935027566843848197892716340851102379077915121333986198943421128772082118244069090556909413607318608538051399542877285032709888188254674872544005871100416758312887325525923391747308308432526453699517235337974846948768339854811412424842058493206856440434696828388602798515819877288078690504877662761401107741370111191105977830508753540381538634713153882299053235085903885122430647855354526145712986867958556270304060651584758046465931604643820813454388080398130858084945696571805046684654215736565198780743482494646923584337851612755397033708607415615291404683264455578321205336683154054021602635796669027267114162399530355979961954767589869012215566757748023636059008103286937455575196880696331163441619653330249781014911087861922563145609563968878565143078979866050924135926026293147893008833275354298383824516134697524073419845129707857074884358156964391095330409116557089622769345223604062300075839945577426188051078575896603026668925845393194811368243219467914427438960083500488096485915926943355030760746409858008225429200746091838741769584715227526803864951293435151207357937479944402641099275579170035225816853915646368329009801566844865503873599545090922733036947173430135755426423938140146822274170034216754727298866807172118776756503637494475399237043532948438087471179775394733694723022511966999346567274574747160707830874339849397288109975956074013525716956166140084554326286306580664399118131569092861109374322717457674246810895205840064254509795073176834947875079337351357380823215974283130264505355717997691042325404260276734560491198611721809537189952244820814430094773635191116047161368777064469568330913691963474138681355423753190643560256984721152368302780787454013851478585851465338562666230357787492237743499542577529556880952358949814624808342176999774589267699195546211267962537102225779259949796509454597892282650080925646040568983726787872072169688895833047050198633796584085144944461958513987250274057165282253563947022246808363192691539255409546601328320101802185920336711329467476818369530552613344977955384687491600209797850509405793800601073110967256179514994315869334688064395973131700351778130946624328501996452964398908337428897595868869185600121050117373838668583227070619258120224345832220961243661303220613054984827255580548096037256118608146916217722063244724890729249264805376101728355619893856584148578731084885052687262011703601548364173412244493224346059879797680847278019215369489831753320929416751695152247568781334088707376022210505586868368628538837088452059355098318231476674713346335953931645030695768423166557088004865973798596713443249526819255062844861254148987107020252748284249686132924873057241659850810177997431989505024430118705149056437105930057355295908202189139313514263962645709023899646638496000812583572638685604449589065526465195617970903131333801694942942991595073568543926221167664667408332601274255233573454826768288544178504646818775617511708635280181327617822084959993478749286189746509168744730571491365898133115915008473110872320856682215492320953210586139464260693807581681421026785717635241595445902616707736874838574564767564520768229812945339917716687773610989705911280681623388512138985497874123888785563008269047115416645427310924947288940535278045521318253912541057627279963597267740116284264699715823032160256139618014554254631586782161753207785192667553302325346744687347366473336134336903647234982090766537193767570033060313390996381357958629407229962134284181035929386576850648835910281494849792215149943061253301783366026160015233362646783279522200336473274163924908263941116503599920565488134749085612727015777216156610643069236813843577801327519402768589613874481053170072960939075368487830325681883841509746332802984115381156790158705668887777908990192892162809074105588317171148758140870553352743198438327591366747926984961352148875127457584601915973320770303099246052446077733596310435005394832972299883336251374231868613038918411361166199909661817608732259637270000358039010629898445659678421038040201974967581433752684491131440911295189085593625937724374399563256099215519387452592661521221497784673885065952539147825832502473608954312312892346387903261622458985518151754291053670546277958830343502872040515723730840087910769840347386360504471673664054075760137940446974947230225225402561373279610769393605767761875603390946135691717187841402168823916637613473700346104375848838592066140657536252400684200679240276634376666041921920431832893030832814225253945960138961400910678308472177620115886520417248206675524398363262420397323301642713077138864430284175558494338339264597256915919839054144291491398355366643903061843899996833668057036599585014338289079024066656083978236871573877340844191258812366767540242076468995669398826770300418246056885662632973539886691470556005142268984115804929179368901016407442299331476543605145261839595556817619192725702924360480677286500006129911706717095719629970530209955746901771882930480697645632847723216697225059203545655550349357632565315472684506889322758502646603160381580150762385774000363942950184659912209373104486557982083792489600308158315003874601878627224702469987031778501229796826113305388116860668535413022118103751076759165292865213724575938591242985643768915621717356675429589914531216267016335744923371902442213122007981599668852266987089789746105041810216240932299451063728773462351836233972907622547324688486309000663484452147565740572055247838439714136792800058115750283551345541851373266213765587263046233925250882734681757550847928342068927513552641971294558135015776768190067005899476073661209103686912429881810640017030772109078372660396288785481202422779936055709729084733708783620398202874784039811538505708627237564725543835388944037566259692805703651679931237373544720992844151148833316773402223167914672939479524258200359567197364598764126640683055923013948850289578893254195339313567627077937991370629726926038762689432837140538715206203594165081775764237686455429008287815877962490079219363059062873786801048327682864130685402568095320622717136536406055387619360903453954324144439247426219181907018340237396187600021822383596322189175463184101009014223116019076750595656797024500497902771336538886334473701679152405584758027601024039009252643112038442314043779544623040271096143108966318918092611087190178317684037525044076744001341327769828795903307048319826147448728013686098112466914066108056838453544941398566957995523644657233658167978706522529943662136140551963552725037249617845623113477941330957612058803102090069179997862527949989767293116095603962154827250558945719126992395772135874089488200658062864204352952613094942611495134150039677895208200900307500186805201767516937430272198172272351655782468604435826934584196531960257719695999036831038235093658225862743060053293588072578163269158239566335602634094722767036995786152116244146161763202942730696480178803369577183070718435092773557159619072020697187314932177763566867753291621442787087892146280414539859396354475355613692819213579931163199243892121857688366636213174598079638411215855741271971444635363969310642534950016439023406416242893730197638129834892325917593920366982494137564055744642207373594991051002439486180004380650678804727597595887250158262752217352355280093962406247889326075927036241981105537296915268702938532242185376639563106180341995309984729253204899086647861801632081812608073800551565673854251511299737610316609596866954396030372964395955037094145352073922194147880506108571737450775181814747216639149669654630219177659285407308951095067733334084701012399606330937267126457302564655099694170563445030256904864455170863329396969382241220703291419988422577661676621242892715010929777162994368533943203903053030879514945827992283562137839991550435096200018271231472380128986223219857353136869268054494828598744408464497755147473926202127831644038092211832663589624750685343658779037262451779140700244229668791860480617197698413126788004327436099775577153998731394821875953783991367229644127079928071720975167924736457573089176984729805938256122480516203093560267965400782096768123474041816914632761797754736084772320058028092157771352509705091760134060245894878713947855380240425071877818618564495066600134647053662269338154424089199280788949986402172456474175628588886352743800012707353221033606895605281876074191852228776559003719530014978715722675286663795875181808815222713939880671669409077177519098220533794170023242701083076449370248012803051048588012954728954711273350460619322804808432103615248688388493368034022693496065350236419904563702210533713655216247634585907083224104255212443839191632142651545594849552378668155025296890171945905104293281218235919928606466528927083160236801658296746834579916856124817804125874784846085872023066343622291051763083332531467818910463701640763418294002269429736687829472568187383733723374966631593716497508741773609119886213844908937544096104022464052169939649243848955047081600470478315842889253970711474257968523546939716266906477923865324007070274144372994023714797333360791113271247225877536016356718081085496803181241794551575456129740687903036801785990133954315793373714439759778057928988617493800993751839525957453110356880808868170753604205950651589976504666091114764383317481658917185334129527265651754776528172025309749691439661290606286519579989615288008362887931944209113488516391903195311665527143542556385801791655649737184785882430251945495976880237247310241046446465072531002672103579382461043664047729056658906287379654095449847559421111838458420589616525000878314367842356438916676295518767263663389853313925492712870638189977472152870367225698272605563202580120881898253044889116433579603004875355493069776385348598864521819532403826050063062557752191896683594159733108869271986626666069619798523256097854247939181785450992960230458869546678880197617560770317927390692825063613549802876320475092342940701880527739910083589188304437155144031922885365039221206566514616587708575601877667742194815440071183917775815107091316301276173672999066458503528888114484949695892504972944033801497538855841854481748273925902199928288351634000293716449629576614058714325773811998064647666629123837183162823192811876645131256810225569380593180280255162506868660913661540263205666400705204081689956060759699218773617851148124978965399405504348675331712026322377857857356781257727943262407364363719095990504044631991865961684671000020117617434634517129665137577927156439116197165513456750331580987040974475569278062389118658292602930126129569495346576716314786506006747409048832350564178378121245416406482054636864365001996752734859307314123504047002726873799345045361347639937179073121276751772433654198583403308870550911321821133252836683250804794564817480852306766730364886039699815788154536791125721424200642951126258312752470355798587958041018130210833230630204504191563229366764268565410273843618281503198723727550097452925702007533749448270305493344883810051639522033609275680142340090917954430357039706728500309385634247942915345128650842917190116147395588361031081985682649479451158140248726374259016856078667490832586175723852326721822071977517807902650040929360210514058056278854472587629460348778664236084252255149372824601859181160700325098204921149745485950593805571900592685541324998160190747991837696126198726048028849386217158150165327417149435672252667058933569475250279554642306163255449724786480099152189255199088144349876214633245801101657793607188391380568505896434451711704406511952289082537137588334925366472054221450956229145258935257008007685007056270096260385048604485888620916037789733553915085113782469551915522309677757400674872111270118936383146400410002480397356036458172522545198036349232934958543738582402280825401517518047920410100391273064568834155258151086634825750611051834058795515623663338198298815792667021771435573220964248232822431717035353116778463169142184667739652543732387116109562877390612662687936985720819022212048439262322471301544269313376416724076648937537331950306626721637546067112405380349693005219066270782489008071956771408461006288364386232330593248297660697470265826926407319815024554450859392413770110694434339988800197276984865921357605621218392625954108972942766283150777523466763486450067383271118703297634989110174438094427653963693213320780874437711834189963998820731607360903230153102237853284733375183483819630681259981956133930763312305053421944077720485752845978083761496591797834630364528026984335737719208212709423391807241196061377301099598436071384773611545861647036904736945875102625195069135056906511061017871441282621662926465360789368037144355022511601695104575541325237270205876003935644467045200420495438379709476641966670624467562434874739755581384146749769330430098965034418301032596897637620807050323773100725262329153397058799217791812300924025276230233780225661403427002731846833709985906277167522289496239545642051998801467421144802788215819298150813372910966325269312546325016506887231442641561478377667724647538221451779267839380743469157967282718235294205484041072861516545661743595870118491305513700848385520444852523139667809494557819218947696832332874254665683158698320628978883916627735962750540426992298178169850270105534257790798654148526039079460147365788240079365212187367552847192741311289722542201059425978672401170643649459364767001112402423372586190883271907491632640325654410519296652334779802741384752820577635347419510045723207213517267262745391793711430039285288323490160412801568497250976651535376931240294736563799001606001655928186314703149077182378857089611495207030503033497523215390537883559040423304614113948339136428412728092428474022821156968839698778239646198353915968599135082320558503764769428694780829515704533629523768616989039658334631127840491642967706303050570128048929377331457087364004025763014133764180678840524128256652387016473880209468065567016653121545688587517957247989644588519050631688959132357000926211858454171976217032317926355793521872260057399184573482538415529357593693564919520912459054992398350624729090759217460147886872911556200181662022428153894292030943402785102753631484522731424018827969229643681937639931196896802273271098817233877217034404384643410959121567039860332321681050789823793641494462099058887276602645801260727844837078044693235735873368672578199395846479906339419791282736772059108194037852983412712437580646228751827450419783429433430492067290942986433936864165838028767989134048426937287777556019155770165289879796903726070960916038856063967229707588685546095346275978155105333215696876403608454339374304662474539194855036166372138504877979597518945947974881473392832503741433022297158828406392866903093658353727746496303299587923917780228557291614922767073813785772027441620301346292782764226215214630954444318246866986692234667826817802408203127412123702259712342075014659707598386108836186131071498859711906397657943638946875685317076035101521602950363899885708311360443414634287043801282564533645178179181922098635627760547784623230648681874837554246535512234298387953889007767619947712603832023198654975810899287899653814707820046645879902688593660475941801466257808490648172183809877266150775408418549306971219496847413541037223320479160064585838253633259056413455790656308736623230124790478373456033052057953178802466875624397923712426606344829234200770766910593864374369059106821611342991229916269234572282545360916220742285719017354175796404534487458747192160431962827163309550716406879445228745171135153576619513164468971004460014639395772136583879511486393124092380392395341799754117681833339589008415159653431644248430408355638624452124276351819561413306283806519895984263437292594662252770765139910736041454208388051885528877538793782158687682735691281875931444135377255491424307687746838392463370212169232843640688919604197251893928290560507341640944556711970621859488628820198438547049605766160916739467168442282907970774606913966818644807836874482093385481791541715595784906693561534526348285196608914404859084479203674674841254075241812537211899925317953242652447123668513548680116720844578073752569765939794093979696421859748289267966983606245298175809190137010654578493351769231807188402705421306730601372836561566272560864893145880331574817895580181153786494991838330354103089850506221026442264249899116764548605921575115787660387037453074609444927231928968968678758230311249743950251486136322100048336358676047553892786794680333486273144233151148514995559022852222218848580201482492950909194816390440652309072184363031974304032646485349586413849375424943111675371394235248694970804017993771614273939434115924364421611326910227692546303656866803078049985523049845326626117114537889827390390319557986722486600040645720481715514900952415514013010386794143316432500735892506470121059897601297582107098339161025732235959950364389243030489715194941531973401816112173816182715017999729368416023834979125201340527434866816933333667041471287825429208424663448397212541603443024935442301219831645645923548644681581937137841402282989100536947211684588371983644467185618291773716121510565709997098627156989511166125895687286942838661073705645797744281861592092203509062800382400638827251945975865058584091771831182499365609831121991935298796896492480848432808479044259795726481315976051885604374236559792731040359300476933298916333928490051186756267594898946201751039710539716454412764647351370457515874183597812387351498398356440367906144322602029112919314037668972790410127892672148562786099635461315612945723499676446992750299622782130882955148164745091829228736479211527243809780135679162406049201678456011441743515673546196074767131065492925403562765259965135175775434900687459305611332252100884754947309849421060154032159719079843510371900333255629535232650777012807264219957634501002373713817895386979511336161847935964391684147541954552697901794530072046682992318214071486470943559319289493204574888534503259200703334389476190447081697739619170390644181132542786402839055184678462726097693689934724544631788760379143529820711571149705651359100891524480126183805722141563098848026755757305474933991722586029954259129133863187811050726636975662605306448029248578289991319507453547026100682474312916646404516353711128405211491286569561496969046376939418824201264089922620397223429286472386983942866347599203021439952815318241828481693772715590181896349077350134801661693711243372064103591267444652803517387398417355364588515285211298672105041463112423717384509706383582387104068624505633843220848480500445743519903313858389160845337297290429334973594242079763519315732987297770143322161281550170985482202095308070220666935533242203624330904393330995633268350997958217096258817556737922493875311590847363429810941885590921658835587315011858350679385912660399562083765670896108417319689018477121561527996090422623477167149955645852333052512469264592074323870045503730504472313064852594044764862471163403797378682271222571461084552622012721251079849249853966590458400322679980081196584001278973431222475316049520130146212317811793511308726361984845179461884227497535577456790431723006077587381901747585056421563296139196679194542101218655430493505654968996787268236245256747399673877846723951300693313633649025507292112278131314202951887039172612754396051290544561225070075728053755988372222142660105954210449248251594357745882331245338693512694894772906255317263711738695220593589742123874143586041847842784796562379622351578238623020603059488525638750627780189720802854483397091970675589762102719653509914943192824302333902662423300245763076532251730229306294458148783660217825523940494267478624599032511703154011773972350001012646632191889852631686063616535268096534266687432474820719091960888616689648311366776182182825987628517038136408356951845572170541538784835385042770981403955047921577651768170371001346324036852254542086765844231055273889872184415078027606365943981131986655926319934833434919074502481200935164325759309903657911227860015079665672790735274685977896115687421176404371408893202704878736611546704936913482402478902165782120868412537774786052175762917179623089341210037490908759721798999947502040167015932142837694275691833463557313423686492623265313136826504396103171905555914798567898125811448903210234773660496512995090476672951704615308263241183783130983144085448372968581530725922082483503794892359394710171721389914139222509457930539994180293643369009472442947733568638423856410375004544330488064005823612729706573692352167778794578240891738950792062533234036625468126916244511633178471447941714447210053570673097787755073745856430883126733534281262323148574697014627235954577122051710430439242358134095916061602385750317754356836150614798831966951172214841804355103501400210249352335022668078632624645136910783701164742627597455847572278794161098582822882423587260127368506060845368375623213950400978591797374706872521709960734079486941093855887974022527001944748817948180666343229616521154954823821574234695682169428733849952747710722113085856463210328185165564745452518515592768463988899451579295725605630803288915961271707963045330568544978563903272990903858467364880232731745307253789744972528428237799112550426062134102248689982346312227278724377389390147565380142324766095212996284492799279908441448844184533737229881746524153344151553422437214139010707207114981721526133032814100519549457338662855135829499666410857805096071665819551018429976326037855683510345039154094588546546581255940707816491110759343194829541590980207293490260082819549976519146130716660584501426676433591607974600717037256045074291157680967013714620302450403779151459699186565355799558977677803572298004267045089123041610870102261803318608831774417562079618411865584886374129811709540085009747527774757402939027061250507884532990637124513913572062614727834099267483662276985751193916558335069516857558387761004154911769637060449156597845778406153830142532598461561184972189242730009957470455052507972069883958156989192806707500598732936065232612021219659406052343551252985119114809887813693431086901148228926016674615645341254948471789843519348844902495626893537362475568420039422152103840031069206645418078141050379788443316036063851087735110442471112795863609458006716100032887916137262698918761585595088075437843312895477900460671785371284291699101853005915619822738204198272612577751835131055448241660915430341303724301586044780492949695153622909249315276129009213469331639258747722438309884614795966860275833520905296242512077639177304786826589380767810932222295129805214465366105639696871364616126559062768957188756438010386398730161248807083313965530823183276116338210138069117645009800383959864307376085860016620785840073964279002254736459323277776856512829257553402608590672344603227934656296812281478653366437036228678962359613358470697088362836968070658562044734887749055104370190690036569927582002637101281677176247170004499375988170331632768123228842186093262223791030806579004529351445644428185467505847582863364007501032221030356967709953079040423685458710459288853937946465023906957297723612757633669886297792715795643689485783899031089887625084700774671241711661564565821728408605572567161265346987724640620685884781524322403328409440992757600207717585361927102051619710657542004519311569792326028348533554340456206920911531482607310021312094879804417174852034302129465772423262565915407931585177563444311233055492841101170389201488215692535076676064924886289436433426506342382895503505090467212852128096053349264202575608107714970124823380777714743102322314619376358938546609619546718439910870231223732828001273883521348624085205885518239387819952789352273139078115916199722787308593203626207574674466921674752568587921932627149081819638891935004667384356700466177861448737991323064553803756083904453963031668552065527027415361197285670679208981001674344696932590562798590407813867110082217187979053351879550840217295431783940194232041526670309495540488347805371485498624193799045549454294301304490750044046991484559873237248083188287576878304648080134039524943842896216653944941897679225472834636641106611142270190266160415916417209443968555539180311499874027956247307466985981586297883503559785633114831759855157631515975423056812564693620683059130551489536445777549013999760241280792508902178792341969925321455303957831855835968708059679924162013370349697486784162203912099823740545811135314656989747312905865388694813143456074283264603058993106494216349931330733240335873591093627636999049782459451794548109256923613263877957194483430605467759311296370457692200301905367773748275918151211331166043355451465264727913269303202707017881172162051446684538987131017280381515804159414980739225371288631964854204396356204432640209451080895239633283527574115842428406562460638250722977402590453275394051768404234543931767986022675928047803690108896000875096527534062920794823485572366118385292055314150746532382187575652713925712527225801035949611788032784413753723297119693473321844102081416304384901776696818452705145860050354193149398720889462488390904125115406314621782211222138659632500803369681594061412667840263437817995641745467673353155442640101555003446998584401179118996536954315944075432359596936076608758592719497307998839504509706845255944126531833000679170827066943852091137497605710600867849674555753010272089761003144667563201663569784756705980389756818115252774423279785634271022487130321273718115477493060274737118816679696219911636817629737918949958376819504992999043951700107337268869225332728371882441261548423317685948687069168923583009064315103208365744118177464993045260588234454213832395329212990577271963253005756703631472763561057338456724573932011727754893315989482862420568868968708053025497728834345460598575925621779105052665054471810037698343335283958015141609147267141371630021296493388948096035488940969940010425349338884979885990695613520355875985869004229945650066128679219494152191316130236567887272863294907215258757474250354121163281433299923028933368047619881197338158626587662911532005788488702399029839517882037673715757348620682180276134094523639993684048338423929462118167208391258347797933349507947176858494810959025055744634121382298859698124458442625942769239071216482797971340561148952969409729993780056414467635079674298417044823736921886110263754116432650690112598444046507367734526950784087226108568806253898077522418534967828093584614653244454736600703329763635903222759730684079709304616095950754742400864675011301699213850064025546525525427714672023873985996054338527529486942326963046927310334501309400710807349504296349059460087088818192938580828732146267347443487531234240182783434130176075730108512045190645894343464744712499026623286853063626755824603745198116735542640657760579170301198836971142280681288551610424925266194798549047041363738445256150607989627478528226275958750026954644763571063410923655445886392878728814040877018038519837620945640700530795671986979909889611487275115055228551135677822001375505258711058272181107747981259011753278906989349697191377871318325296036567353076713266965651476442751525750234226265600333233692449394654502707810918971457937485375926005516575916808867503046886014473817371572631398138467509173138713048851947018651188723270984486765797001785139982194732154105443164578837380443932169384000812757918474809355998741811433337504088433346076309354480947453973420380716433054751283535932238855336864409030190718680180675096006723352721359987397886802114098301383870946636963144847914744216699100937367171688152785474861569006791433804083688213608257985400002131998079309988616472694672670547407610287548052703357624451539034495686718107546885847936485734322862970183674373129905799405303125507924559219650903783911027850773945651955217998866802870634973097857343308435010487948634757633005844601471918190686577100699251975453743826241364439760395741569037726776844784609585926477488433606210783416186930316914608029968650495205745513136252216614761106616449648256468065773640692639224353974424455719385449785656345582453525732461922258171544209767215301703540703807669449299032573023360622720626595755581066563406904028649151136905834681763200560801798236288555139687909901126162647785884857225869583953702181524552351307930159175092197965719203196294984070976706442248357536071749331035533249297937642797727887053587979175512474026202470327913560372292346867217925853380745439887513069953324650435596866482484210876079672363384774967895107549796563081556732923349632709465997244100699667377247501622121928546845215704009106121741189748046622262477677133429739466840668844406499404430572726020347195898482264564641149697930926627521167472361917802127911906550899577341075352427494829017079931249235842167680937934822772417099684744079124145225877948275199581358425891340309200188157007518185789219067297018146072928177206416458267130391175314839798616186657531683409032351993287151895776678384255319870671015623606239992342384158861378375823313674149120549739301896964342247763466225193834050614438793080736536868301161694789229039175042925654396960437309916274182187398971355412174575946265075594722107312223461613470317718504207063464241038540590828697862377929391739201686673180024714165376378336693148692926007913510736474010911161109928973171170204397792526477552570138180847503997201973325002144164404392101685460161899862227551507568857079544164969225488353831960320874256541284823144308321560527880535576750844027634439963144349828129605278091789052363140971492289685591638012725297329263191191724555211962186414371815345089014987795091094373670979140433954010552531338558646414083503496304182529505176305447911298049098978734864370268420535780096503641892181608701941442409512554620821187021669326517781268896426998032146203064883616712509090359324480921978738700970044055105412609678043780513101989469402207275106941362878265000243333448902536508111180471348510570050535858360319975529205668263349640453675612358076454665032380987540600054324598851924655404502284281951957298145502172849932463172708257766510006795601385086119703794588087038523855337334886754283475844101827330949952647999543843252159814884869272125780275780873000057933635318468337454813199593686573643235187968036430159770013735861091539005294483860781150453570379840259451761165309726419339544689804359685871283806895454602022285598434275635476113200132422106340644384703834798640748328215725845557926814851652064211434228892950695028437266971482376554570747194166354045399583608184051525387340164342431604731162261490098019200648108723031982603458724563977158302972885240410536509658164518518498958715296250664967685557562557836666797874067451670290892596764279048565099768700383958314937291763693763803159416408047857121030090866621069709085153699548399518775095218623355587227493778014797514415125113449231049068476243551834224284418122053640897684593472337039772890429488161116019337528813756949334879380092841117925867001078188113612343138559287893999177715701396190325703150143448906038145007925535753962920338004308911513699034240867800321018474732158166359026182389567373372271984932151291256746775378885067657239830178711580155362854293661020204980102203158179431688784878157433444545535955571633792759169912051305595602062641337116613127957820900825829218415674085619900705009619015545767205564612404074096944641192312170536313676970104791678843238008323914413012027108908930498796654045596922267343457265027739327153856402556097185857982091770751215123753075110434778587508594586809694346184230153343566853769989676004581705821618489491078687576187125568824849464424039112255798995544427935518312371539429825456099605919961330266850041840853827392836351430353684301974929548234485735722536296404956987260533025567072619008892606048930130122146201281240089859957744423093884160609228281311779093810988610878048964664832685929501190712346772883832600762229245209339353390810496592719097345253653390866336431037354347435469632139034485664994108790486361781021799319698867671905143003809018365986139701372455652252053824613149413964995215644229882619458401124595245610016338429214318892244218208303496592873886510558034530695223740051710500049215151593029181231622156059688523094652354508991201112135410933658780317489695659956702978406702749564603029819082778736753494409358840581911392915045026947597191415657484843680208768435090790272864795794332791033911964958803549758065123728859954296716960654413823747025235293547102394930844248044633347455712723507450188200603776037518633360896388412897850954648437087348948675813291308508613211172882908699081573990862013861730337923599208154864436298923119596297966102740771335454805748033876270819593555825771560844497857207139875719291448127063426731078513257295342473862966327277701498786496756211158716729515834751862473850556411698291715432100553388688563096804178087991250433697751022738008370015915493496790228306820194530911994847834925663651754226080244375388599484519302107104700793119781801878020922662329808607658251285020916978445319513636386053597830737418504167301441786467240381126168226636055641814850850854644051926887448197571146065131784541537585993020052344606853657063310135205822117907607478580777783409242722662432987718639172225327356378144830860508695541379695045169525823659754961187118883343926697243355870288754103225950548565230533757459937686043994841316222739220060680090043521384226180616384533095724193177905741941779976061434756601563598411755106910784969689674835424207030594507732909015744591429293072110349817612639638533036944456958078797338114094653327802608212499230340398516356564361021650528473718087046131499093875234731304634896568598806295224728748725500978491234547403402022376331474840770736093066033502670153264236826173451481506685857928122839997310674263643518772152825729913001198148140737327101146296644273737882251218841543345537364462953684302249191091369563201793504459439499877962099970420342016812128477864785375355919550431797722939178382677626057017305977571232721259016517905619592553439027533240851036889900383679575954369225879992764341194861403788098067807425075524536280759045375771160668797348764904672107504940048798562464720052861221210387419550590834265528964259258379721333412858627083006523125344113132565281114251138881984127598621883694852469669579300925197762121477531105404738738017594096806602020529102513943410415056745908985825445253776578905885617066245738704426868822281164317644987284033801027525329584052045002373274553340420649536137071294498758308251665993010513434138597507598034323005163317413111063546752912820363228882796480020335278260502323051913276446833265632036646524499434345921448430795874072523349172007576046803554279250710049054781984562935117302299762617927567930963601307733276430363475602202313887982760810212056593323723914825821237330195938315260047257412749282078218181130223533430375105535200732360974837940606484096937143558859942578199410198508822946100408324167751623214310338921325910139884898643238996734601942227380133609262880187135335798549669051368626717256952774604100694175159727717017648700368618564332371241043609099158580045950566157657790388760286638777172854587884596489853037025418634437017613528116048688343945420130211690767007860832851795109164303270131576987909311259126317417850184997901654833615769925542013802348308763730854086600750849618491887928726959981034469640864565178729576686542164186951521563654403789511011232124437568253848592521846082754466958217886326489888736970212503060264814977363312424237945333657852749319830266472326734426374151967570501566321201946418014615986169917711566831826024582732435835648141365321375026439218193514796639833678327125155817117381848342495178156029129049097589874078858342842617413288849226467803312552383981684120382964830432050428032181624116892958712941346275646527291184488266476536553536212078916646464109178254656942075339434896073021121906884542181096124839981771239173168602889737687000110435212474530992002055446959186137355518254138481925466549449078748116192538792427998275375807472412695456707367611707654010246769320740447744415500913496524756658611157875515334978152268085040433490448233439250437416823795163152474176233917719015273539314994150647085764931452594438167216613018226275092777874950019068979328856551312958344663561319324689702548130582515982253005635472382560597433083549581706375046251417134187855912780507204626573029471264767122261911114156898945014973635844913496690220455717593920795942661533858468395357522654449996058401978129251721581387393402879252781739151654679292259259854414443557166559814414633298406069269441851842964626807707350750435862162618414181507935566431793951707472967596913180094414097153207040748220571295197713197544116461379149150261704282526345305486739668569998544532136601942377090561585171858254591945010264494371916497381312824729722891341484014533965504853415987384190524153865425544646030771849078158522506162252552576182227877452221118033760572406366080698820449917477971386491050383723166006826244193035347740022876493135360484608960304534486323288841478456082713299763971313953923228396242064037597878538939668207275620533251987638386164134239276310500769731675605166032545150234819498154435144738781938297619142497151397547904744814146502525728841708094900611761148960434241239265612260562704530196234412654252598793481829250792253806029766013187156585718820104267704463404864649868824689930196486140647704487625419681833363074917484711157772050429028498218832879193068833271956905192425242021649075402972033147920320988706252664722796199672505042549335790869753197219373940239382645290908262410899290943245408925996304957210609829557449624181647140931592977896412034103869741411237772893746982505122370328332891270103259335232697376039020817636128648308201456728139055932667007436530544704050702341377755277520417716740932787729131425970231671783553107011618944276693191172834806774788800747933824094746148835352298472800675507306082115999680723391719517855979914737565513825087094764448977272793626736258258782282272621205249751007911928417260589009745594403181264292714930772531382293844498972771099636205676745863175425610242433356235069082389780361704131403525851513451786038869847283894758697601618430857274123622409320369627154678211568141269594286026859633277825790940697491345166977660895132898870858854729445782523631572955330413953510433531381601212832248928716949095718577636070065315616052982492637233211878884745196790056903733086225171841920603599771196400310925832223294205046396293673516529071948680750502065915333951883337455865243371739623194442222949112606593625787732487864037066634816545417795002481940919792654121658265653974975999693690799426280141151722283707920408199070224457428848276866628106156753922921912411960068893071023796415042884336903331972336084719174853269977244757258264235132639104766111917805240647704001280110099284353847668550534213167802104689722698301816583656510398054928070826210893878455758666198625520699631661002240868177462488550340959616002358286564381581605829155080842506329547456195145742886133210110611353379058287571706744459345563442669084328472906417270312430177480002700149770801345652547397638969589665378982737655368441862903604067855765474526154426812396998134419160096270516889500499323474258736083229038808015348133685809324385423612014337040625488647340465310384617252614238768228989176506899482539696343593545783381632642887712636453512042372176418348034523842029545463501717832497308299551457152288447038972858715358543686166867832492846951047439375618893094695297331857655453771981374293983181542534379083537598262550823104365423022884591067838305345918310603430186261061309252642243508063772121260760541299049329657332429651541433439036614103773312047029010807530524390682812996047446104095718500272042401566908993510602165862079608063662094853647511483344579164605382920049665467576396316014326125560656816760743162973860124937144828259825041843305917762758112036826385207479766962726893543484376732573275286602304701626686109216992093038387951389324508421120182489605524474288300627446979998125368075138410510035989163919609685507926751465534518075289512891056454031891243919052971118709396077267213257149482440855976568759036214193982836124147281003927262548614914389916193045710974577885902343866086239578577527837234836960390506971036980631817985399463976803566606921858840209231032586463379422652565692877711800432089461989619896510182860807728448360788327677831746664302141946779031467199999352759124612099072199286441495876148186289952994573022944591885863208341395595096936516791338913053409493854158148508879294570299659427331203816512448095626514540600045128414302048236146156434029627296674109557338357455757636050908011146390062641697097730358654064335586634889629937009163705317045945882793522774364993206313823044705486975069006329974384210015049124065297027563657974553586860900874778505112366126639973767382031569375301023872770298433001063616939891553909851310978375352872470326609714833390732202230699678471310262385147390393352330452062442779393512083401465473860401005329084973815383651656002425925346682067623006310645249315403154029697244083082936497791115965167999977007357583651197537934910655039464371749238599357761142067582234958313200361710128681668355613829481556503320939734136100426022093908789005219844574176843825583842854437157643434925045236850508589397963877362417579783265274069354814200381335043115126478689911787097181823571471675272214675017297404125250205526762127404101776575811942941789320558181889836804135817470592998948593246726141778324738367550236896140130876242022923949966266183278014036324915115257468157483244535786168323177188967497239097018697104428722101068008652149816862376794870355487452508804854003775767239088952201820906081196110867586635747395386294373732458311662997976458091046970016174197349436193515495073322963869973519016013680567183879860491448132988679615463040140509218462112729708468405468767196449560094382103988472478325800473732059803806173752758469801852701566399028587869055468962401892568321777040451149407258798334155852161647519198271583234733558351839571430784503924882082238667460711236325385490094110898442759421195428974030009242335275834360460850838485167106439279662433715801192824841413693912806272994580866973978117257112458199165386203870897361063275897813966680741912919970417471716242313115202714215714612108639596257107795218353313965560767162820359328627956434380001983800532667542990142424918297072001746873464318693612501568565321778709139910031386666423790225839479053957071799022667622896690483745493255792254271089760476087768972296888530018924730854045458799162523323128280755454858395458643785315526857153172727561682764003696373386361265609031841896869913458002467938490235990604779599552104684999824772983282277181994808272663239252062857278774864897990728843295704208630651105778856030605410624736945052051256496756321751982393731580618557748440500452853147939057236163975020314543884800272834088407533321259477263440427272832816634228357935401669384728403946803241261108009194152025367704482965407811317720092771192607235036108326961309135414326322697528151964245569404134297427021546124971084340639962942551785515611307549266950195907880111442173170931313897531533417714790701295601524427764358053808991404622766649697553633579710191038445355526873079308401880703130947933014975963402684295063254035416262144944536692705314109152873251441786769814081202780517528794893466261171699614308711248711959672425388401419679140949525311069100969847801200199475335175400139251074193239548777803594215648519987152372924336493388781020575918840557235642593128540023692521945356073653555425978248729892927432487421972319957421237924990743289765261207280098526936977318668149190588152093370634217956283270514746795733332933966493706230945627348656442249633991261217374479372612736820959790852415454066214796149189567180731824690235230361500661597681555034075478984068276479752817158309943253700260653183407776069104028925423221743510583713555719423059884486330033176856745076332412221048241967214452011971882580832878435576883558716111492621626283595163361023069659185141926238562903140656301076793042502821093088723880468456001436119048175713770974371093813947659335929312594470497217704825148133388599296505656926081940249982574137737612155861732231872677136104089209596371402446528504502632750355714113339470206879302176958441521093751664077295078668424180586954809492761028456813571497174623167683045301312552022589687886471191546095132831526752839372540225850945838584417225392058490006920793891700808174881667260455518626617780986404344168863324156888530243083217362902808609530564365353678832754826019548792255727283024315437617065762175889210482312279283908456867963317865185581538294808647866172358796351328791626927918721160317328915310969314097552730435585455433935649980284226708280091047684756335724953582851696666852827760344977468017601251849439760283852981645665893902955492748190941399758118475983395419207502894357623017965832545583431785759787330128519927186909077845232191298490929011981135218510278183315306636021403280559632122813981932787805062834012671801976356695158651646612355000991318126165496602108630088265389788384503085069512289563517430593829633754501135330618725877225367195596074860416911505549844176430363725556812739644012910254040009830885529315660253120126294126758500565589376991637433595570422065760072005217568356610664866080606919419785000483376416906744315644573885751848541508848515119120527730712209973451063158520210368370693075945870037923021820519309673331353733690241008832060660028276265987370630476213829055480017096769333894258630110765482798242734428095610305297046739801962963042744407539107342117127708940547594517644511723916622939638242784816629839439016408320025104054042319577114317317239922172640330904595170263337797329499607844703163320332770078769303258518002632291040269445342853508449983903776546563661561994683003353297786152818423522312417512022203581287146633624805204465430863948471974893133037315300515468021454858287573458812341151268390620837182153709676480249278083878963170455203859441648580627980850166280890725420991011333772989132934008156207718972080395609235004327476263370561865846563209719375116984348108478876998970055895121666248925011815914356350277371015368870450946924878201122897914155957713541653094889756104993539488947355202933478613548291427145318417564810106722434842019882780561045559389400801270483113269801171068419800579840967088662709906242581538455974752781009546793718719604301679871015444015737804131881342926884965153790982390763627311317761909701733176100813098427624320626807569519231945490669074583406639281779756245085004543319903480602966490992364001765986054540070390424758457284333149751388724482667820367301419656830135451243321521363385677956094723021299328148232397485137742623945421674614918593165626646843427135769897350270466661517308098734480753429773999436975676584539324793634349767375660901530250028574206769523474298260415216530105513216038035404234420206232659088187570899333275504730884847228140848601908177252916540710963746158499284661938579363532848293264295134296275553196751743164813049887182247583079785570933505233768806567856660217985621586726704798860579508571140802979757086777876433139722678975337889151713701612747953212002453548620696555379595582721859931582749715594226371285094054455285587621695674285599956135140674073857815102521063887566676237601458572440586792086070674690639646439581144618050793805125603917386615156637247036786239296709325809433093717143269115461051868846952878746356368035036823756115426371259635369037776325981473182673993286160276226580229239368745371703306181480731676850568816724949448138710679358321557180757789706329902104506473076831792903055605076726276878155628526251904151088569103238149687325721524201929387616633366898795545634925644558968817537299945686340972991037763850656672393865309749674057676138500655670147960448199357198897316092119984509767892096091612187010602269727547608166526941020673531544271997484656941245882908867963619852787121445278432546409342428528168924136323914001490274227127287516399230129740296854719587609744558148299579948884833519335753097956655018172565588038422169109674035222375495502048723369330636548392779929012020365215069013346660588624397127329967759743496077232010415674035205222018265166939051553745337234332616286543381142469596462060525658273055982465792974601818727435743888124759313984146645965825269207852031335357451097198687414881785999514949672386805658871784641179808119219272143628644795461309409791117271282695522844135373498783864406064790792652130270508509735747464913012448626353551322848908225061973461904445652486627214548259591233703126071167972922265337386157953105936832562496944764687945512691631052393321220360765706311649518302578748349027042464827649194689371372961630173177315975688209437461274881004664853194696427199599532937862496714347011661392009767516225969857023973860418025368758232579267673856352103660959629944283304679979515132482360013743598780636952725241326571463939841793877640476966181936232300230310402973210361035265769943924043076343544264493219830849826197375519307903597993857877039519369534347402605001100839186890059970884076523264102265010227989622963258422583862346580777166126384205677667716841714572963075619461570101476195669375821382852688917094914620496095739554118179377296282150122446890241524976190404784805375511557737253472178131553471013973313753330563137989517991124454361354071780859326209405421287115826716547297694188082170912918820665772446975820133681905619717639128310932642285539417490684956556036816903231421310813865523362313859805209417315314851839342172174103113399326247642944813287087807319407474358666110471468049768033737896370951943271388182545488980482590953080351035908900898500088353847575069975119385001845277322239973601145069417773196865862149055132281751113009559162717703584554791204167603013659573366126945466293345506741684519740358018814345225063223295104768736193008800651277412875693381647462342282761405358236550335085350929333622518544478605543404718989831964492530283779673142973225970028874997881783581881270773309694226881900480695705890919007181197365455275085346090889318546128877926094299267145700749822410104367264197871413005250134549796068583401679715037708756922860017907498670033232311691023702624775540845485943666670152226704121369875472003154966737848583862017129794043127354786092676396563985919267147775448536101763325007085498134485246398715015708837818963829045407873277984313098620264752268674053673868570420552559565141174088140959314649552797617445153124458818010410585683252717707334148865635866503738004416278569312427953272336254281031562900917401812917492914314228732155500539034937673541280499581587881559241491705591028492474318808278005660185704791050397713068195097499715277617279848604884968924813523843956527813825815420351255984127922137489930755720497563949016636458298642467140127827479193306965822133204141331767978813490926184871439142143009629772123043418268297890135264613931186193261292271556249291381950991854261137635615465606692610692443663926862936264501886564608954420939402479951521056995151450951220665990158310555493558963567163568901143366430540688013244846265230989169303720107059934536890185672749141212837950541866202683247954304504873650681385310046955738397182110504762858652488421967378650424085811206457638623182613253096934963654842048274159971800540494571534066598224539545562658340197554008320038183732492442340003687928478172370991969682803148080097156253531265418360650835235996945237085267669624782358739891897912799910796932814047732647579024647981312425962000314967951568046147233810657304723593829948986212564577246339742506559404191956936139756599190413851827122850300450694597459885163645644957683416165823587209594441563468272425708975419113728716229020087833462422282125342618778666694923320976922445165273692758690000501418536401493263729747989220725049826783852729369552990030706277521603285915220232769770261540878333435706868417372960759616797225526478344318698694597755575335739858653732353623339295029672242402009798390197166777032589902177583574483956343998789679444494696687980836943755825240194901491045109007189945939145327697994875401235412885814014765532669807239756170786962825661548229008943819223218656409555884485697730340985122783304317923315269364384617906669383298200189810703741527989569400610302920972235215172183825957051647240408051106664288558463303082334941469109741998485557362047040054300014897256129422061551538699752822021302587607838853102176636333815980191475717905979932301155914531644455879745803704687407419793278944606044801441062473127500071769947278611125126864666602201221064920756505088793074029338017646131116349920704082988480921405687978563020192655740789823796204210905307873072666476686355165535884083283105034387350533780328652380566731072726646129983518079588598605486126280132741468598079673383211836739611358335983900495447867948900058784346425455265108735063672077825240389816013528393997824532108477097230880460393350802447283028117196910576754501020500014495286524228458071796070702678397380171797809864864644450252604831589677450396117673544690980523669388608067116751130728072951248556824334098003864698150675765957075144419866247230628744147529969049337978522932295125352601589475836119719086486383889205524536760693954249679887903383128835431129785715587849742102204372846859575639586551574986270896548327890447613890035967117679552478595026027777072739353458626046862203480129638169991567260534776964484140923180000080705586744778774050003166648635798916135086297833314920608098206703736835668438048652960436554928272865848636556965646773903208864239478254837494074717155581237321203037267184361138418745911810956948260976706255258771297536268062150893789025755878365348579823174052960594439036178328332646706177453001115928267736907430384785195224865260005285046179187508956765916995666421282123509428202783561806210145696706115065498798899449474485091328977667840683974091090542076019855316837070446440704576238551997353918236576945656607540532426745811023126869981379552246652619912053376965864748007275164996585549117536293807211747649090871772876260379522986732337857854162263509367310429724624881511948182414148126042530682496079923360969543888224763891210518407416384775192929068910679107457405168575384718560183545519911442688877275250085627525360108987281457104796107186715626385380582033512869029499199586242174323788077484528203329078850923765840146590445378137162909829650023877143163348540590912524734696935921221057639914842243024352972972364439599271114494829097852006621286420419758460804659877211670685188272134533222830591158609114729378913330062786878932562952409870413878623307850341910406021171264665323915254377044974394670880146686679033707233977870734007872686564110716244224060912098805271017003513169006404366106953164345662904271722542315713198941283661251612728451724265885778066860540466491450889448317541911467919546498347211223624314835517712827575074782214466912392221463555832959174936301618234992404714352734053939295751823679269532734268572259576565006841051608775203408472318797162412072950855355709691573107865177884800941169183471425353246393585037816622753335152608640598113510288216145763357176882025474145600893572996949153006027665249893136866095605005002200389288121842100274396265947528001064325554724755952616039183941825921996650957916855577711462592687570077010304506171392191161920571902573854533016229979055076321141106332657698700763960310791796835542419629081720762667233583296350381034402690641089293221324940096708020300590056900321846391791837278935662265034225623200446137012356387679802118403783674841464421063523119011933718818878808949606495748741051477572895635899821214430912989128465033669531967136601536452850273202030540349520037420328814192912819014836566711892570397087554587560963143414462214472821065933457398349987686056248011210583413223348713881213147637326470867745796919219177951313112132976569671564940116814406861022693305315875876506876436428029557259683232158142226924891465568328133697260436402079661249541595716047989463119256593625794257522729300995519572447435300630082512733247093481552104177103751979927427272686505308186902311862947739903165251529395487691024713736000700959870275580247106985749342955194872628296824397069671899579345694189685571478104669151942141018811302314979521693696605700448848465877522274696302390500350604374270606330166740681959435128997236656564198241052585091105178821833930420532601945171588603674353911345750842670925329384117913577233029145994534863990578248636859008229611067689406182688159650602759214139465717809474992102843022883274993154570887653056093046029773673313231442264529482238163558661019760614919225407388316546179673979547329973612594191502918765062214763339460129218628904125514510845066799875892743779184498290068290778923388195450468672915905672040611100317626021012320665554476084603263291971468790083063500277309558568224725540550337172547182588869320924824779262561263366313666385115073466115660342392781647146422889742114118285827969629199648718061381047049375474776153383708743225046477061338354480133149601688423823722806728792333141199286713345851297824978046752400321033319750359266344809699496450735803701103640381133516314444489779892331304679135750959175052218326805393622761673695498280335571320228007352979906357666940006214527492105773850913273353122789369809102199868643832944829130423997228582548709319175150060921862270972148032447523809427549464451723900663698676667260046759177594597386826484771695426545727511560781929921972646163006640673472560636566208506254419760031848447009395134265318667805275735869318876497236310484240706918347235660428742115914567074142938921245967594358024418372388363361257968695964343410908195195772450609945333574021798687897943368555349137548882018820268149222952251439438789214817645783241688366457053998505803971237678610452465519251522694978306622924435666463817382506877661268400288697901973836170650414975561469243127902246746434382363540710998496102337170466928073098255501638487403403511997103721063287666389183650552416848465947660977124579048915071843900166354498492561835070958573373100480821003734281545300847469035292860621945126651620253375777344466869577594347097526622217018565938584451967746848638700201326896587328755517846233365191267259238335887686624193011688318333688452248646083182437604969987635524619684275112184079007054556192650991317403040546814617044009659384360856205819037565923463695845707299569890106794603770929638992890943527084414203438088804016359748492364985004319426540020700075191933073199618965573903826431820757448999220844659026491335961627285981598562715331867902602800487997018899204353090235651716587375094071322343248809939424888251646924862787230223530487929098440897908221172710233303808294046251662269244834004010363975859028134308439495054396429733610932230042708838397329696890820784011419318483509292485565011808746288600037541060934422178832862085523658029649568808119569697088178309985364586133765526987459414898832811830460872992304418064924110515667669092512900803420898677210978238623580958744528598344009503550695685485678008430965282573242945810422446817352273748555319705745322316836086027019509419987178644364167525852926133995255801637790409750284799753532902493541242746021681179780488508294820873653423354409189541428108012624623323993627534314802031830397225925539943840814447665726524692345285477688032520150844948394470424250739254385733908552741435617185392560033887772158042286864718194480325149915886519104849744305772285338632889433840068974793463207730231296582091802943470901652407239170714734329064600981463587910318166223622528561742269335079398103865117860699785963884365967177500489808560909704209962378575864346451032045225334695304802154237787676422240406272476552806167670518104782914084428839233887063540842007469238726576755118786164518446249103749739119955812763739500598424732344540238013623524957027973428251458561608465063437474717643332773541085138224220831720981037452620771568532750274014703057912701669899776643761819461460068879366402760636795301077522713669636099877856473432871791432392763298263517971555224910686311395033912292035303649458352130605143114084912927020516379607738910313285175734025516518462605368774476810700016652444673342121723370680678356618421458174293126370782506576523313558877871852087669183280615132883456420258626877933442130835294216709344380008409157444583559262914957701814862374648523127942071745238058908759435200281853680455975691482112284550135780559705518208720134394317748234537669359204949928490030571217966622432021386305581237567059566861421312347995182832696036677420521856345843834124555851200287435809624847465044563534197762920413941066382206076393983651238615481782537795743340477600799605241835657696317777798711899312842504367727677074876282294792572642591860529918087511913058724552006584311141996259315290160128524318608007630276712506163477541099546496826011813367879828513444287896838142736691113466395382626392335188186898890381453742781019467871040706967660926048349283231707691675278658905451443742564290412549284029598078207678028976654234759849673025794842183689316501519976839012945763926887903588180074133079402223122475771157178245515994734380868345911820503132513474597664083052789240371907449141147252836925124147992220031087374100983786836311908578744705814109371238818847374366184791207827463300605554799891275175622303364206524300634298215455315543529705921955261242550747450800193544847848060929738485946526588659559097980210373649350717231041800875592948485851109910015725276896617759857667512488323116585847043281252249706139882259951163759809141267601203874859683979714324215743124460949627436544441305690946757125629199893030783724255455538346188534519123417079943010301268850565571406820383925535161297031511187211407510167898864696166522795504199292093457352206136070192766132742836066536350129216746576255766340803108461622174514292592239022030628828523784074683229706597378502719142021963576280157827276710728918615142166718310699618445922140943464362899408076098409164540413299770739187079508340295838711447183459432382220483009779492791237047289487137542123704716855663502176328103463933531149026989616810504940730046885014293264355655471854282981556809785042013471383647420052325111874992038687080132667909725221180636576396638177270948427265669559164881122152002307189641923399189600687303478746118134080193591540169553610913244913315841497894358088480240772578765324770002527471741114508720291339571192111630134870781011218746913776778582994319046268986272946521550675285217099033912392787115167376941183030674543658867241415705503286295856729158851538995865811263219278833119791414414664202329707954231355346454341240252043464268821053948994134658150114475060803026064377225411145091680366046969274975523601895773626063709394441469189175690491372798264663241041002255242727065326315252623352852117664279840899290946404494978633559639015466714985215124830782105407401003082847071694569480195250543836417709113361259248846600254034504807917418657670143966012240962635107592974574484184992538559226496896401375870242702212351752394007163565726903299932822540685280331523455735156716867564218125305840232945846422170243381055340404939029810763763825814200397666749605331625143782012806951070225057357237088246808918800843909953454987986064653890617500226902523627619125569311538514946767187258782527764966313337820288387555060437437544022369497628277867727349028254502267041826622541323985581319355872504797829529481325746513225937437578361721330701249109090035198581087630399139450210906996045974705398684532735243759022124465199138834984185710488625856158324562582886753950454014560420718599719096943585164434714590212156920940984225466213078192976072615014224523389005218114993390888636218822734916214886578849359744488528868759888570748950610303211490157812870207067249948540723449439338291753537676408028342823118148265311078584931834552184232663535445386213243275298922228813033527520418008082361095308477925152422818131798684016838875844577711313478497677962855936972283772959974738103637197442237881091762114996088427615324797007378884061087486067886854267955829207947951345905377400038872356352884344118449558996969419333266630615635215006220416590209989905106473272332719989473403945368131655871086592735343127889303407011055515309198532875234836700523245347153266354840668193444101379970704283577054012192575342675143656435515870237519916876954660806795727235791987967211925854061538468364627457106436029268637468252936721351757739327170620080882857894519998852028951617637257216188426581175728807111458724515253134009807291624828380774560946182159975764550327814729384403570092497868637912159597215285700583844584584160372972060898581428848348446113375382938607841744940410908866662309553990574065832293264877810600560950868421758850133637367248358535884375441130391409664305753189356035975904970706241196209408416857697686707947016888174047856907303803962543317533122555460987376180883041925590657218032686084108218543678257252769079259798141760838573042731279230655593482234078408395996089466657182074296674543960921221145657059815702265851707617999768316942703268322430455575903671078288648226748576886336691265174353574281872757353249573080812001385880772772856946890381136964523220519502865125632893301004011171360641740659371543368183771281439374847776167535632944131222978125737964406124965243838868164033616951536878430755175860133608397924911166331259563737080117754821546516839284523745504664434858893200959704988494178558613234941986078910645997084847721151810854113985027400186194343875630405834220508686129793187702835998244106968793637179605264006892218127485219347287930519166542728786161288501520702043505953692395920571516408888777683600229304289647508513315905863268104920851557949818769174563589617833671084725721497200486459362779849264163079866415157443192049418994471561271001403520595824257313868661508975529114833646351005930985021589440794656346242202579441470313799953888697643029010295579413201358956009003751463398091891911795974153409248204109434062815715418099070840856105047471776695085286479416662033566105913823948387674952804212047968202303674393824892807202027946472018716258611971407671515426765960375039996914415919457772380467116656195193472773644118088322270838993594209919488713338768687438159219243283917022790002795539027229421504478356389110165923792575917664656542148001851166127909061235260038378639621155276634037443810021650837046362961714209541779692029940361153399196374823966180672448787018462784471215933797052881566416089776303477141655376486510729587332829284103349217128943456096847257356833013720530049673242449571119019832282539045460025903953895755970839788787709696287672561796674152057661804587784368238219256488832351628277364929917693696525184015739020138801647329366782625592726401232387550332732445750911811129759362729211219052994267816305349648008772346945315560624527099728057221280685910002887137620648311513281970898103003106020376180571442502214903324844134696501040783351648874045623899902673984635209417985885590484974277350550992420925358233585358998478080587028077698376836610704199938900603113204908904482731448079911257084549014737687458698651116890090384428503538109228696305434526435715325276895600969495078808821132580817391701823949443950640339132127633806231220790814966995885132320723107387491098031036858621692513692652475614305064505268507387270563306290002128130712990707237617578234356710905438079795469548836125043179992804735570819980563389450026639177043520083608626237658274413066536280425504304281980618181850517906033154369929074130705182341146755707178701802725596242508038100386583786265336950949478017017519349996399335023056533478297082783290739102342872881106386198780600287485546375674038508999420988714250176277062910967210781913333413292613312949029807371110837908851061488161171527559605913031980175547261252833170064399695737905349652163934276112079263371155807553340653481974352051549769542090707857765034726757644396508517081684396285438673515330325075939978396330392787087254281787717912195425075558550971211054504119369942247129132760685203439422587953261131576419606175292950881016325771973836246240367671471237644586157259362829938241191747351070923667798204233832141725215516044552916056020011719707048262488336957965312588251166265709263613574249119325821278182147096543476495632250994233050979920598236482354466601804208358012084802062882531989871039513226896380789991405187501575435702563680214824547589392239637711767430734073626655769229465391568705212126410547444022827427000939210707892337764095434963304153110011511614476963356339651196015553004021744943895147194154050366020862242495550481932563706620927588360870183494411405297982851078091372332866893661080462213760432782140558293626561764820786861747762483214127210593476238028002617024868437138231633238588084404318211696989049126741713910356187651765359679447403981371984394990382712874713306816030549938283452475745506524722847449478452333279199656291353000574251873599891294218178375982516872409162527700569448712674901226336274656732271077777666026126931168277523033478834742531712386842460893081549287674644336220738050886242178409599899008471601599620562665427838556364738849636816138118017199211735151098420098511960791569537102890614272181498062389259073137877130398819120282941324257665423164247170023521036193032696844543240548899052708247011036406671942358924609019560177534816574321201183612021902219179969712657267231529391334257918951917821004154254165574386938920292179430419274847064011473624370685313189338631347226955421506429439537237912471452646029998347936187544804148935301092432967738765310367697241945698077825883278450541077286230324513697158556649271923036422623413801626780932853138214327619252095669117563005878232789348747111210432519876184247114796192348563485955163024015775786241336300794141106408082134962230453510027295717888638722509815918540669454872227446561042491054895789043969218188405235775918770184308699719112141500752282511370457040317108799702571174440656709711033418259815073026693092357059619436059157296450441095509131097452821562684855907998031720514664831140141479132465317185432597169435312337789429862839264944761486193154920917762677044664198704531969137525519321517408202457476102069129548840793082257208823515367484273408551054788401864423717275160663642210884292368330227165982668926773325635400801217188013117890458605552202509978800037396380468106366516988954177419951436321692985675507121985990446633732622396527464772656859210218164042054049740928320267806811752904124018450833517648060574004767679987082877551996294596951742877535179295711717750830028756805427705072408067841765899091593191666408657040399552653005543219624800754662388758398443015777238634365837117758421632693015242723593676880829587265409632584582473270671839023264781244181613753036429222298014045827278979135429041661587972610734957704274607608491741333269616513739843310038963749801343240441726378754363488885306106305774074923612406640499681718422927210752344611452187511501232918435138485139745775163834716020507746324161149464972651300182346609561000985014803127872772216766968587297160783085310524487070499007995106088860271973040136334784265817084544363591776370747865700375120704588306868633933842742524673328813956655285227509093270603767751843032836343788619012619888554304600444131134529980715548269359059673077732724510919515536808064736671877365868658103063453448452022458296995445690378038706964079675955830274922634566863354959692500504542028377733377876311137920277330930564538598009927496649962708798762725415326974097711693939824343637929994065373733634695336332892815782291503801867880235281405725136995350546085468274477163926027183794847311093096460426165476048841689479850211899353424284499628027084298246960725503029465380281504410694526956103303172164076579038299673033803530865022178850102897738379562666627130568180589886089820166334451693497742370024586632047567048319313621687801285900456519961475252598596559845325338694594575842339812415669547415112516917829167348635191208273446394455941671150093006269809496869932337743553591814074559603963173291172783651353666485060833550928470273096343685174711276001975307678093550199921209207381727931124017601677434722061644453676757402936876694175405704816601921981729698029974450955586184300008150710169809982734769504241192435442257363555378475891211898210043440226204639025382777405417760437901922127128289108581011225361888057533689098365419913701546752171012232747153223484422503121371301008785111694678750523913166112642115308026848750450506886463405134643403948474449903432300547694395987967256938486894626525904171505456488269835988725322085806369151575618013752731550633211367032517182266708774155805743094837687572009497926579636996555330368876239051469963470514561960247482847030380989263610777444474869944923168442564936661536300653751391070442749784798017587311826419665516076085826024035969647528074452962808063607710154831869229950794942478727816323141837349848768009230980104959217536700833871170920122189778220580594694516668272399691849511658473521050944154605796877382781560945921808482710338801374979534463400723226953749968329741351016987301277355269687213234485497977256611578153722221644192247342304112602411899342293369770003358401906513861620889431240625002320858735906969059578810985986488388989045191183765182418465302823733080432256151778209696137850033581761701439519967495924037988161620743991228035226678866710819976292825064147579990516852141319311536975414138196765484359092451225254606462622505131596888890380116060389192757822614712629285103583501395904031454641761183242759846499560529628057281502807445000474882353859421078389801644750307286198303568376639965142915314399077520837786900779694398262478802961159319760379349619590460298295982293804715431201153129641554534879208096656514011312141937576026718419012391092952631588665091378963800874328935890499570684921534616820936194414521128070245156669292550774119293264481765446935340203116244456637900993135297558673027732995958544225979749668161463961103141338490608712352412183365889526626342087573617633106401370055597640893963038016548174344573878662350402595782664875978190377314328126534848717633656274455600665947800700433779093157265376908047192599529770462094511711262774274598335360849524803990925055287494804582710626946289249516084429698823934437119818528241744971973719415933826171728681622939015079427610944559295356495043520477804616324185004380944162018955105797244218572811188411295595846756440439569707883069659563971164517191912818812239627407698156791753607304099429995781207579839470905663158349723394288511600471953437115872923937529791092016177803984770893206379826582061341232400374020201643916671424801480109566014660853606457638567056962908071798507957023390840896625211696143969296584004741028664286179358613152695829288350248428112107940941941315382286157822538835958744758610954775003893933599153469916479863538591265048596640695013865176363579271950722199968365171626310490913645648269444056191144677815433147915738990271371774239044956573340981593345730756367435600027858948835444691058129792303833249386608284940989252317419966807869764264754211839432444268058506575817072349687747609574727967522009389720942530449999317379991233145802248569436094725304693879414201408326467100040403442632555073588172498464838842874639721547689702291858169239144106942200311698480854492947173822474429727758529136046651403782804425267631665212892382499087878168047245242841105868400172077491829831298364880429636647935179095648146060099778056687587300319593843106788659904045920716957922294421827204324427896190857772229829824833351083939242861559136794192578981677156454894459992274178065503603219115947501367113550206514253174026285330633421352919182778419931848674485067859494906837131648689868566438616464942092332284357021715867263613712109727883499419147944186556341225420752416893765860576732436165096986622992652921075499029466892055677628654833849040431948840492016357260076216194081939099896939843990035383687617028479086790439043731618071394418296152460163668758022786544149605522161842387581529043738490434956717062614434623203465698639049433373703477822920599202035969233620845611697060970345642940256128235807219487197689783430745043170270897415480423398907485496505143173977026991225502590962502179444953503002106166206077357761654433657785873145937076932819200272680024440543643599136257489330634869769437109239072179021368711603031343009299706296257755125042277588300397462050323419425717280304212586335617063349373659147028013502666418738184266625923949941916527209971237734334610277660365033266206774723240080449885299148593067408143177078963623293025443399918353227327220515750261766276764397917290943914373823220458176645846659674902261851297712321638386138829516427777275862521068302668174659446159293329434339562384031497885710791738530516287352982993670282778300726806192600755505702057762496921744108091120066216143127585301437172785690567449385129512291887060518976402978947707911776134955977962081252790099906588342387309100357918012065870356406013229421984318872909249246660487190413162239896357626112149262217520566035785942874828964450675123262467460820098258609323758912088783538675666215236485729928236384956501874081082153547512133954067816566824269812586322582782269700290649602563039702114751143639071173360659008051062333426773278411802582106558046086481416867640655717703670846158160102231557296808314252670766893401775588037841177621542131265778012082148213994216574548739728434550415328048700536340628118430169348250212110560079896826064424031111484726702713290459745348994464568108719857816673016644624063694384637248692866307752838997768765684824657451635923064169166869009549167589963408036679740572348383738918073281482003173886470809306011411528643161480488299138833989009867817128653641668473470445626829176805615079184666937786697404707817875409418276815998094009156802336153006405715619350215860743074751391420852468187532864035907928873714460462111519890956380267875572639856484261270839220666733032123499082988143161418016658359307238092296490477508968118524557767707167525293782715197157655116772322597748095903879158193173244109006550574076937581834833078632748401264174684724631471128403405017143005580933416442363876653482014020348764974371671883857883158773950111162067209130745048122491723147027553117458225336500940653320867155497579467873148435242755959413287039443853633371898943253442527024463104879145446927289764740583937462754372052372183660473973616640254448594917835101667263648938708026521581737794374326682403004581787487097071545444329866523243690007924500829687047040615505404219199487692447997677772492926444530731329548374058268597732936884369795332000722146358850527934206145628387811012356829337143737755355929930532658115656365242863724363802828303326469181116778016371876347868647030327276939678034434931246784416240883610882767796030287419799172758690696107493862692907838222681678107621046702844288450260107018794134678836471804728594891655125629241718700540235053451244264177106928316426775772779700159932836032049740101195220059051504032733839540643038027199762770356641544538014927800077858161735094724153783383167832893392920411056557949831431504868653576314957594052418441526841608696891805578031831696810444891681555791838567482594389278492296436598005312595347101414535494269419818663458716862375012630653564054108339044334743546903696917752588143493020135979370575256660183336884623695087905623978615806893594731273132633784414537046571543573144559001055000098907687597042901458803696161055968842057554350004884222309136261445708471663725179710093739788816390673107413558526551994490320568658277307298299020416401421546894940149693793743079074813329399786156424914640890361680991282576443003434589279894690594299016041665542764440640846407480891648704642019412654843566764947400669138013661691470357221134161927670554138994499977210964511664594634468958910412467321044586047231507024767754070460159811433241825523726505270239296649664336253224277998186205888376422871347067132093067641360433003497280935355790411211973255999925505725881370024150646093521527631968559394462983721007968392903486650028003094330874242231283002165080269287314893778962233652985999952878085200035912399191209747552363679691961762177615893465126715918184275027314339403973123913992683742979191100550083826373991410850320992898024894108330222778479825743998454748580776088500469382112474234622376135234139703896865280516570718356528089043975443373212144913617336057063284946980478355125874213065148313255710476805641123687742831654860453156511429708341916407641969104881489622422012597158408274639456223402819615765110406036264402173767444995455003147954109257971405968444261282322419819395913146506353652538020778114546703308209832462520821407730944967963740794242809756576790920931381258904889658252210120790008770528287351024181543647635981482050562812202117261621548503539738273543551190412546412647689046323679818897531004048511168583710166814843154236831352140580481145948657179734801422538931187654963941792054175760385524808901157043065884154308207570549096363963610031431610983153676031756869497574124314668555843668722208988564908422626201681389680772922772599250796729284681178780351708173187592435743299660160444295892538139118964392335237287869111805034895184548178274102077073469834068460317115508153912643397606146940266407748092371212905829982446198158158432136416912319622456853446611372369892645848264220435541799735085736686310270029219872331714118800441952233557491311540993467225009169181828022730016327446426891995585609304613452479038150283454044663180002778603205272460396795879860604497635261322069645436611747420510393313716148379620573643656712911218744242261155013407194869464503820875276129738329833083088842519896267927091402034839070971279783355092937654785586198067785274640252009557767515797652044142288366256228258176811383550006915757367933256692615448643801146345315244649219879074163227057861613613229253511222351565103865092994759549892723074208786229770367042394919547587082014003268606273888785514302396661869454057376566085901068121730555217340861885823178270752805048761795638572639503312422130515438975186201161682887464241186129456699902315441909494516647480294519725384018967470655933100455719304886705736222124007069597899967040799348855734699329198623884543536709270541060703936292178714438217254139616596358050372973765049048733732935059609747204352506443530036337835474840507116933739139526720221110272064974935698403014961628350273064154934550331357103285699916419599439377664083558347593793990851083575934375044627333380753799339337751296097648166233329917756184129859393849512250418106800706415225520586967001950664158138901075703906687177806561631098473683122724308168470344173990574114482487058818062255262331358273412589509086261897943932174267952496522969298942836211821768797736245608449936779396259852546785214332408588161856215131880365524090039026041679754679926466023300692729311102940646796403436158810257230638441264133806752985456861257572329871058032438968601343670297435468710733735191891664078318892748848299592656004033569653323811049730032452580176415838648764001355298863362293300129569415793088461569940499045830977364737932763025512980459789994862594795162263010256496841059896193301093549880623797122781551541155591146464327026014224980738840170888920320978979377140071425913555789788680997413753169728160373044050714090497947081092489820992645243963864002740979242520462568740951181328220454068344607744567328922038958571505452113061627457965477139130035562090886864829894064415572915182895529883880984592044729967434886111502089198285874213572681846975110838670523432951012770187391000234297877206124464091522840941174142268563591777283420009851102141837434086471860710456115508126417684010475792917332665639380245985122102442649588291171253707950758857001057131896476104303454073496879312271593317171019130903262731397563786277757979399713169527541920307853158823445427439836814077019480828796027568344664032465814906011399835551643602699200691940179224856805688755740433290609474990845983371242817195840222715790614347652754096980029946804018195909618851229544733419254632400002175487531226670459894528333820161452092414646046158127156560646430053565830581946882060227577084024434339148528366665504076920450431888386601131621663877497040275316355903896747414400973728626911510496462623384971702434870981083603071477278134273301437172708985455143403911247614320195836458235030173010389614373643748133318332552710411921492873578344808029581817505489449462358971688369463522181860081024701081394839094775245716663110604430480163559979647861649730875942298177330554162441776024650483902528046884763265064595619644914808787919752737707781370222276582618132028284906319748685353830786025365163607730847450105595457196763035290110008773949022096475977390665152083734306109729458513005258711119957875893041691834814119496402781658139009581914135216939938559204843956255128150879170895802043939172003547197301017959429806992600091366064199126981129099408613565708652047566899783987482378157530926431686378373086840546158319860247494617425372850099145366649179293496424256130815704831130535309155641235038105420722182846116360834746180599726998355130769274439001699897619534178512908378905853822380172569993279867820532171040590295613111958579890927571052995664019535065666359967045372514261805866889102758921485797268394711297255872877583534613722405482455928713836090874119342699306517792419743366928272351961233662588798798416568408088616538625714122215907185673098264392670000000851084705205670982578825677789493681440188903389186182320168690153023495661049817968303873314190533620442018408415300937408834214000381374791148237767284758615967449037328845243486118555024193166123596871773613928405474194558592418887741772711535559734708104882848887601756803534241957143243452190630276847804637205286412820629343078259812677699740336097568480084966516768232080700174899628002914038791432721429177849142380192893909055045395511719604864764432130413812671651123528393101268776177788456970889161712761389736293333761610371204565396522637690452025452648357098243141880726646321289254830573727790976735950756714461508590466572969160551489069936196892035672763085815141415326849895391450751415679974878463584526635350105974284515663328218624671359368983495556566906217755213488120474464257361170992809663432836827222630495303275693731856425583587667895874400980668741445195031420259240861617390471402552366415772834028156971093342463941202185028860755047540085683457601620787234998523857754944641356858655025164713112962364360505118554837779460432783087928199403020556376635434640893487412037387240335426178824904528677920408661303524204669342588700852586786505868374659366623311786620420353507783179301869800054251091125742143083317069724584341759493144694439036761626351690849696024154860351316219885036976168838172348005090183598751737734947345722549952121970793394225569870210767839228470434410627203754374554319070479450200581393940008343640971871954006764589792130758524282411833615036868782045005926913977219005094910720787193725515171622849542383012236066176662058268984213006268537391260053499791765746951507635445711273881053100179935402281971896960315775174594768992570285908288969964686400773400105498147613707503805376037286881717432014102565394760209118525308058560556959132312983627157961519295557714278560346273744857378346494522416484423442685191381548386610088061679790130002429561336075259106066005359723245569845418827877821322970056738153561311217592069470272716965213817272750967396182356118735933417522325244527442927634522736093448654588347724659123885841475002264671093858555851647279386440015300407924615765539428838539151643434469743990890213482418584011357264097371512678574903636963034047195991534869226717511260766591108482869611676202094241594076914130185075182051055813012915845826225115920128745511567589773329854598944127984139044870075537162471277253770270616077310371221366849383977909464891459350240129897482952851635986731858252542884664258435353884810335563125148096120568354735902736866575944785571125166433757797167824538738947763145868847115449127947800637989147960279070781702260853619808812096801155497104806233057228063050190963110453877239910566728469430344651055040910016365704435887063210638165713577727705788213185563629118720785685255643284208452376638932002069280490089939521856354432140784830855830321104448174241696348782705952618072633871293378097891406031891071264379118599170927098606899839159466973229203554860789548848280141803930269363046977993037754078043253161122947925957217153016408658475577995460158281744636714554498436806942492659692373057384966732859393958045334211406520891132849489252469002969360078959245151174533148699338653942088632981337504389403356621441141505165903354538203968276441531966857654795293724868333990836459901115058355021262054182009734822207963294194905923634853592628926878444487422973598525774897793834126788833965132012874589838221679654015890974128404175916446204558958558179834988469707890070983067529286613466825172728323752770107639636564425192404788946497164866338491670615596881037615883750033994911853733003525513712336957731579426796309117216676426242174691844850195781188281183863756231654623092327984626214308337632104387437217695539536636039470963241253218677874542297413610757378145111896071570263082597982969520285265728470736078328295089337785384099060630866454392070668226677307479201367697666832859575667747215694191553987012857273558699150161865984165197641679100130178309132636385328118026323597140688404312018981889718263674300895567730495373003881731086586196214144607961529060826189338716365568551792064710489630844535865548711392814825407915917929826458581820246407808584413941256080329076954813905359372774330361528158849312748743570128728669054206014945156319720084512275440064685355671005297926623910237638312007596866740396659402560564210326591220959113660407574337649266477806398626691712630749483861825700695972948969189269385014558812983869597492855898370591345794418187887553796412721071271623381538462918502119276126717863778687356165639168179934934980650560352962373360410096556404777156019409920126131801447861932420527021186564635642244560023275212813861493573165522913937750600781236099133810254988797135026871133596613889818312215784833987742854476416843916833875706157033243905054431932527429970361315507871004292151478851828394141480765583675566101035558962006046980609562667315459726623504882404409106003544885661894144919385513646951105510139014398787708992498887623793586239609300687542020056443985699217975919562378595037701365374919628151962565673073578728108423332042294900033304341659455102857759893296567065378819704527942546375924715647304169544001016618976700705393486720713722782748354087726928634339946884941106377437285191889050832743798266104680125509454571141467937696004735234248182602985091145099784427726118045427535850576845768398517478643151730888651374197997685131450902694949697433394483874687344478023238386089658040853542508185585027050901385384648995548195988097032795554470615175607798265871280637198518606463978310997399279376777989483508567918308076073445001530474976496402332528899056545675946576771521918226869109182082989336386552798948214912286021792461530165807072949649612007722498968786120068726580739513342074569910020076916381198910063159307524398810223575378055208219042815839818749543525577021041641473274731719562571154227221830952487950795470135674922345923783699631071826952984089382815608270346624909071164584680473767523294977654056894690147345758178804725001989303492518024265965238913461805526589625718924013468842857336917013435430953016530763137102178644954377540817159179911572633933257907686845580759406525511632160593357935521066988093889314694917215269026038616356338358745405817379279250578135922559724016699947072025622574911470516598441842585602868031040355821087673360757747374703967069101384672311826110371656808026439460042111133611374620920003738605988278321167744999113864549343223990632618779164864642229824192263709944975288760029041426918210221506773430245965328552015332675962706445028845436021199711272400114416188670122155700526379980451628361624859002499574702893910143562461882383724817715441931095836092788864531672496247641577996138540575014425663041000361303574887192833440503186644037195796440336836504655744472897744201594918195800152780863226875943360811510299146355002988007730270570801929282436129205455683423281882958591539043621355968943671159401096528140986091907413460673372309643316278282786309900709501668491959130338635962581226246007906211864700816336789324984967890252716483036596596238172499158465084625070786695076345161549214145381343402877923133167992453482774022652639609986132240948687701423020574314489737310631186121403574380400815624675666824012840587893768827500835352230221017604174784032415059374987071320411576623214161897828538983246999551132282722863269524259386548222129219945600811335944754887540757147417323378259346890899110053589191319679515585309412259206187086978964574394898907094044251809294813678060816386637302993613517267331409220124056966375449758313747374223334371525792166084234667433378000314159139600219886873969291755093308664504775782211015603644056587782923045937529208330357789449153952045457673111086940491034701813852840843306657006350430322575748228257708352260751472945930552954613349652547650037036319564055284162324602357610782597965866939946609818340575425859350233332761122820439220306286549006450155057836500799682688573742360800849068848167551398557043431592746880316353698842613197620750857922420555672673822958925635455509643521264122554412270302211028532330213936814914945786329918855394319266088615741424087903169788771615238739657728252927014228387327224318404660589404834088252819783460713283659343332385249403328005342820067717854744071763700887279045924466235280550747304641204836155331086094780503446566067224667047798411562428315434243342885846554634565676281879801146405562854579911357678804453289521893270185213870814412935173766335266510560923432576430072411661332268696281353310021161629429954863620111278257136189196363254733866773345971210678313730545449379148479291423154456091252979196178398333411763125848506542933938835314386509950640816341912664429522991596496805836211404011748081594543586492868735779369649650018089586335495868010716964712732427559271066413138660936112512973398102359790330976697050267787993681821367242794212229479399483376452401349613041827932099583008728059163174688740885710762621259462678896848044597329546298685326717845596732967544357327129869363336385787077921786011484596567680164731005967259039262058920729529465492761022666658555376191914514595570803955018409948911689549855878728925592032520485203986785193758299795938646534157585237066319135596655063036424399313688507341665370483730180126683165309185655275998268981864843706375838345299845094236581318701635383334475830730501535645247403339812343594911380123327343197630230811238368271354614801489758276996349104461467840445324461830624602007645566409140542189065985724228391164056896334534318378626631255838959289750777527361079274907021183214549052065201249801493667450111247788801372878079382105972848861958694235160508412927422185334131229571466264055706419334587470991567247243070934047284354672364215885398717374220865127051288798970089787620374677416082939170552245691468291260119918275076240513838391111949355210453127453328214184358691104888533346348961309478919731485499512137967810582790414224731516219269715415328813666488166128059370430479169404937202429544817427227690940208984050474709304111732638942499881472486311758853136140411725604061411999957135934616751272796043438871014203407583812731356885022152079546912250545543428233888117440533918938083838698429684973803554901726002568629563761871472385180037068303642053309518913069198239446963365768639230771674272176498036352696828095902964490371313031440515366123418602764212140565014075254265607874130538418213959239703262304151627808005207115489050175825085428116198552348596938428201143880294390400558250276606735020676371553446713096522391298601667298431902622140546649239456137762285218720731595874021276003957747547961223193154650283301915054617870883403526710309682219353924661569642379956472342502560994738911632949697573358326870253264204261011370870555888141073594896066403794317297057810873398826468125321159890613349261850203689159779490398464760133413508295718018187967433332258195924103025521667365758612189144349528240269182464836480428060273776162797557240795614293848629296029962453503817811061464592938776646255518218060639105347267817451573765505414793141289216845471305306357064189354164299532507415617633676944609456511574043749049657845790252735789105825346694051860883691850151419967899026848368430377644171159754000951698701191808180728746232131801294645704542231491946064237109271192545454433231412606864610332377269826636622677712040234350362335913899092178836644128640734180254848373835607791835188078924000816831546387046530221239508439365205735714355206950813849974555411704244028991894211873412826515542689247815694108361035687433322461190699339483086330208679454170056006187100087154083802078756049157150701693358669813594650166260210985938703178583248494200519079693697465836734422630598917745639679852092575408116368796103420353663653811803425949882863005771675533140251831786407446462555739347733658497172600018092149587780795808743740123580453119861588883945791412167061566123490239122857651263459069010731225020902704605606867313262737193908372561846382685209618463118652086188805658492919491229491882024607775879185973237250515790181572480705901033266707053993340643178042089587720509369311330772843814068382006925809574227727331557593516409780241899945958485426759277427735908977146244070714468507003892868252563357124915305718591094235529528594470577937284762956377351067696501725252105628293800549749222244358127596984106342809273151095015095147978705742481399443117062855982673079084750539871772666060122336824927727531856210416821504951746097673675168078165101819475156290712330527816334059708794724405487338408893355048707884059766565251689339100790603671609018834400482175119740232511847573588834780814147372020457189547566768753893139391852981172684953533674949285609520216588705011686124733112249604256623182400690235111082374582734772321000449729934398700743717942510808940643689887608761587825440540465790567949424941451717330826166530708332374827987740365473601648678381240356921745127140582721635622521407870984240172122958052782520492550531674735457355606165995688144487927155414916988762333762104320471525118115906855331066013863544230394340287605863769985291611667550920572616081120342131269759818130940859033009557613618305844801742821426810088737583707118587423684164988954841494411092292442412839244581454651237191011284195620838598661226296297381165258051038639680872018632468204344809929748468397960804533766669605317503332165464430786959052308891540444640350797500946765712829924249848133179023512702254223840035882498193051363559244578856300913745429359600149991617662468191092751414767921622142653433283913061924431940575672047620061702154187063049083020568967911133281184020547065245031756706775089694070298902013841614935724756202548311892086870942740137156772779141421622997929298425634431828172808832068421418768206910729184500629480720045104017381011707436357785737898977928115123572160208405897907792369874242906550571670371167507542586909785403190981825728366386722093057310424283985748908568972832133507155308843499357312116991447721587497899517556666379889105922190281196476892361427660101323012106046831563055800324066125674913278554803887270180909047763175029162501647054788922781440942006745475271003989895243526634824523614834261398944328753582115824147298606877502419405476653327491189948611547912605109754318718857880145516424077359407796792062701144361018728727513516516139510895482762734458497860138942589877412809912124796946202045008294336689062018171396887991978363944784092208358297055262478090854403863499998008266799028403404674330796699821016224779354110405535974015482556758761962821979528900174138871810982725018669497210746880997235914212983631725990822245067251273486203129967137833423867052338006842374062912340170790391790758776961184987087050804743900580504754544983286674514252027008497381486592828612220943618348857026335180975205689455150560049782281394222551111186778506829352489477227591069344894878834246253842515155839884795855387003933182797296080897999852552846252681677079380971345161421029642446009469373576656417656898683541485284568371068150196445352558763415666029451638575767579061934264454931174110556540019895964036325265930282375589064674382723890945328154198386649000887168414378630053575881786337144047799529128851606518066307034698974961622929984163466815335514438400981844992269769323665894438309150479164083640255623899052050481168795185008719227661095951195858603375412630467173075036237839040179065491957142114658640541242719325743312037795494313381524871369718626513330032684341494348242146042723167283965758955877032857143678397708275504605057711273210673587603184238882707295909058660588457788394030826888712694109170973020985971336357262360933509035852015773078590653166577619183708783199611121156240809190123653618746176725350708993458664125420480474803238873252876147533294429946228094743241541643165171532639550623150470781711181218951034225724546633351999153539229042361386519907951716080223932372309049203615040717335071928072544440658100128566609430151866067936834576839759079150483086292695268987056828198614121315329838450026018136631507725759218462637398756432342611021723429455730287416390524127606166402096070444726327802409945206961321591419178607230546371316215348045125059945093474837452839134326650078444651333848244434039653231173975948620554793583698901485828114219580990080784376041359048159384115624086973607636700324196572059006063559131359380506201079850894743197410604018659954656580029130199069330130768423182488757190468304179062082998722671868827647715777907378217021778586694938991996057146990179782833886762057006174932520166060450790060397715924135537936838212860523862787494014553127631624805360876430258673334091870767208403995359804273009163730551601670564981198327912339975844057637831818696421659739662685109547391362014477285421658217471824227997959976836946535953902393106404988485251501497793017727747179511020346035132850804280303447289184929701454840494954452609805954660006532958526519087083387655091397810449857765572448276609284655682893913268213573156596487831311856060266032117147873136310623230201834070046057494694065982532796453705356644324832106016794500532596406331666696163071770836954388107190920902352697682932954155276960354246303080585573287766122679132731166854410101461858032954889372500598791850468531040786462596938354403387796352700298730167800297400107518487041534426293100325784867359459411343509428502214609632579892760415505118680049493089897037300777263449416387897616031278868406125478443140761139947109648586985974575875347685105052386130125824671355884513898804129776713201359804000685424659693542405842685224354743570294709022819301255269099993687598762765451963950245627543980860961484298489795925864540722320476864366434474422252553685560631608344720888903894973685989701255466844537096420554629199940767318397872249469193628582115994192686806725263543614230207946752000266622833929550679054242232263211746830990192108114238954815423890418360013538852561636212037163883428942441434311502866071919039542769760372992309708901887133967127168598469576026424324624219849355202842483767668733870398857457236929904903216371471970631333460699221571855053852046585346581149966957311535495692698800397003066164027329846918240743251437954493353710756874606087087853060524328776582681281676933335113672740839545432527165131172410470097690197807682179889881723875270284091607788208766920920406109334342746857065863569634030052513809382746050134446011429338171576324699116089161127400028951448340793881150325754395467669328167208840184646223954383899274639864174294427069996936510111458558014994717049051486868262229201957961390173152316278164439368667906254407355664904594553910761246332312075715525449808768030610323018353851877787215340473662078697992546444508069808651180044510299102009588499880819148525293371305739461993431652246315241140696950261343745510612378949783410450241806835684627924357361033364894755363888633718572701647255913810552370462151211692860531558184267560402318317195351630371942246706425083888378438133274391892085997762159380411018307955821094893412873869022364350171054248883692574689337916045590682079781547209573199019446989162462072091430656895630340071722203198493948574864698931797604323418517550161943962781719892591618425001172432780583150853131505878418566087010882568241250776437334220329651630740083483196845149930167614418728507188239006967144341413003350838617193303133636909576635971577472145129361590668389350077762358384852822105079055051367718456884752581905875512610334986573745720156668956631065898524900160331397741277152925588560341931116760493187965637066530382046018234530659489446559493070346326340303241557411807911139563118408560979284472291679372210353188794063783548381845100973838181226579371537309896411647359871381358534449116872113146080338253509156334500997401378321546399064076669453784547882554291769725047769864252108719795792790317970001136931312798486776464570864595364406397125514920053394669804983955145539682120029900874229391833649866916577057877122959229039209623300291801406102240422355966164025036076487064034288373352730827751536432882894811274332289328141525814428150728573523008553753814823393122248251971583535993411513006602393803794474195509299594692852024130763761023273598796509864555703758703961857434421673649430317860506883100683614293852221041528548611020311029661488736109885993006681770057863006657009311740326654807421425801689446698613174701588463162647349972723849176360268563058288513112180088315704955684492212299879441542288849512643724123488820735179943782364980182974033873696086040392158054230199592398658103383301079285696892412557691996584557993340260396441353300920994900423642125285233196236411473704569416498871131216064985674982895772544149425059759258360924804462425707383057992175534829802303529669392473863500422727696445296070620034783488664776044040420622245868562772363025612144928473148625394099467035727066276405520019537552365706613140615947578023109645265469581335368314257637543807431400820069805993057538265724574046049538845507406501780723489312926179927837316471882803801115402536649925230440110701722467220463944485722310767754078871326069154608913098891767765837695075358966886551203638517615169575941232887035323288450098406372433903324696520893545437086338808085183274795103587791013725411415899070051771539677530697077404123741570402393064458704118526202957726604840924333022353996336305413674763101279427988107310896818644205933984217032343246409623658171481402292699429924315137669412972865236763465199216819361664267364969943154172041507252493266916181366855675741905337049509421584784135124659341080795349777021155228997108626246187571409666337081478633882962395488915496114258514882830297048124438146864800850461495746921070062524847837148057191351476079706831096677700008617487967263478570407348769024714136795340920232325478898407856442330233016688407372012791507406191379868023338315521121809862793318742477828607644861680397554508054580295357949350116687445868240748212911813820740797816128233473751698684477548347356270949268037322902513139087646373960462514356185644074267879648451734697887817781255728787696644812872617589279803115574866249470532310817624696071110623076517396376560466926860443638641356363181811932852094177385005184871613111878632089354311908474995337617014253852514497019423112279354585399384708836853752480539486570381583355271361434869975270833590678099678707020516719904294018018341378346286858120332557251537496076779516553340684031835311596312192809249027477994924142123763969913501415099600717761947964676077222311817133481984332165230310511257082062300387782749793585530037765508814931141023134588343259340133859133930263027827473267470017207796991223528287514113978958632146806041304951562626041735974199348517585787767285144239391186442903883160089453061676484939154217800851417894197579890930848590666320962110403767799399732984789998143881192144213528882096516088342975977652515792336051156131503314959569293259751454274283900567293212621364513895411491807068726930609373220782568112331995399746119961338638388602430793376158486772553546801564151859699853500770042834044720174111700585294841349259710921379423157807148917934945420355230393082205970545537329471229520634936175220779777261924347319432724705330472444888109553875348350732004808681878356303336669182876026058621082378286564623897883530929637123910686649866228725660358812466097437403144175757996202459740611700626253993602598784200794963423784136142199441008154990339330988646501796902675209610912900861866079261657517249738087135252107218517352546652231003700654327093041176562615346004706763330618008673608079942804429826292619723912396919945978420469361505854821768124814715532753215557879361345022002456907889986124638917180317152913359370043202818174740416645176539139444492751750502593594491694148316430637402884298143006986748838750831789785525749504931385868518831447092192125336013503981129804998047591849321093520924706717830612867755599519211997945865743857117450029074629146769686181281338069580433737918739596715952957639343338847823769975195512623446702012790373439015704394012598876644414785577195640074887565334793939902629051249854040568068256437157251247515286557416020677551561871185873177580615527582013266410591455970553310843686796561966716118922448092026067417366100700940155015788247957166372472994066073214335510944714727558386144336122429268170755551080215846384828012077059303772401512957133387098014449571379223757484755705393602330534097044683572350148322912870188746917351589505869843238447806636728530737833789740747536340523782499633236610630733215329526124921353415444841703701127352121239096280067523831932930306622170058618244366834600956578317093783273235157214897549222896666750230810856543114210431366694049787678541574648804598534255996836473123469499964295086129454870929074558737864130780383288797573507884648937306404681267923536900506149172676153339903850732350621154791221265229708107617348608573534033212871361830093271560446391275731869038318996383974739274523897106856601835638597585437269736781678698371461138242388049020896111061935640274095711633517130322179119520558491304534317785564512531268726224275870595728101384149706460211771990669444931789323388338058810041777422509357934472609213147147839481748612664574331556828177507184503086000815928494989652821097110476554722288619675273473030035444970327010388736928083500648832531730955739566426668491925263646741352053454748125689407591274121699844303433949125243791509484143535800896956820643104848651210444297591077399306811876486172099736372226420342140798252368605966032600063974868749196221465028235988903148864885346643676413101211000080552028414945902332577002380574192514170625963100559559632120804061382177820859682573686273210699844649542751003939073707935437999433143281377714900835353159393033983768134656859210900285343815698771784262258007981093580058812634992902262658447947590944333456265253091305411949401838361790439511620777929052872277079496043664805488304316416912961018342118494112968420100625593174182140968319507210721855473333213599062070728273252170502812721415696779793435133685173577339036728193140265843986886144488692119897827863753232109621660399621339404631549163831311022281825031401067211541996478430445504456654189587557951029847729956231865195987299243421911643936328658095242478144020465265587121688478941550481563720485839024213815737642539152354258699297220509979661869129840841609461966321530344923220321412945503550340960279951477890682034896633567727456441210393344211183573513511075112278442653698691125073970976648581542708235987215169214549106157965142708224411758280145284227045654543372185042813243591849947171194536728324200398488051146826141236738381160386282098758245926811533727249456142784116038303579929961903887876873125236163783307245340520336264563242640697365638100340538289560005633976955757468641886227230206944621467187599034562373559118978610123637162558606901505402910116169087461841636877407953023440284922662311114215233516749793454616140663036761754342887492964748021480417098721936901907039971112593032392408769790396991643971343573703498360421065489268259756618857075778739502038538047019909331951454561127920825858864129490295910971058458233646606611072098334753738149965235481675126614482443095673100012585843601285480940429304177894572109733339928643105279845745324330062271390940385646420004578494458141911770319865605167997781922813074085168963177517931723421667689238605736223674834952760412917137004478640335473707141323728066462621341356158273356410319319034242034836746373383890234412490402649976786816342189757732987370161312118062423501905434983654652427302205325834873084158471547308035842760349856473430783287034602096705330581577586393448139284290557147599707546837025144753125356308541123428787815518544105445047866819099124141719836400206826572629706134919156093822813643698061375981658643195818691392668919851092083020923254676643065786340410732579620915447805732377304732792269064848826438392536947801015363582518738716003365525343609285068782322462118002111574449611660626440434124273387131068698104182841298136412286767738480816983471509070019793906966120286552956899326027491977775095338870945626319513893212637896398619780134277177396990597435562272447690442535294790141335707605709615570617511387972643758140431099307122262003497723191994908989281568260781677811868921420011096064501857941821480022265896690329053460014877794328241403940153357770677053872282292453732356952760031576035383924686334931795391948138041145817737605863830036991213913616050806688832641056380008940491327974672934016144799260756752906911422382278163511708988372498020035023474646512794128966952780230403080961305506382472247898346898990356524132339584226942315577901540054757067235571268761258167528259988973711651405035139147469430202952647206935707271107850936258201299261540766459475233883963371132395865567828138310289973789010099996120425376705541422082026896137986941094828045116584415727267197884920301490923485179116175502597130735710884646279069689414215535910223202141467896193820507912866856403068231179306035790200198136638841580219871272491259746021128049328070790019678839241724932505061076992342669210151684557596234829745820698209237972821816270102482942267067195503990976819583020043283656693296620394250926796036169764838063973217336653034126619288476792729946945661904677977903653086805870306547218446328046350857569217657207336979163831020614019206732075807672901926203884917086792350545427185101138892305662681847073801994564824791190016095983120649534476419695986976406682093919670930400957441419009218707854975632840124691667168239309423486055363451788970494907281451815744754180971225269423292872109144808796204415437203751595824106165580172371440622011006531735485449892668175387874625961592756627755829284908346374155486337842658611370727071608482297356552223603811823986802837981688494845669770873905412922695202184596068164169653119182460063221164649552934449304409435765484418474780674507379319685932161030299598137979540707934382913992371047915094498101501510964900513541225541158166786419773201216585870104825837272324839203304604546405533330754051597090640838841280024166100165410197924843856778273190072642623972841997581519870714868226434898099027718975125218757830358431072221404268864156320895290777642840671510975273561468694514678748831132058510135223929975341759209997088044150895065348301261767401381523673608152884899164053705266200205733987453313604820961180526094281246012937557310911774658137043184937987246622626179029733277388938148971761507961705831144421326330490939749568821886669308357235378872383018965676388478331891864242450481353808682155042026211463674147707767581331783602477812666225193206838023212503154728495474796699997590020434545277272102120908465371870098402489763370071015022155166859897138008532865000209868751947737185611782782247645013103611111550966531996597770037565855009434100679936699254978804448554512483423736920710296623640152777304059737341086520096091451489225288560647918844350702315089470688418790861043824240067440975632091146554062052362724356830923076121560146958556838948519535851174175281124265704256538689020793233240659623350153617756308304842818543839749242349661624656584935222503695298927934863666164071187987491719680033830104786608180349546764274671766213698547684433780951308640385858486943350134824692006082742533328928104476187165002153046960937430283932315811033025860818131123484636991863113031121565199484060125605290954819080209933866892988774435841664770480854546439306595636361905817907278205452333342904248937905121611645658749175600362145906078355510790069859291966332555057135608279896366568185738296173082649252659004229400936603821565613374664503989720181632945014802712881413092520568464171823615196004609916543900325331174098290911950751849640424676321494777439795296403102067628712737829033011497715262062608049506476907399774798290411456610053068408821332915194951280904344809027888852065100208740852548970902853818394732408315961650049785296753930119694761613997247556612971266327125308773746462364287985114930839060479805508403892794755391355882014785993698272185881814842212541156059409846329817982970115691762514582077985784125228488820833685474581982601591550626472982328659689278333119382091946581673420954152530924993614628869581683395740305112713813805439666667293794524100996784579763067564305408413516755194505083446584303049755997462261914777189342799404479114100238376227559689892162526547255590789053962018701065319671718643928420987896214014886866661966570071107279848876903159573338694043450613261256375342565004848070690375423257890126544300462025142355665239312582189066524940513329762448950713809945843477456713616238799265858209008679104838618753269277280326648820048717892596623258614646152503086365956405580403877232220134433451375791778468525509084561534243513070071503782686946791081933193005206055038888975325294383931308317590120101524211081661077614927289008903092438499402438209166774310025759358529266649326346970577164025880115336203023998096066654140560562143452444628939939205373079064377720709716004079884663493533177607686607914909120299559547427775756736857358953647307681865507091492560016123434137995939590479800848089825132378616202930211266288331756560515334183317281015068775618640687901158373634439282917430228085621451668714054418295536764236214764891347491523856051835465037711514520248288780548794977243005224108355919882542855249419751356617064213117404765340418072180136000609953995451441438490798801419797387936665303040205276987504648887357337568889259059116935659325710579912719857045809675137085147387773582323194538893219823155006598164055399813890775026614684638081224422594669562994567501949047800849074453871707805326657211720819044657423626899973018256585056295852926100981019166279136659122503924770649663342167843210203801192706377638366177304014041176184367768569971183161778444155802921819301661673357210682353015875700357118387195290839791655634375182585879374036996789518339539434967624297331341047369389556430271867137006393865820121884600691296098297106150837168056425234252079602519670269407735990403466415616747147653470413748479957454516092839569287856842835784863202132286344680760567868542723290863371296560640403084739357459676048092788394678359045688277929827017271065242273786352077571415196632436385979692456817079229027256686989861201867077698321750978334632524178768618914451602294372245706607111244774262424212718234171162604502676348074189836358153646312045239737866955201712135641214570245714476670888067107865340411215455564188464549315045849767976959690473944828902318771249875298678526807248857669276109112948616088459819166797752994044666714551025701153766308124190431477323524887542426674138113638618087591125242139048216678782245148310849869993670410326763861005309399902642325246849600957400276980315165506324525399191519151217920801717413009096431892714210399394840128634136241497717736770586758726300415979989054752934422364658945456021156931851100842729671941107344874566490358742315740079038686126012013201726125091054549384527621635030286933149976311559888199278847351165541650878650082367776231628387888891216579881342154173881812345566744643554884980759181300109946124339621483273468667338399451208799592016058247702211336851033857220359154331592896703006230053073721277283731101089208224899691031916910261187123599520869994093518105353597418038201993620629900862064320956192726610225391210842459447296846754102671350255186356078684718256745024228819957252333943461513831005002874448783534298336313325778698442310087733996298868900415312698618651195017610137225812183511360092656924424979378663957364783244176785783934136624629333966327052243247205152206057284469506486111999508082773325870801004858928722291872024553443734693672785923842310726850079276441533964458384051055888291695343496376328784832978232132987052900894076814888440957758706946909376603415754093692057744677743206239917968631474373880313345545287121844587449016360068807376072867774392792942892376723339116315816332446746178034700269279922620703857604614132979987897582463911100409211223179615210961122904104462829688073407883450437679642155123291524795414102049342484784057735657095598953366388175831524390680774281530972959669027969633641611935047216483899487922912181143621082213960860401479249446290987235454878414254255863614483563861614476908104982839235736111451713042741824492657496151106793364882292165841340413570193012441497610654188681654408718247837248246655390127882590879206902883131088435672242264520866738573616793448766929419775553460611520197534604028521986519027741365058696095624560600524761835094605363700102765691576722213107758282195580808067164727190144098462614521331204194568011943905560431142472683129886626768645857511934739104890307843172200038424172436919239417259998068310120709196538365683370872311307801106009589879243186488195815022771907599251538884048419049144061412655441877460819575264965905983742048723757749807097839200631497623601771182371378158885187468704571702046018353932703615583808154988513896682851299696484915653515052253492482382188789703345211204650353135672638793786323502007614316703164324895527354661578136882391908700630876422699810795213125482417061532185557102922893352540637976953446067642693517104561731683002478970678335763737343749991331418337669675511263856186304443432128009796882981981914645825503551007142364675583229417284518533077382266891413755963714284049547901960102646311760495655517689399853879531641238073345895775836020522624254241987005724557477333456924324350345047407942512620359696116684888177216409651837513924011103797858270639037642990306522813693767065287978645184911392609428050194118024980460225647689879408115729944822643153133098121078135093217867767792831528187217737724782458694176847517123580380445053804156607049164315752262130390572185217726524990395596862510022745794543986183286415401094163870293480420437960193097167235579954105723603459424752994695952958275688786473159617225191916469356186131067152523032584188015302391556827782852361758465304273138690599485548251312935385443891875279341632557832398069684486563484350298787185394791729750820624982978694126698752317476272224194226007251386593254684940622701574996493155508157183423153440232274437325078872068246129163846295097710460765944101268888330579938916326153645016765708650275207526800655323303679880246080969712817397239802862339738009802050388667373355661937620914085778527159393127335842631901810505097419915886654377209436042983983944878530046153209818983053903178624590210358298993405195393977548057359785917887118066841573760819233780878706209870084190413023388227201803790729011799681435535156449008124032683961597215203784920567066673536166808079060702751173853038615587673833254712853058084393606066199426798115016326057855787349052036295000023484863273784129343921833039715775529079386653296028950081363482123951616857842921003574381077477161210820939751200355781037845396264631619958734841776589464593772454639698037840618467843311744310613308149999043232303224711983373628205083501808762973316303203789892092311478241510125204484066687401646001108627629191912862874977462374407163322943100687983192864394891967361514539990603846789174176735201117952426496167797942643165690556137865291605824156353976641277969892158454028587505429333311475783584478950124540695727861216660816392911250511950478760498358158632372937029762614223212887167197653193796463411697071943525405109605096496520860017277010090418997250068414508853454911878195852797413268917226453719264765852644441052461062580410515064823657548155556500426863177420758493767809328521294381540499546887885198780768783305344117974511881338056324404596893624933478173201297499585082540280759997357513228062724616363950316017950551702292742501816404383107508248823480624662909072675517126022812648134989240543890577729002322813536975253210950586864095844997933708579780220493066481030132209658952844222237706936297936400386816519746534701886873146927852296612678766759365411484979092346423578739761703597944152573300782909457606007826309085580342255363312638415289643107507842544692018259727447047065513242623935569040294082258736913890105827778711265510894141663130240253117851796264923323138520507293911280106250616505980006503463600940480609144894957291257911479720544826909788765369799773007748533479423494813699186873354428316068250640501786441478068668923548641121433515805076117045616446996331840987063706492110593458005569294334082737436471575586369099435677544699164313202016506706806568290742352179600717206467216256295367737073411723679635346037339326738948040866317287634414561253513371589332786961418911812990801280800916052696771669957979536263321105774490320869102752775768676588917468580998701471783147307233650071965109879617166711710411624687465387200083582690511338904189296025119906274516894929688243512029791799336604221969330524471991950752480347592669130348213455051044086910923736392974311566475184781723017310000700597432154426662430102946693825650177662825133903790334900183177958298859377044908738730252351087978044010899693865230485593104712123423548234078598284504308035780835217473285046034945132918868240106180923086487844032713740344143575175877525939366525810228484624504611548461391113595437063846345845539315359861468473237142677602511914664365004968506069819240623330157669468950583729153309033922690912888280580473581471250048666029240790040465646695798351490832087038975255604980058543418299170684701679585208805080847732530258386779411933444451542050715857862270426136565423467083889404490815083331354214820184270291760397782819448148168094470681988791528735842835656530477006569498609257796257954727247740111311992711183299926340768262490936591451087435881854020861501780813376028332129812811901987436372171823049792321934566309341479727373105146394645988342901231968339185554514508627048987739797850957769304912073057290027179883482301560337014699177649277180191994471165942736952467035199643930894849810479612433784244339738947541270951118161630812055524483023820574184509764022649925046275792491581202000329338658507092778133503515552868239232198638272454970904535870811931801406874472296063764102752607213385547972855687973970152091550410551547902060936552315451604952843473472536651439445749668635643318695039088421090499695418111167998527592312010479263635289408821090308954938339236509369811405001651633432794377500943294262642774020555793706571432568831708774847979095485209717704160609713682155024047803040513812924350895433106161472002003059559940048420866410110093534653659529144827672986560328531779712539783833181555151876610281239160797127494267634991683260315003099239730598656176118972922957076118215994598868761208851514621339215020646200498909062388274970192175130648459503853346040419307830307804482090311764551483602070347530684998467347097003888491708869507892205020063532226020990100467567391083839908890546327578069497537346670765977376243616928140240459112761312566679398237210670134657193480507177954275153435264888266739852978221181986243485707401302646002236060968885925659757182426506172467344332909677761411811834208271507983650864065362326417924336959958205484917454090664326489111379910928081268841811074574642056096711399545371906609152532401479571458702291917331714259543060251938927819890309296914414379103121275733857863314436784546977325927518033211917443116534504194951344893455055353917226089373619471252414404097445672250557961052556148859753064682038756445102744175699905269433998811607547848729012621023944291078668539906634322817942372917737703431166575925744603821415542497918846391282609778672152193586474304462469585563411319124173780471245400996282870160098887082392342635536309081808516726521397203461303406067792605176734560977368645779875833710917367194150241334663261878510684226703523293045694088099600751552514699804506966015075422261238550211698815930692728820401103515428293127825113422712891334716014674919308568958414126472929222301069377762824872452846177625937638174293712944918456552352272968393846162318569750924619782807311321336815654875648209760769890031579799615321104345852336346913303281617911123151599198019495270887070225725260026636925221585062472854837434161146190845120074668613132192758659422195595235260139773321001142102478793573965353910053907562421493525898566110102537994100190730940578155525509428299971982397761388479199536493005525093207374618647830193952024633399381469221852257945490916423340416372878472368846309656805633844041882149523968518947380810111141098231500895131393168070147214781630207245001619384557567494607334689006315678904343649212474961820990216354384634111475560661809813770596316998306500734455749131637600553084978509296594124624434522043547047315677396952537317987688241856833676828788590429163775839749492398472803407055325349497334274851598107620967457383914551225170260641867795993526092055136244148733632793339512776841912085813944899917097787550111935386204280318128184011686031996748318260822101223399260590145884358725654431460437110603711419688925813725217740416096428285868995576423363117406880826855505000864309058766344888153368944503721536888391250289201605413106836469866584939919924333708234543050780160096436261416933517070749288390884218601405881255214021502317536678412817268754458869473792309829358759009311278891267408382675022189753387604554816795244679391737537017717930810476425142972024236560593286098077396912917107096296726205517076431714380605757259061553197104595914568250733477080304871695581885101944892846892166078405807456807623167345243113584511272164858883578215525064039716558500242422802319544200357304704754962786369231358037472638107699021186657509602211926443906771240979147427064901319879431383426024967341831081179873537529807106369231139442625679863587553733197169520587777226435858020919185865326890671101526594602527422512723793866471536965461127292853235355118537943569123809868187468735617964328633910532877939123692277252599154281612240953994950738948513386034644466873356481796784833832475931520258971093951867902323829112497267125191245328861118025715293257895546955291751652751567541402530325105304051994025403221411016062320888764033584672946844332898596175359022433870250480231731417416892673510516447374399899522964238900505533028890468997507710363249736926895901244801059698087411990250463967229729871771199239756109739245303677155776516365516554749662802696041865345164555020981681096907269609763487026287949779866573227368351389449821923505911085537196284287233596475680227471815785636143571626641931395156870947530572253087351428956052578706559484516244408897153193144751045078945154900456530334455287435265461588636777172992204174246364119923525773727090775142321819920444479876206243170686001652914894447037553739578981030901090598295292299238633037973504958424164840153678093662426279223797335547357346027563404131319193873533274280161422687397848707568900771002041770252042152770265256283663079259638573738499523043019640137067428252400294664297394540426888506408779857135966519997913638889885636670870261299165207183940778810535180545450880252942153096577877100020129131113963241134233576296053971256145976764867693777944115704046756489196943107401826479933126077799129054819178189177338031509758455014629141963521726152794130689130944854682854470879830655784763176355320203722365218474417918332964785977786498981047119858077310351311291709596346049677419198597039768965859855064880245503940260828516403697480923854537356396148544899099520620661888510249017461187995033541435664192208030985503935320963864202217049866071519869269629690667823826129910389695306522957438935814569400630604614450313008719013363831873412274803376012176885013576580677174061700029278416541213231062854284662078423101707547118721457323500432644200089461801346637895174003842239795684515286670760886958191171507054792140528620096813891523253242246252315746212616585704719247920383711002354899813866613045394549344074324511110117145693187101211706800676002432803197267418502332273886177054090579689737433474897023015631105582392270299076114202300778168349627598571479819335101884635467420184327889500625745845242943241690612255619869027253467361272721602177423170913135073831205440757832202350287882871620659827810782807838331550186880357487862845650278605288843773973884177853513331278334721915295660995909154014018920050677700853769830155369650131770053071731160538176614681183254313498473554117894741477339832983505942899715606615575076424488932966564962201200428709359384701980215624599420748352291016818076529658565849700262204196889127187562721939478274902703295929096748784863579298174738868928374095596397847668437136662348801626189809033810530290446124355332369538646040058784462228102889229697450119323572204100472794613943151249252863020637059943075714672879199211857152235879445183756846331970953156384866646448155998643482996229083860634821670927278268490287033116083449646471491040084418530358182259145739679116786268651162931205651181157100576782581481560401052670672754819011783891732727975447674917947943698389518056113082050611893189117509042788826260125834174779273009417649375921742064865984119221991609998334150539814787767401061420062004142408444856212999361384223387983549543069658495489777373132274044397411336878303861328357622842819143057779778338122867048267682261175032955454082784909845025432945081688825116178161298201772622703165913290147249073612920003516255528767001648449801144954057997238723045310370029792517178292158801726000159727539266855845574464600601969739628681671461647183934038662099212102865347952730544724698818978628261324822349193778161359795347587238597374238722191004462917135153612494447375612636949979391020435260676565396061910860575785250966964482028148885049028023880523961167955976551723500807575392040506844624786878634287916167672021079847463173541506254158543948516107312265828126983103866523729608799213562503028922855336082908355333580498588625216019547206048115724029179613665828455996814045670611953380277173320008935734561943799616827697318667185516145765051009649514572785539405404360618421221522553996635787347655170272708286110656197346689226139937396571409010263292262542000389309236611047248004120108060367733952999075407165906271079544941134147774032110991379880322372003801360592139778180415844797158845612919526571139863516219101993954021273919501677858231904640477132702243398002730383714830673967205201562139445473503287157106647923323351388466688212739218987491500756687451960179455139144754365003505934066641366478157936873222144947047634780567825210349663932871780995096231939031044614731088059412618330607298652213373293302667010810415842999645991277389890136979950435538733378148224181206928240326250005543339559586869842816993049302404965295605674679165111212524878772451579843714682273454126519492423883318693520044408862403298508637706249501302926803817107966971084653836371509922721004650304697105434993934378700501204554485562481915201697880843141040213345600991613964632740424564423457271497388975800434341794119187944316208267088588018424766071861659904206532173333866484323849250231322758338909235005560904539711717874354132810154375512636614809466389702542062185505790123476774073331196967129672824923809958068477234094316844295259869649183022334008257872758869921802873608107374740171557992595795521301430117179244527342157108152423082060597625969317217695749517157843119320262758352345456567885668344229730249123840407542411431592759147574116498041027424043034439523079831614000528143835451244051689486179394639117377621363382597795639035512621408139165795834250068616486552509034506695980729500101315546525671154206260211273937472730236509677275743427816684622277849339942705943148413147611298842162504783528562170747284845873239373453110017294430598967367388259100838466633280253277899597410431435585315020729242097180868958606637164402916603473929234357418690467015239362283372982178099730481245242407442488368158032349092950274752187857391892050097187258239364368845622571770741300991096060975097837651545368188866294179572842364681594247396269696434130583869895611931906174827118097600243915257660716898970846772543738607948859979657423113486191413938273605276170107075742804918855283638372836460477789759869694125591517043610907036769382273774039404368402553049146494355708743932369828620365141062798112768736083770495739613033053231947061911772359249378562212299934643640824750028890863868636794580401265924016906892109900518963138294267959594399502636728505218914105284965187720907069747241139807039639382129112382954827416272834860800150178517781902684919158475593208124509551723900549699367282884179492371341244605120959944746045939054002641793352841998130087059394757091943464899513180329573966453981011902398804687827143831820270255870372229710243941021821218056261237485946544877350268448237801234729588653320977177871721561000646825525623427991811152815495611841373264666898173938647357406210307248070548980712579840558669487912215613696826875437394274373405449785485044418475271585280247052998711742834110474702134480541948154912469770065298231755029337360162157424836349961429756233358845904514420115849946021033056944807620079706394852958872581066014727501215418649876939826418550242050283139994414549109356053201189211372746470718315587431815562448105190837422055655409450169656128795536280666260528040759006283425715099083279626934569224182420288189466427719432157462045764766958954794531143044805005496230604347122186520114968543897402162862504509521229114251712817955177745066093603561913705391516207496813799936744180232450251928907850067777759826051603396032392420908275152309534364968965434680999505721167323091894644792309088028867506355115117582215175143884424995472798912336465214722208034411014012221278901697433880622861881712993531000469045600152401203434572276079812892210195147084862524591358236550128371396386815326935357451660368657823204423160065750032977659553824051244051925904572247195240434379511239606790995700900880868801234254028430065221327737520114130856334138198089747896918002514940132429521589834942654410010007094539401674758940263216935168516514083007194837253067694957642713531409548571342296184893431363959594608664257809767741398657513141222634554301659885547559495594348068909365943699129702681680849133355391033372948990062090677695328670598143684781519590196489326861700355411282068024528361627672339312113469842743140027361933660014128978299264691819844032895618522469719448192413839146555996466473159334388154208711682031427897789027783995338282200119336786022223009843410850459551281900250423917153167743076520541933932709209492222425605131600703633915603443002138644263998786230091735284124552669112795198449894133701853199880935347766670385298505436722272445860415200482024314519947326928630589802037612110373368637653280393098104982761094277055988068289522142401315107386930578299081710738750584187286925709724089200255622546370343125262287936758552042407593850249414074398451824176191221107968588714102611806769920273371171671534604877165165575709768846760456307769837640675584378366687891875240473204416385583111908904575690365204393171403091573334202700964812150600238819938820668008191385725709208996322018741335850979824044986594593820648840129700371646200226227379555672904441360033676374615110913672910272149062823545135402607885812911462228220977149936985409039244816758577646017619427669417232936351273498269538741486742080220014052920099649514183082020183147854046452882522181835688958691205576572467464671721627308045544718582314367439695020450511211691416289067222495673757109495899031554479317443199622726976072122071651675669315948796637227726479246425253164793014880699026420905130105367459341673482461440322761432510145103392901270810903226189786612004365960341414329140183422933605789116069545037865021048089447179684170005627295922405102002719388194237760365257068543343182908036658418850493079715880257054694488319733435001040681848238498029838350098889412549292376823746523189229479774801669752140240117018716822398533818846391570131656083485010206702375385662890344463697500393704846316531482139442783012434382451731943229641016730996632707739424887232579324875687887617718939900071420267058789032698867326672491009970240511232921277259226920366780149610441663026554669944954910135634698786701516602322290019687093621790771139073871171759994805085119147158636473855062541265885016836981850840889417664496868614142135752442899349485401245421938602488508343903998278447126776599400224253719536728602827206476652960055282475451702982646246297266149623866227421974840151000435297475388134722439084833390246533978834614141006454871398760253185469997114727467646157255860912902859957709856353948176284511152233439293585919991042088544233002139935990752434173253593439618362026273279388790506357115076895323785527544086711843250603962020657784591955569097527011595363503773003667877965500092484902747527196295356271372364904126919388971968430075251445196884523817459954417604924567436675098762435873629744759973309986922950795692724853477360978594656144373309623476544758403368472631515641014320336275285974446815680859190099647456761094532693495622214545270718845579191805460080521590672507021019422265101675253549589985322087123389315789235886407518880253627035344489649803019653445062570098809749720320358784320152661350866297493322023143126891993250351938709652895278910290077364013829808231554418083372569570604279282176257308004018267276553606003716332792907180869257519630678888637447111531384321792220619910093309569663437707962890756117253965126732739167383369178056688906857228890478126274987056202302068553328550985015636049571745597329870954171489432440043987886807673665538180837255980108804744628503377338750454872958035703563141910756797193916138491914689331527547770170415753056215432775577535977871096017190400475385062708022849081516269302647576750402819285867433995991177123719213151363777672770720793401591442847114173111569660070408372361056894502464958429128921146936326024541210197370755763730538802521897622330469277541256056840565059370599131022896283696617362559552199910887095231674979853373034712869430336827227608288574443053427013718613640065386718352557979490829643163983186775791044947428816100977644100390429775796472277398991472138123893588707043625966643082387088726665226405095803938201051164268688273074668798190288791358548697922152071464891135017380922134038385234455973015955204011663112678702426576093280208544468088373775312559682405739905441282080595953052594256514286806292525700822866497784219717793759543143499387929888516424152774033434286242900862465439334678380189450285122611833679523574274939986432859544989232407600890168132229558620743464780984481959820975221454112487501970126073328009696548441378403549886399817780828894793654185636328121461261415608334935371618354518151133816909731091989807930434394690139837479637704072681619289417040053499884238682914162519756386689726865893798409368727374729624964495418659035413075408260835758692393216036041980428316123820558857198647003725310847632096010810783188926316157781245368386542141525551888471592001114567337034001465860971390659330110373821488190400749296559695175324182371889737349503659078126962544567696643774289149496489114559456465847508923997499723455688525367037618270913023356371838910564625134428100576872658465076878338259331738087278086514779885580749265692346469483375603062596409953532764274821335760242805871575883442165617366039590291449923910928878733161549663639145108807487822901584656569909621425490983544220109760207586209088538709253693468394567217661600379190739714704826324347146914095118682798540863831136710010060297392470917260268132911634667569604224801799645223889088582816548761090392171120854864984608250033317993622469720563810967735262983796191031873147641221533562138836248517970633918684318319826003708215618358890450310897695473437136367608941091614790212983973907788067420709447835667329227380065072746033942914481362659687333688298194075525904537637199660074684368599660528441544757739562467299691524599941110268457482996026890031995995961721895548577250116212504373923994175328501620043990385334177314697878277998887312068646993927329435634974192077363035924112775844607984587483471382634732447689490349977874504574561497003669044365304862025450694118811885954157998850405027018020841651375974108127698986131707338757915889578726115656086202662054928121898684371788913857469695999023792541085005374546988267821944165970597834177301653513971774074560392639829657774407053061423628369303339825887654369610523240349216124531003305721288637875350777646235023312321168421486097167540876193602858939356219766050849797361695377503249461487450561990831474601747396978400972565292986899277885575147279732121221075180097350370688226369175866427864898920887644969378604147536660506662675184762203230243364061060958537642640745788038232691787334136124886457478898666356760541052782513756374150276547980009301660157455937287942481795892707670099194714428517641022866028690040984226952426051455291080772631138921055039147499897223847026604123920536589314179548754456410935443315127243757788280570838843100803426880187586189238644867137788444318842475625597222552723758001640621839024953178195386641781171182433924421519576171401665999259670400322285773373016385441319148879482850714630185295179193306610792198029755150576275196260747352836120127157479749348708393364757443499108127453092057292710349914001709689219231652818306425178636247262188479192018142238489630420848490471710656427652889816038872420672520284801864104207427864119138471750130524598775030369271151173973326832577591528228313336795111604350901067671994202187735997026655314050544399372824542496516899321303779791545005857917720918159110218042778154349921684911610565846667824895136216745111576670374249318398394848854506458848197450485263616554141177482456320058290021850627620180234209318183131822309268599807611076614132270041333366554338268497492146904518043331669367485238658490338421939165847612530582212095866041059283541059636968223602927642973099247518060192607058587782082896126651523275349822580700512388942881003930258053523558497716830762586018676200282253511649868317905471523939113382391346638971223211554435178319410075642989136684042401099960926603216032569629587891630479775436595188307273829343170795168096062326094547643863549525225414267348138892551463974179129687501147296146509288195146699281766676674455576232459365440959807862841747784204855778977198844837242358988253593187642985436956998993390833729282378074827647411484135783676689633433818985195114984359324871784873899203726294158670407735182836953094747208357416954511692879422960567191486860099305424426399439766782233960503863716681443273466998124893129558305274557246318225898774085608915026090418618788910934783609121803308827155373033824363659391906283614899142549619940721058988041508320767283155325740027605754954545875316239308897180810091241160302810854827017870748384020784485590734242778086707639577007300412626903679365122831459798242690886321129051180658689560028116736729438282036435592457999662035598192274832705626939090841171882123950360329826882127934667947867152135667369563203480601733607144196250544555494176900277441324629225740510102184217327726617372376497173847243829565118375730931389822924581639529932166295275357783900744227414110570614405423646775852010201007490901517259066286596112289984942520098258977915151152115124552770541420440837370391231679531356809562140624422846568215384496479174872871788863766013515369130780781356772909707880275613444729334572769634420259948517074533366024059183657721714825263422151162857164591635335275308264244631838019634828860234216042780519300570655064956950908209474031734765743746078416074650254389948099840001838132733225474948301119570230572712493109828212143662930395753209604030699108768584245802269843148791687146253631523211919260798639314687504654716238175210625229511400941791398406546984244631886207448547334774518580103069001325652232712576560904691092536092396351851330128312816635782375586974643665824453869974850900493601123300107399602616262618697081711956065898786700024563400627425419093842292985006425511298431131544770634783256990875655127773099753427933891088840779681519924376597617126935427697531322283784209458824994567001057821122187245393270415677461059736784535827910633688501560073467862794352216702009030916464075438049161319993122402401298403730817008741795331239274238925588491188024251501591292566901869609886543486397476159295797081244232721055023537304905164430163889365865222784185506530274841637994333780311348368911508191451130552891759872949748152911582318583976634166547467963713136174873477920552088463841333826506173714411182098147615760646851525962274441025413194553269564344231509655953750950028169814965119192364002409106277477105883252978026139535804556032663934714530999392242698159038221478915926919621728553919481275387507321164398193188965919877218601113418765081638791906345005763235846922318215099166560214275005662596035526912026985620425670058900968210047578840233336806362525128442728998172084950922355025743566924256114717834051646850291867232815025471854145499237236510196274464888008731863951312407924652408970945269184098942690995000055547705711969845314747138993877514998396407050377491540004468373000380309343341483816639779440549209968550658614576146068415617120985204486913615194279836791598145196949622686849351300062102817171363124622999802392872071811869081505528515801047935508851699010064344871961378705228468531317633453488311912457562942710920797119577169511656331388766133113220512433538930523279480079261772060040147062995473030803143719837345484929214512722860823188726226549958168049975985436023655238695591048910712662571357966016387511314455723575809561499630240824275193041292064550111244448309208234761256531723970182083453228915099561858017506431333371815188670067626060707322098193407323883005101357541529708898525743295275338308072589897805340479787462344593930609709280442274507500643812501038678442626464186540705935341215530967895928556435400550245057833529387433695822361665700100969976624987806905877820982162624067546265131413849206369070243511263549209656094275366314671977279497436589563625828600915328481792284925271691915792069655555617784834229609790842236949424596706542490270476406607741077411486971542432173989976288372968936612844835595459556693405780931881941864753684439161050057339001966089190773890255086998707470824851968460123798574968182751426128128315536697881999904502519256931315967811909747016676327595389012595094551680114897384634562222412175516286629954151060637075616036073237737799361117050426291362730619814050831267202280258713861211766126138341817207615051314260844980180585084161846963599592278836069824700226788862745946259585706788073776854835576995072608781816792346020184839800190930259191789363642761025895579094238342451954097592242382869132711776250971688938559085826137086890378705635807344447716468674025202237402722092138340265656532826876657074414260177717348869883534594301727536835378786143246862692116025917624853642094684084060559539164050069370037074851150234108229903073047382851573866837769351769227816661134372011384676449260592702127676126518128965531890115953559864847886451826034490362057550235937200800838532140065642272523753225109949166711826423275571588304603754137982181067728649748834097365142005727733324216190767578160329412812443545159955684872626323266914174902082870850127470216520269377452877874251308774527057110576655653054944667839289928925610287629095279302113371094558434271488763021723536199610920841885129686303345112732368178918084703253696848923137863819336887572017999622801147305677336021468303590837368989496451665462442480733523702913444187654771904054832080778490690163629111896772785883063535851729126518681355376621490240851381847507781970489012551070086987581969497797844532110244021546098954793975505449183695726803215646025443824254886337046389976923669349783940913526164965281168109564524777287889512290567550927833576335364288856733514533013571258330544220714394920158112235442957154845657679670820867964275763831822223074775762981595794505758186795788788351820886667177198657453315572208996828796697020252894425970780301943109668290481897992818764983641987055863233089128770790957788778879355629163537775030823910890435192560658643181925551932399540412820146134563520892581168602297040278856050327560011295451874121242942388060375925911243452245024435925303473736228737403657571708826520149659384244592427136587086168699423296976257474581895214337866832704894008434558864553934103194223924383991103412730501653735642522984211788418180517786446009677357508161928876077300126437263936331145891880429528620849739769397459490846731913373201444405068120360475401366544259613602330275744770591690872295969611465771994039146672846471384814693732897271706915274281112374666751104593198169179173389392035923837816364597606458763710566442520829546369669067189941767629490672654110700613573714733883745349127875121599327301662337981667347695408632568275612941655193412505167157624430789837106377741131409330812052239811231390834434767057711848529634362716381395899670256690980220731889640624532878908152845229568884839639306144407498694169977619205462237429066131716831107592589706033289785909232648788199490364172643544162873363842193899870999435918637658357263753593419552497273858595985925808234887498762988131544631130424254816386266771921451321123431006807777985095783587436149676730759605178984023866665703134297208859009317851796825854675533582688945420496996815007375305981198402610102467598057060243815404817361275117604248199710663125015258714319488176234676067925684211865284463888007532919275401245072078529252261153822665694043220052712884751394394752668734633475593305305620016574642320434273299685630946498079344965321989641585725838575132199390795531600923137519645379853130774573424469847228178070683496248883985415149567027371618077488705319361984436822833748454971975844059867580894252140763377501981408517850541516489111719179133687073205171658244762897051542076180844775105325161895970253346105107692633910757329100148323797099683259719552844406376452964008567259402098903801621706384851583435477503354932694021011636662876319399847754337563961966629581789948388863855056422516654400068501575906939922230763246153180980515087348073549152933785342745172119293950282858330984124439275763480082025781924927677858171529796224090518035705254019742440949567421467967953264755913892629065105978397419430608701993600367158763097813348353304329875476139196824070215503984753107964481972621419623943233465140045443331018767315131245035045594917274573095790407302369068016378334948834976351002480574362729015420094331783687328540008739472896559719071948577468728455683065287101552259854046546214660170142864228665553197207043907356878068919708563412134168762640627858076941040219076739488570094776660248842552828660900461246687063427707825083003169196700924930079877533830357367508286378211895678768789697535697023816451714194404764644739492053015386820630434635012916649862215672422708337365509943382533482285677222857464361995346031808085473705399635990963870684379835409399534479878921528520556691453735007589452235097583987323654781204083092918314133991879286431408103455174003415103085424576211451969797149388210475124244930770894796005171343168079846368816070855651051785879129171278502473832329698010842130376519134250812167790977635841633238676925698645055565070210498518323367129885515375375602594916221356872787646960061316945914505423367258553811222642859843486489225341751049740042544475414474337465948226988637636199510276019607654702226204992758380781134576848818013006442484571845231884703338127564543943442336767754943686462366576546382100239595643042874893552164692049655011533339788821350058633135051836605789873655324836955345243553577549740696388095222975933041072666386970484169916730174464138321488399905740797595455629413662581878273654035190561080986409270330690241429895294503299676157679213999548136941165925248949383859711522783786963980599887844709301721727310875228256880295240883006957279005457378773971068385995225783681564383122820373058925733067148142092105985448472028600367298897303636344722183206290330111003876730713077236640855647678610187370911995695377719203623691639367299667482727503809258504705690152040012910459786313815996091408098491074363180804515470903866400928027393513416335018646916900442602373466687180895028339163736501764166098971144285627626759217315984763057379901486041684352602325807797772382834801877943872132191696981833038089110268833196453507056329917790313398718461083621711843352802819369430180923767127579880383644886980924423829575009402881094937276552022635969622246705281657735429448627923833780446762614187974763875318726829372836236826385135407343601803687715187843846576604666401818388740765869095215946084806493374392193887631602330174931412342937811010354332338400363498189681187364647771345059395344558749550348642438867262866708075250019240117547736737172376900274224913873202449370914966274460074962897242884050884470762047199431400023203593819898724580286613081262111255949671472543708151085286608825768303100097748506415481813776461527359297642193134695897443218226936277468458503182323551740056873047003933948455910838358720673307608596719272346365575555114484773967454328379971153826583622166704634503110263127755109370042175875767559826558782211325606878483165288180346444623708194246708856156368287508559778681256238882853878490737168474793071991813179721940167836657754123498990333688061762908956383329645781026051934815517484246780967407949339025236606984800040477516268857213732277319313421444817185194593968123152751229639885200331427548150004923524414164245693783112380595038804120573528086532435481385573486767514751975636212970230393975325071259276716712232201785785390845433425065969058842037843863035816493000370883623812531876726719815013391184841167540852538686923184769110211112116700786933104357594771807123696882573669381011470685380587802340874689695942915336876509318967053969207829344330636419619365321126396103516148335375467772136611182102337221756018960277662701090261421283690538369554385309257643633615843777608745434577744003262983742258231121823244110794404198154980493648011962969928240563828609132003198884985389807974232845273198083201816880362477414092009647498773751608035697936309602464209946890822441088701071978132300349127190887807082850323465262943708378241620263583219959944759335579795826303745807944688614734374198170112771204654229932819016796430927919822604861737876299885658890855717027626600039791526493492393215597300897834604893196355052487412374308781181388964842749270391774590350702683300818891402146601097368003456751199133423618945879880440881256377438494608048950279526589223341596999695281631486703968616985799879677426337210282448334700730601104849773046253766730965870564059510931589603279050783863266650221566866803788121086548306597481154822933782639893025514583529074046078251190716166271296052991522760544659828017413238988171362896033517188852498542347382603380112410445147033348088760953491948023473200580703310671106970147151953607338338062198328034893596231091766753172152670957392393398100611169847222466352180017133341088151215643094199188217700680487548563023727704118813749076960379200363319994181059709310304384306273985538579014257832941475163713257195152278022282501606175666467987577126519452165672326961943145467728503839975101315715680895242493624352543266497118674098935497279684344561792099802690539882771239171166937175531789310144846247692303950672292241435429139559480667828336646836139393865350087547588306383151367423326576245335483038475973986112895571242918127335402731526066276012092255168344240760824303579684040731624489220282713009323652911142268282848162194926267216457027498532602359648624124195494163373481613494393010372584223358265196501449649292280995773103632431305618561132685061890070994396342791966294514520160905868382047238902595152361554752574341199842269506779280791972908352422439702239387950389039508869053556193656081702837351944549496524654139313668145115817589096152581641959013509549058815278759451662552509084065082152300734614685089220431790513500503394473711129176699837729060090860821684100633283756837916956298431769797982753136761629650721200778707544988635360545933506157210650010535043309499232089365930091962755798186239854258293086681639847119495700374763028547515628429787192735587025302735164021857251492216765747428260931573479927354611059718580718567388055262583354369570336950128766828610696386881014961430659372104007477862226412692420087428874474147205099733586856630816128444321475490814280309204651488307404355311178935561299767599925156122991054973393655072057042966294595346187296104509169926883957859145076196510164110871159205421470521269302379851152642885376155752421124684183894288221249516486808654789921834407646259808161497848303272368030325836703010213730512983061141897607880179869609459607296455226722406026988153442665009824720992535314188899305341926694160373863659294592516602144995405428555475912943755274804494114655484318651776625690725034264803080121339670420843112281992471573904792146070364623610415009821800539643250789600311645314461324702337183645843476604011310888384335058124371278086227060843609810443728851860908696261733894127690024414754467468329195435525939393104635523281077636481255101501535594724370339293184782253900468397143979253030525116956850012238221365749113632655070155573035862126410644451747451950988416807550362927125185609725311895340152553309494010053347692988010342579658884352022261735488474367300214280236779557887472198011884679082123562114293509762912548597944427726439176176738244913724321688657341849732816316116422471991147673195172245406974056728908523330516031859087793027286155738728270248454565209079753152359134107252108250409362059027582210284914772782592113841838582186064963369683099845511914343626069839389113187537108240923592416985098988801525301678033898084937715805549211282990270379130257128884708696258209233304150870162289951161563352030853474555253241750744822761115580816756810319664837719280049244807074424570141312109962440396762528789773641165162136677388679394192733176530695642385988465680710452687621308735594193649912418020478730576924161684159452893759572572721877224753831898671093148571098393932867722121242477582583358875063999250482715155198075993375738090095504045056342650949611923333787816245647793416595200178147457084100187305739656563216314512944845904339462029918885502172215088266313301719799297670781347638429532579577691450881976118310968031010753302479887514138783085278006529986130017781099373123393890245643412624325226635639333644635213349733337435716336508096632041566087057398616420332057616802006718490598001130562421009722093944794942901062463024552147182756160794813045575139571532228365753507431264507725765760307724834152701485525288854025255078776149799802229614973076074709897277300183518985426884195332168310472133668203595960255099209185994107365840840309392650196064942768623804469877787412915716139979154738592796417882258148976653287885163092980241878238218537831281070298689807968063170693946288427301460082668454221700720417281821857475196136654581087436880578403005139878183142687994794858751501130855840249141463708643071521808447466260512242121555097789580729366527376827739625200078392279368146977298557943994649090131473228943026483989941486484498295523924932347060484965251995258605753330617080319503549032733413017976717983788350034807353069320511820144761823275671972521492283764342090295638146137901137122462862822748226148745963218090016614287214806108203315265515008683732316310568942517155264829803833528657784781484026980136435240654762693216686927942444090277248297751362293564809793700589623163777724070121679332686035268864197087627093614944243849699112758119298330655969109257728757721326162342859494882803387017723107494332146338846903345456674017980890408214456724335679910278629432225951305813291213145915006190144707635368477091581102065550804625655985197559586601978650879741811634963453198421988073435489876799070365911390991024978407440561080197150891276010818067179655839724522653107390602848757599304487050697079065194597404377871884349728182832335010294462386702916107533214795238584001283980027289232655967712101800669801546389848957921062923176055942795949316615189751638067478146289309243763986458779735702985548752895567324642804496916140140523866544109535266941999457879884512193697305892669781888085288765149551491129850476057735359440992007103369221812738738310075352435494716459840181227490154758632531302030026942951744213870569933501147574587881553759432521889464747650002165761817602332238908466845757365356428355819780765955379976591989334016617036309750561842786808487346511948698708540871150698365031822471194534985771111235030575922102962312667225242675285265469676234658893701326316379723608370463884875007266990703666609427607742428410928193636621691117553693482515927827885463055529256305686573887359477556889147861353183788688354711655327840653153274313277355737654196657753891269364839172773444861014360946814610673056278933219927943832235514153563578550162582902760365411279183066195951909678824169677313104479433864229534476727319352773951082220648954349616963242284142995524680064737547814489072298568854502842416915180641763094941835025566217577649139011328399514036906229480069504824316749464560004159771979846221510957709970838698280768690465519015306965105950056142013896326851897374184773843229432507507940510333277231611208220052779837296714242873591044083433463887039156323745722424242955866150502877443510736818459491614904442963889513869870779687574633433380413496400936266961444194699686129781983428971841507902966378734674754794061342044344671096064356307847070483845800124136757403317355513719591139296146016174776609385280982465635576885884839834636809371051289019380358261809379909803381332062609035699228713533723313683478303350714277895544607642350971190971239694893795110338781164525414102567375067621708198090243251660142697737599852833500404513474489591968258747270602877092805325817860715935189339100040837566468861116707937697645194877536333780534717495364397213325155617013312178739585543759015324653127928061018881654864437384805309467703132667006338516013731430312477221590912252152440605738640020994059425777942913033346591608541484233448802847692886145276120594623165875843761699646218276961861799228197282470972261925883427670133677739046324210935270992148590838382181548420153767084135543226632754722621310558442738228594041145449611600071925805878650115172801108944658849056412810964980897151395932924981654164420815185657621782756399967153540553906252763601632654680971766419082399641482594581777553828818511904959403014247795183982719646416163676157415500517861490412376144880080621311607163256007896337427540315986154809289755367991912498038164963116632273522070956780157120070715124721267808309790013936258576625204326856650133962230298760169782599684351328557101995568856196931224951690157584110929777771287649028337279141618929843559966532869807447145822988455905019494601475970225529062939741219127909022606514979968719499859810184644989046656567625337210611699759922304794746473382835295400601794062252008456005870574854835745067145603537636393489348135609340530672983771672767693770473422381185792823379259123953332280186360216889526214954335463042503403863946102981110833209632242429618074759175382709529366778804237044613413407013690149846756178359841907002640314764032665735982376973522811898672666352059059400114225034905426808622765251198148712440127451634968479321860700376748685537274723683368196513423833023100416085674208345718951135326802396962168727523935148439462996011910384940645519218334808533514707238467947991287299439445695865043566931294800185732234963859147151655706255845004601502674359751994336841025747648636097946296354771865908753834195797208014044766731177651120013174912011713469893351128321458713278655753570804381127447736808285979190474436745549214344463240683084239945095285921346303831343513428476889843403347894823371313135714789792270828890986815472358130590950760960526922173405520504352824288905123122414243663337239272507511714944664054887901552242295788189429125840760972533287548019152097740462392596395779095039742553860730605223179123789110587035899607838170305508745532566139378274563551930677165525400689705805918648863731177490321209195988415911666010837796148437318744721757984332843592160827693714700071718281602791376086075687152807696270419430789943006758314794145600723496711421503428718125897877585866209632853836976468333642248496250689879574440204142842180031936945052076123390103751232568582768363604946199475991727092016788124215977100944108123483112382157828715864784175503688208499822023739931380635491359086319794539583930825793712166718527406675358200902493151278526336264975492415266604664372334274815378229201606772410888092416307016461403237110028703365912135490068413971034848832741212145335701602843520942048346713357195903870286131422689603876426567284481882571808941463784526353368761960556516762087358613899690633177822462291497046818982314951519169707482951382149985053437594320375913167388445235066560776889161961231218384514217072347002935737623206909422748761303527486687359467590218589390249039037976067217209280520375612428716623549971830282142814090354466564163713019551787329512693122073228107541835930069950706190303648119180300158888920311911978307852794405652223879198887480857096320580182684727648203596358484941044595956330002749534198243414589625142997543722727450441362090660475769409743969013805688762138274696487345407982752732668944719655388638718832079542830862847644649638363659066477807897321566097801816445692519576611085262579421120380401000356879193638939994183972333279510355189114534902335480249398136928149925452566881288149411681326887863669331548610140453960164320422841808200690832280582612447232416336217528333525603022219772247045573889207917105925741626174972309008096546715735582656098526469327654003751782243170619921299182212319598560159948056361533759157051882998593868598065832899364768057241162634046465907361290452761029124592596793149910857367942073287315606388686986055713612481828068933444171473459690153921583175381097409109751192641426249754211988209550703643965617478853529962689522789108949765520541862390026345333717643794672241632405136445904896259391291441685327924494409429041214085354935578609767564362952965829564471841294876774738906097837433897557612651403216551128749153031828833502395279975896349352494093544929210747007805311952445128999284503930488364269361761907878567337380251090662979167068271569075836263671592619871191149673394432710511642899406341223541297295598425739845359689221623218068077767621250825860565482064182742519430295850156481706089215491445269972717883858276140707329273949737687284683959045753191231299523600416372568783484278114240677046025594893666945263191573259729305919186693865781911166534558086231550472576415903878122420068081671217686798558924851641370421743865531736116253966432946087285198239977851458705993826377540408647043136246210651660714182793606609234195140076961155335047220623163110792782600214246642634807539298889560708559906109778207904319824794391128872968717973321063533513334574116747696718498371684073788594109453001368014178618069162740490916587914607590499214583278143103272929303907086216207741629789234703017572736856848373601838039623364166599381851491104263836710239500138152762536582581810397565539635697861939909407166171802984589346379280318941441291226567741403925806791284300107927953579783812006906469708421843617045641586521686443024062599523831284207383915484220416890894936241287303790750305174125026429864247949751017127780987613125025966612743122931925282623832068001702359639549356730636303214758785539733059051429921588782983817341216649912851250760629897372563283094100850779055877468269973139747762831501632759826174810918846011261039678242510123262342441976861285762441490085941360246405118825394513130142035416191041796101844585431674979616532985513996430070123216913952997133474496838854060638906336511666432189317703670269735537743880129548746878463280865981342052210907857334492752794656294415070102747725224354549645525445496523003153261602464511401166316766233804104432441150633395173463299801488808229473190109218824891071288860222538508862429743867998476045752352984465081188373077509306896222376405919774086863528511812080514328673945110339419529544154886448532923148221533492622036200456290432682738283690003674232274539059907723983910270319711502155685534747033460291673601115501211037602970916632576759550985748839492348379203701721084438802787479941001621728777572230788831872188926788352975779336302952543299557011792393789270779375525651386403806601484085558925850503393165262262290386621542446858134643252742508524524318117125707466797445469357652532629455937300740942774215550762405748708959317025610917195394627516935134038034863801659661277876589203313020861163730163184125843759005378042002663141432462567332606808732435874945414372764801882211213701998877264020458564328333416456419380706855771719132041395289130770475786845118371181982526694084373705300202178478628013795288494778401435283388431165645683823913987680690952806676980094981081733575206227156859240130437579296743033311439491264874674224293755761272237260903050401717669535996629349104943565783517227136553825426863213149235005887736053547122858169651556865131343352289077191033295169082602922621789371842629085571544293567982423297064466037973014435917658779932190714990112008915184747140844324322819328220385164062105094626313050604770877075021789455796763043789876567376819295434493463801517365582487206215066674793513971641617581888862627146514018290126811065967830376745086195981693617281968871531896589307010542510303720789804039577863964140833575958638651886962576522764154696671030535998779523454890555036159625263261236712123913794714826444198915942770928907365049430707897730764129172094729599681730591659979841089884997893383260550626166163184260518977372517885626304541699399896214015856347995361945915095372069025986293754097798161394209904190012931634288331135269741012483120645334270955063285824734706906941992321645368984970498513367194253375369406117287102170391862185157614214172268752303530871685181014130357630074439192101240126082440686376432226609772324139712550986945369023369927667796352626150227053568050513902723801275070282263621782662401220226103063656875822080128913598725178064309883998032907248440435789920810715051306775265610726281580354841897533178036005147384964241444619256317545966037480008087851503644556391449875927353823159096621011399851127181249340105414330477068873829424578083623296026644266007753536326634961782986720815627299631340531350781708261275839666637681416696203332906420632350164232808787645536961812655033253561763555170106146263579083014965043935774683021728555513656417774968707052601419956569477685576769223287182058125470824633337516128236738766044833765945729364382722864546093195731168962146087039755612669197825916730828498022666506163844894282141072834973656253207740638957737099500399054155861698542981440198909133530920370235919018875330055768231038917330824193336788680467228474088964342727255275612206059245750017920087778153376870144537107465668475816697434316112533407637527474361036932234610496709650585168714174717258200259125197176744565151929280614856009821943502394076877137272329765684287951943542289215034091574923650309847537959541450660355423329296724377854648175902589218800307303783720181320907546007357546918529769363894720009247389084238518325987219011404576556233405864660131496913314243337060192330268698954130628733280036819393365168228167252075290245180138887313084774637002636358792149889971895684327350386838189611885743195037133110281108115263720914963078908202793439695298697977289573635123495402061337935634353690532042590370639193382786322111663735875246262086167673002924264664581604741727781411586581261166511708597542422601242990902681694834788021331267462781804946345947257877740002063321436884205175212361020461916481927411934637106024690183510788596774046018323217404809234123448767409005105481254948505367986510969090953462713379174013270188809295692252076659431513880140265733193871622481786853824624637110033727629159679799199282048778374330049928136005185511946057804929752031489528792134505312131312029216751607468876919303231023720628770039110250288800477041338952893010824678662449059045910126655355871969532916147556179213805686721965760220461640458818423044550331693162713992555992239158679279967762592703896108682049820504563736620740007672438747934938569291731561222437510091397979824485868253391125782357014190254065313978841131066859118336531495736826996048939985991535605805774788415387582395317747135653694096005013176129443512883530825883589471043442055638265800190616224532437877486990953615918647581388282107452643568435866887345830812679768400780170037140344215109918867731047884028987333525246368864348441253652530548774156259958963230872877803411810750277793248907738002936034793311846202127109697140586219163167233198554370686365957161313380496339162410434440779705813033379678229184549309994505742686343124032231465884311779843593734569761823437052185413525575637655485857667660380244422297447251085344255387627149117609129860106352279047888042781256483997460222545214747687774661741412329531690133475694254171303515173835901380635965749401863208391755370460590225446861592971036044855871686670424713791166812379032490719248195251328551597883115777015171700455546668471259195661678406533023525737983926305686231810396973626876947709713402118298345756545419640830000874652215852711659217682285067796517361568460803264105810724382547972354804255309920759980251931261509223481000183247612659843522298310909349411350872858527032330973343509546050244532261045921488255550042896954756639171910146480392125701904451716503433310191383015851074395525499167761393559354867969857672358920464660928097030709293925013808273470071354226562884609650990769831505957144940974141140998257849083161237442828331509061838744769885750800286898133837751071160114104540841036802191864400347081536910704635049932989327145340287612572730198721294855131394917123985809032798352285791340418367357103347788537619557641537238517192946380783272963119394386304009162597400418244485349278237866884439775712782768660634969844509696478605565951063705044766501684410610986772464568982456325814282723435573861744868758300702180147603330121132353313168558774781118104274637353949346849099500515591002054418475771023433894314666939049056867312279087173246966035928612136940816413460951577605169459126069588421813612707591108305712909892409952321467774103435671627255554852516465435194547215195133679681096460829733805111237198987372017788150258105524094592076227875721335548794893981076250498118447025243559905073191302453421855942656452701557857790523498034795740168014878779805436581833580539689139213004136222487308679305926538243126790988500622255321158164135127213572254526453081730049452212640756527245246803148991479596708096389066195265830155312077045006788895284850922525646357890057985919036200891015625222062037883501622386802593557164816094343541508931310370826431236968381210138311876343026970694824358193674908483253424046439216706848095375552465880419150491950576589139448894973531397972158423388988463619249201887482960276381751178994512761447322500140323126631818640069905720650460413467022876794822292370865766144607322627602775156636094857354444597943296753930220938886776504338019499900305625778817456779243786846467600832334503271455079848467265467396857903793977862348251685737796684075099689953722613044072155013403733655971144362712704561170949953418382350484641956932091569229316336413934216428504363956742507341863486136243404167587376348178182991421164372544029286333146228160402539231425058805242781964670840575644403806120473618207749415486168532664523524793222118167994374195143366153961786937556054186048095584768649527211102357944431232444060144697118343741596614257116478267489972965241080927501432436432422036285498451920502156680650129791848026267209781871184362312239542884336512094035177445135948701538623589458476056480762251438833911974079875717802914416880909259225940618417186201762809703686202607731589724595732036601247104413687598306392669195023336335936209963448398837439730114564502608272623114577128642372679175190931153117218966351621547633396269655974775823907677047089261982694112224921744130139960944107495138450658290202056705938665417146456092157034961762298752752204688033709314914367401789802973076577790375148910615121871915606489868353435586413252368504333002768374091145121626748999802775277409461353869050532788147866808894881145018730293304753427069366272533798212919949300464016258798874301528982184905367527936428619407115619001472729753706490309379460296624756274163818997056503590102997026273640552694667648538375733697573561467654292586698999887703200846413420150613617319574993913767450828812084710026625270067918743235301397762834896894545580806967620750574058731079287080054495063403162075569163151835171810412884897698465599177246065941585424830750225041260431454520623341151831672841072122141787183307112815116426321945283779801745940473359284753513885450621603541637830662331682490310743562817181388706423409351888913472793547346926892715722024760650441798433537084685169066137565705780163050528961759004689015885048001595642123575197435865829637858630730125851442163044027919768918405295633546147601000126987972609357597888317677745312773520576058064007443117599255090037777094929106071479586591260925304063521784550766507825123955086606811258786681625708979250868227158831815141318006716372920333774315443400656719955674837538747829799712367126705725399324758906820798935998873366017089588249989790300476805666728398919977374884241036453607162231562648652738044990726793751700671088313764401494634398073272605986413646925045126506198802179171610014613351554916191247232195049518860625111036918443066712188066033754130207202841061571711423128256934973192623024805344970859168660235479541656494042516610866952126914755177751500945720438494558325477351435543338531036459425658138748268332980957476855569566844122100825360786240122682631528805367089906518693959139830837086479676350784946987526653558172252182997504610379637715786949037978412123916013468922106155341306745332534862164858738874549733614864524627042163950508943892566042787956828740235476276711188095186933881177905886238041027948689283259332152153628720880319945515797519767126870120715510971307510897714919699077691622058927468428522911166409332546148672733542224612998399768636307554917067721149122649395563428953724476742600392766832606212397019821412578131808681689667427582977334394941500429081862611948175560584088581981274657861809642952195190484671462129613914117626152058893728594164897002146539501152999511888548671079934333129373460676010440223824165660498184907367159802383560228601813302607350501474932757267632647451525477875058623113642229268403430964505133736569494248514865786625570241889942943953300907705877479576815849683866910181867378879686356797792665151866504603191409541003192389063804727679143080140856301916666953583828549478332409637065707011515733105878215514426458142412326401007657319255938536768842668662696429213692840448041174573587349897185433519989356253414105247250849488659479795334723654698821686845135647914662131356816728642091948151940689810739921401797281348970777636461615084073256892419080999861153455986250154276432552806051190461588098342240298164257516569276892328934856092543250488533829658306742963284011214382204188427711033560544427980379730977214405550737636363784105366846799811310881238491877303807714830053939771242791744267218091733114806399148632552648689510856671291258331033578994850788351153803393242146104200966905495223880423135069388477570139645410956534618217009725856798123266219277040465421220403167670390859892636288371757448788597056226805087491121774495371574266272292322059991872922817391752762615916759623104927750322462666436294255597413929568215590146175942229757948216405512732069338231040227584048233744236408734789015528879728172767716149106105571531136107534465015531895955792772002553197021591942349992758729187924242433268006268869768358824808319497930582886192084183351129217829223066734885159511031766397505647401780106863146951930219277207919918645367234239650981951792871186201279790396228628397186326223559640297926508590828852689087221561349823975200509179765378621648794866830348654124751603418230809912880157679492304439564586060266384907193943300236413790320094243441030629531913879402909826081733881903182083981605703813454650701945619962693345375908317717702217820362232482988426637637237327515701946884122120438324273838785314874521759826861582545843516630062589455627785275051669510572202230795273760045544230928963967119649306760706328495114125060372246990692193201012277792558695719290462632000043176609857478842313100331271174102156367732388842103594091356656373463011941406146863895999623877154360767012396478943817136377228809563318406367718265152575651493235451843888020953700451272413887857969758236268401552232206364884267525663976846350875112221235844339310588766082361874681292127623487186840270767790201282793180118536361708477279040399899770652155936553359461227225327795107219160081134773832098548653060772501705743519311645711093858324904878993984481777967630188764808907992087351568618720560333312587970861660862692248721260713888467320936846973979550833444373890703200689665689078500107989479490213839837404326713928682876656411465753721585351975646151791269662798407445735309912869570438513357176342936223877334166027949300819652625292180180406606226257630345767961683583613401136575736165368510613560146267849786444726516821801617307974350356023650404737754061383189857134874797605678952159459985214785508592520292111439848727418453501767919542773872278293839249190327423015056644189549367058765349940547533644703690392877467853947699688116092625829838777356170709280927947216263819878189738522214067088416701206395883296709910487197953594306503137604889496675522902271319753325332888701614082062809001571498363006120206101914616171216725298317232217486144144686776286725767142800292885548265245127766826837040518834079846168997772733366771295997336086612180475974152063088242314914689418533375602831201248974751528433506685593946464595708717562516859645108163646067995802176053954583836432859279451236712414660571257256224670711532060749745806443320714752298147405175575249462473335265493857976885967362813487323947809323530217207111015089604656482527310179352168303536352334471423878070294861719864871431031012115553303894008855159104248242254669512262661455604264413953044331955881118529534762703722391029234984267165457598631406173946594228788090235212273773123302164047478169143183634620752992952926464802373815057202162109845887450718326911164327599007959996921588461313376265056825759540326539500834058455789902962713023033430030195344392207415707116977710883615337232290208603943326001559349772496438734160277727642790567972793665929149990209487863237295547994154674157841745035009603241763459275326111242253997204605224530006589038631869166640020540650665568977994515157627437419939924000034400948865780417874795476557460667622414845726290109268406770981520420381539298158407788788912490104178155746525933136187193288812902092233581730996233045799487192313215599128128868706137504924899061607589146324911040939723748307647349415038770820690795334355986320522395262306488768121951568734596672534030881098354047697326151670344791110999287346942251514112335159622319118257557956616572431940486161667983454753786837600596087768782736317690676588814820563547269197227313741864582849995226163683436706240292437747114538836335346576548434379912550459527436452412599107099704068757399412841904241757465062167140700064988274906464408709521877438086925536115676922941896753267618406554448839177696504471256528424951642246474687166686461118713695966945277182142937329168642010289375333610805892450768431406021278012249178373385709219054210257722350838291447610445788219513165930845044759220304037081085245667448360620842904313607138156193277518247194506381294639977400025628505033347521023719182408034073786073952036471431018015494381497605499252608056611124091707950489113075162063834596174747900997977310960328464145262880205156033008923590728771233111736504553113415165309416264608411155841833516128115742891292473078157429209863354295326955799182545071605213169547270358255638530962647598570513930017991793018691689882208570722217660190156270582714800166642116936772880155595839338204977050681687457325270167029325139716845411254738240031883900573993154338686285192608666976735939660754692816687934003036189624829329050553801308457084195530671537401185039201497080941893330764355578374928119799278739032198422877493047312228412666189296551048246562017229750026710187485503101970639551471043240686328725378909419745466402222696527153785588488738158621649408909126916376739900725236973310718081672369499283623862024268443277113019595254486785235975250443788511063367276215781334431004876969662536464758436411883838601053990896372672015860668165509766502701751074714289797880953421587508237196039231973175818734218767286662844817172989410485363817347640317536247084852773877908043424608029616509249649866181531997503172082461236562451614911241772790618041184036800546355631145233142261519413584047410501311502167315363381365266080057216956638061228597908487970821314482682726554372576497512761809308944554167323833206645659492385893402694507653910166664609459620313428187199822871951865616675879350877716998887657867769908771198774791193403988658747061086406616134213824439773487481062918362956028295407796462298673658967641248833493361324703749248083867661503043335556692804685977287060479368853121647170451487676575079590482519903382591662655268926617959529365256180446132820852685229484446856619266868750267004597732782848723490775223644232090825342478781875963544781534698328728993232972685570667148603679998974817372360411999347211501434522013508827471180079180301012247033412756974012666466360600834256969254558021349279278758605279882709815396894340138649884619800683616867010229913321571441514435816442547152144848807719580520887937509508329420374778002032891982743783803018459401941310186678527116554745655485699087124006758048911436749449880298488903269409460001160444394803524027578082609158908077230234503113503891621039845348156078793769929571685372254514653281591026490127328037840025859889030972378761757962622961334274928214738277088212159005443205420816158005596271108834150437272642596624227016079434427364637968133403300398948389989551323935023278643981700369023020969285172045997928826614104610474380337666143854983107180460818443477665350262504877040910336844448404991903398912841686945144793108736742641392513916471992012564236002530384998132304528076654228887626018212350616141622145061597829116082872818716899334586844186764586529901270550698948462079396981021425232684514262926506179462168872823801403677030736762512770714889228947291072199923216675627644457188342976252509787448461268802273493926047911490477753863761649362758194665224429813059367617839367419053495754340593169502612256537485647600691937382460646209079173150839054395324027365938623837361872436297072686901937474144894600496014507612454502896886900593936428952597559879214151005526722880591554437538151006268259385904916069303301480318461233125945427216535331022154809905916697191936079008523942745722570677523372449791919064765649155451672366613645227219401109251677580479175930565974249957445855021445850300197951264075156524556176453117687444236733317893634301286759349359281714036418046174537108977140908867527911847709128257884832140209668011091956759281192157183135826196933449151362442412455098110461207029274461637993351979371234610102681162875439197565378158235435310963626822249120215260404492077123432729759170723850689961948213466158629173088542340886277276999078577451344120770312598677256712626498979928996171955918736782604143421322270490463276884848938712502248804550258578243202086535275495240972369969088120798124842041951758325362489875377402750994522560543156495716617731742262634472056800926950024033807447895875281330961617694655002154961429380736765106093232440046605751905427385877003493022360684506092447602657031165745113873441945206335633065712288559936737204208587593327172734578787338353196838038774527891832888215918323532699137376344095850420584830811337263714126405685666136925948864667344169296607318794827274218493804038516573377716064340696857912726676388196770779867764765722548996814143573852026685661943079649406561424265699230201480626927020264762034520478813848096670367690436576384822405006532365811263937400227722614504317465358508663638277902751359190042652859923238786325891995026040603179337187560564860294527987822081577540953106836058038979283062030747932087268749698712247213205827081811079235130024278168261025042781442178698327738883422682225879765878434137121518065373477307652165990866697308659470705881474192752426613575395111364815896551675223857456974686222782394114222988551612744968335373394894233674379938890240867419608662620307863921738778037333501611860314625251087760849281020686780062430537882607510022763646048653976868027342321241624906978802940706483193631280444051839912035294799502968748382126951526233570848379086949018898851366856863443662534356820647682757160640664880312778391098063281818566561330064265071138009052965899247079884364506484992492153099800647237272522901092219922569203149901289574722074927856290950437413080565448678788329115166997937252949225321577242202556194115166907285697111303767845331537236438999464196476255970110134974386236083459495609395323049312708327217544996505042485877982619753908960245794254947207852915728692065189735434369602524886959993214534487976085019660006030627918264279354347532557316345555997254145924528277112440779812886130815471950898279897172402369612579004159196126955743316907727120396326460440494952344170533994694075195732712919505680593968103466744521292644623735607124916532320553479845132485834830351812237509192835107168385693722546449060480318818348977827984235651119062066774208904072556569957584823252118325687625107541276052864057872057930387844702180957696700015509016966824503904906143895188786461179235417061428846996475652728817666307481415834774556488749640881953151983752194272554712995429026533845812045790540496038312368915946720958116501563094683678754546360855473947955315727122664377236700768631599057041729670615819908972259755311344255803348007351302283702812597913764915434986658667146422399639519433272504861344157170862625669482512760058435647672213073168287195605616223775651028250411824276168935768031676147007089597822373467394627064463831796993245546746273165873553621870842123923209248821939109577915338633564083119729202326164176737062114603072840671722054940819996811049794609621130850245794562591531358050694932721594131409845949844355945374784563021815816472441670633658835315284136054575009054848589046356717413276692419883151605878561065065330883231388187324678887434356809864592897016886360471756764287807633427277595576238048945271869000240963741000747253995754623215184006320916426518733937669619755405649196484287434322860121639490350075542446182213159124883631900182759546597692640877576720997243270790118650089684515119341599801699706879382325504493332566539401820823091019072541463536801539212140219009947088366688975734372257532321620498024740793950921763185481640521261050558846882647367791583157529867867139616051016616021348676236038397361874519531155959619424010436302650699212320307499372070974945345347690416371636420808599149468663790009004084182409050706285903732200649099531744948462018173517244625105070603494352969842190666957970895368377106409758082277790864997765985163014741847960279484521076967766115368857292136639345565233713012146205647438994003629687118639528299401251375623518244743753361537593095582066680077260234875404607247177869632356014409232580535070341439096279488187991493763675924086920903844273458533542072104273847558540181904516066154597472650162359816697344427783423364852232909006265773729137684133992718341089178032627531339652355480147938264943467767502710853965509015806857226099411093938397146011740089940873485836357103327558764469610516038708048432021741504688831206428072320057884318897345104046751312572247329983410546800276702078414958327692775661136345646915398890176021022129445221880808612543561558081493376918633946804667945152873418001990973098542732109265401391678385252236994590483698189752391001436297405694024449373069622411058491574685022089840933023390489066821371032876366382501151449976258787526882078309121167641206677992652616096429726519437980933488934032665906026103083890000497168069156243871246223807895693942149160334911954888029551745415956802182637275810311658959377895525987028734487688776821496387733136651397558403576397206129824617848278040657141542178046065259204416739316865941523436742926030399151170952955767724435006219939768775263671744296330878597053582653334677664778108472441900544249978817445911286863040516289498603011930383166013452010027903697821103818429749897032110861584903282911892618929588278057794839923280248041417021292145655278193670977884785239426769557253244802212878192219152381914161672216426428166930044602295794352099109500169811026557921835483912605540722460000928016849789077037502593215405065471357756942526621163900277272831090862358038974744832065249184434735785488002863022687837539329134758405516208009322147359157508816998453675017831281643291221675725525915029542574641538786202724709482844075983915017745011880336142541485015169322058207029034888701995177464785777642392171136474246531150024251631064965160342718727991428909233213073693132453263087511006930019926351343890842424755514564762012829884365035249525863728611291340636907523529220001197665734656966090744703120191492336956196969704632692708681983484956042129917309640224509013679656589862647242779077383722732292954347118778289673537743568518099132491118158828931536178040058122456747546420016454239658271477274160793814099789474674082288173390044242055717481648366667228349310926255901550671262018015150232336508800691146278773510689039422068781042417338463673129100648091562462131466912057768466485011274437718815572064654317186538117695240800239391433528470438743444730343992366549204128273351983061387276801117712730847112759237785454803226456184775220177824968775287352986782206778480379115612891205852992668340778783972405260467766836520247800914973551990117941288077603318618987054372782966919533047332318450023844708935962888000302988264326682777414356925790280890733183937268054002847541545535198362432547632702531896003313046889810650355481570165031101507736242528772128155347942182077249527745701802288182328004248361658875326946315177859257532816415088633192990432404369951465540339511801857138250509654240722167261552599100085375268521807239005989306612941949847471096583464104790547726181910864759693808957623132830269454687527107885372060989962542179008957621695340315102736662428323511982151082897282419153322783189834280789345314644252072532504540854161731101875992817239766760331954189759662738489339793004250229897734452416523910763494617438265083600659123347777279220243234364333763482688605611814108763053714682905353376317113400450780063804450761924275876145232782462788572894482292568406809918458314687168181628493370289347974567071773134035093006965215220205273727357138703380822453180177715008881533954814420371614329229160303889533839500400620763172915894376837016914660481946319785720027863537440851944627915828677057196047931569497935125569253696045068696200590910860968181648567682082032814287945939785352112795377221419715545423529102670946300837214695774312766894405779011276741934633348723436210451906225270979459710254964737568774878593533728694925258656827139097791271353353679977088248919813527796163892242531006717538669156115532925234131542782871904369114650831980263944020846867654075562765562906979935753025044167828880532741874257065427697611499302951260908799758839041472837099487592645389635956175919321618041782882854737471913758968616752897417287985065104612198424014288211987198469357676262099842414805553533945372147250791428933309201475918022360126233368417307753121825692682842545496974775105181726855489350166920664947359699591144749289064015943482515018088378908284022690259197814636023748787735021478154887921686273508094659252958348279922316484557134577501439051412790378629240450594852895779148260828964442728193366494169900284245051331781161327032583013796290234756603558095589777670540608133276697303865041879858222504063857674143065263752406238931089524382328936024643151188864626551681307872632763547143591606371868719408755126276969285272176602880323670691439683558270544034242566875137180042664345336797678854541132173084117701576664335347043166294871408661791163922193341762386455336918701190268314900053010827912956130890870275918863421464822295283341209915493186085569558977102650169963527806571641571370298591750785207883941945666380304440788444918650618717814198928064031734156785338079282590695552100580498636215212734939486133843835984197787021356721930701224789983368800780209229219673446851139302727195601939794376580264795593812006172543643789584610440308605146462018096766585700018113913797226043955459510012689221783488649259600063338577351662374562396234838874382780910816830076254166265723668821669099880236916266698817808458530967360382441580715995548958010846339816289171151829648460514372806073646846869019554768317318663071645593885312680761223287291851226821353786852469830278675041568990601119400417171303788912704864675052543763648508517252981351254332277894418407851102710365957525981902991658445589718167923597416121406918025948190724324023920779218999710451731844062834384046690294244346764923509267126461300852536564325929793502710832255957402624650659179845952072860685954117857511944659270616979196146928092944110377861468840407668696357646682372060441206162033033452476986553410812282187735999685357257177448015971480858117623613970823156674731254656318100309277353297557087706413829499807815572390402094129440298628758961911934561481606827850146788398348356567217731861481891060106786186139550154332135794958444516270783029593854615421987088698026690185436682173608701246505534237204355157168803639671182021340385323040646818476726021076338137317226061484325186084772392759142593491298855473319971080987429499970069432302136754332202996138696916916962054962071406048067332638019846024604683813950205214361668755681190959136024916846371618139744477006541801727232398749444758941025676828806928838897206536024575749582258419990804409655314621979619905410675842903043632708571179600685848010047043810956905210326691347749501201056007081743737673094989246590256960657282228181233496450350119396501988623240976061748866028220669512679411113541812272414615978752603865708952158982021113976850846153859397388431713999585254666579914812359098403078482775957298152296028665545687842493044703481908835644521019174452945682521218801104977277575880118611287941784460741425579326014269232696957001545738433419848029213693505436337119528682172040635227236070589857402939483014054647920896688336787982556855986512433717579921071417738546449852748616720328875270465824004689006550619087932125622159450021498308302666860252370619137093217475556106666056329499431581657344325050285929971950221575434536520974206956797272851392767793538748752398856291333067730838012434327620052049114654509842946650604962186989949640667573869638320880399115982900943007024087316333804485467127973887788096949057555226640134498529006797167924178650683997254305858788274771541676438832863786087672938116779192476300508592892394817099242139536390699016750212186091546792310424449627935793308580205238256850773294103841498787548058539497327003688016856837224245862885779622969912538417038105697001530688907626954406150481501908373436801237874517865948977682270068490101937327118972031762207815613906851802532514176882391690114730748476623634181270303497299598812032054257485070103774342050702954393040551378650921144201268990522695279420112293841412050456437208658317916327004955538696690312927856924108636986144961039553491595887928085896414128429426235092943612260528809481032997124959836867377090566612871921603046555952259109842446701910088821407621428647240223261543539114796996332545884983368510491588508586397512730676299962316181007960334862645550534285944300844914055848034881807041814995854270827869982909434899920454649160656520823003910879018617151713153139306763335971930092327577811975580440118095350396774167588094368573032380045053458363131834028949342961035343964299125563771978834449940396430188160555804622639034760722681732477223234544602099018027024845355751317054574853466954777445897983551814974199352818893188779161102161575371572510438939988609362564057448494379037472823202869755495448855781167944576914358275428510181357067597681805109583803480303308693068538586435522468363741254876371925324350526681250045260389182872945229622075519133919649067823883815484002250839123567228957228371382903208343922318826633657590773193474604954244671952714649813786691426605570321040486311598613559518415793835067807677853149531270015917103988619316334668796412549928663128076981857378541900716546981256019394787413934007767712364048193885590730170088464172155620384656969498212368755556444622571146854369733005295041249248343360310756288529547839659638044872652904472619010428093675620723045531730529832768182366583971479980464764299097790687598689846974458562372472828838810871271520499739268955677904601768918512787674598761654473057100226618121352189337848331588908708531955245615911970278625246821966137544583713967001455505285458417568238252160700062798189983871297398647994947578669290021278421192132163093874479282217400662074824179411882816015104994344694646214433590269485916569713591242068674691377606250531391910004137749435398979970974188797658342674369709083714244217611669333957973776429636114910319516576595413750930899540660897416457802310615834136150137921066712259205421203903511572401935512192686236375973155452726856882711827932121443381429597496713377673721342485182019883840354495877812402582984382029527395177568941160850975548117100000246762737635081381015799830576141402738084363156497573325635337502154220081785459898056044035840624157952652286869060605212942330684148118381283173933973536102708162290133838885618204285396559175314060937108802161858949022024787460780790111894507956037009095828098888451517601901499526545183782142848359292046156603628721349502407557460300734562402773258691499177681489869021232590947524337588969700252280800998532789611105154458817290971391952943396869505886672640061807037409755445049460059192146612903202775755340778269388493204172718122015025515276972476253048400058996267785089625088443902547888797952661704694605946157412487215067301119234792833017466706452389018908504576422656666751516342839042913130647851551189537731358917443423853980589210345905807876880948061852989840315959311947797337079102444848012715553870832543305966855763673471201977800716249585061020098758448541524140465159195661203556090889343259859643890388564145968848535246200808354752981929709421480137120289124533087863984564885016980681151834877982774939830340321868814375071858699230227868495705462029415348838577309218906424734432130761187970378136134579670383697454861531298466031809832862487574506210788201037503402839542180890484275626029965612722005796945677983569122545278916712281555725304699346363505423643504478871021439108837996173265573006319292732457958438222806353529758829092737602032958172363853051230797678316529892267451957514470673061783488173707187630468472204049147550724425922679234752409945127870030895794539763345294294353202146102390415830580519595435764458094310432681556383322652180356736179751483872710424257530165282978916210353697524945790166433859566281290717138336801352106361614402281447800441896765918585047079403509888391476477632029305870910434149307074281676431416648208434809499060061521091309663394942218828878871575576920256581414978851684313927486570033642621046286106700696398124116041698976156491102577912065350610744674514352312356284429784393736963613213600629871363963442951054728983894092000705330254893348314656419494035048331206235128267277761951564853759473087435924975557984243608756948624608276585985072475430604989353514206189705178439552273505564558708893461613539752655795470749925237613653961906186761478118168107970192381380768323438649907732697407723069445399863737813459259868689451663652930254021568638048455170369810500183409155134675357079180560945261207425685400150454323445837218958578536753349610251737958973816570428410069735294139490129377967444360746753645406153952054934281836283290876279302904021849885938724783738242187350929044267667390041648877335698042881093118760740211615532779721703059325572589913907139533844112505183479990476125174957368018488372049405588199910729609137920670559751572417444747103300089862508581671633062980169876305771171284065683775593417005112807288599363940643576829851127635691923004014202660326224332773662549309825546755625421570611428681423008680460867362679964008723167132209335788945115465289328868657885999652699438784019233222526976106321234156140777241667900652733929366598486226687797340080281119951160651832252429726542651660101795878302865237771218320066844107985885164680538573715604690715514884857757759818910202315458720786648339875293895336719455486047636669440891818059327724359269096680412172630747927459471140421550241675984955190855435192209352375612887132642394235168254336493323294271032653637615436218315347748844229337245617418559123417235681157100859252647117912577467774859071096444045248432491868913613661638193166365392861306939114648998117868360146108470259677671038333630865834485706661341915585977402981379596342202937021023048264755128472284785357278255580101454997933678298143194536931942079029031490033727949905511271739778967536492634629996309542509514476411868709410495535390636032981877454519984855863385151509699723516943123200646391249147455631595308705470220382236499919773393685001921726502215190143305845259157336054518361068552932558662850715022236892516581267451714307283786616569558478839307372171899331824951602374191961037120548856131425622779653372065285095234065864175307203551624239746387738182302688308338139465105612022346550881613113520641485262152033320633876528972082382193901629627851306154040780992117203844948537081236165206252377348051968660123588287888675705282461961149646224457744488373028000263955074184678059265471923240400021577192991442780627790925764936415123565195101138978948866794824990575768846692061340564772268575701717775619438702785232151556942430266150381737492093626741968960007046080795975786406189308863606477913595128345903001779740589846315563041118049628266834853752835316440652900697793766105635907404947624291518338752440304043015263562808779791440363595252799248211381589628612790787620646384060061063432029966874845231572452426786752941581057463212366020695400252317055110175035235757782215689745744686363300427935423464196319947556437837876929146819211058747738785078876705032515098403351395734451551257122702743758548428289275635163784563927439985435909045019348755379783117521332527746125458744500366402276906261690783839100764343260834084907060823511370986139825053012722052816764274459396354770722155028787087325603577681875687336510791430520577796804653808338780206322846644025663425588684413553281539619603068279614859194255632283815513764319051063150723749045470149986955868395338103375141638958505298099696165540855572384371432297659947560955500122594322505156806798573935543068534699119665430437437670800859961951961211138250750318510872952685720349549874895854171126746601119355215116955825005596488025126552635602809582946590306950885978041959649521300123829160371903669976296867438814685225020436090529340269726433324356182470554993315740291608494771074976076977048203176908349430829276471251398204443504051058951447546680083854353576642022343969028247100078697883409924836533682681006507461607521255573848802566572922706829920648719105587931673077291282256882461056081487309694479438480014280962910540648027002693821060779022275920195381140586252034016593781355127221361300988247083983029786514555975700619566204644574684301260158835119312375786652126806667668001988179464997326568542364110594073447593321295805983058673276545388215961265509888655038007876502843638860307238759938457884121383415825608193237917193956378116476486876124592681021130529271434090001042333209989853166592690106666488783587021850350928793863279857844611073764055753140565312425517946398278920087224366326847427195996256293124166770535894345961709056430694648291807807599609976517774655816685068216404716510920662055252271159370653579309288902110275353920593762379339192497745239947275255637009643453548304850754765573835866277771578970155577241732134602652899447589255013208936777531277312990455463464559885678094162834073152282006545457070611067615077940203572131581906397949281995478217647642989198897286279226219242877616796522013513587593090748129817889824580009029347015418265944827744200738110129605802268512448589442872266616996498241602304139345053882769141141169854480384