CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!
CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!
Path: blob/master/Day01-15/code/Day11/pi_million_digits.txt
Views: 729
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679182148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381962442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127337245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949125983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513260005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235742019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318598502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730395982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989103809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151115574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912139331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279146782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955153211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000168164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333174547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383188279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863190674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009209465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203214962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382226868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388234390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506240168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125251507606947945109659609402522887971089314566913686722874894056010150330861792868092087476091782493858269009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364275428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344280374200731057853906219838744780847848968332144571386875194350643021845319104848100537061468067491927298191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961305679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215310306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856321005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007332305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116347229109816909152801735067127485832228718352093539657251210835791513698820914442100675103346711031412356711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535368932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923372332609729971208443357326548938239119325974636673058360414281388303203824903758985243744170291327656381809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658392131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396406655730925471105578537634668206531098965269186205647693125705863566201855810072936065987648611791045413348850346113657686753249441668039626579787718556084552965412665408530614344431858676975145661406800427002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266830436343285878569830523580893306575740679545716377525420211495576158140025012622859413021647155097925923440990796547376125517656751357517829666454779174501129961489030463994713296210734043751895735961458901459389713111790429782856475032031986915140287080859904801094121472213179476477726224142548545403321571468530614228813758504306332175182979866223717215916077166925474873898665494945011465406284336639379003479769265672146385306736096571209180763832716641627488880078692560290228472104031721186082041900042296486171196377921337575114959501566049631862947265473642523081770367515906735023507283540567040386743513496222247715891504953098444893330963408780769325993978054193414473774418426312986080998886874132604721505695162396586457302163159819319516735381297416772947867242292465436680098067692823828068996400482435514037014163149658979409243237896907069779422362508221688957383798623001593776471651228935786015881617525578297352334460428151262720373431465319777741603199066554187639792933441952154134189948544473456738533162499341913181480927777103863877343177207545654532207770921201905166096280490926360197598828161332543166636528619326686336062735676303544776280350450777235547105859548702790814356240145171806246436267559456127531813407833033625423278394497538243720583531147711992606381334677687969597030983391307710987560408591337464144282277263465947047458784778720192771528073176790770715721344473060570073349243693113578350493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415589562586586557055269049652098580338507224264829397285847831630577775606888764462482468579260395352773594803048029005876075825104747091643961362676044925627420420832085661190625454337213153595845068772460602901618766795240616342522577195429162991930645537799140373404328752628889639958794757291746426357455612540790914513571113694109119393251910760208252026187985318877058429725916778131496990090192116971737622784768472686084900337702424291651300500516832336435038951702989392233451722013812806965011784408745631960121228599371623130171144484640903890644954440061986907548516026327505298349187407866808818338510642283345085048608250393021332197155184306354550076682829493041377655279397517546139539846833936383047654611996653858153842056853386218672523340283087112328278921250771262946322956398989893582116745627010662183564622013496715188190973038119800497340723961036854066431939509790190699639552453005450580685501679567302292191393391856803449039820595510022635353619204199474553859381023439554495977837790237421617682711172364343543947822181852862408514006660443325888569867054315470696574745855033232334210730154594690516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867704460477464915995054973742562690104903778198683593814657412680492564879855614537234786733039046883834713634655379498641927056387293174872332083760112302991136793862708943879936201629515413371424892830722720126901475466847653576164773794675200490757155527819653621323926406160136358155907422020203187277605732772190055614842555187925303435139844253223415762336106425063904975008656271095359194658975141310348742276930624743536325691607815478181152843667957061108615331504452127473924544945423682886061340841486753776700961207151249140430272538607648236341433462351897576645216413767969031495019108575984423919862769164219399490723623464684411739403265918404437805133389452574239950829659122850855582157250310712570771266830240292952522011872676756220415420516184163484756516999811614101002996078386909291603028840026789104140792886215078424516709087000699282120660418371806535567252532567532861291042487761825829765157799598470356222629348600341587229805349896502262917487882027342092222453398562647669149055628425039127805771028402799806636582548892648802545661017296702664076559042909945681506526530537182941270336931378815178609040708667114965583434347693385781711386455873678123014587687126603489139095620099393610310291826161528813843790990423174733639480457593149314052976347574811935670911013775172100803155902485309066839203767192203322909433467685142214477379393751703443661991040337511173547191855046449026365512816228848244625759163330391072253837421821408835086573917715096828874782656995995744906617583441375223970968853408005355984917541738188399944697486762655165827658483588453142775687900290951702835297163445621296864043523117600665101241200659755851276178583829204197484423608007193045761893234922927965019875187212877267507981255470958904556357921221033346697499235630254947802490114195212382815309114079073860251522887429958180724716259166854513331239480494707911915326734302824418604142636395480004480026704962482017899289647669758318327131425170296923488962766844032326092752496035799646925650493681836090032380929345909588970695365349406034021665443755890045632882250545255640564482465151875471196218443965825337543885916909411303150952617937800297412076651479394259029896959469955657612186561967337862362561252163208628926922210327488921865436480229678070576561514463204692790682120738837781423356282360896320806822246801932248261177185896381409183903673672220888321513755600372798394004152970028783076670944474560134556417942543709069793961225714298946715435784687886144458123145935719849225284716050492212424701412147805734955510500801908699603302763478708108175450119307141223390866393833952942578690507643100638351983438934961596131854347546495569781038293097164651438407007073604112373599843452251610507027056235266012764848973084076118301305279320542746286540360367453286510570658748822569815793678976697422057505968344086973985020141020672358502007245225632651341055924019027421624843914035998953539459094407046912091409387001992645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678100566722796619885782794848855834397518744545512965634434803966420557982936804352202770984294232533022510176341807039476994159791594530069752148293366555661567873640053666564165473217043903521329543529169411024599041608753201868379370234888689479151071637852902345292440773659495630510074210871426134974595615103138498713757047101787957310422969066670214498637464595280824369445789772330048764765241339075920434010419634039114732023380715095222010682563427471646024335440051521266932493419673977041595683753555166731050273900749729736354964533288869844061196496162773449518273695588220757355176651589855190986665393549106481068873206859907540792342402300925900701731960362254756478940647548346647760411463233905651343306810744953979070903023460461470961696886885014083470405460742958699138296682468185710318879065287036650831082431974404771855678934823089431068287027228097362480939962706074726455399253994428081137369433887294109063079261595995462624629707062594845569034711972996409089418059534393251236235508134949004364278527111038315912568989295196427287573946914272534366941532361004537304881985517065941217352462589548730167601110298865925786628561249665523533829428785425340483083307016537228563559152534784459818313411290019992112059813522051173365856407826484942764411376393866924803118364453698589175442647399882284621844900877711369776312795722672655562596282542765318300134070922334365779160128093179401718598599933849235495640051147099558561134980252499066984233017350358044081168552653117099570899427328709258487894436460050410892115266917835258707859512983441729535195378855345737426085902908176515578039059464087350612322611200937311610804854852635722825768203416050484662775045003126200800799804925485346941469775164932709504934639381172432227188515974054702148289711177792376122578873477188196825462981268685817050740272550263329044976118277894423621674119186269439650671515779586756482399391760426017633870454990176143641204692182370764811987834196896861181558158736062938603810171215855272668300823834046564758804051380801633638874216371401206435495561868964112282140753302655100424104896783528588290243670904887118190909494533144218287661810121310073547705498159680772009474696134360928614849417850171807793068108546900094458995279424398139213512205586422196483491512639012803832001097738680662877923971801461343244572640097374257007359210031541501238936793008169980536520276007277496745840028362405346037263416554259027601834840306811381855105979705124664007509426087885735796037324514146786703688098806097164258497595138069309449401515422221943291302112573912538355915031003330325111749156969174502714943315155885403922164097229101129035521815762823283181262342548326111912800928252561902052630163911477247331485739107775874425387611746578671169414776421441127111263583553871361011023267987756410246824032264834641766369806637857681349204530224081972785647198312896308781543221166912246415911776732253264335686146186545222681268872684459684424161078540167681420801298850280054143613146230821025941737562389942075713627516745731891894562835257044133543758575342698699130472547031656613991999682628247270641336222178923903176085428943733935618891651250424404008952719837813173864805847268954624388234375178852014395600571048119498842390606136957342315590796703461491434478861323604103182350736502778590897578272731305048893989009923913503373250855982655867089242612429473670193133907727130706869170926462548423240748550366080136046689511840093668609546325002145852930950000907151013458236267293264537382104938724996699339424685516483261134146110680267446637334375340764294026682973861355220935701626384648528514903629320199199688285171839536691345222444708045923966028171565515656661113136598231122506289058549145097157553900243931535190902107119457300243880176615035270862602537881797519413778061013715004489917210022201335013106016391541589578037117792775225978742891917915522417189585361681380594741234193398420218745649256443462392531953135103311476394911995072858430658361935369329699289837139914941939406085724863968836903265564364216644257607914710869984315733749648835292769328220762947282314081537409961545598798259891093717126218283025848112389011968221429457667580718653806506487026133892821412994972574530332838963818439447707794022843598834100358385423897354243956475556840952248445541392394142100016207693636846776413017819659379971557468541946334893748439129742391433659360410035234377706588814367781139498616478747140793263858738624732889645643598774667638479466504074111825658378878454858148961442961273998413442726086061872455452360643153710112746809778704464094758280348769758948328241239292960145582948619196670918958089833201210318430340128495116203534280144127617285830243559830032042024512072814672535581195840149180969253395075778400067465526031446167050827682772223534191102634163157147406123851470425845988419907611287258059113935689601431668283176323567325417073420817332230462987992804908514094148790368878687894930546955703072619009502076433493359106024545086453628935456862958531315337183868265614917862273637169757741830239860065914816164049449650117321313895747062088474802365371031150898427992751504426853277974311395143574172219759799359685252285745263796289612691572357986620573408375766873884266151405990993505000813375432454635967504844235284874701443545419576258473564216198134073468541117668831115286544893776979566517279662326714810338643913751865946730024434500544995399742372328712494834706044061533471606325830649829795510109541836235030309453097335834462839476304775645015008507578949548931393944154899216125525597701436858943585877526379625597081677643800125436502371412783467926101995585224717220115577723700417808419423948725406801556035998390548985723546745642390585850216719031395262944554391316631561345308939062046784387785054239390524731362012947691874975191011472315289326772533918146607300089027157768963114810902209724520759167297007850580717186381054967973100167870850694207092232908070383263453415852038027860990556900134137182368370991949516489600755049341267876436746384902063964019766685592335651594639138363185745698147196210841080961884605456039038455343729141446513474940784884423772175154334260160306698831768331001133108690421939031080143784334151370924353013677631084913516156422698475074303297116167469640666531527035325467112667522460551199581831963763707617991919203579582007595605302346267757941623936307463056901080114942714100939136913810725813781357894005599500183542511841721360557275221035268163037357265279224173736057511278872181908449006178013889710770822931002797665935838758909395688148560216463224393726562472776037890814458837855019702843779362407825052704875816470324581290878395232453237891656029841669225489649715606981192186584926770403956481278102179913217416305810554598801300484562997651166121241536374515005635070127815926714241342103301566165356024733807843028655257222753049998837015348716793008062601809623815161366903341111386538510919367393835229345888322550887064507539473952043968079061687086806445096986548801682874343786126453815834280753061845485903798217994599681154419742536344399602169902510015888272164745006820704193761584547123183460072629339550548239557137256840232268213012476794517022644820910235647752723082081063518899152692889108455571126603965034397896278250016110153235160519651715904211844949907789992007329476905868577878720982901352956613978884860509786085957017731298155314951172681467176959760994210036183559138777817698458758104466283998806006162298486169353373865787735983361617313384133853684211978938900185295691967804554482858483701170967212535338758621582310133103877668272111745726949518179589754693992642197915523385766231676275475703546994148929041301863861194391962838870543175677743224276809132365449485366768000001065262485473055861598999140170769838548318875014293890899506817654530765116803337322265175662207526951791442252808165171667766727930354851542040238174608923283917031772754257508676551178593950027933895920576682789677644531840404185540104351348389531201326378369283580178827193783126549617459970567450718332065034556644034490453627560011250184335607361222765949278393706417978426456763388188075656121689605041611390390639601620221536849410926053876887148379895599991120991641806464411918568277004574243434021672276445589330127781586869525069499364610175685060167145354315814801181054588605645501332037586454858403240298717093480910556211671546848477803944756979804263180991756422818209873998766973237695737015808068229045992123661689025962730430679316531149401764737693873514093361831833216142802149763399189835484875625298752423873077559555955465196394401821840998412489826236737714672184260616336432964063357281070788758164043814850188411431885988276944901193212968271588841338694346828518590066640806314077757725705630729400492940302420498416565479736705485580445865720227637840466823379851862827105784319753541795011347273625774080213476826045022851579795797647467022840999561601569108903845187824502679265942055503958792298185264800706837650418365620945554346135134152570065974881916341359556718819649654032187271602648593049039787489589066127250794828276938953521753621850796297785146188432719221893223810158744450528665238022532843891375273845892384422535472653098171578447834215822327020690287232190330053862163479885094695472004795231120150432932266282727632177908840087861480221475376578105819702219126309717495072127248479478169572961423658595782090830733233560348465318730293026659645013718375428891927557971449924654038681799213893469244741985097334626793321072686870768062639919361965044099542167627193840914669856925715074315740793805323925239477557441591845821562518192155233709607483329234921034514619426437449805596103307994145347784574699992128599999399612281615219314888769388022281083001986016549411956542616968586788372609587745676182507275992950893180521872924610867639958916145855058397274209809097196817293239301067663868240401113040247007350857828724627134946368531815469690466968693925472519413992919714652423857762550047485295476814795467007050347999588867695016124972282040303995463278830695976249361981510102436555352230690612949388599015734661023712235478911292547696176005047974928060721268039226911199027772261025441492215765045081206771735712027180242968106203776578837166909109418074487814049075517820020385653909910477594141321543284406250301802757169650820964273484146957263978842560084531214065935802019041271135920041975985136254796160632288736181367373244506079244117639975974619383584574915988097667202447093006546342423460634237474666080431701260052055928493695941434081468529815053947178900451835755120354125223590590687264878635752541911288877371766374860276606349603536794702692322971868327717393236192042007774522126247518698334951510198642698878471719396649769070825217423365662725928440620430214113719205922785269984698847702323823840055655517889087661360130477098438611687052310553149162517283732728676020607248172987637569816335415074608838663640693470437206688651275688266149730788657015685016918647488542071679154596507234287730699853713904300266530783987763850323818215535597323530686043010675760838908627208049841888595138091030423595782495143988590113185835840667472370297149785084145853085781339156270760320956390763947311455495832266945702494139831634332378975955680856836297253867913275055542524491943589122108405045226953812179131914513500993846311774017971512283785460116035955402864405902496466930707769055211481028850208085800878115773817191741776017330738554758006056014337743299012728677253043182519757916721292969965041460706645712588834697979642931622965520168797300035646304579308840327480771811555330909882137025505207680463034608658165394876951960044084820659673794731680864156456505300498816164905788311543214454850526600698230931577765003780704661264706021457505793270962047825615247145918965223608396645624121505195510522357239739512881816405978591427914816542632892004281609136937773722299983327082082969955732167727375667615527113922588055201898876201141680054687365580633471603734291703907986396522961312801782217679717289822936070288069087768660593252746378405397691848082041021944719713869256084162451123980620121813184541244782050110798760717155683154078865439041210873032402010685341947230476666721749869868547072196781205124736792479193150856444775379853799732234456122785843296846647513336573692387201464723679427220870042503255589926884349592876124007558756946413705625140011797133166207153715436006876477318675587122148783989081074295309410605969443158477539700943988394914432353668539209946879645066533985738887866142227629443414010498889931600512076781035886116602029611936396821349607501116498327856353161451684576956223871090029997698412632665023477167286573785790857466460772283415403114415294188047825438761770790430022401566986776795760909966936075594965152736349811896413043311662774712338817406037317439705406703109672256765748695358789670031925866259410510533584384656023391796749267844763708474978333655579007384191473226198862713525954625181604342253729962863267496824058060296421146386436864224724887283434170441573482422781833301640566959668866769563491416328426414974533349999480002669987588815935073578151958899005395122280853510357261373640343675347141048360175464883004078464167452167371904831096767113443494819262681110229739948250607394950735031690197318521195526356325843390998224986240670310768318446607291248747540316123079699411397387765899868554170318847788675929026070043212666179192235209382278788809886335991160819232315355570464634911320859189796132791319756490976000139962344455350143464268604644958624769094347048293232294140411146540923988344435159133201077394411184074107684981066347241048239358274019449356651610884623331256785297769734684303061462418035852933159734583038455410337010916767763742762102137013548544509262343071901147318485749233181672072137279355679528443925481560913728128406333039373562420016045664557414235588166052166608738748047243391212955877763906969037078828527753894052460758496231574369171131761347823638827194168606625721036851321566478001476752310393578606896111259960281839309548709059073861351914592371819510297327875571049729011487171897180046961697770017913919613791417162707018958469214343696762927238459109940060084983568425201915593703701011049747339493877885989417433031785348707603221982970579751123991440510994235883034546353492349826883624043327267415540301619505680654180939409982020609994140216892400900708213307230896621197755306659188141191577836272927461561857103721724710095214236964830864102592241887457999322374955191221951903424452307535133806856807354464995127203174487195403976107308060269906224258076020292731455252078079914184290638844373499681458273372072663917670201183004648190002413083508842436584152148991276106513741539435657211390328574918769094413702090517031487773461652879848235338297260244136110984514841823808120540996125274580881099486972216128524897425555516076371675054896173016809613824503811914361143992106380050832140987604599309324851025168294467260666138151745712559754953580239983142466982203613380828499356705575524712902745397762140493182014658008021566536067765508783804304134310591247804606800834591136640834887408005741272586704792258319127415739080914383138456424150940849133918096824840251163991936853225557338966953749026620923261318855891580832455571948453875628786128859004106006072493746501402627824027346962528217174941582331749239683530136178653673760642166778137739951006589528877250427662636841830680190804609849809469763667335662282915132352788806157768278159588669180238940333076425141912403412022316368577860357276941541778826435238131905028087018575047046312933353757285386605888902524583111450773942935201994321971171642235005644042979892081594307167019857469273848653833436145794634253175922573898588001698014757420542995801242958105456510831046297282937584161162532562516572498078492025499897990620035936509934721582965174135798491047111660791587436986541222348341887722929446335178653852556731962559852026072947674072616767145573649812105677716893484917660771705277187601199908144113058645256577910525684304811440261938402322470939249802933550731845890355397133088446174107959162511714864874425768611247605428673436709046678468670274091881014249711149657817724279347070216688295610877794405048432587528443375108828264771978540006509704033021862556147332117771174413350281608840351781452541964320309259576018694649088681545285621346988355444560249556668436602922195124830910605377201980218310103270417826038665447181260397190688462370857518080035327047185659499476124248110999288679158969049563947624608422614065930948621507690314987020673533848349550836366017848771060809804269247132410009464014373603265645262184566792456669551001502298330798496079949882497061723674493612262229617908143114146609412341593593026395854079139087208322733549572080757165171876599449856937956238755516175754380917805280294642004472152643962807463602113294255916002570735628126387331060058910652457080244749375431841494014821199962764531265068006631183823761639663180931444671298615527598201451410275600689297502463040173514891945763607893526628555053173314164570504996443890936308438744847839616840518452732884032345202470568516465716477139322673775517294795126132398229602394548579754586517458787713318138752959809412174227300352296508089177705268068259248822322154938048371454781647213976820963320508305647920482085920475499857320388876391601995226940918938945576768749730856955958010659526503036266159750662225084067428898265907510637563569968211512700949669744580547288693631020367823250182323708459790111548472087618212477813266330412076216587312970271811230758159821248639807212407868878114501655825136178903070860870198975889807456643955157415363193127291981070575336633738038272152798849350397480015890519420879711308051233933221903466249917169150948542731401871060354603794643379005890957721180804465743962806186717861017156740967662080295766577051291209274907944304632892947306159510430902221439371849560634056189342513057268291465783293340524635028929175427570872564842600349629611654138230077313327298305001602567240141851520418907011542885799208121984493152766999059182011819733500126187728036812481995877070207532406361259313438595542547781961142935163561223277496661522614735399674051584998603552953329245752388810136202347624669055816438967863097627365504724327848643071218494373485300606387644566272186661701238127715621379746149861328744117714552444708997144522792885662942440230184791205478498574521634696448973892062401943518310088283480249249085403077863875165280911302873958787098100772718271874529013972836614842142871705531796543076504534324600536361472618180928169976933486264077435199928686323835088756683595097265574815431940195576850437248001020413749831872252829677387154958399718444907279141965845930083942637020875635398216962055324803212267498911402678528599283673405242031091797899905718821949391320753431707980023736590985375520238911643467185582906853711897928452626234492483392496342449714656846591248918556629589329909035239233333647435203707701010843880032902857598342170185542283861617210417603011645918780539367447472059985023582891833692922337323999480437108286419659473162654825748099482509991833006976569367159689364493348864744213500840700660883597235039532328740179582557036016936990988671132109798897070517280755855191269930673099250704070245568507786790694762886126298082251633136399521170984528092630375922426742575599892892783704744452189363203489415521044597289261883800300677617931381399162058062701651024458869247649246891924612125310275731390840470007143561329062316992371694848132554200914530410371354532966206392105479824392125172540132314902740585892063217582919494345489068463993137570910346332714153162232805522972979538018801628590735729554162788676498274186292164218789885741071649069191851162815285486794173638906653885764229158342500673612453849160674137340129373572779956341043326883569507814931378007362354180070619180267328551191942676091221035987469241172832947493126163395001239599240508454375698507957046222664619000103500490183034153545842833764378111988556295318777792537201166718539541835984438305203762819440761594106820716970302285152250573126093046898423429633152732131361216582808075212631547730604423774753505952287174402666389148817173086436111389069420272979088143119448799417154042103412190847094080254023932942945493878640230512927119097513536000921971105298412096683111516328705423028470073120658032626417116165957613272351566662536672718998534199895236884829930999302757419916463841427077988708874229277053891227172486322028898425125287217826030500994510824783003572905691988555467886079462805371227042466543192145281760741482403827835829719301017888345674167811301398954750448339314689630763396657226727043393216745421824557062524797219978668542798977992339579057530281890622525473582205236424850783407110144980478726691990186438822932305382318559732869780922253529593031017341407334884761005564018242392192695062083183814546983923664613639891012102177095976704908305081304854704194664371312299692358895384930136356576186106062228705599423371631021278457446463989738188566730546260879482018647487672727222062676465338099801966883680994159075776852639865146253336312450536402613060569605513183813174261184420189088853196356986962795036738424313011331753305329802016688817481342988307681585577810343231753064784983210629718425184385534427620128234570716988530518326179641178579608888130850329602290705614476220915094739035946646916235396809201394578175891088931992112260073928149169481613095273842736264298098234063200244024495894456129167049508235812487391799648641133480324757775219708932310772262349486015046652681439877051615317026696929704928316285504212898146706195331970269507214378230431176875280287354126166391708245925170010714180854800636923259462019002278087409859771921805158532147393122653251559035410209284665925299914353791825314545290598415817637058927906909896911164381187809435371313521332261443625314490127454772695739393481546916311624928873574718824071503995009446731954316193855431485207665738825139639163576723151005556037263394867208207808653734942440115799667507360711159351331953159197120948964717553024531364770942094635696982226673775209945168450643623824211853534887989395673187316806606107885440005508276570305587448541805778891719207881423351138662929667179643468760077047999537831783387870348718021842437342112273940255717690819603092018240188427057046092622564178375265263358324243180661253311529423457965569502506810018310900411245379015332966156970522379210325706937051090830789479319999004999395322153622748476603613677697978567386584670936679588583788795625946464891376652199588286932033801836011932368578558558195556042156250883650203322024513762158204618106705195330653060606501054883217167245377942831338871631395596905832083416898476065607118347136218123246227258841990286142087284956322879639325464285343075301105285713829643709990356948885285190402956047346131138263878897551788560424932398748316382804046848618938189590542039889872650697620201995548412650005394428203930127481638158530393246439925470201672759328574366661644110962566337305409219519675148328734808957477775278344221091073111325351828046036347198185655572957144747682552857863349342858423118749440003229690697758315903858039353532621358860079600342097547392296733310649395601812237812854584317605561733861126734780745850676063048223279409653041118306671081893031108871728167519579675347188537229309616143204006381322465841111157758358328581135018569047815368938137718472814751998350504781297718599084707621974605887423256995828892535041932937958260616211842368768511418316068315867994601652057740529423053601780313357263267054790338401257303305912339601880137825421927094767337191987287385248057421248921183470876629667207272325650565129333126331059505777727542471241648312832982072361750574673870128209575544305968395555686861188397135522084452833252640081252027665557677495969626612604565245684086139238265768583384698499778726706555191854468698463339478495734622606294219624557085371272776523098955450193037732166649182578154677292005212667143463209334637891852323215018976126034373684067194193037746880999296877582441047878123266253181845960453853543833539114496775312864260925211537673258866722604042523491087026958099647595805794663973419064010036361903364042033113579336542426303561457009011244800890020801478056603710154122328891465722393145076071670643337556827437743965789067972687438473076346451677562103098604092717090951280863090297385044527182892749633889212106670081648583395537735919136950153162018908887484210798706899114804669270650940762046502772523398650728905328548561433160812693005693785417861096969202538865034577183176686885923681488475276498468340821949739729707737187188400414323127636504814531122850990020742409255859252926103021067368154347015234152348786351643976235860419194129697690405264832347009911154242601273438022089331096686367898694977993424001260164227609260823493041180643829138347354679725399262338791582998486459271734059225620749105308343531537182911681637219395188700957788181586850464507699343940987433514431626330317247747486897918209234439480833143970840673084079589358108966564775859905563769525232653614424780230826811831037735887089243450613031336477371011628214614661679404090518615260360092521947218890918107335871964142144478654899528346582343947050079830388538860831035719306002771194558021911942899922722353458707566246926177663178855134744350218287026685610665003531050216318206017609217984684936863161293727951873078972637353717150256373488733579771808184878458866504335824377004147710414934927438457587107159731559439426412570270965125108349115548247939403597681188117282472158250109496096625393395380922195591918188552678062149923172763163235018339896938075616855911752998450132067129392404144593862398809381240452191484831646210147389182510103519096773869066404158973610476436500068077105656718486281496371118832192445663945814491486165500495676352982690308911185687986929470513524816091743243015383684707292898982846022237301452655679898627767968035391469798378268764311598832109043715611299766521539635464420869197567370005738764978437686287681792493547469438427465256316323005551304174227341646455127812784577772457520386543754282825671412885834544435355132562054464241011037955464190581168623059644769587054072141985212106734332410756767575818456990693035646047522770167005684543969234041711089888993416350585157887353430815520811772071880379104046983069573578685473937656433631979786803671873079693924236321448450354776315670255390065423117920153464977929066358241508328858395290542637687668968805033317227800185885069736232403894700471897619347344308437443759935925034178807972235859134245813144049847701732361694719765715353197754997162785663119046912609182591243609890367654176979903623755286526375733763526969344354400473067198868901968147428767790866979688522501361636949856730217523132529265375896415171479559538784278499866456302878831962099830494519874396369070636282762657485810439112232618794059941554063270131989895703761105323606298674803779153767511583043208493638720920280929752649812569163425000522908872646925284666104665392171482080130502298052637836426959733364707053922789153510568883938113249757071331029504430346715989448786847116438328050692507766274500122036503526203709466023414648998390252588830148678162196775194583167718762757200505439794412459900771152053661546199305098386982542846407255540927403132571632640792934183342147090412542533523248021932277075355367546795871638358750181593387174236061551171013123525633485820365146141870049205704372018261733194715736800867578539336078622739558185797587258744102542077105475361294047460100094095444959662881486915903893699071865980563617137692227290764197755177720104276496949611056220592502420217704269622154958726453989370227697660310524980855759471631075870133208861463266412591148633881220284440694169488261529577625325037119870359870674380469821942056381255833436421949232275937221289056420943082352544084110864545369404963729271494003319782861318186188811118408257865928757426384450059944229568586460481033015388911499486935373436030221810943466764000022362550573631294626296096198760564259963946138692330837196265954739234624137434597795748524647837980795693198650815977675350553918991151335252298736112779182748542008689539658353759421963331502869561192012298889887006079992795411188269023078913107603617634779489432032102773359416376908650071932804017163840644987871753756781185321328408216571107549528294974936214608215583205687232137785574065161096274874375098092230211609982633033915469494644491004515280925089745074896760324090768983783652940657920198315265410658136823791984090645712468948470209357761193139980246813405200394781949866379202624008902150166163813538381515037735022966074627952910384068685569070157516624192987244482719429338031004854824454580718897633003232525821581280327467962002814762431828622171054352898348208273451680183816131719593324711074662228508710666117703465352839577625997744672185715816126411143271794347885990892382808486694914139097716736900277758502686646540565950394867841110790116104008572744562938425494167594638305487117235946429105850909950214958793112196135908315882620682332156153086833730838173279328196983873845087083483880463884784418840031847126974543709373298362402875197920802321878744882872843727378017827385008058782410749357514889978911739746129320351081432703251409030487462262942344327571260086642508333138687688650756429271605525289544921537651751492196367181049435317858383453865255656640657251363575064353873236508936790431702597878177190314867963840828810209461490079715137717099061954969640070867667102330388048672631475510537231757114322317411411680622864206388906210192355223546711662137499693269321737043138905987225039456574924616978260970253359475020913836673772894438696400028110344026084712899000746807763904844088711341352503367877316797709372778682166117865344231732264637847697875144332095340001650692130391546476890985050203015044880834261845208730530973189492916425322933612431514306578264070283898409841639202950309241897120971601649265613413433422298827909921786042679812457285345801338260995877178113102163937340256562744007296834066198480676615805021691833723680399027931606420436812079900316264449146190219394458229690992122788553948783538305646864881655562294315673128274390826450611628942803501661336697824039551770155219626522725455850738640585299830379180350432876703809252167907571204061237596327685674845073969151147313440001832570344920909712435809447900462494313455028900680648704293534037436032625820535790397118395649089354345101342969617545249573960621490288728932792520696535386396443225388327522499605986939874759882329916263545973324445163755334377492928990581175786355555626937426910947117002165411718219753990519831787137106051063795558588905568852887989084750915764639074693619881507814685262133252473837651400192990156109189777922008705793396463827490680698769168197492365624226087154176100430608904377976678540119661891404144925270480881971498801542057787006521594009289777601330756847966992955433656139847738064020394368895887646054983871478968482805384701730871117761159663505039979343869339119789887109156541709403133082607647406305711411098839388095481437828474528838368079418884342666222070438722887413947801017740421392281911992365405516395893474263953824829609036900288359327745855060801317988407162446563997948274055783650195514221551339281978226984278638391679715091262410548725700924070045488485692950448110738087406996547481568913935380943474556972128919827177020766613602489581468119133614121258783895577357194986340717210844398901423948496659251731388171602663261931065366535041473070804414939169363262373767777095854080313255990095762731957308648042467701212327020533742667053142448208168130306397378736642483672539837409487690980602182785786216512738563513290148903509883270617258932575363993979055729175160097615459044741071692265806315111028038436017374742152476085152099016158582312571590733421736576267142390478279587284111505095633092802668458937649649770232973641319060982740633531089792464242134583740901169391964250459412128813403498810635400887596820054408364386516617880557608956896727531538081942077332597917278437625641361184319891025007491829086475149794003160703845549465385946027452447466812314687943441610993338908994142638411847425257044572517459325738989565185716575961481266020310797628254165590506042479114016957900415338356574869252800743025623419498286467914476322774005529460903940177536335655471931000175430047504741619144899841040015867946179241610016454716551337074073950260442769538553834397550548871099785205401174175169747581344926079433689543783221172450687344231989878844128542064742809735625807066983106979935260418693392135685881391214807354728463227784908087002467776303605551232386656295178853719673034634701222941939581606792509153217489030840886516061119011498443412350124646928028805996134283511884715449771278474203361766285062169778717743824362565711779450064477718370221999106695021656757644044997940765037999954421845002710665987813603802314126836905783190460792765297277694043613023051787080546511542469395265127142201052927070306673024447125973939950514628404767431363739978259184541176413327906460636584152927019034230276017339474866960348694976541752429306040727005059039503148522921392575594845078867977925253931765424156416197168443524369794447355964260633391055126826061595726217036698506473281266724521989060549880242580782881429796336696744124805982192146339565745722102298677599746738126069367069134081559412016115964260190237753525556300606247983261249881288192937343476862689219239777833910733106588256813777172328315427329082525092733047850724977139448333892552081175608452966590553940965568541706001179857293813998258342819293679100391844099286575605993598910002969864460974714718470101531283762631146774209145574041815904298800064943237855839308530828305476076799524357391631221886057549673832243195650655460852881201902363430644712703748634421727257879503428486312944916318475347531435041392096108796057730987201352484075057643137199253650470908582513936863463863368042891767107602111159828875539940120076013947033661793715396304326139863655492213741597905119083588290097656647300733879314678913181465109316761575821351424860442292433445304113160652700974330088499034675405518640677342603583409608605533747362760935658853109760994238343447382222087292464497684560579562516765574088410321731345627735856052358236389532038534024842273371634359123973215995440828421666636023296545694703577184873442034227706653837387506169212768015766181095420436097708363604361110592409117889540338021426523948929686439808926114635414571535194342850721353453018343715875628275733898268898523557799295727645229391567477566676051087887648453493636068278050564622813594388885879259940946446041705204470046315137975431737187756039815962647501410906658866162180038266989961439965580587208639721176995219466789857011798332440601811575658074284182910615193917630059194314434605144054047710570054339000182453117733718955857603607182860506356479979004139761808955363669603162193113254410223851791672055180659263518036251214575926238369348222665895576994660491938112486609099798128571823442494006615552196112207203092277646200999315244273589488710576623894693889446495093960330454340842102444362401048723328750081749179875543879387381439894238011762700837196053094383940063756116458560943129514447597713935396074322792489221267045808183313764165818269562105872892447740035947009268662659651422050445630078592002488291860839743732353849083964326147000532423540647042089499210250404726781059083644007444666380020870126664209457181702946752278540074508552377720890581683918446592829417018288233014971554234475235911774818628592967605048203864343108779562892925405638946621948268711042828163893975711757786915448430165058602965217459581988878680408110328432739867198621306205559855266036405046282152306154594474444989908839081999738747452969810776201487134000122535522246695409315213115337915798026979555710508507474503874750758068765376445782524432638046143042889235934852961058269382103498000405248407084403561167817451170512813378805705643450616119330424440798260377951198548694559152051960093041271007277849301555038845295360338261929343797081874320949914159593396368110627557295278004254863060054523839151068998913578824530019411786535682149118528207852130125518518493711503422159542244511900207393539627400208110465530207454932867254740543652717595893500716336076321614725815407642053020045340183572338292661915308354095120245526329165054426123619197051613839357326693760156914429944943744856809775696303129588719161129294681884564936338647392747601226964158848900965717086160598147204467428664208765334799858222090619802173211614457230419477754990738738567941189824660913091691772274207233367635032678340586301930193242996397204445145879288122854478211953530898910125342975524727635730226281382091807439748671453590778633530160821559914591314144205091447293535022230817193663509346865858656314855575862447818620108711889760652969899269328460178705576435143382060141077329261063431525337182243385263520217735440715281898137698755157574546939746127150488469793619500477720970561793913828989845327426227288647108883270173723258818244658436249580594622560338105215606206155713299156084892064340303395262263451454283678698288074251422567451806184149564463686111635404971897682154227722479474033571527436819409892050113653400123846714296551867344153741615046442563256713430247655125219218035780169240326699541746087592409207004669340396510178134857835694440764650470232540755557764728450751826890418293966113310160131119077398632462778219023650660374041606724962466490137433217246454097412995570529142438208076098364823465973886691349919784013108015581343979194852846730436739012482082444814128095443773898320059864909159505322857914576884962578665885999179867520554554688099004556461178755249370124553217170194282884617402736649978475508294228020232901221630102309772151469569446427909802190826689868834263071609207914085197695235553488657743425277531197247430873043619511347096119080030255878387644206085044730631299277888942729189727169890575925244679660189707482960949190644718764693702750773866432391919042254290235318923377293166736086996228032557185308919284403805071030064472776847863243191000223929785255372375566213644740096760539439838235764606992465260089090624105904215447353927904411529580345334500256244101006359530039598864466169595626351878060688513723462707997327233134744693971456285542615467650632465676620279245208581347717608521691340946520307673391841147504140168924475121319826881568664561485380287539331160232292555618941042995335640095786495340935115266454024418775947649316930560448686420862757201172319526405023099774567647838488973464317215980626787671838005247696884774084989185086149003432403476742686245952395890358582135006450998178244636087317754378859677672919526478111213859194725451400301180503437875277664402762618941017576872680428176623860680477885242887430259147945247073950546525135339459598789619778911041890292943818567205070964606263541732944649576612651953494805701860015412623962286413897796733329070567376962156498184506842263690367849555970026079867996261019481039331263768556968767029295371162528005543100786408728939225714512481135778627664902425161990277471048290335933309304948380597856628844787441469841499067123764789582263294904679812089984857163571087831194831848630254501620929805829208334813638405421720056121989353669371336733392464416125223196943471206417484375491216357008573694397305979709719726666642267431117762176403068681310351899112271339724036887000948596862922546465006385288620393800504778276912835603372548255793912985251506829969107754257647488325344861412132800626717094009098223529657957997803018282428490221470748111124018607613415150387569830918652487780658896682362523937845272634530420418802508442363190383318384550522367992357752929106925043261446948850109861088899914658551881873582528164302520939285258077969737620845637482114433988162710031703151334894402309526351929588680690821355853680161000213740851154484912685841268695899174149133820578492800698490255195740201818105641297250836070356851055331787840829000041552511865779453963317538532092149720526649107831260281961164858098684587525129997404092797683176639914655386108937587952214971731728131517932904924431121815871023518740757222100123768721944747209349312324107065080618562372526732540733324875754482493967573450019321902199119960797989373383673242576103938985349278777473980508080015544764061053522202349425409443567718794565430406735896491017610775948364540823486130254718476485189575836674399791508512854958020607820554462991723202028222914886959399729974297471155371858924238493855858595407438104882624648496788053304271463011941589896328792678327322456103852197011130466587100500083285177311776489735230926649761234588873102883515626446023671996644554727608310118788389151149340939344750073025855814756190881394988752357812331342279866503522725367171230756861045004548970360079569827626392344107146584895780241408499158405229536937499710665594894459246286619963556350652623405339439142111271810691052290024657423604150030093691889255865784668461215679554256605416005071276641766056874274200329577160643448606201239821695018271723197826816628249938714995449137302051843669076723577400053932662622760323659751718925901801104502290384274185507894887438832703063283279963007200698012244365116394086922220745320244624121155804354550342064215121585056896157356414313068883443185280853975927734433655384188340303517822946253702015782155047373265523185763554098954033236382319219892171177449469403678296185920803403867575834111518824177439505145077366384071880489358256868542011645031357633355509440319236720348651010561049872726472131986543450635450409131859513145181276437310438972507004981987052176272494065214619959232142314439776546708351715074749367986186552791715824080651063799500184295938799158350171580759883784962257398512129810326379376508218322456594236685376799113140108043139732335449090824910499143325843298821033984698141715756010829750906583065211347076803680695322971990599904451209087275776225351040902392888779424630483280319132710495105478599180196967835321464441189260631526618167443193550817081875477050802654025294109218264858213857511526688155584113198560022135158887210365696087515063187533002942118682221893775546027227291290504292251259787710667873840000616772154638441292371193521828499824350920891801685572798156421858191197490985735130570332667646460728757430565372602768982373259745084479649545648030771598153955827779139373601717422514996027353102768719449444917939785144631597314435351850491413941557329382048542123508173912549749819351508714396615132942045919380106231421774199184060180347949887691051557905554806953878540066453375981865162846419905220452803306263695626490910827627115903856995051246529996062855443838330327638599800792922517846659503551211245284087516229060262011857775313747949362055496401073001348853150735487353905602908951833526400713274732621960311773433943673385759124508149335736911664541281788171454023054750667136518255198284898099512139193995633241336556777098003081910272040997148687418134667006094051021462690280449159520646545330107754695413088714165312544813061192407821188690056027781824235022696189344352547633573536452185619363254417756613981703930632872166905722259745209192917262199844409646158269456380239502837121685226446561785235565164127712826918688615572716201474934052276946595712198314943381622114006936307430444523173284786101777743837977037231795255434107223445512555589998646183876764903972461167959018100035098952428641204195163551108763204267612979826529425882951141275841262732790798807559751851576841264742209475259721843309352972665210015662514552994745127631550917636730259462132930190402837954246323258550301096526706922720227074863419005438302650681214142135057154175057508639907673946335146209082888934938376439352799256900604067311422093312195936202982972351163259386772241477911629572780752395056251581603133359385282311500518626890530658368129988108663263271980611271548858798093487912913707498230575929091862939195529014721197586067270092547718025750337730799397134539532646195269996596385654917590458333585799102012753013204583903200853878881633637685182083727885131175227769609787962142372162545214591281831798216044115311311671406914827170981015457781939202311563871950805024679725792497605772625913328559726371211201905532720771409148645074094926718035815157571514050397610963846755569298970383547314100223802583468767350153329775413279532060971154506484212185936490997917766874774481882870632315515865032898164228288232746865346106592732197907162384642153489852476216789050260998045266483929542357287343977680495774091449538391535575565485459058976495198513801007958010783759945775299196700547602252552034453988712538780171960718153664078124847847257912407824544361682345239570689514272269750431873633263011103053423335821609333191215378806608268341428910415173247216053355849993224548730778822905252324234861531520976938461042582849714538963475341837562003014915703279685301868631572488401526639835689563634657435321783493199825542117308453967745297085839507616458229630324424328237737450517028560698067889521768198156710781633405266759539425404926280756968326107495323390536223090807081455919837355377748742029039018142937311529334644468151212541945097596534306284215319445727118614900017650558177095302468875263250119705209476159416768727784472054200192789137251841622857783792284439084301181121496366424659033634194540657183544771912446621259392655436620306888520055599121235363718226922531781458792593750441448933981608657900876165024635197045828895544481793756681046474614105142498870252139936870509372305447734112641354892806841059107716677821238332854510262185587751312721179344448201440425745083063944738363793906283008973306241380614589414227694747935461665717623182472168350678076487573420491557628217583972975134478990696589532548940335615613167403276547472469212505759116251529654568544633498114317670257295661844775487469378464233737238981920662048511854894378868224807279352022501796545343757274163910791972952950812942922205347717304184477915673991738415498311710362524395716152714669005814700002633010452643547865903290733205468338872078735444762647925297550690170912007874183736735087713376977683496344252419949951388315074877537433849458259765560996555954355118040920178497184685497370696212088524377013853757681416632722412634423982152941645378000492507262765525150789085071265997036708726692764308377229685985169122305037462744310852934305273078865283977335246553017463527703205938179125396915621063637625882937571373840754406468964783100704580613446731271591194655408435935825987782835266531151065041623295329047772174083559349723758552138048305090009646676088301545550612824308740645594431853413755220166305812111033453120745086824339432159043594430312431227471385842556030390106070940315235556172767994160020393975099897629335325855575624808996691829864222677502360193255757974726742578211119734709402357457222271212526852384295874273501563660093188045493338989741571490545584182559738080871565281430102670460284316819230392535297795765862414392701549740879273131051636119137559577008929564823323648298263024607975875767745377160102490804624301856524161756655600160859121534556256067602192689982855377872583145144082654583484409478463178777374794653580169960779405568701192328608045611130904629350871827125934668712766694873899824598527786499569165464029458935064964335809824765965165562142090986755203808309203230487342703468288751604071546653834619611223013759451579252696743642531927356390036038608236450762698827497618723575476762889950752114804852527950845033958570838130476937881321125643674281319487950228066320170022460331989671970649163741175854851878484012054844672588851401562725019565821719066960812627785485964818369621410721714214986361918774754509650308957099470934337856981674465856628267911940611956037845397855839240761276344105766751024307559814552786167815949657062559755074306525671085301597908073343736079432866757890533483669555486803913433720156498834220893399971641479746938696568905480089193067138057171505857307148815649920714086758259602876056459782423770242469805328056632787056941926768467116266879463486950464507420219373945259262668613552940624781361206202636498199999498405145703868285258956342264328707663299304891723400725471764188685351372332667877921738347541480022803392997571357936152412755829569276837231234798989446274330454566790062032420516396282588443085438307201495672157206460533238537203143242112607424485845094580494081820927639140008540422023556260218564348994145439955730410980591817948882628052066441086319001688568155169229486203010738897181007709290590480749092427141574018933542818429995988169660993836961644381528877214085268088757488293258735809905670755817017949161957506114001908553744882726200936685604475596557476485674008177381703307380305476973609786543859382187225760583902344443508867499866506040645874346005331827436296177862518081893144363251205107094690813586440577519229512932450078833398788429339342435126343365204385812912834345297308652909783300671261798130316757894385535726296998740359570458452230856390098913179475948752126397078375944861139451960286751210561635798976008880092746115860800207803341591451797073036835196977766076373785333012024120112046988609209339580085365773222392412449051532780950955866459477634482269986074813297302630975028812103517723124465095358149653693090018637764094094349837313251321862080214809922685502948454661814715557444709669530177690435824272031892770604717784527939160472281534379803539679861424370956683221491465438014593829277393396032583754048009552231816667380357183932757077142046723838624617803976292377131209580789363841447929802588058465522129262093623930637313496640186619510811583471173312025805866727639992763579078063818813069156365856274125431259589936119647626101405563503399523140323113819656236327198961837254845333702062563464223586952766943568376761368711962921818754576081617053031590728828700712313666308722754918661395773730546058765997437810987649802414011242142773668082751390959313404155826266789510846776118665957660165998178085889414985754976284387856100263796543178313634025135814161151902096499133548733131115022700681930135929589595971640197196053625033558479980963488718039111612813595968565478868325856437896173159762002419621559052896297904819822199462269487137462444729093456470028537694958859591606789282491054412515996300781365918367490209374915732896270028656829344431342347351239298259166739503425995868970697267332582735903121592288746660451461487850346142827765991608090398652575717263081833494441820193533385071292345774375579359344062178711330063106003324053991693682603746176638565758877580201229366353270267100681261825172914605948202541892885935244491070138206211553827793565296914576502048643282865557934707209634807372692141186595895467322767751335690190153723669036865389161291688887876407525493494249733427181178892759931596719359654758988097924525262363659036320070854440784544797348291802082044926670634420437555325050527522833775978887040804033531923407685630109347772125639088640413101073817853338316038135280828119040832564401842598053746792992622037698718018061122624490909242641985820861751177113789051609140381575003366424156095259916328197122335023167422600567941281406217219641842705784328959802882335059828208196666249035857789946000333152274817776952843681630088531769694783690580671064828083598046698841098135158654906933319522394601363287923990534810987830274500172065433699066117784554364687723631844464768069142828004551074686645360292805399409108754939166095731619715033166968309929466349142798780842257220697148875580637480308862996035118473187124777291910070227588893486939456289515802965372150409603107761289831263589964893410247036604036645058687287589051406841238124247386385427908282733827973326885504935874303160274749063129572349760542611221517417153133618622410913869500688835898962349276317316478340077460886655598733382113829928776066911495492184192087771606068472874673681886167507221017261103830671787856694812948785048943063086169607948798703160515884108282351274153538513365895332948629494495061868514779105804696039069372662670386560812905201137810858616188886947957607413585534585151768051973334433495230120395770739623771316030242886097200537320998253008977618973129817881944671731160647231476248457551928732782825127182446807824215216610469567819294098238926284943760248852279003620219386696482215628093605373178040863727268426696421929961146819214908701707533361094791381804063287387593848269535583077395761447997270003472880182785281389506123217986345216111066608839314053226944905455527867894417579202440021450780192099804461382547805858048613442416404775031536054906591430078158372430123137511562284015838644270890718284816757527123846782459561434334449622010096071051370608461801187543120725491334994247617115633321408934609156561550600317384216158701570226103101916603887064661438897736318780940711527528174689576401581047016965247557740891644568616677717158500583269943401677202156767724068128366565264122982439465133197359199709403275938502669557461770231813203243716420586141033606524536939160050644953060161267822648942437397166717661231048975031886185732165554988342121802846912529086101485527815277625623750456375769497734336846015607727035509629049619392487088406281067943622418704747008368842671022558302403599841645951122485272633632645114017395248062086194635840783753556885622317115520947223065437092606797351000565549381224575483728545711797393615756216167641692895805257297522338558611388322171107362265816218842443178857488798109026653793426664216990622914056536432249301334867988154886628665052346997235574738424830590423677143278792316422403877764330162392600192284778313837632536121025336935812624086866699738275977365682227907215832478888642369346396166244363308730139814211430306008730666164803678984091335926293402304324974926887831643602681011309570716625141912830686577323532639653677390317661361315965553584999398600565155921936759977717933019744688148362671103206503693192894521402650915465184309936553493337183425298433679915939417466223900389527673813336270617747629574943868716978453767219493506590875711917720875477107189937960894774512654757501871194870628738736785890200617373321075693302216320628432065671192096950585761173961632326217708945426214609858462910237813215817727602222738133495410481003073275107799948991977963883530734443457532975914263768405446302264784216063122769646967156473999043715903323906560726644116438605404838847161912109008701019130726631071044114143241976796828547885524779476481802959736049439700479596040292746299203572099761950140348363215380947714601056333446998820822120587281510729182971211917876424880354672316916541852256729234429186337128163232596965413548589577133208339911288775917226115273379010341362085614577992398778325083550730634199818459025958355989260553299673770491722454935329683300002230181517226575787524058832249085821280063589747909326100762578770428656006996176212176845478996440705066241710213327486796237430229155358200786360141165348065647488230615003392068983794766255036549822805329662862117930628430170492402301985719978637948836897183043805182174419147660429752437251683435411217038631379411422095295885798060152938752753763899030938871683572095760715221900279379292786303637268765822681241993384808166021603722154710143007376397537792699069587121289288019052031601285861825494413353820784883465311632650407642428390870121015194640231961652268422003711230464300673442064747718021353070124098860353399152667923871101706221865883573764181210935179775604425634694999787251125440854522274810914874307259869602040275941178942581281882159956422359658979181144077653354321757595255536158128001163846720319346507296807990793963714961774312119402643021297573125165253768017359101557338153772001952444543620071848475663415407442328621060997613243487564448847434539665981338717466093020535070271952983943271425371155766600025784423031073429551533945060486456222764966687624079324353192992639253731076892135352572321080889819339168668278948281170472624501948646409700975760920983724090074717973340788141825195842598096241747610138252643955135259311885045636264164788300338539652435997416931322894719878308427600401368074703904097238473945834896186539790594118599316480356168436869219485382055780395773881360679549900085123259442529724486666766834641402189915944565309649423440650667851948417766779470472041958822043295380326310537494883122180391279678446100139726753892165095119117836587662528083690053249004597410947068772912328214304635337283519953648274325833119144459016517809607782883583730111857543659958982724531925310588115026307542571493943024453931870179923608166611652305426253995833897942971602070338767815033010280120095997252222280801423571094760351925544434929986765367817891045559063015953809761875920358937341978962358931125983902598310267193304189215109689156225066549659119828323455503059081730735195503721665870288053992138576037035377105178021280129566841984140362655872725623214428754302210909472721073474134975514190737043318276626177275996888826027225247133683353465652816692779591328861381766349857728936900965749562287103024362590772412219094300871755692625758065706579912016659622436080242870024547362036394841255954881727272473653467783647201918303998717627037515724658649922289467932322693619177641614618795613956699567783068290316589699430767333508234990790624100202565906134057344300695745474682175690441651540636584680463692621274211075399042188716127617787014258864826605775223889184599523376292377915585744549477361295525952226578636462118377598473700347971408206994145661580719080213590732269233100831759510659019121294795408603640757358750205890208704579670007055262505866211420663907459215273309406823649441590891009220296680523325266198911311842016291631076894084723564366636808182168657219688268358402785500782804043453710183651096951782335743030504852653738073531074185917664705610397395062640355442275156101107261779370634723804990666922161971194259120445084641746383589938266539946517395509000859479990136026674261494290066467115067175422177038774507673563742154782905911012616669157555870238957001405117822646989944917908301795475876760168094100135837613578591356924455647764464667178667115391951357696104864922490083446715486383054477914330097680486878348184672733758436892724310466847406807685278625585165092088263813233623148733336714764520450876627614950389949504809560460989604326699123358348859990294526400284994280878624039811814884767301216754161106629995553668193123287425702063670738352020086863691311733469731741219153633246745325630871347302792174956227014687325867891734558379967164351358800959350877556356248810493852999007675135513527792412429277488565888566513247302514710210576725352516511814850902750476845518252096331899068527614435138213662152368890578786699432288816028377482673035506016029894009119713850179871683633744139275973644017007014763706655703504338121113576415018451867421413619823495159601064752712575935185304332875537783057509567425442684712219618709178560783936144516751383335649103256405733898667178123972237519316430617013859539474367843392670986712452211189690840236676327411496601243483098929941738030588417166613073040067588380432111555379440605497721705942821514886167765672771240903387727745629097110134885184374118695655449745736845218066982911045058004299887953899026787804383596282409421860556287788428802127553884803728640019441614257499904272009595204654170598104989679967504511936471172772220436102614079750809686975176600237187748348016120310234680567112644766123747668027852190241202569943534716226660893675219833111813511146503854895025120655772636145473604426859498076814396932331297127377157347099713952291182653485155587137336629120242714302503763269501350911612952993682785864681307226486008270881333538193703682598867893321238327053297625857382790097826460545598555131868336688844628265133798491667839409761353766251798258249663458771950124384040359140849209733754642474486848176184070023569580177410177696925077814893386672557898564589851056891960924398841569280696983352240685225634570497312245269354193837004843183357196516626721575524193401933099018319309196582920969656247668667683659647019595754739345514337413708761517323677204227385674279170698204549953095918872434939524096874441678998846319845504852393662972079777452814399418256789457795712552426826089940863317371538896262688889629402112108884427376568624527612130371017300785135715404533041507959447776143597437803742436646968973247138410492124314138903579092416036406314038149831481905251720937103964026808994832572297954564046902701757722904173234796073618787889913318305843069394825961318713816423467218730845133877219086975104691942843769325024981656673816260615941768252509993741672883951744066932549653403101452225316189009235369276486378482881344209870048096227171226407489571939002918573307460104360729190945767994614929290427986931687729426487729952858434647775386906950148984133924540394144680263625402118614317031251117577642829694914644533408920976961699098372652361768745605894704968170136974909523072082682887890730190018253425869505343421705928713931737993142410852647390948284596418093614138475831136130576108462366837237695913496962615824516221552134879244145041756848064120636520170386330129532777699023118648020067556905682295016697354931992305914246396217025329747573114094220180199368035026495636955866425906762685687372110339156769893839895765565193177883000241613539562437777840801748819373095020699900890899328088397430367736595526994891300156633294077907139615464534088791510300651321934486673248275907946807879819425019582622320395700131252014109960531260696555404248670549986786923021746989009547850725672978794769888831093487464426470100718183160331655511534276155622405474473378049246214952133258527698847336269182649174338987824789277028468918828054669982303689939783413747587025805716349413568433929396068192061773331791738208562436433703635359863494496890781064019674074436583667071586924521182997893804077137501290858646578905771426833570482768978554717687184427726120509266486102051535642840632368481807287940717127966820060727559555904047050233178749447346454760628189541512139162918444297651066947969354016866010055196077687335396511614930706937570968554559381513789569039251014953265628147011998326992200066392875374713135236421589265126204070772887716578358405219646054105435443642166562244565042999010256586927279142752931172082793937751326107086052881235373451068372939893580871243869385934389175713376300720319760816604464683937725806909237297709523486702916910426369262090199605204121024077648190316014085863558427609537086558164273995349346546371014504040199528537252004957805254656251154109252437991326262713609099402902262062836752132305065183937114057450112099341464918433323646569371725914489324159006242020612885732926133596808726500045628284557712574596592120530341310111827501306961509835515632004310784601906565493806542525229161991819959602752371327702249855738824899882707465936355768582560518068964285376850772012220347920993936179268206590142167145615925306737944568949070853263568196831861772268249911472615732035807646298116244013316737892788689715229032593349861797021994981925739617673075834417098559222170171825712777534491508205278430904619460871635217402005838672849709411023266953921445461066215006410674740207009189911951376466904481267253691537177162290791385403937560077835153374167747942100384002308951850994548779039346122220865060160500351776718264831611153325587705073541279249909859373473787081194253055121436979749914951860535920403830235716371952727630874693219622190064260886183676103346002255477477813641012691906569686495012688376296907233967201276287223041141813610060264044030035996988919945827397624114613744804059697062576764723766065541618721574690527229238228275186799156983390747671146103022776606020061246876477728819096791613354019881402772257992174167678799231603963569492851513633647219540611171767387372555728522940054361785176502307544697233869307873499110352182532929726044553210797887711449898870911511237250604238753734841257086064069052724058452122754533848008205302450456517669518576913200042816758054924811780519832646032445792829730129172505318385636821206215531288668564956512613892261367064093953334570526986959692350353094224543865278677267673027540402702246384483553239914751363441044050092330361271496081355490531539021002299595756583705727381261965683144286057956696622154721695620870013727768536960840704833325132793112232507148630206951272845395003735723346807094656483089209801534878705633491092366057554050864111521441481434630437273271047295027768661953107858323334857840297160925215326092558932655600672124359464255065996771770388445396181730632879614460817789272171836908880126778207430106422524634807454300476492885553409062185153654355474173125476152769772667769772777058315801412185688011705028365275543214803488004442979998062157904564161957327212784508928489806426497427090579129069217807298769477975112447305991406050629946894280931034216416733629935614828130998870745292716048433630818404126469637925843094185442216359084576146078558562473814973431427078266215185541603870206876980461747400808324343665382354555109449498431093494759944672673665357352517662706772194183191977196378015702169933675083760057163454643671776723387588643405644871566964321736041282595645349841388412890420682047007615596916843038999348366793542549210328113363184722592305554373783058206941675629992013373175489122037230349072681068534454035993561823576312837767640631013125335217382141994611869350833176587852047112364331226765129964171325217513553261867681942338790365468908001827739135283584888444111761234101179918709236507184857856221021104009776994453121795022479578069506532965974040383987369907240797679040826794007618729547835963492793904576973661643405359792219285870574957481697416694062334272619733518136626063735982575552496509807260123668283605928341855848026958413772558970883742789942910549800331113884603401939166122186696058491571485733568286149500019097591125218800396419762174363559375743718011480559442298730418196808085647265713547612831629200449880315402105530597076666362747449328308916880932359290081787411985738317192616728834918402429721290434965526942726402559641463525914745348400675867690350382320572934132981593533044446496829441367323442158380761694831219333119819061096174642952201536170298575105594326461468505452684975764807808009221335811378197749271768545075538328768877474474591593731162470601091244609829424841287520224462594477638749491997840446829257360968534549843266748536862844489365704111817793806441616531223600214918768769467398407517176307516849856359201486892943174905940202457969622924566644881967576294349535326382171613395757790766370764569570259738800438415805897504336137106551859987600754924187211714889295221737721146081154344982665479872580056674724051122007383751459271575727715218589946948117940644466399432370044291140747218180224825837736017346685300744985564775215420036123593397312914458591522887408719508708632218837288262822884631843717261903305777147651564147533822306791847386039147683108141358275755853643597721650028277803713422869688787349795096031108899196754143386664068450697420787700280509367203387232629637856038653216432348815557557018469089074647879122475536375556668678067610544955017260791142930831285761254481944449473244819093795369008206384631678225067564809531810406570254327604385703505922818919878065865412184299217273720955103242251079718077833042609757086794273428955735559252723805511440438001239041687716445180226491681641927401106451622431101700056675891121733189423400547959684669804298017362570406733282129962153684881404102194463424646220745575643967590452985313071409084608499653767803793201899140865814662175319337665970114330608625009829566917638846760056762972931464911493704624469351984039534449135141193667933301936617663652555149174982307987072280876160859626112660504289296966535652516688885572112276802772743708917389639772257564890533401038855931127625679991516589025016486961427207005916056166159702451989051832969278935550303934681219761582183980483763960562523091462638447386296039848924386187298507775928792722068554807210497817653286210187476766897276448841139560349480376727036316921007350834073865261684507482496448597428134936480372426116704266870837651925040997615319076855770327421785010006441984124207396400139603601583810565928413684574119102736420766274163723488214524101347716529603128408658419787951116511529827814620379139855006399960326591248525376708493690313130100799977191362230866011099929142871249388541612038020411340188887219693477904497527457684288072803509305828754420755134816660927879353566521255620139988249628478726214432362853676502591450769468377635282587652139156480972141929675549384375582600253168536356731379262475878049445944183429172777056988376226261846365452743497662411138451305481449836311789784489732076719508784158618879692955819737713250699951402601511675529750575437810242238957925786562128432731202200716730574069286869363930186765772958251326499145950260917069347519408975357464016830811798846452473618956056479426358070562563281189277369663026479535951097127659136233180866921535788607812759910537171402204506186075374866306350591483917746467656723205714516886170790984695932236724946737583099607042589220481550799132752088583781117685214775269334786921895240622657921043620348852926267984013953216458791151579050460579710838983371864038024477617511347226472547010794793996953554669619726763255229914654933499663234185951450360980344092212206717772567698723427940708857070474293173329188523896721971353924492426178641188637790962814486917869468177778591717150669111480020759432012061969637795103227089029566085562225452602610460736131368869009281721077968198618553780982018471154163630326265699283424155023600978046417108525537612728905335045506135684147803775854429677977014660294387687225115363801191758154028120818255606485410787933598921064427244898618781961629413418001295130683638609294100083136673372153008352696235737175330738653338204842190308186449178284093723944033405244909554558016406460761581010301767488475017661908692946098769201691202181688291047830870709560951470416921147027413390052253340834812870353031023919699978597413908593605433599697075604784460134242453682496098772581311024732798562072126572499003468293886872304895562253204463602639854225278558416464324271611419817802482595563544907219226583863662663750835944314877635156145710745528016159677867048442714194435183275698407552677926411261765250615965235457187956673170913319358761628255920783080787185206890151504713340386100310055914817852110384754542933389188444120517943969970194112695119526564978819594189975418393234647424290702718875223534393673633663200307232747037407123982562024662651974090197899762452056198557625760008708173083288344381831070054514493545885422678578551915372292379555494333410790174420169600090696415612732297770221217951868376359082255128816470021992348864043959153018464004714379121186360622527011541122283802778538911098490201342741014121559769965438877197485376431158229838533127923071751132961904559007938064276695819014842627991221792947987348901868471676503827328552059082984529793806259250352128451925927986593506132961946796252373972565584157853744567558998032405492186962888490379432560851455344391660226257775512916200772796852629387937530454181080729285891989715381797343496187237952927614747850192611450413274873242970583408471112333746274617274626582415324271059322506255302314738796759251724787322881491455915605036334575424233779160374952502493022351481961381162563911415610326844979758072508273431765944054098269765269344579863479709743124498271933113863873159636361218623497261409557986079920628316999420072054811525353393946076850019909886553861433495781650089961649079678142901148387799645682174914075623767618453775144031475411206760160726460556859257799322070337333398916369504346690680094828436629980037414527627716547623825546170883189810868806847853705536480469350958818025360529740798013538676511195079373282083146268960071075175520614433784114549950136432446328193346389050936545714506802900864483440180428363390513578157273973334537284263372174065775771079830517555721036795976901889958480394130195999573017901240193908681356585539661941371794487632079868800371607303220547423572266896801888042123424391885984168972277652194032493227314793669234004848976059037958094696041754279613782553781223805947646147832926976545162290281701100437846038756544151739433960048915318817576650500951697402415644780671293656614253949368884230517400129920556854289853897942669956777027089146513736892206104415481662158076804219838476730871787590279209175900695273456682026513373111518000181434120962601658629821076663523808361774007837783423709152644063054071807843358061072961105550020415131696373046849213356837265400307580909829089364612047891114753037049893952833457824082817386441322710002968311940203323456420826473276238103830294639378998375836554559919340866235090967961134004867027123176526663710778725111860354037554487811418693519733656621772359229396776463251562023487570113795712096237723431370212031004965152111976013181276419408203437348512852602913334915125083119802850177855710725373149139215709105130965059885999931568130863655477403551898166733535880048214665099741433761182777723351910741217572841592580872591315074606814025634903777263373914461377038021318347447301113032670296917335047701632106616227830027269283365584081511791419447808748253360714403296252285775009808599609040936312635621328162071453406104224112083010008168587264252112262480142647519426184325853386753874054743491072710049754281159466017136122590440158991817600229827801796035194080046513534752698777609527839984368086908989197839693532179980139135442552717981810225397010810632143048511378291498511381969143043497500189980681644412123273328307192824362406733198196554692677851193152775113446468905504248113361434984604849051258345683266441528489713972376040328212820660253516693914082049947320486021627759791771234751097502403078935759937715095021751693555827072533982111892334070223832077585802137174778378778391015234132098489423459613692340497998279304144463162707218224796117456975719681239291913740982925805561955207434243295982898980529233366415419256367380689494201823471241340525072204061794355252555225008748790086568314542835167750542294803274783044056438581591952682466758282929705226127628711040134801787224801789684052407924360582742467443076721645270313451354167648259668901274786801010295133862698649748212118629040337691568576240699296372493097201628707200189835423826690364149270236961938547372480329855045112089192879829874467864129159417531675602533435310626745254582707114181483239880607297140234725520713490798398982355268723950909365667878992383712578976248755990448283228895388377317348941122757071410959790047919301046740750411435381782464630795989555638991884773781829341347070246747362112048986226991888517456251732519341352038115863350123913054441910073628447567514183061050410973505852762044489190978901984315485280533985777844313933883994310444465669244550885946314088311751220331390681596592510546858013133838152176418210433429788826119630443111388796258746090226130900832849975430395771243230616906262919403921439740270894777663702488155499322458825979020631257436910946383393252806241642476868495455324938017639371615636847859823715902385421265840615367228607131702674740138341145261063765383390315921943469817605358380310612887852051546933639241088467632009567089718367490578835163085158138161966882222047570437590614338040725853862083565176998426774523195824182683698270160237483614938363496629351576854061397342746470899685618170160551104880971554859118617189668025973541705423988375135560018720335079060946421271143993196046527424050882225359773481519135438571253258540493946010865838793798058620143366078825219717809025817370870916460452727977153509910340736425020386386718220522879683994458387652947951048660717390229327455426785669776865939923416834122274663015062155320502655341460998405249356050854921756549134830958906536175693817637473644183378974229700703545206663170929607591989627841732423090252397443861014263098687733913882518684316501027964911497737582888913450341148865948670215484292101084328080783428089417298008983297536940644969903125399863919581601468995220880662285408414864278434786281975546629278814621607171381880180840572084715868906836919393381864278454537956719272397972364844651667592011057995663962598535512763558768140213409829016296873429850792471846056874828331381259161984562476156902875901072733103299140623864608333378638257926302391590003557609032477281338887339178096968466601469615031754226751125993315529674213336300222964906480934582008181061802100227664580400278213336847758573019011371754672763059044353131319036092489097246427928455549913490005180295707082919052556781884889913899625138662319380053611346224294610248954072404857123256628888931722116432947816190554868054948493441034090680716088028227959686950133643814268252170472870863010137301155236861416908375675747637239850763185757038109443390564564468524183028148107998376918512127201935044041804604721626939445788377090185105974693219720558114078775989772072009689382249303236830515862657281114637996983137517937623215111258522349734305240622105244234353732905655163406669506165892878218707756794176080712973781335187117931650853033155523822487730653444179453415395202424449703410120874072188109388268167512042299404948179449472785432894770111574139441228455521828424922240658752689172272780607116754046973008037039618787796694882558555614674384392570115829546661358678671897661297311267200072971553613027503556167817765442287442114729856881614802705243806817653573275578602505847084013208837932816008769081300492491473682517035382219619085739014999523495387105997351143478292339499187936608692301375596368532373806703591144243268561512109408584259582639301678017128669239283231057658851714020211196957064799814031505633045141564414623163763809859904402816256917576489142569714163598439317433270237812336938043012892626375382667795034169334323607586000248175741808750388475094939454896209740485442635637164995949920980884294790363666297526003243856358612945844728944547166209297495496616877414120882130477022816116456044007236351581149729739218966737382862647204722642221242016560150284971306332795814302516013694825567014780935790889657134926158161346901886306965089556310121218491805847922720691871696316330044858020102860657858591269974637661741463934159568649539554203314628026518951167938074573315759846086173702687867602943677780500244673391332431669880354865073232388281847501051641331189537036488422690270478052742490603492082954755054003457160184072574536986638145531175354210726557835615499874447480427323457880061873149341566046352979779455075359304795687208679316724536547208381685855606043801977030764246083489876101345709394877002946175792061952549255757109868038525171488525265671045349813419803390641529876343695420256080277614421914318921393908834543131769686985101840103844472348948869520981943531906506555354617335814045544837884752526253949665869992058417658702780125341033896469818642430034146791380619028059607854888010789705516946215228773090104467462497979871992627120951684779568482583341402266477210843362437593741610536734041954738964197895425335036301861487200951534766961476255651873823292468547356935802896011536791787303553159378363082248615177770541577578736561759358512016692943111138863582159667618830326104164651714846979385422621687161400122378213779774874131268977266712992025922017408770076956283473932201088159356286281928563571893384958850603853158179787560679479840878360975960149733420572704603521790605647603285569276273495182203236144112584182426247718762012035776388895974318232827871314608053533574494297621796789034568169889553518504478325616380709476877951699086247100019748809205009521943632378719764870339223811540363475488626845956159755193765410115087814067001226927474393888589943859730245414801061235908036274585288493563251585384383242493252666087588798908318700709100237377106576985056433928854337658342596750653715005333514489908293887737352051459333880049626531415141386124437935885070944688045486975358170212908490787347806814366323322819415827345671388156443171537967818058195852464840084032909981943781718177302317003989733050495387356116261023999433258829780126893432605584710278764901070923443884634011735556865903585244919370181041626208504299258697435883817098133894045934471937493877624232409852832762266604942385129709453245586252103600829286649724174988419141988966129558076770979594795306013119159011773943104209049079424448868513086844493705909026006128850649425744710353547657859242708130410618546219881830090634588187038755856274911587375421064667951346886487586771543838018521348281915812462599335160198935595167968932852205824799421034512715877163345222988795418839680448835529753361286837225935390079201666941339091168758803988828869216002373257361588207168883516271332810518187602104852180675526648673908900907195138058626735124312215691637902277328705410842889037841525683288718046987952513073266340278519059417338920358540395677035611329354482585628287610610689098229721420961993509331312171187891078766872044548876089410174798647137882462153955933333275562009438919580434537919782280590395959927436913793778664940964048777841748336432684026282932406260081908081804892390914556351936856063045089142289645219987798849347477729132797266027658401667890136490508741142126889361969862044126965282981087045479861559545338021201155646979976785738920186243599326777689454060508218948838227909833627167124490026761178498264377033002081844590009717235204331994708242098771514449751017895055643029542821819670009202515615844174205933658148134902693111517093872260026458630561325605792560989627332265579346280805683443921373688405650434307396574061017779370141424615493070741360805442100295608970095663588977899267630517718781943706761498217564186590116160865408635391513039201316805769034172596898453692350806417446562351523929050409479953184074862151210561833854566176652606393713658802521666223589976132201941701372664966073252010771947931265282763302413805164907174565964853748354669194523580315309001969160480994606814904037819829732360930087135760798621425422096419004367905479049930078372421581954901535418371129368658430553842717628035279128821129308351575656599944741788438381565148434229858704245590292434693295232821803508333726283791830216591836181554217157448465778420134329982594566884558266171979039012180849480332448787258183774805522268151011371745368417870280274452442905474518234674919564188551904244421337783521423865979925988203287085109338386829906571994614906290257427686038850511032638544540490519184958866538545040571323629681069146814847869659166861842756798460041868762298055562963045953227929063051616721591968675849523635298935788507746081537321454642984792310511676357749494622952569497660359907473962430995343310404994209677883827002714478494069037073249106444151696053256560586778757417472110890827435774315194060757983563629143326397812218946287447798119807225646714664054850131009656786314880099090303749338875364183165134982546694673316118123364854397649325026179549357204305402182974871251107404910011611405899911093062492312813116340549262571356721818628932786138833718028535056503591952741400869591110926167541476792668032109237467087213606278332922386413619594121339278036118276324106004740971111049128140003623342714514483334641675466354699731494756643423659493496845884551524150756376605086632827424913794136062876041290644913828519456402643153225858624043141838669590633245063000392213192647625962691591410904457695301444054618037857503036686212462278639752746667870121003392984873375014475600322100622359158029343774955032037012738468163061026570300872275462966796880890587127676361066225722352229739206443916093524327228100859973095132528630601105497915644791845004618046762408928925680912930592960642357021091761524646205023248966593987324933967376952023991760898474571843531936646529125848064480196520162838799185189499336759241485626136995945307287254532463291529110128763770605570609531377527751867923292134955919245133089867969165129073841302167573238637575820080363575728002754490327953079900799442541108725693192088014667935595834676432868876966610097395749967836593397846346959948950610490383647409504695226063859218046758073069912290474089879166872117147527644711604401952718169508289733537148530928937046384420893922299771125856840846608339934045689026787516008775461267988015465856522061210953490796707365539702576192399431376639960606061106406959330828171876426043573425361756943784848495250108266488395159700490598389240812105221111091943323951136051446459834210799058082093716464523127704023160072138543723461267260997925870385657091998507595634613248460188409850194287687902268734556500519121546544063829253851276317663992622050938345204300773017029940362615434001322763910912988327863920412300445551684054889809080779174639276092439334912641164240093880746356607262336695842764583698268734815881961058571835767462009650526065928929263548291499045768307210893245857073701660717398194485028842603963660746031184786225831056580870892970305567595861341700745402965687634774176431051751036732869245558582082372038601781739405175130437999304868822320044378043103170921034261674998000073016094814586374488778522273076330495383944345382770608931760763542098445008306247630253572781032783461766970544287155315340016497076657195985041748199087201493290875686037783591994719343352772947285537925787684832301101859365800717291186967617655053775030293039333830706448912811412025506150896411007623824574488655182581058140345320124754723269087547507078577659934732542844459353044992070014538748948226556442223696365544194225441338212225477497535494624827680533393536983284156138692363443358553868471111430498248398991803165458638289353799130535222833430137953372959364016257623228081138499491876144141322933767106563492528814528239506209022357876684650116660097382753937660405446941653422239052108314585847035529352219928272760574821266065291385530345549744551470344939493886863429459658431024190785923680224560763936784166270518555178702904073557304620639692453307795782249395949710420188043000183881429008173039450507342787013124466860092778581811040911511729374873627887874940907465285565434748886831064110051023020875107768918781525622735251550379532444857787277617001964853794103555167655209119339343762866284619844026295252183678522367475108809781507098978413086245881522660969423551401874495836926917799047120726494905737264286005211403581231076006699518536124862746756375896225943299116496066876508261734178484789337295056739007878617925351440621045366250640463728815698232317500594496261080921955211150859302955654967538862612972339914628358476048627627027309739202001432248707582339457354915246085608210328882974183906478869923273691360048837436615223517058437705545210815513361262142946911815615301758882573594892507108879262128641392443309383797333867806131795237315266773820858024701494733527009243803266951742119507670884326346442749127558907746863582162166042741315170212458586056233639481493164646913946562497471741958354218607748711057338458433689939645913740603382159352243594751626239949188685307822821763983237306180204246560477527943104796189724299533029792497481684052893791044947004595090864991872727345413508101983881864673609392571930511968645601855782450218231065889437986522432050679517379966196955472440585922417953006820451795370043472451762893566770508490213107736625751697335527462952302943031203596260953423574397249659211010657817826108745318874803187430823573699195156340957162700995392444929749105489851519658664740148225106335367949737142510229341882585117371994499115097583746130109545505064197721531929354875371191630262030328588658528480193509225875775597425276584011721342323648084955027143356367542046375182552524944329657043861387865901965738802868401894087672816714137033661732650195620578653915780703088714261519075001492576112927675193096728453971160213606303090542243966320674323589572797889332324405779199278484633339777737655901870574806828678347965624146102899508487399692970750432958753029972872297327934442988646412725348160603779707298299173029296308695801996312413304939350493325495912355071054461182591141116454534710329881047844067780138077131465400099386306481266614330858206811399605838319169545558259426895769841428893743467084107946318932539106963955780706021245974898293564613560961788983472419979478564362042094613412387613198865352358312996862268948608408456655606876954501274486696231405054735351746873009806322780468912246821460806727627708402402266155485024008952891657117617439029630337584877842911289623247059191874691042005848326140677333751027195653994697162517248312230633919328964707983800748485726516123434933273356664473358556430235280883924348278760886164943289399166399210488396507847777048045728491456303353265070029588906265915498509407972767567129795010098229476228961891591449661520032283878773485130979081019129267227103778898053964156362364169154985768408398468861684375407065967121039062506128107663799047908879674778069738473170475253442156390387201238806323688037017949308954996800776331523063548374256816653361606641980030188287123767481898330246836371488309259283375902278942589698060087286038859168849730693948020511221766359138251524278670094406942355120201568377778851824670025970651708509249623747726813694284350062938814429987905301056217375459182679973217735029368928065210025397196268807498092643458011655715886700443503976505323478287327368840863540002740676783821963522226539299720939807367391364082898722017776747168118195856133721583119054682936083236976113450281757830202934845973982925000895682630271263295866292147653142233351793093387951357095346377183684092444422096319331295697420305575517340067973740614162107923633423805646850092037167152642556371853889571416419772387422610599756667396997173168169415435095283193556417705668622215217991151355639707143312893657553844648326201206976424338016955862698561022460646069330793847858814367407000599769703649019273328826135329363112403650697798652160638987250267238087403396744397830258296894256896741864336134979475245526291426522842419243089783388103580053787023999542172113686550275341362211693140694669513186928102574795985605145005021715913979317751609957865551981886193211282110709442287240442481153406055895958355815232012184605820563592699398003478851132068626627588771446035996656108430725696500563064489187599466596772847171539573612108180849811547273142661748933134174632662354222072600146012701206934639520564445543291662986660783089068118790982090815295063626782075614388815781351134695366303878412092346942868730839320432333872775496805210302898321544324723388845215343727250128589747691460808314404125868181540049187772287869801853454537006526659845649170915429522756709222217474112062720656622989806032891672068743654948246108697367225547404812889985242471854323605753411672850757552057131156697954584887398742228135887985840783135060548290551482785298694891121905383195624228719484759407859398047901094194070671764439032730712135887385049993638838205509871683402777496070276844880281912220636888636811043569529300652195528261526991271637277388418993287130988563464688227398288763198645709836308917786487086676185485680047672552675414742851028145807403152992198997814557756843681110185317498167016426647884090262682824448258027532094549915104518517716546311804909904567985713257528117913656278158111288816562285876030875974963849435275676612168959261485030785362045991274507752950631012480341804584059432926079854435620093708091821523920371790678121992280496069738238799243312626730306795943960954957189577217915597300588693646845576676092450906088202212235719254536715199931834872587423919410890444115959932760044506556206461164655665487594247369252336955993030355095817626994176231849561906494839673002037763874369343999829430209147073618947932692762445186560239559053705128999578163455423320114975994896278424327483788032701418676952621180975006405149755889650293004867605208019960491537885413909424531691719987628941277221129464568294860281493181560249677887949813777216229359437997811004448060797672429276249510784153446429150842764520002042769470698041775832209097020291657347251599882904630910359037842977572651720877244740952267166306005469716387943171196873484688738186656751279299998575016363411314627530499019135646823804329970695770150789337728658035712790913767420805655493624646100041260024379684543777339026472512819416320076848736251764065967540693621758879307855916478777274739271001200291034294956244766130820072925073452917076422662104767303786316995423745511745652202278332409680310025246676631908610112067458562873174135111622920788651329412448154716281820798771683463413223622341177100388231027659825109358892359162055108763298087993165172528938001237817434896832151590562493347370206831004223210011863739577056747386710217321237522432524162635803437625360680866916357159455152781780392177410053228234366337728111863905118930759016666507429527583840085446354193171905313636597249051584091065822100601814734799022359067138146905116051922301269482316113417439944714833040862484269139502336713412425121007386402665725813094396762193965540738652422989787978219863791829970955792474732030323911641044590690710089778623155183495930353059237898175158914576504080251094791234217584828418819501385461656803017550355100980054944894884871351605375593402345748979516602442338321406030095937105588457052515704266284600354401010282367876855098267816176552037579565548167789603892749835560879154117774942357340076416109329400389910119821992672570869573260687749742248020233075251876502559684207606932299885875798988964607443817881700101281548895226516722834045277219106991415764639485231126794730865803195076455197675628957428881796812091013002638714525785831527761510908863174024369568056787301523542780479341426649522383370711751126537550310149423720987846680491394734465307140796225972871305030772587148755705025825734668666138023514260561161101597405543436548698005444879295970287590352258409782683598666446586045694241390729095266249932902973441016056816068380572662605727708840707347149606006456145407073443278251408747427550672230484535700609221410173900029929816082117170479176145051910081326703752149307405678533111060583529127810073917499491978451101812915913681107394055175208019630539350740248509553772500367054665162330430425087442324262404632115071019899733692998540704165626104197670020241509489241185609240963760442961200236459070644977062720791901910202359648070489236369798601982830872842285647523531628827913242955248144475055219096720460806895451817102112204930321853740627247421519740305769043602686360780792004776232429551829473522027244376339027721391022208776706571624163975178585925442692342853527432885633685078965196207251941655606187037055021846284510234342578503830000953745182929584404649188386857934839611512971605816657450967036774958366666931218817102463679644943617130416037243050658485131749264055855194018005180908475211868224616976149243238319486431025441590855801107307031120150224341607315792952875293683582039700338911211417068521936658978945950315410263895890153038271430019295890741499435928940830970770783628759144840370450386189669758112018523192318102768659968038583812370329156207578835948780941688205531605128190152647592807574958154564221341459378161028705699286829989561198235383715788048047870458417539466549769017322031089007030336291176730844845037210291456696444014695451738574341578101586187838392785526093991305702555755590609470514980934877733200727103097573038245989466809680822221348485873822999281794090825665209581655472475244566743697594474686376331031242890426977610679193391098330042231029372829879890320939109268283630617361017387812367989864514931110327024371282858826304862988844922074156406071470591374055246657569718702173552872454394277148091793644103337650637861861324348635797411258520863459927803688792498354363298457687650165065115345008695721239501034754478568317363155715352704652423525973751340882546160966144074667551422683603195980107215246355106910351718713357316854856312808578344356236709596509499469688206611851180860342028213318012494109915026014103635450017432730793625113070298250499417994284451146479329154599555909587807621636668591791065435966061037525352532027365072598912125568684280207724648772201099663182955955290339331228436486447597356085984010387609472983895424339326231532399189818522641808312963335463568748288634656185048106322888055967378445103962000941465603499280879405115310057587129552571964111506850340773710604380371259575596985949362058471040751202635494734753474818926225419035267161442928489985753674069216527163008606065437373682355658862610414863436891532180955722044567771373683104580755845296128328326063196297285279666743629748008213186279104221869044284342630735760703999669430789508147269730253817375694922751795354326156912040594832860949991043236641228788122641914850485632807206641855705952037503032291689448942757830609091085241060140068327410442055839697738231507349961087587637042555649640868550719422563449667324306562592504745817627332818160104517019698166542426378763601453035946538450325476674999737340835665138186025156520283637389171016545411046488267444800910570418616262683797112088614135727961109908829297022969212818097879895139150427093678610474449831964201345668339087759430064424856230121246145116979219396344095080832292812942704365991464827104849984375942113020418297308417178813090379558545603247170819195302771465794555475544754284434408139381049890860977601785738930751866190650501807716500184074432585402418436050111824299070232341724367452536510503495947990633345407543718126993998337192184854187359798453489345922685150681826624900780293350126588105124974226241885352526636702827662499349829488748331061764208429016923052899608978604130065109028179801052504058710767117904113021748279668235300196022025318557678984331758680637835996879160153892222023657510537655815866114091993948615992091599175533417830333476431316350127053906970793265678124159064342847213105460235218236741214733124499944334155915274315931687477882533155092770336202901222597794809855392200061055452716228085539827890658423344755282127651765057266326769114107503484587189699643487577513847914818310566351006214668185850963488870814569767220201679911994624177766889079171368659459607264685388107787830105702161368276697026223459418737476733537998884403427046803042551694127158739320398444374604547816113051058662517641275982118193966110185056288055594256606003231211618099462212930100247091334715068226843045810596803009042428616820255621409460879000651910994955708158165058289833407394660844575657806366902728434106062018587328252924796505286681408503538519837523637451925622795490290557907030283950104854835929834541061281448730435804705331508151050300152142811717539364913316617262123540552786330800208317705563029496310625942016543330940941771963262341193871051615701017980535516793708602913667569860971241203685838129576106395307798141365700174761356966986146068491439699573837631695824602513342108072621713601943018087209881064855141502416381832597525959316553186583311712685794152720661221842266141182515465748487831261034783410655467492583087299854474212064450952332450508774314961665552517971680209917200264093749219075699368963106630281391647208963581771735555848592706524504862516419540550801343510323389813378302497701822754906381067149996472333407961304146973947637265086927334710841568560843092131624043462986392084166005590459850610684912435052647660676003444416181864036700837741141010943205889555986586700778636718969440896223213740106934113597199133135946553685446692367652589012108413777432482191812747847892287264892970032371873456151070798159983483910041260105074696459943033197881063491392381249050306143340791832800406390709867259619710710983112659601474737253305268537177421465540058739246237276173649051987133680677239525707813606866832107261395014329509474851594724667527201684316586608807512768584755541184381169011622005552113484488960661073825922743131900796301158708467011765493539304656335622531124472779666900583119061610197266307397054210745314398184573794494867801346182178759390769996020290839656772878469057364015640150476964489939475414107574608339918696889271156942345492651246645507792554028105037622035967530558601856492056062879090769451076333920880884947782889485112215474323019138324556299388102061449026687601020775321091568497783074085910776498579671526170100394754945399176987913235465501064073558169994097562481499674432784292027626441897107893918158394562708173301582160225519659898769376164019861207466755048861110855726764507052622446130221079233585207227362048505728923881588493875453522918639971438088406175728622095012250651586310425888413410803554319737298562177530720226294755524830444453404348888785811703413453425223543194078779728467601815108183227097745180929342193189815812482832658950040704855206099893783900341914163044639163880549658786501082137504634169565515661829887863070584230696766025405302481147100789978421183048901046405689653970288510835955309255586360521589573751140895649058441567749371058596480143158746144912505492531911646538215851108497370093280194530320572628452658046046337816631429933076646646530760590548962888724189716060225882611085757753992205513150937720062486308556282049357575272499556708922163423398360256532873102919400704117610869192208500151167356701019589710017970195781208929109694177543699043682025630240548226254019056965077108710581574240721496339560365270283334407305750073674562260584649886115101689612181119058471714461068711088976101745658737379674069713742323875383903031720020020720592848878512391174647167374373792328388196610892016876221913462338937625995270256721386221124589802121305014072889043003225355040958668187241393699109038193069148744717186646183111942603161664070377316487001864799600243044003242241809402278533309011501091988087067826883531720076752255313800881878043169019007280483179928741412547612308960683309582837766710926882875786886830929760010119745338983319525886196301329170943858166153741717944963191771543125069598109353481285684619377669894277459170918802520012749905559407289696594793331672243621567896776966708035221094903901848573080627567086765862710476940920356559302535274341896592700222704923318682999156093641375710950049885373045963961527346293969749517480626964517930187199867885375814159757993148066085572325683743109605282764175670050288040489429899580948103534833934144927885925262192415547231997143385086637320926631097272824351493364070458968385234562474436117525676698776759722343920635750747155291810276261401299248010984228839902978799254185174991296302839907296355885798905933177959087690739056460256235335672215522594109968838298452882922966275137162422172954678670715840924184084147557582539385240963302051349704740695391100956789798172786092046228683973577981511186815265988460694975896548131465115039262637774951376155724811011951161198772503445647107385134359273555387124623755981938132142384415819290700463897716838872079163110261741432497079109658162746429717072871725142745898356897095534626820169085356108944898407100581920301103217694512077177458879551951047338418473998079630676788584516757572990430697154264238349800987086993311046709121083944535062459224323123482785496603746571880148929379451478705406079245759006012196221239287110520017215588666345734971409533721151655985757941724419889026167016101611557834315025460328781198424021106748460851072240667677876085524761777383308950261006438835055020545632434616785945194179566987496851511072448838475136181806671083161655642093692705206118985172926171417144346555087063060635510129494003097110859167799158426049197120954322702678432654296572403272088714321999645313202587109677165128549669962551109269860731176371820749882739977060199136209308323073683820645573256376598291257813149222422042797124111104416299512659456397927593803838047826231604243253991328511230322470375619423217330478540785762440132111191717992979240783390715757981426816864655382946847399205888631655934919867896962840447344968024077091112283137640810335225524271740410767356542444100448334744010172644105295478729634589864050120360802445111131903509949744939736171815752770937802092366681358416362683192634067141827974213425462207054156000509111459674045616840451771747952790353254932589120483385746590096781730416000521088934610768754004241977801115308288518120017336955912713771419501136130440975327919050489158324639914348353164868154857917863293511161239255525102111827885736960602769313014696614334496423021143824837056335327938588952676720766889712111774435815632088106650149568143558796576909857765902768707453659276364975553449617308078160987103248011118379513617036776345759497568620801399637455176242514778062872226597145548290676929571364357215267446811199878894188207512922257565091435528288746141950978624275278815715664007637210378031940430958442725492112069987169234331890022141503113998765260688761566740210197201719602390861082974927639569541153032275461121017387079562599357978530244347671639959146231793123998998692843797570249236955158729768385400522765111224956144471059719628898881571094151717015181147435136438540051162462021311748007919837497001004713634112332523281578911355450453371905275068229156185003328469567926226208190442473340362503892792071585960031124936315336884272437536679969864793474113319832861944146065392278409990314384035456504705678955202482711251760118743356436902435030856313095590552503904927316133117349225846446090245350791901844112993216997112670451832853586480428556822208737213616490586303256368913084103760215679927020005322355439804653119331127977545904404507856802139846500969342954731026924994758646605809166998416068464608729394380827430828511288174796941728729903110131926755738979840913642534796949434803777033646349584768629825901034707278612112918623001986607987782684245933835638919570206853521603211635230064988744600200170413056985365154668751130202385937518328037285114327481169968369284922044738057063349661871124094783591586962685864358914135911318542535776887749327436345147544886408688180303696524317556883002058607732569597160864854158344684324113289963077011371344675156930244885482077124133557732306949458067267845235943631507872728157901573070031133317879685443627952571902362327461426286873273800949774112285623766321490465329407202619753907174042211342595392428881645597965700309571413891069368450362682310539867437532400527015347458933256795149418545113537808827063457295962169085383535370381418115573816378209032561519869745357646412125498076005156141701136729804699481359348315056811664279321933527982271471576734018608872151879966935025270075755609971988211378630642854481282751392806947027501481632897273143473485285295046048832716739789815636788047804436021113809007320727369749344630499731442571560433133690387618100948873120713482710815889857483265854207510071139795311832686170803707093592761493678253085834048235100363216637895742620255035011686154340737950451611404828967556983589355220201736795480757819095026979812711487034311903631122461282953038205128704309294114171974594690821025634788995431771524379696211281224503426066399268852133079196370277780448857920573041142699080092344018663811325209712309647605998994792575985100817303960682221997532730160658262852758257611436950785472603493829813358252817867060851265600226887178112535978293373477914127362841886561759208328114479447410969703879854736984025458063294835022359393543587480223989760916296250110473931169449100666901145723063469313016971182063253526924404384009372428442820970936485690946892008737175325255703054353982811467278123011398080938670154748858034456318713196026785487938933162050076752641120443902375833427242986114799654786368534102848857370254725502365663418680919038388670787907208403619402164670121534837978151831148282647257862881520710108149955898033811896156944175676134071704653851217090212377788433364965187211911499054075818773943975283641439530442459139031788130041887918871145531482674699870555879310402403888840115083850687341625071657274185134952084963670955542450439483948045979156228282483787934152720362263369561151180555637107681488889361927574265993582355943153088793305276755874751236506584396947560429719200231911528680243517199378681003611023125683642560795974105741536282971800464977485737183786390370390153973749115311654685499716453941611216417610717145401765190565052520662277883129045719693205990241375395983861981154260320549583950167555250964413711822256149601400302303540789920969867750786720003807426797053030716711559322960156486228085184033523501706085895129122232461178302531636289439460736527713365116316464461990115699021224922412315168992767855863736315526002503488487813233001910189399616702731416999626511945742631157676196500243473717272902846220979839487106598227000995491887769618850543265321180221944428222842515211585561411874340180419461413945147128725275923912559644373568339728963312676782349103563329612947191015115915714311579549093390326141191865475237624721531102079369115848742205822747343201735585077122437969851160796549158062795027409771688611480761631516185530685669245717176922044366843312739893379411162972245111616999854685622157024175947117699529165502116855001089857619346394559088262707753114657752238846343519116237653973498480245497607602440308084489010683878697261237097835782451668011714859836794055290461982621163165669172027426285482393396001825459940925430816969103297841123402288560019054934275022318529471282911646096939768137341977042781213001473286776057194059699792755124617184349569856417128724811834654206423116518714551824152867630567513116267717735061751124546338799426529127010578995671805721436557918350691771166793070407573290439749499582241062381051491765023850418273009662017175094059080540895728375540635515211672199658207573513157075923615398639459211155864000988097552610538382568992721584785041746065161511337116888336097601211484870055601658124924706825684427204547289630942030665044529864622359422600855499158911169499536064984280345794927570094979594506023787750194706246323949549578230822830668408188025210766390711704230973720916285337176806216446935432317917855305833171420847988630340846572642693955700268576057539117134788858709460058272323051910811751423491268733658596079989173292891589600181509181633740080603547521172000515117510290122992487096154592802620607616982721810291673155489294237408519674330791660784990557811732101935713662435990883613859808516156417476946054785540081953530670803089697630452946868233210532878117423743894411568517627171163630940147990964945635459295013073900362682100732637008235615069126964318331175517162543903046989893142615442635951136346605737865495124457475262167895470362890483048499680403772211765134319373734412366185869445880640185840731476337929403863404359194198723552630156546080518686760680117743160845128459160424413269879125385602991599672787661951950531764883134693257366894644382558139108481178620966374267457983130122234387258312442203309457145754147047929387585823899773851521352372389559664311791223564326262860114748908681715928106687270840082033771869215352352692634722680908259898898400262081118052178282611229313118208660070996860365409818326807558247767069504109975861436243552161945353029200251181466736799648504337313349520821075119925892663899564756985870790185612379157886437446903787150950011211825502100388453119236529655994619004748466206423479423296700605290037091755781887081935221468714272352118377632559898086948721113845980014123842163827824412736542446748833381679716201128861914154019367129091184478990264666443156098372961501968624228250672306166720943546571425149308642488778598682759588749065011857726025095182953676518118236861694472436078376429476246922631949892196464406831692876616150605081384118663194151162025779078630718012311594586038965625265542233462344545073947886902681594975131168851436941187521021688319044616862976332522986385181885004928693572764766823855564636554496400631764828557578586611886102285515648599088209586894443625469867952382268611596991005636608292679153375381606611224786953132118961585318717638859893779291889029987938798100036973078489592706254104848593158543233956831042390299071190026344379787569185543408976440760130844481978626507947644083013494243583428188591525929347143631753311917495897010728735012707889804816350456766676932075530518404324461007403216764718360837084750651269307119207660849825299000317850305853682139512735038638246056425103377755809864643398017186208142663074172591193222600051109134268107467012901430165410106493321228379082751500100353001565459750832377296543969738211940477416265710657408216499606262274961879533479070659889748717795643340648417456457479069251701494998119510095353413548908754836327579522407206986291024671703579251441766703886609906985726260581240825336221196521899200041897574576531512300006444571593170177168863548333305192158205594611735771632113223393196511973203861990051161781713340010705766526899197081692022194647043237953564118660639205586090344570641517119897782145054722278852987210197858846070047420028468873795844228949974333656271877991721137916164492541199132971565287952953263975953853592095013863338050756136953089954758488302426196275898594151378051580512000257675404017857958524488311721050892770892272734319738238846873071682302487886885855101080735227814120105371406520758107270848167263977098731455162646911423286103036932984330300323676162714264067587806731202188397151500279816337477907877503830798675940459107392103458740421961703492580818990720596129158642012032028857340091149552388651079113714953346397639881839488045300750747403722809368205354304949519483328120433470075161979008687285439962981575605891637624723069162871111137676086480323752459664930411753946131205646433780467116505550467067183622128579504806716563042762671142999911348769844705037063790018109688812066297217579517324338027806174704963020424929166191718862433555992820932439194457118863215563201616542120747055375938696624656334121541014032286990930159132885808831241242882876373872742838038590710292748631208335150309044532805259779565892055456243429798279413489175638240077161217332473642854016061004433764112094572207859217155914010378320201321338330963807789040957238105588293927963743816606868351950592770195121015361601722158904287856784820682919441698718192862730827044416303962547130532843883379133747687358261211122116258360272896162455904189677024745382758396652299371235163048983301242141745578859159425605979212124277218199085562798486056174536844789237969079755945551546468531630244623256740348958454622567448582121302042457391994253094264224504202689038150152683602412559807597523648162809304891274615119623154611401214082205639678065853540766868822754265038122599916207601708955674744652423445201766165032594566591296612157863246213799192229614586714224824928806476803210864779941004100600339067927523736254602774296007347121688038356687522003482457694908456862696057715701919174892260635208129738797443835483286136939562450391217297680578322340217167655591776684037572348440946176293128849268993687138983882227106027903799001904512185833600797392774109266557392331470259092338906543884223513241153880185592349561399302239196450504503121969352927011566305153351918641864823442499919272027295345959906304872360804159576002966812111683172361220603811054280359144572024825645610571405546242082134352094810841715828957244507206354681600230512014012218480543587425261710176818538835575587174154247754497722214192613155252691091755633319323222432185254122222182729149159810583689702503522813002141192486014248068079753699647771939490680468355280834732761031223060494097330916903167830979346366118327845318687164626807388336567045660104237685058013950744364796312249222841126979451347730049249878649656367949099291327125289776519181754279628060849323755208153611132122540339713165504391887960198382138585000773242461778849187581459642642337889793330819488160040113126521226563569324465939840063689031525472292399141447437706963389357619260391892479363178008310261141954854312276051577871600495578865657970665885510428824663630572077789022667770425126815719795332251076389036819122876284402861025880539233932947467202408854127649238644760216116262082421299166036229918492378223630091229834781195229138218473263422857591209798054782852505918379833680178741124264474600225624149806914007412300979721023278539575615128345806165411117926710427990579394497134946328950456512868847841871758020504123158328387485313736911351025506201027753458094391050010218339732456504728894768792989259450198750767121232236379187586472012149660611512804870964886305622844083936944387216921208492008515583812510707419551812337208093746942459731172811721051928903896370394235776862127668210931827636649840421249381440979598631123414225436483965499983479084307021764385554351257436828228153032222380834767951113557014806318200453221235072379489186357214910624252699399467101536684623410515333814268477062758520352409920797208699145373012361095516415033176282001969164115460268207236692552751418429969920539853433073068057372380504167197221123712737405078927266340638850686734458560773266648384578027718911475801323105519878413365218519071460681238138986886710314759826461129379543952667286727599483359025974458786876849646268348443441413591771458712397660880778453571839329371937393236408356337576688468211117993505541020855618849010201600505639541687124045108220603555410817666460524124966224422804545243216032036019464135609792001959024049792923673298921241455399010198011214029086869992057589177718807414612220502472858571536753074781438973057178726836636012421576136100772286319638852646235125538077319459563567965382362499926551804330796359621106745528521429124302629498265675533527310046878865731047246649332656792733134512295505918623293739332608607745135077531244090157444382948733977960532284935830136183795862648032129736847481751647691366211036036950910666650512451717115082782009327883587225983940463068376318118089044236262199881236826807857952621972166872017455124617472627818032683058548803970977047934831035439855907843552776676033139884605271503138856332467688921247710459585193289513916782385773577265810047982563935519352005520408002870596782497393747886052835649312485914978380377964960005212445834779001756042465866651998077028839438516380955043049219603244360903400124985174660429627430976838715194598264473594023424821104475729111777958773134155360952759570898612586771250145625239945007593802060935502489200847673322930857422225502064556902391265436635785242724290560532012515754030821014512382090217466975797653475172501465837478848080537735150422224042957603613754324861996125255891939220504699982106293160967565179075132296077785755331026585842576086686764535520927748275567541253517716995087894118059363052499449670123759800655349987396663953944170170596981015127193331184076792312542718539539809764048527846743872316432910029065495308612833302664007580129618499207022002555972156957125558837616878436434679275586357397225356488413306011928957464280935785808113233143311528748217976603971256125795289003640719892332813161164041693773662801325973822223742681891764895964227033803905929596496912576482133114473166765041976781108490966469425717069457007871264014486522428469488976172567465352205061125862107300101926248314682120355169950152200731638400413203033324231216708268546893175843663043078435071259859281044784926639526523987186441733800856816923213474297545832694021612533328379009606486277854941212606679513674045877416945596140762656625029900692267267876036587137932796041848839393393469263543415480126195183623323317522937035210291464133127520371171667548720634738923293785107290295144629274154676194791262427471669160304978292889614745870264997970792063872408250230064255449959040119741085351678444090188012636462937483544396144003535233103040411784572289029581805810321237438258987027473704010683777715925126126445357065083009214792583498924751274536220061058545759973693135297078143742841340551954446721489415051265745283917160371545308252555834320251254241662445752456296445791076971715214709518505500355054390631612668825810578507463565620479146676805569843845520277099697198898072337148695635670317768776378974327349126728293439051455670607446079704769316462781214171381827437856146219708808702106421105737785147135883731268773882407652804519142713748811055974471831009393751976598021002410125112308136826033847449108771613212692857660263938849284959898236565727204263572026374825649494912629141917130646280595669825493603261320127019252804346170439028926027993140436137026582012131285148815857311178210413103357288871817295262711201271008147506402683046418988769747879173173703813999188824241699421215277604518595671190941807373479331012729970928315546816563952710104611376254066449586183854638982208996778329550111431499593680398222303713127363295742321735744647342109741491743641994731958840052638726959231836423254918455955045343778467094701274450959420120211422086419127904935994521373924871107432314951138042937936554363721726348190757113531212757093079527295221124795314989699080894665747695565124360561142008663990560990003803025061242360775032127693413472890501316772809713162683495963409292243031195084878867103533520023712730202916592975252657031277921042149634952385708560572343462157695698513406830454833154590753647114699682420910232143117176922712787385347704177940764410013010485960927072113205231853822274448702433271039878114791275460808361156877127992151311310450083663631007517511025900280864277150209627136623974010752884454683316182115027892643071280297635576105511246203324800531059951115054314848295534329598305742724517378865271930007323217362375812817327314890910945537402704811855571990516839387453520679708592118964078548950410940569965988715988633128262077955045219321563361246853031747054439402941829263552401554523160986825531389701880153970459625011283691796648125015559323114826730056338357972603286017784741496004569725783495620587328730124514555763412845230298648149544100907883529801207012654109525184606662017674204525736799469077190845378748206080290128548251670176619820730618331239219353569004070521549893903446593880904750772416954365185807506649045941286431888629787235716030224813522046010906352145082806397492755128476943549962033991644887919743790209512877188863200247502079102379073072963746326336674594275563784535691367345524014897125909480368566282321128800500394007310663207525728314711519263328928520696723934717509829526021254947643301953574383509258281289311133911539063376617373077236302798898699857994501659237690675488379889294006051628261400481504694812902814033083916434248650939635458909132805951116334550365634824519150583179498083182728134795050772717129133594966337188214919283787116463903566925779942457394355473044935559396848032790208614196815082606481292109246885433833298663907454780526362916156279880318782827074516303278639075665336219750632242486457612939459753596673200603898262930000761251494798008956712452569559827585485769012463686594942242277271771129451849641751071598416357207241224371968067203927064789427894217128426413342711831847944133460647243141295115015509855117124146682433123520628406572269260690474791964472975283227495698196327787281625954012012962053807329582500497445930809782409529912965423318498798800771681631986086512088315867256506594414061129784468374963189291374599342160348482288315828973094216147368925585169927155311558888760072170341024451298874402084434282730046730979555566681150130033888958380231464313829002600763228503475830780878895180312991398102076278898517435347822512084675949743002443789584289568075266320362769629946018083494199491270130065591308400058626563996391104068510412820071532462564263714563557576945284927112635577196325065896541301553648212545926335525729259528149934158787765156922311915102337344071699165647639820008969846298439913027759385398112133218103281989699457926176493582974837338775235285946403513823823062694536345810031936130372502069828073843334117528315731434263989641634712705303477569915580031181591809113788026883854757691304729233988828603230299770430666288695530121027270576339598976894102499684794981684201199256134807564413050406559462383708723688812548949148794873480861416810552114001845517008444484294847550732736642827222130606336582401745498808291301883914015680905000084954657373000327477972099175074617859515799532022372851307235920400742515225638616675620318839811761861196022162847431907970250367459282804678178536647393560013083540382782818457669478233745711382212193261672950104270694095202650280522898590935002394490874562620130953452217311940957783019536051850385496140621825306182036518273370621119893902448897538635818099449181310157848783365288654365422483020278924170496896511041727594750178122678581439174864942435730090917126413118771605959209744581146295542231002200851205225897647781148270394267766642782746259395117438071986187131222265586504030028469146927864680031836034638172640570270742262034297187555809938687124046562233389141313646583055430131550952851097263005080518826527268533537293733856918269371716773031611864749481042421513141279159101460656979533313377409593674932644146370242752453933503013099283364854070698403439912124524131592755802997988240920664464042585966200888741916498773027540372920421581093781471313622628866669454741316212449552849091492193371936234029433712557556998865296623645035351920267776379424820828605689362315213171523178850145213132149146986854835944706865850109813142058926764161151621094053567807368100897342458131872932705210853572676380564228840929665884477795279546710735193295474713015079220840328232204428944671319821839654711090211734072513972475735700855531274321999675125958256806323588088388436620326226619141413209347404364980002473983320924118386674296092694607014183881781107142824396577963884398647823137154249132189472583041145149526872423618996763058816820846327437441210390552765218710735564525713360114558045581322568455865043285991767651961932711434986654077745145004730727117147957122275720181288644644077751746013233282423173385337652989810442322404677246320479517980971576025800885768975134059480548268772884776293132484645496040270370508539419092769937066804551719416040376351180185513657545109524703460226002074174281325238494817822549063659920847490375832057446779591067556606407750093471298170058187694080279926904605913264987211763415191488225186704395573100179371000466572921803728487979715692278888397041982545657064289132708985827958625659901375968750078569853420944399597152366767355991155709006141301885395600693305082611328157883159790188291287776539696406753920808485822904755619051863754905941764720809084852392996636537713297468709856801423613707637046742361802921867959247697776529262929041798392750534329433844765333985012133028283627985150263745427966717714841975733906572871543054321575235449320534653754238204844850884634591331085338667729253852044498441313686375189411768486261360368193736351339325408068522692147430732913446713326252932264084533084493864715156181394136343503648177947550976339255988278690369632386330342579445292133329237752032874489020040532668139354752855017464531717214599508145561364692526650227115337381817597851334579504198807548581133628915490090390806077541575736137375598801875730753624873700129122382611343810313359234372313536898891533749493786324984941764281417045284082969399172432328677256415048376577311449335133621553852300178110827616363037090205259503779092534110470570046565251977925679331410886632640592623171337889312603152857587164242119033379872577587429012903759362697272343148935725724188379418627686456677513388686920276014398050163871435204776738809005789283633817797388457344100149966433235822257925351711059133948560789182401521998285226946509587631492471279520164467647402704689545435103069826179991402234072851340489154680684209574320750662115448762664467579863644388023258636088691875944227152142965066416138496313418150279721730712659205782660027847181400342092656930703090445702459646757649018527813931481315092036134241049845969060225314474822945707025270436304061114455142227669366501254252372074394018277525089414321343915215170599745459312594682121435106227633033185043394889512767206372915124936819357031910469357290513442762887687825004850548005973230753265227792552419913159617911522069419685479187341566997810967025629134593993208164507174173490564339865219986639055709352119852439067986150214486239284387398201876022854711346230394945966157258750965032007124766575938137212480113415355061675472036957910559746106711254171174513473695430147191419937319722797169021161357262524311647228936664414262124385498136236949635712821160368134854416071082317751078012983042538141908922492085953646108213956481132053160737077720760559934981503421349406407751233151215899924629749784547438578559522708926710247919919964504304016600562176296234014928213501816115205046438140512010176327979026932712227012592708163045794086959388503088585777767698805771202135177461858372818585997017721116037109827393241471979376638648431600084157927253061164085015150016520301352020014274337639041878862263527470225898484946907769474761327639105259940566038238237163694355547065813531748273071824741827263627240462399440284444736424586444751046902997652674973443569857085390578191599135458599609675061283091019474886565075126139713632927641583491304208300950851100414074557443784927898571355607261057697418196336967907551883832201734437643980536829626873285189395308159721384099875365774663513564932531139362559789543000911914267407538592549690157973419183710401699917900945678359628573224471479135707320456964719786315490862841233325174812784828809848761022100974278347516462790553938519668895696511358087606287295745908892017023867207401060245389415195473932814246622312689236265027205640264302177690313591895555206112711463146717038915773390065452869232720808111578757374991035324446693616535175221246886136060805939738054689486755602588706871030811898922024217495293458219535300991561355360731590956734699061361992487426800195382175246210534986270106132159075726024080430082786835629319838427105219835472751176413622330279958926872730531183558056875276124091974244476335680956874844410454670283523651415276562700804136336309747745376780982087349803849825992488106702977549495352282995165465598506874283176285208571961391364379782850577901499623213922046234152416823803889446624267373001896543376476503634125182850951208886413658562947143987795665592807491648962562185926715414692176768396054500821642162605610642314443579823069136619657804705747148460072968182372287977560496089158178686729363237902415792047283646970210313975180091367784159855000705536493875321257496167487587258325992595761507433918622843798830134604454088081780968513684911945411934702689650599198604109976532111965810629665500511618365170620292880877609149846167316442136968641970892306484630567545738872024760165257760852937721093358445387107402729259191524626762353817971370869306421534013163370113573563511109814182112966221073672626961567267483077524887444841676657370240013714850839370255838591012266948358068391545479166016456914863052393597793244672558867174160485503871149137203176075537321944728305822191558078807524536969327446017473605242058646968697577061218677619720587491373104516514271549542385392023252697512349546546309061329460056650728309872803387373515537522356318357013742537006494092638080317374634854036114660004846876242310894723791650074517970524862846727663375517303137568736838564403704980661790920083171078821049818331552614850537354075035108223939247445630109692042271376884473716968895091118573692689033665971852253777032962201670810655181267580094085251506847757921913813779321380928696119531220905038018107658748836831788278142527862618796676068219770390932600672961512755137871252786437069898354444096139173790354548518040397333137480523587910955583040481534804539187854038241379323690730431027406264177776265730103470338402112966908481804616249648739473458441215530258152221499413805822249941941954725641031750211442280865230280221342409319393272767819599060811259862396733945898961138190716797777802595116314775762640285882625148158216439944135061960811758904619511585390826133549603881382032371352224516968118059751218959002859179739086652449528040782713027004537743726785553250485039746313837573946460984085658930184822341614986583150346608218622360580194811455490351547426626606129502687840138497547798140726823956931472487609828034508118938340409615343148630112486764653154787584549465222275311385877356089083504383708112088244175993858646630939704811725300402030581340904474505115637705410350141613866861912485252694933482978510181114723298740453961275402222190958440508723066232688884970422345670001138719497518597964940991489713853622794588740760990432854228127730581830402494510870633698694686740089481388109753971009084947683041071152955063888765249054565999426077388634739455251144897203610479375725447213893966023547748127494160698351013147640236419491461059805563757044651556671236525682827015744528476022139007817539723371640969862649205576687615644577446446649254773467297255570538828590789231759706768639821391496629455560193873152710362720124293120176425224644803181954468333763994613138361445704160888342225313927155878358070161156027177541424723331527813566940098980044458238998420064074895892389238927522891473139329455312404247755208380523795101239384358587754549990012720682866599985790984293038460073296238426291394079721823337274766946401526920488143042273943883838698807236503400880952451272600136152570415774978913955464274592866962164154275190720789657656762047087629102592988877128340580613171820688795096273552308139602280366588530930270461940061446449186278566424494208162102038327611169622442138639731157130118991851397316991515816502583428128487414927536050735501492751649655689498688144578280724154009011617693658986213988113745927903225784890933976881608670857002995345721579420980997220532145751427154112209398869874562139980116533207925455196985191038428157268351201092367995242906867995456830838859301366721852113536417241400422837049206036481544497177998861873906197012650668437064042512445995190900622608217984541513987408614011561892465930844027470147101672547160166860173976919976620111199893015535406281778132823867987398831140285480936514175269040502739923269532293931036045698425205947108776022321016774679279356253076833772201403692980995213327549341076406829369625653809798299221502007619065671332333071917531109537696743144582714040474521918565656173056185321660425946455385616883759934532767382788781222315372811134173554517073553140520827604407745254423078545374811259665463557459604327036854215738696224447960925936750083098914000681406538363588177874864271068825787874079928341825197714084223048949791551798767827468475408492899386476314074983917539244593293129138080738765005052200666662727343844540498968011834325534999762501192176787558140809806723324167826178257089116301798088195583791075401180509621601093080422570180549297646784115387691409143070882475312172313794037236592877104345544696266599992623393329864113710012680408116027696940228714101365072981064452520165517338604686504062129245789271472274267638614268236764085164119476626514371013141193855680642700778296596804860775179492212156291738671635464988985383575153249743158354139913221365051412155138410903090275543323644120225300770428211147141918147570961833137822943420725434103155582818669314132838668366072691638369677932010214202904681337049153438059246547114970835401227241006503949742164188141466922744736899506252894502777189894691329634675858792642352116335464746864260548561315778403611431491415026954427505648038478887943295655604844339184060202704514682782423151406507022104851959207231200493314167176738352370930885652643448419467734538241329688543063024778255435028195957175433268735831728279337141774101026347172525800055108998087920427447783853642749720654309224796057214003306615979398156970613661418098396405520287669991722547240206396060964299454270591546000735367315498807739083001581335160357301114191114109280154122806666705878555092703338500983115676285161649242550929283039087709889349460723490286142058560205422067037156804635003826052763710823986597931848309367641656360790706605233434111377931216121421020588095146143773947683538839504721294528349865480864837885019467676945623267019987133184554534837314226084512767180056787542358871951058956527978045378344846504681469516775381369518451030832390374965716142321433079638601544816144955239351112121894430238269540578601164673736647956520658725081592753057131341424383569920048999618043254950205219555020617927799305642458366587216753519281750334499239183325623616214256502081490355786124405183440403815991358271738433734045297449996405991865666415356124243080016261793142637509214296580882832219570578431716979462845513309683824600036989961805929879506603760712432725597531427650882038636095880904003800176047507866974433258772321543832599839986439501144954150770097282265369514288394380850912841104162909663701274249881761634410166742340050683616764823271038894223948202530869672142922925243407506026512988576358781375008510056886874328274718732324289847733542581504162589550238544891430068496767648928297072811584351167607761726048913558510981478950842984983605593659371053202059979044314316973534016628764532063718869382189780157321907629981036125683876483872698536012944816073176186580668143205968373389411982650087326242669600240908832076226117839991574402105842789845063036014199339283624551433402768350998972042185962090201621015651922358421194882020912378392755718560554165620545534719697866114342350583489628212860820840349731199881077259045458633766108505095823850307512842596428597494715967542143559240349558609796434019664667217572372370707851846466383706717029954169832988691247281876802738125491436629389876072234084657095098943201654876047933946794685134373263039223093317906873031699418007404800014376872513659785795859947801994965234272868898871781351617155057783915871386404057895659182321370814005143887138088365230471671271822006018608811257260339862403542067521276908921081552260329300444101890637231439659195711953030288248586847825648830052518126081035421351812247158400462751059244487058370954083531814409752152361034204084507641376742347300588220343231604746330435062814232108294872409025947644118910322144133740497947408578277622048261821951428217981124372676625846895195106998673740227323002602615059706421442152746023269994970061582359282822297832868401997290365378168160028841173067332449662838403243536504114433975362055091052197490957998605957269413840242675559674863774293085831406648031844531532908153215494144434582880442937355680052766701800094788733588609136494945838526892791365594342881741864555941029617921445995812608097064547465090234261840345010812403353900061073469412097838671627721613708361451511050077214460117042140575102955114913702554533502068141165244769178458694354034118791350719472868333896624761011144783017004972618956118398981605390920089117277245282732995868083801073781314001876067250126926454645091448767337470023676782013523567324262478880482343629009996330109765730571074508621321877968280743439896414498355242714487573058303218024945210923199120417862983211064561898234504950543971618030395685126538014145092251694878479554724186382786275823278212993978207428675547109249821824468614795808140835500466875591451626157906171759021927186972378454724112985575731793747953518295584299133692814058848042157153807468514523113023354946272141844005632397445875377275180714660165706503537500007800054761003678636991113239858145362132218224624643435010363223985967017289928425234113154343262930390735953429144139338742821872148411454861312790716268582668472059546640356511332792729283670421533337815648978787243472316577108118905881114555922053413447767521297746355065511098018114547089217012441063492394924242267383494394078654658363868145659700260199154168385586155789670127220023220031686195419702892475742166676680152480824022111156190981457290952882934227840649039533967200864995696544707521184613434097785777736426316586916987627495418868314581332475145315900233544095171491408135927319114619200677579215856331076125470709339611644150880072729145939456368492532718589155168814720960114154056640038921028118648545950411900558007928394716199676003011460877000729916613487810389918979927793308260333338334057919338601259926635435064710091260634625238574314614635268474929790657800172876659682562194685410779874218445504710482511389936542799445932024438989851146234425672669327861329504851702042670416810423988787766282835019312545495101087037669638120603127617991463621889318777830520450194812047427052045732125487339039302866808539289855145395183070167737253391567914642769039073362485903433514761178705177976647101075024507681616557253954820094809110586317329891753118146541603640219503463573219594755860083208292675123788495516672506492207206097412031293135743537452185541466549830258041565179862278016468937481723971338112369536373581105739391053691797392934319775188032524314675258608082755374099972101540080046979927943422345447689707580313149065499764572719969962803326920908146891558381760321398926448802376910082742090668080043739925045412236849719409774670467316737887852049411469656447370713254372831395409623181337647384889412182775687605827547211534840641119286609198061422822914705524907588525871140721341401635238119989127477891313975746828093424728231102189843007024439996429064147144508447880276686539463578359786330143574307385522480118057855163003059480351702305291761937668044891472745519006229814174022546879385980914228583744941429466840567844786299687303736686339751013910079845514738831971893984042058517831262556099075164256666091448576606836793744806529724037099333962928343483326147461041368713447259629441715366168325692987460751934900436754871245012517388228959426432206171837705951475166566490388962341590342836592467623892154316210947396500986925708950750411415781971894579948516829214763997676852605909408476925555603209473017988926182294738346886884787742147478211246290050487616242097147757229517860733959886964186053995691274261105379964864827288214729865447937270511431036415399504302491478248903898719047380481217370572566371346514715413122205631956995297107448454232578540931960703748062414793288730574037414313238215835562671427568755755136182019176330108628379725855115674172305047190608736148016277083262964429580482797563630823764361615455540616980045819644670667810243347845988069248477274891481529826204516943700371120191295353112919713801759557797453217970689981078697996711614064725835573138514822803781447946186458216347452039855897512317136407974683851455920414500521772122914466992786476520100148336539788997094195677954229000414384548714348852855651763080299251676444247682186490621512191723425681484685160060585978089662366883201283965312270307465481821199948225388143004016811445036211672024446204814852829677761601656378975763497955487255108091057813394203472774484748769898419218280856304164926029917148662303626322504418296296521543856287607037421868140047386309450159109132542103032561351107575582873471487865626080932564507434633723342240855858163385371530694587826920205239506727247536900139801149643165914884582971648686322048417952196424498327948806313464620108913932870531345561503788769211459272685051467148971355995890632238650764778282690168036013061708569828863363533982166411661335548040370382100344583801490815055830340179712082249390950385660958557139537463476283240421751934265668639255917743378325548207014913861056330126237628769817347282242509461531890702150820504218103977489407657214990832478528545951002149246795973930841106272522541569649389236827358143460772759803346264312598278889441818491738026870449601493388670718647708315647875891178035430820131865658203435407342292834745576965149868391503976141261336014947894809975591648249062551685536794824740509846496085681889172036998737579643980011652952702772372260149519357555720232631014768692847626362851893048492690926409854724936481814128316893832831257956621359881496355445206674089584092314862575591105196220005030802042573700289966012413635564880280339995694656095814978576321992603000468539755980287655583171070639975066604761486777635632261161271522426710967361840252149891082552446153885776660277960808983028370687781398492381254517178987577906769165132460310875518147961499001216762016855436138875351111446464459659489862868500384293816775979619127299904591343960428362278215001457438491080662673720398159683311458313277557371939647621394703694871344837965336720886507609494431150106748938628101668608093548762040629531426836790162232434421625009619198865282501847807500930929896161502878935144048527844852101949729314912293366428383610958359117926697321050328658637196191306498573320815036615243198917751756133072533690606289440140362467357916861241907679730721538960992609147780039218290150496605678051574245394812705158278656086176628088767548528264353457929751091037432431480490509972013401505093871209967992266732745697219975739749835295566344453243455703262602782931368938896296769149005111715069164157396415162234596241438799849972397210625910452426655628296014596790128617641535247864330478558150714962571113956032515036318374506194258790732974799065403378129323435496477095994159702169181036814731508383333064151387713221517339840938174656833323752124521204263514948017957370648574825588129624111414615094692661774781738601561556967768080635428081339262222680573586043957391627387714350848477018662653169151074888647386824309419601892875891202138727709615384880950656532073442058984978568214481099344327143791511412923407297547932647618296204036144364112746524043691754283585661405959433261009132314486416420497615124947955201717108651706981224160848217072171016494824798077491801666631807604571639525183860958271832151372086570529825589266492312740506731234877203497799829560941063603051658168190384801114703042390182041514575837273165208592253994751093890012112219426665445908677926913711549507896665766765460962882777751915159570554507297923666208523507816894340032047543740400762179909188135109499396694313427985992158062927151604213826756214353405924672023502064258541096859551282959888016794748534882762322608988214260279669491517488339973538091153102615727526061516646757472311267311304563021016442756282782191487924669897532097815183265292168258433047908547833654269758433077955719520001012078724019881349498443843676382704117421003151969511690111801683269994661201008605320941579019288976139784035165111599346420444148276820545506341841520830616197994602704896489524389702584341717731903153309321479805420208961951250759293649016278147407715213224772573220191350456805599978569277543054657879842859468408586784134114538241240720656755982648262152257619030338341742518485385403847037100690876508085350864021762101015672829143567367711035116439783631523440428302347807354566914381770474508945872117878391541665309247269795195268639282330037168506787620715248775481783910819732182904787993291396078874176833081865318199940659792678221322713459632471409529463152507619739674998463493636097580672536615518078598145349535821601480260233176252015063663993913514287751526115353212411225150570657231152085376502843221015840618982570047043917186490724120891714561202491730015274379934999420658663798578734606048061922811946433156292568671087969712349623640619373881121802073791152859818010975908011327225784300250111378803495792043918992883005162429217600337641079337196813319206751529829918260784852475711775242016834934819414005391646393521827371048915003658047925976158343651355349415303843191509214629308199501835916709425302654032980324967615843963471143532471437039221486178438282611153138668855215984613445058033026369143941743559917537871666881400452968934351987652723008458465501565651532989521130110485288169394156867063517831922185595530500029864832544477477719955016508265889671396408815339880567958066916065806094048513928010222769761561382608319076033245484652866146494294839667733008070153473200675104262514142962447145368750970687850660059394026518778610327654702806325729906196897591887381535667230511012379493292597649574826255195927394471764009255618521185772443088894589313045709752725867015367145565142360341819890315195457218862114917103453059657845082618680743649773583175770086475879964322153774454895007809667119616215136769508530892336123866628348110293980460743553427272442810490328075676701538033772711209491284344874508135688221560330504388351754108148303753443420841220816836058132623457677515394279316198604543050444851055580041167943376713205581470587272088253604731064967931847963735278844788154052058731828660065633493256023590888983537772507970200505414402105594610720764924409136337227897399461541639751234117883663125090061416232276570285410485067974498127181467643084141030023752565373049527672715425484545999787163325331050619024021518146810014651262851039759839412882369862113183152477649679577744154319133239479855287165302319986980239839847319817881713331034433989083795800005131965345233833901090971544044471434794265026285740315181520354650728231183851986580293621352243797543193801983432914312502757715456675431686988860286567701350037258969644586868341764738783906654442181923585773107870023191744542871154641600302682837240494643603478769035733261881143101081321885527985897303450534403303722769151404531821547361878321719988989055082908966241976585598057834142873730648098529078214594112649499219651136125677715483076994605802064072391808669002017569564175955272113593375897911604759823155872535644568257143746585154966889820373705497045290715846973763555870609280120176978053293579678380795022792200105201676898873251550410838931925090717428881081070862320755101848004176969682629039239983938116236638478713081932018555915512678658980709850229537394942175424696253547043954732413392476485210376117773112313850016187130471064155277839324875850063619911967787753268071392468984403882659360510854652369222619272403499121038316226291553724114408355686804998074604837135925207539017014469373916409286486391905375739329455653677543563294815549530854791973561811689434694434436430308714442549106098294828815811595635629933779473922097851104067155521664480320531067091303759488434578734398473707653747404793080903438244339705830532695856299847938301556480817797508901932397881964474728134854864856399736790769039302521285919509594533031379751852981866215576201176126095321392633918271825632758305911893721069157764383887227842285290091226125140805231508120155827262477370667161537297962365171711830918171522805265375933737558128234864296932266784713386959887691559158095081150499363373569059008428920070548252546176895416471077801175860714328662404483055236425937715605798552448696080726730590765024885140814761891799989629290795406069165098627507033091008866119931836156153478110689500553232123231040994315669757128432110589272907562665298306834612688174350276344573487311562308127878539668259480450244508994538506262228156572066562590807106009071947415806434289617313151570615630558113998960765684277239548120624654927922466441086739301705267840652247504105360432350868815254382156418840578152295198789560649956069827453289227327038537584520927092429466734689593377789658067695128591565044905739913079487625397989989468534486708427632847644098046534885512094360642889373837105351559587915665075103681999586009247940522051548807777499830613137902641282737157571061281736249783647450207227756156719521267432735816854961196988825831126166950522240218811466930625749538470869958657459988789278684731568871986438379048046374622281612687127634511309478316617599707595085332574602849374001043645034556580415694944295034531833812907850888333858378697710849820665102062795707669833445177934527180376911410207557157047743154293290326295321149788262035159874125464228843952777954992895647543471058985851590055084900561571969036939946380541274407827207958812061095018266675052829100428644011596909156026024587211745604551015729407684697973682748145979040455219048418011545663478335343808815341403723981788190775763064723383684157380766171878875254440731865830501186475632030171398339007898754244110262777492594557872631516087487021574504806203816260628415675429971100845723607943683883177569711607177476019773629986084709225612419033415754303868060751607783650278916662836093176759695530149368127979354666523938986549220821261327763789820157629467995816243987059362391705117507050493924429371228752072100479003695203530541747026881003131427531577117445624640735452001303351544161161284530636382206203182714120347105733305706095610419997744129437815789723336195293680711629464974174674606161944284195771506421244911540670731221384206414126967154566438157991594717779694935195834684336783221413037431073429174373437635441590737738077683355454522041607558321580450014127128997410149470548864724341589912960922829862407455160589149631021000595871347192097972398315816831280110175264318686111835170173586754064926579151374058216297242018837510297720276922807801732353158265852486610373552463605197417587182349087381977451996041351604688086082725590610482822257576746358191583166290343907054759703480904400430433331741346142345412745677987258923240909151087305920242790014967315847015134772151425714802387818972789099319232118851804003049762893873119886876339770569031907414517629158575055829507905515712897726034354672225187519472277750347806298881580276408830585887321140899356256541586452632562629304285439933282550329502893699077705490294707962200839029322144411265738208956854344785215872535584373126933754793765994306991005699082156031450819886494389488679597736520237763805269495558714158854270658517474445964682352694105685193373700491448623760659795743742949313762849542374769629842362041589040699032232862548282233542016522829128844342157512706020215383178452185648411506693943643644633903215909462869215001200331737223159459937024404665464401070954637786273667690456425997758603414233762759258159153631264370897307579552699685031320690918306791326542030640031482455986239265759757317759128625308941592654125166228407163370149790267384325301619010137297886469540342569455726305220387629423264806499623815931630855003126516805447885568199731089679575544268392204851309190268824033771201778639860463980025603159472060692953460153673513009351664904759969041534844228406494643578396273959796970119995996897055007131595980267143153912391461161358183406808760534667255305042239792809656622109111184778965033519003128193015968140470647874036715555211403407030398907223233915942351265297171121449159128746969645445570922804347159733841013858874280507251493201836765498654426190687675030397956939024213437475259202844493707032198241598095085287439294127815958647543036695336546465043812295538569601870814630360006810223193535677588422115997066271778752289539374973944984606881958992605790426632428181883297682570878308901643540546417536779160075214014916981613499304491042042741729907318379698513124559586063991996596689961080050494007296397091601895951757463495011315239540543638424771576730579689978093511231012700060683156013470561688420818621016025906584385468535226530994080955068645181964310455005698528640369722726449640722091072805065651759005160336331942571882619016852091109444623049387276226013009665098018150216116189314991755448664845101939641604089242453518586296685358807237025208629039637513544240841676796106254077453543971872022038982925881516050488174626321440193245912638467764538782149003218736052884016158146769340972434249669596797455129521160652475413003838241759677554225154868903498467584610663159419881211797133452509275307014085614263503011607527147370879790229663568300178799028808419389392249188448911767008038038758887801697701113453349115316084802106585087570025517363256882009759552748712253571825516978753150955690868985464837948430351870614160992313573402963136527912761526230610431409239565352297493261018023574144940020107575292488958929324581610035188934833623226621107047222795178964311353322215133111281302699657056542366660712427360675833767816113519101251099443703046290763466149644955996730321258522840068128863206013843915352393209115790604734161213936297323492759180894233656526093948313364810290643586311830825965878597847150234490787476787995661613742485205104010399975710394022063069173474202089699175600528889873675939662936740172098219541833712816142339328624773171964386256653145512699222367766777081986434967998415260451946404590163957896049279139161529104349027568381726840470522981408906713149152625044175452710112357868012989368284933913963833660781616142291794554344916809706649131884537812025796215523212883988829483096025415451583015564562313284503116177418576979979910789556567996082529165537586122338380700692195796394198374261176767691005073575014710161841273917783596347944115924160740964918923864162314431509843379999957412386084556879065017966046590401619119009310649145976455087441691709361597805467174658993017041375390468254441984930697739630336143300416200322637044138842456485319600091024035914860434195671889198585615655465775089014431777128616456862190162101284594607421607429571045831400462012463901102101932368874623187463906390518460908247466122225868311622716989063606402540489350875060019353832358477797777718415669271122400445516770541931073038836943879716238890462421759004666609104016362270064506716725632981356191695775856133339039827759965225099040387093162427898622159549437997063064807096494177080058122705593309162118440046358937856324358641910615400682041625787901621404457877173981029526071730009912179711375424333488226661867180593453500359794062610169455816269487985287382394619259273830058657862369012719296382659263937819596877763449192781383915273468510317162712835011677541289696340176336880334761324250065479448355160024231256646080107867025860376099390800451628175626009065555413098404273574300500668774331352820617072990338937053222546700420588964046523936142816293079185404169666783240709559587709423200941561095553433443491385438840861082486242898596197412565717163004240067876712368593537227109156704060621943472602040994139547201317552449158345944274919192913502351631583440418720697434588605383370185897657206225466863899147406171384409111405424448924181252805873784416324375990337027144323207852046419314755947583142919416971906297697904498821308019258759048587570102804163398900927646674318174193127387987919086670564601741410451836547363921120183127264213529907507531674181634604113908507917404417265800928896640035085618299372472136843413149569295704019813001606087541279574616356419031797332593924021074167670242353517422118285715161832976814222607309029636948713308807785556663163623972833422527065650730725189030903950229751455450814134444281654143644104921750622706436286101757171637112048366581497058246357800755045626453744628052593284156788579850690105804527975626285722083047835416383668131330317233238135264707525779523301528916639528654318999573174578016782672814602226403818995669163937994842421098248974200882331114001341044095160930831309054655031595551547397748022146240676110527161640137579986283543969665783552456700793604975187679585004347859444483487473455259996323925882010445287816419576723339110852081379948423471531895261281875108905121354654969246066557673451857177405113980900507164249322800709405692065544287992897680913853288239231274264963790719799785249090304609585020328130118811643918979875386127705098311267968672117810060942886033416074080204485324414144579454721054698929166499816441941599750811708399758552531253479307072377194823738336760655418502113337357535711604984088630696264164598901511556298277922304333498449367839151985626850432520084479855462969126299788313029363064633704501646331552637520404739224157072857779988029635328900698400767818969756354021766194294424753725649845722616475506787359093405723897937819146080319827113924804979411004922981431759499199310328089795747253376814164860617454331326448924803701346264266926317342443574270517747565067556341333600591783137637375920389021649042651716918654224484136094659863626775433322172909728067721218122945017766423271673310919275233772416502450590808589275655643441154844388895321327028560540600643524034011774394263831492694203667677312492165133446046152792228711747373206820737950407753807024875139736974872208079418362724579267158605875684371652382569660152884501593636057997648795546668979631727641445826714098393026058444373118321952735782429916532380530460979253217595294376466967178599565547975260104811160900192559877031603692890535464219693617165490098547207855125725975325768780341842823941930116764712780200132449054170687194060874864250992490041655124377799025672362387521344875468680180570026771659045717416750935853746632784661471702229127753816416568935814037542041316317966204626016830058358402780842508470610285632146763492164415596565399512441115165727225209885576318078808628374443953733638662891394399045918693562979931691320743108491238782696708171658379838027600732835237130570383538812019217807455705392131250482197669340639428023453350969805452191916596416496966420519223222933252249809906809438298608239338686773954452673632194440159865904066528670206166051004940978671302450896050636311474978975431863273763793202279530010877176844026182180038590906077021661934597864093296951123385326149456558596771175442461946208674178988143477802702378918386547507367250716620123164595421042303682530154992729230497065006887445529088936646551481938480563745544703197171864227166320965870630049834366571830309458525285629892546132607901723746233601382089476404721767102107836353061664328391852894263097083524184268806663972454351949874594952723688235110647593837053136149452332629900616650613544202079008007844359185142381095406246359288007491747232601428291506647356469491490753130404119166648746127584251725422993376561913228344136159688451230509792290809347780610001202430793367546069567181667867847589029167162815104791098481996879505375747610343839289298183475591353372834288849228539396595016681645942296849021635769846036566677068849790614937895866238978513950301955252071159479162430380571339166910441235127977174258949971813208993972409457630504381765420237749372929236666408582635630470188942841670713662179628077947581410647203968690057335883783238393851564367692910953212630953023723418877637759516711325585719886841563511434654449213461836258200177391119635659736209174802895107119119312161615049356167261400198915406771914740604502008489007852104489840715587249131814241237453147390958592854919261955121673752815404555548948605304395183055163865296351143585542678957884332247030322398462969403700363866705916747551896228216684947215516799401023726052761920617504560496637170762638459530053344438789944328543663167501464142075150267652998714841483859242046843515052858926483541295999641906383622255006162029851790801676799955171614289274332216280696351216290296505034545598002429203806611312249987574877781454333495781316776558008300458790545565523759643089947282941565846898062943112725975546930218879127310353002168642276167833661031890511086335963986070974737419552934178507801365337868776791151473833252513002371910235875881679679803938552970499832183038998533373533151034580443402573042275868260972398342231501764080332731762216806319675659897729718394229716522776196734085734441374759147793179333989243599405813960322813465924785168158756550575159428611613176739552834815080851852071547951439266728751057441386769718902087776119592451682935929086383969620057686509962930381814549128073418097204032036336676649944391993626414522714507350316837059076093857524400009474822971362377215926308360221391588559094614074069763012970865696906676244218168461836355204727903533175309360779778798470802390218595874487896074523749056283747418931026806280481741685338130019822127770609218470081525232714598672343785431049783904364930586076453575602598382816254098416869639983181129718814386395426544082800861930572917995688879881825724409230860777086263513136094630976168777409970284727668296668542908454052022919003034322471898204993824806075163872794566894084973666516221688813369488285833953135050217053611181750210101696093737288217468389261806871887211712203206733649831216898125457269276310564825879010685752080806339287513648175837581096955969933848419910626922411365611711169029547967778123862393493414008547053784583782851512327987308840937357211004586036545449453018681073291691376110867978282803436613333978053861486359437163500877119311955984802182899267779769409139308492689216923971610875162598136464279519116303391796129190017609532216557349110374712094579004186028992215511759169315683036249471608650518632279742956136519830351897142876022375071605999046852270284824202570096299381694279147818015406641691792596965023061674967724784194741420092429772971388832511665522273033896444730516952704902414772756471540923768066416528226112216605519035104953216953829995701741146510299848982516439169605699093945986820498552583128764456838984342109365894310511407555838492789369974095013891988212479911697620988839243558736555452375362389064107266313657338688715014376676574392829832073461314039495261709516983084489658005655846309523296318712451836616630427749852736202349067859155769362205347242611125326389169914302528937667373926286064609916642583999874647434141639526777322469333134089892282135236716095628251700134923485926804073551815360719656739502706913535763434376744311724908455377670326669884144911480888417018013249302584381770118785666357293539878114064658836941728387365708433757510447991235973659724344557170242718384733620516409860393102195921211225720343651001396389064945296714205608908617698288316388283821703522970765818961189545729825810733945401727749783454068776411077800440742929663980795802668931294689017048915006186184189218530416433221694927821339211827719021675202080596726274946300280538877794596218568170530743842989256463024089063366760647389704968736267734714319346437826952783760286146583892789336232361706160368696588859944071709014385765008562370357074728812300427764747470377946320005543727473658472402617071839025081850203994131095039708124812210776128324595639956407303784228294941790417991353653370609295170835804128449019567717436326558733430284401481499075465103281813878210907214339837454150957218087233211709639314118488540488247613315649935403031131319714388566683380217666836082950323604059513677592715516517106796802958597338036134406930781375730116130026579702426559178634319436264662301868725879630575563660171178289969536349814522388660073014771879198641606614390805777255192448707082910976735549911200612317531712618478131765439557295038545292365366941334856217878926154740456150452308853118438978335074806994480217130815830478029291395027421867886919801765554681814454430741911022927219318644407497903172599397713621171480997111761468900013772407009234849963308320304297321967582789400084665235071155111834810320144835291715474488518863241330396067639585766239272743538647655332592611391601058972069491216041943843627692250217160408360183481182715855343925553745823628255237262533143596996463666782559338210091759874444027185225171712906425157453594796130527189599488847824353172256275413109599850442774753526388871189264977071705501718220105682325307115438956475830312255116287639688351432627286298152407558879959620980439465968893295117199044901057419141998149858790000533489612069163111754682534858290076839537662641452052739360786513805172072241506897185582776538952151358565897640730148811113373869245888909822760229733951244135075100387251721894820664785445392905511604925465568301792236352637755462684090494780037268471610264950882620693574817224631643968978962700833763037430175619457389078848104243092855236310298355174517454466065297670819947172343205995165291596008715652115461296735413957327751678443484864598339137584856250554601750792209883581724771933860139489675148337638021390341529042836264537637458087828153790470854457596761421037723612329617251964022920228951469688114470582893098035700150410369484170547286922751970446946972920349519697662176172664143620321098749717299081440003715739281891528408319742294373367747782587092187172252984069305556931727522583678625387769903710832987797950516916962995760702662487725611153210245228717970309373800563354017285929310890187400495751330564575546864588192534437227170484110760458345052572429176844235610013945668172924566042880004740729261916575440953365000544583331333348665819727492760012423238225171846893069408571730232461554239281388742202766169379793566344104503711559823675771431249127962314115016452888044094239017310517346456378036293953277878016360441042759186420251677118235910812494784489548807258551257454960799173256918012971317205403842490960873636213513109752862098622426241874243578376772912641791880137675200321733056332618924101861651303481024400685680860611048112942740900937527485785858684092297315779366886086117349964429073615749053303451074679213921393573414693782678405331319923544330346071951552057006610011693173501061146455648916805009145005561378494045436931348591061841933018954548638521986008082004028633222681736577928659474990069360751057802347420150353177373008364949891672893509093542120975207472725043666188017370613349590930611407110464599244759717542401996540730654084169735239250415635500390264400292275155191173808629413672360002694120712781130876365316152244335162266919012310171362950133169807700976703122592331739409954235276489844208910924390275648161700407217392725660242958371557106716854141871300357131023054417407259377064542064373028381478419102186882184665671383261282637806975309886082906633039669846839624674174176885114506491315186155246294792481115987311090797711529805880920928581622770652756777195393112035731742194334593434733729518994157214722761903678004308795904799926642428196201630098883714884504398012244617432455602660408616133199723284978761593171268140040450561896686909847082394137085518132619963768897021174424152313781873313001560112199565703541410653535638452439655642672721743450531708970862034765475867411745281464071979228057446954068492795994590458209018731765866162517873312969357262487630182748053065600217469462418101514313186902408749384112421582150837307412833731003222668395769073506988176827548481773049174795391310318465327838386562671747600180627887580492540088784039279856464964515527892734502001541003131748190509627108096288952376898287265139140819451167195916663181885337312798227947809638418633081232493417493682732708847168484082306510680498401989966141848682192923712432262932844248302361017983910042699040175077447991908376102111123960672507192997931365177067316450479862322551979702992566531510159660459669011751508870688829825272864059895142504765564643861397139093020257194585582527139271981132775888695544629217520605202687675221367966827468775874528760778634491382699563480082544144131825347204948014212654329829175367846686054377906133891020607653897467837990904198226428291713569800434724666969930157511495371520431754740319181079548689432406229094586232624522096675744952856601646578736884246540265604576973290012958317557874201711510057426597492533286825866257024583781152182201277576078722787536254417678516818491979949175649764910003693490955081945020556381122496479676624965078580232712368944622866979631971539024990109911757176720532965920102432741583664628510351940054145719071486388246944690382245688388500782441039250163517589715374849056945245605312540379176033101653477500199864958058355366142071699741173310552540420552110175977318581045894610462735580709471466835287835222442439519510959648019339972822544123729119753352333971760882005003209483077806628336460632466710018008706662889771576131803944530851778599796791617562364245717619913187479952951873675602067243360786278316446550471333425577456220329705837065208461481461803279556176257231128913791506107878236724170631574279086027582680483282048253059594486535530533557360894366837871763788779088357733165815665640463336311789655775538674513596547437928824432776177665299775378844321226217646758789612663833068438490058005776137309460432457331415978761655537226301616423353451002374635368298176594247824255806480766433618052377415631403789337126999008115460840814240586928446408742389124577519361766646699463735915844119317795008584806528052045138617897232991096461177097629716988054741486404035888317679279500405680966882682526783325875358351600505794585314848377702967618326360649136605647118508049163176859111816805735686256767574836279625954231444084268694441780846545900109830083247012732767325186296521769810119875667425123718547191741964461099638143692252764876865242964332848802671048804488801559106447617709829183364432563837983478922499242473473474925585572931518611034534137335672274625782767187551285229177161571935018632517217599994227794412512769491665964117645331130767839435875570151126833978807782308931772276729219673906565016790988495989997183620183772466979164681588840040150832641339017024402863907008817733106649068349767628800880971315772643341647052515364717730661392722405632571001397299899095593747730177455963634856006159849612535183107450428280599101135615276461371873230740548644387095103762391293174411775392679964474732361821363311858580406993658377760655841495332832660287785469689430022926853101934301917768737058717358218098006693891250766257084746595062899184683469499119620505628810062352434005024075121177725659762183568345522576684049165251570758414614413289520970093068729022716370563859061059216969457351778131229699292583567531883445210953757017356326181664424591830719173259280537351848183098722945626217217795404441898640397503845136061110062107180886892905388556538032123197766450079788089229139071971832155178033766071468815888614665937080218118486409491244157801586964737239095958580311735493963934232398121881781385832226906227304369154796477329036203102315846228211866082858960816909409000618964421346173446825217821433863060864107649130309630386061561226947756727056616419832266128295594054185267009938944181452669178398151219653967190513843135365503213138068242451734889475925031241924841752557403818235113902616355371784093686468847101525986682006296660433267158847028467252827367513636915893498572151495769695739379312917853333878685870155864384721219088131194713370873382327500056239923744771721034792168999587001504698058178695623651885426829398566671272305833174739467989387917984475726396699725651509335049449623932989411831787809511522027385936199162089315593735213193801270298481882968245692466401589102452240833407352947237617887660187190835662573439468354704836224454619937129219945521607705226537983475106667694632555115664949178911680705230528173086908826823801294125418146730584593435812734334074634710981016973378451137000361461790661477797375667676221187825394236037065492372256647519270025082488886040622340981154511333422390177317916841135991533723731846766340507156896681938103585480799073996134538888268575672435045918997400691044179270411162878652679201061613247199984482371523349978363752301431351328269553952901086494205818604396151793905305825975400157347529974982723095387057721000539641886970487452897359156879270799441658104944268717949390222782002617388424638959221139263874954114195943300270846714237068128137782298487438922580196067179532295576646222560726500832043734636892069742573101488777832814597005506211252970943955134820697067801796920457890090055635993193030074671042570179184746799520164509853815101539696173545527780430626775794817977710979913625936622349370648370598168419144090086928384175813696077026265263739842179275186558553400179818024947388424795076359369625165815980054901107970726953244886137434993884408366146859209020138746291799297290938453956893091552470325456494848342558435392750026839808919512438571472788922881800472797910518009416493716641756765094433746540972890144063281301891438633928063344349424002602288104716999725533939180157076410706789505905241632902212917615707202813379630649859882322426710298264264548227932715480458761802499212413212681827672309034755957930311584824894830141731719343104663561998293422660845241977274300018038947575190644364250704011573813177948095995339269155798840054782895365239563674165729648804634630573180467371172158099902098944537332554066492445556570479772079145812304506188806693477316115492135285980811805110964035642010320650313878329814443085638720657938940705623279586874460852840698062839012831994040318061753698172910119302742164874460186196321594468453807557098722129647584261058043710144144891074881337180766721383545414247871366665387182071284847617070028023077139862001523285284674980517160094177008483061808078163074067412915857045857980914354160929061349459709688925710567910055675290074750437994633821119218091199900912215396556317263329873593583866650018970210376810565539125811274256503658921429101919356774181000796661271382307140818828418649325456700504789023579983462966520539034526722973679711222964757638421811795337070307941563289311746634899628691051860472272688877875879795365481133097185257748836254995078018128962383116823946505116854708626136402178204452762262185094687714584666765889994793710284570278582886181349455781921024708840980548840494289202758632513512032768369165509333757568774231103616106683832158081814025643334645427172202495621806059358605778368398254618223644983354199190818175492396216871052804951418152246375891201136159799843803455389874368637941643003051303788958312792484549868399065860064078993352181681278519409840167197297270699322133907184209551782475206802684636165397716512345743403044324661478171817711996108553728243091711263519501191538103322617009607819792294603552601878766923621248636248851290318185442839737923251389555064014239130766546753811452440247068376528064142487208913451379638599944935160181986771074601432747723851028474946663633461941723016077362976288977251283002580846877265301516820292501820873001346219923156538719904106055074193036339018444239787442338499826069676057020535368456464272727018213489439236648459002459794947394860416671133571702812092268052781568833531326433175902994653857485218182247109720477182480567215619231319966276378282067062797786438225580872740355388755763722582999050673591823154147149474372649839787057663311505334211612174534089654152155497746247888629118303526040368732822018242507089353084352345808150719569588924126052875718396496305507662860091116726175300728173888458812373182559853726929926264266600217297690409322916645780080286157310501383405996052151802023374674932941095761826913999967663852175374648850721464227683648609183197332363921592490390006967888121011297463583734052518278687854457022214620873685872796641453017626335415588794059073212225394670737826546756081074649604180182843395795387211330646467992861229485713933856329761617850891155827661197902337999866357704749637968221829399350957954508205505111893034779357024430352830442834702410590461224680811375399707428743435120724118307982710008293319137141928877140989863705462711361421706031603887715873410756266034626034693205757463183163265306120596147410967864366328128489246217276990604400356483137270171843261107628690706296287678241832833725218167849520870187388883526681880688561553821029179384688125975922387175756873776636521727918218339359888912481290484999654764459655545951531923019867342143962690524533746344986037179272054279681688183492955587945755341314658812833102455747928050200866695716939577801534143906770746884443719972294731421835096243098464505318539652190602671100605662171450565239616762915821410039307333892918625670333714472418361709240794482208195793496981155249255732540880883164819519948492518859797181791650718864975353694319183757636602624261722924254800560595721748153559340925382832433344777942345089465946829548015616400884021838355037323496549878662171076680106251027447234054777387228233706324422346571309983353563617904512966418395359207727938793927009546601461050918027326975551357136549094051709869143338343735386223956625316705184008132212346736878144276185478830585005810785155567880769397324212208730661826200908305041506079878671841207800863874831471046796221804394757556309908624424438280907075163603921360973967193494081982005189318420846341841851377586942138597002519235721035235978147565628370064989358061942774783767367165686044012184342535394254608374734622249608298272472402187537341510443884271408930329039663170598527274357572249191844804396406893690833070460690336340376113566927200801720601652587016620924656531832178359034831846684918456336231773544630393379348923795838233801483524662070768884177564682572717136191483552894403611579624184668253470999577854148164846673573561133803192065822135496782962945837948992590906571508585899240368771847724709560225206030410594547223573430761992020038703424402223490949671809511947981181231766216132812618485741888792671780402385780055985292325615688246765163590483405880044838458230241998417624203975028214184942033237813646956129181609088070522692744785023579437156142854961033099970139477214606174500788247541850170067917818813373073553878679601012421924341739873289763228098676229374534372899811725930082223246218514375985400183726608738326471207255449130643364499510019478254452554256119854446896338619233410886119185202366362520061671773407268444876708707863399288518785748868906955952057560806553597236255486657680651853997300269614499791386394913764334395117818656169724575011955527139876663310241993649615936734233367618545935189951082105085455865902404524395014958657097516880177298008199222597252891615283264328713301912185507202622505599302105520059364272067206743658081959198389468624150753802751656622826042558448723696341856231527370496473601247293747058235189463777287608586271395235999069223258703599107092753607717873127518574815094035127013817079487040027946364336884277169240128264044475383002168060555973991115327567430425185807916896649365346106649030339264547982624507527529703551170293895493926050261167328050806361911350411859503872255354805249503072592208321299167699393857896052191904022659329689320152805385584883267673657518606858379942868554314884845987804319937107848408933741977908003386369665963270004800753410733130286958186128601359287661350885694130726895270622119444657090135000285078170081732969360699447808011650899774691862838327533544622311789004142445612565923619067137782218830990126205038713863746110754713824333342606618631119112499604311974873003557846753855809319405365641438724087159307028002233620240342092669248410365186441392460325281513910602580690086792469478464151377425304908113337485925659032521084378705836901803051865933853297001096960008742504481418458925985696534556980827237127625540048379270764101702087000675852418664432577526457903618268036052623878996687562686845758711349482617027872642077405327791783966059302468186705376125287836224216318147642047643334565869242915619461741479293032672745331987962759051058255643901868641279605996051629410558357700353656324285671397243309359986178485440971818172554477791409320959184018695016499843861280737887188167547887565056631963197673047058648946240459492697664532851091987443373512187015664488814513250978299799856828301830292718126587579974915259421426066384493476182366943613010007781871347450454438394059463825316417469621679637540394915211600835534045873007034167447688538635372417591118729191257302962875769986698306028450551254255778130491965735370810975388980514498281958517209632887924187397596687858557626872836385771428233523466567958926948548919544874241952228540275810132725725884846041874654951851622252721485896972726328951526610074191959717832883659455976857057726284785595448837240757918751628836314849064779145534872657558501119422648699624391090095948421950501182854570218987410345718389187681790486364649082967773150836776997335515074170081220258053885245195363983453187617781231829233845161877149201894678720217480245281591901242255865169874725902155076249749122673765945633076166021194348403218783979914407024881734343302927257109286573898942406495618109097976549851184247711339007288092990163018187969411421261170343722496674766825988818337774891530013580023146024260472055275799319899409643161144291880852831611486989731748642308262649341631684527801622286945217652487890699556099151096015879416910388418815956359668529361259912457292837693574949960006374540510293312523537194211565013315475373628090714281188257731851185927633100144847811577305157277411636321762995559710643742787164040829830710463054191559931883714815391612554781126437438903974521207357576777750742115050829810085737523835183835753993320297598918841578248805041207059046440732276884830874353451226454706269409754445136975725708915057302324257356727188521085168470673901113721018280580460322479166007383269145415931982924325433746486049633965342248172931886832547511140375938437780558100267902359338479895865486078741941416884073043417349690424069174289582918871133881573943227710156196247763551902402171274686278247219799676266290091917695564381053856926401859188814761669543194077693489655590603130341579094455197560296624875454879091117532699370937126380672256751889146306074023344598314820578077855253816934364805356807945204538688872214580520228137165269820116250618901657297379748075002972339219097501220494749417006593929672960287387671952225506308643850360228641843189176624009174719032833908399536747468613101093275450853701032488164563575489558603679918936112978761901892835673731227482378182701853106426309613472487143605493189037702613329120207411857020396549233685908618933272900347872223765989418631895233975752644826232284678147416783941758787792841341122301988055483719189419662085993112969783033886516758544622791340538447608394235553449033163300012475799652761685263194531895293095962731314672619266181983219456648004891272404216573041363833042226648978515562645655321971144718962973260582132148615280100972768015104029896520206386068600459816142852374999120852093472923079773503189701533905977647834289074748778151734815736268828728847309608641886645303294760075330935853802770492601898073288432941195208648297113175937525344388958814255548385173295283601137791532901133575981174759080818992955904750657658456860498951986993050662506017097078329876063046816009521097297787513601863205458955190078180059587571719117232350915787137515399125515052606959476059331576350909179773320833613680719455151901640749533035718842256369317118343973251605736503774732145350056359563826247493638224705836847521426019027279199552510745513042443383364054939700333371348800299785946575449427651830341211197021029987336199190311776479300476493264915219099177723625580527127257799284186221272202594729578364241569518389042618621904931949850239808827901822770867087071935398018357638280472176270261490249184634025236129564512600179719055449613122087284837388331938574020189082817678502985052621563352750833939410145554721256376368546407190690946476538165508050017967373743140990894748416914300650811821039900941917142905544287434869177808281907412716328334933373876018980519238236373021976500702991998409539536408192939354484433786725257077729519089596138710071579214721837075804150054413498600492907499698937903488102082792506930057423601746771263190998250444798794775513836887538882077572120635319586500300839106544714907549279711557218460901553945731910325186389812858246877695980082741765554992556526378718474988706329149439080307417260367589680254871819113739999619682932661224121706771339713788092520170262301471782080063916213598205297385505558209594033191232647089156195552235663806264125747913463825374925991288014312614436201171810061047225858418500286341913156211568844185662028272766006553624341653186172705470460182952332953648960573330745306473007739458119147405562218010296586954554296232136268085193584500258735730586665195617446371811134477563610293164229191529997712848473992479149975246975746167652401333988711899350291995072594035417767887842758631733862021916123143312232454999521022646419170590206372156364870441042698336333313821695884831981209369368359190419171149316234787276366275921545684107024174052979256942981914981740639527144786905118423433719559261231191891937579062117858090932058847948363057956121560105651820752164895293647504997836425968788047609259991919701865361111313604844810434313726732714932517640677959128270418092840993021480957457866349377922712119203755371254949836461321910547901195080548163778231755318805404834474568234829552821306383035954647975192153133860371316576407833408859359457376719674086252518097818178803698601166138834712999153771123834151922452874048995646902826030068854276345189623573554618158222214071967866843102682655738115194937131618219233492530436547791887277303957729166760359890682984979275326445793020562500419821581783367975832458201192467033440163751943613079360668770605961550745818730074058855418570777129376539546111235520177374526751925365027712360102626371140850249375451997238811849720048529540760537575504863349851760393434036589529619260860734480553122955335688214567118057604758841942058349633845421653770202262887320328142627192419113192746980715350623640604880106101761396430655066646671459774792751275013133465967646396069944057031186051928608781228063289678165765372750629672835762639748283846472950189179856048249198500799160923239976671919296476783301263846508088042831110985025546612968618556503500123610685297435664465619849209211012663758193031195462401126619489300838284386599999928333379487659821355883933309759653943516874770254203805203371931338231789387828254304773685927377235747888656685873609256869105637744685113155947867365164849217860319328920469205739213739659762934266179938759886105571384739015869538001440033773942596352486926368960908193370539526251096127290887376798222410747678488299026259214172065135443271991645998333033382050970236701934379189129777113900021796464556817013808941825846295987689363592439379803701260437000195453753209475819355656686261869137769323655538553373664018114260401171263453205372512446880839250455380642547662809345193606039108615119488314246477393594536113462632539790305310615515404757043183580698889116850882783575401937626047008133489427756419881104615033910819669743603856073267087156087766588589106089607208747158269719380169056266871992681584833517410241095060497613332210304683200931629481966641786641089259633540386292193941301524764041519532761824707235278977276957745431491457204054179953185788374981085050571576711105811940585216705522011002403121471715798464585433248907341098761099295649676156544718806244284933719422274719414044983798596475584133489410742608333615212077501929801512946567208421155076388164598896617646436976194203289243245105302982505122426807037312128083935122022554084151320294799980575137686493365567616784991943471334926956257739078483718248283155679298197287786862903631056068580099072224021538766147136448019619445614811245388627165423342887561979792048557301929997500417588186220355084352693742241834775423575605194534672554956154189883817856029267690850613136595288039173555602456879717723106032174576049759502322561946294196379063093795581044909587621359167786582953930306576530923070439867570625760671427063852605547519479595253213047800632610710768083216210014579464097769268006913907193727253192285262742895738950413768194854774592960335922726252666683521707031894962827245652845824142546063037280407774797988541294635397991949924647469133552433723183045353848908080893152518135768485272858917328591746450365612006882947050320419507169041537686780019293050636695778550885505423698901222980877912670610523562973580602220182943158073195155521909375865774736264736992888812797829333934998697735232413759931554636311929820706537274786072581952997312069306272104015723943842608756039326387063929022190308589098777220198559385372688147932288292219533698259046430933978816522998597111438879191681125563749831316110931906115632552892612058651598514939195476127055624087676714060590627593678972863204655894075319271591295117018443755758535236978206034603081955111408561622204290428905287093487193875366819942119678716034475116563217044041605351341390173136689419566388738555313863682433699759859706164570626704130459126437284989148356890455609093481011580923180730195718459984087990904615749310986143133159197840606356831884195057075962103268508407539511046071367743151958063186556811750456842910985936094863468695936722775807730607288379881424681003426858744195332034222519599222591131568718551298843839977181848177575276528687274786799756095598144332697980232246925174800848196004373540267386844464825094568371986966198330889858783525793232810047849800001659240729031466028150561961472411034520315765276577171450510804603051297596390336904878227083901331040053851493735374972951613419628972263979021198896344486620188190295769295043464723057845265200580679906453900495542748739603331115196313343423239392815392857552418925427533689936707673603270769534071539778317693299858002902473809122221964702470030149732148309934933241880821118256958623294651857563689754163574689598660266517287106373178219651154407328308409582293717686280368564515915257032902756903685712988312781187473459607417310097884731196656283864948619310435016618122663037695937267645885383809430494530230302680142109755025038907214842461967009339875439915383842137754597246409868737926602794166204708663284387662736608782721500359892776517019687445477065383961960283431028523840913387237856397953682578837058304894726634813482131719088833963367196924123153639729520379956140542026523557331822605360301516107672701613667753472021089952406019019073101970716711572131531313991087346049948558879305557329074866756924991779147777627525721533153059191543757619714020855624311494453725459568097025647576424442309047407014493872009314855661267386418994254949313631197204759618933034909499307284324090098660429647764160636212894769517265674169221041267919762026291755851973305961605883598150943813988815546473953900221085978718592405964780276788923924280477323241680115088019749942907513006728614972737850416001553809727869101165381637602995600199875677105287434179648634948759197502284345081024845232428506194564649282883380246745314360076653939325316906934715341110259091559509801976999607771081924043400817401909049952241694593670841551263350446837423540829126465380354941695384687119779159478644821690719718827904537417589786565396354364174964211383323912726608538295677462642204374861197837508696560381441154467817463182415780125489762580240567221816519025525646655104178403139931552734971979012827464078379677343103957500116764350123239218721736939561572561209629465861258179225997122936015619800483252932466059000746753828911358876966050230432754644157727204135535343106923020990409588280284249198125456609225504736786633535977670114754779378951221639503917488370060692083214313105651140321659149711982605450331526087562443039751201627044475665497445082910844914275328651257884320143371916195074243458519834267127681102600799697732731091087404071388839859302056854770568128370032410609948808912037233751569198416771294476770105736285175269226738673324904110576188363433437399317405736193536907770580699187001101985387550682586512339634192984733096678757320329048370056903353621683728691586822484931645864130995561219868076135431583947979650364579844225293998032521346097286226953626724707628997177963276334614112070415198741483053044019675458162359860634665727330574033424675682539988557003842039565097719954100268376282971988511970715692877805882319026171014758008973737834649921004305707615859532250733610872957027150743122919897920313721103151205786945818242017418320565151175338128457998173296130009722859113082820909053314760199011967818503836753034704700057874836099759090912963034418276550511984294261174212501745310883761527721991103209162330883357102085772162595099252986436418206894396569085647751243182903018353395109114675137119928534246305851770744343216131691304544562072955779149889048547850294942518699230156420482367299678208199354327708171399372971364728551623691028094394904980957111479873532633610861544909213621071957862718261994589846454595870090692492488205234351128687386269125293356955656244015333447567162409478118265711559519954756699368423562499979227723332856784786245269498130382957671588368253903484616714968014138599194055199659791791785828197578481237247802296273427132738070171213159345402254416861464162064185495562201758021997717174193296040307242855759140374875241255836486847826530579021129301504600930097911328939110209284219982212628874397239879299987221712680244269570436408269175123947288580976631735219034774020783010825008199923068674816599291621420437855969070083963431749157040070491113309702304687661585748313508014447599282000520207278604062469098624581837105663182549206666339286894164223168139785374174558983550239814134762720015686616221186367561134540185061230145050641464766200254793727370169115091057005880583855287751553568200234613555088814313744985636377736943347307792236920232819512601988334853193084139129692103451156646152003581718451609186530489711953801102485257498931586472339992674537252191487877997888075626737506387237820040564697643526861306774761161564030889810722990061362029138553864683684245835443420724906526943131926200536306455791910328174622465230508681145392237903469993576181922838411783111273426609317171605472302742006858700010478660598353687620423490935631467935443700708676044416080934303889641691229384629350216611020070210761640546614532826133025098992955391927596299462782632632116565874319551733594278724799548287227200881079314977711035342554381663505021820047559845719470764296782715877268483623611180659244515952829152009230181808971672271763496522837506807313174144533509330105586215719733675910516720488567454157281632120107259397927018267765927879072697595865244447986278487669539491461017760577603607110750866034557555712201196234540663775844877314065805021814441457012161388944294254301272614399603975154880968417538877870992012771053156896057795536359670078069985650119553616995819109185333740366199906618677458653659378289515820136192168358385372055171819669900290622524429719647760765792120834997981483108425338006646056465462844201410595975870105383783766951341441171157658015291972393283182374190724182705562114292481259500862193482015254518565539701258406477745909416107789844866798787983603594306705082646985065096507142428798416650120163303364759597132945835690587596970583659840237526455951428415274309347600284805973744511548230400857201774538194414235491878380929229783184414022384436112322168850562433541858843251154472064328496208456322018811941082705883189354288454365054845356330088426685693563642890202766923084866336118299142987263879820198068299808612394976329510463591338269125251879466945089415396493327345497299448983629947399175474416202047197173177987268394360240105216610149815265541625403854517795215840024958798797410495248004753558162021454411607964967437476718422118358157376737048968165761864668447399574573863895284956651895744786659720227781950752258882987024789009640653185204742376952389335501218478599660074089650383859514701804072345202377687838560758095616453392168848975425983059917537610132320635432534424048860000309082261900373063412024848688614387637364941788740120482609505127598633905097702424725298017588263922938707936732522111670520257926441409085437401485304590250371696374774586071914054256943815611701443788844188830915922927192035202684129871622866850532460389435650023073416708375186459536802527582405209237446765733512706016011703492027080682223272341214084695966733251615657580665902431013032064115375116874077567874060359258788617197320286349367711142654304847081133303231866339855094943143974804840787647767832770534880159671410169844356202969780845487805182319957564073978831770271135643924204452033300760976436796999004095854955620131358482030058753749472569340330909172832394183692193249151868723547739392127561179466401851180013807501027772120317130642042532655536114323907882035094537707508434889230102069364851728497612938332579316328040240236203262247707358488505586196021481895075688961464986471085846445373294965523337264188383262127117827240692033322657157078641755728961453382916448918652049552729526330028104982310985733943081602256698171115056420342180307494361107813613896822048773651856670209197871094272276503470633850855008421170940405082569924203557562828262781375133270805294552322160845405765437854007179908127688366953749752286406714615345649012036126938742671140362151382047758754942856572278533665848729086917495101023758749766072301695185736509020375794918186915420495148189506331367232336001791924439759401641677198359451069342721729348371331527082203852285878147644954066168266066328173859064681708480980195630954019100230303837721074832278139011682082039258238927793613956120621621339157864079040962777743062394588711681359324124433710944830874229948965720402704969668919097678729567856837491826622807594707308763909429179184646728989350381665716032383413004204182214907355731011475604391076423070499714171792722498893625118537718445653611243536680334158347109992042978127504593107294920164004043873689108489000022065896894950988355454330344806346906836264269262252620430480503822296566585644546381725787202422393060316745016053977551655424603074325691453841406677000933204448172625337857836954968801819714207583047902504544932943440806547069667092081966871809574518223790332045311686660106588546461622251368075580728178399049938203254035222214791278735733792405058170479343611120466046575203509649920300943063385151557010396543615600425020917540836802510756962724054007061307391483204799782154975269620067771746125375177474080770421469498072465669210313803655901391446319337852495607652048128958847039568360052405603773226648488976759864722223687045726002513146533027894907366831754285279320490436416844913090148229779444145397767000504764545394419974425340090220649707950657786676256257904167205087951719322821604842790422281457455555258501105051118532051282481704493408500651110585967966113480542051315799010027116370414625588451469531501613765309863467935139830644217212539142104848401806995555589320523864698447097220729204416001744645744857898852191332549713302548209802199209468670551308850411232159205389403060607764070886215302252839630610614984492974704512812064392509526839331630165354068929280565182054715726578741194021747809172799541874118113737353482320492402854443728542414478667353172039728409992120550753385213768521899202754763751550880323820345141044903368786105511397455564453441335280589331495072205641545365042536863587651146455776385286184222500373544338608419457202578083624670516135441219360521242057926547855797901126581591993322554214733610252203564003582790857550730527883543159467417937426497407420580947948944779573166096230217323972884026016215508990745102462967183685916037890598163574392667278295205902991817957028068636510124544515441318142965418452451978873052020028802043389552095212624250682073622060516464829688831505095970100022643721353487858260253357898428499264259849382698655591574552277223044720618367004512926203259072844700707182646394299397105796504924027215130909020163225789293646620690791141206289091709554858581709996939845824188862304346386468537094692019086644250014237049070605479440163636222063448420494614145407334077205613675377994717434641869614416355642947159197095912457298893923381500104120642294395852881242903163818939118293640475674801320054837776422413083227337901680551345611878652637873206590846029832484496777676526714460909842724092219442087290507772474227128491998627528840954536122442602066812236730263624166646367695658234050934786501143545223017211043182967461181271247726747558418347391820672964689242439083589830410778612221646674139274580844109344670914076889081154804269904644766179037069206813186431644872934811624753142709479512183711895430801606136867423308652068568392614804784456647494572069483232983711278348494575681848235738129672986025094456310021387076804904301108841043560659563291355120703636595379057745086346584183793785502138550730660620323618920265343796554240913886678051764866023556207186801024443819982174081868308063265793445013660695883116352765901963710912216830217994317817811597562072256933481181759016370453954880025438691950293948429633387880232454026868311592077147266096408147297420732564135237707132655865672926093521313563269738633451392323794912727416044071653328372766636069920782207489885158189007406817883560033839550249105442191369494384025928975768041647987388754419071010073882502075260025052937157120598821799751905251548135128926507035031295388797395196807146312979739398855224067720761074781329661125142444094254620586560563864841176973765093222320058137389888598930223363080952193426207752281506753067731168349920030749784495333173923562877249889011049829135380994323467387064792939183822078984736509174159934422418013609070218537683948237197255148813881635282508237808756177303718593310237620799015518148956680264510669556676356270331637550428218469355260793128677171630081522970525013994404111208009952375878216898707228324155404378594936488165971060194170111775308197796006102061075809541843822632081771744158930893440245480776358985983864600448191306329182121252200728063408905627313615628251425972920821169096962116740824716314518917473600695966991423080878338378686590159867022321428691570141424807045208389721910542004790420726183894565916757662433748165233431013197777875062648144789623796854491833393252084445226328238983995521435086472399882461823467833341203496969634652310297098007031272981130029874875820858451556284431013156099089461587840584003836145430627502838434516836793994311551940672336880332618381208630190651593168620191839636438811828697041164945876942211365769814951731860439447681922394006701455122087792825405653032464235241908378911520916520753450114775133761761316030346350015830432411983034504597320881115480235291472675565285396154982517322187028118914755821925109751881474996270183201238664665544709208962703221196735206682568834873759645072512079691451687396399872950892928615057450939183524898641711512090563371077207043719429897852585410651220208721985115201196820066851549509077569921619316805761225508420911079956447357236211513844260591187852361111576674624616760589490884732188251188189165372941301847563209265083622904096877270759063075951737344653812358167205699861544933744135511580828599979725070005425692093584482904215703296329695418372061125327781850782435323918726737975390106042189821333568001491762927620943589739749151033610294485487554126594588308262730872974158135998785058970815642932415956520572243886209501584207810475042628112904425526350548296613431983475578851932222671869303645667271026495994005116632096086637317274044545694973748748521103317754936462538061133447431080683263084662203937077310524427999520971374501935266142352255141868055104005021438767785929901108592518674991313145000872583711669369824976209899408416160624284063083328979971618705057651962404924316599951518966497547503900114739890318968783262099455784745372518045223597268776687624285075381661679248800082340903203480714652289022230806149657427021004477221250266192371423562609291226018250583731811971039075175338577137807762131772452879479158317148210143227314735068371778815798520230352800599998697766693700822670880420433042717610360443602119574053182102323977508253762435335992587448066952313140950826729742008271959187161696015340654578147571012432947021033404989011724031456270700708589135551306594748305010926753310504767668510068727953244323689649387243210449140188685802176697065515885025617415207031509272651458735885771669074118956676294168134057842406772105338866529843358282099209279600025605373161195748651729717114043583683023331026924475563496301826785721063511105639749473357081758063298707668034213096682726128479506043615265442170363554065832901954741126210732161794143686238782446810885100608798206571969473153168872765582925484100600262887084707264146369812108454676023069064848000195089152920883475200294833011835707147486046003231803664663011378346148102080121090408241624643986285802753525405414811787725784498244012153580883263111576793883443994167425526718127211006870485790500170018827661154025989664563822695284086125700000312015134146214627435881881137521596232111550909618693482530381968085084967571308026522100175445215043882446963539135452229483822752193978161021120630815713947347571643310028857201156174719192266771954369283128266043960699254637219602914253777973211398316744381208097218818831236226603387075326789425385591691829772833273126155084174849512359891579862114019310463020408836581232828339328287752748597870536473295156141142985324610343025553130194964301167021153792865637669569854796374437404695144047524862747673802558967408496302725388581738320957777270442659211667645023462419588725735933861552680812047751364027860596714899368123712011862123490548171292454815432117023804103650148753567454311180060450042613078768221588514426730296208404822613694974262081760999935021180334461976884187903041595951539264111965464774820849603536188945761220485718626461432327497191880858211941721650249255612284867044407945280918253914446987618136633194396064637822450816138177872928278397642120859110463455622717222178176922974115386786214605724201588982175494554749486363176722743647089802154621212007325013023705721216266625220053039613516788310130085680167987713860080874414496085961030410411974212285369831113671070824797474197170808243016916661770771312763331363815453158913375254168398408478643172123750667503948846636777214679211218536122363167218880380661069859370237909631869224025911914634584614921247417121925501992547479600484600633459818646080115937447037316631953518908792056481072811877724020397212544024602129739110134992696648989782233646553651294973293415434068946943373818266377860503474934332702126290837561801105493469017933942873990566379697634781069552896198764618985072208634587475775355868446821277233572491790476548077510392373639618546675333495970891747050103139694380902363404579903070724852963212828514308887866880742498163585636339314194762523066152520565896307037142091574467866737683351558224442129226371755529054939532882366689615332633149358392812822458493254055594107195071379970356374234009731621301309864621393795308709471653612565080331578504457300009414139460014745254414038169209933604115965838213100506303682545663080628250094880200341800214558417554634801876535677644115164771043843669008537061162132905032530314683543713358180929240076805095818888803131922996604986651192355333442715995130769082085221336629677403102594730225917768201325910777315857844773120758864509339877561872662539383623575762515880213456203092312138665780721626116181270037560534462263494983862525666524229234436513969720823782599576262135108099849375422735675122410923244793072428280291762353753386370876387351815527482111244800245912464021365111511149966446261984339005792546353949622888924362325218640252481049059595540836502868935748905420213700912533867434313407342265195998144887626448318552732774941228785613062258218781200116285735213380862138043652520123507908301505963245468281892247598913287169435985142267573258150924982124899051846590727821392376396492321190420564384917255643187344162296200604471901611612786080691597050723383179902400106211214064747758439023757467891316957011822646217702894571191364126858718686358249327174656270672807513674312141597507565774758376406338044944820668352178332133327896776383657446746201728839572367211098154016213221427006816874023136619483325010446485646460364125317413333237960756729373305212297457933352566168558920214304375962513420306383429430609715847409538019741154953001028216505595925945919485334822732715544487352144213653447294239495596453047880531794558629341890107779349027602218084991851412571653165137450875031421450146677425197647620461669311332604538789645165729084386151944311401615142307022471639399010043790686214641034162367907418506463768256603895503347734896731133431362942854314887603124731335419670980008452642147274014209763136958762258591009311129973793600135533529207482985367204276126984764006676698661053455221480728721873818067910581629074870107673696521668734487874382771997327186492554248066842383302741069609214918550071153548924174440794337042318254560683867024205233933058031730647788593322929965546621687057122150818066315810759698803795419028671051589682183998617226456523727215921272699856166884308596839602871721511538526694147931732893545844953150218593008668911797136649492410539530174013607858891547134085003976215280364538111157208612956394709645574270823873126874988730970590053373183461689693417093000008616802782153005895674152284436630022965265070138562656843588862975858927122897312250450193975398801959929585946621547444885279234641037247334135338390259480773955176406741476465801453303755125878391520600273054598058215528008341586750878202182980291241797731523538577064067711668452133686650109064439918466472914384152282156435595778052417869221343902620970359030350252703283979867654871112971641506576891539350909404216300221579212623423471285210839542166491175188768489016016350794990872514594428409076951969961803771282792923215830631394632150965793664885286718536589854282324046387338281784815302092030883156972673439255833643212159632066089888458071136277639996649570648133324300804430706922817962968328613163949834158178871426219621606549905140449994905132275832902039733890285425751366407428377198389513758460356859331967636542297879216159796756828399831018152542366659857278588886806485189459707162034673703516804567897410832102068776912162531050566876687732933492002389350574436954451602342979457806030671893157679519089580811282704868678521636517949494253179898985455846351101662924150670161176221975729255773222299579570269514273134125870360216421325937476429476772338553939496080349432963081459079933815943114610237436482609052748926091149978172165599242523396972869525241668731500923820412128542613616353249136625137866287441728736927773266853389921669050914428805931696176825772855927778554889122488088669629022220090710531986727332035012560832761865216746860690046121765511410345328312712044352295100167947903133505342535567838691922343124905213327943612168256904680330454064259314334859893529878822549531857424881037641375414844998295227489027969508981498621694690761644389575234356650649798259415250324263255294411659694055989586650761215339929748641052808309217088791971237287616972907302953015863380954319401820266910469313930352663628358321962934195022055821562171281151008278370219142231861577528944307401251206982236257041351162127934474793737507085853449040251821729467769147420649139024731524047392237570356833125539744473636977591310167248556425227049855871329918217347584382118515249153210866087093894774655589097681500909155245318437110167970439422720060659347278642174923765594695847171642902578632718343604387060615267993199251780719606018199788961891441329681532735521753656553178278789877045484925656831540484336866358934827911537849960146294330178535918922268713560211217656380668887360245242861517707711106712851439717394625668407770725858919518657200283026878274880646242177862580451433334454133086163786823325729625795380067350910605339652325575968241504827951961974945905121780082179623656701477056459027478980181006309518889621379037693653372987268128208847887010630825541585217904213341014958285427718069494633813881682451903444805049224355100033141429208942257683134801951041952180395648342838316899469970689361239529933647736059673795630161780318422618261992081634867619660275866421814711808760325300708745350853575490894833166708013253482497118067652281580236070823339041428117022941218235253600330633026112455168649227533897653332750883730873546591411189798341977081211090804713744235632183241997436195814232767405600444674915694945578714935547922254176429822307573665159603939567872952083021847621299572905646333279790560873601966838068415216005340982287176820543030494829640714377958967789178218552651344209014796569969586033217610283983223252420909187497569528250236244494235687350103470187419902186530029380969860908761494567287112680687195992424006465327711570046123469550672596301566722909054455621878896694903638197937468465866534067955971944629775631645824343862403793489804730057570983951582161392218814440418894226816655348954143282061553926819933381323414313987908720655644117610051979103079211594462189412482298695403958669789629636022480766326311185609381709075532259658171492545809500486428193072375821906533109347410268460883510176552329792792588642969057722571390829119090719641708538459454433599189629219161825813795766195253377709395930937558695979150585469590600816003435570792205728418485855996164771562192190633768504329365545474742979308228403401042147794004948180654572922448342610480152048933259789368221933575947758489390796539861320097773887838900230664965067318652650568283958219625803380702097089887141219446215856544262375254313938425321275734074533191162955171187913699270353917235081499866237794428418842195334571492927103332266309932715918117779842737897501478943326849720515430723756063998772961668725323421967099071746405402407398765307649992827255557333971022446852281974406356741544233989522404042548339769219755371473159903911519958160949598512103745365994424396455866218951207314020177355678185319574500159132198861910640899786932831364839009613757106272347800522824211842642755283161285869760156604643183353361021993972337460199915388931573028588269160920494884541300922625883777140487965516015543593745110789847180220088470096060778907622069368407378496336096342509584708257256336812670064291029822279991576193941230502201106656193243852913122708830715674719682021862720194847446914775099587377486602963126211239362626843222023153391719356913789891966066712770973432280825198475061954062034493330703784267983799417718823847785220373049239862558566116335286152795713435314524810391638351705507787722297623979208407088711586623991922204331933649557410994937541006679688014265020731066633219037296882469804080705418631788519380478271412222055654179999425208472883282034768584897255257471819411411100417415667999996419753284032409331190631921220604713467023378515181682298661343846179559222892272724792951269711902324963913804404399574050092712082207186132542943749468080349527402878663862439341710885765745650985947669489218450064054656300785760186322083790396114271309657046386091763460387568116961674247700175701209622415995297606038534885700148140313220970011280296945431637235112508802119138585426221056899489951830180914171906159263693473649530715417592210066678807228201488291988205155707763583295672191122035770424951685061882953088988913377428009260557422118231190883191031319392993345592313428229082449525800523923120354684095918118037670041104124295206004221216749760555822753840278557228994429097079220373479880867350017022354028870748724156877915062146524892213173325524770184486333604237917427498553433628195137659386276403281742636248147200965705761727339321922147137016249943760722325613278742493777785892693303359640162133441364984027113913384274707577695437786221501175664910861942707182917441242654445981363785943440204322865897546386434827291483675790906124620842216323439039192344334349677277355611142132001439444322732038136908572979573632674477894386577489038591822170992598862969779258913747052857795461303205433036775220335508550526418524683519492934683524328602941221868994575328382103070059714264453901409018029918233366474407788470720216230623856055975822134483772962219299598832119434133694583446147835969370283268271410484814528829052616640328149408184024376827980831422209452046334013147931875223737780641449565756210605303373736314667499714281990742397055859815350366620222190465058448358290370627882179517010954976396032910465540606926458630212687402703333762870900863607752222717231275916195076539133776329195822156023957434293446887129808461218026897104243417090833099109858822238888352540859422769177682881207561794396901190756634524170061632008101418475332908113003093109758677222407303631842545293345309766615291752366323656474216904228061697515605333059925079176825022364645999572225033774761084147501885998830265520406832253239105872448941321492042015076366197289000406059272042496222267607199929997651568985047882085190980357331157415446555005241314901243989950767377911479714212766615222755365700029980643522358559463340291519655744773725774525517368467724114822876372680019635844862426032228798649865758213080512548677536718044961870015910447387934243041878546178704578543664944284385030411622294819266671849752526707365839930254006188659463004425934986421887367466779140102899219351903419847325223076022585319484839338206114648070364899786708653140531734815143246518534005640853019289907636016009142231076707687486498786614472416438426254922859816791081292052188229151944743470410361926198224968865018322322878812286552614944872433559864067055348866764216076996015355082328241827071561819631434310929628040223352569380172100643874560935856366533754096152099368441090064234555949678992586527173749829803717638642234415540833993324732813095490090911694426764709960605136670340174411830366225048991020282241044980053022356393922465176432819632004447864310710645181829249015547074663013665850277505079676669447092311169507223642845792691986465479689769857442471202502619936276904918689385379697748241302056076304338922473675742237753831471341754678297496244770665409381981829405339527866772898388482829911423927736324571601437337522382630480263249421654556576719767519347205464994425160098915085265375080025107560543265537727234223071223996967945272246615973866021741689039122722547133825915532284525152266946972817303175525367108519113582240876542544357904129824103543174423276434327137065420996321570636406096871384524624566335269130122078922412078038541203760206341195539453469466949309162079581991165930757419826929877866650365908258531021071224270150184413675291384847390819223564708665621950319865198555690374767109471408761353154871815930278182243838207813940008699996704517400589029294720495124668073909517224305516930104803827814754464193770269422442493272433681252024601571534861044060759056332037417883714753521439572777882746386184160872134325498224523690048373821826384009251021559976282492414832391100246927892536253848077699875241682775157981445342246559218091235201623092356187262035618063713743705012462568124886351162269475668968136190873913861168222477810422466418488137749163775823530717510933636515920783202850748781773294567957228802702925330393035224862960965509081112345990450064098314626001133976600372981338813161449862460738400410387389523346770152249604765647677437530913530360277306494854818181579855584587136278315376804648221524841805002436048592022504248195328836784036387899563193321631831778397529919375524219659608965065537394044608982289650830886225105090890249651264721191096922940386605909137826663597944840783267636254438297382631612385127135883182252951107258099419857239426389659059498278241780923504759958072822879833836706610020415953764569087593622530820905304646456054983510903778477908765197460005749378268569622689236564736896640023761421391404088225453022853014229240229342391847460728918244015840316196570370051165037483283612130517927679202949584492255610757873121931236279249070877470494027720766863951289959581037918255527573701990356398551282402947922563513430470149853316341488272414708705113722107326378167707957042443525424026587849103230994421850476225757104762926221526379911773502945540414719797361893916413646795825081052536221009567308707059953511022258328225540688081842424613290550341124636820625956442929175740192009705746751783787094973834620003515222590235096582205132349518812880974170138280072774927060738429578676545651223280696018735927938422502982226039452654566153768909500376120416256518301073537003907029150204753714277894368805917320302711857789912261766663425716426953716695933183141768646992039329287314780654549961055635858785803559889382532562784222627797527748695905829017843531703864196779140765048129809438387688116335995347497834963258404256655648226383523023097152638961085263284139935517370055701579243314557133926350649126910328745743368016847088322264101983180572589963564174994799914117646408783098587388760126224392915251351274316311424091659579854422652311940742639141995737008193686324395428889189215907335571177725165886954494464905156957324223604942226691061139881878797814569230082568163508933768853608784915097614076727220176526327006304042988298532362267041000240401829907150582095348667865854914752310391765304392444451966513425148588659357253061878933122687329084163403552216474104154352613758218181879127906528210805664458170081884621209532764188236193739226937158454165450046137634755726916725247610255780211198221219161676924799468148510221108354686977604702270650797023269791794466405825458784123513783915987868576580174717357584005545002169915662489343277570522713162343985746512112556697615957941655004309278395806436785620176109369534322744203237277829212641072227279273315388054265718719523146147608512412071162145370705234609873528525352639855517375988621522832522273706233171771057646834420711218489697162632921249061416662418876041786839653352081340399319997458485122746368676490886859104526807873062160502149585919378227149265333228609685365050398614037995783932359268227509107789054855586108859242822422592774477365117818270019813885316073056803365796762717845777429169992276791936962962907299726810304970969706175036178487280491571455323402489700865182505718413909708998144322772108632743076295346483010602917603173983162988558076971443395677290152947924948925730531036288092988227857109774203433903894241774960849678531158757524460721062635221799957944832824964981796880877703560492279069740609755815112095162050132770910780391346114751004969867719578046728236822175885085551218737882322808435502397135356476753128488751114558439441307561669080219404705402509256163887305799593571007095421228152424023897386614498430269643615697593835035800086525206634482325093428912815946824688131107670648072282271539213380854908893217446305978858112744253448813196217550745390469229226077868286365875156680944722835047862672273570769537148972648601362808015084422632659722114711872171544581877426158697079388695592228431035534774484427102772791812654193912554760484431809343679664633404282833273374185062986549946001202285905668609109495035208441838991634030696334351997137223404510183936562839490571574119917388142068644922861885648968163335519506600092884333252480673558417133749617150550934263718940232530354259938439418771228787420881455435435616430348910314815205765886944478270644910995335212843251910491246905432173805106792288418598805440128942512325899099623123240538773982101446405849655974158659523205814498852510376930654922897489313506032936074481814998982011182749277815201132404643038340009302231080547259597551216746706659229022944438571075829356865159801179019948045358247172345030176398914902214494890216019868415175873791912291682661098385738453765280418900933755032348767588757658350816808489804889946134638467583582758945004622926480260224707959607311234708701901229396384219925088768537111998543312937242948475788361151740833584229337533109066594270132580329543981526920681054804215521024796511454543319711530574099549378383693200172294065641023993968520341513173309251386082983961034483756434854709456374110604561666832802636976055941022957860053014854032125282532232725173232493557882265939595083733400950598453008448615493760830772932369229678053902069489843652286792858078158108085806495326331730564681609178514712540008807225793713598591962297020321176985166181382057266644879714560505647641742736841891450673424567564160482903098189791759567422984799704418481543956047023378435681267617715798737487316524458821001641061928767152951977309612579504229901327995125123044607173765330443488975837750220067414677801697322800545673449942537241384582367759632300995722855459307838519140395047441361758910074146226819297696949886128652985517880249933196635638248323018294192474319235584267635073198580303015343074861824378325227933579938356853781132755653864730024767230243067237584455570664332239670583789750194011098458453031203974160814952863365122483951151426513952132303619949280477614567228484431285659615449731382785953307673696014941586370703621756586701043035869611423045791714834458205482295971166547021136277282493540794629070601403720169035778923993263032726072545060230504036460502838092961007600067621093582161548809682798180459087699075582797111496748587103659798177902306055992046199210862188333938643676754535782363369890881619356421821095595110093983753747755465860778623075594330622484912789787545081355800095536186322477894557821672858215655834857416920557822343615032535230851913069451960052894986940468655864528839323919612404399594779057554351905822581270246825732160269932309531237621731625638973247571162859606999708293949598146454681242911928944932167578936358775236587083123102626129768952214037121333371373636570097496111467954738940216254866841463524981486568437129932566103231169032098432452443637457892832745325401013787354608708578491533913301848796502158881092990371435011492312621191972437270363318901179929310091989720660589194991838526986780058093923091737819542985085168466823131299233425946670761777675588620801261412614640886156063703867564612888143788618168840692105737310071231447127556028255238461049428731994983801419274943751006947906095976275704074256052792040373513225643722315053200969027126178788419582439234331652524668209425466272979348242095027327770295359815649824733818023166163938715477491975350493217917432066843409206201758084778305188754961244239520118964907047660186063231757333213987937346739149080881235134551377407155868222354558845754468634333775403138713026260714622402318117170602401065225491198646843096415721944924460282817325253667035372300424249866064805311275019543523196523225687382635156061797817749036314750495732032582722820879015800370394722078471144085353021626740232050665051256166950057399083273250689952126975261606027252472836652446769954693569475947257566855811892321425853777257680983976858806496441857538717290871623665842954600064572836053138758138636294410431346223229953741827762718530615919342612177132010310021145256576690287097455533109073858111289551403927166875232322479984987499178502589268902148245957825905186445482530867096054152463916486748199695691963759719632324039809610580335461327894359818435086974525920005485900303729616830719576226854353641731181745095799323253164776907746402740259052553880918629368604586739521133104685547484403817107250663691014557314738282232650535705756613939175526069518689649250344686647491465261560855050379139420298199422219947354382317832327223036847137330247485594298263804065129848919712773126979399424468368139797193089451531301022820717623280241132296391228061815709537618452022878633617842610353107341759203978291654370239534309225910850108232905655918772527775548002700192946141441537672275682553321417372014074713478844343631675916143872255942330330494977196123384222661604896439624205326779704143080241164011968089101092063429038027925515696795323312441619283486641083828605441536996436593196913777787005936030482022913026514592296134558029718272438233241968767243708449263675507056334050268371994493547326526563206627438083699582633516760708235495298562333158343311952439229700398791067526831494422487587059711975013571688080770880163857843277818151302778623348311685891946114301089589218392897133594139288856488545091637259398359742076715707460714975246059863233598966957462315777686048797201480357679564845898219702887616123194701320955924214488355505762723234432336484264260117532230618223035658508047011011899193252571720549962926641297735042850437026228972358528123376267563789630203898474355948061217387390668535438453039293129881938833041183423778361478059757505840233866225413362933578093194781966392974235039084805932006978991767883396869131974825886474708627997131322339561371727308165334061394625685505907275458645068646565277682555342972140883383727882010289029324031323402421020026106356642443696612083041768693220104899345155973211746630090867120083557242052922510628503234102940669270580504400681819227351425634658435481109593207340127496949000254472079736037916466970319502342338328483551676760583103654527085765549800282394782231371887039652164207841403863200501687559289244223434891643210796200313711074626069359189558182399883659153109700423581742946007359612474329057210929097234462924104106566209235037924431392689030306220340787058475213684434981400664399682817772883283068082962345747485107268422856395031192396793997022782808329040391879427012564031731986705480903817290109382677023463276181873338233299287354251791214674169684443841609957921734925475411516955036329294606721879838177234798488683627829099798430217204175362522299672743257163080332626794270088346679931237227789280490726902348634359386334482737349468718088069450888240689972616587134375187407124435358999357495057639105502602323494884831930109776287518455556142797284284876039387213049090254184884269775140116269376139550458568990235047300398762225695695285227027007070022363127827564720918907236614533831506450866015716672503044253132351457307614248252993473550820094811107402642703287961354558997238769243881097597044445727972255955821423528318579221168381920223766601470535503329905663899611395020035590039531431485319997339561100645962955235358214961621580455163249615249846254913386661556613057471073066064947612592513473986724042947052713942354587005711446177435924891999977985398589155458011757075458419857074644417157352870883181556649067116123553720524842124067568833334632630939467440591539281243468652741507636710833294679930796012132262362971235692288906112943956865890674688582258888398916501883553307523319815790355358685515578206546821833215902357742910347469567566339248541522364537150038862178902634313785302662274488179999873853323415250050507523589944529160103849242964737923144851996764003120426193110183900107455976932457439965196822111570172250235900078018520076909279952748195722352249009245510210083294350604709038217623401235278483873772731431982360123533121673507416247841954632534461520828912237804692290850938628075267737336489167527510886718690723614857315117987191127589737172122200697902686270153977033376235391685730235327780805150085259817532955236250807877886672815650966691615839112721698699388759112688648485453452898384500172007531788096127347742363403004524167503239303836706170710130550438058717306756683353374537830368559993775908695130621846552823645792359339174191712054179699872561324532665773975697093217056219380046148285749989375231643513474707236536588209810605778865416514732489817870094630138507925592226072971522620388194374843914310594095992582366433446565768173968932611045987010037275435251163774416122729999410186195660514215969412063551314485923677195452860809748682548745244590362604731380648393797344681866249700721554710601935002386483893437562236827635012792584941732643662372023278553594194930450011152493701147634634157542640955747394306944563542369236208121224117637357697086777635930193563836444028893630507833322803667474394324865707989508525087223707418326835271995157792652719876374997907620843894634721262036078308173814280478785549782897862274724237141770030163255013397053724176828153235161769069219970255699962054642437265357754725102403129943553862372459483147019494015602668494303183783693655466186656625470825860748948397282515589160385534950645138423737442211882756298620633135692134350535417532546229427385701851422160479791812391358185702336381354453237457112771171943216604661431015474198215549290475621090189572080606234908802904067854566746372417724862375811900742065578482219295010659668353520867908758553449009271325107353781311232860041052918835504828223765682124393180978579666414416419743846503597543167041838521459077943357731496484574214860854886745291237731457458931518483420505854272116027520701053028812182044257185040797177351938264441514303400003896502378835476069521126143515144940969915151783325851724798947405242061004598407363843511382982933537028551623794153281846898780435921758197601110371882601157152121989928035754608388740947375220406391233628982806238061873195323552920401422000951548088070610074538656397258970803032798551240570967529948775250348381192381148447639606902399800858875101161290060080769119438103026094948065984761969048059321785213998286590123826361397294733342452975784299759023288921228876174536434315837531437849574608874737342587958758219901238393538981422942391794151561315397930251464137986089598876754136943230404870285554197809229580446989902384192904558906846597838337994492512716049413377907064865785894967575994050617557632934756808289220291123851549186488201592146177654499211827254988676568962251706361483219514060308448688429474908171412276698238695297665284671870107291933779292824435324313828520635706158076925928260322211940276877904292408365322387323215102354075342321094760532101716780478896041685107197396939918618794634618967971354678672244029023885164443964782932669463584918661504011655032137958238846403545337067500146824508939635084079633883393238916440021557629487655451496229849457357045563984582865390103120311995586329789859964274241654564022152390526931176182193404052804977001395818569950450626908321844220985806560360396650520405092652944916311223912474122439854552334593973602158488959564576035601123947226002909110232358183270776031819289578931912239200422829722719276801057856446673340203186065797599897673630045155344121222746492117841921042993023302393475459340814869573388558531187892572435996247019581049408342713006597163643751657463710249870536291623949290060997979798208147147131128995085184920039864046146530250994914143403583695568842161518200066725239539858532035670787534474101821344997039591787397534962114723677715107506443419320670978481013906119462396814299656594694998030150150504394991658193643406175471200602325330510056856619953988521096991796810323970651566276114001239394412740504065600221709854777964424685874863196946189551035133391641195903971893239887610544264230246441278596632014847955273227434092863462009840598245338576386151933644320983391819572399496295052527170415941103294160552007079700445274265503291068016829182150548865729790830657332005667124001040393166428946073974276132720699137735888776468407672601645037969090673762491231815694613258421465240111243018088628385018727320829304932053488349080225799962089315382043458746206252362968122407755716672402614708332530743518028015646615241233577266654596895015351209640740987993352511242368393255508040779524033890651359848693148572687489949014085300106254036984402433985738212677629454919277281927072710075950240454194545037909180516361580836288870015386724394500702749898432185567647403247143923664843411160620932405101960182503178068353985725839133571334493036144917086659797233388145309217403181174775203258167433824069458264967527525203611262736721097645431340238065872011251345146117238016383594726875228176383566558240796188613216729989394014941251035646583363688776090658837696741829191920311945646978094249838609041602408330963764529279423419300230174005434322585462509474354551709683543697560356501992385147371849267059724092332775797911738152474353163342411729845894129107504555042885877762737340663304160391808268741726065241096159893360778633070199222318466648889304527152405511746120223016036619219393661579378673696158162592411730058212811282557646795949402814667457604557747067390220019769831825970029381954149275908113373323624120588587778716100672583596232604960016058991488934220473616132710075452300484394310989991637221886232241362572247230711979182304944435140335744766397083610698607144570069276396639734920292183462976443818602414189376688053451277703848156908540614032803615028038609490335348932303579251173935304158411332654712924150567398884435930822283033032221165929854191965597971848854238871580891403693016171725700155706148369241606812742295502793463522645006869343077482074666368747614762002275018155179697826673741459504387058872417238733896329121395730399466305434028913277468168754669502161412465503700912659179830290388734841761324189723433945569356600838016094355613785537468920714544233776467196313846465263157010171323583974874665241944236302779285419045015666457881859979478971251481140502377690261728979301308065657163121212079142902420705421508889837954536591643551233417459879480927694175114903117460552245578545813558670215309007703124219556558995997468057416133383616416911400992334155643868362258664428079403362670105226669361924674723242271364090542898520518835100369268187997465647052545068268393626406994422311791299733364106678173591592423716289832741772887230205260980424875777100698819624037291271628455835847840340492436487818337243203724241618788149318366321324242424201471879866012908295449020987399595428721390667769827563089167942174016242588235876539750420302448986418896369096316270120557681969929154992775142543788129467665083250351267162426846644844454724041012452806421783273222776043691610288078358871843710051808401795801410835281635163624270380534630763891947615018698673670605014755654519125563485474406162027393835035627856152958894681701242869994014332311095287212448270472060546025850066704075791114136827906978686587117792043561148929968712429988803259034954625868507864515607372171539953391070545742084470048998112828994216021222092624494727424305405610358209264251267803981905452659443737519428132171370336125910575516989928472946953424298072325243162902588836268426784470298363132949660544162538614748828347981673228810978487694132343671883348297512432327755520981118356612998485687021734497159455814205167601363168104474987091636494315666700163412473124335263146646944702228602807118139928158887516372142668321214150923172057318911173288259805252015609004243415547775952404089135009403651970848700749678332743233588694631268790098502313172066141132108607604862435195706356624523048720492970167945781458200903619280678213945893743377769312698768681171248164084910524362538842393336908946354092358023108172557634997996943645975444894856647732804498867623578917302150269243787964549842771233602523960136788902639127631673348690099465888102863102237495535995017161877940595422438720325680750991723040604059244759347558781923115070860386436400166976935884441077368702845770379409224398349414028221295864075270639353993044472385084396885275777983552083175810709482686545514923467711645244011885672238076006299878184487827005272031293884799820971943202275713635203988800756097935496850722212441738190964275756846644078438497623595416437898607166734860499536429215769092696151709528254210860266824428812876213228288701239411121356084998485602261674350348830521151995222130947223118824547392608085441244321534421043454311042835336107232244610950475490308238497623378772397985764670714850727011550335079172444688942855325655578568914111053937681230076417273323355555569581979516167876516112715880238173705812524458433764454963932090336308884238313464741325415758340853287016214784675273660353298142198999001039965244616639857816270835896248137581128520502746831434621865421002873579845306419721733111903252007346192982447128722951789824511177032832347598640395627061908545507358079165897100777640229035197705516514631569524484288414243755797570968942232887312501544659132356822348563230881862148691752544420425031155171125209244932667209352445385328575930785720519631126771596563353595646066381215699176134271050357968934692560972450759229113557550044954680939594198807691937528886502489711246859161951191180573662336507492183673283924515749066939668994863881254658855888383033086427922354597161408639132801696867060967477934970251369670245294921185182680683710393297681827934909048809926852979497855733371545681229119082889999649617367275822453967722542718264223286640013272432730924295092305662213469775602749713113774964021604518693358959943324544517013147431671669925355352625191822960685511025521066176939130589930470440130555394785866316843769245518286472343532485938877973370002374344405223057833850423369748670050160028663716354807214257274236342456716598259200059952735028634294139066792669723798730437353937957758746704387095073567124554496603097824579611819455417024559219300964059380552294276921735098819503385424390196223556566509598118950849558347245858326794413719433477706441743068760728732386031909376467452918921839273405652449125058695651761156202459698125003931538845818440649081930551382206808102393363085653595383285081518528602490738088819397197424601926645634161448426511541316956283525195911244283826288101030847554548973690254035882364831424405950246160433363721723113697973766253778983291481467685475411897102364658779329452455366084629871709766714522462153935936295650841686793887474517768464701970560120629111965939271694287820010473842269120842037473624633388386274792663438170746008618165177012473800268910283248614546728946437703394342046484241967025618246479164897251838674622230416516000185643129965411759820850056332395241632046675535001335372968491746762465463194134992237442472246330220218595474064637882118823459394089968995866776637011429528531270793556624663237832561966782136657092206028310256539135401190662142923938164112080696172160438099387993003279135246719396160545906725965724244388667309883949480405001995869954087761066913890684279935646950245990878652468610481526261948802916220377285440431076191523309676134565789866492760231034670807839099262754764500024692311159881515250166756373957401905770341261342041635904480839076537485827775259666285431629883314207247047782612095040776043338836635802430892448403488354102870614733963283464657835796697459258740113463452471762321608104239762225168959734768174285127377213488843126429868916706963162387342001469489852142302024728355107107105025571884627785644037605341548737134057035304716047710677529320079908300857963350589136247348697747150937612256284483514279338752636745707222002567691274834223794366061319862676094406210515232474719848597473792974061772433307773538025430221894395766769509566727981248500848626425884845796771935624751466464626014964951463471490061886726013021674810746605411192668918406378835311056304417080835780199247692232956434743032959791358894379380097270442582150692797998883144672532976896720924331096787787043722477547040496937826853533277996781762915186712775413657266836934910872925660656228159152633504466949756724789229497645839604031247826096808076324572917963135706380553018179506155893461920055250204212768920472247965235195908441637059762275805273353990572737729245898431134662089469356846280770879593423614342618352480739728412166526019543848177450244296873787044781845808456698591816757459363007125099299455902157979724811267979286814183617945293811474383459113049494906254577757396574482504189366105015672239114063379044248226932767178357282347840242922904037674700397134683438554640642707102611753009130847612735756388934442483957801436719780138982653424377606720487305659206933281697377077205067321400057367553449808955405386824848878671591124076024028764936109146485632435139228289616920538474220896046608059038230996591893342589248507900622370408006699792029798194409277173502701273368468208673831027079479355302208227752154460927352486620715171955387489668190846802860662680526626173073955928932432766560820558926492281145720789325877824872368082793050500307417743535142587643209181854326694069067600791908213420396368953094525633402213073248802098645862976896554724865262428461104736657509041771732052323741407565848993239270868216794264326872489569473519121747691111577540799971999266828885079390393406103104213296468250407706477052176909557243224906859664717698638291411537797697600025819272394469201049660042850854700148091808108172665045679671866249188064620584788093007116714190784971339391499399525524545209494650784349719810361428778184033220570692492463951547694697276774770642486460793923519565436635083070252079824653742742569969457756462611987386224939434532805415082762099066227743584448627037670924884313967312656356805978534285819844609008250228150249451063672691418876039788319773186265729314218073290550935385624444888087051585120556194413737032854052495475722146340713736932655210869322270942390754299408994425444590686757411432252426167234352191278258524964388455951679782993283236427374574525445460529398968062635137335872148508088202055186599580340814883249729701253781235056793050818818568505731233257555542419605427358319447976432499228822660435558523349602498668090550290521633778474635193474971302232949396551041598783974016751661859360517933895039246620524524995112688373111207852572442457996232944501683417135951402520951792646811568298203136188273964266233216250076441524695487558164084358212585044247670699693803758573003905790110515414779557179169312729095998222501136411598159520145861367892066666353218394457911294294937274642464823921547797561573367089576184057525023220985047485835708917663527278094953542744825251137393829123783351841471827848818093776259467255433250342069023837559765846744498857297100153365702593838609837888370559661656612261881245463878074036437752504582925934013645173858446245540764902961622022924479177890142432724924562461057283299442767967831448125059346705517570835029425673263352649065141412102378610932967188631037171704617628931161672590290677122250639858836596414924553081207285708410066076168543516663530341382801133819677912289974126655244951348332507893463618128225649905341150317914116709383076776877423256980342914079980291910761139653077618040762225081944515194026040634703567993538832743785881520110804064908851752700820562380205128642184248230026324250932055997998346926232665644701956357300679539057244150398164239082136235132717714586191210328112357262510993308766255344089415120517990273147386818262664447528040672746408572380155038941891259589373992650125116877527437697415337481724220377071286644907711626031544171194141083486068995295074447722033627442668251218471196563615713772424615456070479650878312900133434911136292975583609060175949453796861506817908502513760756621273810011791829307611862991163557450260202127565436095113856909481542447672260734006103733425142612736080448553121475788902375590577113174550094118597486529627058856391738971595159889870141758696251548654185324863779433780506989345553880505233124949841887573046444733144459850552473986539970734623382516193980085773043569547616982826589381003060241121866568598020725337165613533509921885956010788152195525179929848307371141617648399503300378988247903454105325020549556935880161545989189368865721247489636136251871862818854644786179243581710112551851317871774504307353645029761507292301108330802551534951869294842519971690099173039476973337895650229561487787804836658283482754023019230369038581978853430382855827300625207215613042476796509973673898639630845953309944673660052789535100775106235405180950620729591214778792252166263385428792589775958630580646504484526239133538342627050430867009467036220406339767252991365187842522230658396670226258056212221073354116185029363564161665577923776639586049469324455080590361798644275525237412949830210469698616449313701037027750848601539616658645128535453048155982963829859815455625924865252491863288176301101499737206920153869877418621655782087885028970856782970192695827695239408257958934662525666688391835881554906943683070353276320793494510936539945097204283673067035144196315528875321482218925263259671737078127140513347473860809636945635120190184391605573384080516638291488624793513794037131979252766875856259482942074632416148196268288849800968875641317790265769105550802543228031258589984582872082528325735889476313492606249627183220073181354243953643770564819295399570014455438391087844914419368047125290651634740311703744824585051857881806866288441707935660426980031632363491203029197537009960106661938253096217318762267071826314852284417279433406818103101838417534997349697901352604608389864938417085293462531927915834559424778741475818626067224662481177224985686229897440438439218402456036091912369895978248825320644631955555593083281673460231204066700724877475998063268452732025570156216876628405832688949305051253393900504950495870154003485427760246248588466667342385974454567161141984303835706397426666703855560962534452390357020107365232835276920677221366635857460807615994825758902615564428664967372569208046851174625352670246787668603228796511978576164426500255366220799720399986561469155119965918926099875691957219827253655095064759786156264742355786450113897041993509976406676557120850295842115591494729075235534992741002537851294919385596259403263820252498822492144447558827002900367951870523576276442355841833307120460124625382993991548419581355125514677093447144330924763732150118612798381856025571631417442644210392318412486253915613047098148024733881256960519677269438321490104652409981501183394145060084222913194160995009964492540619633076617168027996614596490848571740823780571312943966103687727269790434903189674932321665723319025413721541461036471884246356801971257097712420455992771894016308075557915318038863852263293491228689445254287124407187398513109807299600005402969139086326671417923649756297192502128839909708484680439071763192543829838625897603127381810275493426101282445835103972461726002712472644102839306036777543984038462374625445571177660427479404471102532275260708819152596238810359449121002592156755099903598490287366394653336254522278560198785244807812000092267255630431187021878325473868804409188331048255150339506237035345911572546569487158440812225354661461213368329141771387120791132563299696105863063881455038293070650764250040925475978377200913542843287311066940704199932530568316953318544062180960834613197799338171659170654879552254811443993463691039132585349777380538014249409345036276165813689500309512610570841234456296013280703942549871467589010166411517039393214698903026672660584673505964752748056178078679539355103268491298676656525504263127329885291927008247087740022137431156586969076065899085477980877564865594130890270456897729741255195596550109221935693238497816225875176465524209255740925717695468860519010003160801289728987052861082552542297390939681507750096597173714600861152209262260852708298836437362438779812774511708223680806107725530774136633479557435335472506634409792898991840821815020062629005813678154528485775952733595359748408255472450053882741039998701952126233169862828034388497269141695862950362027229748868984900397414716167452555751141334602734497423550587807218665525873506412530832457388035608515766265910084790720477045368897525560719974356650630663167587611347516441890509949530441171998514991673976622942694451662140808774913553255767345306518299977582014657530815794081675035725631308268975276869491317516603141962741227162095782992558745125950736894997647865130983044553916761879316366404096977873117158004122655528863709140625817884625599239036439876794389944195963322773315106241711111175895820421382268247158558623159366153128943219165256048928211959762276658143596743190469318970709546254984802349550186923112936640292909966700863878400422561890442086248366177906430206330593392032243436516079432570246586846689771534328077217098798011814855125625792816444921354300152529961377236010772921085951314599524616594227164157476323657025718806117063487256362926273236008312525699654343218937450779674452915427894712722894704464813147441242211665900810057212564723304438700873736053316468302928700555720019069943199870645446550624282172711712459206812429481055025655040470592410528835740065648454724560748756247634725962019554163080869913086567869678755397008127911256676866919496838135150988085209582767929487854818158433903895764802898509257246086253006148886286503062567571986579365615795598257299189432894771618962056935467280544185635018462634426748571556088844337677625687751811195879631684185363912337497661237712587055753677142553545280102361912882466084685673608493413256933119579933540423335773588963780531839093444280492270352162230871494436067300423117979682863905171952570157505209765590273099670998902005130022633264738184520239976911295246061557293366996541826787561464425717436938872908878942599227147563262066667329080946986292953431110762432816432736086308641338648646683257268334034117417243361379086047880568004597543289332721406080344475032843441146117190967017625398428222573668646838817061002536499007431738470008614817616431964214609199373818877654827069979398415393897490925744610308060895210562372337339552990648545654777111323511505835187239748697076352293343549725610030112257515891267832849264645292657116115146530034496144130407078693714179233116662476964087635487399017477532576710201821142814214482462132048901366552314424413404287752981183566734855659369179625585315367510798025776714527966374589942103118815474548075246518531702182499670582009281703471433056490611030296600778862257818643958620309126219537459319155011169133155954733941172086135358840520458592736046321982702240715422579061403310961486299075908103313306591475749539436538701843065303834279040143059829881096866287939606825804213401058668136877008625504106696553622430760974869206667440684275559470825940375954543932812646151258197860109409221003946623938100024885780821530539641236263035680445023302479433432134418808431469281612582839236820186918939839333078257939151876598861585265883031305482064741992386116621691904597565625333625833184467689507529925867773089781132205545268932341196377415807042979172961849337651669375621514648813258484172662171532362271080278418137745960978655724521653492678760880091880707514451795591893207464840762585199051735585848891330328063507879705231316767693157737318795949072123726379925971534942241650491860925865916392980515375415305601083541412442663508841170889542644097702742282321287378185848137739355097493258735551140624466436894204535523793022955699025688892472476482856987927771770439584369247240062220941322588555494329232680626510065606711248779978803998822145863452959171666248165322874115532752641124896656225893653627179051708201531002673539588247022352816399724015346412203202579778082731355120501936842815520259081855499751491511016991412711608445400907620830051416461882552963462036087371679019058251894683895402591468266297174866800839302951260776692992406943522577743863181275967950694370015606250562785591434151225924133940303277129532531071186174802577223494892925219809743089521223146195766620759235563597266907679259386661233291059527961018343106907702032228716252083611956494811752997132749730597835528521285785478442594286181685257107399791644850737946301947948601093793836405400303508924994891380108931322703064366040925952136152251750336475912552993362345087462062522116152134533464059073152732407955939560032748790973869259642606636143145093479579364252820760576736682245561277978857985090507465575999523325768019785164732222597357344466124947799906429335103202924170618147695710507728019172716654227202802454806556829265624445725981074844343809247355832405957279281370093179495842802006781667030234830107405474219268605401978802767259906177331169854901005325265807003919332218325517622195004956023295431880724870989224933073759045534882600785189577342825125096765197185679965291017199510174647814302781333571695642231934075713767834608696726011224381217307989693831217042049112414515862212057381989260281325336165063327096126811273544576450343260286271837391993894379695856116712668383393759855826461542797813317912057829123789989227627725615951252603842754000144632044579106546866732414053365861918428042262582168827371032153821229001605389555745804826041497079514288287427566570758148260548242022106120376883410734370446169531356584731584649952332889740260586138926037436545571031357309787030515797674186488333083334683061776199649533323434059168678388645242606704127553143957940278842161375968491828232860066928911605076118159809805722967611642356090547827553026079990228360118255687572387881258582934211212064353513623423335454800037637353922844133746644754648997260827153248706234324739394940743678490417272542657426758951827960203343622606184340654829291096947327752609810631500580250568949213398370571061955381036992510061604500623195895685277633841453387092156878758026103212746031128492488714697592389661216541007845166518759992660729902045834562796342043971565244565003261193326975841615274186890528103396227728680145702700318962787707751372895137492853891601345118147909122612124554283511450747662061450207874055271983106491319508431939379405139356086244871206328233097256310626135680671593587120399214096663322511910445083216535436219937775858432812272309717649727002825335202360261433469451608228728472752281846877737507229883391318768369026382449348885643460614702141015933553708332615759261193543814375325836805068692651602131963859004249450260777932898292974931025747485191547582123626168427556373977810151502777188467396734397418256427158653009213673388007912311266160418917228468906382261767871722469773414700303377094862942467836229172179125739785889572304938003585912363996896312161385832618104648370796376626799297615668211984659341559339167444688620035568965184061896502099578794947503421326194510646829418913576240994955771883376474844936148903373387364084487665128579906005691803558021757432262082237209829640541398491768614254113578019232843223566220125337569971038210371450536113521580875443252621887517731498123415979007748415485246874718698284371642775679661218822589836358646123372708731616395826227829938155273415802880622289603227447919731513419589488384195292905675291358284702889972904682421781262315881254450027577348975661069369938306002844248830408556897564911615693828782862045901715920661835552624970557350218309269119605068711363792198916388264700303239855998258529737206759685021223259479609213726250133154369004734758005266973163662808767546868431544120054451810963963317799632707332700784242615943262628719836710018530522110004993585898093472727826132452225547446633652346902607995201882984865792935642627334105861920635765802134949712381542333263308182496330203863618060743007893628480494572747655596897626289047963077258435896097235562688527717695095754854674156318936544434526825222687331658583367174104535262918601689739003705114038721607492565728669414463434281934220107879944479315289080704416783720859140382630078719202046871489540429657782742327726300675482683925720474289569191676005205232153821140887324067926317255883699722977039781747786554451339369528046730979198754644054050153559842149017649397089933682368263217978618263713774776189924213964754681521802356570084650624621258009338239375893985352553247370307262633876131869326125773333729027491969501508404817998772837366525506402719361477732598808908149463942273026347546211379742525447857306562061623275845663368716041054565558219632284442580016130922925611695217058263556174292971169937298798552686573679816223076859491733218637615077351715337805336399472531737904670382636575527223738278135885645323766083898120229497517958499014168966345218786083583841189313847283257686426378734746219535389978008754241505867497801560159311365405520709508035255004812123123771815210729800323263810175918378625405659625399485447107620238523408341501421890183896302766908646062889973158305000605412639661052112618332456308874942376132111738323599102671544333398090301076751921560686091509929757948984726400913404847760372533164866332739977457417078705885849890364782505006075652766776667301814279834629978264163115472471904638130827026950271552434583777132888840113322856123276424758054914145334004307351368202642016710304896740791322041732936558863808199024025042475897990619973944942406139385900204374508171261626430362783912411472682090856905268374225068910991937677220777687371267701529071296822615843757149665346264429615403528980698498199023815881324900728284203166454586451867787181771772779283212526968322976641242645549673971527879680434765895761265338524573915134381378450051873859153296341405368948443972255080119626460792690281162293670434371158371953865778600341946713096653442535523561350392637433355902487780093167264758556650202614245175520231051803797924160186816532721349074474187926304637935701957254656870769649022648562831139490830659813925877165753432905182988307442209315394562671891365093277852758561418869150584326491128180621164533834614564998610279908878315999233208349703499009644828973619972608413030501613834375265073503350269679199100394576485031398899804053476207979951035562800942711980771413862537468942006711292651290379402110509931288176786355712128822058452590232988278448897285576764337655132098372084536519727326525662945407520786837748259937695085474585377854401518668703212703251083788575535253274224674561655301265375294697049286034935237663193775815312691121571250545649366284046131575493234361611438689415519179552654211604032794138704059736596828772355549369536724926033527449892888220448868443652751589546895588589026557183172928912923457744284419272505276847550387027063282979975853882599387906789963676634726367997091265613700050045191515070502085744705320311342837530396450683734947465152543161640695883965696047762481002657769812576232402765632471455867811665356335738413320375632857711145794773611775891097844959748713454926589454050089749431237026691600227796215160164431446321556746579869691343020917375379329537363102934825265994184851531345770064943739097642085895731774231457672882967906750299223152573286983302634123352631632660490206490429708210063264881567676324254446870392133376789489600125136265235472565170222559556998628426612510886689684710787260016733242215625124292721308055932622130721409368643549968987874303526768849221266223183449241907637471574744625215974576466357242752795222891504064277678656611519193319181783056716462663530481381010666734245915686417445768839062419201865410225266970615389099907254998428548419566819245426645197470930614227531512984453091827577151361181673035809321460322584723528118255047060621542622432455266514468964572693823166555250959895041093425374308599979713700425885834030449726710962996976323360777672666437347987883567301028647138454592879163749014540664751939489935221236247436613174783048688463151603626675922435767627623446665395897964687905529239027020107572189191382148316268524904958486754329312418264266813466272282093653277283976675572672897319381293419430572396207232920071863867466703063646013311111642669254680251228943053311250985386012012360704496997852109585987532930327716226798230551076769268000220726704188490301650050385344759710183016737826819436124165696392522947410357431851765836560341232764339009267156511863260791733899126277207213516175222255241829612433962825182328696862544411862381233064034533152672560164069574723203836514566355749873441168599416165518249604259798392678161314831809025345071646664426732670262761185976491324768295272780570322383435150636721770663763740249030465909628596027197972553780267401418201998101813981259504234866248344043921136487236662920206393962884531448374890102608403614840732675120067415622915966963669408360326433414963712098545475250177366960197146178464515555994167263739708526768649598779532421583282184109391640528356790706864210780346607571979891481554005420051073009627962347267727249970112217781656798449194332226334150338567530824467734104550327428561157455387421400071928430172678744731423009836576075155127779628101472205306681742035059679410509804665631363778251724709140992555226794710368126705138246752117200528494295219748862848985277878356210600487812711440634990881645924451898268001044293570832904722016072696604619842607722478310717143909349289737950750564710538029161874918869942681635301357293501873206687311501731531091296794862549795815121682207571231891909138338353447102365979426824808047123388274440350534679995291335460941392728446513911908360762265798398156424638291599904416284268352768189353279135674740322735150689098775472181557499848834669462227119434351395727560933187767215742684285783033018304222517049632971612296836752748983294723150697497887414002192670067206567729213108493526857294076359289561828129001109784724328303846519743758573685912309817836030314052823008130266313304139268692533992179415764798534708178636113772001408570838639437703529183497403741835116223700401731882693932687263087505487566452909326566503024394453622727917080038157851325290236510568096258917942400163871496126882121694699254423986747262060057131153878388338830780165378838775211593119449359569491793940578848860268962395944418497289287230849557926072113297712137238869698636023682916222546471088062109447913239901542690066781602893469428215506272126054179829178173824891997338295301682667906177801353365047188633978427326915335856232791853579779226627038024456968296862549118748685305497857965989184862186237485563935321563269204899283486556154154064951221046610376548180602506765491340332738629416911776263813834785118364105692693996609492020448950262944616846685510606624208831453740126877947813985957776990398770739941703256531926943556130005281435994560612616083223589903248956595675275769853245744035607612886079681857619771788765269556198523752744722359927202060238916718790814708867068302793989768378023337579683748471679204205611882696461443508423836973785948258849782595214143167689849592131938941287506959614919327114703587453366081426979437546971429195290310193894356371835937491483074230449340295962811166523899581106000938622216226552269852976610650745271358949733447407281673926348622262971347155532936244457994650823197908769074458525372699034570900774408153416786387014809967412400383780852342739778817469108053533050911944331387304083804327000675060306862695321245229016675038563185858593174377694941574108105727494443840013991522952924016806270167458424696605569107697596987310950784518251857689800093942863712191016698078851710571144669507031272702370696200473003567536823520581524918682390839740880926485270458168006391534013493735254715092352704427031619265721100423458480853223980930819701215864173291305325898717158855168420606503405569968593715915270462193954595558557009347711681179835995842798195564356365309389050941964641889243417661217711754573712705442940272937717765918310744305815153159609482635063365572386141392081307541461074051274134813889068727065208965175472864434890201501872018366138417280798827295820189774861263383603711094140868044146381899270775514419051152014024187628978688233866528874956474011072459905537992175155647819809184955876752778282708080382262981804394156397956172569409092951857744788365159447872068267859636945476370623820669620239627096206659210812781832191274680814530314217798673533684893808266818969129998351994223212726387715975764271028521321515883717146485428812423122468402839056157796819989785562510271070628379399431907357979753622711287371994784521038316866852142082201926672315581011737244237560915148938634366652657942603716828928127125806931590571523794802566191268708876475069508501113702578802333818019030210029759755926818216359535271307064188571900594974446797417420252130947246191950277213237247025702961631681464762184643644651799532714587775904809172469556739679455373497103221936945596277893779193834069725378841550206295838748309619527154204615469902226843474617677113197374866000879354436073024336632808653684733506687074089001847030676271698214753133731542862215155131814095414979724670676343697696458309286795212019941406654043266683440812717968691862291765441036492080785729242338875506180983659122265379728841112013069101857603049832953269427182141884259428662146952768806320825719648671342246985264194190222362411863391302841718447248227557233271979969707482002437580371792180734202080536935740618765664169607739120909813494702120725197213699642342720420930547846506923744649042088873263022615635791960630923699160278236493000344974712377945595124085827212397099465702753667598133047775050505366345747155165583727731007857817871530316132768489253576078462272211478860351804029765696058486717567636659308748016099927950787178913104203849478943286084797051504282723332652457188642319839993285634226860788344374530927289314609254429906078711173676695984963306217751427248848993377878678597852652805705486612173792135521247023953256081906788528038324229680755447174377489272550143023150146961225494895338362756944869304674198022922555065087429772758076095106879827109193837142726229096826872859632194283672724247744390906003680485278454385481995582874334418909552309926592958848227278977719675054392057716689385523977360925820906934305789867423572953120514850903846524931400689961737272831735816222294455416149357871477506270376192498036384400160913611713729557661808926386467940279365672729038530577991298857394478375763909267944333650549677074228596380872187039958271475800044022240421400327303035903609605480047188473046782868077409898322252624531680320340844351093743194993802990812417921108273195423927096542582195848586679924115788447815219557498322258335674226798960098032009354865108549467672732671340531034349986434975800021528683583572136597820843573260466126057046440920052064374880868404199927335854086974773160175053902530649036204494584764408820400538605715251822177935180194147116600865329482273481060021915944692783460379829268818677784883782713148160668128480874790430234200377130896464781785592735946183751062068844135862845063034644191394289376235474277758676901467822890700609268325225032463995327363375667289976602542465979519632609027426151574818652781929779836811013313396516257933184194070269649273788951386923961261275369592060229690087420834720840833188415826838019383358973224335136412244321174972738940476682416780963520356641543325415096450197791054146094374981599044579283802888013356248181407261127394232759728948241418870259574549342547227469899768771623160993228850420280708381008140918873526333183274058420740748446573397838429805347106002374219987211762683334909209073865337959074928089283030107207552741047245085118333467630475982066178999800446274480337019655502132044139642367450695370878169737996937927420616378482011697962707212703584804794885806583089632312886734029638482411287659521853624112569697491274399057478280326299861231724793050323637705845698785774531610386670675558440682408910511818429025803292744851409615733153875631143854779215298366383821587135882408201277838409736232647584435263028166475607927459932214839271563212499908370989309463295598599287284335212524274334943790238249494457851649361270326274642339094544808620028353526261752981835525297880465028135399112847161281153414460389703165467739525872747653838444574611035156164180927334625414221790331071472031059929495389595843688577348949522598210383127485964206232730714837166917989674445418418903725112728353005929827393747375710992776523563703606473487274924784839684203742309758998874387876542841593565973588345060936129924492587467691542804598132815825872750299911030078063159248172205221320601077149233660100318271006672726648894955094233689793548105579642327517715449541371774079951775014666954655741008015579341795983013187154617138382203332872631369978080937275256281698575352925390236568114358655398284283241700051641990051764383512005756933430421802931523685412753142405986805738973771720903281648623839549805008436023535858255461885594244261292892143414789826709427541767604522251349298729974353338206276224063310048837745273811887225818199822194282936766660000403799275514870018568674554412319573518712379305995148215954867701054047820258539083335640618262225208028648662756680976315610713764189090236060395412455357038066753567652472668036751767384556469669359602263425800127575557208962384036477132142966921934724207987296298616757967460829597127485706790346703915786585811127275838257432519039782995445767430575299283028634186242545022496241979163982734904359411395898404348957572759833246482216524972533181193055585614050310507654858991552554265288628752889554577367874202977037846827604756366424947670848543073541328403616349134710744683298589809511102012425448846430712271748865869643276167223751257407663807577968593851823215803790138851324567042252785387661013519568286523394604020035672762338602520551347530790074689452614361638124660209433968818299857253465435528540463610413121499376921627633026148315182346942096279115494171946607206655284400443565753266414389342772209055751842369120803473276479886707969228398693750888161460738382464200081539367400188625730736953499730836725281014943043645632765497521354531951950035076482370361845384975636163397442943098863871989880818808674749583176022298467227665019591837178700154647194377440245879644193433052737786174502452497071499070005187269292834587178630276791748438785506397547781397976147102974805258930692216662225235373449011353986266028141926476293709762768801318720414066687625545954222924938494627117755017586202137887676002980515741123780955192781815908227690663636540356868332445566200951604633752256882558545829200193063815338736565179457437025887562647321277007732276466231522699379582538162507411935992575434703207518963927929216230912990259044551217209318962771617993469495415021868337701522075911300888689023857991528263986782465460887462785262268142473318858827725724166512619590003292244047284089619602649237730727930328698350719950917336222069042662113793573787277389633982192711117924375186838175762134729227304841109052893127397566546440159910892056359539550622682774490348177834016388807477585910604735866456072994009420006312043562308116498145514965551300585461173527755240521671556660413334758759879204455921756775632837672276901154164921122464223603954033684550113426277654247448989545996792036442429665248273506879964950157404621482511116740163812882370549267667972800572777463290619456179973094448723746706306283461937692637284371025062943023983874718041127794451518210864027780015584757912846401287399509776297708262263458825052078183457605053081571276816461601267456151310391277907176973845578732241330030005534719511669012581135208015630373046908093097927353658564913574711350902780441275907649029919388200826217393959286123336572970664641027058783855131893465796268593304795602601127815450359677101400579933368890040220753848251399308637163433660079237124064576176500364106122054356886278288177406253057006023018982911091534071177517124423703643637158902201162317102635650130243991215404272783012730391660434852892171767800544353796026814476987479405571599377835639966210066927419271468108962027844073611163472025898624647440819612040336875208970108806335428443692521801742512119678569911058334944278599916830944946984707806367546667767825383723040528489291173054802989310613282285243013974421278401082786229799225637499186161909539509229235240387265633496244744690348057513565946504625030962501118599636327870240365418782445707402458948806050741683907150580324241837558626796044894031184207156184266389930059278868351960880991550054081911609426156177996494555738936233509560216938453029407415354220170088505934102789802153774416896976552390007001131094692800034443560636076613103027287389274226652498990981590123765127905704327731921850284488111933201103571057194443871218352322554867726440866734045441353674039901046417279192881141327732957052332339987800916026700289290467003455063211355182259645456365580270462153147060322792147678038734544203988775731536419729437465867827633623111986467460831716249593805163179101602174316027930363721351355065556811627671648322879623900371433163480958689243847116904830789651005911049650159928279431438312018932525166768955897310518020709156128212794785768231503099654870137801420342350862188944512795130917415520121250377976572630511758844557918166124319147934998793718897466767778272433292270248264527964802849998567554945269468703275037839400366514426856820813090209490578996221008140773669655662797895279787599381603739294081898326023119790605145978038449412185507347234440464136333171482978197669866965512798400518184541976331055635044884971342236033913005897971734678237347232923051738850500463602568199806227997282581124555915860150184390904098641809717100754618847739349112735711271075330950790361979461708733280044664805241788806067731106455884142874312055368645075413123789205016418245598529170285529823491756812801519817495356504045373588004097369310021016197409940885723368139890685230580215225783079858444498849028020267221549288886129250288528135271737803182076280866581987021339186121133602461873626491285983857042280346054788599442082401809197362711751540474656341180486288643987511052601860076320866403208005880981242804668287276915828885145355599297214513431881771664556450266633627515714226121270282902358703146786242728053023359989513383310690803679122897592232090053533983610528084879743470505105124297994696958773290081280620707972879653583923242657673392144380470361706529595672993234416869309201866257158203504592227460112807334917847686783106363023672435537093256269498230726186313109105016432061267424608679167037793094066928086071354477720412401713871525414787133745660229142745368281009292055889007950848372326787186595562128280937654930431227464459773811156396674092749919903096783157044379273964166675109789264093117468241878842810653928794391428071913722819450621119960494201416756751415522656932859693990054101116477675292564944028114287958357100368450907034580190874999930927342332379066474107462898117101040277883382145098316061371281285058427903895394961345986945534332173388380442292218684824710117148515834710609975786976196816012432813733023068446927105578932616600129599349859749171845033446105624084001095249031129151310207353660669928141425097441671089180442792638502557662206256643470568888120913431296547816198453967515482108102441606281524449318587351214286010858155871519419397655261062478092540814247596466270191943785507186983496876922816657517135017640200359938353017830278176710220244928865565462010559567415771159047285830165422561420028175482685137191627689825272660007703368359267689271174661458864432562954417051216860837357165976102782281838848606701446329636821363730331746487176320142788006742493485684457268867825525550925006154697582882819549210812222476682290277511682236950254398732456186120999673805014575214534677010802591529816042122328201163287602645784892088144425417823517877294636849168637871033559880293528797513166009650345021350087282186148165275693425491575825447858789779004210159280113548097158154932538649021151389857756639270582002822478330810319358617209592850309837197795638466498733455490133656606295899331266703542551795858953425528236852221670572063731668209322415546565287062082026853326008665800583966090695049703022545349369418434282479918148540317521615318893601698982971238272732961881513540418704927348526265666408136486378871680292825974341992184045267003615580203875004096372188655376610564625258596762311209145558061492374462248655928260525941467834123013364881208645131781450546417941645672385775090452177054997583323609161824686637311282799597425637392431936836066334687888366489399770870992397517694293270431571634050583519899477212598612828246595675803136402007793328797865113011947679012284933455937274544677730699424562602023887549309022328293573983039664285659923462394343075435576614858518612844661731439799759776844709297927738276470935627283094945093757497580940229719554370143859221216058081004239743853304543467119143871226627091401261538442831627736610886518271556640204899738718538427974087178039858785748721689263629340793705516018371405087728321496281607873833623355597883713608096663152189322875105227403710184125482971285689541641949279438506283339454838617154528632987007434474646146503414460256193649389255719342320962385728409362207205517646982834253040064322875603806977314699966010186101840908347452808928098339129091492583036511730299676547392528351518450277244844953768047638864019063487296774799021248561273166399844273618623088551731823996788171283658183206309699648514729573723694647944254825014483727864303542669964431539815277168679844685777773172837672421499306359765181359539276806871032304580251915603646418455272288614825145974092997199452910599828383347241041854202720851360543073574876227384079200167634661510906147191081330087692439890505428382858283971745960020088457644825190313755480860179403410944189883726523194071831370537998352344375954898132152840342408428748244280989888047197105452923399847655171775144109635033144384157428360807901341301639615728419445590873662789091442759845229763054393408666782643140163757170561881345065363728887368457730018975284243538641536393817376290182296333049441891940659730575385121339862756462498470327918415111491211352502843104685119008961170790218889188062488253842283641190655874808838120731232314134423335314443360965627128449210824764039272060888862628525885199283013330589057652728295714261949791649958943631773247495809598284541491639960872405594058974095185184537010842391107823544795389772207975226175997379931801766025841672846834585215453135785842096991306995209918786098861244401060741198637447153099351033428616375680948503528479275704744265896795661933828768847466738762703577987555965494014662899892099869716485407230339888393284867611013303784045113078379970433116053326219954425770307103968439752796919730812802511262236007775402849005130859749830464540495130970480342613835409134454056413410146219371605655280444840088045303964949228509738268650227452822994845774673433786755028009975605100915288666465879026257768957124187931583948729285173887714835384248129311916831606013543029978483686352773120290302971077830277473895813465194275616062852674284360702040023876861045920776965676267878197065606120339730472296548137344619132198858923218674328539123224152577419290782257091414018156957284573833622918850794868329493305335931935720916763645955813285467992386963556749298651132482713946073162855012413231173726487739829651492342674132247288632846021042855136696664426772810414959430276723876342860664480790484267719159856451260861870402572744277451430790128567361515617731515750059883996401418804973069975506691012924075303749581557846276831148373516100826421285705686878635684085892011926825243703903525176669009238408264675261709260269710407047148153102057397992858768157918298128923530414649198759361563221245168274617227796815733025325573522302296833982779941603428598264985693826397360590562321392948550742764853294267105896994589264214411960008453533311450406865373286013195714843485415041517234706871596658893468794776160506525205325518877942762000677929174286295148032861639371556249214921928994506784097205434600195629847440967486246536371130208738141754833381661656151828625111911346847323655382485319878581818145010538694131580428941053108502625828157123111145551238854904286345347986700257077621741380291892762345238939140280529309686455602087074750296305685666872397749985912864135620834859426470223854033139665551229405206772298210771698874906831232186566788925348437392893982428653039270631046016785592875306017870222133068112991425648726649716803285494390895401159821493770170327286667620929876361529476102296386400390994665174286052716065117214013250959270559294839736129981798102562867713853317710667503313178278732512150132783774865020703313550622755813048108002946051717988641864693828683014272229157943503979917780164905282771302956245709102784944459005025001264756232514016120398203255286902752696951967074235168421191098209014734553452473851605450203448865261194845794673910324946017546062870594913347356487848126818801870735259183808390367907272198713651269112873795377159952741342667405298628710582672777608419974697064196590299595629560556000221763788281809646584242944311604341015403241618371287212411833413369086040738182186785929660060152609792043026905143222568143657469655420071610492607105512873621362987930055591213266525433447237515483179612564078677742430707008766220291814065502136019166384328748599988612327515290352987034953210752896906114040165980218828037680534871490208308719178047753136085287584141065967519604324017985891535324434233629910033903677261899140466810276148578721543032757524359322876050311716517034302427376082327100989621495063849691002902577416713658504489820755135344694419418519928771214566815068435730758765412713166542356681222737222333875877673936228746034106368156518664932281342287830424204001730539139580450340596804482575134055549046416335784381605886860227991791515677699184838572879458197898136201297053878672660688951885072200744261029707371283569426697793382087809127052674022819028803448878106828049595910794308881004695618358720934323233044096976123771968962982119916878709833961134288152620176959400345867383397823414732191382499749914065896773447434028358031537479848996761924969985182882224017681930521002245510857860384690568766364128908975155436650656165061922181855860639525635204347828839459161679812323605749683748234389055596433504292754772607193219830825380715538852177309242994131441288490263558021105357988665362641510146460711985598292895490755148136944093607176494262910340381718216142885396041769852817328208821036906125977046831405987658981426853170031066274257408280910233116815975958628865485617816146064344765193028717343009218001005873954834544037627646013824276340532946558088847737466288783625616908343097270069974817824245741942626077709798914229003500843321192397735909559457468156646942888781101010369635694686789030933757110276208660708782106555537792608816413375293915596153910623815381328891481317662760323198880497921677961104910238832275063964710076965247441460982262594476729758448101388289008410145215932988735385180730698100946012616786893086024378498607208280266924451098153916959736018212891328794407922306758412984849036563034369087014258314198991054139852269307546695019990277201199343809928928096571948285919876724145591715959557500060243914734649999094962280732089018531774166215707333892838289386391644137593974177979961906452774096579769282536534878288646972253655754525228031688471039269429942894401774415056541083924818538097224626551468903000207821275494505279154369817549666187513478319186574128952558355397407737334160156114452815017161751179996399406119110086304704795713409531582791149697550614289625259661879019404745287573343889299080029769877893086987339902732472293618765193297280946392158801052897812091733035606960882552321797005760004159044881793922984453580379746071294707608200651516833656451228984128112940020791146082742431095203360028505785103178129690111967320860994900367426065788332367599890289931746784188273762112822615043735782612823923583260235062150253881205038087610757792341102006638835962900461693181575042860662121240253081275797002578725384490578740240767751761182828022057007680331731437329013222497208953222317699148309229185252467490518771658719283391451272224391076880381467647768256051991290262428994666415868570033589710058172746117001313172720152645395750670172388733144385271949699753724582903504518511212453237600924304723995439893327632584741996602126125298056618497682305041205726830278895929040129847903701012363477732672039081071163930328926896985898027604285309812579195732408053145359995068290502816476376786162049908722050571792632644701380210327447578509598153769279437353995599069201108684572906276158737474149781321992210097946361683688376980068019326724635633139361980228446602908257497088761129076126193917988989141472036055993690883893058053593693391145031666583767906825338101549463368505270216290805286589896942257096353454924087953244983450152302310368334930834082351682915189641667157504762901952909346765505045433189157265705149877638414907912672838031790537940390655134324257931330413249480760881029104697312495453454578562643292457539754436311066043652894034438429341310299218563861969039536229361901291101639935285350105729932771839446878649027719241196947766796743216916617401837190656046390007652119612912148350720755592910178537877056954207460072534754632987591800830202715029774978915283989453325540719529131666575323092649513942114255404511537786456966234680050010557665686222565597532000694853643862230379291484856936822387490319549004916657833974366986091833919987237194725884528872540128464505663054723627102915992642785702458292237304220010398925143760741811976799800496115848890313657440481472776934979335196929160791241286804950501774453583056740426732857897572640251681129144017289388939060078622033980666196507291785808534824907943715105931869232064049673865635312813040791072222135766548218780519858530019883207192918460263512142799370069407085655958724681365543416712160070267748292362040145298505602122441854833782529199554164191001106984416061119361341572843855737682243702736802105490498596516582972944555191824151604292006551183970720272020846402043930729863001390554348608057272087118125877938449849043705292103749701002921166399815194947629499986428493736752536317521883313087108880797883924177046278893607737691470138020529227889504947811588756399045026857550561741605589946250346009210210935213094767593435082242287365273888292337423211347106010920493956173174885378022731466288416038867881534237539156003774078668328693984834802924806707192360015857192029231113417351022174559411995983544456137561917963110704018047448038094383975429258267445519775059366593295007869513983479298733887810177945608175447381355918082998124982315003735066292626543377645218316617295923566550503629887119356012041679383725200771593141903519272458016944939389392927688612900011911705588515157980783219758636439622341155912478451870829040220207055268885676776757208429283301962157900852947127982339707670466783431019043137939095674184931794875599199055140961968939225573292931938718224016540438942429761659128259606455657678962695006754576610574970349472098549641722192264152930181027989110590330653915466596702202149545429252256801199732233186299301288977260054888305180190736529316178487244896155732164825745475381614346708401825711363753394201684005114429600303082324276272440249293234395610559393307378279093954401080585108538114412665516154280952868117050960782891078997195299893422933167794620020169989849651440553369490931441566374789827892780741711709779831715225227691017629063753629347829868692728058988150048230697907349216189955367079070334793754336049453072079648770163350386612477293516798894046172089012433709581716007094122493621549649575492391338905213792848132560065407087219295202936411745114657836210811062428541807816619494184580109484822606357864009531803805531752590882467441944029378371697512638377222189990351660818503784010369641914891107162792024978840785035770140561634787422640293800063558174689957745981617176542473582133634390557463367004182631314361141816033296676296760016799422939055334036403518166605499089721637891019331493529788162093954196820658190642836426624132370590392568029404645463665882027057632649182915871363604687363845054497488839362556344690258479973397243782686679200294148942544022238694891720046655825732880233249943539810894646629386210678261585278995737113648254919492942666999004651483304786736213896107397991573499337265679173820506794890335785170348015684871190573315029433073236481575437192770782678884988301848646539821183228847745990682339746215612585382662372283196986294402520433786277355751555072010160597871217465069736999774885058236861823974059628238990617184581682392945669939404234038027152149341645806650609425516633060493107167197330836033118091222672826165364917781529464547133361395136935789707903812910081720867497056696396275052837274397916287648645576810769790438777294788536898437300360143129486649262310772749037059562142587514293266878284788078762847818624595678168662948258302682036445978850982950892525944172113535585941142399515351241488610058114813371447620574893722429491692219063913137828116201787876086438886050658708324086986394651945116888379527746353597780059964225295011881275601601791590224752139769106798632092833840600861021846713981186612051037717967858647158891192951197808206511049872092732936744466455522783331556127984651988348361976080158313179067455124100208677529522382206554614559397489786921632321555311929060258852766336700281085004036776020246255778526526697703295340069592157761564764259634743356471602185512767526489221675998015472591183530177901102148470226732502954795852527548423162615892967491280149800575414928943724074644381116109689127925533486650439477764701629556897046624970217334733680794773210861934434226421608580130350246371110894166810265036737521403282434295629336919373726378916898338751375557910265452952313728785719567272503523272501149088524011122123152232957953566814175636082796889420199323245274911500056806619067100730562113125640182950499334281783611200429584138708304541177799082829852391031652175532217390838633772407026085160186509754722845119753912039762295975960199053838294949822684160694237074685285118596668768797229864602757184502991246920648994694897742960830505013519745922277894280494588893626617557558501668491138034540655338404509254779564836853141322029616728052953221775767997329750000772090302585104432463993406745109433124358732359862858793613228624008296227815076560815539481580746263592719106228645291219548991273889934768984063069350153058083956513944022963432325066622429876592396826941031130834151196755536137839854221179219411449561916538849185979570764329642673697459359381066877511045939056158759634966179567758163129073143952002117162416023638780963299013296532470378593865529140518948540202174774349411807469378036532613139946208945557490603976970949550080262966496879083392220773063033152719944794899781981828956639787262359965053845084022616071288706919179553429678341272915563450783929095549621763780941447603926762029912097978526101261615871270753558678860701332296829374148009805349019787651172350139260320282831938137530461743861854870731522878960438016260215193212969727812501015366095539593948266297850096472147696304142092856083675536971457674465825137792689300349829701876730953665615409401818121381451571893485211413763239747591249359704551181113512626385218226841422297129057616723362217416385969594285558415266032581735696873478715282538546866170831715678979869207966852972793852038673279363131109701750909153639715774785466923898418800085984984931159137283608134143739359829734087726813881576316452990400331700614355158713210484908604086309955458293249851269415089658896620196297444103033569857578797191371874747941989023985576445427531759127821820679194009597944889802165519947492975107670219496596100713430683605884398062502933339291805043787495845783955975219184993991566568420764429764015770263734973607980438943732337103577946294959569752864241690766716259743117028013043352721392098297795910162931503144061676033044871310888930329252095324604243871580713741133334967521894678420435201202978051017155888101407279033709013906082962325736543490225158571597343839643254968282425392777124223574729796365147462686304216003673739057280974151802633253647788062977836503169624788766304946589041398145368298034964837676379724030131546539880841739693614258671793819140481431262211849010477107002065136340198652981582459549151893608860207754337442587939235037833850250116772705272060991938026117950159381871004394529824786426117842514617256027238047632869979661131161471745987885542037896030485119369471921087749508553298386289958503777799044798797681917449414290009803597502443144572163879873259333474843304573940812551242984793772083829886046552487144520681203144328720218249171333241238941303220359557278051440495605813651429850986160079051007464455743265393945391647302445540904493591899500930070180617233371679820223173261954298686552606537659624069393912796408926084161148803306464994054074645973148240396568634321593129943937072987782160027095587125926393806265309063722715903021445408278903536701670981523898327042384001634810127429889869965938331877195079369730835694367288565061102509453520470419059542468201989827961069973226213662298981673631229890562473777629237557610116540065593852372739150669064576794639205897165228649774345022842990140350888083093446181683666737157251416382605626840092010884137838892076012300086402723310587403779229913680777236337609996334549142295140263407406950003571920163554103905240352907273269823891464585498060299271219716833951774684572732705783001650434385226732890660418884113825083413613799619810169705273677242993719795932611776223445398195320472440733945521293754849964621282877989475926355647112480984478863548529947684404007964540865343117844698666996315507153553467533182789421749052954084700236515593719130070765299532061016462428460575445913627408024944264302474203872311368140350116491673880339796281288237086263142996777371095092521166966772840005669652355331235727344712250584933421000654380467153351524918231784616529971025808818016446049994058848908523540861518389404360719340671292367260694480645999780777249220902903299886244074458697014205902219888068460965151709482306000964657014364407668066372796875694071351567827992999064907906327720904452450324857579280708225203262396833548515860693145978385283616945633618631495689530007512520542758340843376543877357558113323322445874169130446233328853040341681853276507962953325671968300103046626222693929242338176147406217694381301816446836250602887868826388486228440768649870505438229253002806584870404035562573256749520111431937547754077091962079537181488250616630692548318888716236852515530034848108075745353475665069108998902579006747116536104463548486258453296011166055248123665813348443402300430338387669473085311468229529009285203397072972478459503263973047096928772755667410787921270676969143005719162964677848426437554185756985108165871827151474955036156500371320738054521273860737134932832995030066794838104667216961316674556498386410665538519571147797989780405313153130469535595601250122307301351300722823590308974131531872460657676506927312075405356228053969566709404554331001699200934016030151096703008070870330896286586954811171164472224295645926247022843837363168276182638145452738190115715089522016630099555895255462206792074276777692308115226475110682443391341650025240406933025859894563392703641944075301039781200821821358504554735215748043870509653774461478113468716565558883519727921318504550683553943073011605036900936296238783640866701294439893854444187850881588375087629000114446901288812955855677523752130126598684934324220643331265915748872953995338622517538068215345051124474409469110451163239958515057551301323125829401236747715157902678546634378329976843751816713246639546430207887683845141331311200438362723014094728966779743948889034039333934771491655609878440626123581223512954925625958583191636244844911239530153657658710507880739670881097669121051336720210884909249834814108085147197931198325601491340711816926301653771766948863256773850811309929392427973112696774583490608959014679711219754532868794910038496940603017700564567237710534918906445065280295574475701857859353330253437314144205303581894725025659741992239030180855033384792966237076723346362903759950087543075025796397415020398849590375857682910017344100301639301901748485633064220117520177885798427457959125026072781470357311880310825407223370561840398146430866703020132641399107350024418877255635131802012518580814897540973697308148730540887173734744284091929164342430214021024496426392873573982403810584200373458695310703279798502293094662680690179272417870980625238297302254926742717401093133908440060317715039883971756517156642506614086351975457345974732854603525770816373023908053873158069228053306986610717617047231894172238541326756768641085069361977285088089991205932294730248701723659957911254740490230421735611643954893538440386619667832273836309911100528583707824962506145302551882569385163576399303075590707409177917689600909421662686399459309871665187527628061216776559917913026029060977988760291131293858955350180182828228425127176741423279437724908344684215709467901049134293930277381565935133360706191251839663489878904947087264413445808102413965253897144390891777522524117802201302868874982430162373290165423895888029875750062831044553948727701249308315249497974712676481104179236903029325649790862147591407233856998568489932072281268315037098991931307602227680917759601941966313606533730305426514541707897265642169499127767201935651871297423897420077422706008183314686892660294098085839553303145298132643374294839713715782663489388817585285996432152468492022170504236438629715317037861202578283032547239685501094726486865273393613270531709184960842867973063004361654213462676610101700359875797906930339862232054880264185324862925109616879659807695389765453614545744554001652239142481489297293814279062303455885970122387283489024057385524642344391199345027206577171521049912790899211699242640970409416207233035180394969416889854265615303280722468255424581111427009573232719015598853789575571161924596312339001330368923872721527861242038168148964678214166675876691828545852443941373067714640373433094041364476929357303783257567547224604923772545306631226140550175638115999431970278836561469974535618662519921774758789663038802204666776259774383389956603904036282986148270213861905360663668457915145149129662414918969008081530393987865583853781157034266034430482255013197866047676271115191413296063961296795675148556053596642717304064873387754842166807326793446827374535661080150860574339919862152957878761118559244723527131690090073041276022927785720407394928408102800388985665402155563337562229145898264058171848809035219592322984559130429169463929579675300915498710901410398873834792493628931057971150462061769010546893013669125649607645304351910533627317915600645964827476548057231889471398410986013028648665616266629576250098178394457435203044393794916318616232450841043616455539817023339682807540816067678923505102764705204099569714819307832130455993225562257913369017793709375425041782576570705962239705424120671641874246415575661781751832110091304684626487177650911903345723077873178804849377654425394524714942409147933707351348787631457698510024963047749829672571838957837846494786398544023121454640702316093210360555946195476083184107815497585524494730483221438932052337349758294772936978542447331921658533831755522494658487593974612031368176924912879005304951784037075161061508632843344567384956658915034942405200789741383221214924671798085284634286820447023050757836988286573044737017987549883391821644363204383602752611309004461003747799027949076124599381124030515161919960596513900779096342935831190343056243567157340950561636287482782058761548998813622840063195305211195201780809674906704976589428203193245913242559617114164316694416180155240661886331173995068796433053778155380972229297459868674364343772446022500821701314936991814024542091576768395501316818107403428330540411268652549868032645793231845029509774520138980553581941410191319848338679855548199401716615848836305511814850491864675639177286330583746651251909951762786218221778373921604284381236585503598776831679883056769176678640376960033967280640457345259752019328540390384327847518556147531022636373359384639799945130571977345685665446742838958191103508750244754207501175472655793430406416448164000185489617235736987650305802091463124400680506656182113202933685956754722666466024686854200803926074056629829966228278866733063059450655032884162938829562588755409694680707065812198050857892405667820730191320067060364216836491652530606313537762548308959484205360987229555827524593150094334190090781546711225727107985212227375561583261306103023920531679278861411832982264597557653404542346104902957223958753311957961950228946050308356974033062198482479375038973982795389920689718912962709702681601799948823685154410249063450379330463850598050030636893688509215960924934546170186966470225326193881930168212264843687779523961813687773501783987601428306479720848366410773287642886925358714697839726188810338450333711815171148471575357282911137713631319773065821202456846096977749219637968473749691094564421462352746752726128530180078957354303275355058900276030667241710824277977227327359006266638666960135223025608509729963153757824337925071621720744063331379638306775171443926623811455393900438867851842471758753790306636660932688831931210323207235140907033605416573068508220906033720166811388503146846445191695043655886615212595069382843445815287087122829314072755593330696996812109903515910164212560711075765634430635117056731674352895819475495216114251931100258904134528307090075077583181812267074861693705113747405144794546197953017476006106793453483773940552135929988183463071545867982587586043173404055460118233649355330635908322439166680612102928592930996275724503127489439030729642963320873077467150077733008339343158859637012443376957769454826077160976708615481666794238910350307360904614604413039687136894886799835087804068064381621772406347917811916200629577770139937093439443213074724972218231952125379413260275336745685586088441059085112302706065537968948611903334311829339108761930756185654145709689387436957061234280197733557389624076816315844335848770733607207064012636724168412550307698300951381957688615124648660191044190004053873335671201528782626114531444001949050115641718014623553077300334608021767589156147995037146733274581502728112721182646692255544413188398595093341962398594556130781849476747865322071492014140435873483891207105258163644906920398813879272899285398846067946999733862307987843222510037432806665926419930608469361675677484717995553822497857465567250556748949309600038811163080502599000599374017386660470626212388528481701094671013876835220025370049094466710475579000862748699830816075801005598973977527485320741834661939937899976107539930251144261568920485519723078407582278483831308223586478168286347239705070337701551080372168639415071758912025235200309364453816100089088130502039163083934115910823275492996997841354483322967187542418224655200379622790431069770241676548293949761640495030840283098389394260224304616904843558047477224038717866934915392885786302298924314368417304703015701090308523060675037024472003326413487285601003219723656520159094929341482621229998231733207306487960120379723086764731556363037609293837342346820918332034208803758319968924099274936352907356498472392751796483564630870381131807445271846223458597944972284318052740625000578442004830052382387510848554266486618405878804308864120681035919898396098727131150641081845490455579927609435421840067176453548615105282475682962685983089180602937728298792442529438708541207310252940498327891791277490031521755214882526034714160181953845430901767118062521836875819415407036768156157661817204779986923314640336138033465204018426158039026418253309161857224684486061288736869992720274162680637666211206929034619695458113643447415987140189211660466223092658266159054206976394359312366204552875603421650034736011943422561491403201579417118517154275639651730932568645384670954524837130594898582559745277564378372093903737606448757805380896666613991839630554346309435153154818588677926291272536342628898525685446469814497461892414958636636719814006506858886086022423095673379881276879694064970299154524527213257542819532491731150662085866520774909529651007534040492273530966548282957025690629358881690414651069717772420955446130258543817863048508060589906373809054306950261309738424222705375354598590993266967332165151948172534532747333602744725852724539478578704905484758633113098571836633235913234758825934064152103907287193632679637592847331316123397815498565077459574263019250130993613442181778657326845949803925741969699998764598249567094095595490645143192997532969902929018113346310084918939731673374047376102153497902801317223379127998639147101057364580882496403779366914426022522433101291822035969479652296324150462593037636643284086561602312161099027177979404824423743772421754532743631029030749262617258880652233261410603381653209323202669910870847586819856399049857501176199636905969925310341043687532918190720041575982623454667270157369711333570414032093793451266060707990655868796161579983104493410954090321243654431087316158637572737481745017866557379398486692291175992043422476006485976005431059782806294187391474966456601976892636165982896565574458040991426890947249706735220470116191536009452310673632530666440201002320187322781976148686634898913273470144482032429311784100915283333037691119705123107525118902970829429748839813714997780527816493437056043260053526981069189865886898161088992699204345431087815535740465293822554757923965125781698498673421821853124073431152960821411209199994061601015821912310973730165017695811861903668977927569046785710181059393731438811929147494435652218962602863258663651903110174536592121863876810777420915836469090916518273980753103066499806244849277475618845297329472713914831119972684077858977868656048723305752422857172473443666741818123270841591791478616819780032875242194648311201193159379351523941740904190984125780990903889407794204672704915345000248604274553073068364722207583113930821994452347214521842825620929143768143878021396936399786022126322109822077357144129412640653765231146428543482970693655116806728306148155350067799273428746717408366660205372922048484087025230125857179311514569665795239635968627064590372072680587943981340066767014117658125223348104838686771740587973689613116559962178465497307393409546604314586015404956157764561673447212642746874614083020638793598042849662231174722325504660952317681724586362611284833874076507582889567745895887361095197420723212623335561519338311824717602181868389530067975021207690438838128356258145012500711902715651443462706481495059019699613903119405607906737260724112924471994770283848353186332981761999473128331449159687775042903279770347619380631202955123840138422910035767692969859590544398289266660878010344059670559052076683702101595219513945447312173118741072352794560844354946676079288268193567646665891613621404247856427926815625448506316685268323122752465600274776524127942705341934828054626702815992453912487393755809401259197783465336557356259376631238087699752574602702166964925299837753819693846254708518861510475226475136489188335738189169712195832312468100419576537702119211827256650889668246750486669965988504204119161533208988567238092601814281176233125447955829428808581369886073727549749121306874374219430148667662596916951953688569117493823196975595531267940217938873722515159971405447289708395510365486662819650368486846610392745568414363590177744038756312751208077145636487772844383315635724968367563148103943896809211928233741450761863056577773779414533303128257820788793371355232819306677810347448788145330227671159824630146773913180646990171453231819572964031291713829934458665281042390292044042050301085037228897072266732041640758383521162554729354209770671865313026207629467204363364327350566320411252128722589414997628046891485550759736146505117641257930283697453131320360465061569238119721325105618061345213438176817327628414181021644134170249175584365681145479777531321958280662844249750379174772362042042450573630609111548402426995643360035301436665975118280328039534313321054049191030567314210754130235793487723423907395938930043689132814854688219705348268064061334476033134574659090656460980097171769957520437556354521685044224390827808348072156800312138051374475573866335831350661289825695253557232663073951954063697946913927391950929709929134880148676072714978516827026905071313607678965765304404633626268887226274293120287517384975542143150499890745646121569554253570152014746263137587358829154486936716821097263877036692987627033326926764051123565917877363247704611611875283786408831380382801363490414508513182955873803365715923755404374036600943126624937447350183694088350123180570255313910894184693666883038062360436168998681815046281454399370843946723795281953032886060996315478054110533140979831739104819179879337630991824007163695359256783586699908525682834617999204484921582868255426606631416948065905588375476747789006303076397732011916264419312313733282236418119343830505865855449829986899314211466813117119421891601793736025759632185321048687499204734702994267871276133342376683428225657565013143574897202803431803206244849572309739005715093145389184344943828397373451579980515625916432262701418631442062369447593021410508502812036049109939053684780560216627046368552572741329060422899563510252284751314590703082532738499555533044957803309025927531635221809889882629115980337112570172176766904545680649223146305157474689155717101756724035418935061128887302404314431986958652186676073303854903602774609635450131479525296534070301597032409851150252930588656719011250832847149680648943813007837186239244681790216217314835691228872394802164846473775176818942122207103565559650797948449900827193552814791434040371387172083149176090319885645874610810991059369177437947128793689503247741864858064819679956146436708248708993683931505131507203056530300788685982036072066991673761641475665428771935359104452116916769281639636456297834315107370647882740618340543570774121613832028737879037858589327455361495644612550505547826687454455090883152688946927185988949423449507483821850184341303236200466807001917504592628408385053643126768698034026831531158070981034589860413084173550995694415179917543233480633073261339139979788000382109132766014549611315415704285802816067516233813538630524295638330950320192878164132492230047611795358249560591453000424643155478806213024689786559692629257635740287994013569211675539040026996645560256829723695049590996027170931567381666168678004832729299059428102968161574696306060610106226717021253966747951389381374853895351757315783294513642600693613777744000566993017402011366773178770446945060129226074969110615762076378933450413158373365119560032907835235964653265747497435286721116298075675851083850160699896935867152259646305700931591390876287416492541708169096847309548860233298288800101652962808976987723196907421027009348880934455316051218818833651978431853559606747635072216117872873563946565543427614068559412425912141707811630308013161019258762199380989589430509396825182771303303349266488532956187952664463190634938964927974779630581831622377606580354022796691081809322672514261428768508550234036395970562141251513762046722444289799785545316341319013720560029456706340382429917807512572448446357715258934722336845268000504905794076592611834043164627646998353219893312711732710511293877462720081317263208671247247831036953250571166846693391999383831653416530133092477294293584707438826342400701321713209728274947961163566782615071566282502125206276389316675156658513406045529010926112638166224236689927106490418862700144211287359239399825005658006432506073167509458935850072180729322308246108258185874671334067334432680515475652761122900942154655618310341268731680172286541622690757446663740257850581983903372668539128342511388977610370155470596978428438121104166316974964236193689840635613876227959545215146892881328239439636612945013878167659092925089753247166912363170834827515460782728044518243453759655049256806485323099928145147534550927555277962794142455744052552131718825323955625085721179963530195675811774436762550973197511556514845137285424074904838081995588091516317211793921910426190928485781613905148231474455310151615917841459994712239051659694410397272957411583393173745939062050077580709596765898924961437343487815637744208374999146183451341178572135657651002882165331744378838906972299886294622686851956288323205705378942178959367844899972838082251295857374295653148704317530403219543301647220458139790574528802074728588103114085879874721186328648984473405311460440048001113176896474216571999311588903720590031466418126179209119408878500667780109991854619093489266918509118998531773281758015614963442527274202132308326262537829753747808496486205747377298059504902145550108969348064317851097433300599798555320331318269175191591950065584884365516563352350794974414869955459346826667617493179841931923239198584931429070339724907410433531550716185771284452704556151487208217879010758099459907831801903407684845590803485256121124463883238877600772564059505857614506172929101763421062016322763133570318186984161133384335191595521993423910456556597310082316994799784563195983411430563705888413585723243943182599937160845154432247333257474326902932111340553605260907241688375335436141287023423782527089538235731836585165964173281100423670224794265894895420024627797793098934507602136241713703106513275975961348992318442700470471725333264227742623475663202251798424952498212765595113945681412700766231548515825735963353185382671792266993633391806685509480289663970163358030635777920615129299586818160233278268287561386953431868983385807840486775650291623281022321262862370364711672590911162207449944470337154671719355796034064318795721839913243157175868905635782011935622777763421623672475667687617220610152133894288442755463803913188429829340970637684665116996845497749248421623454987901900590122307110248805880499208202673415213345231896194822718040452465922884429554190815449214580890457049392729832168834134299536825867464108367284683319031328743219812300745130314440076835740244627809770130021421871235118844390781428645714867130316274383191140533885760388529469050776911243964028442753921160112468485588590871112043313698335512983177044754331929527351180945626273650721342386754878162350966398758989078105843337220397544204986189921453439457001319307669930233340450706235582283219793912107163390447845740649596837368359996102705598109343275457182263194581916273764083264919446339254141257047278930012181409950288177663218498545308566679007037626577058331958273174956120917523247601272848854422298986799882662839508678945771438815809675505801148163295101341319678454949532484743502461668260490860543498626070769522068457693088810199363886020569081016645051872183197150057434727469240045662801352442429043237968476832649959785995418767960988824064974266522958440697231989776191462648978315102874006697923620332060404453547944198199894752531957170520855316177791641077276319946139215711774029913555501516709796619652406222291416099722702986540871469079193291110174604012065203200811903347933507409339673354381066776442516210910640978277403934724092269713998641932401833676257879532011661669211485708440347311098577186041438065703058114089652279903370706792777717324019606366905990239320266006174759660274364772334171321125640695730430073871896976082625377840761689045650369641210172605513203105063180587830717710457167891720931555100513126248850749712570882776081846297351566606413813185775632049232194221616981981833861591091112129640683476454149874892596769391552088999743483482510977171733477320548490424157044765736574577528870313708739190721825057729931772042125966177890946278107374893967275333206366949775977576140133909640059949599124774240582260227674347914043659775007117490687276269345637528732076279153861033480986929574289849008704137552160375946787643984362695913728997237720073145336673352699320868366292608565705839038823593831189614763613317043665297644360749401649697173956600232484753127826133209511627451693498591497284257801156635401125748838344957820547565134867525353393094929877785668247383232102471363412781566382459050230733983253608300387302483963995418402866298087668996005436067463747817597321138593200109703840094329084825214860785580072030283926248148421073567689436508478291723943135377307833212382862045256079371434798902477544800015738911657789491143660036793543639320677626302110521521013592132135469454499705888762836579334060613239110233812347891165133960648232734302761158534325707822596745669321426399445065492819990540278815070629903621350504523173250136706243941061807667613786614145637857660443215207492422926977034984501265149216717696331051676726784883729549005678657239784427631134732497719890632160076187591408960730665821513844913456155557115108451321597382911001114287389599461623938505836032323321744208288145043391507378081863193720783803113641758373487519765079335205354261064839646800228318032343218766267824389703438282856767409938801224558418282506165887184191773971348424955753553615428351062448332192821141075660967969951048252279421587069315186868228906599054454289767683407842846866351695073592900322059446525171865184120454432711637452459124940510317749743271643304786104252035794032712103848084464363221333013715290149884275237794983457479987528151196515943440298872149170655559184939637362023534636888232221813143720813493658980418852618146166856463897428391505955837039471238321734527348213615696128326308322351650382152956508420824710834855636841528927797777756366598286215650221250746116759032116542096541473224012294283854575672141738992979980052464181684733481802173252198821195035184670582808429271159259997032251537509747900795093033188056558010139808122984565468161871538579928128610376600684408308498397279763322670041660306524614826604283117793289355874205593451881326476050299179833827163739598602358878513460923227673231951588729729246677097635098946770140282292245909364931925193174285969415236656465995111925468532288864800103777931630738794443787115163435808683855098036167341177467955250541569632555175659300110987322910343833359200752031771871321169429737366650481616228139743691943602197933189113714775792846048510573230454283287481793287227871096158968260415191032160358867794747925929885099949904921648497138544125533932311673798326983742448741274547096206337139047404836079415752936336390448179541411173493620260485120123323205360554368887938629144807879100525559893282527733543592470673999726922739927756533972566967152409673233730735176129922142025550653142954908742617053358503331777460258915289378865430766613971869474350204632349696687505676637825001336654434120149780395334094843058804080871386953158989175443230557614844599297323512872562076470023808833082557863754480673545385987638085847636506952673628098611990040267981130204613236010194459803592743530574492962422737733955201691580053320669755130197311337039125611913305432979416932379192948293905572679579528177269687932911425777320500214760199698152202061524517942389845818526827978323897974405416564805621008330286054730103160503201457405188876198453502969999264657956500190448278241733239860954017910370254638143624452508870292266392336640435196780035665454436425036250795296489213906564832404140182736971450214526431646621003738099504185588748963082465740733426300253099497815591421287519705324127100115710171637749883378795656865393442661195440774144399248742320604226615977147800654896433496233242583962211353125728982013559848156570204574821091737378662802539307044655436889747490658477949409598132432244787432218660153009734548024696172671294778795194415134401730118832367448720447806236637003524258324461765683808485736885690237092290882122272083417008979129256543541940782689930557315191699011807050183245958859647404813904626097073419544942270677540335371029648360620327556173102159143468441553909565909732464654992791537633294735996020089802640794682925361277898320585360585618611894514061132224271286111668324767250257033634886315857173971160328821238663749187456626042953189852087917692798532059687082732060773248204908756249762398506391873788063610737211590757336298970566574688377351598523062078348566726739945032491972457061604170286561431266850797557168950806738619613357613077933856652942611789955761282203962786325016303669765729274631760052262488130026201593446959933230130444390851414406961294909514351132404372813251803780305270161474596669731823396165575509100944772011231301699270821104372848353646580227984353176432528760439520807362259586407873458191531059455825240310753772157432145713447781843098447499918919885723325348815392190452015661719255542998753345400238110974852027005371147123897974701015854753862680281323173254028620129038658514423644864928655235817137202938801752941010225202856911871860796450108765298425329732551631174418650752018769292746421061313176203085067906658825606161624512329833385602122519961320728581325664070209062312718344848223007894040924391632745240874566781367355700397551427807392003435331321282283257732868954206188188329141890423929582934929305948139194192101543032435674476992430684895495202395456432585503065047097125895308641001156968732728057534628882092894998037694276715237246907452768749411737611325924890701919879296423247494837186391329220403340476272852904805702005887722635976788174715798214217643260176643490054851532223351305020047426608426027581114308115877357853681413656836671339174031607056503732619085284322678216464359301519207099123433844476197489701363751895168498630633471243935719934533251192326243402486722685096712244422809548620967064207146038923593401068440047536963864975135973583310937832603263019092515744319203761229377089055745436284773845335137564981164123368922952288866851999159162996178632647208191837173473070068228127018606502753029833901466999574794461070267161116027871706500234454852655326531804615279803013588943109664382224754397716230467646353180281996449375662371151160519787587083429213266467498000152971410916725705796936154875615717823583111771013590125353955687127457997201759260654619032670593796089784619027221814507235879548427149913315039620305124110916504419669755825132181861783569427326855406145597270535238267357110231808197208539486018220548268986636028695668183486685245446144084069523269182633280487604446919008266967629645490754572236923327441664913195564864399458899338775870098805433132708639985540493230677615918285928743896057804640984208974055068329611397239222226979036469776787551730327139666447415747265846547806596395648953581955700357971668912269469927151284486477227398117418148866333272192899465947060089211318989429677196570486185276861342368815000041723800282976700527792276554084855432733334861688984973871867886189873232380042400963864067984351716251126972592465867872110705380153194957327471649485062981579894694171428204216416558665990728619849384917548026958461964229477931498122383641533275855703808978900761390103234971796963254719656491227455826354132341424364357459474929792785696077635932761484728012121820571237229125443324556605340748495181446769058959806952003492300124986619376210850051327723644254782643573382132966096697316535354256247308090288177611337397206298364305054086194062218385023278449854756687212600676339743731532578383548748244097809739336148731020239045338094741597766456031376832791106298921409016612327003900505022947613518859124106470656031298014608889949278623547812337075637352328043212718006105308551717034053603307376301871136693532176984282601761121860063584896534143606709141993281779246409721142744954698914635554828643401104014722300847400589719394255567755784403993657012637700932822330401772015709714022618972549024996396256689084858977504157130429271592893380146276281780424512433328346115672917087218116986695871312610665581097155155569633481984422493772789984900169133406501392255833284745253644587113153774964284515400536404218597690932979007200836296202467322396588374131752905866262632859446735210442603791931521103560615613271779583324238941011378308624546295140958171894165381882609858328613625507028147207441010322838569770121266793214647280115968243771101640588292038122298228255056488503287200090315990840966980142501599597425610220263183617255711149139214436110185338455682860703157664486032885768250919462158506950828494085301806644991207142867598986688412790646539483571531979162968219164287328962691256721694722877436722690746310853419544061133608487163008322078153715481543546458370259485036163290747070730275849967231328096016293612335740850516758670470322859872473980864732679403949139379130849732913632414139029439284576638351984218676346643018086896069214338319604221009472098439766652282254436830329242220547014325651194268703971992934248063911831147159679288276590160658481161372294419943326376901683293222434355926079908820340023435099058591392977157604947270770283095758427070913697704371357590202672232947121355344973304305067410370544077345958430922769374840395638204885926470438636211199354225500002561329514497085052705009162892960498473983059770893141204198377018700063858078442617736127875809955159503843296666207484815725018212354082543379820275256807457417795530258946819457764606537499326993288820539515132978474085147443635682109242501710525863495345791590287152212995365959158076973734068649381356148346862329859397425293493723922991126095352789014741520946191693752339607918005888183785066885788221740893022373299670789264905590178357330290498610475662408840463017442091646079276592403350052136975053666580334050133003128071242798970006273729152590701666746437245667874325600195554242094453363343939195676804590871330330198344796212966325811637654664808900711247402815156434346310814453273397154323345449268619307448373533302290342429022706323445090815537951237757161049271217981853535850994155387182194494270861149692620822233038311054505260176469442149847969162493833508643899797943725725850349473321123642015645445958323210258330467338212082720110236171813291628134769361336231630005551854169945123703087471769347530638094914882823305318114601484735917650196830571470471397168054171207608541527790614840815435277054711138661935519182533065549673768753756559018915892076743526148852937632107873123875720648408237375303288464023488292875867330745751741196425955473254712998878441337697174478289514806062975015981041096517924873725424158606070923308634345112218051515768050395232079839070384455908024897675124281118683112235359449536233280515642845033099116382532846827690377989405609730496598216774794290605229064271154090759630490750045786694806442407331091416042498973639622383553426568824892490309401353227598292267618021399446801899603206758034293979473311950058112356339869727902367019776289840733198614297089945534090372605768223447488692010297648871946133128758629342131709327277769165187100249899666585508381133567896174811392400806920441462566538294522339331315516045948248702775240265603080241608406335831049915931308539474269073234720884119182024847075732913314150721245446898526855311599851117939381080209773473817493399988897385653699403875952533621748239471533154783480058946039366591889289962175210471630466038444412373450910382932483894560012983649341732042243331621656427582862696462987054943708647463427711852938248043935821601986070062171196591832591807574493653317566031905742103306975370732230140442939136072997423148218620571279724084322974222530647847022287728933188891720445413641683018620592669478106500157727303468399829551105996427519834420909942982394136155832331965388406852983750196100267432796083226766089824373992304583819359944552036471095908251899166291593193320639863860998442524559194442374098076505561175057896146435919925564267596311962778375128746537965238633216525681695700326964287850720184716605737922725209523210990761127024194913962807481696514943204319306332248996967523523778013360171535579415272267440438354774783461541713610807197104730886023745031213890083323132562431720497688680228292550243349395991782746769594115544309850361643131639442573259674614175806633243424492506040232202802946987375182931270655413778298861958481093502663645207509319615250820150239512332581069618830208378779175314247378006661366107125561380956875490976302248182547336957774425013633346503326527296241951503070016298234339909100061555024946737128843219723533994529380672234196217016163432924733279375744591466577156266828511079209801382360277908524908614061323820470296033614212396789169499234232332817152888329799391129466525384726864053187319793226777027601787151571127131902216836416945329045195203329461503355347344697871415224470877070845614120831498011066671652074655536718787287374690498716276246833300530857583522804191995607327665917569577300287920706287306356228290710931722541244102899656219439303333139359793127298249018850599820753028058182687345362620769884288389289635517726997755270892807119838323332712641649813585056609297466819414332203763601603170238645401038041933756887455935123839827605652993733339694631115736236765803515756436802079790980697358928950333631027509478478135700064703167653179843748333493859319928446797050501465842227782696067591977743142284898346229638095752245329234359223513044120343335590961012744858914050582747677591103619718748112625960272458667655714727549394120555133622891690426333368208357399520615723946451744498991297021106570959449855647567105391013640465590616591177906243645957333739346071857771170611184517001545450809988500405931558750951206165545631462007387394433274391565408223338226551667114981361350737399548933917480863741966480932781710026395502591404777519347205269361172155233399192894891128512312563105277097234938677089309885624797358932759808463423218516249853050362731645550334086002448011287948708902187528734539294131614662088148268086141620159155491220419860259848860991001003341893552198600427434057310121427340294759435672697762854277727675979540678321549998708026058381328690233428183862100061003376423791980019442370442063331998932146516974334576991282231826114090708986144154081334399147374743368164498243252660816669669733619695332127776912977263579843015097108158562779524101403123344197253995009854837006991572638174933423198417086784859633091293669773835628870784080023922357823103633451229231334313870871375607264795530687856767876140867978538841839750850468350928414471968343566924539334614539697267038657031729624183897923545368707062910535840958625288172928169247104639591376543397751033347303861869054162785406796718856452314625346834643002030663624300772804183915050483997746390652352700433487668220337015691585237701399054126383476484663841179107634163945096265761345248340913898753793488871334908440822515024794471987688839920035737926073657685493015534302684384838893140272196682038727684904063350507864149839548386239914432710035484142857146636758141086857568497496424920588569843745946865744801833514934228027958235637756438826823262418776221622607090451984593267734773501828543606939352416589601174335250737611406406895988292994464538186860664747288899190982296017892978047357912479632186915368703655953353294443349954251605809083049273594088101251280459106505047664962675822241339331580270942092343548241333547545730590871565675676701092095054671117837732104759766979436357024999172477640990996184223422593896335568469915441887720946530070344371831157287057320673987595782140794073633423608496383233359179022771263356826303276948775320046801847577053943430079511966677524396159166308278083959053832295112723382075507433574153078897776286771662518810911875351973300986377174786188154764116022239030319559678981537333332582335898360045188973413138579600929777458806142401045915014782067973943636291993558227602367510347827556483359662712188255528531782535860103510822581450261120474709240171860256469006846173176799057349011007272833607689261945275883358758221947384320834578633052807557454938289523900598456827291413464323488171485846336106783059482601453596876215967081249553230576378156493445652578255229382496265751170749498866876544103362382705337408989210403686773656045428584516950314022323633757026417965778520817544892465570992408132333636655786985264535388801118891932862519259222135566768155760927630615575930662647392608983278347680214336460555713159391575134197362381437944978888581196334372829232196632033578012611307701085721598982028013365245270141944055108211091262826167070806274271062080737562374739117901880630391519189825171866613757533667275971038981146281320941182432120115782881787555919083128416589810129599397245828288503470905302829336722251789724313294878973743215073413895319923645094033008944417799497855061146956152948565531122294623368352630605156014992464164694165358171790659753464774747518944903388637694549101338475379570124343532833693214492982757320649460057035879741372847308556850024140578069949444209656454542067040671269177034205337058935459214751399465865637953244989394807296345359598977325035224253669755202625966190223911374464703371151563774946817344037945328859539492677763875590864797247808868006817235585313143563297543176604392533723838540575689974298509517127782488540660920326559828127019571356428139254066130983872519138828743230337338507006601992157068887156531369864586671792836573552565862718814401443171436793748105969137093212163374806242471623729661715393439953368054145698679389717848891015986030954129352987461691091925238097429433754551488558318499498594795902426366425548655563314934689356150341488374884631294653005659807467697736337601945598152863062761262676635577359767581138421612373314597087298604713841740124888891879713327363623377625113113346765376292998408903778952000085393997635847442819798576780721048963459907780154266971745633787542617238402203277336476397551754916653384472733685352496691562976924834362650474619882335945593854337923887390136417704694539579811875271215977684425117995807169454668617498200389141367574252951992353633380028640995847738080667594169715580833542623996679137191811974565095014215741445024655942823086685483433815475504175328090492439697577338340692003659626982380632105842116831153608063960003029834869862501418338295196159770985309893415906918264474621242983607543464462434641837589126993823538014384957364332358903383880340036503562945098957173182119387536060403375025733118252570466934470275756657246020243435805176133847980430500157661220685910711916447836787755287555765149553864629003147784335242018223228186288983604338599556710094713073625117504656828874933451108004370570085720732275083196736841092108726460308626987013386217604409040280697949111839643660521843149230735163158890444548056797832255596285773250306390738623733870333133937948649073559546851796504296661825531052645982451735375632502837394355101805927205309010514338829092433527312786900151513055874053955359526490302813127589266878502683802775398087841969542444707593389826527714763680134451227046469658616014050005981355426600455530412564538564899316031280559646970972733907176477513623793186953564285143044563012761042826494036797480293301901344399860928405868810026888328339177860690700575222916378845954295112712364162904172492592870335181217772457206347444140710457987011683392348653894086087934642885814053237220522033388278249160655075142849889502673047338689414665771519170633937007154628493341305459532617825762474557786052890705568120939213636020794840019045348227175019919985339403517218198291555373940524474881608401142868298542198154173994615194467566539911086257026617289157213395161670861280786442259687806540552408407698092622979890897438864871881241215285862107144171314682739433961512454023152718464160210458750969483759431807362021929374001190274750271765673435942473670661803986339777673056064018589905357512300230660837087116869147579133638408623253843492671860661390466843378796513398679007095096077004454535563136240513581616173843997008720780057279737476697330001951815716651448215633993406218186569555695230599732096135279604360849164645440098534029608616745334380968998239436938249495340050947169541670641283942451714126019162473827086697693118069609710155725814785319462574614535039762603401554651254350214524143432982492413812177132034032371867152062735928163374410315471046396311177083453534020154482594576086659775717391457660958775366724984051724570082595821245485219616437893131098824817003340384223320632885004325420849215944237347069301246933339188876395624142540683244296139656862403164128403404305878256465234281833656651895855036990943259530942506080824684142553143703739066510989676539808735834057499377033458953019495195170217522645207320360275463941311371161162228990045708028475403614063814770340689041361896398146793609058294820541858067653745684521520114145135847400424917141834979108526755786923407364608405102964056854716291147960516605129860116421892358470677447836979163436922030219888963849015234084172648351087367313458395344215022462615533663361483478643233561380530074966762084287575307448476761340922129520464026842561574021989849634090361092184760431288829692663808182477416243214918051745760516523410767148595672360585448148544021329075323119337897054213766925989414624437580625161532179973469637179634114554733535492490014056074366310647417667998572569863025283994443463799305182425984125798358649590627341289069536518549591816028252311296488624546624741498780234896199049347281966658307147577253201586835543413707783672825756239924355463937745447797338296029223953910136392484245799089520465639804512178911186834143684611173674956595237321588319222476966429594969400736850502840377689062658085002467172958976399152341588552871279469207921220672013205280939645226322708682212314758006603178586184106934504552579097773953416661801233418741794136221578605007833903459125252454048575436327708936373481376250658388020484570153234179172877536585102843043037380946458279446317034769613448682880549387474207836072091819669560779780786341859557407096044302978609309079720730749607010815586850159480975343530527293411617148317473396610051753419217002301479901086903452297704877598405728629894181021529690074555659724334836185037771505508603301134201505317616416961877236613812722787109865173452038573787302166127222580623945634238951182710638999382342181939468089089171426867874887032369742369825435588883246084582028402348362623588364349326648017559043422603428215172195639634953043008484166217827151449459540901179448852595049472655691194579203679365403734236113867493761913528838976548861213181153030471606196867043644288434988225523312968750291635458654268342466088946046929370596495128448974048567800358527040399356260489828221525557199699352579454526174074323425708598911300142906714002259432746902189829951795534427487181116421174293434661858125957750175413534134261801559140012523994839390176617521611923006320392693503074408005564853217364811681583302031705897646342778232920238182476764490923997157484669006626848707926979745436105026659791718725654581872259956718473428189539689635639827391169454008286772208397356485201960596067264555193429252306818637594677165747163934298510375801026645131490589465320117025939029809267215532618811216870595841647293227196915373233155149343087881303473988948962542717046310852002030893497607474809695231438144859523362875963931570347642900053431251909087525316574079244929463176141128160500604332367814921702447181040900025235729074509400875419034329448501323427737790282037687775988388910224289465863071885783632584011400402958201515727775055220497343367174180652296812814453596307746839919743615077556084901483048815266226168875496803462833040684967243434884583144896108984111641853472467904954298423368792950285053562273808693036290643496106389027342398134356444371298967524622134998071790983253853751824514318229817014980471474405208206771734829307574244607343617784725245946185748904930509650979539054225306921236070170383791085714698302257724852517384591456073437910558853704706629305268611514962570167775660509871522189311993190860804095893272714652003159911804334386374064955449852221163110792402530841208587432750830257360467355905024287620096058217825407072535881343994242748229061261156506709906900009646228666919350261335698044849903060697708791796420344947066473433440583130498593239705958907652120593897697617999546099025575012925295051756463328193778481798272892162634418839791503902841548928484050101832934301693930859769188207609832728889211355169823445644473332530729344262398579235645767684446557407881847532800320620409124850379079033696967998575698548117548118386688493443282624893373134636562096236436017604756288482557468798352316689203275812083119267273870776283087919434444164060207462803182215764029456583397476087986917525550317049629196191712150721245277331363754728630344549900375024593485960032115144992840662158257436742274475501063912224218890391206885714990281250332223446930101962598793831274820795145746636908690111021310530573875061028762582480472978297597037886652702134477441124608373700727640915037133336149717400905160213542870186599060553712590929896988757268780006791344858690910845740780273990101872583402502706752349279084556458472338387936948393212193705663102735811093449630944234629357335874395461017150974841760325948353621751671249004828787869344317863407778956134314734506530447271015873083591865442275335060945004542709438295952345006179508154991222606770536954034708723345116703773580038588820185360607740785920309100130736686153320514309483297128610836602524555926973266003452103297614111917437427678278974751030295465030810406048421266292749225871319580437832558381427972820634531046716445453966782750663376119561547180811410663728904450860711216506603398923855553767532053879934345468505034921858653621561162560773785078336813948450925056970346054311689014345656230772431780451284413455499021187993090482889896661964477429526148689757457320468170131393090511705612968133624656576703275234569978842563672610468451395578761745542614079499278851594193234557306458553637676662779045651946875235345790507070290264235937689217411258335714398554727179693347166990452457385765734636323402095801122354473458644417233019968875948411158859193880265208241262541577592395355713900994061925788576243834396708253534599850867717452030647712597168716292719811087226407167316203119950574953533507855790580552280567687094346000358862145084193945110212966418030102507190041435180262583918416963342871083924470112172842730327743461701343798411733012446913775974881728083780863283584806041092422086576772875220996324008042994492930434629868849898458249983713858916691314115948053797704200159706893471118315733890104746479878081565219264346341124175366266821681770769432381466336419486790863825847134143907867852662542025507987500598344208643464335320340338540716970048589542381941646320236449921869693519762514875895364475163444940641619894167134651341044350148248437987463916000978580071488654135135723460466234792972728314241559208002510346789545346642752194241325704026306976946540161354854687985714429486803039101844108638904144811237544371285330823467399373283668196231302956918569585662741137703388585366462274719316725033611040733156570076520712424034687975699950151716821900645117887028746352292980881877100729033972992256642113056013757759771901399412346936326728084538940031909615421499319261336411225553601183662732783852674019875478187635393573394928473470102958252871038099756543973256712948755822478362680745273903490374539065811519419572645585878826961834718599474918395265496354475713650412286059311783277470431717021755542733811316446122057779146073657791347246307623015698777942799470800066693339080866312852037258042871394552756934418643828321630754249357673473434066898429248175407624563484358599789479950735840897211272601098018591318726985820436021544935373434742282099832151279967547715108672556888219897690679432319918500345646597546894209085865186885415650053347501770434777447943867270393095250807174811438806676944040880337002762289229403949546456869467365627653476121574442727556185472729709231607710083303276120464400195010882554366611838401750643307987896018495734772564092270264536383848782826443778467646788945218613735355436563776064766781708984505435511469123142347874141648367976459749610075175159580739164799319511126936601648584829390733187973916908788195618674353479883137351553906131409862755152129544487710458089772191058276339894748491027833916995225437768143940734804186682375671244233235148234658676499645194524763308705364406871414568326066397694548019309437100867348195751239891190608598079561897702861704671402026390040755211696790396797200717133559771467791845713613482114940796671246292299933147763421654122778357482586275349900679211197806030788574954697328419646448734832481549238845041687488440326562774709529606774811952785925148107028490709150186522875342941836314061348412370858732629402433909819838680897918601274620818939502098874883195920209202041991431102432886184043485386721469844721805882747761188553143345477594991570811215472430488110982675308501879271223606726542434867225549511677834995137607049303136759892216457674176156088948829950931142765681879504457390726038660348715581213816955577135842043549347895364202338974649549276685353620131752865705505880944097716682618773488850356569324883700619168688132576989889215377016429415477035280056119484224729851874877749535465998634894731283766810231684783864208035715066104376080275900992417626841020731910411686475234925060364563867349077296180495366105618145387474536473562955760076828385002653903382204235925539829328419394494205000893491988724891806211287049039130029485565147495434457524482287158340654542307467849427493096347001514326334921241612982110976577978086462089636434720880591553642322648312645150216051965026584720667061301204933349386969922060721205507484698313250445679036197937511451056109940597227061024553164341842315931353905303494727736431563672645801322676377266861863347929609941243270017744953982304320400254498544641258218149234950560149218878884850042818418295383774717036791912893763087010427207210527934076159095560569028788415349643593704129448706773764271263821528379114630861459968813851549589693494777530091090895645062887987493497499879189773300553955499696722311303299622373574385677800288472896421335832669747258346061528037126234987432217243252933925759249244741154505859760314253954019027327179534824534471181832675337725688313193349957002083161783185793469555062509874148085073837262014483584640035336912705562119589062989355562779173500839908857649562403797143088390971110264225897462931766896722340401278924999440030146467922020383042135016198807717346647351646810982056584456771849874997429162956952777441709563128459610269014542233395364350243247908988275294511632099275307499379381898314756794441245959637262578848779824592170128005575802713503614757921687730287677241427839045907391273929426788438577192396805229940340533470735733345183672515535044265826396199993098367307950372448686461149373049576129415707070662032891811072389155275383366638170350580430330556707275261677419463060608701555657445230874655839612405030148057910614581630901314898861883506210793827475130476412486827801601908496784421890111018392559678015888440508539397683873601419123096035076008688848409587590939798875457125098902772115401440192622172796546564989599214375691142902020411115350879248731265080755959728472786996827891626827869491152476745851922811086526770098192794353379135535003509514689857938237138827353572717178938301422164857171410290069972823532328848462192811289408170797402435104219054436930380174929970320843401108733211145368423599993209089515669085964915227766722963969422424351123418831803521099116402806434847354437983200003628081909768558492561175239297741658204184481090895123512683647084624741173961271488101932945586738194325086126535883736855992025907815396082128790730606533335135449059883474701016808696373177373258291394020149923292096927067831675968147669667520807748268071111351467849293584619841862617211092532216068525388159185598806277687216438183516049553852793642109031310363515078162438914712543316537004929543573131191804284196503216157809042520133124856053203608591448176717035165497669073927648951405521520609254132916570249181716644372036661368578767332511082859038192154476652351786225246359219175013034284393319549122972792697639531748622320787892026844508352041249612609478597643518764050513446164577995797419209394138731127672405794054104620755970157418271819156561183209665877740835191467691697748376641838608175254785968515246948077528179062939927065252312930894866450147904547107615352015539979963895457354995616420964604747459853772405194520424469515511057601494221445985078562898005203521015014421723603039442834244487088873811175695484586881015884730508202936051430137010450699026815819835229459515045374857234879807161323689988928620499341347784459648262388689344956413068869396801624022569352360972590583690359144783046409691845826547581534945007765160758195664124007433611728666605780640979063524850684383908655013660341715661217741365352466629240385273163158429247510718207376199742570052663628735253424852769709124146326043911646825719384474976527412791288332764753400458797875672197285080251587765352649056558922047149620525210401201669876445381749387615396217620998186695643493775204078670455027574953527420828343826527279906640404630855560157935415801838870887714052300577774791013360758346370816037414035283358166217105237795477803108287893113898944795861169392281377248209766223153741655518707243003784468352938734446101858764966248302353552906856208893670501291450337471297708298592055240518783105621652132243530612288003475473255932571175091617659416648239497291335237054388627240848370552817002962980905865080435317949546245822401357141584900673308445738818119674451429115214342793926996556225719864391960677530383353274686672221703556890842503483294766784150367836819897475626360760561739594959045378728870880119654183533789247653078202554123421527555465375278485116421930021040069601544428550071743703540070335935650539835346517857070065820998041957449512358764478124861041475565904500553778745425732766313738825020172648969353561612910104812793263745673134738711663877099845420670270029601117226376272726745210181186559105258613536453388197012899119638473502901740007068063146230130805397545776028724740990975069178826192831971647235371284958737918035495590854500617988132119821142982583753056350978991235940544860179024862607671948351353884423490587190753372944339592409185352802957201038394209623342775620874772317011752756872410122453023539815387958450963485798391045192131863495690303912564113905964125401943629294949192135307171534484096835404207106422822898118640267635071607969350470210023187810985613567910659306600789776255319789825006631354151562983354439164449258057007801061628032102201957047579865658116809332423000560664896736948762426173542241011990759620694346859404061641090571155345453768092327128723539990744359195398397372110133494916535436927142993028020314774560505446618457532305901707861564430381970179149567653940459435606066050701739354438931321346258503810731950386744835560194918228051677305768502688432549589089560814199507525651893553545402263661008481614620386544647710712187951630698336202140746124327385607330074172908534137146764662035468233265300757784578012755078726278301618250870084281877453320787977894296485859758192842049964829620354742735407338531005469939541254619473472170399527022703577938585129683664406788983746565636135444780663548683846697651766149996185439896235023717671102740890919399583145146872361287138497242069080950442236735498551028762868042518816358402616298518072115283322375809709057453569178401938160024396543257825045445355019694034884092434085789998277191512303094738055403082315560818607161583433955617281063733110606015263551496414815684043194623560436301743175092077130490886856047273855173095380847501448651760497567736078335523154472292534335963845630215217104987385925310203978958143336638415592992550894460278070179622745210355355506711913163262652799366963598923830060969816001670881344300203911771916307016377800383003711264183554241460149870417148056626033849775175603849549191579141792953684959706286329717452214945264364000401135556851275873879434866688375722889961342993866402364058944824529124282016580047816694184780636604784838355617618565155840174603728978215856590831489306511779198572317164764724189304315319990881549971377420723557101183319686196849440518471348051037624488758181727723344272157087400085249391949339810308319995228835585426263085181455141049674896425768172031457741976055401166514371933763721881865065248544503999376609355922677770747939980142258086621498719124701387469895676580981634240795135703733486839946074001483818803560910912278504987422563947102858903617892486945519990491711623170929740819517216362506237142082526119035617131791876380037382099894155167362903105494029053725379895773700088178658870490439209102611278111129356235519422778192147007436373735190083294733687322396549476329928275318351812624007118920345658855468093563503026304251921987977737443263726092891110900521986875537228105305576414761482463985863718977279776135649373087670426497044115114128900621261138853060373672295958161170213950300741417661128483328860167367356516732035880470158024784864639807999576764707923310644566260337307361589922617875267426013536007295273566851144731299279145245062334029096397175923219795801119146699283960660905462007982374521224503601691035674115632219532972695445551518284094539550786740409371853236603877962805143126766274036439823983188176356805978528134663946956055581184589398070501135751682068069489438552913508828544734828151760971542385953569221327308613220412923307765655869279095700478430395568199401596422335959455022810565437799547086244835705590800370695015608019307214648972673163938925538159958617022059139730270900638588414953461627642604357142837389125191847819850025498263035851006341034437633407334699031270355830801124354815866116467990473572040995479238128789718678010981520497880605047666820366296725093693960731366933747203672430031896662035734997506525201754713578657346438364676379268501958461510696765363902447489954321997231906116932962287357478946122656683064351895616389957450772210945127991885324449376487789040544224233470979587265217693773575763707960407327897024558295386961641263246575492104481223808933638076494996719634861554060909141594935767678087746191227708286844605325727180192324631999466767892603035979578118279000471394092171939987407357760009997069581634479233605106166460077875593954578581356191179734847242756439544469001853703038899473578219983080588340583672047301059337164585377733373826188199786074067450906292255488990834435844707186835793462839079294708011696863948511850811643813460281234771266500937086434980810611925116998390691124112358078849225010740467001002498755498035240563673715644048348352246102196750403342268090196091918367697533581918448889810307693136036846490751851920899807967484952064252815039882199294501631224441929079058217535825002124641564387801147363534860323181769769925688623422436511614137835848603457291845645973101458014358342339103436619091211751414322400433814714649570280368174781573399255278767581363359753605595393840173584686767430474620112279164213879016271782936332025735406498294315950055471411440663728022590649907729735852153184835396210592075094818702230994825467297018483782461121232263919435007317776200669540599603740358637654410628719241786662420882146482782794381136197446758843595640054338403532921278595748814000737493587708325048327857556278773866528397788884309372421959455553543681653293719886363436817907518019612735035889345804109446551725884968026121015346697273811614985607135933184212517820869764413662803131959266299358980080049993801799153449183914186001491765200955505742943903063235405129132722852895331838612800900243590201859206830124557688515998603667088214403617994975769301015816840489636950570719416181922986998546135918110664316242154343885744834338880719947667423092554142522046461326333021925412332655422517900396237359200118772248801218997398674540232783101115581388876253275234665649792845609117583939724769569229581643593791705775346063017007527431401713140934708262075805563651383657797778566866723143389971585405128381735945395172886726792433519324279446404274845572204271370383384282433585631425510375691018147458356414678359595345086856290184867609167706199880065923053443639571728250888425996639289712477574013093554392473323596407918204555381766372353322209351254013248159029890264297425927878945475006549946921212466620662608235971434932002080552240572239843830449363282819228454889328958740225793208207774992126360859118902964660359898389588810029238820492462297133229297037751993136100980352670524486853226374478046384325646301000813599448629121994571564479009944608429368284796527446127653332448811033242025174738622234490697236755378836000339959666403072143753602331036965733231523772298744269056689617796282321898718909625100096673816079360194856169911256164664511017559716379949948745173586586770840471684474770849909769979447071072216462803602139462754592336253361858445760238686903734040234299795866218897141588045753756507850426102120697436936037096921440941134689942630874378569318126994043871459489599835002482339043529602141043479871030683534360429770829833207751807152848088283370145995157366923408952207467531109020004087766773452083041072554153605939005257603460912081402841774203771307008424371586729360593480664925608906006214007352462203466943436060437762973714172956577384435940054753577833647871738588319957253806398099602645405327205628731511229360778157160862957374684566542360082900430576533154127168989746228513385107670664275111061263511316160923608424346656970070932995217809475711291051481146984681636209949121191573759093465466617608592524996429636094904995300849587607819636004710267394007407320843624420034614494703242395176785324245348099377528028361005259240486576284671412186729974077030839307426174014500322104972620715170167184912813438981955969763611652192019081370003672782082548084440770548894977352900740939641152159281309852432760682475952253308036122824831409114550349648055883363143637880869268509840227543561095303877707012120002898032517901049232361350778850259083263414354851687722009982947719960230524388558044873833160358617226920300671018787426063614941786040706999025075004932336269299321409465809964653142858940295050759938374246713892699043308896936156893171221522509329615283223140401522472006962251931218769483286742002917366443568066358210533280417361667261515623021242888554325019347747162804383419392847933486122205735240128775008941153319230976508283617181118963550249584671068452926448455574277121347428588612865531692904976784566259641824726692778344036180266072794741444083706645758512376709200048312194034837292085600229027797730864854147461858811157024361902873149042337471022051225421059966070353839506482334592609712442501847780809771726739247319401655033620960786701230473957653328065850834841252600889465846731191572917457422417794933549798919007820621308636211080386551622375812464835540650724329292911545092667131859296769309032438050050470579802957471634654362261868596663348164737563758253029528629237343678949466010883529136131466638328071198371749145500064293623820817274506175115331643178506860559958041447050514513443466135434913237773369000477575850404699354936245286508212310688552096189971243934341116809879539624817085293385576090027022794974124179740475717835362589151301019483114208868324943314817802337650953324299552859443683435519727318517804946558350991943093626370225681931802468448831867708730934727803805915525023120406422360947098853016075837054367783741464436271160534217600459326489012510109436888394937501080782355178495090823589954072647462043742888105083964362855884266548692765048403283121820919225254911472664063622030793455066039883857248600510852807898750923629295415205368592926198779168922159220522055198532014792614710859188431868657411596378993112160998976136301097963356544490273435909832894786788397496610903105796567898848146337793780972063390584010251514800363118804012308861312975542072153696492705801455275021614678086913660749812251621634354851006334434910353632342053393469452497476955086265693627621261091572689185127730376383979571593669306794929864838663384436335448631276085510051818945811041464708454015362914582274572901534105798816935405528318673603825088352363430473920214607034933191067272651277179914138372267050300428895154913480292363239288242207957730865773635354430078714994079606303257695899262392059660138555418034196698932436702851049428362179024244477738136369256545997264421416458801833242657385618786789598523634784235368090599271199955978540144835966062156363732951638907300427568254001923588832030019113497523286130065109787692945531139668955583476437080703313638569246477056683170873581839480453887530751714783371195076879764077288464866497918231845023153810551736395873407189625387985376214371724368207104688142052492393655087044891355416556266667131541921763666664364045461341970658844048039586284011613603368548134550509359031416572525760552586987870305119319075536363641345440251545233958233658716038160852821850071410354993608466278407506123683876446214589192177914259336420064973124185463655995675129585020308227841032613715113519839061241596463339823900878973879933716728364387203567894869612784691802988400077024046141684357096461162379484580024369153446231929702763704581053644466861864892006481857884470461376294282061421070348036308441116780061481502391369013966575803093965936450441591251209695297358127309790325832927479399692824383149206259029330928601033239174038383427457113364651398457747832024488386021968076716331653498673034745401399921598221116711151254425853760916734327693647990400584497434759055642063076946934728356506499107776795892650798323481084018224489117074966510406136488759184748576972103674326815148420195697220747344822087928699608362935876316538904783900487427479351364951528419727078614321965828417069390496815772568280501220207510923634655176931515723238105018022585513650751824782234136431788165206850661394226265344697289359780575579260783216673889806612519238800016953436513252262005288995610861328799507595735547495524742430832870191803056477082736701434453937593763155017365250935185158798505069463905231958292523097514074052545956314007436631365318598857577378878419026141183653689544565042160337064786252627247085434175977950069264902695112027502630954367405801647213159267945336547943694975261018446608580007831271913160212350913829704258702336416046448461284709186343151986536546365560902676182247471801225355996813235223866795597369258068959753037126480244820458137018203432869086373656165983377571085833010368743465774110621814317655633962100638583167467480918871707737653558986622029436579987382744425547924116346546794060365024746024561895259093499667359512271273205240111113918523027067365861427723092229472881013319296333997818550318293443263220646980101295170455704300632501562504315083653659762832674123002049506397173678418891005142525305249688625673873847779662866216497362402883693096173536604373373136677583583570179447145747081249069802297768156882572257089498908991206605540252060801322450366148251208137567437661986796426412986059431128300054088818812331334729747312126744443118675943209106683662184178102655733532621387737473755345782790415115931321851828588777441772296620469138660209349694256036635364506621333173259619876825885942987942670938011410541539939189608363619248741879169306463578448072366415658399312037940118324480201556714142859863727859846970740475543618234815879601141366235245480672033665456147569397801228956585216225616967129836900853900438345103629959118876555485850103824200072825738336661915399075270712724127201395819955356637355128909069762510703048920279452591556500485530466782494374366712341710845111272716022109419314554015799975257597062357119650920779653514558284969464124712726275203668263856889880768351634588214744382212186296466126270826742263505719504739238635075412116648302620097136692767100489826716132451910352783620701285444467011130523252269301508703063384519741892706340692454588367009137680372957533468067793504686478745877073762192530528748136198511385757845429291076654292834071343671350225088281889291524452778398747219008131438072043020724546793175877846662665684652886150768840312236723212187332960724426849433913948234400487947318100156723452617702576708867907794884357597613518177223367330324699911665759663561548880404973201297560095265988234960223329496042355117872785529240802858776673674806337022880002218103354707338193738262267571929259335637095406157277805724414831116404280200117378136750453773569712267028220634931269054549816718499502811568901079688029001125658917905559234547229213785367628723282181212503451820595480967722776607131017786034388295733182064235872369934100981061723496382463677868300913325653449234684068069390174735320150444061138347551904288775406077581916178115413003992574036783786443591301907846113155981228743338330985378397280207272868923202989439733948198177571392474916946367946666789612342910937033879325123377397138802549835070664655016435659685314582650756107057247029983743680090486017243764198142270431480373845293687436005363912672650761568078131420041224119594940392977016336814281240787208085216663064592305670320709816172252902696023063081292602279781774357161381029192980622368250972902342140272119169380327132983200837285066796162815923582866865760999044159915872039418368224733683090366949690717745701217771446726835111945799235764378946935653542086062973010467307198227660774393036842309468861548281095152021597052550236156478355794196881755560913857785219222596477699410230570038366368574762355069788231896556982414650286786318921131224060618093860488326451730840169501420821573260642923686228869111525025499360218005104193260969073847488323914024155853326011528507043066093224442482524144136877460744488445341855282414037622464301160849294866458299855205426715174054544202062807034332941069337368827264297066891081535848401490945693824621684799297070687378774062892832545134226040883718721990383553689526747220941231267659633815572502448461126959274697523814493216404446898951622400692837095862738068836908336291637240041875958645520463746275695830507984538153471523066411007256923629349276393671091313512369170403054576969966845535847145591819283771246258352141244581202749660784771810569945704336050816850953692894537463079518395003471725194844359949485446852681297359019069065359890335695603100644796826312045736933191011544496555112268417325152277386303081359758217229059766137627641766163476909125070161999553759369464321155753439662168827108403675119299960008862463219998754180943600530874133962692998207629668015483695809052355871868076169855606043417539252404967999646517600026926916551698752652506773950851304080538836964450609260109643688108942026856159073899850990825015494639182209700648455366366899685892286382159711369707671797678975011542808723039128878869961867893071982867549919743262709341000268510325929632688185243698148957912443276487218014529821857497714292943666893783643822296585911141794051849420735706452832598836994591225939492744455714667765151145692903139525375804633758579641581163621872276615189824122053513224370022488256167742459676541254033178449883841113760735007720085697277626487365278338916361424964210630883701349308903320848779428644049722268286185994668934379485133485590582820696461239464975741223628313977337023819087455803316751727223866473603363229422165312776358477306315342973727749231497394273391681398751370371650178103261317455063776577097886959767574221493716352884568741975606953600393373320206516493697083704149229583433116310372740909866257470505147022723096296228767689369377387123902046516729559253963757037054229682701372159784961803623480433790639703585582422108823529872394968853577050451828950991937634747370632035193828111442092546739336782292584965322008001526318029140864688824845131277306267980815595476483707285041727113926403155385040583548821872063249822568308378114474967278883332002871767003436969011263337083771406814924856099222370955185473844571790541768739279171785165931986828875641818677687684101914918370907939961128907075158854552469947650821767567721164663642768199852241009652130504650834072757448496613710976161460840590607410221444976223667994484837777546120077234904834680479955363749200222871127185135637110661682291232392180055827814185815990440624052625463677109244383173398476328514706535000797831849158371224011759565900535027064038408707123341254904300589255268336910947101885680630974863894076607300957653713914621565050197607344889921706745959901008710843618344332778765368258772308223344345432927526450350837142751036885278769677924752905435163484717783060043423068025104169270984042942326154928313761218792561371559805549617993488223404322283765653188612575026407804515295419719419547797740615546242676714336470513716086815540321664452516231071226012308937104755068250860324046390867144369077324413439849284146788284737171479332996215272656768340104003538027202527541843522537228344897065811560857105993366677451985660472371820084160190860000788059526818266913138417341819905590105823592902013540514610372925984089244405799623719926120982981963175121453533210390556518543575501550633023039398321742416388765814182837549573824813537207953537641564860019910209763533920754849348388692816112409042860516889724156259375795831898950072924372159604679885544190931123329852718446233567773599333480407470372053280347069763700271572820230730576963722141487196642042557275049195036632300465139541814072510893070944397831211073327668759280377650717251337236087557193764856367448558888257887661339184493021191882292709019500146842343636992753199546115671386372485704507441432163390407802999234905814465652044962335154357201055418206044026298913181811835652148013725386554846503939174422768998320959947345326148515338090881844067372693578429319408508180054111250120337264574453033313973804469488527709899805696000519141141422794776296903922415244615981368125575139849403372701589089128390396906823715967622826543755905616030020457274561527945965191825007133487156545101752773728234485087001667162208813471455957733125187680564852910540739280222112003286278105640243980038070190537296977396529787790988003162006689840372155196243342979928100956086160201491088191150979379290036944991373020621765377482371955324580636150130098086504424252934783569851494288463384019650862826192681818133143731535227102216178688563979618042557270940196904195278221897237115760460016399090888725718251046884283437326189131812029696413348931760054804610495092798975176311147402264219675764519848872453240032533025182373348307749123252566884756169542393488977846191575794422770855820578541006163487982613985550919249337633734441969386470241543432823282768456841426994383723540254093937307380463434382820719655314032671584701637359414833139149967410908125309984316312073108505016906329319101821105395585567039824196291695207657199373692723071763730813642389401482326265470550903841961663957458368747626735252558119907191836237358436873737183430590922179954499692223300342870822693305654467683677675587796083757183281068255595685431680457437387689684479201244439748747005737572457408749217827564247332585933827183601185506372711682381424624589373904590760296921428081805778560188655269099927922154712708959240179476507844514414645517172724548476943740160766247832606573541389446198858375674984767805369839295763266022647239920413652162373636146664032337411551854151548111858108443398551504367348070980163062524751019715046695459749141410113086616816368604374221033880745651994932458611604871116486279983802481253941899013637727311133834266778532592324533344853743375966471620833853741226355530893744390195154157567994245323803340830721684199478996812426888461659737440608333973371771443649867987671879725126150631972885540631915126103864962031374005154413457210449044374567051945156922739366732497685739160310543114816892225159257668780953462048818191351201284162581472103746278096597999194416034438418232623144808167321891237994659746944737199473447546144729069858854201016237475230641968059723722842337324511406540283755263039707842698045973210194934570025250559594698145422107374802836906765111338008271970430451924780925117856272910352627916974258068402627307584190214628440917893749844256162986739091005370029788550698582319092885544099345771750787849254791713785432263146556661535837507021169160431720984265232313966065488930853830196834019241368671420697276336719758147787236143301726375112555205583002475666557171155769559720731113661647649212410007432536721117181902698647349658130101363752711373222930768214698233095862601755272167258424775944321583448325166771795381374496444065673813832637536457517449057480046505684021118589827064600254984222932072749822069747698062260826601109618485569352375411806622929940380157261010384282960889874606563046798502292990209291932461771606160384801422508869123755373424858644173126718474663451214908085532127581189474825178594017584472291425938199664790339087510337566666615416468654700720220225459753480984235013648485749478855474592133750963767821654279141354746700375762812767442222991188279981357269073785469091101556810429717305778842476385374026797415237094624639433758460512163924514821050797603268598660940087323415642353566766637531227634801010770454890510324057956537599667413083115792797480966954347260724741069201533920909334582777447339616500935752471124170750635032376008867717412193495146667638712637372846116040877063015837600111533649212190203318068500324666379221733761797926804663637619558362047195745588172551120008041991146136339555201130039423915975356674113670223237625519019341764557314694822022252295483332977455605137307742517709774446598076075945466065931031273487376315553264389083383702773822074314568944586437175412106604933774542490470014903959465745943771237897283764005842939621055267503956632149237672981406635006120236079359507250026118822988170244093230606654009737652298243353765243779941591851493390417225014699742533537805043621410935772354900881869073902695140166376697214836261672332385111763897273755722811689919980399572937460322172819284534093325844116963040623833767003542688742902118242985645124579520734798462734619510455242561373629943301498393729111087052996951937681835336505348442428480463104765220834208593651730965844961302858336548195435981867562202941613843211376963257685982562967201828906781124186868784597313387140418729700711919867701293106293096949899354813923770187592880483984513874075864302765615714733518354407350625531234366496005310914881303238446265204351337716290262659333068120511588851043585699456499388695707061119235727571102941969289941876554368842569280377263861435130310638444334313396196979733561523242666417066390240362365593574944251038356824938543066363773956562838134975783190902427704990944514111124123020604342232889259749143823157590798442351778454112837747242594935333309857109787553868398175482521217518103082181765051555634524299484539045775626744657855377517591489162251178070532881170459740597598645830080056103223325384300750981134310120450833190422865463776858779944012296561656389081595922394034392226001019722176573621711635990257575290003386602274925942137779355961294755185136993932496927866350652388267689411676389089823146190959683386123118586714957572705377875686399745427113036591818384717808180841752010065566213047632675249466820599746393688064999076413423779580893082040902363238351783063221761720643363201104034409940915840514687832626047756804071261548426037803468338802680940447930891937342390363864402549244811573907631680266467996790175567187064136332402887378105087457165871395916429253614402597840290871343774441758956655811307376296889347527173711313779000313782008272938712248798691412428008450272512254635272199201876242350802784479678433702368073614399285904837831111125419311013509593127276611248889546891945355636218793299748845867834814486269804703990091628952378488368911374616731561702410045157757001603778370339572539261354053250114657419224801218243169853035363785394598857504113262224005410970519491629257437928191687620492675684777486034513839694679909435305586137865004279444831120630905934432470009375367100560449265560347274778079078363950451876244839269798731353378752843484638881332304397927748022015296192355486000473427309507867806253076736433322824196132427056553788779452266065695016189262562694823800569503364915047116242857968968290896905836375827828389289552036337892239309604204622878106376581117827427625323405055645853432873936828810555823020155443402566605611991379060833124527637674938321952334956317862584221341665748262887744717933870329083625039959451591113255053791050600405519331067854022140139289307747103178334105594829183713076924569795220641402279584670586885737927578468725289470075085185004530687570783974666384507360195357370737853567003625855820667372433386238379335066357323527255029874737157104957827619393563501675928367423085383857351276128826173200948780873123794978109940137208753218796217675072343104204098300543075454308934756099996705300626008939587539803004737958168171271950939341910683317924294515954385112109091722673218321181622795705954478225361268295095486379622172312363166507257218634531741072397650382647261206586272339002819509088574096005768787459135373143797615158976810289446734608601099736780315612915571892379694137835123162740751694569490868054417875979237980036554692634446181773732271670034442667760460949248120587970646584973528807924153156393243441257891379977935725901786375825693806342504430545882795813741075602287584447810965427651767062223706972419791803800215229145483395625622846078386629266810605263766773584382487337825864288501212332924720709607596068238017560580289356980680090424779414480522461408019298274453591426130067315399742203980804453750119539726380219448484495199114028190660032628026970954487165779231879915526503112323553639686684530243015961973493803226235227432305360422337560641777731623856071805040559182350894142161260438937320034975326339693176838043963974083408761489660534676500201801809501790152475738159051446684042332046251958596479602895315590380577547204187516804221048827397952482737496742588221229084184267327354050629747395625186097845807013223806766115173325159280125006610307845655227933906611955467698467069311445434165385872999911772553407583638072673072059819231864158196833440775617358760115854106288590251485970663025662727818819343204435440594380826417472874446384970887538924365482695425677051955005030485739671925936918313224995238290395190787503809074774192883412833931514360545655499274003400051475286011764913688197540583518130106428191854277239738109888911556544206132952148340397465595374693176797126059326227357889369439528140371554981256229183602381189709884483519995909272476142927384761134273942707646596586099675123050324376092528374535447598558713812927974513545604092844631238388919297638722450948694664331645858611708788407259566344648877283898144838130697593346348920920847479336641147691694830437595998302984485104669711676118031575670430748683191350381415108662681481108066267644488187637341191046301486433951333169438648671912530511977122226051292720663815288828365146022194470819695463197824818062306429591934380319107075672891130341666939068376651437334038160982917691778335023511377237807008013449375124805050073219738123851625063208104966695365173928688581381739774907719078245297941956168869722316752104506671379192086538936749986314866410170044457629958945323818195598663958091794185105600868613728352055446420332754284596042843329042543986132359098896161049110438190370538129550774681638755768131629919025081570271907649077578436021697722790417283215248311154673779382086753486330097098407188529177293638378968670454493802201715742430599092277663302429744170450074589943821475150076574278290259389637763493531594783200225424326725184230050688202082549721292140563372558158138221271047415701853893178293987877127982748865671504632246643855553484887868766413556127610485824205891382386519723435336395723609948081681739740311903093045100043961806912344770855514924729667850895219861093824016552489835770049619203738616558373631326523459824531995105916058379000397996951777069795246952298338256760743149900854856414332722003498903384042853124211234021004981624291858924222434957536080826030676382624015469578806472961926684527511160095905378548316367124548486778820172520546398558650035823500202153827085164236635007877607151985614525626495159105550747727853798154063271681951117541022889298378222545338283675665190251216823016918198394259899975941176958752150927946376619633608719250944468590221362185710382940722049966386358712990530555270284104677262021274466745452154577237082364445335706452251497567870513830719480050080256782460781818548758389225888164176204903611290431281674832076693485228577606793484645838316576690952066100878790643016816753391621152056810844678941591233741463682113883375773261402746246664383251509892104406381808305608040137010089074171937662958444216912279089328319826772333212792007680916613833026838723843245442068679756039482673658206734515504267630881815855803931916173275442955764365162015138346644668557593725940971151878369217329993841578827660226709252914746182341866367219311226984236086854383552041883128019978033487875658827105870237096130274799132348225813769612170462274224961016733754788013836063408551486622869956915271626335017898033982736448774282315381482900134325678883228760716511011595838377187145010578347629752887433927458182768600045277571772478802098965643852942388173879991874712975874383811654133239155651089087752576862866168071921090343265030146354274920447493124652014732319757703612043839501174793986282152535497202671790895051950859097956215389121805648789967857306884996390327781322940138405207305052020960765468832525175264101355065145029802134353365875559161683674942894412148048659982256384111198797208669302128499501664795238170649564273515525846846289200141881385743510670806803934006493983842027820408450155974311129777968023582204399718918274081952024523016175994797082805860032889288674106238434713286909469466843904201205774106699462157238511091569237592785586844939773606880019229349147175801384463165254747272854041117825003154049416495321147450754966548023101855184474204933682149867867387892493845575147069024662390473966302006615781093579204636277135039469784343591741426437780311902195475226920838469547968878254856457071355666985023275461239882302786890131757321917167849301636501389552913159011742384724896073749460202948512798559245077379356908133386974703741573965582588573741349035827814340746255423848355164396890460779583866499664944507475657969935149351359732001330337208116628916765098694807294403238499917612907230111404658911382427272632968517609428418793980260523956540664593300789657415766970867192385009294525393155274373528280048234575091448533542404918205830211736693760497384227215913483552040425763851169928064285471401936855614110276582808570403423258758656946500920230849830826784327277486927795504038526611100435976476867865384955027225588542249861365736317396148099893608474097176495471543340623707326385358697527645921337429714124207051122564494990791441924448328393791380420636238002970028206239318075613854922648539739493308325197087313845811985701710024913652522719868408318404784693642902511129275176699338559886203438789175172675722174421453857611002834874321905243332939928094883906152940641101879375394113385643031719168526355316735298536398677616350661196822472348640340968103858504606729601476131074024007423857653402436803792106844615341970808088122076807110643890588634215785282582287743675470140831003113842938588534935282493585040362345923926688311448077546710591069406547237346587789419248732364370240202401751385975970468295402550796773098444317986354134645953902276574320351884311155975463523304523550552928506363860311524081176784645471413279813406592746732083545282276634305953054734309381750377872317646489096491038614425587969404117052776629702325695246367177584587882202846053053054661817220965509818396754440119356386270278272108335560644665752280980586287033307578738210821129210210389616523122848792032803766538720193863582051856182501442409628366098463322528411015741736148823414602873774984914984590462988903284925608338649573991405910241206845576248034590472359536883927461900635300602528684434546600578574568725002887974386507812699501435969649476414931850496255521694445285574529480723243302773655574561042966088356974253073866361113031082380003158538736286884921091749180339054828505462786410001316947199894889420953086446502638677961007150484392620633117118608612081871573273455137001418676869219670488590103624233151677601727174386822330504953061585247919628896759444213462356519312219428440714309789550559858862442017362826073505113869638463571118784683471588349062334258834361427479382954834126341741688260288873554781665323832154076838703590968120548845481718926920620367096536056408987592845081574274786219413671699432294586933049535372387129679978004871910203478247394917971719767262538849528173051360089227052430855648745041216033551514933872103964186380892659519034350197950366229937107061098032834728693454151359671815062976637443099493236938735704953495914193527271514187376586945122363671079380115242166244941198004465572125975358046399910239387432797708387184753479985436030661774685481674302535091141422536356338388354354468600110863848021479273875631584793510710622722123289000304008555103460768066519552168656718918133485068069377003906870137625438760552466849767101445993496184224689804170186023510196499013377865083234368694437821639202188508599658387713111265889482917734897361101747392459963978823770846435932564640554466354564506278165078910000603573878895847141178811400147045565792468479338985904435609519395598304841190708596839082696964630103312919538794054835663347075482559716224095724560789952275137431729204329442145717570211196649273295045892435115388042249892841829309680162790999014391000651606646547657233038464624395113830677701241619910309399289403881398116061674207603382917593065660440087162242294864120927680054840263546046021286431296861760486768538824587332459049044581544689760012917675937178287781574634474974431747224571417824959332658959901232631388365431809785578257753550495717798199024612577728494463535252170334339313436451383042589815147736236793884199418168832859918715721722876519947031424824878759641163100819127666028856647310961164666767118936738856347212909630086923962342070886293386312556128734065346790974199382881663850602787328004850544918201388699337871130829493390254440845445283110790671755781580093867536003860355768063981064235751099733184023887806850770996662013993830215705749043949115438309056158300113014109913958329032586958376761970744891938881132631216409818434725600876621115969513338904625890504021039716887529763411565301637614017241741275388941567757338515633409689244301406179749753717442566473493454579246967993011026194337636448667537561083890769161304361374833047944122595261241514898169980768101848189578003832576338780435311856971995174084038914042921573207178938770895931557022742728265816149740801332063433840086890238893918333142004515961400389289861121562924364169472543135617018117920055959285439183334369451919451431715413500742006390506071673893658190582421620289769684409055245447001281886858143549545420556689838786244832075212174109487364741038949157860409910258555863940130915517560027976586538407568236397358347233648255335205247722960881930540389582105328131130488092625504406239557590391944317141526527540808952986572630716340732243950379987148813896512624460631281385241074143597940857665785251694389927465562180588692066232504493702921288512745927038972137674834292777741271892215540626833008286009017921875382948629150162454072477788669988900709805056389892506985818373901350763943654187232930311836581686333644779329007078574510611399148091109971279294383899493913670158424189691093862380272576452166781402236132290468097724877826864188122877993432976707163839007056951199018963230924589999021797571313451742593603251369020883958608546750477732292906284648172031390195072814911800959505125813447571570554678484436237769148191799840529066771547929117426693348858567083902813947344848621438111159547544985280405742250695146472008424624472299321579226467217881452064820830239037693611921738523678567409627910852342295609063266671048028819226371390907376844480931844498969929310390460368700953087272410262136788706972698569734002280363504755236880049558697359039020691931283070710613905791355676742158772575982219129431864574547720513289458782737577521030711942554517528858363344593580039065524008931209918825706554866392314480862374414595305590030658095292440426176752542067710335536849552390746546435770101789796416313038674952396108289032577244899186229965198423278274995958934083103129326763908610272410807379546281880763426986176170331009346800830651834771328705425499623260325011619282730212939099349341397996342615126485063473483275913631786824728944493214660618479650573040671874828415191474168391041690897229561606700728197766108311410618692743573355356462725414379409813463832286243364133478978893911091264153187304060531724773810353708266941065444062266129376623363259061383819763194013039898558209439128209539186024819909896648627135664987570149795340067644785868204910762709697757054915087961976919441391339015941256832679426395790182782545568969968032231781589778225657613871677013214802115527276731117343914165311892203845147369902316477647593880601607553748338232854582595062910239360016544735394298287668239150737121927529990736974408113423720201314234045052593169727755905856570031320224654790866575834512665391645682630554619314754718739127923972118469217783762006326246681456322496877656028010455006968281528653917754259823483400926471012832843064302569765264469413502706214583191104917931941434930177034870263334639180168710291836083741253275877631540223039562887768447232803021429872949464749395031464918041335142023391993881524875937371592838326600354064289535416985061992235303829218610486918255269025574988931977847203920619919805017972262247637181445979641371384620798209083958821187048015563185208134305168523741584217439217814580115630583117678770897709425691536078780911362843548240228283945658041952201303119772279659598392238840936358355901185742704482665056343842162536049834085438904028543049268993066135302956244002028263923734367287192620794029735061796925410129175376266082539682218062164181246217311896733474309422088767039246063054671699631418215590292435137843643506322620931206801431691638497810122710715021679247205626346392587067390887567539442448270838250878826535655819744166357784924176318814836216441222232363549938942993926078409216509961123532512011031423383550654938890927596110536939808302386103713047566762605558309278439279435785197856390534743267450560490940770859188651065545300819826445252817408774654789916151163487539392830674193023342758365049641568635388344929702698830212838507501173072253194741218860306066086656547713929424490261810915095583074276082948581103520110703303058709257951235338922157247424785671676788358973739306761772117513058693433553676490367437388170444054369873859392664944715350381525963250553002049067646393124458522605213931219629970578255032704577980448589560702099021534466953706842845217821445238667104693932408107506167317478569718979427878871605283450429022122439834339069476764641314581807048184216581860339336693764098943364938142679991971798152335108415706476165027604538632999522443033893844869869487964925393441509969476646546897692164861423923568275318509654088133533236031501845430918115897953009608823801823935295483646650730834615875373909467531125542610804096592752714562722552735012176578243220128221736845439360188340911256369605867417354418830302910422954093121391632516652716281214020039348524629267702533556393778013212110007468751049272921506773328246340543305146411016945801523928106487165119374849628471452053938922860221643092270732911314850551462608765491036968970857811251399477489383288426598056121218316115339390304191551869772206964070517065583074542955680205586064791985611372083202139733715897180100934195299394024086318041862299694415900148445348986206796450530773611839913611440073059304205749678639537317291273941783584821562914800308429891763640342582197758590998861542291506488185489391946492442442707346065366239428241104380687463464244524892172700800269889684009770499068790618994349059987912329939316865429778734394305363741086041168212232803214430184507966819142023711524639482201770931427298845543362729864739836063944761973552064654414860620658273116315057177242088765562487222682926660203714851121462441496499951520239459735696346895793491184861387323567372723628672295693070222728261893624209144683434264680026607719950394622165093651912429912989094967348869160997557084153856326697999287231066968120038735043570013902925123947455612525900332219730742628557709051926829142078160159206846851894960268032416450232179784549350036839486853112007439987867535318804473478513954317739606005536111440635364216181260212638657309469059325590394963972194920380562876788287430919096154068691521231893627892498701245388290743083816074862738967877453950378236370946788911603417540455089169754059227394049266623912040646855819111208987613022144456972568639512545295013041121719980910669115415746874858495998661990839837817126331068153364133204083616858950592395251501682768475240163473441553578291894992138591091122483181871721948688386571304048294777424440601093953969015638352378276129095967481510722582918132998287427054987359677484220856206752067159942180911885139540214643881536079623454150921340343006129978686825796029384976591871270680515270714186196057390318885395512824338726837664102076717571266109274582233522905129948528281613592546990669160185027594016816244983956230386088013824249883069963917623093961348545994517800671078225519324205087390126795497844015698988739575079123165277472128947915317312845796906128837001975189510916690850679856760516587307479984144568492395849212797902881242410088408847783731591936132045482630356747492775654138559987303215905407629514363783959852229866981851496708348605274465264498176375321102923062590368635856799489149248808960412651107338939600966344359338441249583269826824276010209896594546047736523987118017518651367339339449442676775423211396191082309423728968680220347439593248623769437410866602820174765563194951087225889202215249803245839273962172427958667737838065801661372929777118446650250115258124073070963018040694074965568499308726304218339630015704120137922456787319402582131094546109369974922261858374651973232203681278216797854825403853579396495868520967119563235803556744705872326862792820603648717936660559441175390180898377902808434422479683965708856595271612788363404327608000580450948161376241757342033947798630322367382842571940605835474378339668904464154065790999931856081243084635339679917228812637887991600338337885884554719823167938893362837396777320641146617025954208508851805129008431630715043310753954554199079646509023164428834474068719718933968546673564945681235430496129888453760929770893199421463048220766023539824321576162548761284254121061639691133133648822454132448975453566265349142408224913402066175007211269430612496634133218785546802945912397049172174641038186713621514571649507321984896957276872688364311053604427157154289136681571274428332133971339763343000508127395671874826350462103931432431997549195809096136562570024320166580709518873058991939727870679368295244048534202386527588450776292787146342219301500563804572513175940122856113554368542010397381823715869013394106131783292979204109913274541054713071745330047233839565461871634457034018556047183974138157808981594703684942578682192636363447742822186059642474579472170150025817333302273204738657321539753469489387723270055569460064750620414873316115686228526907416880934990174691276069271989385055648400397624337032655975293686023874269601591645095650888549020898484988762500950696676359381231697790345117803977554066734922879806476973399138920735680864052470563221867382478507164461143098095494880924737318007139789660589269647674380197026822410328865611136584927486696312680737684133674344484354915694758172853359397944010063322752305783993875303255072167800795954106798161051287012353251890481593561721703239862529923980391411785715560131667449541431362322513430909381171389724401951230821032789265836285024029590494049239819415327768642359797838724580593951390567955604890224296007343177928261847519339555645937150468756199398275797431690153572144066875808686554524850048273571308531731244135792320993581940084780355302666178993983903400164500470949101383340177229462992656423345478810460564771403017078618144781116162479625532392439844068009690117909228513527314795503645016130130038280678845335633911351731410242678439770712448559939398526430774456327190903208839351852366033052369976131317334834526825772849605743916715539515852956333003986819418422656349976173206683909930722165580285405458697118901221966024066946082942278143215432436576139870175020591296018436712618332914534588474962392709765816939404028638746776848598592213820703486498305398822504843916857753454819551137494718952124618141523990215336585113352535414111656440333991014817160303989559606437342868032391003140709411132623263239983969953761922713697350014839858388497144816815171497439905907959017744927744511130627284201316358437641792093329243167440055461231142916162639760706635603860399106560837140438303004134347463989548459451126970333775832905533641222535927524973455348333723258625703992963384334203596640897285644317895876135181009427545203740088801072788481889595167231262118912500192039938737338613365013734348864042522520017704620726688200704465618473896823556471471078268263004521490432399441055363554525591842135419686511373978866630975008142564319847403775914587895906098457426078857863203995231440257646052463724839202431547042711190031890420403338170009864228643418074777777983442555989308939962290697457018720204681829416752491348559960619800989484474891662876041980060259700127365693936297540399793208594546675623408046150135458215508632072266038934013767305762534065551698152777855992998824194643998266516768776119173622270209227833605250770480707590718034363357075638283659681399539076072706818136539996575919866837510546115218083781191964755409670958249560178282456727368563121850209804703624641761986400082717748478222463490327810885463141517371814329792883256249937115629715737390115836310870448602510304001049694691425838693706512037704663082421648944335800059686873021485249287953824228610007364203649679140024869424254773064472810425508729193419606670525645064096087900244040642473114135660990065146788809327400391384938464806546101789056276456355644526787973176600856459859045759450452936327322914034062409343854004163140252600210208532500280314180983752338963958307623736733425481189342771892693033982841203649517740051760100346751920815833829363212820663131089145602014822523045528829442917400514389131182798098198484400632290298386962825148739445820391094065328018875407720949074786117915770017190387912806376236617440144007404520702292452320454057628069657930850203981218378402067202501202667529553130834943534719363417727340084063602625796031365119785548566937284640420468489277157780434586776100852896073693144133464873773525400901592452119765975459087695020605617578193591077403625835765360080893765328137084369439022722986532224010182884374001388258111629715534575674032149860975542868865798743690094970509798609377027835722338833140114539804939892101714335826189674003122527997303364571061607284968264026682347704558301545855748271713401272435847099486137265871302549402449573855889966053537090338925114540555812456929413788827165199000434013761079672572805998748204798956785593885849948346965194930897814997277634733058570717902709356822757640143063930497022966339552876337991307858593142078113351114320121026019873042167062601435758411797707904401558083808849808816662618535883559242006305302464346289923082030708064941073041567597710077523985586864016759457317447670945568426890385311284949880181447745665050961489899151762992416428780004741385080452040173295305391840976899463199695591278676949319592733662054309181205566924621527407866514323526592070708401867879558641686045277535750207487671433377060119129403158574310767777795213590261308082898324883948324019094998845683076724175929943034020943993227082754835738850741991713694004987985861942344627960841444740203566520379282953170163351181530293127230254356291055458639577778022116588666112693357407294436145574402190563720071282544811355783402901604851760524329698135502747147052635429352648136623886958489819516794022047612474744680084772588713945527367108878475084256882598396368306676476645133082342995384063714939640235512602596412691663955329422216277976078749552917485688421824863746324747783244929832354402571567607402492867425952849433898967643436575482307575478403350369653768736549802239878011920354404912882683594194025539718436472554090531421055666320732046388483827683792610550038057395379402151364136624967493537324140260440434862382336249204953544285790530654527726507220346592904432022017163242358313783512521095764152402774124465776261675436094709743356400769041436221806829935515109138556573734119489032184562204438771524028700482110127612081407824526498863610383265084808525295149522635542646067184454304265338266686100665540297716951714429565559054236819339387175320386411552242884740879638726559965035453160178728429959062489403075694314657253297995656442753810259566672558761130308635459508684842081702309037760107313710623429334031780745475082378560549479876902139056655858928600919904560260320637827290761553970383110180084490112140324811927779674839102728820575597820535088346150021903483765764631105684014250421063783316509790934725403394994266170452072326910171868068931598950080623997586948389705241612230171728940390466998494272133924034956812616100465090284562126757394143927950319586502350481104716856357835404264857212754026388128719440356209203813254648116170313586767106436587660551655133113317022718232156877362195848216856465284606970403666190543954014065106309733365138119633316594903039216427085354228049798026714911895636425174891344124037142636155478089214528367082216940259871126321143885299391696304804817892962988201123807490130529424940382948016114353302390080670657213781679719856861302903012993994451249846901001989193605982791697305147403959434649602883328969660815056345056609378129236133490585780550945642103530907360195844637121650731984040201564242201326845668774183233102473192186851564341203271703057306607851753850970691717079172528551140417436278713016009522089202424050305756402153727369592667997478107072793723912355777093468284756010763404201279131199539176281861594303820778398243261731966313336206379349676875089524023642469231904541673864043235836048283743927886654775948590289204020193959377065673211949099104335285517987140350203076055782040441914838828809464964820842417669924567583122624780703905576531412632602429224362037195329185547180915404596443185685205788235010309107612806044570442514799758960888028125997862387743549659904929673220844974046244345824350368978036518490995121422940156691745341683830903528477964306760861159976367872049550579540476365166938345210212057124671890236358379083391190802068995968969901881223218552528693485736518886301404860452941028179736080689549524036066488944683485357371170607994305471921648759431314126975952516610254049229095753755095093371854490007290767612634676529166464558037153306020553474162055566838087233101145640507060821971360199116696011772653512414405109362036010017584053344689875653490024475801849902851129056405103628154372796762883123816577437517662456404578370496485690904281846741434107660754984114657421533434052796282523773935177587703994255213181690173990186164214135439277973347087659736948171010331818637689240537283763660230192059197929591791482244163940318041477900282857125177644841059315644675363309241579702405412626481304280838933770672398228654341731736481424562966180793136953250911287546949801550317994516694055122841384464630874102798782095587734617666779332006361614129983611238785269844967622494946016222419840564818828441759725089650432388388267762115386944907223140800386409667479556596033658655008345015746681405700371549812154559177082855269058782746268018954840985480647767322593083364643266678951981323034384784058055425711893324488033710276608066426197680004014576819261412342142109083788260348803987158967469186840591275950354190406896727813951321988421183256109487473527648664367133593683737190716713615344289207252406073057077805616065916154423589107846465547369563439707372217818591230109443692313952203010113674073454061705952613302936743793212040615997089068120350786235412780541682658235374259385696643576271097354086540622303333957492497719953466625694281212119266748886652563151697066072400219396266842825154475614963579406333365845237724099687357953227591900979741551721334845333578681422873993851902093678274021559991420454064644643838160009990650537188148493816086550357227064177438662975167896665549998788957217902623090845440654806465185693092556964531722410894516454267967618197288329584139351338445960416728545739914150804959406644661353439845014276180542209659848671099440825081513239252136069510626733736792233221425995230222934067640904766459615450559484204881311441317204646926704975974905993511692043902760515744667739687080324740688040634377784167250219888494354098282116000727729150507598693656847220169410461894445826185511600415406949451062815887248514034519005556346661524473749607661135778748374003886293884886101950281280781792744070503495840575292845298389091576491324731010563331478134640265046262915675377909213724782897003196325940716891251330215246561205435837622686092820307774168700459043526358174946367245517897849317506753904640407241603363847240546498075003930024576610714660605719495109140248232735266912214960160708972207220546284073810038730762296890621526297111428927346339214378575838167995709651297512128824707622937565721348906240743618601418995950002939343301174633003329729078340263825278379605300004735592754684871892997206561365407533751537477921962495517969220085573147944574288225924228767773212885980653704654024619938729649935944076356323021311084824249501800675718939861189726218243077831783344585703611816094139763446516272565828840776168782130134255890738184057342227527909440150796335069630683158584259597583441339316667997304805147407810420516213562175409048777330227396980656495900945695698536584320835620615934529254241892916173052224079097935246571227066400541353921262095374160702598813126795666746170932371740523629631960893652984442540800743022804976641640382829257137163603061762596724995717615369585248664493172010960853457234236254503408185444144127163847672628333308189585593647600616352498590632887445032551137768181305334664669950154774082493242098568659350490106211412991417730998045997886539985559972088652729738821650877480019866860316340830561230114449331935784076334183313859772732345270212652657729626488462044050323775092702644091599212408465248626771659965913245715413925400153811699661401449792205985286546311988145874191873375518550958114085871019692417664292423893754945163159477245311019841450800876155626440788217209351125934261844683035240861073794000418382893605854407065172644916885787285452650728104911722412941522346848448989734965331556408793932685540211665594490751531039708324623445957019685643267568038544519358687335149681959769600820124088537990084001054633523364189127960544687635703710651413568371551244836184919250949941414462463217845940896766719116487767444895994644315839584871818846627420278441899928803275124496669648679345894132986023409030348292887626063713644580737134010172699240031409996289875932823997324878713822652547419034882217744091981954557079637800427801458791944118907707143580110302662454293625150543461651519860793423856239066440925515459086899700987275783385647691033468638899428963619169533138310635144431946929978952150427343027409345054891282240465675168373840917374148437318197118822641196702951400104844973686883604892628854074534094712460157846887947781317083920277018500839599401350787510645356146154845035346787490153402751409018340954645675419760454833086921693902489806750922992294071550692377787826669912301589909380813372850555299409605993471678423507867390580365538952018111477155275161383726656687055032514568315829590653570060806574097269902272143379149237524221958255515527390476641515242308413093279355619405005324441453950610949163240987038715303701528100887540809332947909865917839654089741191987143734113651271643824052441584288769757409914977114147142795082958870299279246833213370515267564394231135026287768903446466363218444592171575874100924113199632987541312018325222678696789964132934113176366538896832051191636223996373640065062421869141019822306441981351532197319859101563625698621817485470888837822021617101491243249216532386557690852747410225478596829812494806860664444935191830374836655081755422573352685140389878650300704028993343819723014103961473408648283476126073019822268614411798984367558389159008469991314054138319391816564308843497882941049151717429748649096383896734306517121736027545375783431135217215018269592914932278747374257245721360410525662638413895262627930213000996619630032325220131382188448222153852531276767630485518700683146840394106926818548765384056384831921002472231916610091343950767855513837048214284915101698975339078975632339941072177890388047633681374846516892263571623071840641566324924108669239676012160108144560923213374291457410884488061247863773882641020861802495130573388369415850878231970981515867117095173880286795801510678804109449339024806890990529195328446696828825455292078708090501661485367533081336907004801338828585461654041106413320250693835596317424365884064726157576009934784114084062998236648235748554353359050536126274282411100187848052953044769863226366278296327416370115311182340817867398766107281273257785139211380768154184112944404176329463049006186478075989126428325729987352871612774183368051756379419524402321288854911774141135065311168183622698953190049592292508376260805003317433385637848674958223105863188940739807614496920411417917513933532988588534336449979130016571286809999515576368835796903449984723426041943185991220465824115749564413763677702161143127001434771612016464832132927118257132879105841357861931189374595323631023941161270889013912909166527192377458686417036480120329532875161201291706095927090777356167401939117441244411771246014178496797282493661458990725500824349970890968096364168915696208984519256267193430471714563044118432399815568869354337262302614980035283716651359121693178382309796485222062854188473486939359438432541192998753765119249233509919666893106839343099291774291126087972830433166387584023702201121723945611447412033654127633402705845417785774852486316499991704854769484320531209292739986610752631319764337653802954121221416374236023722185067791138872580576777554374253574423899796335819714032277935613974470711946114141226517615151238823627905648863589472686057334479728309257094391377951656305853890416816898769258083650412368825009361192610789112427098812226934685319851706637174204680963766557289364171324938644334052887354124279025508689950937615120464984509308482094646064177940775927273518750614934528181767517108450236520441254236776815132674319325109519200587674918493027769559654098122539635771169467112606023606943945721364412680764649901663784374841097357300987497338721557269597603311371288315838030624903238330486195211498264127235866733363594360815330962043523180699058672531667967198977573967198505633203916276929612784504325041289302784936557570466366500504235380700021043379054365452676915632116230708153866793287528039918102228412979667549274141381460065654850877794899447855050889491480528826587688444566272939081961440068398308054130240372569506411438993318116637701630751930445002156616091239778765007387433986121377676316379949916041313580029425394150936118287792564890199706361151183343773228780513781700685461893977078002754504705746413257440961151865016887216781580801618548641080898632223340991247492258081118532699879573620303636012024133486339705294671240192398688862699835431092004562279169984416988321201809559455053488532617542549536341348515063118962530921766529165824315900458349693970687658654243281945647647853735525153068989109796668413587810025698390687113192142541988664192866687545377244317614463541566576287140553536428785180176621964136471266899624319482731009397417104259055243749687333036596872146018899966928025823050002504947431957841378736177439811819412948004602950542736866923100793833552779750038359156208164728629951618141511824304413886495587047642038715770645275872367708081805904084235237757757540088468775611166581392511935673190944139020961428901109648995715039720715905042478578296419139818646456980690038836467983679810123769463228841408360915854430104942614876035037990344177685999567599330502253234765254688995525806289317811721823163414179508778459343728786415144638730344373009824804924955400332234343780588846442656516711172540890242514142656807434576029571481282240947846055854321075345638218480483756258915751706013714681964216897177605441439530199246953023901996148262601706284818796357991239697001594441468677531856458312725471743944500821414462982830493756959752133974391203106521261696229281178721499149753725472129306870385087565061502752264145420337304121616234963978809943527080416693322721835932242791116573630925466496712499296143990750000941467635710205091352172102674878381800459683310699995590778255464891283674339451582478152805746103415113414743563810566377035487980940326526654845824868458290675564358632459180753460775801695839975806488137704148434341301059688439299179317417474286712514331325517759566739120611354673648311519793542086154722283241497585604017733891732111418623652027644917630825994309391671301603555506639664006376991774482383984045415027277641720112291229061185595127506650649835460296102965747543759069555507510185935075883789469234084151088442421040443517845101844946977660224325727576337213826673283184851041913722572799003023019519881441525702121716572276518919027375580323980856028541791086963303805028305825415520792215467550998816607126415337966690626696222880410521943755535993478632239333088074294403163633929743184574294796453048481266724154429605547789372416592547542572729481830358524079897060138339019218816473115578505264328106710783042541553827862550735751441780943794515208769644180392945053371069580028806009592615542404295384939223669282415651865457871541550543768172161949416243980236697017645851682241848234949856122612205259406946868433554157828800042360426716492051983003040063908216049484182231793780018789714732654139165969414662854460720141581663385275508319000328193491650079157574254157264221073192131424033453260766000540883242243039536428415951701019071959689962221685724205827008044884586616008524685471176644033745417169725731664357129934934160887181992917594663181328648661847971944939975673768896889421874125051812865226543689028478952394531841619075978183784293738692711233245224027048550113680713014991275390637656776195040824729457795161472517416283340582936314389374727744967896513648114070023132746198982924674668855898433555455760427757376276094163120580484802719998495539526723426269717512224621696901278008109844442553591517508360950391542809560341642294024501253444800135907132943742644076571567194141395791922713654100901617029910319986570525840925416579984341415907909404761270738304781789551094730906625750499363514227862650746766596040918727372254774166947297521215673568572609788566464575410138193018478212336515699772263615169997116230814735386874455941675345401386655999956253624683462963168340979755045640501027726108378785182034937053327921389434083704416817286053516274318097196418515813346386178640580852899326162674792028229007798061487378774117335830274169613120796025607848818904686228962784390204998370368536881027711277649164807893994443904092507590483341702890872832414244933523646308167981840710198476936630553895402873674490337398474907585950356060720035417187845043016881102144264988472971774495941058452003823012531660787088599066303712804121528907855153424172213121547113947843863137802569372757622158576792891521263000669716993847263443082846306827831953212441737975797640301436814373461526469198950210342181762593659784532667602506674488467124609668661730097066417425245017692278852056906735900843160412459284748056689469781827677947558847010378813457163188174944284175998929871672786857254665536773728311244461767304087523506505439172831961983050563809001407118907712241761329209083766220493049679457866788418100358637383427091353528093942551819807934978546448024964273686417768433552167080896583682049543336741086899344362297041444343961098861270196212361682942389358044719704178209738919920823023231464235056710649911360357731956388471918197698807100580670387057250153019061535841795559014641266966919236290595038548687337612191372174427144615555267452282574000580347074835030814855418010715399389168383731109275020581701951231311776778518448777687268042139392860342132389958185132776664181936559818064557155854038012159297126776864384285371888091790995730806801022541165164298547985978012041820530325322575249974103543108838019843220023575674082733060839664255593659517583051615349713443826367418399028771794289082660425974949114770714229702525112586060390052960240254582624832575575756121613127954184812812156853840855916278057092937246612436720588868157679076930350517895756393400311125929797253577741855442005699664022021383473566037691695441318906191606144682518131601766098616772320663497456046509728418682659512753972733368694175508487217889388640618398460037168689685091852298344657755164156298149054344187676268421144524839941312303852580518486801957088922618832522355364368736458347914690356787225982557541889755960216814522299491973792689788065727749960206183123619125984229997445917931919070044699554058436418906932673167089261261701339842671888934212498755699024305950595367665402753307550309490689335933765554190732175383356648904107287803731742673096181407451562072125983147245748301211066094797879629490438133241914270611655269733179812220467342712122664138192914732789436609182787888276414614697642220502911444841419284413818492376352771491469069743360808145042927657615875421705249394092838637329473577842342407795484193820953126235340275503505710289039431336814819951535661092447742704699911672378989551639046374983966041943242741993113944290390576059074155553325065548215179292254764254508718962213113516699330454312000074419571829800650638738989262564890543973968667943212705493923274442799571733635910633348441851469534298124196808968687408323754080262605943298620562918175441222290018402100592584355705001162633413891116472241041973293543067992468631553900279513923299722276621299513099409795053020739055958119151243330404078852497419810925372417474301388303179701844108570451357681512915362442949250375261611011837321004651896146782694199724442617804346498440708181946488570155664729124940018323157474892122721505485676173310551732867555542005513727525722807015844443069091168420794485271927516752388469452014058436541244190068829957459005435420174308056155946524228819312720329234092490339765471465181113145925190572580493515112436689165402260064202275545801761174352814314894999161467189352381443368464042767295387167526081339509875962077857277892442039855982834823289177208117777338346633424188492279198052968309263756731847097048722337076247583698147420417742114804321363094148725478149263087466784789524555610053498907888898459211841022359782737316521284205019748541341986977054395388749739014574122119048053900855254751776918270607097967712659724884419682342063810582599435298238267236317342426715578296460105068310046137927489065603076363259810279366112357062420725460930384592230956994474648995943528035957281220735900214846748760962849701879898071617087186011314208703969843543710968435176649247955442027422470637716000357522942761374328810277374243763384654818232442092545858652299370190888474776740026800100967319726684955864544676707987877175135398088398320732770178421004624993278618880767133092543389284289547339980467826791459819674690198306839892263439290357185733094211596628538845031122658632570149517844368139185358392042964337583894923848122175655021035540671058277242126887575137843597979044491452691790592703508814671877816814014900991554621690142569780350359587247391421349761619033480456499169804389482848716057330970807205046654803487557123331222248624733016399867137954214127886798643810255425604253579275162413162454955297310236459199301134961429522185316982957104068514842150382213988837696390758142551957119935917111875508775962547737751359233870322994013917636580370678440421608595624687639951401471457224685434012807858564304393947069971219759406459214429010712931914057426534217347134164128664510758564588123951140117795508073216367810160373433760157315563492556593937367165619342185500458810732233559302448256969965558388305341318667616899808566682827713235687068122625484629821031421931760771801239058725534724204741520016176660218058824619496648746064563878996315071244291538840423244220507560321404776242580365260920519148291010271577459241426287104455972926999565011286066885462748757142218766506696977960282304138110846930878716848357909254627803494426425458612045997199608003166303479589422292894563255312542534431739985369459805836028674518508105331304764752853762874570977776754130771424304223023253474040930306942182911681643903916557470032165881100062420718524757974698052765170972745153025042249461865993728504011681495778142596361240147809683786888511251471276223179153314870448712057937765503422504016642970150767388550477383288817873121246007452761235417666576881701011494289925734910123564667634226962580651127133964984228245027305669370892373581646095356116434375056502996315167974534093823532899942277025627180216562436255117986972162498323095658719682960254668065000046716222402396653824185505730658422814460635905595549641982011396965284439301573931052062830891492180634287155353700590035047086460963544229109788410609656603436535444906170070789958318056145339065047705274315664176097215179194892833648128642306046083530718819480534421773042360408411915761644613091367593152863992339638705407205479884795798861423169962180644201535353179004476525582272767064593635057287804275734855898768296689233572428808680624634232248979189584169445790029592863228882938280091603246063532023822312473773678740617940901041381533057642331028300884886494159225575438094606302586267698917318461563936799577053825149341530483493122434806333423431688402699767024473274906189736334543327828082077440266709778178207831208572634456094708554852142654235848910184957350318664217482298567340632852564208874664253405339504502310275449342901916000844150398442369520215325600163927669366477809584126560429064525680617095585204187128148134743445153937464754963442423720538926109954944289146367538957876055842484190258311817288502158858378806898930594521539281374654084238877753610042351014931084607654329094608679691001884038416225009088883741124483064612377523317654542042391486843335315258075266734685821776462554798771580037807371524124840869256907049289006667811402797916424036537433395145161411107226456176282259912478849099284872988870529808306524599355173740824113367757974241272335682680337811635754998347666990823837814554391621551285638557681880448034321321029394216240813542424802623088222419123119256612052550161349899775372113033318398096362166247186330045413600338330530579424338607902112932032887174995145272045062395800542689317348183540808487347093887388619010213621756502594244591135144212702101164809309303749416729159362456878600346602240033953522514244915160604299764794242342454983779611349866591027178292993124652842563039824406078979869734206039517007531875786306161264714500424610032081159416960435788247184765644413513385091862089785746218053947270574914758885846342665182414684247387985808048248820805502019288776349020535515856240018934643324268636634117403031223423717251943374542481401469092871472905890150615238956228461520314617026175667585862095154776828356254506431626437458076424907141785780027587608048332596758878853180959596581481600806521298179195843985925295184458469272466474250707609151685174638564718762214919321562301012713105284450748107002650244641785872435677992213039965242511838279141848265281625104614721163047907822420234842176235064391415298230055436257014763699588784501425244051305748180118673087237596524652046435093431303966655856293925156810381694666620313639439917344894253671398298156274119882627235109525122182170475068625339926753779784668099954204214991134354070102205642549268199940425166589339284985656673473325794934373118520489614803989074911035031394683340777866936873425554754911077611269470298782112564765681491566691909552936732055957727929512982090715157730091788477964256337430021458036031447789062007715549047648054242705131677668935326694373590972240083159402375838831442577635421404408604212995770165367296599020483630577798545770670281905871864830613825275278600758790702425843587438121184097439290836223989125389316731842659559659548495881455735273119107469179828345743767854259884144398093699453232606572599697588242192935879145436934910439042263781767557322498731475695701341642600414988729796068385741483909738944823408130109565830165946280719178447982633284555363597451218726033426125357817924068700106861650620278236810634292874145081373060954890892474450662277330838526810902090814262324313151184953359696898903910317086437143284268249064812666240692670421336716047057426553138242434242632085609793500650141268388679333024186546223074720253207178938050317199178734911226776218997084782360426481116007980195606821356266409245951405941919888659605278045961898798897812460445075204391195108742574265625350337428534435996680254877211293856191012207429651120888429546855443925190904093459699762322513642666844939593914310582200549776165119323633557844773870072751670887701833608973105333061674009407487608426748572870502540396522062498438780791421232920380618831048172321093001720191485125537211230915157190164268127137406536835464034590901751691907737631221262572265866454964495912374961837193955151966504573149042693486981404538174573697589822751137745630786723562169766825239245298159046756218528584558914530148222427065840535952639098539371766197101587838732782383755847244288253637262108186657407440201307721398294034271432459845503488984691608935046060460297207524305222505088484098134455999907586813154752220465614576642722331404526326965352792923797929373929190374869671964630718060724784747396550517097475096606260234290427337646844450582247222021323863885571451323474982034996604066211777772978606443414673662111064805331614274430705465164829466033764356209291270324090210435102759540397065472997927210896183967315084703036220442759840208056686992252465953583737496013314179003537005246456058694776746889730944136910107442020272238427657514205225470819089634991421944317404112374851728895430801845740910319994611280556433442262289579344277051736502953133602831432970249365622011880738379659686693856304036554244937571974210249374057019369442785138482569860019532151625689714018351165254960063601103120281995349670461609746208291773657299785645427971306965165001622777885273834072598355967397082404631525917673804229743178528315649444954503695640114280093698558179851150272119159176380048296581307898594703973120653780203227603441629732969801205906682442816901430294939952501589890477105080253835157158428051781526426400657458402791703655628341155199917788428249951688578980881405096867648256081575871689213785261434824019867008595949183437996872749380392439904283012408929267645452342219220757841378533424878833535474932468597801974307389167814296105044449662857942847198684931704497491550675521279111615838057069681965725948152986672133352580867678999596495159606109428588893062288696613263121755757586483262796857114153350264721407950235985958527648203136398655628137444286761293814847740202250445085912182509562477907388965494526502037078510053115696562202984993747508613642871904397629959903131190080431975245809400009145582174545266258052740399813169325700182768421722318051428840682005023092966177270185446003704330143234525164686645610521720692906036720273335396157708284888234289728813588940453449022699453876878465724857819287558201702633487954178253554555754906825006997973950542909504613420534309269819057255312303387133029128503192281356963960128385345521159435691409774601581987429177412381988958667271114272958310827089863920462180345379455624339718562497127140957925961923078188404292453555297977742210688936733885548588107223676878485938225154035440994822529059283484780136013500915142935811453292144235396298755483068015588531659665633944781862223936580697312612851200242204741143375961429477699106333914637580520358154703062295277217035148212385304932657058446113196562254523852860644493304295918167471272369727202950026266949386760673907235744132686071478130632796252252135834514617531970735242968090113543146777394534710240060895178155583075721182150799500558837744547319261292538304998174304023429707022389098160761531109928886528725602179498866339642061820921316043176801177815429663673507872419184298340580597801941364138016285792981832086842444697476095946754659351392719202708606667009644691264257842999697600503752819096615375661855458062643522949216579083498437925743197158770646868200181823204868998430025645633405013849665576402970834480618786696893121635133966878313623511774979419930548228986619040064301471543595957922754427777943966726337297466277977535731960843472491811902101192943925903802602648417443028444782005168568430346614412500612254411855360366968299480657213953513340788692453270591291498280174430311210718841342687878882980021071193184154769063232133035664704280199834162572610516704131168493867704304027750949884410851369316956444860759317083546767369017773894297315455114592277011103608430557718241243051223403292822987443986446401919560923000143949934530604425799693849177239781614945113120420486863791430667525306349006652395804402898435392555784845807220033202925034659744813261401733733484152208726498584307367236488056433128304693053048735390596848977694106624899681646551018255627690892330654374747732515743084823464207618269372020011128849083740841566637879049177157916261744725335692110279631363639619333830430931690960585634786515836410409521854218925393845365190009456821882351219678534912907472733457619087954310277007145342964288577789197970051773733189425647467787059514167095015125436325458585059092777722357443114136906107059254179657940736448940133684621259740377694362926710786480691656941449476496275547975269431297506112392906590555602998061827757923211986904515905942490767601449443302144753811078861683941736264313824737953620485786673661943401837539950788735707695697363348906096623415203303273664416840915597267543140606818691954289729554967800742088808731999842293318016422639183011407959704912671956726619387623534431523067783745037399215560497316196545379184136237601366609873437405615646163459852384782852331973079134316701982509058532692942864012889661556236653366808679676269021933858700947062040850270178945051681786843172770319342784307016451931313911485790961696844160662092837320833387867641488391352989258481845308669431897588412889658670242875568773123590034961649957608292377522689365557076354134082655772488902435754854319397525790911342017983026115347451748939422823882771044974234435922820366214729739913674036710121597043209430824875344769801066976990314194078502080100063845162203542748953285695525801669871401279094554658432144685317297663885922327228023922957255162170439537798680918870851195550148345006535420589588172819074322159463277706136347609047316518417732001776274966861929830048478422225166252681241060317143651945672843233488928109589044695107654103618988534832669434021847931347638061335551520236021763656182711315453253432415248318501600255035300235099811874568401397841324504129248995106356188398860593998518606626698374304325682156089353640803722105692217062106540290334689571523900667996984398197199449488473637992656271379143264408554512627737680336924879096474511063094304810474408259752902764930190996182867206680083812477082432780425348545154944826733517709915865139720744453559629062029789651482279964382284624100494925380966314328715849474649687732429417148601177579254648092229392563484734484973447687678972551867684457804193010443293588384787449847191575466125277421065198340368876821770985647989749664179637585327608894833993789803433086935905003885915004182247692621391632221151170732974075729995059216141953417954539564825806957558194331141010547408583669763889748544356703808877762253423725236685862528686070111207376644417703475923902243320540292118336359207682874681916357344362122584685518491173782814989331732943286878667341277094195061433340678430955963466118300937723559315500840818820429901112536254951586587987779332016060230253996395824334088857852464068389306031488155118818510633928013806882947755338685768700628738187175509620230167890843352957729937039481235532251177306514137747970534389379645194776233680444566103772824237746406531747191433622855087525701248555303495842547755111923104174126089604176453047384486184959876882445549497422370794337627425226137859561508152707173552251406092471466287707657592328000063623661781851820146612996897320443385067019387912233902801967928485764215175360503242804953741260170275740303053422716418639495786000064433959952392766917288951034783250731781367442373727643857425217753618604996157784516405621251200757112684340692543912705480417413062908526548019648798111143734157554754999170822366196507152797220508969852051343416490535547278448297207107814574514568460861115729565963175793886474842463316376564944811616192160462434287370290404097536728861306625138090935098491430915201368594034990362979313644033125901186964880120874343866614120892897810507017559263159328947593335355585396153573748647327788469290051483756269645692713843443010871929842282561144132628796930855435148219592948067080592226824590669598704980565202263218860004434558133848213383801071401193705031999865589124946066131408979946504502916697723288306019518497855653244346355223479476176792576544582052660516799447607227055026040253806930549886106509217465565888873017888343478412895999596591593227930457380841437898235779781221663915400107412133609571689636670057484589520547434892616196173666179668924730031816330776842912398177400293806904648200505930567210970470723585762765594349715286685740580991153560586905724472242083498594270765145780433987934167957681379636208339039508329343504495580595363760485462231136251679236438135424774841948043589332145988194213605792941674122615999836435110855016724402649352902692947624134258256387230319743507861606461769510121854106322030817166112414884352676440338872975765844395220221961007374345414850891687133744267835952705613152125262073869332183059343535658930621030492920953553814549511601214641984397939037189643986934878415890922090939070427578219059435435709430767237024389005345312096700350896192224298816087686432982939714882496041244651328082112489224355418833144474926880363423918296667166282241567818396752437966596745811699149281369014502279780135976943563138653945547206845777717459138536178479266953710369508963772279061281236547915708886907667689081937435749340610368410673860054110026278700874705947106586451439196980559706950556505015123393666589057173314358336447642130706567573199190393881189382530752108828595161475068094688392457400111354702747869821686243591274321497665188300319603334562235534421417368117005957663493676223290691848803237345192434912465665436032971823841739691986587133313412071051707368341724123447237186724941510842704961554950379550152873824361248605384606767203928758686262616984382280560158757866830925122304015998975384892283600959807521594943620258074717157735374806690050015349853590369767229710437159210984693912049054262463396085508249182328436365843934026293826856371525962389474471783369996618020115478824991332365221595665340485701123258277084364188621501307157793460027439516892752435518239624083915012347392466865100222767351541533981744380629343656818843187021953946745788068387330450266993482047409308509529400887069518186325483548249662607066502436649956468194106470407122731100421544185549123163407340196180907498723670338997499343924399165880651284367366790564169573652160502822448852175736113317429473563577483084783309849295743057306045041284029711443688973655233370252933328593415448831374005810726242464775155356118977342742942596840194068133338141610436974909164044307805277729770093827687366826928083628346772591003284128128935787611886533037994391571094370917313087684148298147316743892415070812333046638666526885171522877349580865070902110271308011488070543712510861641816152556748171047862194001056128001346471000489600816181363398613143759537835734463470097437238022397066733317884712174216623797833950508494584056480430059112018417300502241962981137643255508624373599366729792121239683362625433079201974575553798577860333993611397314797358588046748266319055503171443747510740826575455384526005243911716394798545438546404774452744423208201158058940110410945383309204755437598313012780340587673381134517847042396208849358293399476294892749263076151959475808635230500390635264376975508973719632143202797580886958529773162198359442566894666349865566418285278405307103946038370553143779530705781433206165483720876373054215104981963982316223946155540162448192274889889915481816161014129437811142233274248071051202784972384904402642968076980344031601013659880856422960754069569557133508005354379659518884145626531983654599814935470353339657880494761273209004855311359086974714535368901571896984143805775481177794107604190191456527288840405188279508490082645360132429152288889379751999559985968288936438108911271091030997306757062186597296734639843061928429550429210546691609154182803517832368415521818654382567963407111243064385515415624897517639771881262098408736098299238363730302750594187706262635737848143833688683682933396988927744468696966294996896602769160036986059689047184171600019718412362651997930127438487419139272279869802272459522940152432208404817539812400825763713606703033447765411404274369962054124385514504827002105151741189088254926097747214620553667790075520087998923234653592526127377276954567121543864449995014845268543259740875744450235595031758880946786706242795049681223173819531934699556151004209438721536083260321530691857272259929860039539254734318064647706444154409630859833209894281173897950682744388955248706628273280536479247410723546119459442653797874986979596432214495014352061663273608338778957443896269008896094162137344263820026765753391034189247610563598881700835396449558521922407698130525217319439050132374196453428976165813540733130263030285478022485192552078323237454832679632890712562747524612294391292964140942485029059474155759927512425085069966347353764294073839182074190916254160972844591625614443927272170590829385767671304543843359908261608628467196328751602860804035347208536219374949413665519915439308536892373512748507429481445196541693822917931530918037820472872238945587726485845658358368883541764394105647212556438640151856876957798827517422243471111552623436972117076334504665327247663342378211958743959117615783397228747084512798865992451832791641445982802144372701894626680357923333751748064104993185439621884550682118360856897563251181387504609424195574432639719843107892775247235667228839552735523606624397259878859853963287728445468369492367606484412273536829219132455470407442166682067461265670796430120043985535159904741708546163733620270386595227380642312621874062689090399816710861502195826500644977817357439931850521577151608476313142971006824824913916249289255612638476738621823334522830285701381554374765054400784656905883948253134199813962957362501919857105808466792364911059290880550683382177183709440626999344018269197068244705320057945408351861003661161560945082423986504199873162383835746664545218873590261219440234531604858339212666377250620851905462362373373281142581664384249889798596679541759200369130045370374403196275360687183013764812127410561482448795986351085005487349029844775297575349396655307150551544103944040938653741666521591833549973825668932645268620823596214023963409712242682687002533955826932243805998440532426908453047814199149893110710157169474955576352194587457686296301838990582420127878675579693472314406850307446106034839145987949779487113913546290254862822249743894474386826616436068318124885987232687944071076616230538008602921583381443284532240746235541879988817472381285359683828950062022524646357316108440826636036431485635531605049915414413088721541443317452537321065139611973306948781391309687331861366694409619394025720049930809999534821942765587811323521877812457183423976468069730697934060813830189077853744109227621548466408823126429816421239417456971356661539825555435294981722390145222359192574194314642182441166477688866772502171232941522897844616291056628542007145388341678148913456674450692912906319135618464412915331585581350764875413218594557457701564866526167466208580107002355681687581059596769989019854727044136417531288487494139070866420808062769445013196701970335518100417192425136442744852197815370357770961441479780365547150100641818050275407358363121007584869042036045306374303438876152382898355737285260279014415096581135839900820251064150068488603778514517039936269383226188823018995912710008790754166287483223944164452285023918486791381569205686354321704163358637035324353038603138245178894425200804853014804232640441706520996296009664177693761308208068702013088347209999166455805747029726506424859031007184698953106904418174322837847571536750984970434834820599312232247519854853545545198084228145074641693251741711660329344192667762278190834897227510030808975252050302466493512646127848908741183038587799856966390634505200221442023934526686579920442386148475724289010511432888381458370014867822833301640727611403694136211573716994421856058417354456080336888906925243533810539715931504525920940128868267619578511313238397636156621285744226482640972356689220650459488317985864101056438186988942899276314816131141197839485143896402016161447442302822217564827342006461530161701567304518618437705212706257342258715062895985488617620522961688656524424158377842471494798664877070673248179908424974414130307727812217275703938985310766265694827619763328744254465960455935018021232313616829469105165367996131496561881423079790028197020753072041377449667453062442651107845657924638003827385686022458954061439361499404848428696980648326210846438074333655839868808994427884715142957010145120549668428966748661018668765129731396283214410268341658603599114389318076256443444284609274750282537324722439635823144186618983533732369168086950292204814362372048123472392174822684291442906661178494353167259238504105377931104908157295800821890410996537405229404620198482059471956546843004430768220373283990614679207880313062108074288782674565222795103975301854924501080667143565220340985209744311712751588390486131129466673396409924349264716231223460568160044054572146286566256168928699746838216443233904331762863708095828508190969741762120740550851100181533020817181367176854348727208917260674318104433386875499096428742804106528574447831399487497892443435373201883750977953460440052811978526927544248944346325741629879428825506076395165108387117664673766387526975088379398903288357402112295635432087437414443516249491051576822711741771193223294539197409213659086000047620243281888116116364492871555990829981454436435840371709565305275679006103858220050257742242925697737322966093854673369294496815432605685823408544370739091504592315081322676781063632505958627455148922828565406945222105635580286224167640557695260322443818335623963739880801424611875505460955509412272002001667329078978000709638482831244629559654502212074439433264365718697134514468968889229510802001625680799512184131609833097021782768602448714433613144592344402060147349748148691320774245973643394920073088574820672241184792682405330459869275458970721315458415444140477232222083920803632412721763116289188164339403686931713558268000635173209745052437830526334298204442515857292937290651440822520931400383344286009437177696508292941118971208737078409355275475946676077044430739582996325838861067374507926180433067251405352116133767896036538579850322184508372345725893974482444444920328733860279920420127995062845861769293493474864504649196863533839144956932935349913992245366414445881006310307109505687734454230964589543614186308762414944474198666983477134053009577978720792914623844469626390884639299690639310163833638321319539379304280498487596279495977933648358480037841610186331741444749813364342738798030257797021830886503641810622157102928202158718144562664355191289239074644949104274448359692766523114695665844581811447637737523501285931265925760750556501984335677543209175069011358786744491619549365520291390943771733201558080722733319100177931651968154228088370576507598837597021754117738445008713798533896289683026298162805530110755775897853482385481298281050149628858871823221804888260182744451616448790291728418400029367469706652600862828438830881335633580243510577635285933515444380101024499444522174781896553188470873781552236440714542829548321311895375408182160748659797776227910230823364843617445323366029171933992616788286898005789119115696128611373040422299624444564522881179747153663579146150494454438121796999117195533929154679858885690828191103147183811299678656514530596798131908004221827090056944553044807483008345642515023609363752556383193517427034362926840234776413899039043362351851350263930095445696644489877604174378603817234206079071437119444753952284355167788857090934059098426280075550024872584457306505575112593538963151718260658460012893268297421617913081168782127210392175796983370070556004792644585997432364952544755986234844740409617147566288275325091737591546032508096011443270411987315969680079445968936040759775018037409417146998188504662898263050340628173028231979912553091836280779925113306555774460725895805497219375476854503466072184115570530967474247232869920729495417686489051896687507736218429744619151157585159066981543346997356951876553230061572819957408798433268786548387703704838867969634471044446288103666255295862834343848046267812214764251660197642270203629450879879092306899776262202336341177114463820153990501730714939961155484037152282685779983851093840045282636757612605639843913529408739455742744647648499241414685824291385791775623295402016824786676002102151382666411013004217800623443217919523686446517769613880500659250907025290015574994875260137231942696283769173901232800260299278068310630273490104466110031406707790045792769827931368494516308950918290483029650019089283364988372143961807932087423287644678068649099204449507359860528957211699519040408338984083563306643854128890071475438665670708501846953446879003257164362715713573472251059295865110984068456897156582545572563335559457657774761802015683785234469640314978538098315662531858094257851058139046154652480727198329095772958055300883576439354657145791344705927674664325448384545582730913986167177799594349945503174771436597966834564542345782349530220337939447123089622734428667174667986556825373251453774300922372120275316938566597761078235980188630750756040834472677127418714589669834570275384870360304258428021277883107135113277277749920464830373404864279022583644737600773900836561591221966284269036366602985432353631799451470339639496138687167177630565460918856551447484434451689033462458468291241431753586574989124759556089604029215539397744642887727951622306124647794475308826542357480107178091527740165487104682655357030989813108310430948667539415116316766582814037008644766865547643833977042757125044749221422969080622787608544404858813995712747561301902637515073878311885447714410053710314183163474336751174923205317682583915034235450586022630586870277924322969161754595344044478574473997117121192077899158121806247094415506947273514012345502046290677833781762141918901469088070744799818100673485939679726693487696523832201910820873136965799813776062143345608391307991994916188426151448076620115163301336524026865060392172540343455286751808258010462905820836468110735183372975196145612254481253713567711887842519940235439622424775173733453533891507262882321321961008440631515479985995215888844824711599783751001062597243954442905647837242827112768861308729717667450387784470605049817926326301121448379328577963021341729058450693842312785744709828199036893333232252456587848649909717503202216728521494484988277546583065590159584351618555205489782673613579627957493305220111916108420802369961389004399328344855066345181640768389987922413230641588672500479862191487276091383655534567175784547455676041291332244448660955148312535361128714521074304363554789821369772009279301372617048908280393909998355740828980056134487032632804878407025880190853877303188187127307461366420509108749612419017691344997077457528363397832344881561103564821247090359536816103938413756883377157827938294135462391627057605602271779835321108182513448944199026772861049687035060733720893553086400814265991650872235972694624860483666589113039585075104744490494726993926452646055226651892497645308072131093520962315760848831138260364791668246800841422358877744914104611556932270788793268743612837957576853818407467782098467762736724469111891654655430484797104215449223977928920676389663589638356641805894421474539622623175326557972526814663117697801299371109824534054493229270933003996295137144383195135057317880566639610421225778725280132528384833082997288182507498851844943147176842056425852484751295545343386763129354644077734050007219968380140522695947091991189551884053449570077231658195210530473114914491375858791465623887194647984526528480268964713172715150104012602307124496122287922468881136328743346672378205581117942027216479225653704224487763296970129276913150042520225944978108009997988559023568904329023147853873872402094744838539417783679432332561309381772050173430979624449853249510339055541937311556781096005736046904087935062129874882405284974393964694658467774362370280144499143003044016617901165797602697905113693090919413004043992505664956242468380203405089480290002637622045000578640552156227401553880280034689559175431276218613147605255689989509498932383472879082539984234639450175791200470117076564797800856626474611921493201815268567633485843782147331176775382064248945809658204502041347269571623703837207793565976200522780225182252963200325369276531984459658381037550792834252785845032591745643500626084344163112970195537547485185666661090821301768897917608118674529452988157107661286450402140319019653862395629151313915405878496630720194218580207054805464477547695567872089601597179073614505724140611419772765025290138599281353137970925603612068498388821519225181321799809333597821317510704845063806021942235771089945917470518247086038195757880028161556161166585331628472637285890244233722087246450729332702835317492841004434726304179900869416928737222783808028826637801392053292867729280423656591254508645148945492893200840060968418317839059349023762050002243391242619182832918010847706957415586736411945092801283496458206833115754626233916641813906198852245734368306773983610104642316464133135532352273752451066445338203004095510321928897610402878825716543401817838874101554129489492109750777460955977152478694511128811244829284257197468820488565490956157685128610593526780265614393833585921788673566005965300985345126546206425434637910629888573898318354369679219264775780379760991519977631569730191138816967770383136451317431644537854570073193605219700151735410076686960130543727588160704998778936501742224661743819326914514928624293010619842541634604853306131224444100538119042170529502102039492849932802291875208800031824045158337953638642237831826693545467637857036064039922133069977838159195259555588878191552733115500131708451679490166772728426303449497471356587672814394265492052630061908000591094495621854521757908484182984664517938419495588120747001060376835634410332054500161516572407201252986049588947079721834259701643847598445188658280980869054903677261462021539863629416377179304762721831365968096850029180311410797043113811864451918491415869758498660224546492765131028727586293867040021300059517816358644077874811780652256850653074520135073424589446026834620834580313392145354223387544486303860708727850277777750867762992022240271074345212459134004028928720902658654473562108425271922286631314180112202868765811959272712835132421508816450452219120899669021973736772018155467098939927354219911627316526245069499200284852366347161921013531794464523018193273960721248873981575039346181702082230279563933543167655527885029351632734594726579510401149945247344823774206587573034636025051615613927268982066048321085542322084072024003091375158254174604210574452555961533919845890027397157437538022426415567778759307934804245360144550080463441240544089726593996634526300799797259212922310941947078384204183075966255394324456096358954142256613673796928542371376474952645273375569771626021992267349139427236091784676196587205759703367639965915756363993425058788943766830142452889164175738503388810078600218625038800881754282047678427259567196048406057121007965616492691699693924529085577449942497756211414133332432379515093640966413408084475286141579712425085059258050810646205124545307221688482019793441153229915524820485989751301007559884796958676495248802794232312419807388735906666453149649151139629244887105704564341997817437109316921664762069094056656347912220876673531620143957944454532762166386846601655005339479315808774710764764454783961099927234890028514579797443446604405111760455845336177008433876053148008853673570211565036104548799284037532175914820188299399708652690645538159173954453418408308262969421422960361926568803854599914531553195305193918345501858845493495578823746509856082124535984240079518041763726731295371159953298713794809681866455468851443625835036662440852558593062441470045362018821220464219259172345933989619257901631775292386555197656249237162846568538934472706908824411028453713258419107757550548159667543119569943978415163324068894070439266081121561861902530322071390646769774538326836815066112376928002489683557571372311288425827689287823109567811899669697740948934872414661497345399727949412661076369402958236283034824223717633199718432399903981284939398586827244646054071699259408454045181835718891094351264176846914779092252837837532395601947453490905510164233807811599663448262071414541587238135420324049317575753370793509694613482852746513771468342056262363219717296199917086663830438145425049988726067172676572483899667394934781864059973119900529660035329941393264852632809300822108367705454301971287076699002478130085130527296684406061016437823071913630704942204938341960095350999398713515874544925219739428061513565643134081615688849017478248578366068004039267599629086309379031115067276719418745456882462830751887950689739054897988939998836266317622380542165500973438436075892142420468068102248730454673877809478772352739016455743067898417558609780598011596558666081808783531930027125973791335895789734547340087634431188614869768378811215108771266775723101833251113919851666507968096448532556638417583116645489493885921614166745675555382378604424455712633396677214622446741586901295620545652768104736368260978454998649630056827907376919863156012916142569306478100698919702022653867416260304963399712736676795742894550555663140148811846154458200759316788356682670899194556985802409067765427444507985684535490547587810845512742772021979660038202099786595196994492933543169491649170554412944820929676092514799032258890049539455254995722993018062179262112407110162209578552704888605381928423608529570140657674221348313326026342174553705437309535701089078073022135498263628528878265586915685634662594731325851956591384689244624458344045542277049670665349938723547520909770648817090001106391255718740682470471367225709217122286721119172532455520469145969221561229752437455506882056173695494066627332526041370446290865446151044256007632917948614556451069225887944374815778912508859111341722330315674973819208639722065135201582800869824687653737532345573446669783773281011145261959958866650108216881597594956660290352758332149372864358745996764765258208455860555244733912117129797672981403798909728650697649203220992792404020662929795608333348370973437110384559313640741164847600506985201567447227783589996084255788427247353061170516020218645681801484237712858745606616591199011868814095160940245806826199051129611212754574119275346382293994753499107485956141079594456101047161296588915916567992554444225077969298705769705847914304011825454535611172427337139999943267214562277193231933913000689026267852300420447759813672847437901286717096517647825594600907601267703866659545635450974046848589127133239909729337983586535080972670948531616454530790871573529955075169242502752012456454820633988339034478284894862532638437039404450543436312024049568194850386290285693371915547792962894565884532505765976820764344629468981452443342055804499465858237505365957053622440381842993593544150681345665070920577444979990516676905380209621766365606835781587320379231026760528625950776545290579527210420456741385246156860576562821874755389025205785080074069337294298773746305792569937750402685661586616804074568615422161938897946385363383112595824418797097195495224074795953951942297685825139007695483654789933845696356880618290567934076519758024674217910250332216964377600441282077990490323308123176112379972572146457092833121847175212958011916642273935144376698375199845306457873664077738069965291870312319459500416454571141202258269724698146148818462890498727283619238127204197791615571313447996875757033935401932546128945723602565440312289217822034095434438836935460408954458024790180847629703419796230216029451611247691650457318600598116417274382667307289529784092440165695776572555572957613024253354790950676198191970142415164574659357446039596736185325510610079244346653294418180701214764603012486296399753334724745983433900868545751604672402252161362633437520040663234254993084214185882609820943615743240845647108254431018830907726457625857025112104655164462007203915374647393215292063379797098517074773038060536283898151196954606442014577711392956688531188328062643343170171702051702648528131841251634392473071713355495060515867136110105845780504697835880611507229261275769395214080302982839704314172657091329508291125343176943080754686551329457922242764990417404748134107636819495739774643796865183044465668398318484194824417605986382138378235314580373045228594983101017622494394053901864942713232427248943202272085052667040161106549298027268862995045813201407835500681783266124429473379347087040369339474448836401463014307665488869199951906540631166476458278194049730100375198570541672527647023085919922739984234149334998390978640343907692242729337668926604583493494416947156971554705990421742192588257534259299956598642676845141061238468788065445791771750402745847628236063300794375840743669481319018301570912676662079893317001720205395490686409451497740977410943458573452109428596847172702340645067100714287458635586867823699633907994488074376088353368203121137324454586157104041864292587944963777514577235117586608817493878267538776413037795190605040647630268064742690645878794144744826935195393809701784967319464528914389222386328010121834314118098075047970243899193572725458870527060547047281474647446208222454074714169406520696951676001055917701364897132278420170033566432054589551146221793313232221711932737347771577886583769699079117113172835374019357198631824447047615448184545907702523441248455096812811666497090604322747183366809811678365157004680187681709568893241844073623106459102566274757479697637472090635484029491734727487308120195052709637583607462545479352954234171272681984592133990264190257633736116569738550874413024110469983643222100126772868218094989076236868926338441751845938562628321296599412137517969890520924751998789466845120578373584504314890844568816138401588039698729459420098540862969471322598632313171273219428914135494323359122937242309660154616499698557962763275554574595798445440322304090493465934666330885736959602328575018026850212000712714207655565772640798302072919445968065129360217761136093911359393530812177362843189441739621355453605002461387879606760408053169300250459793441825713421613614440119152289530653007779053972003396628941794659641777983559253422287774656400034598439352647735178351593305571994715981212503801755954757774595152071390843361001153790490150789070567045998818445741145088305122997002099696113097121893728533083594288099049270074679601280969718292839412819460089605213233610705214431760149950199589535897183369078283138634236857956796563419293049769815209974524601887831214597368460756747663606003968791743542138503489532629582054474876924133036611832868911277831746025460291279129556760074187332255429082447596730430080458966345337819875369948633505377224451590105416460356658870698989013753888024327585151411858454353652987491572718865356408268327225110147009098986271674604722415287768986226770369839699597828165579408882537183764537402218188411874481338287947196445493757046050207234696253360159221820280817972604912829242072671298002423760022464850087988988572315884221469461460647491027891554652123059424861027260471269813241493814990176735748960941182680504771730131645894682344607540907505186166101541070179554175975982804229386271555107777996745912246616384747714601117896485867746082191861044175307319060399730981271821910672442441948147115278343039206536812214246550226930206567588460912764754343855734742632815492770562660066546711848765207267335654731669662177069833645835826830207764610633777864748958731255219478599052629324698436382468573872328427778983992573759790403828529778739768446116638096241754775914830964299155281451658037282442319575209277265826932305975246124505643557559140534461201429767508244334746624398583437614879389964144402514113002468869371952157830448693443840734559086694613094644813823535320421925347916889980143917862323760175521459465427445917974760636166524018620618884746145586487380583089379600294714755490167949590428156184287251585293982983632066919799567389478800199587461598034828312599253297599105020735073626602542431051328629403495541763991094763294485429044481026891524616595895214573201226639910332168000686350486200735703485896106179027766071816770681793663180453823791946171259561984388576095180289432157965212056576110939899154968840313775493935408569534499080090127038401461872626180182046673795994682954369719423257922064747097589525107002037741719426389346496757154272504044619693871883572775634448769445950849863887761683550588497002868572692805421291795858131914228380387137246208275528683064543331486880921516972378760137552798110459669882917779624109707091370378839304506450124462159886785895788637091048216529811520583322780817799156082638433465541976031504888419198608484062649004622399587816932942706196229745312713653269444151463625697342752416087344026979787900214636269626201203746237533883677549691572082415463924241350575749432317953795546323852419930894060511341098518780558840927462435591167161670187118155350582366098569193922700064682288358994486575226714800463165675219420196618304625703452163928231825112778342832895414247217260081014787580302122947515344037127233216708657243418108046264779578414426518997788601140202712329482376233826892096411116301103221754850809433535043407762834159462730030005339134180446423526240038073951095137011158509534732482237438035089352893521658778097600325714628212835419531225508204126987603541890077136511086047181941080884311107425363917138988135975319323346546291579864775046845758698939196311882411441543035704000826401267779538411066650964079049875221717226415463064904349596267065632899045783760113685132624683460213484557564626077735218836021662216832732675246604631090778680934843387919815646612082484867805064429695846021029304537246334876025996224270099370735871046327459968463323761050293787408079067362688314322240026342541834946497494337876425107862940494355970889463350968013376240248190955811349132979136137997670206146980435014907067331506378762402066239070271832794634048028514829560611547406959972561949296683021021193050250622682638808965406298455619793389128419758846351135820072574356168576772366593657751853637407687010082486727325827055947358759499152718354765991563463603913785716729854404027517173882658738499177463098812776933411133364070227666786105071688504509241774637681798125076910950909144115833703031224085067230545812454372712593920137937129895049768896410465834846385074819454011857702359172469012966511482150074342299282812227997873756699200712962845547283485924965463976820307884679506470219473098014949774430994977910414662850090667009042196029866331103011001113278234640018058898455589663934608753728519074360022842303896215171619564180656270009999560134896928557393262646415725163640020407998471412336038886746834087295761469762659715075739705145216740388083854201531984940464293562083494180844821651843907186454857935411988652622403271917749385275782250382269359705400549454564643324866881669370213670549848865275526796375925429531152739433899621680155290688351370329024845825815046447127636005483568596542941065170419630389669909871302275853459041651175097486133027113604353170371718464541680987314181958503156487077214947885462800392627751845665043091260341422184230421013314028569150284646903541775090965422814083329824732595632824701886813189069773412240098245720477810212442578679419621746479708245494715165738807912130559425579829365910185929521458891989736410574890894887746130638684259775464864232526863463439677983839121192848155904632572684429806903801848937387866267760146675569302143175294649099268057699957897317628916600923519338328859418224344448373374585706226750497682736139292125659038846505590939178962936286792195698567220771145167687115170363840099018030189287795668529739177054160961453465106993759159622783391711279810129843002774890935874894539811735338157684613950841856380458329867284934652628692878012754723986638924135282045057803538853648470973275449256800942755965160291034577512451359446531932152689509014544595241696113698064708110231533338827666229870284100724886605287603754043021857842465496422316353133503406804027844414752008268900378635478415653636895673116883950433545631780101661551034655643844886149827139560795729139057900864661298244152281347786442264533490158637174488626108777428373346567586277208196830696383180588110789389572837677830118699970089433656062457189838150176746551248089349465744770008373453061948200224387252360495475711739466291361825244605762600948866902565813293113506744374658793232025038020543501852994980778105259985304488755072493125506510038857190824854783899326602860337346599356873644557467569660119191601438807752987664394513579476071447098889327766053074116311530139110492466032821931105880973670474323440589088285640026797594353464274210784149061540929624083387910815657899094661498815712690236620043280215289589615775222060621457988284049182338365735125431269368037987268684755246623692007777213811796492400361590234577003494115340683355738248739131353919147581585276254133758998420466336188795513807317346224477123585367279053008355143691747085161009147544822406092245575761039860966354664678828945500333604333720846556725164894623272786930989509455863098301143787825883212299067132918193946657652202572455840081402413093213342095068969419077870202615357580218210512329081352831950915725992555466600671987968751463023457131529536331288669612988751046150859356338391507026224045056795116886946051104667946627672376072375052884555332350474774899801582880457530050460916902159645238303826292106303225851746683215675280891358488354854871241265327424716575220157935604338198464883776605527026552678470835601024466935686088326611788097703136061377909360911308723407720961810239015785329203547127196910567479470441464670433121314395609675166261128944405036638819340286420485038072860987919829804873133499004845521940657346714654155537801466230578392118511432796651242618604478370665694246510969746211106625572671764171963200467200606794615444473830095878493631232523528518998571980916000681419191861683890151812480464347190128404673007070411738005402484159936710284924075593039634872403013753519911575118044416261522200880897896833346743245220004404297312612251617655694246030207535958932402085289249243527073965651388572918316494763448467581044603214390876483265516729876219997368370945854939343383325884620594015729844642978627786282332904676690449232765932924499124046133833969015247585601019682761237203430551089792317528677738782013266845046779880718026820392202804849215743424256804673069717712187345608571520356706217008389369827536191719737467810794073999060368395206127922854971386002256544673985627696756447769925630094957092701311919298249554679775763750859423691449068347634546043944371318679563025883826817928975790738675774381973520813126806846805284194436531551097133568125748283469790178901431827752618088331363997360282959901000051972437701525468158648191061236176764114583236934795506473752503406099278972307195082778497001196031316247555100872884682521738129185608767747856196063893512409250785806286682155371236246489693259203489219130671347171099746837033736289595978350953252359827128964919871104481561301082918581273929221101792694864281968328624692468492108464389599692881655076958228987337238615783294284880756219323095740630838089146283641381169292294685083233675690406787653576163961754266645938024360197471995403483650856887128855292429351867994655684446865132086630207489953169878887983908989545654675923206058192261778837661222533547338637096772959302399468711805566228092649500449877527733462521733263893894949146540382124321807361584536114046021555259753664688720223919881050284681073770437723293121597536227505157238764529436348387913528988787905821550111104246893358451831022761133433580478971414977152515778984829893616449182897931779032646722874941867545326918469036408798282666191059531425286630926707017324059507062273866705792873388271849518797606853228061480884691186465932879942779746124529540952671249690441046131073909192112396940683518446969930471686617424050546921922297675298529668486734836811625766352554575224403184392246233255616522514104235923273201888336360469389013605047263374962058237061848468952998652674663630219587161369367867248353561099403738139969890044694405153889590391032827945728151139758776274744531842930536613637951698172746052088546469232041759114346955001350395075348489615692495090020755605575438417029014607818186992492393911943824110025705182138823469600980354585878116400455303112771792666147437748373662374602020735384034823096876778936230561678938064697731785663137163538704715874017289052724912520827168930437398229658837763226587058276813473532994786346988582774381654779360985613156779341800020147580424559377378303603956313491357634013503034840739927578469965953439127551602075308652365385274503788859712486671650039877419265374145011160495071001864930153584700275730695530268422875848340321047793053485220954907925735639770275737320455079910158184367980977313047013516449897806847700924124658901717949986390152345242314464073314623970454745260504301874212994382125470270644915073546929709320638029037759118818739015791038279468492628606493557705792753569998447487845444703845580050634603101943277182722031250809775029951919768802465896398114153371350684361001131099629825147040923400768862681738142858204141106078957011495068943086279652602887953539761168458073043529965627122470509219685525228849169734490752782340903793436643175688240831929497835431473144939914844944463428965714706796553328504009467593996359499073386426656218748107263247872430406290494679202538485915398026608630247078206837106819258636756161674883003149343012810529959988806188629972368964165204568060779510100917746470857308145469192581327312967302559205871656588042033913153974415917287194875701426222147192789110660274709507612894427322429136699466592706572510419363102385981754907986994389243889008939346341213828136219447107180798111450300020433901579204393125539951922260908899971256309233027142912501440398187050042025960471187808708135868664901772444736952194467034906502238409693051825939968039421038583216016400769477891924712421214895435937440099937964372856130362894311674370894674473797167618208641593168356184240048454270747136218560664395978802142164316651900960728174606413768465552889186181960348825852074845556619089693189471405511599162690872569882176388463745955064737773914158066740766500977834149348421618440383883109376014715539388936310631548713459725290483703688341501686075158579902541153195356070770381497122744696096894047169530526009808174927009219332674213887448974859582609816278112393479338277056197406663789713662110111471750620641783273090943864210443410015684879462446967599935247049308499270573111248239759233598986452824718770415482776290851650379608150578350982302758742157795977900459206088800435487434735298281470367665747198453926047834167045941769174894680825377283621606685686911351945238338908918911109127985145874140765472002852590672091111527992591421284355439757589985220717590994624144692846326862634021582660249829211584721694801076576660549161908778645275866719423683443431434193812335002128977713142500052922497167310777147220017168511888229988920847294675210622424553471607991208322047262682159688664508167350961643933992447472375114623696703082302094264625367491347034074245876652408826191033625198046411371161227393497964475674724014545812884270106771962632936917848228627912056184982809090073238861546445788578285840970960477441147252659161889517766291662527168721718762516513631708979617646484309698655020383274990369013956616772453472634777359428410507910768933523879355498187846781230812595819765132635425639402346170289036070816642414727775014401517898713394071954068036840143777538230232741686512733144671792770675415259373709342131975947287040931481491994889872286782267469651931566305291459571361839749552474801943392794936563511497990843472954265713102019714434595201177875945803750787462518049950522139898147845950331786257848999775100918364730758799219228260550380285078100178544158073124700713812448131990189182879151729748063153541840272497347311986676050304698921400122077849186541670628894614373987362169714665740339540354657042071325868663336473227928321215614881054507326446439898380024170684921991297480094285081669435649295783434412365261698484733230319409486334102166069882846231098338701418928078207374832054307495416428963248139509455899337044947341826186642654150819005827072358841898280998019151035177063881643966427934704377364802695785368103679473586653193903768776582660850368718103572836664336505771722786667287930908099722192218881367130934805014736052572641573813406411781621048067871430238916681156631072876053694575377847806505850299526911703233347370371671960112352344407475268128928355868286840263257160569745001944449517018066181081906441054552466473821997460551083766582885812981445152674903802269567811500703052376160976160751647435839334104077980554739772293477599134331367215978661055073422783711677618319948593027585726139705865847098686679533960946247409188678055717113687861007855007438818571064126920509669914928942274974254510850292688489395447482286474130674993942734032486837449145564735830378788605984756918370045423301286627585792709510678969053335974742342936142003288246714880458353144138630797626597404893087110768851232307860793424512201715455801841647439216407608957713287564519943138023272075005128755637620339753300605391520811588010542944317855589339474482463564583104692415828661178849010046341407609499821446541460392837510247350589440734919649540370274745224534572201244636870031384833984230918324024901579518659337859928294701598579591968598386859819449047465441298097484199553689636996354717206181813585525926232995399169375917092428613664218558467667720623474705444148858262537053208245437448229030278027065751038001710881783281865145986558325871955464585253414748975776978217729236120713336412402816349700143731500885527129175891960828973889802021760821048775450047491333613191713197620856414914813796406630406540354290848751446093045428797888157247969800565660799594475038836482028316033894667904451136553073142332760578710820792676043953535466422536781850268292288474384751639303958374009738587014265108634462047051758476054990457272575031508505858568197468429290417067166147524133188504384698079735601777104811768366410779396794362026848191177314824089976925551288263145278012475364381391375696394891108464799849976779062995454495157317870080407124802833371117026427230154423913604754206618534063071130828152074975371931468400971062250371959216386582428228940836492726282455960515525247553505912078414670760567587367336189411174276167915553017199436756847928532673226578045593297864425666475694443389254568991712253772984042896325472825553367989035077223103164222255936866224029328970790077494757621309571349629289649293878759756447666331001001208538049136577804869477100465384219708755533249565447583022798404918623196790625317699314735845280277782058867692232477965323935598599179926338256860793129475971530659553948783277738880713698149746405066251751431410646697548078882506210803693030149523602476684760717017783045944939821354666812018915558951093237791066397432171715286101290073335180113311141356684647618007910399622453150596207162070402855157026143358103007802778165023775172009678562401690788151274926476274101606302319578673330966741953326317915486900877212517307235789809252253022563226541902339914103804763309934353845802706803344427165192772582342536905924927564449959931893373020241561339217286882111688647642565852709987290601656571088073894875836169521706209563268246090399618378897872018226870237853568344476518100121493461723067675286359901128088910089647377924597956882500739850238077509591298155530669248954766357372764132385668467817781405763877234876040325129467647135943665941345531063140695856263463368973147670651638074355343126100690967453765014405198118349235318871940799399909553892895779875047727780327084476866093615488559657996970259562328028461747441648263204872412829894947810298822837746185618582323346674769185868834958184219194388322204129256621821361627794490041022380140242165823660436391323122954434656947704982722206790823288070241513735241623122747757303256124704268544338532247012797778599783518199543021477148759477816076188527083820208483499747127552820257969469966553819395937982896137784430079530185400364772966166115762868120795797161535606620273576267247120993482629114587258566100302026165460068481438714647730837279792596145993239211017039733769873495439047451665419547377441161880916700728524973472353480092477445947369144102322834363438410372077100134620579466406707530982408555035768869970078481436755104015454775336522149188838320213279173749522508591040941264626158726646161917696317331416633744493848851485951347765867901870079581736475850407096563444530063108651340154568645460985779376822846423033101732799271214477746955531396650548172764019726579062195388132535096325094744598989108785901696922581986048732516163144778872253320868115250387783903092109639731408701463262774873619992516036903516401813228638410157789138347794548208695394911416541921224410372588235373528329662254040539599551254188046955347016927965818084221478069114677949577090318147199522420048905885593746441615349093468210952738190692493401258540162129838884781236067112990472785382510932212676008635678872991110606474438540631307026915793291147168357489308607347824176203484242255797432510010038643688160552466827732801481669787349633209963417237792378830351660548478371671792874001119144726245671247002497622458224027397707027023503237712416913149130844802726400994494784725957209235930230699273000522490736514197778118272030525906050536647931018487082839762435976541024547854719021296462440721878685429130719911560221343598109261278099244929883532142115168804430524223133517478620366875910920612181715721501323049150385243127601602678071027790598783630284909951332333256554242834787233126970826048284109116462935530797013471599928564268898897007674423346489650045114824894488438119047885203162023956125155080114293455938402258904452354916067705752641775197360904402044833678818915689702478977893660449983167550333460997434539066796812379833136398445862204918269859801850628083650581758563284790286723970216470379261157543687834566404659060788858593615726073376479473628394189492835760504833644947914011349865491208210048132550683756281970256869699549187621976397204502790044667563951193761315600645479244864855250749799420850028954444995335745046836622766872082483164135994803070601611822309156175259524793849002899529342873761735102674241881593715994890969792225772144013909127224617888387436080519675153047943147911414335732073658590493042773379844712919544464543044009597518309741823376186337811529128015178479566360090164769745449589573231467955499389337513949564362601454959264673734721602188531326544686008854796372077221345275103105952625307111023553788569164995911692208388877078051735438398567867015096378088647978647575766982532354044245428400882687477770328538261997625425819929342059121797780827787051185845230479889729856387686511275072763410035994146601222794895749559203609946037804848385525959910817123628274424799040178498021103176278778875030363022636160976667580106039555479978745699815797334233997424447588453148003933453664591755258134755046344267161094890817996895922670464402169176805100590718447352631235416442480148647774387877651738534789750140252040693299113532556148136043532968312928991295356152904027591317674802734127770463653085221325754863079335478829963834069993715154224943808824064733263123350461388215947948035169175925450984809791108923311377895396640746083457300976511706075241436288346609180038490635692685480432964005516535997857913060664047455719084866250414627633572044250876603320764120027683714720258395774805572548308176352281706577594153270832662553910968973058504562259368984989756227021582652652806200251848064416489819196909558212078989726717646133800839566487722019320463671881723954704930209279866104118469480757048684700496386412595306737666603894217618938754237522401874581597228442522907977372292551018088674808399083988549214491386356253886378916159188842405129981936517136925916957791998849494149771151943157548095826307059948575863534749639756855970386267805400720089745025270519397969812529688311916459045209756481030528337309486023832962721322569007376753391116829471981277057426243752213758250320087363753204645004811057389179346592355770836220414528501390794640672466736018275379854478140769212560856944810541661956748125264750745239025451705310940662636682474575734607040652757535777432010239133411381357750332256114390481309760994695213981770284146108841360856591839329939313580819527070692709276077217177790987638546344604814240516904994977475774828730093397894064147369457198504829905134842867070991509330445796639195355891448157801094434509827017367724097904948059288384657526908214068409367522488842466125605269509780101260577481628228735993798499770457317611758694198467474290486401231996744622268636332600764110702934889723601264817214984596841603187424531584352054891859045356941964460633379884931531169547583611157497667740703154448188057897817050457319225881549431143902579345049989550037270423618264568041589970013697709364618431829481966606907313547636451203468088044854463947988105468098496701317954942866813882765844465058517977123684820142674585475571382290726634603164381375014654291945359934360820628279072531886575179734245746612250248217443019092242962776936653158716809444242786249840749466556352680450276843578211362734069435616425153482279232246664582371079321459044461110922107039760456510101286976059355657979972303939386839617991898694823179915938694708632424160101610309887378543956773148297234896594767142721341284004376210660200550566248240233395195755864512830241771428237157769328767978452275710423728172468445461622447270366618640546724482592501446712045654783572692144705387980542744365066549190036978523007037200614183725711309111681021724826286721258959485746004353295033114695796564900624462269539125112528680378263752083462010919392052994048276735316501758378263276410048994464890719508214784102083666996441555489973118544459531232788198843519482836466907561917443638748986263627650302720686092518809723608847938016252950392255210283185911952095214829603087970922306318243049051361251785266783098964840762618711211938564523325880156358456632568153659748304140063516653852783302799332761818731642928434366351615663255280877405476696700018814831299264949756483106174499455604840565169206606294419074711647405755619551834538740640464663446523332035103778447675884832566666090172875209822447115645045567243110919573466626779195035111191248491406455543525772549656639248336785221917623854753819710831983228483946922294953737493172577554258096479498589102686359453576135514483466037513914968451229674554784247177930607499992487150391737113310598418240045774257591786671219505174835428961196738988890457931260778363161297825694113684507888434449786640449589578177977537633175038686548366921432845659076387703508545492288177459213464479036409671937884800156599085262761750977394016437406483742321537883413005026201713197591248645879230068500253381354891513199847109339798843654460482728915494838710760373174451260971717062154915230935580784562839217995093664990440960915699421493871124291466312048395469132238606335268740464186976497513460031842898257475120258445983103982014060948468707691618383086484023878910614682419728320052615038511068199058351769563236569694142362610152155381725036939198820292714841368544401062943672645120333442448082952850778650223588668479872923363345267582654613647644880992776348423165502130074494529895433961752661174901691213005810955424491226738528512234383695983978048397524645484310120588267428306399960890765573443634480149048829835718981640964510119289853987608822969226435420824844445684123687523325897783852438454227592056760926079584672793866397640133375298174103800839713669875048451792518889005096162725302906385122448156294734866718079216757439502335418797146370341359507068879603484610150164644742239232867292371725653842901470659068867294069484254271590520534093390143210813138545824847597043485809314855063394187054375482019170226882317510901329413617187700580911334579616422030125980248482043107382966864907037504453868442844087909458071383896209544920759961553665571306844046952712994878484930971345078827572484489989734970396224651104987770041793712631986655042482645042713229161230932461644850135330391676894514835856927021660319065689993035272966942540932985850471428540838671088927344310873648513457002691119243249637729822940094402075202466206644738391720442575483401453940803546273409990964069485207207562290737468413119858657879885591425214708035178496735893693353500754467232461312525826870463754853634396463905947907039289612597648667056907181584602993604285664165237827113760774562109031798086571748543199934312817969129429620455695201243315446083595765650783244672112585007760996890714299062146372250485518370319985169220050813910205378983915622992500646873567979540662782950224745926656176868862932116254856656050084542945590329173720098208588173537468783182064470226861276497609063433941566490264262194495948579972627879887420686537748400124027120252747334436166813022720475458702704640986434675736414944556040485818046902564908532516727167095127900523934217027430328861413233096169647556020183862159978723609621224859757042109968737000712257994295186963004129541887796287240932784617980486479076998905777338860558382448609114228316374869287853814814314622428398496233785577350860511010509261293230994924741892675131618818486162075325740386848069649046982799912216113866566382032601913596840251564924790644398333003180789523694862616518405614103384347993761781821004743519090706548064032056911716643220992154712404616942471043152248632205104885366382704720835222072281792307724378621462986066830039443184031897119593875880719811504839486477508624928452053766099357035113846959784295954406485751505062084971228123360639541480452318303759034865923041931293580470253223963911512793759360151408705351460629899519407457553548868619822693246955382148660219472021248849044263655395305394353300405061335996832016669879477207952586691433189909211865226058486749608814962683654672349840481438109431985740368377466370936580637339294587946644516826114833345980894868481323014234497363000817700302901541674017957443616201842207605357765423162845642764409375568971553748698728695987224574072558628891627542274001393924890937205554561607842415395618839990558247974029707414487078814357270791492210435577454609349005737681596828196801977159064579660575494254181445329924798199664871571196455188565565681215133490980465803768476182660137371756837274130617046443808292439165371329638248726165307231060682333889999510255307327441209426994137920110104663208749715410587445826115995906877240487394286978759462694298805477860776458005229407570308406385160436059312555658553312311655463865541030074874269934477311816907866280119553224809956171278815563935190125607711288469473226363577830259656423269748753847446967479381719183498441201028423519219594794118886452077960231343063217174354069248862375881350487679501301954212568538960669312542793294445046041439975110593068307589866631208970917867381443106267324877857291352473357373341399649816225605641974178798441560213301230296004214891147848575264386251814296148789136898382227494155863957874082378090383414087929764451188880233720098864012236174176430506370381076487992783411890172940132946238563930853153224422276881857172889388516865007590484415709736636539394113814880414330070841798311723439743212898269308828179084546083522761688392367067018193779063875186889826789848815926122487707255370774680909173812195568154246781758249863590845775282210873370947100534470431626453488226509875418704826040850494328944967115115564045037599221831531506218941768079740040267805916373594924883305802189105616245901301913073423092201187748905417634752347872050957508301245800976089449020142283248841517081786382971517875410232779377854072683639518037227273990724613281166726202385362958044768744894488555893556129416678771151444595215072801124528978389889243980579261133951171633727247632203561341376654886549360910760775428863941537509112835509538910175699273481058020524474988606569414068805981571455349648871021164041299207119157382239649687900615771795957511675590848192969043559344490289369648619008661184488883640844547092298808201869643501024165892806728934618921288399805886754723382266287467489827600721394889691790819941807236451438298943017355303225114789118467993569437692565453511408824626441787817540585248900462752091194551715071532232290031783786392997264579504136224307388747429588420386537963008878284974489191015367140448727060522398327465443452935652807696047722150302406032996082014428740664630902436955824892201751481902127695919485480650025159662766721156265827038707214581147446979436985067657688235035063248937908552602752457845213931189712195956022277801052170563123963444611270021258672357370900902467406949489425766696530479737142762657053595744879087619929979754915470956745686626669331781602694992456378613344895504012864826825645467814425734313848600668267976727082780868964032762594167884057145941148046291648848961285200102610561984527854316767343019418002873928094615194818546866310990795150448813365012546122141489735427912283913036947262589780027331680030312219807922272339302333969902493238136301781213601131368314898038867733900122525241037628839200114687473978301968151623448458441708471154056306712215025240060095648996845020996544235778554788006584453063354586519748517271104686923708210374238344516214463591642683264490069767485119161178393419514216263434572806939369671644034523111798133136747255810302330033564709193134901118415493271541872145395500896215199557764809532247281705684628352564627543057620000172149902896451349028438331171165858417764510618582508210472454698908552605715433473640776605980218446223023035764928698490335354772286691167255092926423495359112977808670676400914176047251101842295428946972427193139578251114904771373646612886109938596154463668555664063242409655115271244874081386339584032906830166375051593788949054470032446794442050062323805678075861405161794915675878485475379803613320458867201313746842227773933490683010159278738266403520793857372733187872211600697886849105688767373546820717934420516918691207339064907023040359531440248482755249884966863905615181291354913330689198050958319547452434768855877383104143449084539933978264379056007932577903268772389335970408929063798623591326882769120482353226853311130949276490961454578911147071816782987954873977966493933404999580445111442637878055006181201942856580115116049654910975147093608482447840715101656881915154763085370899177749500315467791994055430238455568432958712280749110339303655080520359026902225743269417733783302077850881645997749984355147030418993109278863628555954491298666452151460832243270293986535471171461120978644646443256180023520004864169280901251955587967777074913120141585403242927279651399821426254278523836182489744008376465719918339566033650949707852328897458849141493347730994863973831820193244687919192275981928705919005907540673571852348118683464347785054157828491522449079858408700586120528447163358777233043808270913739688950568455535232618221110237312713688142054916839838547470490005360938657617777304878307855972175388186172720052568368730086721769154412628775495049173239222116487221786152262091124259237746705501612558235461544208744584214964776025595727402918471645491831588852588278842868558894965084270394298993544274755784884092534243675964612654381092025562998205154919414801937470048035796677458741008841318118725823857854484888166827713303205091480499027063386694690949209351248792271005092774614149529146261051764859906929923817599024416187949702356571809514425854995765492117929621056744600221413367375480798603596959468569833797726728528759250604441846435778240362377667024922987283237060452744255506815180955588868358914753304570116921730819041368219619792444604264993438484549232732374619113711082446433501694801550253284184628733492266134568944139002470663355470788141605485679492466865643266981303178362164646588208300503644548129228849644616410125023757682821894551184580595732094925093946206486775093802437912896018008279404748174220633279147128420951370105619432717629286857909094949263218055568979066286289154737548673198693738466419585618899770827990016924649425190347377703988630149492720111835283723279199650777155816340617619698407222318678270123540349943842916855650515174383773539204928322561159929756879655748563713998498418898187238634477477355150135350791910818082698953601252478254749290432140977846932329438014725512584376086099814602199698631548473576292080996702231230779999766892614493093709481313117612672502902025112501769538583175793324823747587160195989309689954294571523802778922354931685048764182413910232691491655744448451246083051457874175073871767441735511013076455378978875222218549322058613301075912720128415816099012918291185666715739299809291799149161000466033329225776086756566635493396534181854225605988431844272181094231810906310605967733278403950596066977210277736141182720643429854934384424658772847185178836337528193254258300549961461483735041419186161986291067063879119517620505564149350548148530782364372016539996520950423890411674976436029024341956762244685142089456568032327777818280493640235317172716161384745264342561703004038807168888842147579572813241630693977190486932101774849343954937220889779774606413216065912354287306634985649513842991511937541568268804640344074003191648752422812849389908496049108875248189766295443946375362198306085302662976776229728237088410640306798395704550798642493955624132956970690312606937272270497385849063548119466535336602643153554561276200224543650140928707014940038450249422996824698948193110638058489638349668423154689585739417810047802743102434361706393732266749411414047645055320685254527772713379959897191293351095335218376237814482821238983318392269540362944194494244779393386294782085653916027686547422160219745416250347948657330874869636214605079665721155856826474943125640198323687221801627370274085461233153148746531939362613438727849840982678998619691220266975459049441203347487171527203423784853201997739410893991832399353436083831944835040717016050019719407955692916494594412482684602905546024805566374925676902358565496305630549909473833868200225327275101476538201571894946689176438617603846691471270502090101667931435388981799261389495820568431525427173339845849677842195549474228496937753821419875398362804151385327095150706778317618492686749245187887825652388078755933987418494899239410646608428415951768002918996744604562347684174628436149052409961460913299078250776717299487374949993004970609521902915918788156550294869249948263886396823849560868500579992081259169809576250063252249507429775722353244646312991916029527828387808637437948487816007986691844944952033890911819968400143601495193709330547221904717861619952110929112791700197667202021639669184222413495352640541503434784937300944952810750009923037091538820155082003301200760403674004750282381217235331054698371010096575548811661428149537419714224111146539649408810687135316799674897427937226351358103899882545160553672510213641692900321495407312234300723995569142252464301262735666817822859016903399525588647085175428439793423274925339989254955840392320798359932521574358425230374366613899386320008006457475088070937998462747096657080943692993649561070027345381568480143981800226497961654983924247214953855166490613388699479448764070625660160551717495789113105157898124840674415404386343218080496035776369336965075024967546596535171500859975076400045594958542637011962683350423969409324732540732174653657712189786335455682417039103781824265672441578184384949594538256203497811749471046589508232140820478205399922170830963792471914357052689273788296301720459841496063967659793992468451202167315575940610850110840150149395848132431432648317063835229338983573286296254961006453965323234090166345534976145397775435455101800227298781666105724231243062350399126692725593983849627044682244056902175272089059731403171949939375760651704430817843584689023226409067025582563156527103496399198787449960056696531169420178903331930791287640450024529260777573554483085149912160462604079663574964004292941415210785179395124892931131087234036875493332119971694155822422532345269916514842708074964949658243209108709130271922073605282398890333776482440248216436744892838932717872463012952137775840656766496650342254844795273438929626352170692482957223372372605212148675590124375106886361686206848107532525514967908087008239375667993000525640041056868732134577420110043021274796404626772079602886807545332844611649683963670296167636106120956409159039226759772561277082336910179793240276009477905049390594990355097623496928552456920149233803895551145369453798964243907753154386610796172549357971644803446126662353804145554970736764262514459057192580222293064033049431773991107745994805184843416903012471052840011453011701592649714176031004668798434006763661357541593810739490233845959978566490063310019258076179659274890217308818497265451249156100845649219173398418493640078924253400528851274097826072818449936233443967778341643032864973170746555744709588710661228597984383289888277860899498259344457062552084666933620736456132995175346449749909660709934312563597490296567184680351887876443719273432284967575348743806058683938732087107123411497596033089306023521935023796475301514159372862118229525906701857585590486981033613106195370441077208604976233000669435598229899720038942050712413096330124739898898650161344604163697641299185513985641334802449774010903820420980509818816370765602535422885206425047489586808991794668611719325033248230241059805584497876638045521378932305723502009715574760259377207677608746814821345225316302087888239853556684084620184979877633388938239400596938234755581196604405366017085155431409286335709215944811601753296583413334717749803027110597090517811589017086602990160512479450702430123230670262179701141510682002268139997507258321498130356166794912610054201286453229800672689000948209707585410219884885295459601974730636132842969855384982522652381613088966591450912488681312595353629605766031975042950411884393972470536057894798628317140049833968480764211909414275681202732454233195931119523950562906226110099643989483816464487458668307548577498485328740819937572748521974137180942967777411722239364135603321190933440755678783811304519984514862894985800060848386942062185271928018778042486680802995128970347329446317094600385951254533868355796890584649865172300670448889684061086304061213515520387421392844962022257546585820866986406049865542588590814553498709948434938427338421786450513985427397429095857008561462561834952700228141732536765397946912752974704988131700638354159654463424496835263505948534474472107805610781082964942647881002597931877563923904329149897853276342037522975657527434082950845479470152452608993138857831239117512692255667572885133404397696499025403931174933713994495293568010603796944595685975249877267348079073267618245233552121621496802344924991925428865514573375655765945557092395334281424629031727815403998341556419837718018982112476085595551849929995062073007140345208155033298149750702442677264360338737539731484313740709266544922952042319900734499359463931199653505680733298148658411091994439462723284536771128484736224606331360285910596352371938714994634598696364439068540532231931524135469324875767304633817030294479835226020518149444585049612032690949952337527162355133526234320721943009358815033935989744933526957874572783140396703969100170734149325310499622063263016925237018012024422688492909819555117195612083815501448583657166510269086648717323819014864997099246991315460820019927050473056887614189329810831023526482810810248545022087572212834413437948499949987279202583543417204425984693274091417821439492801799745659873698287428268267484421213715468232751128499953416523703165307043258283372112371376096959399375495362232222197465961933252907404248760251381952425000697391017563719753430044796178250431153315067582562735343476252539142515275704787843767885241871966350014624199270080257610839274976226365490018653206454995155802908398513272627321967284783025385221904792500278689389538780368699318846603104363352437327154699898811186443670114028426202615047388235899747281495003334325706547463702245188728906125503027379190264039657741760689897698345664647052047163592144830709950045843064717275076337180207145974456525141885050371637738189029696852844092581931744100555760898502923500527101600898257223817394543698529654769490187384046465643730713195901140761317428220388331360297085265006145123490730714762453405024542376366668557574012060405988695563011441544314169698607403220788600313250077905539178696741635552402507676530856322427378471497460377840646093468129918719028927597630701598408500887781745192690147691030030234979458511000180886606216286801110915116104098327308808995433755118718315009737865587764873588544903668790741691825383133063623382058201548854498278838217424375805492381597296450100619631058215167091903263187309338138501130913327709303425112210972155056104913870504262198052602476501111607505971037943664771529353491718612506611636738330499564878779365697911293195878277774060107533375012243279000973240725607038880087113730965963445709604117508944479119162174551697096484476204617412815450135361284226015513015895258628069570639244435478023905168613385498619266567622760358234985569192248906501490116459866096156795541549215758128354092025393170807378146507883203526651345707065536856992811242655015670844801778646149740454921184312276218452244108847150757019088349502243756988504945424105726624609450165832095962572872030994776540107398558069966198019534500506514501054924018861089134173060759238439461501724656986160560909454177290736400939132195676836433329961999796542434802656940683698670617587413167655018050602713588257443370721645881952261339705452052344128092317306505198995450285853835228737872869829150197275807824209826106060901509252110908989964389297862943014111400676287749920781723794746209168998389502061894863077306027491026703883943352474243421236712177024610116024061118571687050824404916238943435045021702508136491551551043272507479410247374781922652059335513625530181219642499248821299260177408010371950228842125474472160296950027742685077521758669179938013625842241739856076699165432757061230452867280707502363189470589544061884213157138003398487408680941446184585423034495144852105399124893245548665930533555024845782771442377433853392082412776321659675383266506430638806955691562026222594694142900799876983442050259146999897956832667090414139806863332515652569687878992257432796139643702654314463933379900081985753502607978817613374360948392830223380327973203865364624249805511402246922647893159294491804038298364903485027886386975644148556085605371772287371482282368642781136572039474969069372399156100368280751411784737850282562212775995916775814038532986888513655232313938431742258535628070191544007763016347647781261324380502924842186566985527400764105119010954528983825634840704558080905221476972204287382202064451116558020215030581372204663476633351756179905008977808856009320814541764439032352419397315472189209202024742704058550317913543792600976807636298756614782644338926121213456594456801042227616524183764018673453391488079001503236360352843217478040168314672618806793649304686587364631148328269804920227876255454017850917749772825033946756929354516660986419481458364447890960383045828536989560806656661903603100453047200242263938815750342068674690061929873082248490016816348921255433754447580388736158658859248597558742783859992954170991503572251153402542222969223436617778192965331349674775722097843019381844505985075080564948318967922058345036341478905102576174909975820012347244102850794123184376014714213782951102187358993917081686805598813350375469913794537831377114135491971243465810931127833266217592227589369934770498435251921073517573702005503845734513058731322143846208760277518405348937132376629071120552694905300388822804204808210851928761075039677281454892794403227236284124794319264419243079681370382948200586974201501323531987205199203538773150404215882211485974318238790989199325393415037876899596958043272517776898661258893954420139171306418862504195106652689606241452084480340347411331488004313864731715844681575483653167051260174664076072809596725042132729422453610426679280946977358363834982281147669169596955732770282791209979260863817017654210151150431581109268328748595064626236299259249694378182229169234325485361604152514206369252147745980941988926504481477644390537611191746302607417041449224194980017062386681694660798924751697185000942874444662410055045863803558630650636095727097973493070964889076063019079233461701974566562487128849867382678546268945150462094622905482754233025173213282785316517586934054111845715104834632832008101152525413119367954561261504721610319742783210387954825391743140987706525700603767196838304786929100326748344206684066735150885865048091662976572277996926003868273349641875833211808091686185171345911568508931494044819961072502337896750497989918872582686705377574351246508137986281348350664313246627092452365469835174070426513698824143308505083552631945475425324845884093993784631867338133661031005811464551518773050141308156660180611322683525051963971146240104983148464604395200616373542584698260521254538591505364620141659306152413774330372464450521039759850015689210279093786786031851767240469599157234052900381676072424770169781521486151947462705505346142211256912722538159050203958305146858500360242005490945502682618509587542621097399132209502954895054582891742329813431540692575705880157365453517892741527128941314318269476902588854786599196898835999050554388542274846947311875197488771215019159190888581326376998121590808969182335059079714874613336803970505663500369555394225907345369332638969616238425410479462948379374638132461240825306902691465021517196555057242567884712722975266792028038412966157502184681108869393992526879439503267287008758188610493008597550580196928095204823757138945438844241621756626373518033643277401734125942745582026754402788121409286880505941203000227063180825931867664814904472579944670459423828111487861177124712994023435319347638977894845060462560417454780205295530815025429801570903923821472145748055026968444380960380164437261953004403990850611842658748795326360174773439634741333029275581820008464886098183291707862124370345940428150160414770506258185644132223188779392163988961273699240022516053512829372365573731931938983417538439708309035853335063085718369311365037008190565450432984220993814900454454004486182214055060528716831341426278964416953350643980296879517536667847550967256739077347181693399759001189891113962465206160718856491192664269401606506595906161044378014986669982843324652576088257101089919591111808350303650797428123070939519840254801695066446262059236363510719901481567744000123130725410256056015931684053281699733907071537208809013265415450670840848694648513376227482849916127474705322255057918337197829980217375914243447148663438084599101392506855494465966742373011912156910484733069805081712972731380662922967849316570700310830556788979123298135069037510317467834011208135309146607336751187621872232478968370382795012395444953967588537384466413472050702470015885201761312154814372133479265672244691795625863300306994583628910381264895233888076384381880507192118073979276831412308688094691717655267197134112902715814675294427625213295015430115336903892213845072101337883275393592020905194209393897941289380765953087027355077304221911430043256684624072289034021750731151273168905339467851873822784851582247048412773926828056517260376445844006828466737354482592496916507421423903388931811701138913150192228541073818145229259218514857525247618384807758382986666755676288835075100860152635893586357127421777289515445831293470980084717828967273412903707607159708978389934279262550765738188956319405072752087325999456545608586855358263133708493406413934913749179077218228531160094982507770366792789235878843160849183895336236157657683342228959270239391538681195815299606645208188618438965078972001893567854894942216512361017184737604606038296164427331173040258699852153721647753632066072061250793292932396240780047428067808124542992795093505143976021192911303780217039508295099069944393911955003508040721574148017759229971932827163039713393800349267913341650891139464247966132094725089819572375049115081331291669842737114895866286493361339703036247163012832100708415202627689963068189695266669440516751150823293786905003412004284173942954144584447541246771850871030194976373064645661863494065661595559022203508388135713617682347784631098854748031416075183130544034281127035071959901420305881492321488412935694455084296431703131903577937739190165691257717806985121801152036378471823289495344465514626784682026303966650853019906922610623240862574936674402658139719248013316060412804309403011781839533845697347778755496505508622671989203980646508809876595990402683545829084048874359012102485707190569558518229964816324570157035087748335071625617787840260248079543643142774097520462960077059523215937839265605847631831645394608691250889139029707529324575283112206316530779455997093588019101795478468222029813794967339008709934835236592508952153174780914929635957680364164531574198408294970424039023534026592213525985308033243178585774060565090900395174966247831146154707471015241092709901906946055592396830561480772653739984996188802045261369550917223089073682258369725346732930434907962315838626126344424086314103499740365508692160500462809793942509259573707752242127755962792858417731369309036459436384493982339291854895536764735608789899719778070385093662092746318519850851926852624538258702495738050109938163238708202285644740218903503702051586824571150942552023153087809016194370538717681644829394491186589768122858228286305889861029605283254438604524159509588790437047737737136850213539382265394902342171088978371005174981759702068682570272597123999047773135096320890674211212008218398677787056562942469382004237813491306663028758752092564773273167463696647462550977061200346715640903478963148186821345980612729682565455767498591972867379753810674217385801948693932509892329785455610079000547253305167081854955082957331645303896672805738782805825883386743956721320161225099364271902399903185069780948472980377051720009130562696720528431664964904631103134009037815217492434051006714466245262478844479703267080920479660215253622977798413035291824916677547333861097577175208925700510162709539841927672468102127146446516361829038678557363550700118367241542895404774834328434837475643045102527445068084429432880032635348132660476017214226940034962856397025725628371882800895476023866630654951037470453498437664038598946458144805319509199259451498233613653904412316740712966326187042419884078656510403468894409807356511171908841621313370383284752715801402333740874605509019733708360472009020165095765105637603786372188320038639008631870025211594327839328479264705620690613940364883094552023943727600115551066448767844754083561603998488513772923034323530097939678336983009127779979497170462853141004353493338510722674849658177523531271960159061728284621371401030533439202703451301949107034461745657717921913241435108736496939690489657328257566913276453108344568715944990050920224047579942148514139245457253260782716451097130569958137234896227241015135814633935985739176240573446271578414318958068767448800803490104731595511081907241464172911598289697025937777675006732038336759992089814111989857577054569008806673510534703725111132934890554554972053530105573246966105380660995007027547522626763831652725279154833145361939167195551121030251519417178123912448276111453221886677717673417406452378993015037104211023223884776937314255347511398388888374132460169484945229905107108955879321620563220851565300740795055924944597435103491904411335114791566366617724617723425057713516044266303431268508796541039734739274529051405512410302983625893362351155834267865532047780753909090946014043806764382911478302964651821538618920140071149455186269299132473511675729922061152524782916654575695663832511478672525609757827406443804607071542461773873376807193067975117191303107259747170951488737474695034915202425718743866194207982872883105710281579364027146345327984751183494139024208229738660143735485609080295713469226533118264067965254434989996978086293470385536157001511903796998646180680289328572972529014282901970405011170939604017994007727907300595740645359239166638815120144597641874269200937829705225640556982994851451162539665867422363083935081487782114697145156264218351219723245197256393926186481618297743853241064349252541686264352270431372380466259855686036939297507794512200699210927268702532645880616669225572963522442048586718120450934271666318905192624501490846006880525123235094443465827402258290512950304979961401660772556448746146270978688973256721019292300982454765438051240864374001097572366609241372318680077447626862945263917248970267674567927348695426329629330779938306512506951742589565375330331982513746697462587161719676711578595912938946419005195942311625542655890360405126426117249989093064050953199964610719970516938281588424916149236396001113845325917165402764954766172951275659031279164951736029421362818726459267767827689602966497224763374234588532554323573191763216539724512835014685762391656504338768002101569443582360863484573501025317463807091205815681879683858394510423675129958767056686080265948295232559420292102688752911543692228947178983633062840897730393136992191147148151306289438323424291014432554651237764299212082763929737715940641397405209230530964078416316554355424023513170608217818229921582821565401767669766120899144806005952990654376236361202630598895100772357556516595132219714516783674355129084511136295559530875867083778001919961816556831004557022827891916130240361835151336412231627090454293979674128235084330945220216062668426891971808149654830769221468092724377218327397513409295506752479298131156698823159331096989939122543447935774560661126904642965640740541928822647854795135797974455922998213530029315531271761722186319708982235311610694068488157552894816208209181667248131251368908104623769907013229353284450081408941518931109879654072146182757480558580243538161513918772004445513785065798479202545694411477966399229790532027713023499786440344218249616320189181180432647831115159465138811148164726454776176349787130866887569529762603031666841214634302624407946869782859874183950317139451392900135590877225577053738582054889531696018068632325879151070588932716859422071560763890785976077655514008430373190771766931455239135186223631142711608544580408475000247998758230058708826549146220787267265141806363745375980674164794484814973892387547284593438752792867664432725647955615698313724625104542888551420073348951302504367500924192903435436010856692082942618503883972921380359209785263348133849959272530514313258210860871562799411912242653301351854683014758836172716488218149835028778855753965978890610683225144286186195298276402577225660572474465593403252865816014386518537361611416307557297037999446651141140551454079427147537781111425513397283496115287533038864432816081165190097196055850403199345652798222234280514672991817130543227748759230282529480265505717408619925237062968149812420426377685988195395996847506805147120317039135076007001949208483688796385142405835386068968037754420706427165194190884481774909538052551488104482473913499622829643783561309374571147615093589594579265351844458244073484489100939557560229105514960624484561256004382122790034279070393187107523808563892113640393583540105820737115659807256303077285150235851731361937077949085709984740133668500208412981911223595969682225964545883214339357119483477892651518345889740076030693945402135727476634284866657596679093779764676816301584881677064603897065832759236515230814092995503945837813851437720113532362892642037783484121359508214072712089533733168788100003420845153057618038903775566026792357942645825046342858264058246647041364199474705466118335438791076331452420051540537808999550347417398247970896323065778806615087882093271595756544842616883205894028796721171980537515528362406561189079991380288320943433112469126814143218206702353906652549656361761513240156795689103545156880795582582532800003740724316505915305906941655244026442226553465708270971438428418562650322627493151579629589024754165345761282409353540627014400709114820954833364938657662856625027302154425979845382948515819130149993816839032640802982348877414716824958784818180055520669101561370253273682398464025891880125159033765009206477291158684977059128142539364633256149381380988193472958921912237302958434157505102177351608760027425700671307213271558502718326316567322974165569938789693238288866660475346398736332850561625516148773854356883005726249740754685155054477920664951596322925802293266172296221390772547495226462179755162460868209939045420657122232019376562938297808861803061952849313208496738723326039474869730793856785051630759409394786742549882024204154706671982406807377080366075125464173710459356950619561033855527322098516410939122754665443071528565396608248218609920130748257076988534894691543197165697224766161617667065195165887344489662458628625152225384290156087408995434217695175410335336340373475038196456961620860504864151664145849222445318556939210460917094993512309706812433674499298196274387393132097040166953757317336392516740662067336606643546095104780339053198170587577123827378025247349903133500461177887772747607203425735168148159707116345409091842317519827442776377940258294921372461614244122992493589461434008809389144670051693203465218983727289742397437971531983072961242850269656158846639448405567776686058195053148337097686517085171863066764959789067888706831505251088021562700170042329256525775535714748807170330384064659421315171322256028818375188180027781993016740998644106271998252745569596806164230149058371294203283526086813451726582068661120881999425608719239598657559906884794479895728471897115760112663523321187199746658400358517302181340436535578951022409632306446703623964969102740141538402618604002521040701078265991504497189395174463765389742339594447809412596446793881059540177061710349317906010285848179428692776802516063469818651754876158623370152516023637181787999034379595511508651454025879726423200572504444194331712013746825419517607085310721520851269398466280177111026424456380791588249566743492875534221533673980070184145968906405177693638164153469373358041348621682362812485519628207372517116447100484339267712904709544982177124599751783537949895925018192667009919231981513968720392407813173328822740618348993689159625882779434181259782517923746823356556966161707037739424555386021304334936400753195339849108699633356133084982004622052379425180126112738646977343529840614120293357476985428379850731423029608600645839020326683297106647485928028051817062228941198468523711846288178252337801817573627386563385765251145897691425173865797681334553312596518210892167967599216200477777366017396981570051893055632093476805752082392470930750564865354014709692585183633244753524002357951420808860993523690497927164952973307312176270227758280584330992778199380439217251846811176593651677463485868115239136038172399380436191370870417832458368707326879275915124213279306924518593680672567164093795811543741008447431807984798184562295337831592094370585987930674314958421280917715186469371599883933836596763332855084521448717349872982802287224597211100337067885195708636469326747159051876123201811286192207037816689825406153183076538439839566907198048513952994033311865280881232170777351518832700970934377286450690552483201886405445912131117904412799490178046065119346213835182007919417118695189477902086478775088118722447763439728760053349119723576540686820193680867718864154368080099068512360451906326960994085099039694836217157071869815680859943192755078361763106352286244358297577723971617124439519100078527257874425455388265166580154504944151640169244989042683457345626173402057140117938253155396695192178650853286160227797761828448212867294629371491109116351044932010780072370744963492569121890493135751933617672737075794898819870814803294560802701424574027992891569507497718776325901218558321168332456383519424635426413663047442069533906874618048742695730825289285497755704465530725372653544909165505854490505195090807360813300777288059176211340781270220715772179918469199964764765500100977660172796469665522445251966699337699312900316835211790528327287495447512981340250629138109549668572838779529050442889661515542519728237601744913735138627397538983742878364570857778791777228294183786250926281394514140283818107124995198370857034960067976856336968647672081079401343326899229203210797152854322309368783898249784699775589751997758416212889666118309718939561805589888734788223858629836061482819706388537663870236997190568879142520000150058932781576679554126561532407775118370166626802333634507878413669795089586402858492504048493375201961711803280455707969321708308871176259199594356441397149528262209871179393056412254938187438143080852024727553083891726934629489967863754936115462433363099267699468701922308814839034814606660954452470388520337612083165142010076318337589349399962008248009986046283062432490492757335719180582605324935512741105204735860302253057698204994600214598639757850583213910161582089381025366404328385622156050481874565965452055074877137045502581458868787094158414236369582539050044102606727943451061502477228062235096633157361520625142667943414074665206353454658392226114632355783939937097026201916221347388562453983020165547146205207847629726525746426872338636231531355355681663605190357189524466423758661980411448025219901302595893452089990701834644312706805990043256138711210450689055750679076762563050384262622513729065225654942654827520932134998484160539500471824985656018473144907426919645745265811357026510716238773346883372589977864365210725917411557016552924842063152187379159524644831952515980633946037421867350241980390342917288205856952113526786658158201195876069825239649292348914679443084786574974508366962329607901893079624458748437251521274922985957167812557484233167303580613732387207900933633692574245789195386758667611341258247160307085213943168749649125716727634443030554358794396727983916055021351483332405448295912401218783134030459294452141621292750499845016709464849534409152471837782557600293979425014893421463386758834589638702611272977521594818453034442314713124407849821484673586273265362862550103973603017946321255354342329834650428782995216269795250762117660416274969836359499603243495791210300046219201462117222885844133017429091519974561752174122142548151012748826300946974835123007217022380251636265424573166829154744421810027776127607297892521836825861162066670221065842569816638217984120387841026448773556619962919187799243489762359181312079345219212628580852454714318097767637213645840433599276725551587668729268189864664577371815671372712732706952201744607683702302787924243821403830439878125470062137965560074412906471083531304202892912152146345225522167535668396813627818999544967628545917295133246231268627120730703168674086601595709916631586465223885222745623449645159907497920994590343139214940679848302722545724305143530454907855046857565598503141863052238483486501057512449287567182899127645724607259255296433846454729452076411844381790283425846409298456522481217561693893596597574042929557152915076829707802023978916969252199569167435795107281101358448780345225761204586517986663278274801506364902275231920574521535572880248195865656936663054699706295114422061252265550456869148032744860281726828102742488640261601893418136540881702751903632798220382703820898351245522757790353616534469844285133454838643525481083128499832894181729161208390713906848687892138101036796505228443525120422214656143647220149894200214383442012409701466236343858272692961086252552511892129071483652290456679559516865330531054510197832165741762682855934691871492472425479123271529093087674353283875056523031625953639199685925802257094130454164678572397376266871116228209347413738395309745385622839540124845231780817487662218271515701356954660145145276861488219451341105980195908637689785102904745476657438215152328113451025024651282130788257311518251357320827342206955041620563142444929775785418104799619444293639523346697398135936691118451577779926435064354447789078668856676365556751013302039206410994467486972380015234890185771237393338518911517615291790335703578359795955444897859498954246647154327706708272651894378352357948064033422143377240478678694063066207205650277370025852374393455794943717575948222394848213090905523639231169866409648373506830772494450468792906337053879637101170440903752038526402962570300441750898475237800778547400690983159410928873587189533947358288473512024777514415286414333015237602025716546639313552381516958028866473153834042344370579637648669804291749897294330983715121568619296541976790875435900658523985191194910142607559694653688445618809901450714928355936533286587807344656348810329886796716467813575240384388603935675481267316383463260815222677433610342562799044580710243729086055639419844097513553481952413689894438585629536549986258860485713492088747953260910977030346501294040228602836133422350547868311524275310480437887068288281500040827046669007244607660813283486164716381696784460515517616537118876351525243359278589755531581273539168302801968872202551866090543478414559163466458713173467524042320513784665152444548485210827433728001348672450682567941253261976165988765239668887392524079984935281412709665420506524597694791090919691843101757313225070643390879078608673290030639835351651598000740530826896024170370235246267069764470297602604698157613952922096431184121990812443297453496971403552504286138984205987355762652475543534721231099641807557394304984758358977867534082777525594534690720294929013861369117193813173601524864647662549743551192372319033756640399554244778394429835182877424641232791662248726116615311955651535249183793037448307105649190863769246430392533328182321026516298438247988940816153152609817835820542047552507574239190790661089061726333635275358836728525323566999568627018308121674052801800025536899293369386525178811674407772991654278804467841356200936297554569151807671331296375531481657990907293104137962847595252941779072489099883994658129887050988367268841726245600654681144806371742950845879829312533822895706452532635558951957479210047487800990674713490817711659702787400484855846184436218804559755361397818771100525416001209738065852060227467398432198019506909533162304589829176162586011360218289353059467362871285555255704204874035807380175224160105364492072700313587362744654707779352664844640806718320237279420143447252563474168049821435321906618542992546902783902394693675658550471520114175000886374437528098633553566630525753144742780108559946161239902956286531638308517479794311770261662110750667259113679565731261079068745258252713210208934204306864426562190889801026878816775863339198793606817796800152073864581118643322230052592760660979237284918816522192627682090188547803894435603204243307256873460617370232452680436617589619526097444611691103048605905531997056360086339357467682549327302610292972652219997013784745668336927819605261326841205387250396773387410094302331065949859757562894408874945023244710451411575928385431904365609952627944177869456505908673727940501810358913300780225183670471294785839325894520337371154096525172614324526358213651094928649637279067566775702907881082452198737279403819995024928527363407436172234914601313375264418826157775394499817582444937381706204950516722942428537471667761788064434756742240965920803803416252657847256942682902292521252384858533734791367159246949973608350100908415999161378048415807766179309191526659471885690996102325600636796509775882954357381862985180328592847704137243664895146145050192069446915267005545175316280653305226400767770893310898674759236311424921196473798385954255778544792305750680638652681269020901325063079395192221338609185950651259496621115675247703172613236327036342371720466923617527526929643717179484510462385604258222738205746694163997921781159413559646469298483067092014257797423800935270529530764213118796303250033849846428603634072498312855593980962748682443195781859038887550090259136752715504375891472026058362137766642009090107059305338719095934833833029991281661449330234883242862780945527203744594199622771925912129739618715920208473155346980822917945574110692956227707464682922506407698845273404759019173477414664989263523613471702165066560590473280364968243983685148167372969698615723107288052745030865542054653459983217996813769385218793864713741529934848299188089577576066975496074257348997204527599944592474776550655881309885779153221253482542661842900833581533004255332405321421248360436128192215276729578384448001546002989505011823896463097856070910788010264937937656509471879322583388446088955461552772946266400196083891130912856890749524410992955918508708629877492462935098430541631892065189010221083527868738507686044955836700884497199414711807644132023195029043987298197405881795755592494324694154799405279500957863464910789359582772786600741560112775892715697466918567208804615859568973929234646086518259752803480987627803273578312282423971491807934995218964891498748911954466018464859793933432798169521734810528147300746483125306807551970638079106679558987664530004506852433458445014194380760573215972428933294095282535776902892813273095037334413744484240496526726491230745760280033902974672600719069651789305684608552837048624192192189552950120649938297904522189071154499699379144340897775117026140825840144415357391257528452687821120477956764332887539697262447318790329525014752686425937456143548799640235550255624128656415285888711495639054779427685872504112799119785252786355553260549077541637281878794216675674857856141623052864336382407650378801560198809577238048798808776868188531550715521356754582486210745365289042299172215528764124329654859604047603401089607930001970188160340187066876734930116806762537583410194493959959751795288929452901381967248764294353034940384045489020690811451703580193819159005399253854990428116443209598152890429725600989398297814280181586790336160128834089182426560769657275476319967224533077566356514988924529003328017852909671591215592207966059200516647151130840157471985733155950814931327443860967772896845625291866947981365031356609445293868587621647238419472667526482797803646166461654600938432009638665105879352928358408749636141970634373244074406175963950405430230842045311689261869054774551230814292867131454787529324936722627140194805807208956072954026603573000165918462286944297073535927977913514154572363668056135294510337359416057986935094459307645925364350129491834074656822106802432954472119886042088970448772597852955222935514414359586661710840576191296480249689572963361908106473429291580124923341595072790860874734529672977792831022117036007855457695093136478690591301928975081368206937476624409797390608581957036947955297621733909224235687871954488870765540417538648949470012505326595490659115857931270481659345687647710652981383451657286356567308144810722413625202977151230115216366436175554153777313531260736738451161060841529951358374964999144671831238478172661278322910119023056934267889747688453059278879053490310507761425545300299629387548417519639979120671487710566996732225389139322340156445850150383589716631779696503376087253016334162566515216857077375304022479440398754569309976118475950363021128888392344959267003790422257102530280651298054546955321149537582766497186706631970791692260507908921887407617766347269293430000285444515303729601647189015641206994309986169366851898334010548662959489946569035360554157029370869503683225813253043917400113357891228386438186621427639112016762850917015801323940797165867875199335922606774097310151530517422689023963220013016501117008964085660915964199602020603998595167599336164608725161053738306083015306385470114691786335380234107417724977129694982389334746097814666330889062394193197079768488622039448953076652185530855371967667509635988051779747261793032691283182674862057809265256529034280190882705901405530846637470013833025889361601715015488868935910569440449721720211392456484749888583660011930309334050425309481909480846789876003827669218171908676966018297820355992071897780429236183663066794572605188960538253103472875932823011951586555180178283133565830986137316525935030805823962559082865729213865472195779312531124335914732375240378690825360216462948132048845739870513672463824650599873114603762253497782210301015312454298751138224482136735267372107046667779742422508385846488729490960052186147747715199660246552260653139621270620854168787239515997826861207922328864955994712943920009967608462614452966881819111809448899531419558814713799314815293295825160760107116624951556593720289303451396577612021582500179271658211474935315989825216413139833162921591167878631149035037080467291134675664573677603167044711872286977774937204953168411552534228368936469948659928163890293333295967050233310631864547159461989211746960440747930112114531716649749227696638793413605543628013565218859169191601265017034734921985779121559965545078845902800245318197928361468861669687294067326579448551412102933164767805043203023892916209496994094626811268847761953194192988872830204532548355595645610497507526105244255809386273420635892776828442281295814647347367073532062255972829437263774877683992863763234539366344505846403222027497341502487576599102151954483914148945321528223832681483980519970765592688983154471576951183155510618730067685680405712307832433568627813031653229868434085520815414852556772088289519403587858372024544781686346084119703605994692042050223895050999532305474622524732812866755075605926657023819679854436973843036347551353010142231318596659835501729091225324663560683962724430840465236286528423238142349908676609158081152998567318827000131093821576191329659353251457997811998234263059141198338941256260215214745561859783940816914555513000175131020838255631736162532615459035129106180015379921299481140928264215227003187999595833637241432647124378051975244525862986605327913976536312050348551968701426164273739442553870410409340117869028483173244466964383927413217588098053280049498861502455683932136997226039513159990952783701454801275952792565706687603394301212911978505936532957439413065417846820219003381050360714952969682719340824995408242161639655390093100714463887620313495330134077562755620587774807984394581194951882007132052594033442134001243688746110151026668901067251610553318423245264855139823924004357219566830736578634636284713947718760514239870777535371198854467657293463533258469884781033914667847854708731515042908742459239461326108929195037101182549231842072104379420062675333224493626435095955033758381719510544311687327960567532982916131257543568252456465008122805226368146153341597532119917066036435974480828856219322673936865606254293822490061995607753330652464844307273487208533587976729269681479748532637460821151712272174344612137262433632401184329188986371123475830738974105915336681818816689559537182399583109158955865155107939110515371592823919727238518934595024177790551515157253376497570872428767944097314530204095907691738750096132648370745595341535133134490003875280310133785644533819114742350224523620088655342053548595620977763485917378780621225544022592527384830776517999637382305339090961975938017475257830796156323362664637308389573846711167092750644157476328242109681866702142077653403268375526077611108988944964673277534390149108961636184144351402764581222896050603815546531573231035534191573592275891134925690093560714797768870073195410228342717487574907091871630476238872340969630253405342782474650972500272241452603350827917050952440893757333312319820302154163507867782655093217137817123153433716114212318124408063309815360743763950265425574723877774795160370760254863489482815303352021941346534446696375143271528080291002816293441826410827591952495181736937113651514537697574630355039688155770395345389834871549884013238769153330886083961520387926598342627243177492768626963541310684656244843493116553460896687484469347103405348229548440424944548029015008712091167917658606527872481257977534747880316689534700351087458568174549707049735995711339834554368894821610053715261453005639912424453996258031328022855348781555675337051796143359354831260719900258511108667542907999170353700606436838865760343284213467493653493284798134599509524459413666885886365358016564396724558897521380576361590214842158335086871769121384535057600443756081874548473053787916068543093840810194972061059938135377308743093608025437461836043691485351741127222098901147672877947895395173377894112656204674800771293805345840765561616367140328136450673853529621785209078922246439167986043804019848760595357572978480805364654179647434163208018815226299727917535353618419010572539102352610066612857938612848287211511443312174816440400561836018672863279325396928235354242601400072598995097051264681198513807028811692974703651388278161801811431468727933233145431510250453558027376973590692969718888934545315353695151898759688924675788779434750697095948389187091999856782139535607843263703165798784080761347005954231533063135629197234763111237012637437169883645699391802040236015357706548474104482716849915119737619157080068754318896722949153519195619312478770104883649003430712202153586932716448737890748697168890556697893495574826859945388159342379901066924553808660356930934748516271535999700083726662594609163691191866834087603981605345718730448837878445994564106619464928279029871448515360382966227706977101867972627483623450552498684334621758253519948935838926400082160425785815010148688653619194413913566869688314459862119923349722584933741055324623722317841154042257919783776260572497686118536208885686579798004500743655996168491050849723073534559981156167551316684195733447513292296442913651575363996632553834794507661032896848698762817246534181038300169434521758808549607478490075673039704749799453641243512618421371502775616682736902616881508892134935073218269322806605182315763054160723036713898748536537793340501584198071058315310913451714395671880125030598869506311654406196180647080736123767536839505366228243987528605105113518141919737956946936386812745316528106350383468283573844055142293480079936682153670804493606862164600676634483031922495893155954045816949724136805749636567933079196367152569807186187536847311974596214344478745387556767923021361485972863033894182374504989176974007142884239766806283172905369119085740325033854522235403375989440089793296037412054603543841820076325880936286978935955808509497553706506799535033458370680057239672681329462140754013128286368823074537737549664487670662370586745285605537126287684371031208597830707742988942333196659933706724709689525249854458209814394921207939343655680255372694559226089370437968088305921735499028081872394235008316672586298989188652170704858091843945174164553736009022597384114577622103057688690926001961997563649835723155371164800780419034073499583084414551229537442817760215210493581318239662767871573714998284140803688197142273883020874501573985852397251066895695375962349628354927273450826891202714752570427050611184594647182853205454272334515940869862411990632707453766182667956011701275258350864738849204602785712850234784675339031318786296649552070645507689584383918537767679066785694775621300377608024518082734525214320551606331504036994154860613067595336597168002359215378608947814046818533147106095468336916218480655870713410551936174510371015992161361995097086501377805353793897593988366937873954822789683336138162870025109398023076921640166695991773931224839082644791280998538057806405324340913718621885323049102890113716108308680874867238115859742181565370929674465518492928755381004065158071920282805299224441627354322382564952517424671577482689612161852563998936569445055835103253828185664131997626697439111167780948717936965736903761431922383476655463730888517770884496832380581866538310490890214787876907311571261412345364963900842699447080255146246808750232039897736546071330432841705384537344139038932348425031816883026913873884588479420355798916511772879206893386316827004321470084246753855785294166046964037538411912376432743868418340633769086563342469199412844660048651217780432768985518538640227751809879011069676458190953231321128789090149768694698126335988541954556717571267667883715576315387267027615259777699256164372103010849931303543718989924700939575282429872969224107111180096726415730753882618623927137157828061141430020171114264825848892720722572122032771300998294999206516489224551883661538942159595891282375248360621720444959024857568099691558623443816516714631633100487392293226221943195365390546576778120984486254203960830112776745283134067622943688413542209394960718259832600135575309969096953911637349665597450373805541787929382030075698430766954390311872706744220840025986793092414366290522730539254873320374993181703899256416167449649356926652153481507710571777303188284522175363855090902876005205393764445585217234669265970493470604553275629606790606632310267244205955949617383552205881466766722615253945390990922373470014065613975006335694487509687715208483235189794212322592920100695072008942754098085539572680945059064154821843092352059880849315619983713486308631608177530993431356826119391131319755311785396789183155992277502484615967066466405284880921192853256995495732701336628910201852959715102098731818453976394428005269519090433002235567601977870530906642648447231165417685422211916748623508214055524163362539885619372915602656303748519633798312493712512584668544944179398939503613056358538146534974294520242825399804730393196391966568679509781211945037151849483955346185707607532969762060421264450505727237362397554006574400005188506438255472818396964755953980263000973297590967668112501920350862913964308563802687805540142422691206708466695667793808428879759066333385191831658073331288641077969980277388121632164618197225402979938232792250343923207155706556369315292188293554619023650716907691665853411416202786881452063334354035182444586927795980466279701274348819999836714161593004038549093477123216230853924966881367722657236540465048007428664506672319728135654420431444220544279556928924816510679063605431422762298205106039468395405073598742744190252742980580057378424677214050758689327578238964933029539316754365582636829334227866754069969086201880895596168898194833665683085048883617646031216687630865949198367526097189379850864296154540727801315738842262690972075493012383476933259946850644885035844843865983493006017943549795468471188055408815318348388546700900036239016567509098519743826089176297051751626446321046822400453548606399543634954099876179329543924509327532211671851255361710720256583335435269680085114896326771841394897101579682237541012323777998170453134977953440975537822404146878310311873204302877139841266742843083009963756515199425411564082353249959052809366080177081548029774680469873018442817224891333669076425734983149530154917971854126038684886416413668203152784150730160382876090478550704679705102972376240049732679654044375743461492541363092329939531021385733403946546431380393284754601668289457039852028989705619905005856633168102542475414961224979941619238080817186956176833555930820343291711186119406614245930234168589283254022811223751454154878383804375333860052459837715219808574847409115965605101261021357390877587448522307072786751026934541605952584004438769166088899837692971157675464446866868225821631593841533402184543020044556787861653535417877900684796481611546147742567664346667861657143213956058051068524929302034863111876979067573730613054188658049805399624983088516297448323420918709324865566316859988821807634263361803803309370806856552116541930835704265987849396277425742722126865260875537703432427972131624718656218150212721001533814352764045420467438408179213985247176560645327166630534436065878850200216200832224339754743884656908084822976109554219890936151291814324694190177542972016826029260693628677593944130399807004856247227074616381708027260542293244910407161694311272169324596134669925072649358332736922363720775270567953185986989393297451923405423658032028977873471602317472274608055716294488616376900498802876817834462006220327101913512335770364954240080845554425576826710914815596736553858259438221951358015637711971679367020622245686348546905987780542534658974565844785240881926883092277705460494635561584140974535542394776734275305008393605426533858345426292408867914093681442328587900922305291527999159050090651924744141709100477084998890303385633941944154270486439219020225662877398462669712962868737572216188171278212356334904715499470758868040594632498061542832450533895452386272552456440081303686346872684137921937957850774989027824315838273235033109670899335429015706641952401640480259861958294666114657087896993126661948681911951688997857138260889720165022115154305000045916759183141379528429240162630759069281025915047690687227211554583699847244222110127830084214543194898542759892875796268140828424620273448115637761588585666606287075979845389858885397359150678466675432744073558896211764902638877304631228815008241486403525126070075059042685515458730819944836142517500954336919881214717769429055846364755781593888066239542018937490840322751020634892328309341028237894088989543453172570727814669839254676150509011338562734748228265353590100895281786892385130548337080121637570615435868763785954802148810067207114027051724468180760760129942225757837851526237298044375489744603759100254369399148776753477242411230998381469118795725444744960420094875863210496756226171098065703754579778452543787555067068133301194037028368463183005066807530624706475224361857438269778398335421299357934225135205438349235503103226324224496188486719775355803165214710619958410406221190835966907897963380812136398928454393731074315823093529694423351893330134370824326438532789908261497650024662233601347971746464208079836544095465133294537755766227252446205078516996720198999934010133350720758077104038265583648170001882520485441738626947279776868198412449713014367444617738360378450588677310415521380295511482941381968111653016254423559891014775948075941177157011650869218541147100498530766154450326362434342050527856128683711788698544362422845371122780475373192140489569910861835758095498384445660130847465276512015225164046008638825405444892101024615835361898855615679545559434153937745029100661215587064016652981681454915048709104536360254453369626790074204524510787476711108581603883350490730198454596575431151627225013288264132732720045864544675040035975388411508587123667673305367165176672359234741082205566207389714589673612442860131844809905447099661941855126591403124482682150505096821172238621231152652300713165865427360924785213735015263087354486450420970868697527750651953873468375231671703179386470783338125470305674216067595718124481724154900544967795539503394974344065110140266883233981384072995257794268605098038571003884722484823787587024923395450217271606723237837596682806558779053366211090973343419979784433485265324350722533603987194609870643054511678895409084338318327380095549056808509279132189616199663626200962269637110459230585985793321394571545281218497046923974684711940903162865482672781602334664124586755315372206986570758884561592003927637675453615955391438114106410712803664182738485702131664766755240750094911376831891968759459457677975505054354545913958847686279204416073899438660597048755736032076189399290784732570121893863512434504025611153110545561598160410629347212590338103396221076910135920641844272757256362449921884192969284504886557168081475456667896609363464271937555630095802657166740606967045070055976452397530935669267213475656322310521709754579726788201175673384420258585856309958277223767012426195014021412415170170625748239199375731539805651545884474781497885071568714142353624433273021226810854708277975682257009325701405883696366404360280186575459355839449184790336263501554324008794445528858414945115640942709224065884058157027469906282629123540354608024579975749327018239144762628671972800674151064615784260870892100884337577739685600881081369285756546150801843593099633922487482273469794807840647767757743508106481311385412026681801462169606348638693515462822833302134661336932791685950307992469114783325130820766910151785797169586601857927299671940055236654639049880576522883405403829572329495666610618163109789226399407301157002457628374773576308183798161638546411907973603158721219831381962034497698162064239850752283277337325833243728821605978861098735519137785465558814037298650838175116326674547594083452969670926281699808448890104436399294171335504917218530444154663612755372740438019661670623338297380240490629825860951393502749589875052807206731837864730248913057546790548156273669342031533659348035452212375932319892888437480373241078620860562246217556691406649656035468256270152469394700985147116009940891283519475682748329672272176682993494445340679073655254171748865854693901039319287413336870559291380027727314775486977554119840138896045288554164615529596730625328830411547085550118882984158691157708185373637750607133505432687135382591328509795856142302743603957649606785985471010893795565430875945538732132350076030077301079178964083799188708619632086790511588913741262048385454721157848822039592359433270452459141147350780545504033581903384706481014248689197256381168631933216497547362981484953964608387484954396945851525795180911626654523673351745016360833352973965589221092115691195474783167291844257925757550040307490466642270906643224285132454408076050309972583021790257921821690823754757943883480865654516580322492664139624733960511524759583935636607443829936677311897124381434507144263547649066833674626796514487576042164900465780456681089762373524663044865139464823196604072671263927405375477148060020288141194791417421096450631305594241005639877803076831545495507157300582014792515959046024654786115178393678560161253240627524204371192506137964850891981909587770580992490842085600103886023943155547970640926229658546194059909869647650740890903710204107377322833000194344131318989829114607687934794755480637926076608714832586479309319426065037650312207896059737211942645807433393229464562171529928698775754812374421745243510593701522448697613048297775612559901751454759543095729786727400721774104428762419527548205751308188966699039025134180461879139639175199961068803957945781408699435579293988614007114172498945483605120231528627326923240980270344039357213519034584028877988233814226609893318496674788926698874274554841477269584954658077358949663204319684227293905402342069936593465517594644019356968088757365135655273548578275584560031781257854725797390168904462967021262486121787662647754837065335028591870593939017780465486471759424323624082047979583793498520455967990254051594049454774417608395779736867376905855647918279454878871367856297647036197192772736875817422061934212158392214716939705250724783165836869092120660602977548881442291451540611950586526514128818711064918796979431604799651288474036540839996708323631467927213245489493626985707407047130584348263293188454405105866194037558732502573156652753929021523622074153014465754905930722750888326706370582148843196156531041890179125548457874634053818750561404423146119784513097056549154536912682557944487804258829500769682321898626238111107236874499214246915040404003133218668230591545492359549671890135590314696913736224077614431031226486037647919392677174935407534162571025588711228300954938045539403337048732823588397650909521672656474725802054809063989279095949756542290618460679476258129549414780970375574292480898165417448550967270889203351426936069221576656346844171425141884130073463421175495709133884972815682697556483084091332633671724772500819038332573981873743660364293416815416085287464554968725565350762115073088506880345696823291535406069272424136126383496243025222734822076674328244625195549734381686632983333512318926415375390268980209230690246918808661653425971370319964656365517841852252075498740037755013360935861416370449092199891298081723596202953847731659451593254575127621826588269650230854993274877952126416176015483903845869845831937117209368199083288932591601683152378984175095542145657354550024477030798689073885423655119403552999768615121850369118581180619655257629645824743954946388495230525501293904319208347004085959062477586926739003838567519596357188381477340819136711013050785355589760197255024131868873517693888960920970811996086393237611436761070356756751954509856677260928307830333384947896550330261029049827785167734965663017924045814188890168611037149218707553685442128423002943618462997844705504990238920908702825867759979329002406874041289587818001551262385066983520761015258102922206918505898755059780761031752744058602314927111485381252502212065908659017820258780104224742644030508149340088935536550699421554124279402428833016355600845480611425197360007946836767439289136803754522585250356433749230405507611881347898649501791203952139272589351885032274797283045553778306485639221525481817233208066725276655085964316205418059448070937337627385191779318699473024590811653170846477848979352443357203806146987009550923270065387351237811893555880738276143138710477321330658524292176952009865221558322707624047867472015510853835783437702235042508142457128437565714796893103634180893732997220191856775283873360133944177263855111562202849015960447422841069146815777966019357848536075667691643346140295482150176278079402653275401551269883435434195316982597257270323767232710438850214575511607810784903672734137568505475128333182816815513806879234839423579028304653257090996989339293195685942215104275316137785891330262383995724924625652055149238098216310022009938517838786291284754647499738084609884915717838740446198137448390687340591284238551531399226835506173095377600773344155197113447780113636712930495399900198370576056147210774583344123575516522587981973201543708493212917688204045074494910930517869705671177011419656169548746956995545794664955170245988058182052267828055440063055171620109170645496657728091231282730371179344888819275752509942568551805720457156003088351254835453182167003120209888175665602481564333985612103352180312220387245461764925519771976075616398999255588448247125397544419957528755338160752382890749579434084784098190504995472234955201767808998973555428169119866029105054819004663413715557369930816878792785736669646282662826784498376552178112704991616800588086998350764297274029251889063949221831873692325603991587304511774483342679125165522853853293533405574069546616393992231256623733289130824466051596075681864137729049551578853288990615455231234378136169948046390831109473541619189442527956102391550363062024648582096751952056686309608898274552424160266486843101853579201093414899591329401297008097920933872852450683677063522719375612107055299575525700568521654739563093401459950709068494399952610995037011491148583565840356944392440181375872950668255260507129554209918508765071118127238305255094270970180836733246047964391637119624816712878168808667228552763275435721997602795855021249960429342072378556610335213428835403247208840753622747707672265703221615528459853084807014327113323279558962703353311330191389309874263357207481014426060412219499873952098204355291409400117396015001163746493739333742500935967983549598081681749426411617589002974453790246451001157553032568115366055049218229071820849066730683734741354087686468803628105346366063639637050840060322594445531236806840701090414791408074372432537542045294549232054885409447277733086772895728448351993062406233355326014894657010295372769319239800791374246128988062094042510718216870035418271782469358852896936838712553333950818071126520323160694213943504416422118045865972847019874705877049174523614062166471826842276505534430987221302532920806244101356519019242976831941842247953230488722276199998130593434354096340873414955354009836113799290104049021651980016965345105093201186528895001349855481579764869199753554001996239218553630371557049566111407490698906146880316274565043092929685649204939142663256004909546724624506038670275537790659778255886429872457951551827889549293791361864335494956074796062993943328989560710185007412974055382790275983298534453665473738254430506492187558490547253663137453707765892998875453181707580339014469553976126120801219236484960131914537587384208870327736310454441031752042168170202492424685433938481832395540720117336727143759140357324974219076628395187262094877364228903555507099568064481385391213949440769955418176571221767587769774137476930080385309241470259267309724342514738979433308220709198444296349368273554245559992756543084921450058959498583889721949080480021103101077469457503027986720456029668290243300495543019586565615233850660108608524705125925107236890391442604480419106885691711560554676557754131337846755443435728191355792152125244163426728793514579872623606847687942449245432959375932256803824124308040441554551703233035468059302554598084018141938839130991313780395165866885640534425045976863068464703852930425546281253712888124063837191968251315506404586582122027033445251500245556971852044942712661755709779076555472201631409924345624965823463274199966965919096303150772162295973794133044906912354662899976787063964554842754397053072010156786676514625620966498520697707102833199253552221017907154255491066890989015714355549225232088249354832640582544332289933881814332460776202119276353556055401812466401180644907486567924955503045753030540635899858103643050669178836044633760072521059307210192292241895322382915890934128228750555151098014631623957367143457654118054222740156504411131105058633768086937833038419596945386133732892475552160253222936973132249379972928005992675567247975790953496341417002038663419614534418285905495280534055539997763087934339975978910568604133901260650786125608232043804545448631332510663723910133243023185466555452650929391180543257416902759540719084176288677352999864254605851448070324558508800237492198538899825555576356904694020369388274466818401399841773978038022542914925919574927731783795745010729161896999328855563137541980767264918001306438990549637448406914582846426124204961678749190028707996979188534126248108555779505542074352644179471940403447965109102724481791903205559775877384272738131058143603281196234824965558877066808719029887234172895279364187064069484639801089564315352334229003147981016684313694791961472055596097308580136150705516651333914433244858694690120492477325571823058188574716991463603187793301384759556075986112096170716267577315729761334685704814097969154860012512420602987885535337647846511231292899855561200406105400658342503451634685630309405097898362527739341235446910129362617019899713956710393977453155620096305490105448365702167199187220346357563638244111617093788893854939355612500904793637171542240806556310343811886033057556124867332684560694175279344094970259977435014670199502710791447832109784571556215564888327410710976530634168129793345934674275670724413469431451621670473376735826853171960542817128588755650830159316048841492190324363058050330721966018280900940432717917990576993235443881050324067491860691556657840628987344737670923422578224494543482808126567717321258040238692893611255653082045065306634056145567901036968658562063810884162112507243746872189242092630265334764851006488240187531107752387990519147555681301701155512593650950277663865604759932677726955347806327049303948934897959809117789256537443265439556937422785062716532617100491301276476585887813004808407118441426902906254200678976496169966203724074995570901838392496230801679713342360699757087490626659373346349331174723891567344412867677628500732867428955713474298435416914069489814464185413445247285102226600079613809607527010407727596892661516744436606657557291711951892709120693115700607846131048600959027972951465467723383197530039299820230677508614793783105573340923251667930588580944497178020124060753205842690453320997327935806562077891445512444048255269303555743303513359014814445164701717409678054134220952991809060291260715683392766168926744561155320928000933557555234193476248116875078333750521448641230046935912724551684094934356435920208400866397288745264476415576681222431979005740376752041131459356908294863650288665138667187098401912652087193821461049629177160555776112413262298472918197350192326469347606735917920473460195021468502042227254990605003905271739830882557839346961329546058235596168859614438551773255682572004086406671572614287421586562936534666765030539945579372643377711755248633346546866174710294742570747114524084069357459330581066479105872577087039412159555808349720801434732021667320029592177831146547941567632358090159344983934360311394701960236806436471015558152654833033229032494848874017487162555417843234598358313173685674119482164882832198303929378208900665582686416563563299900258912425367465987427578424453135056811633366503798136161033428769139977909395653755835874699178205295126606543587480249531054620790828692382531734870934885092202989974921677075930466511558458113338304783246584537799959642245110552052822598551357995433140780468738288309181716886504746473425585006016159445817592764878317510061540571533408027770017339348691597254483584995703116908905023479004155868269611277438910111368249836511243522173294127706038130263418165235751483500779868261068935781083578558768111581663802542863945488244743152171446531882122656033716864388552794908372296727150585998390200735588704352045196213006682618638971124575397983167483580286609024375336597037955301742860170982285254346655892822605029782281922967974950706846947014111471827123771794543954247545582317637072002093952480305502559048615291942583807464456124756630329362111940643853512617336383757851990930337789563507099848726475635591288157718587782973537054845621840616651638052116335535956157136554883040230839048499053464022753635055925322131262857984748871208797423919712980651571562251453573762296496995785161894725860193048018878841559340770642778982111550389340417299078428877913960319090947564277462823464504961855895718672708930505095594917508259060162303560854100261506599582940941882231711766856103431094090151955603594197629527151914455956546570114627356476034166407335530107840661217068804877676582960344592623864758557477341228559099455559612619726150335698046742946544652410747998946799784648927454814462927046102427724945172854272025170755597137258797350890288356512373075140216213117026404825133197504282209895138455281362688417732670088252555984317243579889892752698716039884633307640274102072542860753914632056334190051780169548164179493173488559978122444725186119410088351313755549049418167286424417218802638816562753985733360041105959943360044515600093825257880276648144257909554842576325666768618659127051483898044159755020202230844231648171457820156010230876136894006217159186369664756680115058939506917948617938811069135739111929119476457163842439850560267676092701560138762547387755513082161491786331107567699693263983636019984305639886793035036311014625603125926182324329202305048739735551038806183963033839202244502187780634180139029250800165476559906039056048806917718524407509635151958193085485349436375269314283472601286321556955893475903752173339569860535560558181334040468345871203940744923635469708013539670296892056415327057617850743694104216200281385974095606944580394843717122378085916106254729128941850143373320113941923776992728498792167957048572084826211756078953745099590160573191451033015921950477998616399735136343018127076636196256421829613557147414196825560819778451292399518094802761577905150529962456467685941080031965524777784431018487536837769304812085945609934751495753635190836645103834811783830402008724954329435980183990961161442520808102461548343772159056100747465469707895682559178102153564440601396893159844515933212019827378778074605279848063188533935925561153264056804758713927361712743904944420640017604659600972674199501118019442199470307638680820189152105612696080337311479275450469180708663306830471771276993888434975203615083864030923677079665962407466530356132058855795435358985947775420846585446621311741732136381937611174526719845377107365956594981659688759561453527256553052258677787436196995545270088885043127590941433023642951983092817046363671057700408235565615263457878747852344823998469437807398003882103551971467793674394843979504226155553063937295775976121356169082829477616090698661599524434740720825487274741637905412032043763264976757883944911594852617550814561782364352014490068449037552549504528711277590244026828966023991381226668728716943914242335690716721975618485298549065028669385313900278006222810546594919496576773408717385262225853195847657410136500168835456198356236992354401223596936006051229704848086706559828336254616249888405808056838747680592416721489925562046676970704279759470744399240192171358768929455771482444048370028276093844436672655795920533328636385621211834362027746460871764560182369204997521426141119495091413659399395988849687325390545616898630962956226277455693159627111291389068753371428581683265582291531673412889027734335549344788683553410612823002562318466236526025203082990557359962941212840361584876982844767216650605084309332357791634125986725241075624411628555608874176483498207142090696390405828539182621622899826869597594938059048857536815235174514956256466142696587956201997664381005061504180068707658470453477147005963307233577907943767064211961192058562624254444186413088962966896033391500132432796099227783533958918466257599319452669024214636598684615865627505934071484008604030338552638224638158915811836335966437381856210405820132816569854031673556381630156289680564587348039675160571644904016838278201603100326068032668396046855898129134031175368012912557689562900097036049925914526513977577298346853058553693635182475723337804400750475514350907561272195228462965630067221062160746123771515371186885040037147862817884264613905805364750289469072392890947226362566212556317205691977369329031393413587569782287912428335072502728595632347802504078961201978921641323874369299563216913977434727149780099649672978953914872704895812275014589904462389058696429492723035412933532387615633892115645887644297136389781641322138439455803462655791314402914125011688519989228707998820333274588556340878739620195842849169998809625666397846140216095059729972870961243304576253129268156432918037383948563519151464952919885361976689649877753470040989333379727159490519391803031244093812163606427205974993745636300957961622047067461174085734109744287490240722240719200849118581815181242763385231140880919338699056375247375517969791533483698607788473417923759000206964547789804654420961655824545657572601098292794621563820160358645909800121461108129748652676649377548555016380093639144038747044068074173071114912039559555639647637863687252125866419965181552726826102491047161897279219963728814057729543718948300129206125582556400088095864823435031158427250447144179924088583160443635426313119988381503447473273977326572582918374564124868253221336201914847369762675550760047847475071302633152791442464845831054261792732559597899502165642364980568016721702398636422151384913678946966518959963698189528929209109158145580415830296387791786956433541218300409986888887076505606757845234883714489299580313972269250026344239337293778361219989460046564408051929181573650714060521324366571174865186510958665531766993318173830344832523723928096067690523685645514645582723843589209066695738354627801124291041420564745807139444790481665880981587834729983910310256467522874694740469677382116151097247127560918182160321327115448287990220915809954467179102398577577600564775937066236993152851061780016222800130689503482824380598897428078097863373237536738751563996250020265648889171560872056819803813215927133464986079783246988263250521724677323215850527677276908073951802063356492392022289351307434265978605937025106926387895048939556321921166611355155598132690575754094401663689565042600926755204065333655395145959443033647298697252246130287398349730483019618694555657529791067787275651754721134723081066651220266183702365900835311812752978241047417681200547328540882448388546683741423356526505912599422868792294835077262714575470462006165094003489129260399554319578326832004035426871828068565325496525383158353257730798874142984638739305884324111675854532875489997195502300338352132642356527115654070175079374880683078560332541460194332096770637493574153953300374788399099007025314629659804152645556558977993948764754107248509319276032948979171741362137841981035068496164039387135610981878533506494822565650675345626451525297740329892753756169181748537555073371637048051131082092768493599453069558121008225657853145418170553396237627676852364626589367737334280355878578128082111574306197915537124356435476888156581631808683393775827893152246419954930016978447909000797664761987833614645661921975754528302389984112565980198621038498830157743708738410828080144737287666819032370967428941970934024336445816131807477228215660337753759924689494885688725904871418146023764695995080138660434705943517498600905231831220139459184856618907530401736869961254394667213996723140303493622862701101830211066751111569744130936944850884308639566220946963800556700634047876561037082409804867884265850559964776275293345172179481954550738493811330425663385946444639016837234401990718808607747458465023324552057248971165150373546124839533550370716633546956645583359220890033148110931050356252415751554607393244446202438951629450718397676169870974697327731850566508363285906286338132577347176797086008286365784771014243655708737137294057536068519961990142326153515666912187818324038266010409932276803870251828268990501392874943375476282680559264438064463585291569837956677510240859940571555962016906118060638530479462781011636883711150185564208324098816256980545241961108566805010759134257423116274388612649920868926439355212150847906167359649534179203357299319229870094573115669999116978422688536651053937230734148336277659461082027507201354847990537719775211020802148813910728456704348389583374523960791312644616573885318211704659936653431264959034724197008910572073105140310031420567101607836834277549263847812555726811479079790178690706587063474951441625253213465913541611593773542715672127487844264010320913869535451417510456835940101622677546837090867791763832995134146804688956935286856730453620097557985880107544175928524296410275443941749831975845436916715453758318798583064671534276462567460166170736520150241250941328917174724357727936423052842049153843136718688623786700688669902695498245675223482653556886677643797575821735368172417852613962129235281465101903304020295980863199433281222029856769858917413312941254825530968687233116292184678213100262026568569686333898603114906825151840653582620567728492036911080130045106582899768893986223020029873020266682395983433721483435941141868009441024239485678059712951621528595803182583624588407389192471713075627136269742883335952005433740229716897756514385056790239796312208322968868544151807687575048509919864160038519290649018781843282607380365794153750889224568073330912890232978391570165470989902590963377562583277115219769901272065427673634314435963386698378995681069142731429877121028098135403899051819659025752871711017725535981091889718059690665346225255996108756821060290385068261037365951903659809459038756802348958120983781845663284751012262558117615391139727878568369656636476038783309584586952129741360212303926230727583162017153270980917602947021388975447440476455684354181384402323951927105008365411261449874776295766461315292730408262464670170879217673162155902352156850339715859547058024228382702797149401860222887247744951501920484063908977847063936837638424702769184568637140113263995349055391609284364993786270814923084851585691045365720342141118382724192599609844030715687513288390846139536707141210527220506102534051019402940749759574527174929539079385860638632271697588356880913157754808342730845003458209437567851176238291813322850072395652673288180902382192834149414495655568942842602213790588610200418833919731786325472260696786349814689795481129245649195627574858991085116765690602352010867035720624104191113989650805631017762544678994028211648920629930993950416269193632852505656915907122368264291345975000114381266244639619402922612493139664600821783860242226340290988260707141310569213402251822925181145074532496117982780980909040598668887394654345337415292835273206845203742286706185693018757744193084575684590083048668952181850546205836400727652064823160244792294576503502716102402360456948276091892925914186544310797306158572168975813014599779416671685835670145627974813776287791201997077569533760091548850548543734919107244488782685079767274247498877503716950996456850662105235981331559735775696096559064049995701376219792921438423190219340151337337146388569975602575260969199204167969823087835156973389340972127413617967133318021610655335147840122718050005605899625441087429177105963861488871216534569820274202194001089823491632143341096645523645641574425476162806149948622628197947120995332656928835755699707687423148256547621396657615870188608830873520634213818055080953871062643310979218340123910155873257003449789928640434008566433244035520634294570835086745978222019072043491820981652741547556192053287163570177066988391265389325883009078593309732527980300713903254611166790612622091484958642463137460474292855702121225840905884715319438431133107476804463295291014411788533608414724183078822879553889265428666448457033467401260175278300532377950471739461989498412658617883899732766773092597723637251124093693571530993570444533436315957211000477806131956256649419026610029205275667024981564837479664097209386142874282180675705177294446686422969898060104500552718204741935330365947648428619741881735991210918110517831717355723357066204876797734979795164258297228610893435015799839631133567144207775122452215944588812353931831789842570777679077619574751252027257634592410599926915418595094605377094715366442336816034537749447820380314795708945248541902415822547307801051092213830438887300974159589762439285168272417354024953352564978836174457097651981462148737973733502013899631749840480314174733112535768108772820544027530157949921224822818831571058599032176421808576117958983050763104579394151675401359916459608896611203563607240992607138768703535711530836023137161827587949437078802623545134999471005751616584083140181416096414848555695573048403239357122205248542084091772149915796670505394094970913094260358442410735665967515059412976505726814953177565571347067231503130463608454835845721446246720883776265194604923072910857551718087040119262985996743739965714670398429978562924491578367945605019382322891997842022914384619287710339811795327919640087064849999257157364161019298282836441987022831823536960133729526964003143205504271571656300347801719246420651854607571656811038794804264588691923654859303362606440276948220974068354234243978019485317192026063360302189845717998773957051431924279415742837146691717756536221538380395561258833625325561989888138394131519059407857183614415697879733902202666436676056612603417723852733817170074654328762267357799173442064014595759856571905811985204360990748786201063309505039894971353174758183494361183335852575639212464655851461773314305720099874708293493663050146531674574921491274225822088849460920942321143346282517160783182427482236806357211197587626810722779638741191448120760796135398449987832458778085584707914035804032279332157013895936572258177353967847577538591986059077025714985199792918862071755406650441436740619597569024610752451363495723660724935824938152862368659264139236327584459542351653026603370230664555840862306562445697110879197857243006102976488461105742426529547417648662520787040049090179046710359849647006034864761711029493672651572549700987270328479905999347892818513060236900749309573793718138695168213954681295914649862341491832625726075502638768248950956748676320264693455175510292818249839119646790918239352418715552522863268318942057278769977596787361174983485889930089824631185447842241011310191145821330652805811241230053589649036369572826524369193640694048651607563283689485719246133771989589253365265257048202672064769802209837141510875729480827271214552656540049463226137117556522557855785438620484397274512811246989303953851327557208738557308613633284515498099912162217608194229832953752884308497481526598950959603170767549866453741376304678573132607288385165158982819059836624424098412397675433819956413887733902556191040434070925405873312271955732150043907332570074022910892710639857026423394507230166256217803265052508088792039039830239056304093057338301813017261457073083950018428619529012573812442180643661159699702227693367937704896765160022948925573451841716903012990721201296501333506270071422766354974111199921981966469870956664006653242100394714515735781291000017803245406453689450147394974900566906224257146068056925494622647946704886636289350462532057369784701286810903059627837913196010909078160372575988890915668049431931958905969736237831810429437253573739610072872574632977674802262448251157855302750058601415419087537221131528876724434954889393712681185738235765079757375591862260954758793900685505379226352071301751998848581413739120823909552910494808863257390773452653449560697377315653885478357543068230985809033063451846343524211935900991772519327329122989574029823998480331430713420889867686491831766482764551648509783183127571966685940965467399168666738031145741287725605476721566676445897568217849958036979388003509182753585483735102380350966032255255659914155557424441736919449621569243311265081247949877523397160098964043204516324156612432501455034316605675360644574335401981471072977478011550232305077658642923557297979550551397602321950701458779264414739212118715575744593117881085673494674367757908697004868600761048553967400939668266925299485376913467099834065831062357452213642074997103676648809063665818289088678365447656052399611687466435038854549657939336678299942212574639057546757896113200214638887514277042848516141037908536267285432992826190091240042693001842308974195747472337188277076536459963443767507305972448909468437335025368601750831720395152360017879073227288852457483637033300444409278129059345368663141470104659341883474689282629988236301306013766926988217798851721574924541457337848823038246719166595110517463243127903156087414886070815548311021325401335686854055883435750101887088938761393732502340880796593820148048303164481123176201540243450258972177670052598768575291157510799488761703346812320199323113219287434184661259987018174656117914611868926837025201652991198988874575294882924206169649654308944234634175306462620663204127052479046522225947485262988218016651037739152095753569257176760513915129079083306308913138467076780713608298991899449053998432749402438897106017627516457548654324350417468217404772053579072978819030064762179565605159378531746997543678504299622806859383605575583506521637181437581203594638980135385789008753863779994425275139716428576455853881509599865425996115756112126352521835373754089383829940714767194795565653338103356092091651358796043175645214900210873745257571940701660790742117146389209287184760160902492319110422671510290601789567464238340951983591142408642575864571107074853007624980220673638377984459884147751507162293219203102605005515090769789431943783482115759223131719769687308328746838329398680193191653702663820034824649888828009953080219176380419759462730457603423705049816862663146331381992449951350409336852132648622166261430456380155416702997567018107991459576183714301340032034976529521643857783420248049746048135655627876700141167645327657091594698785747109515762707756175897195470146914052898762386344666075216918405152920370643416714344581014881245904108836676957633696301612214043030796233418792780707414554309612195098803307323271225143074674379294908470001118157576487217604725628436874440299990349072352336477956148260727543047507338357941695208541185814142116336635765318843613930460864044381203050087374740743035198125879556512101543796185401817683516395531429788921057669793350644218922063827926017080859661513409231014455095980500497093334182603462822266136524578624368576793382874818080831166321408860189627933379691796702389260039510884923222262487914699524694482213222075768162281876337541174407176440825635977749100498441131586645655216934794699385345895276480298615840226457690999942100043342064493941644651586082274972790568046591058023199814041816664689710703815899178259905577024437941647676653136370381649556880784171970666908881871118929635540970894493508380867208740873858915771678280578464638730133563290056081755657051868983518288538558189418761846431885541883532205586551491957726084013505109130429643867372670176920946256840482169559422438162836317605490729939838290187707137864577382195962795827372843849302107651701114120971271895136778113363452251194325640609290920398920303114285774693110299616289715741651353122650976566387254150218818945769606338265402520174627484331378659366835357755892728894413722271223237303189976271218756359030552405933440680406716588549910892233951031852280400577631630777931393887881242637399457661735057804548647097133656122691054526803233517094657822351326347115777977541566480012164761891538394454382707413571109880273825243581929452706387243028983887862373972699457788101909956476339872677974381882407864696372061345750204043865140481454084863722948089187495333684538577933291856926116001360905269807485077880809719922079054938464491299811604451051248201576813423036975845780597931352507649917267189783592046244135583539680204390112988082084879270599398452081514555277160455557814509166391086146598101094364855299583415894050113221759189182274078858545057370754171980793576571347578264225664007855202712359649841814780918524754051782985983587194509009264562032214567936003200980365895783140365924802970597042389340141784940898340588942082813754108453271947659401578491808798841278671288357844697304445346330011340784244697467610052163252314696074617972352275188891136610847282504473338769880578589978824961745714326538959319891938094537356200697795660073292073759878773953340122426282463811760465786655295493277601516544433987977965759642130364849538029733629734054095365660271566620956242040189725457871002690308873068859675832363484860800313674933788046988108179243487055585861260443351113415506834721578802803886307988424864795993442691070980705308289506513928987245609474089911504991593266076126398135045789186421268398792438281063901902442716735076462402457681752412977343770472115340861680417829499676506857905806251274752995065595324988186611187221699214720955606547552197614550491099906975684236752153392973579155971225275715087665659664502719171782052938851093694472103279129972997894959537217965414822046848475792107971331529242256581065964907688575121283151575700891568839077515923394970555715543961203428758061757935188670398308678334081013481683943703392193419742431633468771675540102879059518554697024410748369099579488531592235768360501858756785573637458577148410634013348975908777490583345539770579535213590168266475795738272508556557813548876359883200278577063164224046839516165716965633117711645412249718086216525530857964508026356189132604359629200964032384354637212951594753702934135578205609103465031482793614106566034579754420828537160023113668131909196410287304920850041743703833744628104646209427769637855809342757875985798784183334039966019354202671488261281948862553950438151533608881983528174947354252961305205889894745257999789819276536230214649271640863202923565929941917524547761440843060223793185676064830394341621875362580070414749761396384298639152870831145938517668485369224524791339701856796618981007020472212331804541925801307994392215089918339722129466485426691824780579878782653881338779174799929862716454333930424609112858024741410076110542008971258536672836314860898634346456934102417486756764886499932016760769139511745616580330327374498044609078090640304676349444315588698973721502306022408768962808996777200829540097286219695804369799908562863781892068734312434251912571665860848853313223426184326055836735173575594624744942409158058913520207424891718440223182667020736467686101862473648492758014735888129615711645307777309918790610580629888628714930204679227525167103708071639439123743167928668219344462247657260407054599859682878959485807181229609966449841895435505126974622222840558216017815638489324156294294102354724474406529827595650858085230803988104176753109539450829566866700980596803972387830710888730991670839909866670302161465717224580978408522623333842572081681007339653460321498432069726639309186514925480137010383870547849580569239085810090714701468031944118829167741001086760714636703460970165877479386198655725149160321261997199738034958110164842267544912596739312397990074831055385068661830482906443355681392530449017556754977224586553701581231148854521455752765003400128947427422375583403216774265860294150285405959573417873490709801590858265813530220465780692136863441823833585505804406907890487694695230168242268953030195038490457409477237858458141308094244812638676254526179071856678494915944757525890432985971556253916870664050033869114702527528581577463230763947736622050212431711197669755407073331126759558114307664350837766138393741882119872814025816430195925772339924977456535991737370482345525690174683861816059068502523687172292558204547178143199158178580749491682119101061410175466753076202891546321342918722601569145323392446783536092923925956317992581847736426558854142993028945714297643673232226292360240155503056432028370518644027032070094133089307405819789714593411354663062636587285718897700556917963920940895404949675776691668312826151980538685795163858208745693396126973669872220449857426520785733934500552182495973648387278103946120544515637979612030291582165947657469934154327101407474577289265442299660080219143075163201211471223362886891100314198269762085822116102372004620991321164326070691988680286409722667809023807403593542144991574619796835571481367714258230102843682700410344318799421436138119770538705702515776750087453539287747201965450490621594472377056582451061967599990856948777593914911594201505099136774196405319122353927497551027522621259329031592920205825632274315631639883559894769491278028259845083583679986203533520206854605592167865528357649815669532358261585885723872988882219155944803787090891648567299072137386053604371214396169103856951761602847570707582741220885574454803861554929996011109008952930561509283466502880398315529188908659028176649338550360215828130100426140461218562027290863585170570520775006033082951809061933503365733692688723114598640046622358297348473629802877988102147101924585493748777453115962897925405501780747491964778406746552790393195565583081389669254392861168127028607801649247175794769004071383841871022921733518989407640808971431883089225831163936596875379870142040037849130127501003618935528646480423801407266877894994702425251395683293667258320126727746887603228486942873013499735546344984108290399024614311248528848255524681487627399427149890583389896406588465382777488201549894005594865085108465819786193302486083380072550353705752672616262712085834957483857078107167903963214061147985758927316520665138741418399014152408069427164153124841465750736758351621014372856615067280484820945901214115397057048462215390455053205451408649083481693367506628520708583650447616870476424706292519842182340567119317597738507121384356616120054129148709109996813318550345675837552502739480560945533332426165004974273699236895955712032345816444506183980944636812010841892621331458386656721599470819817686659148832682318546016554172883453416704493091663748465689767634231201898326438583939103418758413624196745799464920222197983459305656369275684935977767109310304141130731253956424863855840014555007579436042665449474702259689851026633743830181532607046361041203506982910077402475233657584258414349259806781961067661254989366947457932038348011891804623993440204860547400539729198870648908353273584284625425978152377016539340906639616141813699362622724220637338198430677526480387417719061345607086955843128829421341889432614115598374198430965061807992482485995574739758659791783500162512479117682056611258444568789795467228944116120724622182150361118719603867594046340815340520931954899452801363923920455820584570502328159177110790863859943266252683370835162218627906963513461000189272878972239673342112248855255846379496233480501745645714169688636010053871749288214974692896253474032490659110794774699550166290271458472984650883917957439011915442316633387279050548931573371400843033387711793984550288105152253878558588584852767867246546822526013941421263800251511052536202028508833681167117913145351827458269079362143382875849363671478550254061831507426381713513107673935765006518722579662135584845251998140046504966442936944658502643253534227048108735843865153165747836934943817561843938910192099339207935917302351336134333617409585137889433243636766210205752064049860033947626117730659790071733843508611904667283091919140548761824905852354096036111717587384282953107129788741300678157290071872028525347373683052683882088519006528889920658537114141756148218048590301612699363022004245730365450630834445212718140481106462655021833491808728134585431700059389454647778071780075541159447956636875231302809685638497664674164239794038097802400682239305855439751487761855101468074924443130493684240279796638069701072185944469466756952631588382852626134002758568056513954164726797847201873928734317431956342714686128687031868026805130778331133364970514243458619585743399376038313489195361652219857173400602626816423331526275325615269986604467428210001630787133567565858417605706103653972440343499640755239144597000424882780700901824785204769730606818272868950111230402058592596546463916882653440624513894380086858263099263707383047836303898086010994899412575125614015344638586044237087490956244130195998756389104652096675458776600865903952152693072494759346376552499957398136875861046823835782221350227515627717439223995541345490143078065888871451328133707614850257685232363829331458627428059668809646209984224762074394269002794291723758974789327985624247296590853215947205332369490434586302796626630740273131643223047124289657816081090460225680448819724706799349489374391507550517355788275864367466301133651280628067638738944351073404778542844945810324021530268892670928927343216222886653080758659172552536648253192224860467190401188149796691897238390489921449906378342247258297448757138716393766586603835319582212583899500531756700955293648507888404290003623246079851080944704118776696569852700224235867654214840823074249659128990965088853630872543273215141598918162875678113070516256851055815126713593458684832178026783508960472580054261710332895188363891032447371674832059178733650962829745596943462409255586965281665664281336902593075874044002346731373767779248672610262584036880816938609418304354216051232895870943113775339106511731742579190387744275557746660304066200990406304260514920298704318460132738950909958718152703064336944690410044571202235451171011328756403959370242331710298393490082072739036495979673246587207011744165743432549961178069176467596474687979151557278151624730605833452636485128981677846980881895873911321003939555111869683602326765781946083927775887735609407559829177542808611454330139500455246551258744291004911372885966068671895355711890373330064908975683351650049482437502013368515728499636967464259587514953603739411549609823443143510932022180970935978032954975959889508110435013606216420030405425352515876820091558762332175442175880859419299401661600036343910153400940398613816141852965918958274686221760058774007540224052349144874115414450603504256362329696036597208236492559421476520771374574795122002325330587875772735440666725460638556600200246857044600372754039232960874325328139244892759626369997460819803075879612158694436812543464760058234517098658868757896434602270548007083790041330514172192659415761568791158805019134029748585051714860817315609739898187117889639975438593851481271228565920278693528607609610014588150046862821433081002880034237990803160388504060829762941823082783808603522724981023677059060464634775882309524024902511871798642433919025304589573203908585078719522550177703765216266421852819817405073400258836663725152809340520811671011269698677937225985693349519432693201259024230765182777135271884472532778588402055114483586444782301154711844183522932511493257269886174912260328402072777884330020182435128895265885264348504018011766921894003013846230392559573128981537243816953077315894785564602548901233598445260358860584211078366417704984380422727756181463614970822052978940468419642105195952976344279449380087623752588774587365404368603239256812039681539780620318441175173406354964644946886431290056599239710398026055275888191344412176493157670125023282158682913399170943472186019906149947270419372232448113657773647843342058892259996962798552988234835813451982181425675924349886313315764355498522016187470094484862457290141545589059189488870773043749586720792483838574340109825006289616607997109441836998747844395676792923888624165891024436902715465276002249393490369054716744829657708307392421001528327233796093569239903388244656012958928007919176430314202194237399396437444250881398720311047330446839944062988196979371975773532541936499589397033298030950573019449051768134116524453593299051529119861470957035374526557874245185688896013513045894465467027075880994609033018356953660132791718794449541015603436922864802222470447675869609032209684258952563613405634836829717434394913450350154562712113070691281968263867332213184044441497703738450944461589675483054536899360682058038898772474119523892924216374678456249854279850314493299533158554300276671545897026296265166958091460788101747143069917441998658473290401655356658576263080502414955884775334898523658984672238934163656532479436451005902522586321364641258499846796161843552340352324721110521226636091573589960271302132944820897661410378070919365580262218178495712207585119042287800087459286773627633230096905900437803137089525207666717572718299861439365551183716692237254194667980821666681110395660439337503728059017554514848068166043674678943264045371156658637505315120812713275492053068222000525692985014308858791590283833858882722616677568345546004203873216650375630854083599997383442031879253515109883833853900329095903658740548739885297296837997229366012923123071602055097339309360503459039551443505307799861679247161459044327074762450851301978973869927099332578952464554750676366826464527152552254333880535483627391626239590525296676645875489467344757727335601383827372900539389665659223059857104848277439804972058382111553825906009892096613694689317719911147471703733748269810596270612913139960608821877214852557889824960571511959077409955071399286692015456583834310142603080858688493271922984158950926435718314092471047051845128758590869988410928735902874312039343762798516411032441226292631100110969149554450309453357692140980331567655909480642125772776756252536621018085063681829579287160839823402147203536259820636455200852312805800326759101686683448151104637370484997348399072102721190358008843242221164334445080022597795281797172269973237591143864517946984457648063948949183343852518042878693263275290244789047593794042859845274992227797210005912238911215489383823913828729899317311947617390611504478279287691102376475502522571732194818147370630159133088417889819598162999541083390244410692706737595956997119535930938496110286574076506367694490893018591455864987037289727234334572249278915326092232477022877262964249176980803027823621723937988540050362575915155488753610089011456864982824376781505124828205504920676147252714652189663004968857959976775225939759164060305110289858039626218819712821705192632230895174681586477249400663476252399854173196026161036924591719571597760197169490239932872743974658804365659364968801685286397751552247599976494185950268040500645918096984351130737971104411979180057464654930780215212529810087314060469473565906468924181483912636000059197362471055648198258938088745764536277429937681358765419179735722961270008929684713696493683678963525592018230389131039926337585965257961649644990890955243550865890255302785990775532590127306002355311241375921228833954640486577783316157682986151786509241374742372088701308805439522592788530239430921659564909859224077060959426129628247967788111335332629528747975409878835566787900429195451576744148678404482363922592333509566007275479391401697107231858244127989233882002377940639757536572516250133516367264435915977475924506119257130162300909373451004745276180163807096773700943768059667142294135896008247553832459748039359252060796044905017692070585123672619845895683093796806254340250957462165951887975505779654919550494928592667123325133755673871605735638002894299024885121880124056867923618924755604824874955328263873146464165927420598853851477433433172591297317119740004264987222438106142110327499241363713375474324062966725181559286579138643702562024303964790489005044298526244657566236218820854094942368505732727377622836552938642592913194617852606260499906254796884745853044130593739472779307753507819355762734410692155894072757362855930969449663889092158513270610171061497976205385708528120957527632949857667771947593521524216768778681759313437055674237402436509635179971533020571431114640135864028290245151732610767169202252500633762431074593216178747624311018029013318097223112382400446652702557913433386482338478240836415091426303214665547365933617596256169665943312066598512767046145043556505676323192723803451402535421280961853640658606595686559340090054298405004609354853062062677047658456432303555796213970401284145071551329589154551669286582783593589403391529922388233290253888572605849243307420504807749658189661060918105854541979324802037965568285936039992614596920546380587713649031487744048091127428165482419174572111024497423161561692475479084730759375166326609819523795676463876788253431508822081795667477147068016351059647568318898324971204609208556593899713375741446504693478302243271003842147687932214248571356564628340103242412826327654208160894480705939169154954190788990858389973870706701541666533841958350716971451934192037445743820510407777297327360859403932416374562858922413376538636749550495430566377084345083651770046466463815328674448226290496018468594160503688344077608448239700256776213235721377269139239309592523794220566769837043926078903482673734755942452833285765991776101256955535019262055179939802157103124143114530230698589870103035894212885231515059436444142065284953493622024421560328509445445462874140740184508573337343507763059426122501925255325129594491863421476582140383079795273873761052730263924182242641542150906460098831844152564307260014686146015945161949130240366938247501714189422592020806707745491575953845423781388608702178664247860286824553825759460607007852827332226510563344566490874361582295226450690960831695617260526525349150207041380219034005594770178831183123741998178687238825101059747512023490654168401573350143178373352481938619828717997108615948170481956079258642819561977024967004211000953800473880392004724546787309062927968600542682022838886659498402908313352076886505277918656290128921312403151147840465000757126177971158769600362591788995845532595003528776418478397863166507073750966908836131673914766831068048300176113605941255839026184975476669625951172853403585921903452376715116431337260067105594143593321358059343196515463231783380908185782331957159526802322563645435465739653891585126961726835665295452993366536165073980298734018388646124416365174666595366989389248273782645426314272038650117553097076155873345431026760891681516242126487058077506359278825954007357177805690888160798433456597061009242403609841782625417202152788307191579766742885145058773813359557614484000839126439568917135693227613352816047973256116480024364781339419493919981444634503389773048595630790172218978761141526758491378276713640481452224170097638024592754166726985901420341115880451518375957936470769448992165195823326382816833363255130234263516944400844577342648919320741277155095643226103859586891038570095852192162848418489882732686554704236675275075298431229087305419839504408942021416678082595919680982797670774928984971242388093354144951082942562973278266923004101161806478685421633930127455895960223242478674916076157695411688302134542171596584609084801971964948722854229249133226957718991065219259616823520973428529362798860921167917076294858474961499783598343087200700477102185689744126172310910355596286226249946839024978024823106107738908043031729059847704522430321003304957569659557590980897187735515963327482963398864571877846910640355644896125273514486823105300277818843106768143634883686881519793591959644805864518378586597310271207805878176828347642204580417485465272557925932127542209355067091521746074596518634501047954448472804322875904278532798925864532242985233863325720785494344100713049181600750957195966817838095600028747582755714595912142379824103442011990429800083484667984779173667633916755981233073659670449981783300027146207947153962607424019051778269682879307334273726355455968205132147577968851655215596878563821506100375744210687869817590879723105471878597945093416353173097134275573684804654936846085895969327951938780548353518384579551278889710753852648125918197952271446731488978306681441294809043876475459701720328836793153948731927842820614083782111123855185925737202642344646616985206338453406008552668716597199988254685318368450116433542242467663197456134600849630856057453735903033205858460474211719831580075972289300135611575620717423148933047964474680649638129316429235235811390296699494680014506883857295049859738003174294755623676743764994243612959018878163634223194934072584973173897184738742749355098506472696597496844126520678050219420428761073628889385885038732456855643881657884628098866182032035782303338009935975059130072333413234509602597374605200435709986002981455095784628320015135735925460273515967564416365359760112264712786403244824007737996917646650602387339665635679340398356568072219654048851193224882054279597780912971100770045002277546120661716691559139809765659822716963173713238023308189464381281348664524955978995445735996027340374953198103413735458599614954983609176126285395307873845707594632930371488225193059793817175115438350026708995826545263811037252548877439260135406025221454919816995798737164535132550990598052087967799440782253080775816995602711127758544868440276052939451428880029095380284854110122615778415981491581407749998414962922401988913083178596669153882290099469474502478449025713673569726397928304032859826063454681985901480867741408921089040105765750311041922161494187431458784761367147739183053531438322598366954538329922394045613360601782141188650929220792949664091216003590511538805649216270544641912365185984908206532775891997389222939012002682322223697736723300393821723674653052650743914068309474732126032059858840098990148026780199482685855351480657053914005769345471367320387577245130697596060567953900372658598646113845113230645833725058053167934472599430552175008531778636339819472177438498394166462144855051885987770661689027887474197775072785946167848196488792383924297012302195264384876917116929419136764539897559883022131894427468986445119523361135808699525657384995132272344858932311386797831195178438771350648230598978704829980344715507014188205310414266822948160081609502468235978893323946769501559475750223592602045990247226384941003113670440974536586103080120593089275276107285263942575292843621863776425354278189930659914800665696367275161697181990722601937571168925947974476124876288821798650136747507500638323479883964599297740048841235756668657161421583110847360913934500027320051307981281570222561690655268330308366563815993413470070819422166484822104159343491908204056408595224038800378073492616503002317179993148259291180059943774744659501565939981386238692869062652382061233623674596407209835077011082990790280690341091750963599557314561823190444770495486618716069228030350137359522412331696418348799080748080408689982217275513165996195878096775216539898309620348940936838565394211961230810211034710517424164346551719207792771385295059976026751864243969265536723344784100681455951149036782838817570535380038946002769070563127023230141413599806631680174679733509725414626095995788159410727806596654228530160830980948279808777995415133063418515999977872303012663922539995594139496211004195460782520674425080328818050339389218756524445169955413764760007841671637307558479723386593926352240182260803169276708468269071288406191974911765628699969084970730600182337564779768748466753052691929850792803668182143767960730508738080830144642975982541700786439730496002610834186196966195963220184035916356341184358185982051413631915309125174406624049390924513588519076260037068893662709905594646893766800692046828363046250164021027437917854480248512861821612512114570003573600446740692536790368909502592398915481716225418252452080600390600406155405892907732068730958006174997196005203647120978841924466670920444974987482408865905266935889487752575164013543674237920145307220235357660068345446812068659513932726355927699659957377744110379091071568358658465622085862107139549354539122567600732806295275190075494090489639438880642545570726221159363124394916459725649101842575408220047228888466008634512803044831901784007401167647739561543647139523558199976935901084177521973362030832625761659684160091936614585331142075321195292766971704206705185984249976283460412316390812279089005602391472762547230601044656137389193482911984549306094462945096159115367552528626105912712122041446841774978186305011129746011003941119350818908357333290551144074304444675853303908198677458587064667531058733204448664381954737060128480984019014571108015111144466295074606523305173459452577257589307863700719576792849542202391372656601382599318384963573717455405038735780540832235428668250983407424619172124106592840528111662009232829606014301721363849285104773585298392087098926316984358857422063744579956105414437052488223358026756746099260155440227768400935931817775078576733453207311853083797369573820246047450096045240556006415683554046864601618106415591598692574489030347146086368684207141529519539968886399441629850126219826547899506312921476017960564718499931339244495297288337833552253066560811391115575999790713828924183735740905193241180832760185321057583443407862876642948811335953007811514259578279640928378127631674688525323298028567924732045601932093854210158071474018094794611604862776786734377575114375923330492549945720627684233643946932701736020361084440187565356931607880312701567743292110954603746698646305896432996195799083916388510735836553960217358685803947562940402286352096347217039450470385257108531336244754542001052596712178357874633359416602259232356257039331280188197993487698085088538737901567888592495993380410450709566819780689097913047536023127014469119908171380579382353672715797874399564789154906407693819236783667232181905821363990349731460243981196742174048660691965065868831513483401876813467904264395573859006548375807152818128951074144096602504501704396548535905382780434813583077244516003786097373743147217940264953077294295524732164285858646026193133904622555731428767902253344787868856379770932207047543824471370721081728072621619220345167663860275698542146002937106613178446743494946034274590970779402571198873753139912381326000956320636823628583602807898741532274462127591793546312149215856310068890958077806059372828374066045173381475694066896879076029446437289032404571746893162279915260767008749579463655298108006056320535932346149132211508186917115560300065566655477454978755929060742276192490131286777580134210840162883087292122615776509522101508044663603174403297822650479584839492908809137834911052701891586665978153952243363020381943077972210074929529196032014175775251699297714793500137189964488911520647362966761218218393084899260246004189915466997385219660337567293096434216988980634192953311166015202689067552639251081017259294741159705724670208362379144576603457307631055046947966134150629498747616641845707823855574370474740572018709533927231232500033657654416035821501626602351718472672153312107509640158510189813774914265452998666920870889036949102304930463034160367508983514679902569728765115044510267583560834962773334541439538796196861122862718377702626499995437603789756618638452242447394924921505485101221670755524051021038733002845936131845844278673382314261769736038563642708421202831884367381928347131950871731221910120316721141109395899922884674801741656760993787860391968770763447597018787011536350704268062034322219624818967910905627992687206315734435950789785292306604096719511043330556678384953840961252779583891054879684848620867971749300845214435942534620011241084266041656675868978082776276840134698294192958020330574004749139789710591226422104073255789131404774670952160426337310954671071478824347469732253620897184341401689515209329372895796179900974531322807631818289943604331896956895304723703995389058396574835501508194701003364946075415680939094827544998118100311514311246044371620602850821167716052901503038399817787498619635004890805220896906827949155038157223974665114420460450712132800560653624460196857385732581380945079434740660360543591168103854745541390100521085682696417604643645926975730111231427615691640643829304144191258097001501476260450843029947397770443406025584831556047183709862104371824449093244999094123969680727355749909747543929025579847970934821903280850591023318560480565958856934103697521787966167710423049423523510863007281287132147932780402066461426230078561408403604925983489255712085118985382238513620972879195187746506418610105011000152392140198811550103331906715396050149661273638135349062018988011860626488814169435292751302012074448506939497156569637005281044364579660515400855804416248425718544837208664333866575252285810948289217257839158191476913646032684476202255833605278843070662682013656256706042916609673993739633372559817540236901883535300799015939672492877457231006053178133888506294267768452361064262085472070806053673762684766876846210436566255254577155820968489551260545604270948386990045370602363886713679104249114919963014756467260027940693936292085268041593916556942605583101370172150024613412555388032120174802466199405716025981142053849733099095858647713112190057785166056821354656769254369586839553959226979119815105678624278738635596963515965257801008877751613948594765360570289336591762402297065783698536071100495347567572284079338746963969820527548854138638091280465567957605886738024779624558074935723887491817201030089198899323795339275624929514306391754175652362056553753376059478403547514349918016962421277305751753172714089928417997105437997664693048399857656970388916180268860609482866498396473822403052368385787917654987361628471601522751105553564227093034129063412140503747065606138761104405763127767768795582839693606879749299247305575701450712864877603721671366639964795168121816062508956359322145080853486264524413804231937636533552748353332155834128888664778013962249460243584302260633059175741552754477847166515158060159683143469938602241167033961033143444142152378121270529004152968606432835814274572054807634173997685403211427870270994658214566961420493586005178320307495998499945367756065963901544332983729598770215879840453042417236885395654311324912800166886143213359018145988153451156460669693087226879981544016379036258474494027676223140583830246323278355589704912287637551609935228638759606748264709234548966040439552829693496327329619453926341254044358306491272796994144257715378660212159626068838480080776486006844211951284281111860656338162758796685046790939303024381941471345044461099623814160697080458893859796343824476120094314750139145110290353458464233986653377503403288751178445621701907008607026875371234894254845267952905967289911416216871720725278954130366253131216168718400290849140108824746071192903310039585332809030568981619595841464035008818383544776616176408343356576282916036527855053342960722017344423999912982156065639233096831232606113498474590475348175724793522899893500943495075396373482607389115471101729844079071163848822988417921854283174985756016443562226461225946402830864776638735945986074842450470990867877167500913930038211751981118425649944996192501939380472533739945933377312525246306460750434299251006362772644042522129335363983888712558650282148393519537829121923251329550479427077479817607657306909813981758364267491567563803402416350300899745884664455951052637730388753348734402177258548166077570326003356204904177355790973475984394759958454297654636741210753515070138512126171017094388163868160788003253445607801138931545723258763168759141418393365682229624660091462055145978337911564647926663543607962782330254858219782070997473109160351106470097487400073152228766473962912778621844683555002020430716080914200728462790183186397870257027722687823910369724454864110588891669111059220294449329436270354133060819880526880087934617095630484602882766011907089407300282006643598669430991288386695237929866628178898608242726970488860447376760942026153771779179096775127871974710440809155990679190772341720808085990428606083045454567514227713847378234110053118244306323887152844086268756605069723478477362196202376584411033760842159043811894698293130692861159856453139893139948999833404400924228379125175552174621891287605139468608598847267718746650478527066436257483191690849153712588054145403632674786953964910372400574613022029316086995031019877506028802379750025521574996446424533498859159093695439580845280450049366398305637822541060875626241683217301132374663650818321551390498019391996251482034852336035202979892243773111150091658570608810326003536444475177424698915893573470565875149762563268039695816969490397599461063976343230542272136089087624668573467046062234937841991983801309939280236522741919860542642497117922820503705375874271366660907271485530946080779629080935838546546834984036355521684570343035006341023502853487766353047125068844609108723266759056557933478459113321260789019286980993596367757831289572697042883799355130392695124058916092998449060463192776299056460394768756527761889878075082021154853642537919707547290711263442813605992860931191735709921525555198027605603718090518902071857735055523271391396250159427253930237186445017661783609459500536742452835334629660040084680727285331808352724863433160206496873873921616095592777074720918636095836191285755719394844572279339098413065940599965126384799973332898272447135236300117319458797298546960965574966414860678319364121215726453407658070668960253185401478248747972806312019166738072237763920872609732475421013217402193170524688311956613036567070305219123786177939256907627223847705052392706222283746098942381430610344037798238210887741439631390151070820312754566079546433713534599280628719694697255592460998762340560859976025423380535602919869909560761373682770704428667046412247405699674920985983836128293610065067744980245221678095700993792811010739323086789354647755651487750747946650087569269504913255612646101280600598839499515516257640827798160572755744396120181474978004513217821297863743751099747673376313161023444066932216989790648141522459605796036374929385390580458098260355681952893952216695741564220430366610343722991469676043864419421301367590016932422693491304924670270778248184552311346110345348927331506006104012302853833423036382471550255513687456321669366560444146424555698182319274119450827968870469417670261059660195074502498516529806186805463813475251438433278991996092710858122008935766222569799359869922149610692546471768210127651995959782470050142217475458619429603923945909288284181468774841913614189873828126107648355343241016964934655262953455634617083351095016806940228675056776344571474132177751673062077821861087706492244447520828000983425570457784919191688417677178688630332126895491976457394075370098837140048610970254292603296387792875437706956043733999010029485263815003262899728551130103698581932674488505222846110219180545540822774752760746538989050643747981698347177749076103760062828906194576396781299288020027561119672944986154770652047321954189029670858378060569502688599152022861683177931813811133700846648282316611242940194035016674892993924087057564794251319995861278330973526538433593841675247530968424697781918626113434377111559925282827313295136978782140742545163126864523275780821743915421468894359097731815658022061145796404419421225370147991892788537903377743287340955117413783520191979152796500139386884855693747482611516129271672957278563847386324693858405292467490402241343895188323801079314601834291621633196573700156116979427390045000638416513145176559085970026470032213022198522497413915779529879290963497289851176018161171374469220942531031313834496135599318178835441647145038785547166597698246724797440311660606198912250611841569090447646624571283638206166742756470277596897462784181051476701358042590385753062036572937840166119491669482713592856927354306769178867000492202732316264040702550279562093496216227338619486811060844961203589560178708588313384417288763890931537407240007280253256276428402648656501968697974430425922584958612104741792279253400552524744950234083926561723909309423006093663032348020210867886808965918168479273686122330143271469568445704936542127385236419762748941760376029752016153593894487622023573913546834272594661232829509057651431942095955160726127413535983319184123578419642134288725668738970843831141046585600376612488220324630865651541079929646904657770652379505345960246149402061560544843064378729945258226263609196125700634234569581210810188042948513682867398521325345198519868065279201617538965618411825224252968934661263498323878626573832248821467182212392161452163325275670017042893990524654825877851241251856125788689612745553166549754643047535031903559023214381285817927533984012460823890717054605835960586771990218346526128830571868277510762506653709452988830211962730293185889270847570148568998529665057338471038620599638961294320941335957796447699221415378655112464853794392540736219275246848238284997312571864576555150869582613041513497981570174378273366379934306509060649809298386303335394250218225663812732097435466224458876436131499407355388635877067206336811113229422983654052688215612702459628857235482642183145461433191254583361321181255979147364840129146862219867375818977195188232785208093327828052850343881380195284554650513932613346902691156026768435854439350762856672612665083945358983093208037001078932436582915508013223812988716134464809135644029247125244100245252544508023246157822063586871671105569328543801624683461967492375522761357513105100126776057643879915719948597065176021389146406317350223384643458394835435027981902728797303613620285084688401987594987037814617966864628754667039989630424833422549049244670132939247258323623153116137997123989446217658842719338254666216103821400699023027742644385714175745879439789795948158049729059761387772621874827919154213901567104042498796038383987308071550425303932011381726233669143418847662675503613925863449267294163554406164160581260068978504890246540953673844850804419948123152264377783589280107706140528723579813191764225440790262977522329943162440568228240489795858620420959030167530770098412550414361419517370577205755550817551260179018120073513341772372476220812000860440795123951426598964340376424506614208295996661560889038571068464029141271737657151348879446426891076941089531011909992999563093090503526143227772332629147014017864451463531187383784955438825008569273087839474528749201768864473117831041101961449160063149881892999061015277816870842162138183955707918405119806759776959987531377577268878910886459614516544689831334742354792980519109215146830716323855351038727187544676708295297490534595376525931925166146594514793368506381679734786636883270789543959667729832709668006279053959998294577731682383260738801861470654102514617216288678835870661909367729796642225593369082458671032121453015761406563848832046204655614811573100331062717763663272535510511401137294797424234179965953734894214214002365844081133883197617526149550589009245453137756058842247628652387606272469903021267047078094512414716294955702704018998666632061501798423005507008440753327962569991771876542652570331254951397086494471914527294488305094601841529556615125147404095257980099014633837977690212939408531024885615673506063386349236844895075282334010075202586152283062071137190594267815521410921860570542096103071329372555368225794735587462567776516453310929822861537602837922593025131851658133770605209210865756174301233428908469922349735151163142174525426713978924615480500251722320908212457411077611635359168604652376411852083104556005139095894987309707087231114254706155231216733203810854809201787391487934488837268545689214877830390016547741762281260580728355415331369061560793139630006376970200762535050726123344151011142807093681940223698999130824742465401270194011322299615799320483328746713553834945796358368992886232904397225844938171077259058039497162595066369160424288126158825483869715966530554742543545597343320165017471694261408641380380466595322388060995968930493981398961591441778108044017768041263118730703803284078136515237865950551008740358384973781723210016623052721994616078799074360574231409928334586615303026591088028489438826271928605926885462526118115065543143918604736161863832014952014199240165101739767409226043254842945659258581776899771652026749864198907493364258824361620300822991408842303703349200032109476423574937082515388359612855402857151199968412130951329760106062616323844678533043036052833245947715175211091321846929689013599203990675174666377175408931626352691592236164166758528381513309573351829442340194857599928875715896113735250073352994468645177277810729355506620061651116627864068458347421220153546184274562778139563100350380090185222039972627590546827269914375360065616686551263453165342239940332569876199032700182932290453802164698053155309882953376189673095344571303776167128599254581802272613746556905822595786920989804611674009391732335754451424181559427904164840501217561682751116222484137648793952894876891106208346787576323688199506508172349368185004920139539693115045084616906318331697956500115163300837827110749772860464151933114977718620058172118357176588916463557018448876170330656741216711045991852850612219680110732254829518774076669979602303847200725332760059467869526790561711431952573547714111157306283794871723879901011073719703379511138790244228576611951347093824055168672617298698709458855280989655509050058394797768163621359958964546693677411679523655933019625431714598281636173763773483041585352887106282009286734513178670579055862422877697703803358671896644007604521050778010961740263740143632780046286289324312169848956969268126996557009611629781048808333226401158444986578869198617591551164987759500820116547107949547616272535974431406989501434791552148701805244068880531824450548616176510557508245833483060153051527141034013461587176204932737682281179363822377263676950899606005764576061777434908380867249533034011936473642216403187735017426283830918160337130530819470054814566633422929439617843791296136117974299795978982220183820433937515139008187956757808498819671169957798148004686111102026179998559769628419388687612327451524627733080446573369546365493840400819777609706639132376542539186868261800356685427661932684390288591996788147248350231950588774756415910641899124069125309416312561954109543618153088146423434083316097049504493098116735398312937355393411873200886708671067629280266231313666098386182364307561568243371003247612866087421391893567521305950626336204982646550082066501877463331840481096561833726939935499250846093222363891818790058724923861078321577979026003556222664391725444460628932945945618442958310015673005507543724742621184651637120770245996827747589021270774608232810877746564376220508926185211762862594923337322306799176150246435991356381620607408584397425133159389863383102724114385075320861860538973380115912508795623407291394530386270706817801468194772402893961722164417584863020451648879583618776109298506760537167764010412278781795500182331972605746176118837794684547320398918381170197786622086188080181016483471431403292545031424952200821114330744664013624225319259875091575121739132432965349401261890953928653470846315882150495516801442870649484831563843727263048169479579203556684457786382972288953619053441185206100695450417704454744925970866988636099344700619938864727344992791272223165852836232925366191482593421073552499528548442312732204674710780642436699584238528637432273244201828343973400032241859061921923803059005872229289610551499388306141350064936910473902129154397749453605108064872080131190490223619311070723077062428339195289372209114877839087904495963152229896827082205304896560163959455860755352226194221595738349596092864920413661120498768165209416326912589404845282229036070277275509104234760715102661950847037204995330735661652016080315883563879622431208900709419217345047787877409407146870679225942590619652275181809492822953318214890404208439333772858902536650842632772581439486019593764875492447115208596197661665883085955336160717058520424797750579059521204948991346273733393517973537490955401805020862425261989471556100879915414706965354572999224070932580384255389746776351480895187698836463589425494284220731619920364510050271607803983361317000227633573220580504720999012877768935337598574166458520076392168780486200573675392949503384098229397970658314255553928295919229698068777227966397293907779082178517324761087362015564189670849418232302926913249449134037576977880000852120689948851950118704243081970477677656477051620266600738206498848571710483227234571192591806527116704896922909858075153627517095505284290392243650046203824880744813185743646566984452180536664675483798735679164220132961903517086414797337157754106151617462042404449579958031556111579103087313472099035301894999465821929921964771056882282986141014201946390542620532858443817124083633226562432512383859477635673012067644108501475398144634285931049496869363826400466206416259646951490319611104854477591917065843927067602400311452127176470833320094175688738759477706324062079980920684630534774332419452200217630004662282023808277804197794933893918898522440855068666909872615620809993432755942195136148946032754854002824746381855743038672248481457120412894022001415268847709624616209222114999228876439191910899400076450042673636033595644644270818978527417707745133958409576044621143262107655989257121246407049760606889475217788884675365773130888483170413084708302811779259466701208771841621128659419901877875096320028110237551436356123048655461532988282999046174517748581477601231334341731386212771090557709367065736550203175790043067229303144502419919774280967622124251992863274025837040075297262138174354804106393450637326750684346881838874833235411216634188042412330340349096757794165377908412586621487982886103235278857332155338151988305880458531534690431308980963694066418137041548593149666711598136215089944082545715355230065250822849617287239674650825190045324558235748687720066747949712163602820852362165430278386536117112453214864879424132133170085231543372774607680663766996188951228804910891117659551621757364984738860695247166847523751446415213365489246727612258539361484165143858186917384167543482781316218766314291169378556461817166096634029127205365302544476383065335504511464152247086512121312900999001962196815169592152430391022949696439063552199065139432163036534539747151573501445915609700314795373825072622022864326791180222854544505100668683826497290748132584808710208874950514269642937392581367718416906546221521561087615737802053527958004468491361369174682537172803536784350361890124577775833864677004871875562221541811503714129454911427269687720886195290311000652148060479389430426121125047463622256753934768192622322219200635168766825821506827988016073570611080555786168670494748640420270006144009779441876147854976224645823956249805444955125709106402708323908144600925117778765206380393713571176447632922162141265648362257394710745132290507372055423326208635230121119230099328216475364369237906325033568253135543303478962622691533044923115380919957555329449870528019033511674075276366559814722061218043857300307297879217356856227000125623318067425988724010996896981385239730619195592833694861190323949253594415836595816138391218562284119515199265507043722245110633671266896256727586677388238790791336450938651172201396285944786544296622921832667845170020278188419240093649036627235744372874485633108728789584584823525082015627422079239226230033920450828194622615291844607061975822852133877969632367864013313041099556453747740645777576849035162313791673253218265004401500646241636404631178277966053575667603716137442026691617218914299163923048497623238254289422199854547868948256705457712083060696640151754701139843828993193363522888572981154828691356233960324285116362192220766798190063884048427152608659071553704971859335226057118104150457934735396327662343998872325606368960841031544136421487826119285418384995743044276868385145914918918742400661902831447623598592264459633479953102863027801831150089300076576280887077688855667113610618616899624996387993702916236136195006215509591002663942980584231778964965066275652978344151497338825523633644652036220132162803262371350049361959750702691727832370138371576432302888101329633287393824573874624509689508223833084417619623824084760510272468601914474303915108037774819238710529112795905517498822939075512744080364169328292126239553780088491928702854675425466697357397053653624540072223989562013067604811339156349727760567144964062409064045114809482486851179621640442806897195762975356223618168885002728569433652880013184412121411238624198385195278511948146790166528406883821869586830661295903977459905614870361228980984113820061585914246242712862298600417189064530100820327940885803857608905122698760086424606482694850486186296517221848751862433556528814663127523768706746675269172441672973545695673316677184928439431385995773850485061097313805624478292094499444632394306068759581190038602619049210983987196993364746331140662945111471520556948040276245987358243091859738263977134041141601662377526935772236147756347905552752166482414609981486281328766362461187524107417432987436275385045777742542057576627393156984043856772914383783590182351736877088048034624737428632366590745228853952283577868134721953766050084686198962633005033093604099782229148151475257716248837952813848915680491921812383604122713582961164972471080261254592059524865114227833911564975466627462494867185218756181629471196471380668777153608541786941838614660748536539552580901696623778000065583681625088471976982444587322984453088699029933788779526571972808991597939419343675227186634378290793682444036251206246396018669904972319031502436250408130553533830653161092378952733391436979259369072869740426234062524247587033791700221492583435241015718645398347845451758922412361367352913626017121554410849303321644625323007596971105885469586957117263203798513719294014487119501537158791633212538307938969441274689227396254861011837208514286931971502864690987328481720738738152015911637945123010101966662036445412956291903562555481051912534387131600152412478550452245480417085800974416436084037596380188386074895352662695035328625616480968167944880176159399293563064314571114835166747565462775942167253782296133795200482904228816596257995670507607348704290859084996849095294910463268517636522463170134879989376887798420929485129627852362580159883015336126834299177661463925494770519302050031055605493677633916328395389557886997769714313544625961013249618901917057012018206670211657766541460513685343451173302843741097526751835575924718515188906260916898948657604164533212417028081148467590773013272547946094155097286789671879618012204433502968796262611964404832788637996040983882536293823039583969837394961017123582184217743974270364691125810751594526626263554646751436788687978229022955994771576430671265259718556151103574766104209641784124768301584033976263936011211878112008231745037140757004092710837435401089199345949837567061274097176992139541109521012562640839813654956204515024366843113398973858736113065124745242321542571509170983114140086026489053937071626527744124406690768316708542405730036117869052432320544268235686500327030306501507748047387002402672926266414480020515306773270191114548987396349292489206289712904783044926853800283148753581059970561483806962672737300968661098886378902955732473773218392968237265964099999476679557605307182161869394599277816445626825369696581224500935645899443219172791686763985578925399696609882487227058690249200178490271214863536269955328059468288469933578566896852991438034105283369383898081065416312507494946094474088864690836521662705710685290293790114001017104187582043926198243372615611135685841730762865206310031274971446997819103627188199260901664617975406910297256584746904507192524494658335276417463995178861690567326593163341245856272451782580824490071885017851428871766720831159955592926726211782561190445950693489617572283250711475262730441276776575050868936709803366686786798668095854516356450456700098282130467124423758025533584949678627434550276310756161856761102420062290862217868011243459156477566136273107961732523468140907001105009796275458634572441902662005773671790461232744208537976097262686877009464227258685007163645957236063816338462767494349975206543190488268758253505156910742713458684179456955827177098027528168620203131954435974916627746865492287630804666214313185341739865035226451902580545172423793197133547989443130184302401189808566278828428763561151135925450517590066090293175341972370373166267631045526770572841082661953953967680235062790467639232238198895390409926916785915668921976462053713869576979999088841317689151137434627023755761628035602359532129295133933068804106622580955975301522759071143072612099804061120495954470252902245829816281032604603666107907846145624771807212209453782243796089208478369881533998578438358476233111145529449962823163589565451707434941008645637568236524522552890279717199986729963816213783471325388298076612871462628355347835297146301393797884322985295845439519676803864770811999621581708094439895803825070711358270796284833478098566103008092483633401066437851717050086728560572566582490063038166592502760359401420724325362853503290715340643720991049554417219296172851893187876675409135877109975306839422832961708480658343497628611181400922782530261593481394755173603558408942664474933095846199862068129248429990069049530956019916287673592700342277058077772579429891924835075000262535753826874832363422767248087114413930325764451626362886301415773729913585526476183106154750550543500397887915345327702159604456635703067706610019201793214628901714796971673846973333970705605859892283092531295264942795361836760792879940177086017608475303934796290112478861239694532982336275032741764624321782050586312100328081025353090522811213357690673482789377162919290836686403502827994706248624768867044020859538534724137046928259372275289596415597499167757872687629200961437933909121938699113630197318971094560373016111097666244244001817806505557246233985925686553866293116826127043340700951800886897139894921319480765456160954465122643149669349697436169839616874112409262946925087916495101225186752483635616057123486384689279645666764984846476716504656126699086548540370528629510502823254158231964824582861497900418034575969586571657893599120269240475446862562656707144162771146296320705726232045705864254864853864287183259235882721005017819259103218621025254290610641964932197384862972292467214508802767736310025106146589875281845672592050079006099263317935029302633914975478998055915629898387407228201211160318474460731309264223605720140683187407414368473566930281385968449636781635546696299045752531854826599116179188647506992213268388078880217815079875262709591652828076767314368740762605563004027715833284666790562252441503160456864894181125999979503530707283995418800406218376904052860463782630120683553744365548569477836150626359899363478702790903099746277218424110017648215901270567118208766876302822757646769942854113054242846979677129365563719081124347524991889410442389988765581490981631338283463034398678830561422069948656437056345681695102097143423812653705290231148917416269759846890675493815136630488231255317855349374611505045803566781944318476851348291726795304651549598075641168998237936862654526305254476823193821655598816897565449898472233608040236215212637898570027320479709835073384755880885265663060046011136366410695357973449086862143285777692977138838668754917368355359148530578245719109983029831630739513757052525620958095401789769541394615172026176496607952106330548645811890332327753556080420928806308795481310443083142541175646937964493700880517884390646505986995299345622884978136790056842469066898263093480376722839141414639383441970505255527456615243070311689399586409521846800689011361913009089342682631078288375705639519533012518018235004929310697272580570319664319775643414186491957095194411520225796016311579421743329987124953984816432158840168231801567682205889033443405769062383726206054194708302698868063128831940015177925067757175174593722384717722050820930704159311736220200038813060788840091117739664188631383673332044652964644593441976859642812624451256257788632315383190956542867923083451240276168883596526314510288292547017458850877854674323354131435813989005234227038800607714317834252668029966525159580526763153968256629757854112732459999634827193710570217727679088300584907363364013164799368378780942754761608631627790635398026354770894899217773445189729100846164905691264458400492070830852606455660554188794101766317891602772833725715292633912480905600028233792017752640689351180449779199732378020380548451534642144163181215740926117175317752534252312656527895654799495249996613418668561137172657535761612467563936363465631985290219883593583139219249139341864245413593442816603840579430340585830595161258412086641797040450056320570901510314279790145799585671974561364535372447573259717624162216656098154776510792433284597303502263211418019104377848724061746812837199614628391664253480309667240241178483790511869883383917902679307649632256491327966578197716956457475933313313426260774897136719700587905164110575608680390392686582634870636323454055157631398616763810774144512259412855075449421595294857398986305684715535148771193322794310386063240662876069707269223883921101042205418231418783870028474888838905667506331222092051480787061361084283632574406008904461466797371582627202911168422932474824789178968587778059776094181864431634002885026453646326455135506712134011886907855574994102050120205843693594383384314211879849669579667123182969419117181563278049435257952406018375850997934371130880264021542881644344306720286303061244985371567180909678367412632875202011134541349983917111725353851702142430673210003144137288710554407895824702376490475232030970596329606207612027423317301765690320036774926942273303227577627517007941506913023523382295229380423742991963305531100137570087357404896049301491001310514828563869984292941736475578552941533379493920244023171942633171602902312715943693646130477801570469751026061543356023532272713255237816494055253651889464983903456332178857443963543580134349760271473843855119847810892866822945772575359784295454349909526907761869805063331260973242575667396516641860943350384149618387370350938070380101695366304616092407294362211337355372633425631799245208681827167064196100450690001783517268153921786584748124069882994394469284753921204769676335040089175169800447350134011378005521056304988254349320679964173418381132082260661908719833602171482563366562393710727708004426030257864375469141406467379988133306274980434048844433937285851420929071406931633732785150534696812734523204636356663009170263359763238861424438018824049100851015825229325655672793006338996617151675711037022790900577243226451934853958153367620180430790663469385952282763485280737392669563394153406812865943469956911804724376608938315621924386564103131340589115080721932867391688323814944776634007199208103547538842345389673265484968440806351067157523712030750328876853691661238860177353540400916341088039589275121002549716693707978718664292201401455882456234241446703132303501281032442016321630576563423771387099052725968494087829811861525888492527218603289522182402628298323270081763455612997145774658634337854724296746182466438490297865300776315937919644254783948828268065501763316234010146327094725972016344882333538813353025456539046348310517300849704261537367640620330137906478738737121464525553365835582863452531298690853960026366890725505682714100041735228984821717599940268074649141888703063814711532964678634695593180865122302663699720471131747863490527766941427342272327958087000259828052580137853878320031186347087215098462322707431627761529412804042731738766997695548191538084277357093281373760561766937072880663481211955806890081599398264876451200332178564869843209063760256299992888973076124774122838326961611075634916489152282506445462683064172271803383431737658197124639514478783200093513333186552223389556602516476350081019002244674779398750108774616269889409502813107485697512863709006577191414377029675485623143832563511595038525173136644265502859810576418370704824060732078711770552954530969818351972929411541825195835635230833634749559978987631994251041743808773856423077173325405197636112390635219894917439052550024775596353239394461077761413186765509240689222302864431715623756205532535947588834188411031832605661608570780163542412132972749166000048992747414021583437012481574191298877094711693311104113046464573198787106957011635535487660168472395555808872908971746912203692511897246805917112574573943911456518061060805637865308956356784773539118878095224396978001845823644395448244656556278922902372298460832554705494068221878803473163577899183416054026859967487218008132077885533824305278895252897097708026085078817526844197474750300894635842427002773032472938196957991276667626902535976229524623326878831389484003936817044687218510139571326359476754082232304378228175049812122184923811060720044101737240292002257194762803149945154783344703033463606453163731315274916269277287196580757976562490296241213427394749494996058045828871922218243736016280636186164468294217844866433081941654909805035061939353734418444988481855950496502632226450862252087098396362417951613729261563166641163790862599661958483269538206406102682517040494898838579192421686509829170463637583952932601194431057299970094882000646282506414298088578461198438509317434993315875405684618443087636424816903828496944549149121128389917442698035544256672059237594015085287584120562381867054311890166816365809717891902212293518874279092195515518088868903134477084577771454928357845296172487465733320431666063666413022240780940992408614861966164617915731781241135208581516991824554105441256762164334410701735120636732368369224702394752231986468094665767008441477627112781820370673947730272527129920311438451352019946368634708981058146681732870787756102442048074753084204104430163487263326788345044502448423109177551673663697076052841051752145229349324802842648388484690020994452862646418420347221657095686434779811103662204637026052840320341215341862403961367926539763057239176780823941973879373969931185790454468787315002799166371476825885174078440005612703428031312415940062560080603168967960775267805585158444773757320409868661563720895683261795987193471910824256221882689002334105397189176036305647134218859359916610040431195689986637368547095296307607868634751808876682139900467692737094847486632625785263229965264902904755726556426286374171067361227793268188511621382424146385141980061848256020216207964774601224999669672286852450602851363758006176482634185967083763616017717878758478721135242571274834527649231762646257436709226621130773355637652056833860543070541587402449290035756111655557169985793131000681933285380018287774723250914115819856377057695450951287072005765226634271771499575351994237585201083275572559101341983066117809208403270159663783024197359149660681090192953878864962912091547913184092762346231311444102527801585364435130263119592637943846145507833436871321090511487271230958757797122207183607136023614162793363027620066151301431755846380243644725271284482860833476749411206799900184731931904696130141786043225526710083095029661516123391463810072324812740694337484813194585701844194851954609071396254069592655653623192382949857221286126450946638239194954110726922190617568177212932823950981632942369731247240843462067641516583724295223693017432686383413874102094132231590431123090085591780898098639811472423431259772730725874965450798846085036494035563846360642136024636725029758258821423970906963894751585219601005670875761743422200688184018678289640797638513421198798942420054262322639109160808328221720623832181566009563766131150703525394313704384764067126386570736598637047057472995577056332924928706676715784263974841648189874644206273262918091863456951408263871112621118307784231880550483902301823855961986897258663753836854851880890027567239148796757475871447638870449639059666476388405551398320851105180869467334421469643889365198742929450079635793367763065835476389913440943749848749178110525952934946088696039617923756363527056828663233569387547828496049149559435563908112337629627949110896272845630669590312923738949873906464548234526530112459709369166368198429401975639170396110501809396370767769574613416736594918684071597994097749212951447536435570510404907182268047756392346892192192239665598892640138338542564942877508240456558180339798752807500932132516595562648968432663934720950845726942676196203246524253611380812855410809861388993231752761000593682748189193057268792705639427066816509473844112413522522462164058966977377662669472230604792593765890405451089087271966929602616395564605692234708307765972494222517344900495881032587117349851293340748288962822868451406587059582208863965463566222379692684577270800624286247083910001271322746693291077595784116055523253942755096006076083639770533448080696135747986610034569429050487428865415852057182474934302926645020129015228508576137455216398097273911088254049019546790225373255943701093302223343533679247915548650890561031509201053297700331163994909933191441582540393767103856151258970841315151528321798116250944078384463599269824851477998262383640067154228185069666716266201761609705670948611250935942092576725027370408358338931609750567830354428406401000397002028642333353238003083672757694716706320727156328814513540266545280537056163375657565561560464025683973582112723349302665713737615780888148416954606951892450897761458277305644711560367234013737512640339113342221350995201035617764307709080447304826899917797646876003448036444148641346346899950784555106404203029888633384832818107269920008898285719368413891539811167635237013599604776794327352194624941833964058303417727528719732165352397478366615988300018701354800725499677948156412225073198207773749493693405640615926151214725240913312432853522660950991788624206214707618144436516820590669370269728484430350602526407191404977551261450446572569712315957976429582179683132072049766762865704713117146597168994141419415564088552792132916553410803586453942360439763461695335289846339014437097710317188526335297860098669308669640984352639341843697031885743906286547106851908002382479226597066957969129228277977600811198961917051876410657704715480407623420146901474701230072367200637479414652488488002186972544546370568600472326742201964116980822142277847213930550996393066658835120573420953623270683351905374323509642416928024349246375291641231968240070383892099468207970820508553026506084172906467894329248904226662371493914871852045333605096413281927220026678354509006721929344835718740048645258436195009455202553385301501936082754550814836776264149431734666870183989663273687066717388978381705851435561662657530589349283799568837156619051174693401641598535875250672746157717542792976654112430661688579214663048265376236291786363447873206048116856445136416319633775974521089142064262107733716871629057910904737837639993403176101329586566017868615084132025964179439184688026600919412070156736705275210446025424647662225537968562211299822221366194969278051234613641858938800937870064458889553009309678080220567122291173244962194666336085015095949168091194431883188756419572728807260492048422572695023477727362566817426430792407273243055492388314054863945929521673461205964203473310812267074435854430639051354861245846923527729555959508163391240344880846155748316511028056596642191260473822009624298786189595228730193832928596279934984472850958341618215438661086913654406425908916422158969812989744271470860637344088950811207925632434391216048670980372692982232485582499570894311086364237654840373752138369775403725350930868402408318659218947543425465681993319202869736416876380780559427642426490940543186086883587062399303809324893776063958808816927882172328401008007787446855284930095356166425813369878218813198796091570780060658751204136810551501389914072160545407320984244571124078690275295564266371764996922732097345339032749384224697177560429121963794004392913939936963834312381057271231601654642762381860803416937792323608064841668516700884580070799053990191389869288678868501254679168252957297956428090778140077583729195952592307789852900953749693144648856042018307248366816453488890061641848721314064291761979206738425388528296023984285540130893392381411757012080830155418887191011712203543960412588136643088804892939409662947667940562265648193922536371686301060079822869890537184707195524863614424529839866431054972266738139927123232697913526781947508154247515825957071821517477933308380538542252593586879001164322017697150694846872323977569602190530277291344179895332845717225695951393984500808185505028461731209643334633238976743966867841162982536644122223505420632363899786130116046064276425247211995387977652547096434899138757333709587544460688181033307915923351694002680509969009201681369502875893937714949331121572464351590212362251549726987858042362441274878998655931459382697569314305549817950653144186683273288195130643627519956721753823705715225229178899738983906301739917299478596473288245148057315766239727468127206926437835468599720491582006549321426373785365377765776310542564915637728001898109944412679472769211509560764382802362828488060198203017705573603550343134769074127602842407027856245018676049368092179666630506285643979192569032160921550382981573843650495683338819914203756320762894376846024766103943520229448101014046440116840963522222446526698404296402530017006407037233171935220761783135003574256845231020154486184741164412946240496328898364055154538023000657624314766841533398052677981987237595528463455943508759753081225644240783115285645913826698540619890759859202685372792300841475303461621845748488155548751802807500870116443486020566300511079526262181650999704624609382003056246103553110403422874336687869698965895714605263664440133947402955027742886004823589976160326074985704712218455866713227141006978846958171262714993858982644585859214625368691960786535613356845007576646743331086324711580071025086357042200427551027969222298286446867950516039032784227388738111830329773296824160426832369253343439480561513027747565564224353863128364474139392655972966202638496945337587293946902596287388740148807094633806597996983165111929088025119256644802858173049910841216417996843252364020412026660339061356441401313893221202873062944532613198313335656449412520582119529293214940536488230033713781306993375262675257342720547182598519343971228475497423228264505404076626173085591797748712629887002266741047470611468698028702735148198879330690780405185216982872645123191317558377555383293064193433276705871185727668714564964750046792370667719907069138700087116303946452429748229895181509410741915838284983000890515633749970923445812684118905572039013809374492672632599164534733455221666514058384741593179377470138831092920729725748072689274863625450102261803654579949694183645463051852033485830613886089153747576814506890483050474323104175672544456786775405653532462442638450116455254015881133762879227914457699932454902071005719389024332315818067744447266723176645607682348386279264561390923872430415110888337404826020756447675776852313457857843464984582933624074648014159794645214350645792855444146566236726007057107442947148089930546252461505395466729457454775223098859383492273211814016458218199372897274783639130242229542283226581272993978869758174293364400546233397984792366191852240226264595456201012629622742562381753005177632863755395427686041957675848786829356580164847516468108506725307646038693501865443186067821174807067102386061328973257124478239794432392685146855870717593267869335876856461471603448961677611716341299667336450589792110754601830123633360691144964188387934121842194935378749964626652379751539176305915964610347152121465642747239185396502131632591123081652835029486819565713588747646367723962901916931991677686458730587552887475970901591888584134023149445351637158204611939295386500636464090196878114872520024632500585955097326566975940880924885276626744424667263984945494096333588544944364658550708277866043263766955889909423392133453243745869236955358408441578541048678823088765914992585877646661349378939338172395661267326458605886099833130238817706692933483404804894481441182843465637528081666467560294729887698489519112897279950597630327730517769376782997599259573447528148628394441893629920990064682413580600242332685520325343646493589775270690343598809038877648352811417289852206157665771897459969646931269049942745958577489007150177102800505102185087463337480281826723866376110593672121511789100664466470038280924572444314173858083144173658768637249757501724180505564815645888269442413625697379292255945964710205061321039231722794686286895619967419234007390131687938180418212831728509935919804705998908531525647250606111290296074552765416055543234626101670881285152031851635233054684501630978768688625160955392186473201938430432208578808474078482365115168524579205376362858300472488949906232202771501038935424792067264747218039032318085454935230021570322404830357516834614195045183770461312945022064049232543372082330956647568957898208001861335005068753785517389822960864579261346012293364278941293472373772411834710567199476476498813255663024174855112544613530731382508017759590020575525688293535410332940582476334595489119148064770263059411228562902099198297089226752024511822200112557157924073365057461275883823812394802411040449647807188979390179213491779857502875171121244970710366288905267450506250939260199653995467076685614565936479004672173104967569904556248663389377247350889687245530867838193979741498390808700712484440614848824864809613102697330738591249879037418706260010514215839040887612370365371352029294878765054888518285342824648184100383985536623133764576709237044770544344802824908862322096586644985919433631192058316205453101446482578482233739950955681727341450850356502805930648292718529747212853238817532400077625654889901114846864833462321804607071758237816362115737939333656351436126557882430018387059786827453486224103312709824869648444422546320518242977330631937828805247362772790102365751583877704457363802324310105913302522397460326485544228425304763924993687412259412525344274571914357904261985598032355410755517179602225731007940379264869632241778553617780508804949631587383212867555429706886595155552168285084918184671511976087907235697648786036462041091972064930041231501888377704583113976291870092380526818209787516650895211993782704945516488399204447989433788484231222487627259892997895482574664348575579264603758622423085401606220231239583764899396790618608202073848623338500638603716795394641282798171911311961478216700083080895078544581326695649048181663862569509252316482191782213462414175913354379790283414237783538889205956684619798105231928256491766529383288091196687610481858896454424402205427489691120693335345523517307201395279545216123690563464925572702560858266064853839180881791607076066138641953390753463104231631434614551495468392152545717652649330176279071346702989641193481046862487310912905882869305615485501098657169943179483204002046150289226494428325398720403509193836454205680657981934923777973992361643392328441222912416131023681238412309400864955955594392123890261014800241184367325721856692868521171174389577355671369440365534188266303219673712649620477846139672424239343820655757101465210839041105802549905743092709365971812132537294532761292557166497033811599327295120079560078112053314636112722208931150147192517953524282097046383536281323733050395764989921425714309960203390688005783518739818893141181303060737189155369873116976049855114076377510951304649999113983932418267750678612930933434194460047109297871418984838011031102741884378329204828390622011456500924541976522126891453178721214513312677987845560445615959524975452985753522215468171489841451113842565010814105501308548962342436284979104194400095354198478294098804365041833757195053081693362546548668506650276594860210844032088836979178574562358881459948339271283258175664781489307630183188450317518770254336503815121721747380864741836917805118542713928305925515203696154426557927433409517408790292846894847675165042818289936936963800520966258096309522447841141623347063886751542015041317535385000813287716280810470650501883468965555544325765680376567350202672652996826688446781066574956350999859617889432443075158310546506977176345323806390582047731811620890740012401492008019238695449202136793024258024646517698310567148565070197856958739975556787502966173286707949082756613216383025793652727117235764937197729881838765016004650869601980762607172973387195864987099099687247174947611141014782590188011824536102152204220498197618166509353003398859997872605603757975986803073314752247564007571518792201644858905540902200692157100677635965102498572399552763201444121684915435778005526595484999851247978090199909088142554531420111741169391548651133148205738280414543627180464686626291373582349664828752208969958362900365962129406854850887900797066512097153615049303070971447935664014903112055308082409502443841987582416470860586489907394068754413110165137445035194648723317674626024900661157888610971626885032390425642166579301971423307771445355387862843651425143360212501899094526144540052685213771778766749432239192593559065144012279953236573878596336671886515679821005112248481754029247501366950050475967084418012637345880106622530400185066981810971904908813065162291872876366011259816340730258132566262078794293937730883405816982294048034393246806755200085304321651740538370368119674497364266432990337815352550225246825427764482726049064908269772138869837559244207236518772857806701948407548250245903136671777876794582809712007470914103345397923040702124704789597241630665193167939042624636533153824680278462999849295582970677703673617809127448651096131947837554214734726097652078522142206977441733393023758891545174462184146588817406332192510663998626369368800156129053977489176521869227522718660000064868860694384334169568976191047931550407379069948054142393140342772120564176101965221846519831622755248470937887500888830317863573072829187673035632713538749271862784783688027045784857652308707347281843655076523511706256755940456147510817462888651388948901961691873586644017891139650331246524828628212773234149566257038143667039496496422017426965254125031386671549257792425824718393040622119365251552939524729565961088349107731184650661085378223722765072330072986433681676406634827126596611335519652640546215024279598826033934377785136896658920777477038091230619879767544853888493488615179022989513356527515131781694479389844805510160447538729346020810564239999565313294381811817949168206643422986141748865288862468891091040157838357890464703385062422545091526178581720960154959041901980817249863332365323996652920352998335812881844400312316684412820921571036500317793276716554859267887642911944388521823389650946530495108299292607756543518139988333500316594418749015738251515349117302529210911907594922425748307159765310710339463947729017711117954838753245430821919571097116313655851113361677992674500225456746172702619653226582280969301676526353679785621815044068552425020632774312078924592807308316095449322819905787604226533714125469899220372255809419313290739795298469074966884973028286127683424450940254197334278386371332165346298271886802877048859039816542665131221746650688390343880540662876132415147364980113225683524539644653559177880877465457020953889057559869620433725788582887664304014860288134785667775223167700852815670316536351708699368722839597977614270430443387536740461034096265981400795953733803766082066807101929880983465376461125352172626474614809062450843560918326623328614765717887367070432644964237558311181086135320630653845273135501338932584698039650758945995278709868677366166565272940966270953618992380834352325064535406539653636670081238084314212916084893926064757504243607733700769780104862268669732720613130877124288380765409513682325960493546269875478506976087090621394446709870504353997170682855777324556183385967258415295654184388095410036379769074832639223226967631086303998106796892341608259466054119657825083379100517643076542196006691422677808031086358949549126660196821689848727980997365188267877731053285059191230360839038365434063911136575293847387327396475869511903909612921446578009656278230854852576498319237213841985818804654491491408122029836664762563895359153095424421023811400942201054358733602176560751537841989836183058406545809509579232887231314482568811590029308704194884195222515577142536019696000711634744743935005684563465464376900335741760282554910888521532392506087844859788167278966902631720010672064720740459424890050807654762823397203513834604101168558951501894545922832586999099358318483888333349590571254321971399928556696548836826270542692759878814989388955532775219571619884675840926692371227242945252439825238364176386688965495023936487670293181515076725859767848492337458449430892319353106512504708445945982293233904494552069655019519475305035974627883356984613202221299389749069342840233552962635602769933229272508943020206397276551851055890584430078972050488044129234894746728867838915026228885291287429527504355650209629422473679365524640352551269544793314931432012374843865246657866338104602907702516740675225470354471781686148529224655358798618961723244658952819715140614101219273275694847104783728576946092451816916879953558040498412416554104919757439292511009593142809765921915887014638655140297759601295358470076861168292264437488830903565558961861126606849828180729560094573218650739506343957012535482591503536895771466916509576445043362651655625119916820408853488218399214903746883206389219583967718072126073278856195131355765752434134536657086557486593415984435464537694535909031407965508106604946822472145183834665013178906741103928036189001441965582600451772699029465191226253027545038060324885188360479364632249905482580495776019740854482383090288655970415973120470316393483654892654723025152908040772707730361851825196120166242493551339087586691042326560950252196222742624256671592982893040431190067957041201008409478265978836503276031030284843132564211065615347720758350314603861753293827376171032952138127566993973744418533716325063558390500476440504318465656255050730408990389269936288620469402695844315063108897864338252987917006595528198783375541777917628876563619777502524906729638062184794501401437110271575943654040883382581796441943083330859984775988917685265642529027457842168969003684371389240369032563217458039652881882758186777509035040778567728215280374417656582855392463930301793557599469619528141809981603585622724554127597453696375361955709805352345132665746566644682623554839759342756845834543058091598382508947389287692102976887429987118954151732043580651915865675613271735168111490983541922118283470365728867448815599802621633472873434300014617603878659001368802656855812776602634600144920817095907337266610360736242308598843852524693473596609937969756917834925603696569338961564602465312090800867027278477415610360008789753367663944924562295092340663833583613251463932365709122021141047583736381538827391201590659474884818049489836365636223485421468944007752508002307778637657164248086281910281820347118317437303493344261779754369537719481282156429854650561096435593803114776646572303551338888294851698137863875130749910740463176728759532365533291265947640487356284411750797139047465730055133239389619555128569785980204776976005252060680548352054715812429473628012190883115120816936817657409227961780504089455783599130934763228080151499698891356968813611105140234198784170595077656404824636575118885901480833776111552376819383063571431940964257422671435498184739540779481350877889548854413001365763174612510004307332540107531424253624326777980106057834007304622567359488688561912669235601232984355657777265000064743197514702226705282803889500570021520539080570268516881790966535977581263688859147694196578797482970011325857658785726696799680032089677189952205029203490718021401691020056286547729600869263865790272911146940147119550677284396877248732715812748042859781030245051328997441075754153570752061036910658029094313706923000275848953212511978468846423010680449037328919226058377388613091210711770587752870316581874653045525558154038878565241732495736977488760767011950492894183245918218070770062249502878998405965829660972843531403320074981937074803208342455636186316599741500158189254372358414756584357119349433485658397563546491917525117456083081918043863357646830719241410750040948868501060599618501420458616536896956584511475873960660607619517162625250236781435059299927432365421787159533803175923627889878294913269018965856017961588736995835363153030503048325861920935222145942082074130397798738379090640621247797034395114658616304880082178681941363928392496378920442456710399995289756704861790288062734238454739784472819355126587811607338126327917421992832097218939696111281497697228426437027540750347640790134533313313245649630265888811571355381128154995238826309068009825704032522248214189545731194710504933927455593513204206562153658968929493664686409056310958536598612765502965285049085025477459821566929512737113321745590753157180296590099432588340538699481640996723253122460832108993175248992344381194820664316769432057280142533520526265911878287214890835065610874192721644374574088327016759943094565014599538832556482404066112833332293469659244738229814758202131797535505554577624296325512225636139644685499789403443974936816101659194123565016593732770121225749665266463117307115734836669975131418259115846143281085787581342173761329838207675195565945975541957172396642226764547465200211986278228782024036452599026354617705964647041183230009657954902659548713711791563189956210816754283526888091179891832700151008943093350226550988041726814890881229128706596829521097664154447618330981136912789774771229802021332127465898526346719266245553883192771449991408365974101059524872569030654767321855578141002838442058890414682109669054337555206532913423204111494441007659872459855641528901216225842635255114707859555321360988093289506964483761877632525942710870131467907676599502763259873257667911904342826270514752453649423116904215703592269758532102311719445897478681723215666001144409284498744812255972316167944415034458684482061781214268917234825687477876627836168367743249408660177324494898869106311260038047886581813424621072084554473642151847287687459371382984280350920827521176602689938459491096246243754536774918274654184673474592704974484254733962575419899408081139888096178870166031452014324499095869529262140219339730031606517359189393323587541379546540821388091274730654354517356660464490932758490061726388976458421845913459045197700840345225999096188791933984028895432356279060824936605689415463236116775294038268346235551942863309956512636968001156488804892946266193646523184340988345866066027305854133387446270545353835020397571542522128525212821830130299332661790412226923870614682842645660774806844585557582486688721350254173093712604179691242764813199746114026534138005020247181395569397706608266513648400947926201458975913818166904817723165938055052706907683977461845530991260231230083999798466091076047829385141598878724798422390914376454307318765451890953265023109477426368636396795651027995433661004550196299510289841429099115580018885576177703373467445467848761475525096699445065903373930150031316611608383205997298445703580164953993575687340656022199212181567045592086580305446081036536888051972130566127760336977912821309760536858063007951517605647629964106247398349695899949168518709749894440934598359661335232634681288025988542531965131635958944314542006815724356053980185968094371494286556694414900349116614155697973461530423686606894504700045389192164359456291222042045415548339781836115512898331262102507666159674369298551683203785418677422376337169514555308472609142939192564006809487739878753639043132845210661695778702457216803676542536975566933769168937215968264275753744949741800541699442708567746862794334576617412781934597508929237014499253445514353396620616846162869463188341163816873263566096684426618168508766188358302201726827279515949196298894654714150300669941787908569445027324080377784271503413853735560505661907742961538376582005594222095940727751019318804644245589129485936453837844050159592091691809920932206620851226729247492051440151722161097921221026915723023656934985512430923066030593657798502968717352913366214499724162964734825673764078783302942775073652195965175395117328425384809993466669701185413116405189662249526554950081439314826648814446464020940783235393423612349538986248150164626287251406844154032324106623303812921202843427583407715871458381042016886254561952959225028937503794382926040209740029765913066866246065952755327510698794454143399655516194986920940659152382011727678666162834438312481666252038836576662525412669984546456630562695630052414535081644907959147990964778200244813028767072494468710070397159916626137593470149710862440766515214719893306301860213050480860703451838006279564187122853624232806654123266274259297091097700292972121994744426228543308684127337911626984752085482300415690572101220265546980356662871548157735251904691404309378893340797835766389240794583105380933986171461332131500267957972581896226629905766151199162409991932632150599824681596120350861961621851409553835077370973816551296513520263189566302939243562395145390317544223633130657390191841231458942990560684292537598977918245736986947330423936663192337352111541335847620381814269245862206816051705773722333299611929888870521300396966800044633671806632969237088530503608758432040275575677296700500709344562921987559009851741611710104989587970844695219566337848116947199891507108449626352546703160579177421169382207722093235260057182342362393439411167924584663409152606168641300255914305681111177970827773615183230788938566750909280970836933132742700410401902946635614437259108134835491707410473230297562216932801692770491932893191411149088697243890420492218758259766369970675643926559694021381142671289816729574280407646858336987035423399064120619089258734901166405703663708240076491226128501018729351002460461822256831532382619806998211838401071948228998960737201090757036638401473266785003056258389980498071984977342319019174724659837227207421085576954325059034070334050482266394226143087628088834201672994184495616288695892134723418576797210819805461815839733317831479781392885664006482582508818965761697179187141501706091545003996639897044841309212546912320047584424537510041844646641771049347738441125798496196654994341689026437129512680562302820852708780439998811778775264384182314066425761652466193118860690405132423239531733139514493709568694609307469314164276161660931859705889566352664359602377530748304313165254572812065791236728498218575347455538754768260270022662474815467105317825396644114273717207458271650962764009915847504336343182654635440264040597328437116507225403265136655394981866459050993479379819858069782186550218132703931536004981536976329865055365877436341521795877561245185803664648309948337088602548909152582823779836683487395570987066276329805725192187914536028557177376713782996647615779605186852177462472797744589456125497437428319048153508095360334517620186222460126046248802268166484489030208699540534068141543851849396599038459111745869040957358146683360303234564462806343052444122664920994971113470241456023969311815207755289287487893639618928372948700793311171332579697602283983177456650577545861299311051810723969487657942820375588446207770717323413389041519555404647557632702765338010766519265904501991399911148631955713222124599327298591184973501322417377527672498332161573711800569092997665200801812447186896657877268005455511536819797198826848078945227542433487036723188421035203504853087246653115445938475496586200922220756979932033803693719701186206867854194952555633246609115865504217061767666545066648772023067335212871229572864628593292686770613076925551413724934001927652248539432700595619641665509070391620844032832798986619398759246467689391149503182808347939986046658372506950213256921756490236656887656152401852170122116212746858948178985028647447787288052235235682285203593722441279936637967428266574483964378068084949230172094688777742518660795932453717290802613994109697676546634094312714343688065665889206992388966339923778147478935028094373660275900364624161300918734985959634280478473695673504965126659427843588542222945033800113262003971584611455196041542091202354470533820147803874100072252486231838866608193780192165821037441670975857353741134083939552285787470682184294374504489182475143887812334555863666145077626270217716576308624209174705004017086640127559230703925990257096154954742574332757651801896886662338285495571322884859164029072281974743908432916254992336031309377259116244716487414226815761994432466636160572956060077755727121477555028219570885987610308616526997434567736849345330753107855095203683421666453820268676367990480875512997682554833269000521950313002848256936888101150090070833401009054160543976665050104488012412314251727926697809424662461608953113615416805309768800790622553127495864955698799918866668536255300611324583354828575063694882255737304037192527978009324019657545394260194974997779469639167666736741873698798782505943711750613684512558358007146559799183227867154283537193419549062224893595622486668723500159655159582036027828741745205135745484097432753825755521956807347778912724295252854753774163166690543712273922030540663165394607929542801194972285986886262095970577136576745769464229858567404085499667031614689233548567863314418192212213688629970654031711152797921389343628299637884132778293950989205496671556847867473011837384550561314781570541630118146051812583181526609932668565644749486427236111006399066722015319341288259832107369494952916086270297793904223636251591408247034324703681924639827518952691022667379503149337308998377992792454394116047159119733154123209971781337228886015363032800532128349392282196674427985955455416679258510853206403209848850627815661621488128466767270416201689843688069485991007452566757530198237645384205604722679798456326015055493416189255332635667717529430341119018787056822355471201667659829502893609563368361185608376927023150693340265942304195620459672440770113647316949691061304972836677217640846953353920648150058350182558510308549034880383374818319442188130958477422037695226471444172466785993959341190705441636307972141768559382864112094716562019410130765693954697559964008297600535418866667917882311102017271557302255059529033501374025869285427719746698446360302981411834518321932934662119106680497206119736836295670334194277916762383415463921665589720671002110390859686683905281737196527813921366814501547568786291318332843345475807220124754674876828981892346880324971215786221858465238181791603387668262205445026105352773016917736647808824173908844525891385240418917053930136056205025322890909131465996683752230465464962648727050504279856355249995689435484656290533528389052407476828234694425124220524321466846049691151599502745119211568291361987775744299750819945714978774047543664667121836718639985938647758668548049737957431031355610692264889332379418862103430300996712957562506033035903221766749415535633723916686168890323669273923796055594782223183502575769569048499578355341992708004537102909673080487193192187366874905095783279092933409790112305095355177878797425730259126615147330971950212836644394579639594272143668848479182656385965253201950438972415926946839252424218603807287126616642373835217683934465689422500056689575813151840308505972561946962356965072584850934813782928372217068228979426416542578445420092847486466905428513828372778381335135819408279535792283988973991137735931487315643412685577389382827974403739403669185808905475853764692026568181661000376224592307825369028319760597426613455826289520007471751986613936692484522858606709892291398600737672164274502184189906875128210516407142066063895878028324319775810884466933726138355462961246061281033813110128147483064925001565512390649263760563155724150594446447578971934669493099102668095708148423810488418579255005136768429135114112517579390222625874008845364163387127757536695025819623722715907425554757340119363083529254662769457148113386654846390212303691690580495406784173166960559465918598303503065831399068316976483876101199519366253613888976226616508466733759478466304203938669744658903846488347282284523795317069941161364108194469699672444074692839236413056793392301529191083606698753578089544072265784231508405883419547823568799736621842186804968764307531395163670366263754439135166998542939738639303504732241669528654384395492271047001209217380103835760953115694497464875956857723939670059461254950830179421864512497606909585532848141303982833219574415699412308393266379517589770912549176701797311845939926153452213996141098349106184057736741482444413357246529150310050804462575025374527545967028551539294860423302145828071311737531913940893517121551804301704622055447973766966747893173096271481670378043205241537398501695409051168830681253148680904395232324376023162252504388366898685706616530661816704904568527474665587161772658516507341550659451756136678425907159518526492326611989419927697833028837767057941111750144741042290808902366083391940652111393237267613597885389234282889008977305473363126803325670617109129839261484970005426861602994296096384886444060049102945503966529170234236346606504222296021096707878588006944215698577053669844841086867310506963029609061934231606638748990018828949512561559110240467084628205315937709684265648034603378173148140538450449907592035509064459099090914452597256714953028272670964521527396612218260413461475010286492244572657657545290324054714370601234431217752065777645527190016710153953342505418075391219150598379852615733705162295441197030788874317399891457948253499871589694378767117343737675161566395464762435208186531597510366689707775832838650575235805017140232362041820853877746671279830295084423383311037458065364190794474970628477065476794829621886692590682176006731391606658160786713583284251386246833062603366795467912492230323889295687728947612151536396030940627653119766901091138067144874054937787515860827573236354566858067490627165972159902992186708613896895137370683173156800919554671582779204650557777506688852118669297652110390778631844336959067235202839999643239638768673203613791646716668679503112179126791204942268631969522649415260318384601653704509259257880042440594434946762285550867175452556602069422687732189463339027671535820222547033122347985668270282524598801234683953776355174689671812253678812381891995463784412703324187373763325613042233271184445074974242237826619704610401112265326719758895572384985057636480494092480401111627708715552798840790361257278835912414460810333685676978349567208256973338399561692398900085029353534299965740696377950214085190300644954777473548411684055102877611672108641985672662267872287859393358397028788359545126358807626541463405148082978002699115811418605476296722512881994308386653204842674055555102533227461342219931036194777204952433882117850322504622922142456967235555003313775842857102650520168844871279318563741260727741141786989397154226727632286584861696775818672473952946709294345253733506500569601346073180257767909915513450348415839846752650573742397471474812546725009357819535459734584707650074470973254939310359524408780242766698463084264446386736380162865119392567269851334195630392655957116711230449799232117360684897591755826316223902262248984622865793572796249103672776403823104080481974942859270246321273900690507498877317321885468936424389420964928566442461752642326728707272793308155715588664841631953161411736909081320190273895284251549967224303489023763280543729161367299822725299083690889249738852299592377545012678088732611954616362090049010456572723812186073402918544673077995352899592119455188052138295626177408041273303794209036780753112567600804260495074061905648780806731502343735589161553899274656330762008009969129076100632053732312693727962007390543343746221025899572167323978891909703175501973559378692404636111602720633833840903223989418916722494065846038688359912725214673320089279274309866163507957283790514385513872952711298366789616191813948640736857942261667117859905146734038234729140090097922491302499787040038054145640642906637903922523044921716095890520281781615990117067354358289134091358894393049509659960511332429448250983651074985148901512823058472152580251850119996729673609230195341591046634975148097657585419544419386603010239328940819094792784807830452404529657217508606737347225859417577247107124427077986907209955806822251978998647932984732830779343237408852481802412599367386076280749955223104632199106829980811820415770202403786723523630415869096428133036466253394949402426673986862576591833522241354102004887850569974716852406728657519434257062573473667547365031255720837472176740077731732426112803077590654692395022906758282061276734984710635197644664427167209384615607255682037967411375209490395388168627203084219274933011968906502185542429917425792226204508851936642892877228775513674200947736463000642410992990004593246677353137444054866848758777157886475428825132571024995835523050996743040681646341314573144849393869833134777427352150116669767950323492087026670633342677121526488087953667445929937351899242067225119480731326592334357720796452977775486743842476892616068173391692812463591354674594609645011156588572925382446911719755728510786552984542787165830234121111553000746635255504824523456746410485731877910034762330588407257833498442549880584587627134845326920402256838316423222370976454714067475091236413440636195922050000387149001957833598078100859888605597284847911653207087459343563080218716674821114895896268008973308214206067063769193099058122371610501633813599391835931871303044926180189710896749282042610031614996598585966795900943374721233344389517882139213168961373456008847211834055370417390867508655022155389774248059789541723435365861490158428369474900604308895256061113875543858496272691509108675162397554805901362380403582626005307357451248710774142634775125097739773093907252823363210026480288226752972706410952010528838078676946203715639576047661145005808047717642728780013131277413244302723408851267539896856038315246574743679823704601279075780608924227128322264403079900615323141020797123800533820530675451219117387093019838536790817347001559734751328332160254612250272486712583495315739005620693532954026755359717153946924644274388027596148649412924752773374134950714878033537786636311856230615348675776706367562549018682958003825878848517645563087087772192083183889862253677915514040364912819332723464641041042675708811093126098396184018558463702354359467248574915309080485941831260967299406674844194400842598321756758480334598617400200431378508286183299756817765710311963158186599504906723797917873672190751564065343767597644763062170576698567087492270750280876724620422535389447414241343631101664366396998808785733504534676067245406692181042688115669543845133919605697691307452133941219295087691112175255550250227078914717386761006854236503032373748677870255838905989363050210087166469785711805166173156702947958588442627198410367625509462151000546726532666861744293511621047567390241977309661472422087045241117074333885178666262283676389759505203128872018952354482173947821942443997589998350060780412387921930656793257248728701976858926764465232506696114739730088004771044338654372268843956825008857164813094684461270956543139557547580507967653514267563138193621702422973187848122776831895740704846233538362165958684330857962853761603136764747676684725658660926676629257608745273124622235504415865970636998927681704349941168127979282129692269276656767070866724480088023309789282035593082888597853534119785021182140046842505467402549771417333366895230467689168314443762977348272050599618427960138243826409005405005054389956220325769403114107296693855412386676918453416513571633768620415488226311960375395351579651156157916875200816745362241270843860822715495046770444160687673507152786736164990684079102050438446012308262194961869244003083142930447840925631186320767717751264305941995949177170641308906867774638543917793819757616446811106638932358361840915953211635978677280906332951732610281710148666948643961131017175536540332278904447010019763121234107646363624583097736773268932593277419195714992449855964697617304672915269924740555769815934966307737547040710403479749755167747710849312135392429329973675722029345975758802576403917756905121552802314521029313049965333937302320677509205054096856615040586803416379342521973861293658971856933125374145784827827008605989216540395608176776318742975871919106932757121799520873208269818635984600672764338764820681561136791228409737944035561367778714059739036867993047423692350310653421466641916361401970239342325752694299027469339644081593015791677887951544290533462614104915531568845012558555000913322061112701018443500695217461730659598641688109386779163042497608770615457839544937918719179778214050225790496722122077816023801492381294008546323714040567802972776933521421226846185978211744358524205910970289419846246899952324223981655590466771322876361960678118384874319465372981229633527406286439610417591624718206354197435685713007167543681062853835858736116782414883279233104600613445141308647000247195647216798552823676900196362140435649853331976888064888620067832046177902558022709496834234610834925724753544521339268873693931289850485958822328147510381188809460678445143978036923529233651090034139345846785041229174135049437061960586661948266564318216656629645606376785334750932895534325174972737913622427082393564558244327306600773155471301780840169319607522344183992267867001189768898484463505526607269164237837900804794161768433438322845853768413811825116775638388925839678740201206135674469196707575278047069344581827691577956860232495884116028959837840511525597978388184106788290147847623450896702896672888896476579778230699798819270883513493304458981708646817971112838182002067894419749911772154103420516542702703199984663491469520761598650684885220316328732259038150648355010008679045177843754507436145059221942402418726282490356341265264311926550304063202575366053150918626942304006791933310248298609192470044115776935057387004285904866973642307055861273564020540482677643880903258027867928508769099480925732901733117165305467839238783985992084494944282354551111075567141794156706197119864679319956408981974696503835985600015377631978659426847065320729130183465878244925078198783011235042612996794130804129377867117144174364941704130959984277496152385231195216354157162041855426172577328975427489667954252455836900805206971989783405327952496283264156934156139985728673098742262140288518128600190846032679631750133307807483123616417826138051177933714470414812118995919098022374678777281289045303579959340056797672043056440449354780269634646397191566000926368642173474117619390641454023179390631738285189036523967988629007099830986252248923437122606098581030409576388510924389509763364947748584167476644141210442699679967768519849816506753795395453287080549905298268091627341027240261084195694627375916305703069360493046800955176029167714525673235033671309570781769610890255690131338374511581734260872080919768962376158247268013279969676265949176968903500018108711473857434983640990927933694547181562903452870089331778646260018680248458350275093946565743519796624693962789671332753001033621670580280602032717455317735493275712812896803722301694317565952958213137736407650325824120958394227661748987572818484763028751860746198159530914568041776753761422878153832469158203968556471318706824864146943554341864240898653402265297935042531053074680555647445859877651882708589209421996518670330660554024323585305741249889718839646582694981414032729686806040098567409447220294441441026819291341109421874151328287331079823292514506610782792101218010311197068074277690769430354497528305709508933635333331851096902389069806293571634303881507485149898279017106593680864412707476112985186817773137047234454037456002862191679132213657827070240795099679141803348219625586809626695197436112488465946582728765644989771594444211823492755174989682744838464215544522543357771015768101115312646908838680103921379271888579610984245440176035892736009257986197434102460936289896955972601681191902173807009755802375380835506211199233147409088468143519903350329776225541026224766502446985717136812535726528821856861123930221223530219051627735697412863498354083903277354810508071163896557294476684568137921741120944840199655614355306898308612084948698645171066737076918157254460466820282052648523358699681424999080595519278288145869413682298976929469666575230382603431048858076055117083009197101198492536486815072836156976781877422150711037399536927661524524496535091003452889597770297427788541533978588106607168165689492621308277949265494362107345696787855068738556113335206511000951672238444435331586671798353595681735764511966809574527400042434015440049062666137962957470652740757837146094002332655677207837079450106818252698047934975995363121472488812065999504473245405295694916113543765127592357126014280388914399713268190628419546819688588417529292266886442621434063384323544903587183699050534709475844958153940545298839682014651863181509397362332140545096908945353116235023162645424287888032188619172536257980921796925106976821663155348667212890255353427663211799541889440802311171241078910639117913801116908415614710432641203268224352019466878197773271630704885109519004363450847138672677153789281655621250931993308461735522700918682356241962610481528464045526818176983236033294487179905087448562440525846670570782029673843869936935466824543645644472300445362273752665314529921962230988117645680676713978543791658473209504694430438488370768257186501843256927011517134949617369807824269408040645009225068239337956837176121539057082385854829100682645715628540523094477092336799211584887188615244229459047803961052354775294518432918217764704012674196827025562578477103968755033652996221448817935264058678133326215920913490441894123125521539959779526570668288257462407649548661139248146700657227719602495734508058408702213078799454350725560360218895109924837682903313007661853085253912740769203896980996769175607014847575779142527138022094159387748849404964683126830025721533555806488881999490244912487443870269648190456178567151821532142145868896572634255779575626568312700629297845964506174896425300021092247981808889462516757327350029677147050327998757989962912792874683266075781964794847523920352226455940631262832484175397548174570106570926022593172320874093274914009796833781869702601437421478631793853130815571167180161841988500770608288114464967535146217195521385239251168340419841081641404822044249417827953801735743096369443649506351874820396050910708920984431416784064461683591093677136150577214300475164292784627606125879326495558644718659029848182201602100499771983618037786836211895956516892253934182635010371363211577812146023709366910632191188391695270536319994253584490860268373980831429872436326258410691536617915011710034582739884502300190025577477431214334215609102142563004683872929521680512822156479879131483612303346110277520338297969847648751075308620962846476786353120230686839605098718087512822655052819891699944505458252874274597063402296033568538869497993828280147109986008768400595684841215196473343476633762743513560052413635371901147912029922253153318866025153770683310154889684109995369901717369429844706667704827932244823418206567425879146781115189747749072558489155466470043326842922203989506494527707553293229942626743329882814282556896573326678657561933719593908066429191475031168431328446751487396357728793429897564133604265814305092134813679852888292572515952463686670526471898396684419635984921134156953198638045581484790717809078695292727918404522943010294283671108395063484250638206845855586539232765452862272664883418507487413938549307417630279555031029081367706943028970120253177018468469418209149792382963165602229836198034820405795231938132665460972135883930448521662872143525751137236684784505929298249561147422682921830579426533469225932522637203170191999844767571541048969160820055609296848388043856153939388610800038893141551425198807281346757093933154300525690378371445159973023442914505668499986414675950303181271527278942502383466726331733374558809943544395003677567031091909407161141154055685073408848342833535993192144371060068593660264699346572009360316234442638215142442839171596146581317426851473170515632534823793147494492006979548016468218988433275915280709539882126839893642318106548904480468528927684892185471067697886135033352449811386163739573102680251642313394115498106267049750201361285327685316794506413100084685100521121363995839031402261910807289909816307020635413111542266607869548717738206854214105474014024032631964563930096218551712914326524427459441441827560214455153440454002874324957770568558449408098403302725818096317965249173507014948466841572546592899494762363700598048903965763138240276685694236662622690151478947116904980254949025258782220685372604573303597309077583539317030888708542349536857122303180229287959906405017737334421306274314312861522090518089923909090287912051223118684602413327868586097500246750791712605774045752925643648232591599931664450989019146148028600254823438719690337398705685936003763110023850308855156273942623157390714593247386985029721347782260711680996006044074990934185346860005721719934091308208823412305076123526962124545508422240149861662157316029979040149669949172746237868612673017894094249596068843773894743154058947327147016961985825091282157140530857846619186132280610365686203420039013081403792861284302253788112844894688305371033031235700434623165907687630898083954159168526863054588094762371192788990746785753669928142352470441171665252891003605377559735588435425423746517694168648514470731452547687692899700595461349680397382329362389980198620565056246066813102252036805483248433686549695689653100385237546675878567994009464253726661505467570912987623619267008359876267855503028630666866879939226509937739884608390668208206623012461299730378011574829644982605247059002013885624414633410568678145336313282560532052005929264808303132120350787766295846454418916953734242813903516292914225048390686836261444255735810748683489251853965653149819630557124199950351323821951186967238151458339349082859756869599196697217045343043273161935718967626863978978868443886119041809441858258695796026345630375524775868703111543114762035938698507377670742765108248192897681013385969978614342443000676843942075955495740760687193250167823992960045740357758333106586041155550814690850848399595861676625129053153032243940117244486872874034522407180535221879714738531321688962602853125348758585567251370781868635211696331105720317223768730604678119508611426666560265806290848488172315565972646242491374667624461437195284569352215618440020687489813015954860029902518858507357307152932312318131849917893637341453991341102203556541051010772435986875605563174827784724013798347463097245382607007851025263816602743671093497686779609742645392324196337968768976824844220980191330548596452868142462908735370534116434769696472966752583007869309307984984271168687779044083381863267759733803252682422433296807395064180671565602714268211230312342948551653653215269456878761064682470070767932911101196016546877992087415062186924352558605660814350070546365728251289908986568792988276265682300743770361058062226645479965700376271442571577258126868254662946872399564065097283240688077614389187704249767623422145130917936877460629168518390246803136439897416961358829185973655389064576881751308119345519829181491284576515229964072629833896418739380246322470736392768595129132896252267569068823128989820889247134957014294468682265559575277458228284299728097773832127325305141699246552250666146688355913575986554748942601571238087794284727911437223671115303827477533414242407179488602028340577593856884860474399509433265113648775432422147266313648590577719435372785810437183379009517981796311350895996068855570568421753214407989559231848085248780836755006834594839342478328565635247641894933649224929770885688681624231502049139804359044981004314932330105944902474718476398931631684443474047505681172374643921616887343183812685470940210927957187993693138600003846851436845821166800218282012999174809263989098956653968884058295888600282744802699916980106424049242658107592127246906309924560742166116941838972040284553170688973315231511142056785094965756120390076831567476272107045735661718784029626248721159176926327063591386890767846553619998598318230451455400969742685037750120083213320695886019730512187085418438806108838143368914713432566689792627702443419921807686310016485733840408240758539913655790811783908542062933068122947689229335597163936794620335391527090637206946734233815138342694714102439822438830866768989624415715064476893479056693233180852464295629231016005111864095688006805225939654913797813563666278658482540460687315168946751685658713053052115870559273837534786890808148447224684033527700001191254671233038886156296696015689587218133024728247879162197849116433286067222446352883105320858360458051478498520944223549847131411316896881735244076916983817007803170683363615105313355153309584662365539260080212583362096679555444629622368974869224431908474639193517496015959286204453799127924439547619127992304158443289127305216912408131923689840886616809185433824240294544610170882751608810427472192492094539469702686028526307940310706909913096899220431159645042981910857994426090015245142428334158154882276758200364152510502790358004805342809230269003699820894145946331693593899070015559835064469082244498619717044307628693201445951564848777012594850690111514053979796339301004384053190679074364712995847183321388711090998235667221263805486838741894010106902754001378810183931591488087478658787950015155396440761625775081863582179310117261440466688848182194569036044051379248831971545712438419343896724755144423665893647185182260718836387507045929451981123641178690409723074340955219414052446422009022216668654835608101851443171555087452030706681358203884352154987946905496039494729606547080639824562739470639744064051378929533572858668999008599086906703943434870800817669060714050432569032008815369471670760999678083787526081073299247949817333213953183877832823591673701258690731242890647354742150887825514984141423501301672675082179111002557972517427600739373192142103926032976908081076981905898803891618138257991444343221052915690578788474582111038266054989466937643057282009457469090752925336116365750936006367349850284388726581710725994107849303081301175864861158329066057327427060691030699969482400586086403325051074570771362035206886494623441190563168069892406954125655639819424718886911922035224322609723175488853172826677391037572371010673933766380898151584267604685203620367240789149069121879273556180766175587818153830714572203881772971875938956629614975056785345081345976592828371823671691392431400974105437297844510162575439587624579038208902934931501481048364513538889280304386036901642656914892316220721896665193559162749795504800925551595190461860679188081872269702979622020888002487787177969151258102117894250727613197954310962466401977209723226100268637455300186190885982565656265279366085407691682281152515511826170482175695615416278513963778247995239435931246975243690592186779426383330733739206917923189034739655757396649098205261877727084616955873614559295219812689331644338239731423847261594530869188525408871886577640223851051087973101722522845299769476173758249952632471411817301602018331119181122691928135088569821004818161146167604851873699956114717104896951452849696758125834536129780347732313296536920596522390633574214202049904797794971403687215328070643579877121283723586718612328481014289386688570369217620723484479675929144219538642201210820779887655110250311529371693291996515388780425162560257463240692285042288449977623894692696315286572937413430169360076035329369706417827787737793065010569739456116216923924033667640309078354145513831643488944997923755781587501445520648693471308649833007389808805689434669240652073487595248873814528563311886966371772606539290129962451213621618212497585510924608606703292781692598602652523263228264835722732391838349258202127593894057153041127362818836102715025364815499370099626926498261244882629179867282497649487437523772188232702328607878674144646760756001820948906734657407576769276455255636422430212091679637261321178552432544516726617845496108737903746066329417692646345850239275692854463003063866779511564310976617009500805367466292149031922893154613447952205175673050782240665412166929430977472513044952288499254238165437964069910930372676864436987715967455838788178236999390729136295169301356585921262470605123799207098445306806751021923597625803820917959940362293224160002144948306949888693147984025711575886642601488261724776092275527824931800612454680443270369494280519969324740567656213986932689679454104577806793818986787438960315493080875448508708413969377697387704317742865816964018711318769335555139837434149480436738506910996892834084554865883150782980444429217813519681652065459628859248994693472173332920607370072548385216598658988907709883546595044585146811251957872729831356143487873935778906935165063107586440694448397384650888544124079935717189272387604339267541421182404624139090542938706128269363904674491829046176385817767365973869331068507357006883922614400496752244109439386794743104730175735693722143068707911389927519833743170803283017996889374427312521582135631706351219458024320861852112521566938360948410862749282768825625016862899405981589304199588164286788710762011095607597412872305221317126069395071600536828028137772342999917730050094327364174874089319317228940480334599855226410892982215449118694014713634885180832952437115609605107576510978703876312812439595878309461734903983475833694660579154526941205895914405691865609642765085245895705877482881204132612392858948735235603381043140003572891237856269427432502504636500743890095572740636949446188365286660543726152454172205829830850965936482841958696169694311572593241982735832458538314401670681614873475086126487519897807761879174968270011712481891846613896944879780761149572613782398415346224573473913376690617788060546347492480215010001624112121713945435621269450000272927378809068638911983351608116287091044323730701597837680528428190952153900899546814560480934694677272389992107712708831199940831181902204147888292396454286509798811164285982169556628812903107065006947009320237365625675484437417993110218176231008020140461666848991344989424122449701917555764928542399269483972482065041525370392288105886341191972034439414870165759984553384786876567773477091766714680382367694931340163982840788020534954683295900144178046155394012922359304469985445894149744390975240122334235496950654251547589721418489379143502778941401688528164981439552982955401128307290595547761225000882002512269517256136937374376926594900873746044344756874791717024790073562716781833766636490104058900490891903746695245620178677383153699102840008228759819748535247250201437242104792848796759970557786331111404474698076953882752130953990808031170918739221378473632263320076649516350510825897887220534451471505163639234558669542358747744662242736212811092579582876119166254153684657318540677262662818074645612365270570261399929695516165305519804652650305545484991794037554110839891390539496691499562413086576574402038396516635578736956061789061420797246175671478853580693617001984457984350911655102002273651984534847982496446187446258369570476746482617361233386321767888312504912779200926688484238181854808972739446180692274654904673210947695849474591173096314265599310511814464984916465734889299095623605691807453782343016627431623595003450766959371867998693071862950698331108755676876752095740314348590022881123782362422610194674169308424929581869608229097115975301249041505839344052802235065103086218445972740352939276989646953854696237284285171887696100622734337169764549988286823553023276435037635204423303121918594735894560426683544961268990924013086962998337870135124523948795384596903934247060924693398335944514283381668768390601454197079224731086282169636859276547233642121807873842997293257587252274196921100888994834956422769640231142753912447443241958696495104686825138415711722663081780340834694446916054767932938894204339662086472722713405850346947698376965848111659256157715352284042764824972916255731478640882004014719734509654777030128475568141016328618169663732440985906856266371605889070719967656969369557771869700083478267984657239831280624856641195835594696766864633682410147066349690545555892651629622100768416618973454423248558753157654115752350824419774406968508940990094515586829666106709670902421885672635130220769461647419610124835004883243990996858554186869697667730961363628557499053167283427905552087494170066782095830556996249477733433635071383166500916099697044586030701991206362094726162816281543050557973001978755133788352283359301917015024377492382939563796971358962954953801061735070050621153794116136924540177933110673136807906291585771153435290634174027337469726525121883693915935520571525480391410141160760734932551286532242006682870834932947027112382304481910697380636701705555168166051617085257753897094270729668693022600648965741466207261504708613737237246453256974437825575900925675384226193084201930141705544579737519753004704168611858973324224553893793995888972569757396558578662120421137705850100415363247338063484930878170556606153341128860737674343207140406875176697684530102491894478822892467092476454535781147272683411981251579374793859013653631922285377259074594946977891650089063531037329346048208127547665544803346897509941733772273008008835138661216396087695080332769787446327520211238336638907570173658688340714324957376376131890231795720119331834684075713003556003589697910191442671794848640975070348915715578801216721948131742438746984840193683550642575388859536354064576980845952580263489405368485245661207135202821836091210728244860357098485986214991107205603824591948598269819823543664747724431874436259385244319349885976950847699830301144277916640235362440694889364336665191698220633002270696431428914178156515762413660679408644277393150876453278200005143114416938450213602453856983952735824128082284051480072499505950421581980220321191170380602272622853152778225079828160184848044669843884542381877821710453476165937626072970888421769980440600360950716305937923533727603256790842966377698514903184469807592422930615928875788093754556644160988810322733243261160955215205586557288084122820006986087549230838283980249303701852920622387709877042781012562268286458258207489374506573468058957357127069872446993304075235454486384826117949774906522988066396915491619456757341717414665666776155891302285172698849374989142315440420360083760231932689109975546265851442441306916999881628089074859690483068772415006989910924822607221195366278356268888066691714551472040654698672446134183927546666394924222757872605386169909426620379390926492695130808143167659282504876472104863583938056093091373069208483881377562730641491699155109110844125268842822447799765828045167088789610015596232545784169460313922987805452872155596749806992408504622708262598609921560665677605919647866196535011861033873012068186269889831755538563493334962069933625458890583539704996418141434400220806029988614134685842391393401535642324721425301428591205657638699456935627762470877172637820785953181433146684288614405778794843941854414553901189633756637537059024276995878782986981491497904899821810205290687974249099428432273239292737922935894937563460447117413461811869967637755675531713533286944678866336852529977913388840625205355767274522687590942502698802623029029591699798007187271543905075709204894742788081121617537057081777860657232739443689675971961324093497733807176998748506768066110002497094831775850489613168171047157601328115997979669711796489374936580182829314688569993266706863564738459193816300614124738538845590045829273118304531949237507394953597139353273415735585700016210856392947218980959393414820835849569334691831189479801443321814633528391077662888449608686963787001265107375503636164492166918087904910333994848244220747450873791935474569615644102072323320090426503970024967045947946721723223141046197781792322796891151603338708596999475128428050100075079366668644883362700367250377590252110262588133484892873136664049593470280206296700557077340622029755773349891842778084857004032949241500065621022687299216940843023786907112148745940890504767609155597377014065431151364199391070051532216931977506053626463245629378601040851025972253251730926509659234796949922483311768116594806088700600082618923704059498077040017396745821892429548950716877133100103978515335345314710685957094450605377007335919536586171963149700601821601511678164458777993723274548437021671969832403521589516853551392478270080559128279615349166301514580517888411480971867069842722647325396278568856218601357551480258411912578700961698154027609127050741951140396563792898288285227408601450395352112653895388386779399517295862927097010478412739115243311292594640007261346492499726818109451514403360630052871288117634557474400496852423370114339885902991306423665017309231172549322356936462708264736539614701936146564880823663856871274311814701262802429670841610218758998609649692350312982446820228624101581183380869587321577601822378961801576777013998926335274840895731040846106853771869639844131858461150414828730502311806695986341793389531746981770147066866352511778784457585311149522528920915042815749224555913847113304271589135534111423495667324043701585307357246228684692228408379373448470602916936013993040950654596190030818380252728256308220937269757016275298952076633889581100393467050195502721525407078422203158690015995130826384841974877768499169239270172196537231665447574407641010099650617126279590178098819258884779270810165459373325352841280200757510701848259116525137578340100895184768524910186221173555348636969841574019955602865124223618740583409084477019687897154212595303559132707207606150897381979948118563835674506257294695134369167891826306650795243170201558263643719976037744462018791016135424477006273647656549196267616444680772190922929080866228112959702188492478114867153425715536760311952454756156523696770385370476886604698021385248030561176382068757507022675813641286287801377651406190726700233097845877669182283339165129078707608669375171168917416276908070239551757279698052016821027162621360697060416091561788705305407209797684930266376389686627360501139889702488367335913513960315474288974713854169693929318308680021232896329599381271653722118529514501671084327025074694204902097667007422827466722215683386341302328609110460240156123049845591409523921046097565436470268344461508550374997059553366602213462604839960122732736419106949439922465245700052391362273333832849702772755739335649594315523090123323056343415235105696282286778821093084612156866114443870760958284067157028187534980897143310274396702320728683010530558547406112071090359352224531897377489287212239388744316570294802090390081081088526692277246193143825290972586311246157795502759822070616687080487695005424198755703062046699274663988639348486840142233528728214440395478422891745476582719454397372171674600060853686207031665973430515242833272893912510779922817171405917223602073852789264208037379292786435578021158357573570328359060207378135471081449504904591832117553015450198368358598699232679936322436043562460202847050065703383453866926334314789829914678538149164332937337706472856119777547178021057206562416780620492496050687034101450554440008369158538639919640558302728633212102715925478049198906708906687151219434944169901581870351216296916452965667288822617346469987438060666365012549193529951563426706148368629787919482858285181703627841377026940221675580682835676215271251002722532175501175391676185708244100056978635520154571775097037609839035001282512873029138851759746097154637478515816291219002842149372840941016515570616862064622270380736689554939314543518226625017737147979968920612065325275418413914476113922152134614069286419355821703965447967025369448854441712394333499860298027098502714181595416780254324505451516922268832227680705847040168571088248940081080598243638806930494014003605405882514727455882582328529765554366006097614188174570414395068351899430644076770973415827497543346074110326888197363251029598689127139183273239406546776520704257012685602158373854658756251286737197305200835452057115115637967152422854375612319367176856700900637043735425030945510191851196229951403259743792093543742091184315511683498513254915865438192839955738312570449453672482506711473896296729908788858488825997010742272525040354818049628522570520823634851226938315704562806728367147435055983927973260668429507263513827510419746889767672591369017306512365731719532431017046286956107258052833631589009582669841735396384872016520049064906403549854492372294274183784110330807770477386940393450466333220017422240536339407527505982935749108698818541052273129910222333976612533246907704830080270049025891197866095461412213341213891962638826661786556146344210813263307717607866380636342437049190918325419432274732411523770487756138092796048357649969536874851130880706247612732575037665910783170506587857685506619883979458302690860270196411220225736605864073929143877225989074073598764473315527068705146619167081990942108608514033280601787851430149967994736342366222291820690324453015250155785760152287052847367151823494492654828857179769926316352753845576557644067754489066824899661345595218009781422086770532688630564291540138296534685734899671972420171760414562999130251414447524884878859521922268437236453705429643388078851106993397696127782691625463097323535451462264137652139297506809924776597347261269093977055872213928074558564709998158942966851556270403366058762305340310983459322900126983226920502201581434370560280800022365801546328825529047068250736300630781189568719809407671585126103344019382962718808600861705716970723967039431812613097424711171790198574301239907540354716506288051264920095605513453336202926307058664980915408758176340212996001619491110349375157655887524827214237679726425642697736819889088217226970599265553049872479047981000650468434265519305954864635159658341932560199539427254246373171515176352439706051403807424423857724765659615245674669931628602826485504068591224634076966397694270136693882918560767061758200866943833756314593294171455199666977282218147062090620349763171208646603060567561493310916735970626869262998033651598521300888024046181683318608779296650027792213476011617481352000602598951502189632706364153851311775210714641070725779349718225272679005993370186596157932780066176911183167614715796464877064410695224537611456887923115088630362384071769195998900356580754727010719916644775922773065889611193970654275860246657291646477829595177925217284078607443295113156581166361862904473631555156558233734102054706610970553981055118587774847255317701694561977327400076274662916015578149893849915480067001588028727137067964778855533405015257888467196480205246724244939551864372558440999600630630028981857811273531940034470684827534004296065595089225351860155422289176429463530972839057155251922006718225204483456957283024858706915877783543719512685965426708169607982346616792592607356189398955902895422982006901135011999278337057070761754071258348058278068123894285619311111413250493316426052802330398141690067988980373760320995164370718489058699369606830710123179615266924530464923746322846279908242334798330374034450178644803988127559707222590204653660846910213794842368881452629696866213566476702014267253205644350313117144413771351467367073716972654522654651061440382027435161022546011116219577553769090129814813688328624816036689927739083370749405147143384874769201164261948192396449463200446384746884791115170448439193867653031100824238704981707552452040557396205818316248694503295350919858056458989087442568312292543450747373415195274236476418027076819954873173772129012524214467540429458554024239064717022570044642487593638766367067747962024427680970774377854825766512843776900931420986660710187029338593310437732853034371688951848025477991273331396336707867250697624004443999842871548273540021362280036387835780861930328130999490596589188937507538344269257079570332089037583246284679499477201616184924480670726066423943232192320717600372523136002600793811788870805240250457731492535024973994254405139909972427789185118923895556724908833225321079886270815640003225708127803151097668662283346777383494174612258945420980000290932969074377260138690910279140625985152505977082766818440107816706693400075149348285405556143047553911053314375746422948620974467908447587646836317870839277308598851113550957947449542186298667749669615947444409273113200669786113808590545317626494590167708481969714986139949226972233845270514380938951350464437551225486111708913966808936677797309943848808617085933190910435786072084967307382593792396359932847510040727279386262716704475407571920250393419197254570861894831172790246140496689551790799869102537648909648459816709017139351206782839579961226311973314913708737781834338419318523675386629019004633433285328343418249210719160927673080132353694726484892764429797088870681125654628061172604607332191763047412150640302017893205795687605102775250530436122270960467584570893127386616521424194086834083758914009511413392954577009473174811688536409418352861099710341672355817709086028234982020314998679401740417191402839362105194806048190182451800817013710421974592127984040242687091963005335536854941640086392177456769534458650883286298216584601645078000035989852129012395900704202670926074498878506271760776222550606390745319477188925099058100936729891954099576633538658378098044793537709379918771214297746197640947272121402353265517772361634196607437639153866019450177691400624068412731627094958608063506762937751252934367596073427199675135201580087373954838973439901238256568290785911442588270958521366169201402990041314621368063235265086541121808474998758441118362909790891983411875376649604809709636264893291043905977256329558138877674469546181579787041915975583350003772867246073518535088549546427097029309715856369497857640483741505558099188402093433335128195514555185733348881649167694427782405554370983697731192014372254154192745059760137984144373599420287605255571893780411489261257983036183801077110709905004239239264415692277900570279474013649422918479336925354324840487802317774451841779583558257547617100842549575395878549458343084804417370879849267419528932303148958991600685422879578929481590006873537371013333338638139084209948725511726171087294408886844785081163455852692141540299672098869371588623222033710214855817426826359506893623448134224737869394609232566007547212567414103421849013118963967654732916747103247189934243302802909269850752294907970944300923867287743936255111313628761591973832413491672268261271042826312779381175080740895894397190025426412664947980176442016454158813176018972659624614413913192067710585035246383065776401652297320470892011469171337228786303703845313419426441424966498447440486177385137106529373108099859472815111736507191398812693074826906140392864227662784943295588285938372148475070778371075511989622491195588237045064582005610170205324844490215022945617655618592145743990095548229413751544710813613291504304691417994122460933816513626279028278842138122077589424038840622943317279892594183668297109367925960422418459417706530195486439481703355241028747044731171507034775083432373331163258767276368371104685844486562539187239460827324713500448957086803150325038676401735315079400345572855037001845602769711196150615682914161170610461617408248462670335189152551882482127260072595765678899125678702014978667907112847106631074876467309890914719798792598590625733649734982350312609830987346861627393580579073549082471136830497284097732381167082491516373468087051052191917620541698826254760544581771117993776778696542169711492578557720426344244304207449548970339043450720611900769736351740195265632213928258312052824003746697115545909280452596879846081408707195342547613883633535119112144143148505520123581380626492313538338767571168091889237975855157320365883176242411691675238145885920751640352366843726791759063705392197981126597711770811394735167196299997052090170907589856916389066427042357007445027751201049039481483294574438097467118260351057898195407639870607875817740724911845069788429941383420608124283901488148725998541814802929471199227878324356105549156410917488770670678201198591095890983868839511718380134914825499274914269855259712051776536126242157266244889609614829797030842021051602796714785615940646136382477589020110251992342157121321006017523025742122375421074959187286751895521553299453226894251884094228267577442222755282076156071227277103947182566802471066067738312063031466284744338620474325956850568928716265329083278784399650716712372422061382945329166004638087256305952415328812093700992298960069813962796862795676351987418240185627124931984922623336431899309017048819952588273388079532658851449393812411543273205891645786422945268411771255188081840509569046913813443077848902114879712116283977344305484614980793562435496714129473332666422712648305004364454547027491723207839956508680187617327033190656579547539520692925201530706435047130688127127890320538545563987992101095667298287304794661005431635846234487441555407133814323441311788424196019071283702868696242276246502400420813713504640159934720532755679503533906712721617790603021623997804185763712934810054483887031730716255256479959999869353196813010156297097871167306964940274916657267494343208137130231461388692553349492941183163877889903259401093411157274298013318145782816879135142439557873420591571316145877368988080791707114551154762661682081777574724842787971298154823852036895916524054373052466728713273130301925829524987639320985731209161056135722017639271699598686108867606133843649616951865484860467133168484824074383811807417342224483947893998278014734222305786541021772926482091409485035013224151559971349901630714781485270516144322582547801434401095336602393626424931385229405475364168364670415743005583713572984704018145571002969623469850599778855736998021822303549238318797629894156977212363844088917892757136277528471447762189205742545315103747997770686236242189906303096282211773219708230347745455060238585971371140389896916662207787683260123961741999762365506363266016990661168908868774133378091951614977054921713841711819110149543478693820620980827878957313278990600208633911278471536843043814981509703047708868817139635974192534134122191396287457810993424832714109178276317654209631250713669263658821357511998754011571407902802850780669833384183382667394553683196565717031946293364109272667274244992747322913800983574450714191340799308568360484677866535421058668005211542648674972395379364215665358720818554125981945474275167142118416936625563241935915856950889053531412183366239987802211504245660015023646910815997419202544378771433610226712941228298888053367943950329404804961677110728788103161467730371502183528902414648175430954714490594488754104250168040699998196719379820827733464855815859107761788284975054685679139904011384562437145604035744024619123769440220076042143357338726039253724664089664914714654730072195292737417679613565271463306780426820002423074121866748669462805878878738299523278050107066101385402880119138557309113805727714755893681940309380718863793758215444351626559912030878482052393749351895597158155182804814807831310537148509682356716123550963161528665857859019528717754642506412984945105730353324334890979972094572917009571498784083221404405014741143817095657712526715779817097676384786420648761367939457844238586035649664463715014013104866705613462769017492832290043271120819229564158948152826558422192618902530513815911803423107151885149122665391794481743390432270050687428881996706196068850067332835361468049859608140287911963112771524825466404370384782884007981579134452321016686737411212944968134510122379842940219479469166481503124715331873969119602156712114227943068201040876756809373898205468421478560142776882018807171741412749367467154781751322771090467300153094677730692232909534956944916011690468181827234778161975125727851535569861671552922029188474530269830156638749177021947605094174866841197276604440854832975049890782580615390200301715603521802717920995081783912123397007002783290619371336821833696154082652039271615180227915286407683157157032997406092804831050625515722628713132768182478011691549378624832240172383707271608864192942118171871585646748118569400870529961131410594582938703305286297918826493247420179551244232947629034883495272292715983080401222637227611027520380012093752088562406453112503726401539964371233707903743951203202853502547160748277980930302021966325093290944881905745102985217283069962242195471016519393297693706545763334324371613256433136391221083529135557700812650539793164681494513412075121883505473968595553878091947374656627716290318681617136416152155407745354380414798454584063447474508568028086232412696939931122964056032731097163279384916918793335961485351700181496982616480034402782281398587901486285212867461753848503480683865271640168074767440211476655696438739675796644295886409577559154192615071966537341081706497482220419135035716522393203692779239073695588057799755260190308143550849247598185779798029812641251926980831075657465947166693511285627975905780034193234760013696114472901311372932651887731467214107412752210105151558657134971673912768855730064565566635935253545094573789688358002770721080754685197902156776635596085899524492722716804977529981545862535929556885865521908620348857429443548834017661683055326602458359944543309529736207169564282947453966410175938780787579040143195672644502565389640520071487068537065627117466761571918106471702280464382686780641781701710145579987859492981028674877471679017435503993169683528592116481487861286717128911637599276847108874366161776239309829498234064137828071121741237834222414406998486328823924065637172774389808463170433981419017041770458564678599349411376710185104828834584759112985991132618063116652071739771093260254577766404781139798120273962790521780796565933483031963863726360548172617544026268435726717445147411143619747488532813525432313210406553747535609140513357644845126503159949939847591233867625897175988628267424214106563170282684202742775354785278498062554779673095621350107513570108143767120973610671765693389811287700643950868226352419579899875244531513268435771252695511656842606249795300564134236794717703268694320221277155284522945590601316630023329786184272936970542564089572247314796084227996064312117178557228988841340690157060791698553970627069498692261315505954581624066542762653609898824692284240221771790510920884522641938004050647235141065446293973629500626870691857435034689078702526688990310590307332718002099770701955626708007842141750040248776436938270496675406914489563400092985235499129699604654028327181129951288171829317338025893433608886395618814530549363321022467023712349079740681256872488335280182071828796868376748932865951563500158437345427148615342497125226151780864718350199049932178199155353873785718362345508714313905038432869651387690329053401523842824396391325686729272248708477969680927365604215167184904023007501736619499358544714404152214106474972421615230372466125530179653345435408898008690163071871859158808455522198431157422312945196703758626058776263336684850752752847903442501653764916331792832073718657204363149629332621719841204149693900215789875840550688363131897828032706818206201147097078246477607187276296351324513522519224278604476601784554635868956418344082595532543340887101615107036746824529220471886780848531852956030260393369987912529602307327858469371627037491448388916337500526216973323321524007718908758098485646289779180984825342721202481272565551505030570041811989518609216787809270937241480471127190032092752163821969300536677508468358938654452815223534755755907638023785215194601827245682363954905671918125932747289545698934471141809813153649597485154106854609786330324864298777018635531367450811076763719286047334640295768821152889813566449309493104358903645141317552414780992535059148130953147122623413547193064609059803930072954096921369456449857878131484983471061858858025833538008663482207458754757769206771944100675717787021480249068099354034049780869747523182136878867192069420344186215299004686685357497787719510147528458215215350982709863527703575629384931393160423887168990739823956189887221884206119027709427196990322757366871860797707077215592326418136016971727774070288413457177320625302988161726406498017801971972696415503872932862487451156694400901469103714665895280769075063099165801904028249123963456798392695719865571594761366943873933300683738308181230942044159295951718719249267979297129502949158118526944654487199881606448909108574738497225266256135983373917831949599150654399837939835090051743387881718295516184472007325706942293753652551534711785761849774779733167716071499421452638170475227272955705001733744013560720129781216871886130729572008682704728150994493655761353006838203007248723891860455582340567631876262367202258904340796023955291440818688735039163729934716281576586285346544476718977966400943420249016434108472038630536408494091288771199650698045788071379779515912042538025709198604559673886019016344148290099729720471392282778638712630801766921370493497690438081956561880129790914650754406845318051694049624845495257205186336324222226145869950092979045626886597039309839695602356438896863299233237659081142486035803545172066978206769488924866383306879176594263820092637789031658270502911378572975097400493867535805163232169720784736338584197352048763394553946427392885249745167489904651459473884977874365758947077177943562707437208257228553610149292967565026585100600321814615361292859106934321487868637434297702059825451095805417472094556250811648819563443233555509154070228734506176634898004928111484860336673588052242980276245065806721041661646093309658322774120168700461864708735460759460023553734363668584630008298911593217465432173517211175531575551018630965885602744732881743617645365592624617643877740379976886080184145764476430357129872123995556915655942311745306594836250206036438221735440965535395090457436938651043129342716658105214647721373628560410427152372939781248710605985932017807577384367065631135068593058886083620234778064987975857214317840167290597876570281387580260323333798832030389685399914520291291252264234896619763397182681060272153709597596629809185348190125040315899625204717076766399868353153196608687529125423115375034755005153721667406868469956767733057751079235049034577877826339647387642905640164433316822456509039570066856800987217251827330581904243226112894851849188221425396861310033713722430186839559644173467084178320400757151272184168083755413148247924004524308125367729689704440679643179742681593592031358215146396789238533146916721984801923785613665706360942213296256718222140853765807068346168583496375655648152132788002082516961807220798484047486754286481247189232457278488099517849200238132149505597686097804392272136566791432558387272219396288555753189851339047123780845594071844832836115336157802570583643859337129234780510580916071579722223717358832712616456065679450348099079972050842273054741907781106494021601666662950945932469680827887223587382689608487744561183798448657304543205368926840349142345088153510167857570666874956376066630729372246364979840910528400845462332617818149797614121818728612686534607116650955135477832306274118114820717722516466526542709914847880777689282345795486110671504947364739973648066529953736779993402353274964801037226446000856397697363373222947146973027764094077539628839012582466293969389877015862089379918551693308472276381599653959133926292450056440676097423169030780271559700744418327838639200591504192666472875278979722854927703415082639154789692688330816604795642091123793125124523826289132391142592592488723531353414037229716733799306171199648037407664440361082778150937198926678995883750525547609294200184307444389649349672308142535424422875482634672599399787959797254722441172876007712608840939504811921596748873955586267106723154903021324022477079265249776944955205108056410482206802172927635615223773851063602097203137894838907232876087730444433910703713871331637490928215492129660943559957654250506597023923980013397192543988353372335819326042355334640709072858048652141533903522297060471220130494123455357789547124863000470556288945723450446086222664852384731073317223038564186531180217935120788367893163243192580644850051145282276974707235288129755672304193896966911516840342521912666860561300384520538933691121008120502524108795220346236672360139062940958680638104861567034918952889959443421807536331295702241260765662837857763105841332497008723702109639513491608642051940551379803738265147259899902124751359728276487048030240957692462436925511137238922353178694829284218555724374736182657795600351890158768759814426657626582583777353798801168581116172391885458719903282377257659747925555015170352252043295945668950459779859313354603058046287121050992002724065391999022032802985513499055895296203508118519116239331768415451061065516247882198069414695314021637241854294846509930575901842547725876857641474091708005076586416337693581466078187224450583794243757628772420854540335011053709267102160168897425190172664771091187734019658761319238244016778669447316036433235724391053046392692548647340576221166484269938330305048174397311935005367616450508447630473256376421666137244981817216715311128910245585162073197007003112540505208238290893128757564218754167861569179700970093872450501429846668521200159151132720592321337362451009271857273494135289481232311599234615896909789674454724613062762687256330468233531371596513000406153320056264213843223148270354735863509198844653383568400487247416846538351475298726685210475900910516731592462648535707081943035235987550492977333075317220355734772480236517079315932787444549816445932473938377943652780031092775354373492970112030888508113851103629856724920594883469615636232082831084250287376136412846726450367957498216344694599244023203866360957965273127250504891201235999628480875170027135590882128244592123659726362362619317174993060278006727038520443869472514202396265943071733875448439649357394016544694254389183159395967500993298475531832019709586811147403725241146430774907873234732383184316977580069510475962534780392905312278972028317103077044152040962027537253606616877509538749135648654899352851081375466230230104416440607874337993886594343197397276280988725572543596421836886252528684292094076693531017467606143615040224106100657518385781845943097381666527422822725535952326563156004363460606617992954342681278246980231107831922175488282484434894215590509624968095517256681614178408105806817300900263152721796074723457974475343900826623840807048876766201256697542263247672578414436029961270632036424767255662395841363346696342018339637825422544743063280535146449208028401169725835071719251343449175916344648154738160058964567608405798016590255748976711877225395270001783834618077259683357425061963779397290718664165775655492239895116050443618102059416850541876584715902962594030767772601869386054624379389529177382974148463926922111853547905990950972997607473872962647276052104595112827726143563127096059502375573180619545259876531988819158370780609460730104615314079672252575778609273091907262246919298845173987163150768576635186493797629738066031650319861817206511878673359197652395674431888772639533652290886520080140499811495657664501357148699739221946031665890119202261370639549215000080968080726449365156179044413993654732119422707627168066232679931722181257457609152455167050976549279875792849667265167376193685343546860426007927821050502935106026991107729258332233138942398087165405046314658617867272661994997496972905979157918464803703518738864382027060980493400455678609307653826192652631811202186385726792516569258659483274483164346145940369617235805971795888290583815236978853316823013314522929991540597268230227405855037406285359045976578596457380652160026315917742888124801830766646377077199854694714324672690415430871067788218769070796941313678460577018382839283094791609157762283512933081599452697606840265727094233928858711054408683063663858102047363209449653498877627578626990535391553279118811926335106919317271273397666740914861397456145254527568838051822852660871349632838841836848480136264582895400730650791572726074102889083454659625380869625526263711592359482638454560872583686037619817067263374481287637268299727388777229445404077067899401643812500275542016983023069545116299831343107188990986254101600293552441547274862591376159747870918515340256888813019892188445661116491063268883242344830962888049657974271034082272753736673828255772507677153051860616483063355980193407109897163098840874672591044598887595960530329248727689936385211939490968283710864571352345601580438642971035384668305968987968083587349785762678556588837277836495162723545207087795334676586720491617208798131491416989137566464545697421666338802887093115965572782908909685832466209423687259552095876586763964525810627609539552914917651817376729189876677984251192727916807552581600469267289283769650286492087987822244210714046467307485197437139760530743223451552532127280123587085161628521453800836861246295154803945332968377364248629645702435818923168622649949921863498372812468121494673751199481950450744965970432717604013383552223608153400047959819368522309258814575459795728266969475623894957247325248486607065428825628767359288397614196190591329083994691638410053218891869437283256572066776523238247316438079769604445729694465028343061665221698708026175757051241641110920735772672842039704116888594037610584331302931444829065955684296487296377161321950732199716414417025654689461012728570308245972384182836040311660348915371607623286396661656185600094671554915197467308423255867674109737286340298461696756421076322315367897998858068319892283085976337509294649038791074370774008463493623624072870830084950073558164966916759777865808111823047707424696436047327935182038471988961170359008300455685728812528050955106676996023738782353766372782267740520510615320189983806114919859528750026629455422735267289058148948809979407952381788622443301332364554325741038837042323980921416149632755395663617686752438172907655662510133743046480820755285156491167182834541304723879598488899915627591908215219594535894398739729119878854478785588393019531703471240250072072868196663188915409237562982477373635896293037302748649257292136919788906763582461536907572381188900038683408930397937519930653817228736677538511417161821464063072930539934079367210950941233283505714265283194967469485021225058627404548110939587405372888096652279949729413135041148573758189949152273413520402201771742697561032405390025938558957849154940687591085109004457295669877902963589995785804399594722284335544039138455157545905101223677094900429072516327250643891141472969403143929338160492141148298696151260756811930048851604289256533437306862399621812008375911431730894729741989980293377230506522502709849720595963536060693015540542358093562221999017615513369475682897390107298093518988689102305620334560674781595563737372431505131046388436846166022210580766055016338443951339272997539050471981112677893784252742930717142873760554379041535781461948559847060404010163365311893068369730065939759500845851332728473088004848774039317183964923212125759155986396831005033440560527898876611477301243089207390677171334489995904995565286687043138974556386419506525626338200725605325025449791258937273028660693665274756954585549379365494669059562648221660110907222716643362714785994645999926749049549615730312642308529764040436950307838875676652232278535937556772170054417615227578900688492224647258100685487304316761687053704714029329379429575971294561345245527545656824943971433138580495097372060753941257415673052910110232605185216108762961134662379674361123425177993400596014944329479641646003108837766887059200730648862018019633769761450582921768913766854755419381160747064364618355095042783676384472746207161381977307119177044448797513778892289958847382008296507046223127280621051269910394458936078904429066128912164873088673293277124505955764999531645688888539374049657657168809130392423485693764450199912028784002735463730963108028048839039864462866315940784010291779687774189828622227028532919145503554952435667446119533667310897039280307633613422784813008059024523229864536534759379247009771237251485597896223350550371408237373118855989996357257681528249857323029102096633655298097518691642928076192749832296521944816960437154884731275908552723586440480201758142575400529343879461964319673490293470269618697328305602126628583594142917313417643270438839971403798486296507440722652641634634289829191540694582238400532287197813012034284651173145000214159693875605989584674337883215104458173349102931408492619625443010694755863267361339601315493731560027028822653755016913194817216772727748879790713086459125176896227023434826717374447625403604436127316383426636852909793473026221774344093610047343832594705561796242470147957759938396128282186704046594773173671346740038028868906734350560654196291543982323319166341577275777262556671272875677647403587825186731832401429351230992652418610536526239068980576795900937826721251220551113158347823925141718932666848697319674104933862880589331412583648730855968523648709573522735515641731600057043568337512858648679877762673208789119701741989262975037390169668114553105639638913349194784911260028872720224362955411330210328883732112521790386091534116785776233880138563643471230253133127583492149626816843461805655064376864844321697322160099329793588697132634594804765801673028762362637540464177371171233375552907616845760984120314814973230671265447881308749669265249507283763395824831279554241699844491415609082123420144663561151439878692732483676440381999960736130356587640683341102908782368523045177162181480494326246784203403756912181002047325857133468386031640918904933187028256511334225965139518362851792326534003162530311776858304390585530373261434700094995404289931062006909384298598494625764243642747550200929598219970537138567540242399582249732736146881835783905292562766257814762825490521531188451672679258510629964112189047429032689829030019537328919556490734818124668433899387652291244231198145746620093780807965110820809202500372217656466226546273298516780697561651229846904028763819653602313563613649766389022197923617233885491819809573522970142320733045491394760020309831182651347083195790827421779732291100149811042092919972707939131054168843056476687331068288143263931229248475280351556328279527326560834108816169796102396306652310043702682309153399901173320185178408534796664576963995643862325907256630756039470551358975851270259376353252345454607115787656733377751713231407198493087072741725990383479908377522266238501618900013696653310225295738651936909936257334896333791041177586051878192070877765609994109805155176052433838149857884415802148300377380729422205773356114221873419120173809741916039089694570812869196186877182344133397780597593991704085257402459527953733658955168367104612241414848823507042098949464053346102981481814983849628748546950040743248430100423707337237702693594977809093900955516428125416837951222634081034024006017318562283671178791286350576512210573382346487547089228654757979919866349134336745731780800010159228032458041560620405881497336905468838305733968311188564269274466682562826056931827114971107908022216742737252056085239809705192876172818294917077340968108495634209221568005222657659050270810105964689600419159413971344320797487520061970362143653107673418194923146657468333019425617725802965628710574635667936196429335090417591547605643722848231520544883734226426763087111474606360347328343230094190420867481232196335598089298139013743217231902944033802138357343037846658247849282371602845709018509399863087689746361213922287446437282223068981442710808767398474573441986859735656832475850237902290438743386565016354309204949751394651712042399638048515240438271400499734587366092215951679436655209716246719028784972343068794146220933065403515146533353438176212140974995297346081334366887421960854630056294187185719897965490389226099400645813457698989029375252603159479352051773472873837166700721547961956375740701285592607563335804361178569570327151086097332660021100882712319916734837593409971230320261381098899642220973175527414255363413061597294843720485673053633453566183219602567349972367743766404198553908458665477313344243061721260086297605296720785932256229235584626284633318929273508319836100025921871137039971505577493204875978319767136286320184428233653934716363794571277158840984735117687777055114469465240422088538202824989296395084670465701934759746010821090022379813893938891736617352995870235322219629414991396048429927934116586704877857111337265349285665368928875089626084058604973073538118077965006010068109796230455954801189768566196762423893127565241655983194566147167582205720515073735431874386499592077292171541152707025157374293274060303889970181763924928444961449892119960087414559207355119711061917813560083117939437002185678808012611811579946414717303547906767039162644803691523001638073569750954986478577153019332075870767280738241627299798565721981668444519311512147215394626062415474788735744925314745222342898144439356689652081728352018491044685012363534665944391017712860590789232036981777358814414065765795314169342756627442756479249572256177112244150820590572608481471404592395307959706042773591724592752165506005137153967772426318259343164959994084881348962944398019280504469903074332958696420736023477994406085552980260168762745948165247001320475095699315825105659565545112468121674104418920149717361291705911320464869299521893607872571989543326870276421120797111258063437179070285365686818813064931573622903586491231366257190281160804499253317309331886197389137211839634887920380921481773975151215550607736314212378478249514649493285850008995173231334179449195719549373810225162043355850964044299950654948217364817491829820980285016135764697993067913222478498512958741989762340204826428706202051130484543207456473653630546829858997903588405564610067458997230028648958952414533037922186076757219603000199840534610423736669673948465981989033226447136417782885831861564108998106333256695880149087548911855294447548777707037367325428165404870114529025916253519801238741401043603630920528139960818578217505919920444071679901533873684458640154205422766039495098525317146476566588668145884224627681547177489770602016193969477385529779736951792063934259381963552380388424839581039275670564005177458415453647792017073426820789537842419318717370811251340019135490752230188536642456151886403026504152062258752697464483059606000866480846739758746973714031004430507110080328575618526003370683321783410069730737036403212982503954591566451625180163585488737292501886490417671308623474164512000978052671659140945866695297194326626136275546662763974798831324207373766002470825655516863465415732273037984633497435417605339118055495848517100306504714657091740008220273742033342084271621025506998295166962322792052067901249991059790172386421758536906421361877237109133881737549956001852273629653609206373168397847371498411623140479545716310285083096492946561428907773603095687376914137573724220084319536767372075167234021174327264670777570720566446538170861043049130199330474798573779635164887964619449295289058257309790409506277206668356944279880549619837512732746507601821215205334737892208085191762661708361357233342510069683104178207971860650279732577611571650724027365119908613767037379898866503275577438942275815661730769721836436801942195847681141757576578022594122936937628548376150173801371209444777267883907263765061893274494741092640586931989590585599696009720463567109558642594222507738113422810831610787854562083865526862249687755895674284009651707897439983645219402878969929676885522507382992454811316798119609584499945128301743956586455425349246733192769929221149864428842742821896234377773830714914385776080580848564273037171353764245306793786945790575233507643881521810656607927075157252883738499185157105260056188339108536221275688426153686799818073601708756736421701333242635306193463545436017385726038855255677458062131463820548899779437994865925280732477127701533566724305128745511130522707692273866215106526147981396130120548259553984982903822165854000278718281794527593457598160626825669353591091738797025317587895850786425123816902286844088555046233861768093743871255003062767791144604271750236904827388605349682200346806279793975282372351973107085666232473255481566912018466156539344860475403574057353273896497356594491899073616081176313352491857472402949142219105534669423028663739063083795795265229165823739002609976507409187334001330523431010303777850787520635165834627784483536836655902705583494796129835057391612394339024757396930505229513081104670913249882048315378942261322355663430981141830986684768102825773921550286827483833975719258734740115366467168262937015526822442127711052390917969319239127737977176880739315422468834962014009973227575932939177240864634892836464443538761811383414398882353435306237178360377394727092220679014913157494612352486498036806094484885719893841191968471524836899608147222418754317335373953374236949008176264368931636788534545428571396360327509922895712580324146305634287293186997117594565739683631036168351573519241152917458568654839747092069981588999971336036705125178322165870469415652062717397294188303672861697327759547489832700933761709103805515938607797518316479113151091832801275251593651573980488607939884858609930811934938012778967091084784084709431548945577055045503618218115460265023335986739962621190754572843333406546559236526779679009724022559037666277015717874530106783684597462424119414607400927025518165357449640803707635921820480703170780049503051527919804684148029262375914410938821175845474012230025871050989743405380196080967060017294461315943539319021552498639177030603251093959660382062356740244413794178842765240643899787215289854873908254194811268497400341380587702933160023497523314378325067403834683239029486296128917710704498770623085845558300725385819369995627494731655208956179446276477688274047751115761470499019482284323868027347074673862814752675333720121010716466861961600633771352137821138740585721215547739721693304401947166534830268285098055310036760417985335910839912135600946042118254828387406260805945116333374599933098540090956755312822504067646007341266354406248261660563576912527998130161574079259426864869950047247753327706499938464441139295589691465220429908122439062860004650357381269521702740825639216821773367320209158675045004788981687036460961518460048557414398817260973844721274644195450197409833559323176882955783064580208982952763154907355005465411111371947630436261732978590284651319161466674105516766350641193345758667137818109841564659296236576908362716072233814788508550638863177490787234919741119876798967463625454712604409541681977992207104276402515484331964773905581049610001647059895157852947412399191798519780608939567864719736389009852422340005442237631164031518642793802179526568429978142883874133213895982439395887701557990783944892067091706552034967699860541559021057651477157873786751371254730741444660334994239637877962711768362368962445967764401996978693027895704351674431509802289865012877454037415934073972426716050025587854988889409938420910016817387489835845628935275170791170549000543621962170674164294043278062798737866767302228520183704159213524224275962837503729973495914312511292396853190129753741756116296723084861743231763892988175402470391522806254684791030979628293430421339402288412931047594047418346083566834323249561364754257986254455449889635167136444593793573500702773176734884517488709966825074198104389915567709984887401788299074948442331678830180605973715188996429503241991398806477821402001041742011777478968839555108074211164804227507987793103151151108433831772887252558536680132319275233969078697421301592580852419159088376804536260897508342110444191172855632146461237202911674061466035739643190133274226735113831808685442753061156822006420507762762431630907633957468027315291779908101253549436125914719742388752386663993748525397978887930776928132087457027296121993908125462554625410900834305204038710838387424572264217675630290493017692951152885790854789541342729679084551526624977107434221537656995492169311974250035675588797196959360894440560279853228297459230057292902250191869049960515196346658738457662861655742683709262295490525587150988780191535985441716721357307006356974623664506999438595865304581695576681417427518863751672958285519470256814867521612134585393262425217446952550700769270083280535053695163837024874282620563452119086436094550878637455568841651474777446606868027320905274568175395157132037546217069826742926148475907106925055688718403630005305138681095753887480633463299948769553743481082454131098108373697430070751045263814615713736203505637412061154369839564311367318509717496343405832290723583401618290608774311658710160130421591917139023645897059027348156810722898671953025796837645639897187692251759331558679743273340773733043216755653910755754238916160702122717375920700563071368437478212135288989798668217762837433257253334518323039274761865403919208796565258928608193070403573964208098932108943220085199416761171774345273539788820266187445622820220531528314278483033868602799651751797558198833310256254382304160189423743539170386337835792103203778668218061890863264867419662008345377267213803004835349669601066224138642727436529253000537291773706116234865438736033357315122713930047525770309217990269105683369868147007004668074377131900900638769068942035418676510749733938247585986386289190118498516056762720635681836412579224498743828028996536186177766867781410290398847347627179023486383536719884181537764284357906836358790567005857439812134278486017342992731149852582942638130658497932171960271888398888136721030252937373068728428425274406768184950327932957470704537523032086408891882046920257811437470677421043931464527865896380704085307744144824078053943147968235436205409865242544613096095689729925320004693722765192645252347104386806162847442415026327290612571927257767631402242018562351489059030613122440819438963471259810672223080736248740374438823446428048391759971189069304948686931188157335894633373137830646307582206036072722165120394083173744460771272291089455309972771304131061415677302487550303033119745936782356969206929008684065517843550697445909796130120859134208252365383197216400257843865315526851804559506527621829780729270016262380753984574463178749321457176744284224049806304873363455955714192165559906931601168545680475785694458258146525410744756909421304151860787424364050507570011697845159928514363633141919856220392836363769807369642480231757448052955013733589796035987444259036369071724627520840312123803089261318802320710301404611955903967347874493221472762103942851915451503469923928686060878948272040131551785488924211858750326012076622758794866745010780619943166946023124667003664069456988033789419169279093056380077125569611138551110682307186263507451878130165915966571995616639269524013281937122686738399710231302371860614424028167500027852370132974274528005731412337710767305263002918854321849520377262517251966548985863027520198580555286556701741242478745313984411479456140361337235929100240288001695428252763700172605581740844534308051145690107092006853757454107498005622995679393703609421655852401268260862013989663997981826683814642688762945498686986956018374555872133246870517519561716040850360702192659349072702510994757252219108424455952078308514342748979583745614090611381368732186562478051997330989401100475707181898522937844381414345412750827098497919645792927457080235503643635350960125171771680565549982788366872030579533233548922735814390956051222929425451105974586156659899801588064005422943187694927076222111028476180826159644660270430972905492918095775775902696745924782434271968425210667370895391287926957103913170155241989566593796288840942869051952349190754939687460337433851086788683112974840774256142888024202545647075085740339539876746447064724122440508415745987774613169274280657938451080829334713697457317170780121504655607730879875787050244201825130662513284579379746266934267465917675447321287297992553229395654158286835862563929622701616958143610479646337016816903837463700255736494401395819022902590430291793301413198519600605393959301511803485506302148638173900592786574649377962839746005016600245619242505593516523938993857858329225917116476018331586739589226917986771992746564267707228044516574554501282171307485007367793445470248714883718847668824378185985568323003918292507466722212472339543814508124959205727385821638671741214554440720007746256677999930338858143839522468418674670609946505511749493126247475454114900899298880244751171439414717156204843166161483490190460011909296746825568516287760436851209221765372520306632610279260457121123463843089769100576076038205062694894518317469336812975700849465036278304450342429885580336356198454450541852394839890825148086679715953087237187374702952461752619649890592054696908404522519746654776340655367050839612952694377982971982255074008724675747179607375592988511922700401408992230997692507290824372529302536554584962933437019516944831600998169537472821753975089393183088183490256194526897726401106041349080453131450107139376971054634766542938733278874734965077889115704433899875968620677669411702353257219697006335598012767963217354057017373873456002788747446155575539188888190157937805544173152124711048525279597666087261897929914561575520979704048086756057475446942831227454025633219115710445542963152252304360826363084422103356833710034748286461973431203220274764724439322933802978839273166096657341966481397117329057631860775941914189828747832911366843302535292747752496479211019646490652178242802165844480119414837560870626468221705278855586660939730849211724889887478070552950041388669076368399430081887793480377554118045469519337436930740150043869156290274693614588174794570456637297627949440616093119931117418045204492835456146997128768235017514453738928383768007204168748006963953649250578693080932586432379583979185083667852687093943396098783481513142366452625415249275587481779906532561633208127186353644050491018131486487972806483608496665024892073569753621719047572055407974822696638443542621309943524325188309713530823407873141549480966574879196207042981321762437810817966000748303627805961686458583311024834331251029352663857765397147351005221181616567263513538413677555892138837484356137546166901506117537764963729764127572979618546006530588154337466463750246766187368286013593899774859661048870373212998988077189303455828424798632586508329716478813687836934043158699441584056073105170748608074090624232298342148364593754066689887990245296775038063088642462354000679205016940257668422673337487776234700738508610419471106994358045344557048916857268425464900093712562476105936696388997312784658674882443799144139951569466810839263252231819117286400745587634104562885751255056808152522939279259781486748917475452694776380447699595505060703040572307480234705742344672410312296534950506517011654313242852197490759223250396349180246543163466129180222569771408902123393287886041739410135263115203691114539200387574914109001217400800370764068065824627805087557204105425815704573154793095847220829190461794537539554705749258955349046238100816637319455023584810199222719291201617752024446686059009664014265572476843653318677493035220655801458913652142148842795655866270593388749187863939123109498561212629941292195705509821590474941459138611252665621879456917858641408418466291812312771701856076429841403475924859795364139295700295749539960004476524174118063609089107032993576012356745028948966724368311323482735638137007848180922045447496487869713639440714068381085375023790679254919907435453911187544169787977445880706127946791026105972674977850687549686191026642898726604155400035593706209614687774802119559012974434756190369015032298765074749842116594074948464211635836077421426796439831027568155546121057167915310722177793025457322874537292987499919495464444302147434944339915261997646175605004468761414451971378481762117897724143554673546702425075007347836422189788430240648952846314388163435075296533334782074398744784424394834378621580005295941201750169584499759566219531459463851706574494064454137708838532274753954622674721781641078597150626394829117502743733169123087794755840162452434673160765279230383361084033932278592304370696142336185151202016300375037106473392360159409348761413931578014737552099930571439690936141780868692008127299950126894063381545750494261804252487070552936951201209338500618267008961125574026292842893977981995365853346768901352513317505654478486211389757939533763847704378960005437463152679226126554035001329447959332038995044036912341075060895651264183332718963511651306511767120225793729061014842352467437854740469612582211063998326045158750712547546779293221601003968918351668673368303931362985329988728773133651400992007718115949585299647817508866067889568730412979681933386864036542998250248976083898727879968322479948612906215381195278117506575093500768127034638069985321345239607040850382203113837312467354408540035498055988976284821825502984175751019242138199529518355344031257843107666981982362890498595699397614720195040741534182884971636795557297511981157692899029453651754415265328609725311247060977431006428102157231991439287247182840939967413832675129759137019206039345242446281820941620536688358917458615199461028929758611633262539363485791650895497751347556108870430826578335339548720604361931381687421184175298180045024624013213889215413540631633023827514161565464533991219188665880282830367309947128978081654878897206258768190147486576432647455435864796675150505441931400783305815766575393391766014969017251101351930327641254379081724668999981078707432988286751606321054287292306846189654216257857556016125523403005801973294312555344214886520699809700430142983457517079053809234458243679438749162814834015294287829919084621132239087623502463789187701226754763087919475185324149114109125348773470452902228567697375702167027235152036832281449865303019336247358246400226530751917817862306131826734757455627191831385937038694232240607834158561737501481032037951001913262226859167520207583999928414258360755023703675143734725006108456521231782069026932327170717018071750076671070243875213008821349562114209666627925762947535365612231196303487297992396129561001441176843099144359806556684752273318377111148982516686052882431582966815773674293017505309619663515876755386412883686464016803290107523209836414539013618201231060000077579660767714453237449036664538190330356596405377484863770568919521475243606796432870265114198205871409962188495412759055289662717437163787015463118234995808051672638789869752501169705743325252330668811410230906371609653933829175424740572281318248528656220140842948358903054337526176866938862725299013743012988285332041492596472487084288708681215621556590555201187669920995349288575278695129349256205885299759459814735055255033151457349813024963566600571562129412882016229998481452915752880272745294336713461339895499251972614295467134110655087486873567899050526184186494670036261545565177529859007474346830220335306212633198282054810388329437727848015435298542340690991512207114081916532842175306286828263663561083432356662184583496584243511408252713418446704388546056408915331118311239118605398753178116762767613703658428481807313920056249047162328232991080660606647062640354285919007969734730188707532585654299212914106508310502492118115256100637422924329390473242858590436910997808736870161271565760875336252725630413794618685327159089484682802764387819688303469013986309935348904399396141313859646288438753454485451786146989483635930250233388861386605788253493820429754205348196605394372643477979135529870907535440975167142565491734186574028331056378689930376561815662351820475549941943497152154891214252064707975362904376212845403635654004264438858799154465265045884415022083481899808252376263783493919299087741863753731195023335535079509550198504429464600379207703264723165383716779763225510461508344705727864984310407538691955211902908981909550664375400366598915712966903738260586886220943158567621416946277003446146558875393709614541838367816532646717988704751624200276984105681049934797417474275556623834482187239492559872754048081790288697917808211307826673882271756995368158100683494417701411035314110709827967960457421557347541677372931318357429009881725107070010270568161059092561977387252629549670643826974876315270996332315375428978021419584628370235855228029775802140619125039390009549720689692293515487099579621681865172941430754302365100714102755589431262349994526217425183407314951822665413670711205435950477052984055164144082317544604009414859322767183356104103195233484846079523646610699869631765885028193317090927754380975029691275459282902871827186867656056560103883625974768993319181508684635102020444319141590772364683025539168088754691377426723321399471288497759795397734792296789362193099251120066301156617390657573683767636593718927547114223684991202147557197223055741005725452572453855565056864605371122682267950192963103945844174558075486521223889346737778117487711085358563651048040070235138414083943449149587336317033745247442076903104754965894028070652040490102610180630714409508901183652829100104263112612172301607303914278299826054825937550748719707894559086334217056537691155991337169641525291258655071927483459371130756268223314419307505975519400673536365037293550076798042151214351972532560562264394541411316747298778368714099675896563070199755269560824628014504911991240712185748053706939640389212346469787122550669606965161506813006062941074007553804707570130916173507733475564877254736912252150981350331929933833438210788554383323618735690716080575544558098436700574350850753199409765965336872104349332228061883499200482787381125275030492088881748464755528319016539600630466502915620890532294731999667891042999177453412876891030909976718814803093271626987556123657206043315964964934205359309749955463534159984382386204942506939320142666378368948120219976141775579860830589838293900673951455175735499971707538924803152941090118514926140875944737211593932892637050755869583299181008620840410286489923463260345642370424824257063909129380801704659653630724144928183755337559047948623350633663637588656105890660335316291117659790023653012172857536620189010164981597772472905475600226707862683387773011170094318514035776219454816762064375319687841485184258934481405295839963849702756153959762126359785945669110637060133227953341910530379540425978304137667516749768787465299649178342337562642700074547548194947135986680691566664585329149030823205989028120587812681576743093072101761358226375631899928879732309320101492321263732671517964955489689247766118431545671617574939384016165229078440894756423150876687054665275793238805549126661693777598953925561080406938118224800051350809372046686020039057565500914116539448199594173218719034097188255907262958428371977008581794185070102392475998828961357377875667564358854963425611467807833405187109513125759999318051909219022665615695039282619479016017023122433756705754431260654464625008686622748043866744194420153942603811557827540000404020712181901315746401093427568733574833610146940368545125644320347075284483893175456176463157220928781027991202902189223828247035075695463383094194477974691308829245720502922062498555235510565416430457629886417680620174113480892342272757088347454320119807266068956925882293270245447753472176552839080617430025428281598287674713598313924867571775453184684460838048150815663541946256581329635955059482907633010681564496651788032837772344264957375724762093975759557930638671004777439340064983405507236218119894844821271727778513899568490447627008613757312697815775722954647603359273556343018515256595829201382091502262008800317497285389982150390653559337574128282835302291042484991010409600808129227371345158145829596251438171754663416763065800124676193027375759397496828271609649437231135575629078101961242402981117679826186714048395466852385580727594056093297757631240555537304479929325649327981148318332021373111562324040925444193621712935732155195558269307036207577869391030956262579288494465718175291633610508440138556367920711571888579885134962980427561385500828175786695303908698962080290303553800625563214036681779081802116484387794827851293781711519531292060253499757939787617546408001885491126509477377940338081385165821773654742122319328208269808040149053483955039647580389278202924723734827169643746781354156230792934930724033675169925218892240566961469968147387885186075813142897635379762432426981910159665618186293922048809589153523367722568736438466816976741773574492402758277324427185217245824903794440288306738445640018536560746541756053710825468179256936469644180207220767583795015297467508384135231135616254995291763514168838458188793842769207700363308166744134057171504307675844455055708620196218750902138849321558849314636118516681921933331068710415721922258451362322199002670758583802223487321575797119113968268038488404028145926959232839596418866267961493051598203711862831094507586197691335579388158951141532725042249535888645052952518856976647677540641989646125632782259701702333775875585208862221826002853592814463086109070674171612612300225306229432694397803268357300881624868449638758806183381290631720666982539273397400494758569587351393454769511348187322641752631190577688592198023737589209352298817249598232180205141646542331746026771047957385695174672602807096815250437335898205504740075908030133017558152271695309675197201612009205662308775428710696458634713742806675167831937351325652214759183833173672308119816534223980262474376558947675692163436877669156494799894490895333548260863798232537592949166726899416749983477046990214640899683758249505829081453314220062263702658890856758926305062177275935045902749909993279197623786666529191863955876879356638777647427669516078960839316235252927832503641759455846780246181598805142926914406989652471948193396323136854634186509092841382717252169538362006323007595921099620624942506081118148675129816086548637849168389142024407461253734991180744446800456578072347675962101130684460779794221320441751848161601019084311857783736923028533939927561111606255009383801593115759711135907852162560485386914323812245904299772946964322273715189525802973366045356007075343804126696707598586791436932809218304113925179378607725904330105369386056453122825753943173722335852211681543044363575998497427720836342278796178301536250280185857848442597198671328342485127694810821482898998745431722097760079240360832619873253615859560141938413651762588232316649713661871498820913042815510162243911604524967601338425654078620540396847598413729509315814877737124018717977838047898994943654297767325701570538126376027852227469724678742413007936423284978184783841870950009202723276546498176971856311594683012099715472760373531735570252640974294862538148140078594209375626383946867371632446500669475670531599472687811256177604046006407444558074290199970126210536944280714092216615182130793486989728370011952930810736667285487976058578714822353168796747873575266193854236240007139113056755503388529014237718541648922941556716384588760661411106333383120411085276458284026102555584547225937596187234636430993963801234448925565298982720297607900367843915104186874958244295462621261555251986745094446529022196496329554000070385210563219676582476088422650733125362054626026868452266096888043838047437262323316166601591279368819959405025719999329176760973393102710012595360946943796638596808326643193164965849633977291944145183731667573688536451820230237610814826377065301139112891369134624913279126032535345919916323452775814247666027954795407043305095730576118571051219829120944316533594324084681380748875387297085375441682806609884935066699637289794431656792761268763670660592266495503521043083435714033518387756174209630866622504815251137848588257002504051583867613183616450763591975664564712150619898520627461072077885340900897413337888452905606432467837237844238176141624539607897311433337060960525973019965093743954562466866281243275277881785764509786865491389233961761545393872016099547277316887599733216771184419958948486142610389151875753635313900844721671593136105657616905523068822701639006046465423719340430985082507735015485199317471835737304491506949757248007908426976173598291438309313898554875494232274494916279219117441681762258515329230906270288626273271727137367472761888536386212322152156598140143461744208641223824870184217621137984800128918461150291340723510400996827619816355155884962593470228424529656446314581220877964148139740521318982878542842696578224348921862124576203402142291873824879831283655208388110223504587132896511975297239395600114252964021960676967957581479762135979993141849812041111542822165132392559070987481632337101916113979198131133436287560851913682356267622377581119520159283010980245617011022257367211180753783939970561978347858998010395864273294684313310176230946879646342978777226821944480569992455368546016753353994086181176225929427764715341240000276901027762441176192399224871721293219882821321458155833081032767665682157622328610235788886649557570655197671427625309504205762010616009270364200234045097208356485771816682415119269448506815186293519056117128036592676267821369850750877498220731933486197900725897758266414280631975955986314537097065477664768007258785006762730994010878945547097206380389483693036970026974582925418893568276976759232867767101698035097327693607628272883121039870404729507335731757223271391288682308969775881257914549379342985359447300616559315055976290245069290180294939653193727641307597943503018619518284940068279455659277338106214901644988342847501763053040835721432245892652000275214846886135202683202012356504519019118723235591670372329790345978755067631946927721571147182379966807463907229451229908534653261746797338216839409164611176212107568264733826176324614878022120885461094160724950146164718017557452315757256491655201696462797061834737046196119470719763331661127537770751989446486891611246406779934062221965068659137053103623391875928196574161078398298797634513864770740645142244930292524076236866433594986611393309682004315015611717440284570589293425048899776352302803590243885579715131545883284619046631488813005446165010619163392539632499566891885581207683296763613750231954026330963046940512479868495658727645287697099156573617747339190531248684494625872269120957637502070721707162187967918776070558048101519229507432633782002791831155368264376788757991198116796887376389631778145299544256657730927567143291248470230227864752245335402514079094918254625352910143935228966763964824298455993425575591777585758242352338973747484463340047259313572926244839848777017654813188066977640061502288930961065688203005792824776845650575916401812945586968803264581170511288126050608222011029476418137886762347888324825282503946688656047914724349593624085753393149412855950658025762800089063568814764292320951921640031880972999198025467032863218567448770476679740080524449412301925770616860793333772617643667952372310225603045607349457206356031317070375962721464901942508795425966836567349678477964017862776447500941708392596517921137188850269605808592871546564185389115112448280957513693327438297878402591292764542527015238018394282776423077865998007149900112718626725697797493558585882762078441921011501227555747646177976386270585270654598893783329649518770115264414216448752086329424108541931861114096827628512901476473784802343912480472466682815277274311548964625567080291229410470366544127961945872451600591100008959764893476482685734682460496951136801911314321302307246634163734250901921361990587934861030116849136703127649515932112231432891632315514863903892049073046753790603338481462237904763363720223176833541143297333376501141893942473793198755133365951923692060556418153629274571724953820445747470974338111998252069390559765125739070777436069154483495464543945550651751304659388351630848247463410990519949623679710358992713567652201097850561624995231890502155814684467724636155469783168324827569631357175583147078970917287783371876530485198954598438285966997768692505943828099531163809644381799776035011308707394485192851625490589031765410872332963148825592074274014344023881471254559590700119366547096738912587270273568527307775193968867655203870643053734199636785940852157897724435609553832097371222349936362340929899012531960339947214295776568747514768554321732167127462276803323300056382327072275452949421725751941251053916721864335859445349765726876922082387331430039261354663005729636733155649097959804899247266938645643746202249683380000505577658898268566769671142801876726217786557664915770035246110093279468256367716153962437927712948381379723476594729096852205312331820157895844795748404966542625020395674682354733532589667464821188622077302441641766039640057439589934451240708100231076667283429860057554936374749864908555630488045734980897457849263197661775144735958577735630772546785298233325468702009571974896190023249744687725350453317273092423088905776628830620727285549856746790484861180492665365738111300318254729987787422632245052354172183013256341795766343964983867938294564119675227721807970795055644450838043578920044101599100871056208654575358619881337664754425521273028942416530758030330807963603979606664242815793244860528724956074874090361813640624302076651765226239558683682892096274924609118894291902212698768197461064344788994633549049367584304851434998766606460954496732887730015221544029568123453448946932592349798557860792193479042487386442067922841925137667273004963905388381579374791162995933734710442586573721918359134231189246812151005641755378356731275276687720339420845773309322939337741474629120414336423758453227800104181991754841646907988966638034903140766942085797512767023436973090178204120231201633237068160980961937623835316642814678085660722089493781407670585082658256120641566908039133014503787374700861916342078689658413132733633143633823725986924785670176710819887206149431011600932643020534519436686730988893658736185274628304684865086589316628441742815813767243991205834318479331438251361257686530937757477371966080824138797890956863192427878213653414535171517673201241563214557726125717115423757523043561118558919663144423086936670511991381534032262106215943974276747120765465231765198966424475262047151909698917445511843743312560411206000481062834177449518999061022767513412644534006534857615800633640466882739220226192144757111594145475705652435388670821749955628890897676016770823973102051948388718354983432880888607110361769033231078137963055727389811291277038682799321676775904053146896325986391942915207644121837405335668958199426520915206072234787011150784945992637942582767873810045609373403738470052604324004765151033974426291589785942161902765461243710073141533133956067017679209923570558935555864373324662393682733813766609885613860817560855257518818229823656205930398480268476806892564831572720381963427502449053813871227283653813817411890381862937066879655274018351601106777215768144274876318669385166526891909669324124145765251754771386167907074687690502863083641493189655956235427682786245515875993374048688880593635094764046404226690237394346938131980945539830596379527850040281880176837151896873158310682541473547504832093766879887868201624977207965462296599869709286344427118784043263768448465824167244160379004862906335227396263264368969521863745855477379277081083209980065603785497861797685281682380184437377739659675829132206012553928697061311830757497364982101473139995137801195836304657876864586218819441497849370098402756006854980263357350276903501334915999410634061547078733290603707231161768724034187055078837900089817694702597408126366340233205234759494628647720279625211368644837784212775477688089060751025530145464807254596276113743167930832271444495182515532025306889930585319483180619097628176898016677230361216606781369517176487597906417672078274900447456671143903026184811709882218889166496393769086851319346911259894986247734192221039293185653734628244718989578758679611281511099659370100378346037691669908366054995393142099942349260195172005600349859404096353991054727739469799041357870226320692025476925498416572677427946396129743913685217948503406180772850987428122769011413681640284675288754276648347769317285451238985915716062110621038611504145324978791301213806889378088785741135694023601086117274749077694686345867962597361001991170298696396753605633035859850590240448570523144308227985585804210667606978476956685856139920532524870355545853701010773500886495196354119145399547557065526277584357657458461258415769663107474953677019045088460451789610356300964498325679803052637110090348336832738009258557839639769787697875745504097761666099027954291885893089179509868123115630538921168142337958131082941913018538766498376988432666048909688018607869899694639519523554122354444951091490427932659316891653845246476121029773238769904949102697206319731445768722301888645472310352033608803273451892514604283782723573738137990445139647700614587724157800991829452769114892564495544578208112585497462991227232646490397507964230600261945260977018123860389417285256976447427429289378164410225978278080809381188489828665645075046990355036823640457770202878619264007846083106256689672105151078759980626053310210012235808990878645255277392745448389494247703609773097681032881810483775584905357543698547824872097962396028564633703672244472560265313928132432277046027749446017801180064353804656177241828844153793279733031656426254964457524785225151403332921802994770536366892004502808793014583626559274530369320858199236858240582449286797047004892934103674324968078717706678052871557152697953873176161393561325930030985187458526074604280714530295334442483635278630915145877071116770338434981090347138086879895128909270471036033367710778140834844624686061472549883654767143507770889716501445276993860022792288731246161188868651454875712458758319486681960713512978097342890093482997709609161372171840805688912848320307378043990298011977674459526087245017878848275822031416079664684533877104013730036339352239132617464228397146920127293410803224014862978907413563620435519583015124060878235771179905459937055983399639642725428884443219350837396044412680349885498678014241201398479946947426725137712457504328416115283189343362578255557624860446989208108295158121308074724848831737971440657552370929677132046872292297505739043255293584811980266329093403989497358092902735650265209686282787669265416618779771436514649996335189185919828112371770580851290889147989502296980227753697818326436580306594608092400807715176890723258414412971928242472038004865907624832984326661253026851033499026576578579963305728578158077164481506534147291034011865107527575914621385957555798465331746524212479703562965764849716996877845984771714328136415062658803237353726720510020391872086548894049163339238448057175638872509301231379069730347718464028369489145321874796890368908009191076964875226793196883973083136328551644284854543895511923516277196705524166101161919395623212154044745884493177603326458648332699995327613115608198673031798777096885772047320697361110696873523008666132573282355451328892707358403815808959340954004776686337388220989994777721588872525139289471025761158113058137307925695089111060363374714300481807454470712358569670187616304477220248592810294124481653304300197678125184887324291465465374765308407856299090453737847639163410697134772394831641494317725925735989877414104258525650646992257533386670229379992990248338449796361658260177037724760240428543525146892938266773788401005040778149801065156552974765023025304818482902235166349070894477259876811196121510650807088452894029830319134369478860719723091087906545455929044269621024126508962080772602377548637921900582213754179945136773755029344213947834384540882496830055969807227427147523461863847727496330037201105848844426282284718356695105783641807090871181197634134679230482799919294233444343374577282657118519582758172429556975365547653558571537158788673155823731791203581943368590246116895493584548772943810218209805645667115227811115286631487979122410467150345412263591740231050726757815651690794975357730456954661023435063517892628200738767157841844853233126474816964104500932952639391072551402638097234577310742145266346791248799219504249506398350575631670024222097888845014235493326447708542073295642006479773299045672828827308973634240163559815127165585708760263193476035747971136732284425449546141241031441127733136532959073184466267811106274019900800574085133602171132919101914817238581103597632336215944590686077346885817458272106636078324721105539882285311162308307722493207187603142835549723999909543867479119041773520640958163503069215365395255939829108364440577894768655906426959078555889278014811531296052829739637736783052239656879793291341582956231550105619750057478825843506838948027201316800544924176554134155367277372967818672262975219357296762159745729299827845769995818570124704106527552347093167602108874620189498773830999056268035473239191743880352852394519685590226299123405562366816842026140659460166142689816364897739632267056714545276155208403199775521811222283069464028275458309078800952553826700117480894400858244277402344840901443930995076045874992960929194486787284244655294260355040153663048572784575067890334206375774148565180260586465453504923154636606721495597923199612838925660686245382196621379095614180948196268027742348373704864453909857960411713107012433147227706943816242616077917473589306040322161173190236290108177432414634682390910147478453481264736939378034508669020117854092269189072113908427362640084022560952795774436622268780363107499295189633493724780784246207738545646297469856781877946413327755959495919858741917745668447830186688758259850633580953047305926279587882662813566957418566351836629677963353661625690006577468834528478932612307942533321209343130986170013940224515939863015330027588574482615552011632165583054774701109024799131744318609478889442471917656585739383361529389164631578777520692609899223778427210762267748754713629677265283382604580315488184291834579056205585231384674868809874757418299514360895275711489677499698465913305515718249017264063469473831622484570295688213478321860050219757949327957537140194691987775010339192150346011748954935005764831184800383210704551000319729946062669081703284652326380242248581747751035422985108136931116248203781568240267054026506092762957413003945906744527919799664729933275003238777528534455218203096952772541183313194929837454299674345083494569207945583308957219416697425544682533864775365610665141619474027323306891805548871442397014824881413024333221160282289288031591327546040639314477754565045102470784782700310083062398337903505920853878236743848746907159107166138352709755851584349132177550350122255865928574296051076914689252902235938279127110071779878737897902060104053792712655426027857775623538506654446667038666314508709916557153712069207844262872580323455856531437854325903901816838600537757275496579257260690379957598881347306888807474475471119322401485057132580064528148510649450621787971777583665367581241855617818186509256591508967858838537346006935149766940200854142411958615773819902618019775995755581062254836164041062076309017585607457388473264507133385756546041732533711302801378940793857937760643399533627809231210839700233028364694233862029910331376974507251928193044810605361488981272372755377614536451517984386997375729723447961754122638543250152317808397255726878502256871216813534253902834781776201919154203432425934609133113642510731939943370384323886137588056827156164854936538023785090393483367763224822731820740996845329664200662680372687820264867057829851192845030221581505303564175689377542106377641387943008169086192587428698754675509234944739615670759250191683691129303774804955199097039823363826776536489135058430399648195723621157407725768233699070237446393542927020534604480383102314448114591379537766847492391572943127807412044060803097587296697310718198441066933408260496984151577165929551948655816477678675779423393689882775900357894212761604704734211672187920488769423319638405449947511159325479617623776893849853824019647708185209486485592422877324966873003010246261044667690852545609760525276754260972217769758042315321576735329075348153641113756403344937644773157010744177623582318651700354720537594043178277704599133598339181781909632989815139125754319138983372544052815081545703102289680299577227508331211659777177042219982689658324694122451128329498987297002528869278200885612715994977513562152414462120118572607772152524697229091514046407531921992817342803276185996457025802115601746209063589075186175753000042491977736720092148567640159697615970405736942590356827057621726980826125845805961670618866332840263385648286777442610385930749007326146476834590415787979304998205059043213002388639330297873873619627553321859580127775662216325846640775464765793633808544964957096554919468161205115569439108079681353938460597500671795077766310256122479527199604657086253843127219194520031050931912369479545856122379295846744832208038385192777766315323828450706222355416355752016048458595787727964356640792897731517789254324601637419516533248547778866212599811797246357628056178491675839232577223668439231390463625063640230283172300137855383978440577799603568332684279926654616067211095960638834242950430023363651087339459142466082468786791422410972599778055121353439193233952088570015903804469826631106954585363846429954740680406796096334008965964761233507781118154718221565202593800562590621502729012224260404147261584034278162605459873385724563714777921604777824827443344111296731237676119862978669863080241795004730990548680786839290099752578360568423252734512778349388464642611743784590176544695409651594708729976507112762666117578696019032897428626383480646025837784518365195914728710254160903417107626677581504651694625449579938289961786666098572735726068550669586977850375723054995572090626217139470396850395236312944870874152476422506065216697079552830412810868604973778692295365924315417259939327074860795667414593870684123275004166908602576148758879876235936734754629307787459683470578182433923747399924993182137763038375299038515104921386268559486228289802909860409840116677885073222899953224056223484778426908827773333002520957071638789137572836111316150828240586774806128378778909976588122450097507098479143992524014162240532859851784060267753381922826784952788667245689333759457790160731956862168560635120350246309928374185078076042047738430532548387635924125575316364522931635117877916522282328964448319102692474163633999280535309366592617986442495494884617481328995681373139483095949779295811247355548837387112521903370051546804023677832615442406566906224043635791995891916187319853048287793006197422232098836693647084018123214174762767322394733060040517262859354854118824613991225459936046277948969714134165203093502573559361261145139647646649021062754457374977144715508058882686031359661575978779588808251340841751240842314218875957026396166667684217885015116650295955978618415960547920178554811647796654185831131412091278284596904448081819980631438903805220749709996445926804268473445415578103344932077975950156320196305397621418073990862708480643032178002476090143977156423120072263543493273799157315518779859110065247277485199710198477976655689449196716486168670790375717066483562808032596486767340458420567799865018193702426952536481695581459090936590780768681243863993425655353304650567850655486555712821183878001739659983633576780308871040572972063848194704823330793522090608439862801838670895297949455903398039780175056823449353678374441469885388804528100813606255832951931121193475177628452066519222252738669692637802002566560571379874677472263219110395446393846121845585775692692112744696565407157141418197949229614478036403902152393652171319701682379101625390563079628676903703669998720101055197275883904902666193971648780434811497423911738704227142950498039184409203535350564648264709088316271727043914121423842292160092717805291236006701029524904826889528581360849432035380413569645159309243382773010698290740036378191072142278060109190692418721602775558045932649015215059414233531352862778826912685057008770944176708211117803391780761323107788454769589235628606267690636811548086194488650598563498242078522482102735571711682860437427808793001905324214732698076035933663485592468191202394714809212332841860500625853791085553950069351432578097214182173424169658289168710477383110597050998134940969399553351724534645472530194525002197042367256781033941992595913903004372603897653397233310189273199803667869665461398075380015007499405896396569604447811463410488891018772540175813648299270189893187435147571951190164326245651420062310747654521955306220978124090762265639677031822328595936090281625230627976852910671388077127464190257056024461237830789026485781348600649008785877722458281102434493870661477445356793732071453340808324961036860031648711604557638527814964000928899056590388078720153816868605784536026239537615843658764131568954201845166804253112509061278158057586051851261261263727019604236219016699129075528914842550002031663943368032040571141160423757980781635856595631247499469569849513586761717161486134211876492199857402360452581553140087609299196474462887817133829073216882269131573555149018421727816778521303836603763561290076854453156388109058718069408177878181907895745143359593839035139959232215815478747867262033422730377952548101343348870112698825270694572781997044292547385863958940316252418176801033883738925978285637951334907225664398213604080607695122990547820794220774558697799330344439044199973576079750280203525292863656227166375301043481541454332706533916578210995946735871134933382166989485670557380782200217312093915300782652612868451424290726599905709582548782260430354523299996515557814617689528577805366548948592631729117062620382979801608412159318818869629027823828715797871793688490402576691969478911970166423079447116300479691660296336654116567141292665838641678247655842583466265066904169951079819904156389709616578360678034580385887549043983668110794625922809484782539890034735745765722127802050766361242474530272832779197536870946026921102641285052046477151131959097826759784752009540677372174118439959013507272930599636253552751836512584260472280813050170163645829887978275296387473523944228984041274230766926575389191293792702273587158906780074048592164839630908392340398782884009512873222983061853071494441245528974454318958561187400018095275209628513711725684572621954387877829859256273722400118928592109735917744530909913760185710513365526899609798279669130166471364566970732378307081484653493878889810099483298222045461002017204361275120315381165829910151186943049114475937441511783199214827769884667239091980921508515824456105200887185460698730137255363463299564455463872644523269557832782438168955311089653134069842041218638500690537990290112965560297304964605482196018497714995871601678330186321879285776555148260986889146641786743554863988576721640798099307846447004158925298121200807754783469404448690228534770939508682132340733873815211764044476048345552930529995893020716502131845576085167835378241629071597940866179526322650908706250000978529459880341211082557760720141887727490710128389363278364373447553276610994629820292478457279595995866906046000101825538486745656582757507158587296867716751783711487265212206589305147029816991145935759706240523820427201676090897193644031047142701890112291972787838328160211355975632554869999224338850451985828262910381822612265599259159708291978623319316688106297578392541068411710862598703071440860838890816173401839452178676169102178400070572151153318183463981090485784050598419080653798403931967652618254901449628263813136868301905372776290221408228253205031575814491107841521496934008005917184288674742328188920822109870751009609422271796061186875231086513054879407303247578425855158572712956851667115026585753721524970207356655428748048188381689438092947193924970783426911981784362104713083095702791440448875294465222880916426932212089143735326343470189414186549875808544389783757844427611160482194498573399194641634510588275964150749708686870653330876746855170863672200413355069089878452270336380872483247736238427671272998279000472375033656913596485058948711797177358953752351727045329784688089768706037171689381311492611799076386817572277825030379948105309971413321067911176939082497857597847501734734327486335668431549974255543428798138728885884082866555063031169230342624006519246182085129478480513841094383383099433732356118408341561095254744542667874415394527438085478157481718055429230172577784908254215514552311689815984157630331041024867859344513956337205688588906905711908399969799521334483957850228759228397786569316970545027552498603759381380065895257056548715399259424999717317167976251830780778511800651730515295633826327932127180626959480634164969102111602364643235890477243477665172504370188262785211584376442266662047512782523518870217898027267280277118227731521030358726420824528988433168315791667853649925682161144990342466951532463913570478076852689899848932052533721012467448559451168698251650863178545065590233506089461332596475857404743071645102198896466685765093083300456818727572416807670592160435785554681009292559395648953329502797156721892027325708150627709071738710313238424960099196766657262124887856713499205697235869332407381117705573234609021579847223452138277157958034722054025896644153905341213778574470050890338715383493907836511458079202721014790629798992357303403249969762406078897321843108824493785808266190802622049990112859749295562772174646114689939294010594942097338175943828780250444099687534017859903886017717012459122767688467571523696552122005772424503653973769690285178582720108433598339845445678608178406257490431917087743824104031867141420417203681142989503677256546071050128601831884330590267041786135914468999688471783347040829146812415474309300998153842585056327604739087689049279322492409534991907862341621154460821389836454362734525542137157891521320603765643461287733464232652794907883819238644475578637705950091194441422576047487273346424607959246298170464153460651330840957147648715521286086578470735786429551768127582320953381637314429047417984026893595113836233619036522193686948953929298610560654350577865970271551124260864308592728205732038245286337536004053715977663220991349122262298215524644134152945678665515770151918986924072986258052706984831289548079625435319741712858425766114028200953496918021677875786709064096388938910484504664086575037294052210411280009547319660046500439442168485942209014452429272227868558490593663824402773328362645030305335399309698777034309071233257624941496016107924287316685263884578692751267060300570764109526142989664881812039606387340849855500941732198779667532749962011869772569041787044690206247765655350656642375914691733307274891543405830080707221480983167748193021736845370021228647871915199448086439186071365067385266280290156868007386584826956762542105298641165933869248253833787875278721349222969889549770334204786174098071621018441516177221481911004373337116936743087732669730859901037787319739779496102842916186841275756991398649211424787814353108830701287103774766452424063043283708377317874525611944730557552379109846177353129064424104470894516690488069509146073182689449278788849309395000978759507022903534353921332558947652503280710528542412429468783066310827995140399264853819433461802956014787631124328564846965317170173912538789746660971453942277274101144239387958959878910545664104268147891167877268572803599678303987097866634444047449502378053749408916979173853720974707345273979460572492759082478789278258335068256908378083545693636681739559150054891171229458934250193970208963987204233608131092995787927818850402771287385744354705819714490571304159192507557151185687124513861708461376219948138815550827880938848375691452590235639700631112601221180043703847770706721578829144725047038571195085880934755063778814838293531777538088558941174192632937495430008507222483922287543944226262695981911896956305252790993788246294615360936163549447879175037771374159070623175967245583685325998421558810316256244427655499025327883750176313629431277960119164305097169595321129920452717744965463360265153656582884193638793377535522178840007523306249938917088603055134982454203328601498822518924449789713654388787607325839686941239838808788520433462661172204379981330742351367849908458648166662862011101678772854932272589731796290083893809377886836886224309281603626918073213564653715350504886916477877918584277379081886131475435737043839641610878876684544778605185698836435455394146744883622569075822976566805177777484874297315217407172224089962520788827134463802893843314525169836380731179921467836533342174788805977284261602035843082892445143907954877889419205994670310937677692734600115726354786533037870508825586261691695475273604262765242628038247711178902903565310920613755010415351635002947736028030426515606870445034565865327374888313887136360128083391789131268504056973058262367506066185397615704174217427594094047776629585609930464445369693571312353313907892184473101670285366894180350236163261932678725773121497249824508730303420476258522565871384417192798678934813496990033682366359258820601075142130599354051182398221393595842421288680155694960131634265883922789490351702963854931431202685751720924341677167595367385459589156304151543408885004160670533466540828137895070083289776148824969628924016042114161510361797779321029713476265799794021546997803877847940159881678960852142135353041497943485318919528301157500655585264236187716442360830789734582505232932436402643759789724591800563290872305076297036484355086967621331082877017716349377640015740770619290997731183271570537898720920536540297077678672665327793308599658001092217362389041358427951933508882214543651911343401434278998094289321478884830738725770497425332464660948353516657817670744653783648028470969261013186450293122790096165994373555820292882023445072827713813735310873868156668468058416553952406315115736792154911263247901775012652980708686532078718046128679242880775557065292782594194300758842780120959101663775041401431479024565160939204213995507274987872445710941355550450157228970947059287154785784237549555530688277162786790306818246476471999729800367332877207475226535910397549640886425476524143137886190662271392033748303557904538284344476445982436340653278136319578083438991840207295633122742404063291136976226856540001062389879056047816686297777840312794899917073967230675221629509652878963150378284676791610967455848873593475491790608669196172246037943326536717532667964275759439960499766806612040016533028504949972860704275425093727907077385863700415441026059524493707585003637841381860779567606680646172342950075239776514594329489671979080018394508535071152508262845453452737577969122483337192342761582030801462801767562825024071460250971790960563093176724593076048688248790053847158052075074482030526496689819994025157949423211590278410432547910258353371777888992395174636657432613728518110052927573466418481851815699443404088180376875351974066379116304783372844055818192994312492820699574561423826653050981344664300969883579889993336482496472266767791286609483821820069176447799515410064831495092340231329855502076012976597654825143221427726580666575577913824521143511835733723773049243714259570295855158711563888077995670992404167839450785418474597908981579148041308296754681520346603969878439383081839237477162789771382844434051340951168427734092176907252476791531089224446647891168794325132220073651534562311855013874215233544503089388539861014611069074891095667916359662948150468546756229289415108923729431931956149182318256112906025836428781721949291753453882352779179936285889636367951806699435539473796067883863943299218278556841255867799549795461330287862146465157791813991659140284587348702705261069817062568063586601281644979724666816416196987988677368474709635196347919967576772411719388989116184101675724906528123016396816931500308252014897457973889001526824023777983079209724004631085064997410591209501570775841414891805283246730618351409517491370788512597534824769265004792123685462358436015970729618280443091680263700578592151137220121658572233654137444476594139549643955317922325161609658018099208779083525790375772675062232251858830607569323189563374733180715366869988498638679239143703937913796902175096258692842571691290542002081554697777269088469155248117449993657072604850439792450809189432853044749398963006031851877274582105246557741081225485874613984102455231546972860561599007925491973013387453043160232464499265125017042598959818255652388758779542910909672190883553577724986861379266615280495876215441732619304117924969971423648039456363099307208351692249539620200838815119183724445792722752636688920992957667709566738351889661959616053753500860232336482872126727945718259271787177324847928309582827357398194107946656428415373520978922889002103731720275866429011838350240103826226941855451779294623600553905336844479903780231493500910433515559836118650126049569602591345769365876222655770632075793018025910297097449295178885420211929716912663104142091401078642523861320813476345472977531744085673227931103225460739301677418956020272992031624797537686278078459710521326857264537362422553192509518617187679320134511243376299053555461959175254804303890441737617913169627434487853115501952536997807793447126384793324889934358191719567296122165205346223085534104546175351602853035317060140881213637333458637474490077934128683413621307466431499196264587662383247945685549526493664650173730252699119087348893838082204903179353999050562754439889044634722325658585987911886688740806970103202682039916459653939827631397675758675793663066119124852892485699495545274758259583805926698056690931527911877302059789706313787089338832207097937508976733530085556152945784936406639124522960126695960096262492362354350067173565750932462110097876379388785940003781112255481862865919130265466121607498035325602344356367631241181589646973856150829519318793900657154126306228994298631809447088299969778236008373193275931245373029308031970839167921123822037757940938691282057040125772444861579782897032372098243141995219135693399070137648657237940901897310267731479416477049154312463353149231164982846119122320443297987988654550488550281722412719641296214255244081433794283318483554853164891565559472845494159518329931788517978572333349821971674522093982279470389483093877943006888095009500176018651075682619018212259879110673576574102371886627246993510757585531487585060688979442653011018387189835211172154353512759382643296902223394938045976378558090731716349568750327089865704794550916388205248079423522275356870825602603182812925772700379918530126352379901061942595703521979786947946603793409090768169039374240329422244856490624292406904135555797817628099397846780875087378892721735079475415721686106252435312971752870170021713892652686261966868712382220018081998105567112872178866928665794814086857307314203026029417580061475433969961445419578017347130745325184665024873918663122659126015667949023637862665201617416091315672128370430238318580118360359563761144021963419885177735871538027980839279503962306959289445028812707711326597922053836475249006386505384673526547127960139270574253357239928439795125668211900759207612282727238608562138276534993392172288313289294444554185591185233251318300351279137952792520760388229329076831775728434767105684327997447620079687854596090230370601547443724261146739763779536141025089181934278782304188311556795804541243119210344135149026909550179999604207232260994274936196795421259445847015799426738408269168070342003733428173588242204803457761918055384418670610927864754468717955109042765649096133678966932061865099048116796598605503404920596174158403183736624449878891035047061679565000925499423394566216562460486362752367571958462127097101035867837376285945519035694807841844204611795764274326860787480844054251871227322220026214347989542952826749324038150098184804657007841619183863497958257477692646056917675531836754822789203318027266531093127116436793381962280095954133047870684275861579597839815966786353122126491074162834036375848986732387826613769035930136232429615603116634579503348069796060414680959998514167331564166366106381359333702910558095186100259659693358538133702667209303857425747961216786429063642546277737124516142500896386538595275801322289186537906079328441153123957194433305971179621674626649023894326671796113079458231044119190079783881715223000670094400240063875922694362285108398796390825228755833967504535432742412656453948010664801879337026477967864356301541959285025624393698024447964070041489810128503847612557665321967998949975116516655256803543642604731499806941576711495717908706179659144799725227147952932796307353587611207582906805645927075287717611731266294567603663357133534836225796674923160908849973395000823908022708340184421860239715622689469759011211164176352819617880020135508987967606998035550395507696017523557173491367658050366348098917662374727779443889209867951693893615953250879681576104264980771878858319166602587545585580207124960203569014360241160676509441751163995525117604635796954583545586837333273783538558665765175565323846658898639838629579349798658078391202883732216541805517970015045183910468920950564429261871307271889759719852246213142951936737845472512841913917280843195020879711487214486818091226214195079624858367872512008495905249253663525575397130128252266631931267472711708797274016874019818205300956901210799493693240463863410052260628335978477750993619741102160991533412417457973632227291428984531546044679324631658508205990084443044529235683561305958572769849765100357637380948879749043789814971338944112155340478285383410251586273452209298137895801512526795905016883811079779373785797523140754536423832677537259113972316858792687904119567525558325589432624746316959593237932807739721527976341316510233269555100425671347816568789443259010203076129931870611713111472446847380987616613298215879779523733673235671671545614175551623880797120001523453111994541783387246086759196531569649459754343526797824147173770273516235218690845881694332649543609630690327863678272173433787234212201277914530736152847979429176459375754527665511736166249377625834123266947038661801099526416141446943686665541214653557251079808823132604443020594782957064696420840506639720639317365073513173003880445262259603654848636596942695798114837219194053748866482246955138001416617534413109439766963048925949723208317530996261430784529933187982016508452080323635826442101627431013661298558705422918469185853580002596570936106888670740836870849079837612579947164130996388859772806057254383677775945949487903959265587631921103227650583873043998704354798415407721708153371228169725347084804606784815303398274253546067361331062553648078235171937319763829237985197606879318639973939709329235846525925254878475606695873672602507496468659320534760333026702258789379869971559384670734638222108716543115987110832363590150691704625433514220561500233993163621226931614164798751634672248700890857559784286720908705035059539110285561256499135175964493878468536271880164502150237988465660857544006212932808424563547806671370456568519259335922474643444968138939640957288030077415667479890902382614245016397148992671505880621404736388771776520916125774301134751954522037490896163122104904799035346518019000909935215196404714588647735602146512247941780590042351820766796507858002638510826166677991884855895074915864512661930983830583482629690713170673107171972808077684848057965875444137992944910779920474718297280178725901703403330009230392538061041675484669889573135068038686174263992443690005077832799334698240692427033122344253381686955456854241317436885767212185233924551451954366292887749040043945597994466550740842702513881542258012779936249482761255301095759410701557524570174019788509769995259561720879956894340915972589634928359294917641877073511887557335239097533861390461174419754910858237894535948817799634097886394506170092273558356900405856227237806491162179925752635876771733782545081928110810215902387997831184952959703028904546355239277603766971804645500936638939527129375661836498772135574322758352117979986176974028937456777117102096019708609988891974822781834064514963240191341985954666751863043821782298799905364768085964134878488276513359060703161660080738564502367408632651047956555552390569324136590617678000319157743940613838008162286942147836605812279660137868810364223934492899015582775604767214528875269680015184984097572531141269697999683583131116362301667967637406820847352207648198751988229863052801822887800237400846335839839835119179770057824481995867123744072885425542588206733038659351234884997970262313428003809325846120618731449057393342952618555683158647234650823356311168990392980746237301858961751274620180041024135025301650473598739129966877316578879331468114620930068822230887206158330968583647938117175872800532211880440756360456266510160834436772313414846187126693943558094472992220580954003417477116924948578006224976113166687150949060130424278786117002180954723913179444184167702457630140229750183193804488448180076047770140408137418939545475965527353961460351911339301223133299133292565079896523080905985857406951800806919203279334733972661495541705616616081542952178792420850189261589084277089990815410205163517964598009815754559688069426018001303557855470271598760068073314518161940783672212238517331773178365856999962280101593848758839224899291106871277741693137472569565133430063065227379245510562669218808078118325867313801169601120907714665794436628833001440815863098631726419063330440445080582281128154889161983229327318188012799958851273783872938509699050069095815055996862377712942317619729404081394181360272405148208207379580131363148433542279393342776536861035254077258399965486187460681108544159937826344218383938448584852903801453045697151099125044231382524925295400896002776538738663574156388274314110235995339222746614280895038015023576301847389969569687857964761481338527462600017284007661035335997001107429588617909344856882386180164022120262810098784194778556695767060208297297284932172835947885074785626883541396045205032733900115801797689975923488237896003704743509440126218101094815715133050052696734750515957930241419246771883779908018789709674198562062060336577626066200393475145895121231388967680521585832148587562100493982743377929180190008563459608478727443346055618482163033872291055643309346721926478665631468981442003818721109343897802038986303817212957909299112743076719777291578376748546289285218082039671437850793363736950077276642668021755854199958856972588894171885473245704126545387279293835554230412841370132131163168616764950318207880221233528078670360575316926111114131927428779044645590745310830304595611994778892976495070646397168145802314629453124294363555488686361248826561240064409327046272099193802499353896059744335128490659363042838024010405817460612320439445967861994375881821078870552909724031508851804469767207049321932642732747494780254657352706314008460022706069559676968769935816122080876142890824382822508271626545101507650711225487802676783127104898581258903148080115323482235485756250163613432445755489708401852562487855841161559062918027570640018619382678719167145422978427013185563530075923391743715042252368714308028697389723065940874780282615583200288560564305436754730126975992391214093078205163473056839443576608050549539129145864564189802951984212667557032614040165264647181916825561780500043662639868126326051567703737576322825572372240338030732656343992610107277749134762717616978002420241745421963354236834210899820509839969309009668335172980311556051800329123750279741383363465570545278348537476157707297860282642316989566162153641506119169118803269585076300887739841331443323522161086480753762756279535732619276807505917919753822080505536085921438033706425588204079499456805320998452161952903487471729158788043378980271991757552841249516455389736690380346679774585106049237316474933485138913107670478168931509280056525080740033602625587974658733895886504803555491059441871151078989476427723914132008590273134823051471147108625684424430556126457313179759466908036830413403496984189526412808130392379535423395514516436858329717672703387996607050275380884466661324980375208470595623603513288763569283104042351423073689830225761893982210451471164975086495793133102305164803800702740418722925525312555050751962630901419042881583786080187226885330334260324188741994743094870988039090077968962215212782040363871849869115568928526788514369208111989669919917593944222765985852960731680401102727719303922875037352767460313649872860148590878010890276964810178419250513768363944327798589783804149967075106459160807997814986746212959429929495103455612395285189966483893151341663425625387229042078042857003100505766723878249942293043318762933107599216334103488185307894578621304384469902259715109537880434248396404519561395264994091054193480278333814105054975038632521344166525325783462410543137242051343804465610070975026474975060187932989700495263510803848800122170811344231159233018250655232900080532960958045052967476178277649903380464927564246078440062247751022984090446457608828400843839653757251633090869380466595011316680590317606539941304678318604500629809546411793222760643945450974640311900040461013636375804766525147633922056408539488115656651564144995469997989615517085192389641735048616440196028228370231058048319549445571577791956758859753036660988220249688649624023737697414908962278262671716470905454589643480492513581072155099312787001810947933780019428811697138455978130343759117449830503972720050883851002048805064527669175972913171516690414586990948299639788578847124158215181915131193646592655022469952252065868051123710861707775297248009628557381117264350439772399159135333727943712149397486397926247924574630926880528060161268332810801373076067896388530352476247957729623303632060797531311700321563157739611414172670805396845791988967823317498025009040927698398894869465840619708837118717162678950598037992818687908359678054674438673941108953719698618297673845895439244112174432607281434415683337783965800933241626531197588680553863145759699162822606077903337395378068615499543343966625340413723933605837613571366314849602284656805675347318833395976940602425850333822826967160251488264837670313936615030465569440359099795880865306478057752720761812141539410681855315173588005631797895081069982071232635714671453116275825250080620098353080582998598765345615877265590577677705235068007347211604498064883912344314969945662968838109923179375961805951519832650120598781441617932890058633209563904496732740967756156579216951256957573430650111772794468060769975484639636764740951978746985740500256663043049693037828646730889074067621720816291000927084108880610219803664690320066048982952654419736165080870899913997268065256227964180494645415644876701280058394806244300387771355707804656432991321870606322081514275062240463573963323033417129205307955186159422189138063417439346426986003963040050800204287041572959373530995771667761525162452409290068764840944524487082980646372347946634083467678892429045159840508607169534168927276857026100718961752877525160511457579234875806582896882725005829643483257250194887049167329327414414693861611008212073014894509422091561135319660158066060095153004215187968005009256702774616975269173663358847895310487516279254152291573647418488012937080677600826420065741850241704070543171728758494534967559692560581068000917355323392465539765805611506266806885714588862313687782502707507793892985221289837675733944406123896019462548014968669537166756920279458069004146572845670685309943119591039872370249270901043532552598050115712122632847074507459034059643855280708208729191184983955166804404872154753233912561994593028105975250334168546567651849453998885243277578807135037208347774127463818740545863929254471150555432279981820868187969864701046561341186800539651313468072723238124944140474145964713110072333552028123385221405072386153693166089460593075675862667907505370180736110407034090926282674887750285975237510238545267796205530602752777436781940577953384076593719123390807441612299389658775405042093316578069596534125892927690021058353472340561065145554293200917074504394708075199566983662770224702288304266506904551219438370568467083823573011816322854340018430494979858262176880764156199179199351241530949158010079374774040392763688826938414993758057175171344755815931032745774187807757637118775713224689227224249337777113957558484346931432056193522817599764563384463523667932694166368078529382929947315541602622781043404597128258224267019760969254233568002538348946563112495170146899400480796400911880740870773299643030944043581834084141758018478995026247389569075478192665221993496740541728808081911050332527900215854594317573458873276958639774133830265422515748812728581889273284977696911085258081938565217239184042582582314470310647604648145020222102865333086563744022595880471321869450144366817580823853073158920051906575480158234491548443177708176712520461196493945018862567637414537686456006014215808312612924246459673064284648851049761119188467204986645475999926801775664337900340056847037544756287828084493489840871400770236296504170750104540300696831123531729340302631722131708617620296043445482095434880856763695249394153847667538095773551214637499080503829564670902052304673985564355823807120013405179535808681775926611792974601486921320263060039317995648494444473161193725369420623475637450478267593973212708087337280578134312662111738722249280633363983451930368038925930968899520925203527857198099238057623612280888496065232769709707647903913942314021333686903948086876847433080122688699462034708237163097247047250808928106033141647014474120542138240308128347191009308620269749091536072252751286597749519507014468359578090034266146025302815338482727764497900776889807445830108058076258028265253984671218499044394258918802180918806297599563142816384851120947134995242272909662562131057200278602521302716524357302013219950531711809220419333856243218115968535314364280988660109585436852601085293446378411885371826272165074541415429098093241257634281683464248035818333998660735773094094986065706615844070167350646845510834483041034071433080946886135064816123133500844233624141744252203847162068581577800344074422408997737952507722722425221632809552707982864834239360319936007701578145485499732791495715242047771832598625574711721760004759186861348096657668007479138823888252605950369614563755509483645524943318493757958344708256511202977130548905985880978936049041984366155680280639101693150794123984426141463145272074906342167466656220820733874054410275809855277326425726662603254341416451806464620135910746369048140913948817349150190905887865886575608054638099319115395795199226915101752611355353654804491538052352430920956839133923664186021848657405653138658581008918038882901004954410539504281908521709568970985222660491497703442563415201133543595601620804833457810105678582847518288694326457284709415507066390042021847428414815072932114255525384876823984059640369468102755855870650778052888118437054370766853940204366790879472757699767427174390824114225151702319553260181034929205324852331644303361410581348081211878445401680049841863719537750791225098168839594398437434905810400927690743049721973216682690786818942988655432603934799602791528666316742452049935768321975982961408105906096002775007541161182341365951954364768265974353872503433557560760309426459371768443525658456189481061330436265854933396448813667814189940353781251863618098614310938046860842389417657170919837530273529810746053182177484980676410072780689353948778562080766076462886434975781384916754969480133361645855359238108421874443904872822023274827900043809743722240905566579827925407920182719176407315686878899086982344381093324298461713480779415792607894378693787932181927623832088562198256262053706157053365099866604373352811078004302978538582577725820814349306895099746902842123214805436252144109926584513208698356950379341218111927877015483766846258848514803532821005762259531238439549984559771836617746969487713373602949024320181124008936954352464284670390628296129253331756090545801524153362697046334156094771470387833114080455327811320266985169165505458088526234722700918568381152913251607557514732983104817451169011854473890500270798114662813573733289152194735131715071421181962239506403606625079376610114109097571987519506279076719920881154156183831262327870536779495872093480853103370037079676981443339865319473005539550361373716903540441811622744184825089725543411329141409921010502794060781343452745457489103978703959255767719730326629205858117002184124305611014711726658858875858110980136224271917836015056300845061260958035114622186897039265681180067677522712781150869182409312639832388951433073092080618183670533272221996712213824392494133845030811985537429139510060612140640152772992047216247469060199687536161293095944353196702138702622427471342528120951983464115021525852171907334352876050896948985966187372464714844575400426321116913066108000759019981212768527723122943384537537344556192707318420770035251888198510000910588697024636141339463736403629167812264850243139592226108914312458431080249185337663654737954281019800639467549165673882209372067955022458123397495279360432187604167371252941868904167875605071581918462839749951776189847012014172849225316599781246424913961553463045596737003669827139244746172240537756388452506057383117220633099522461382751543842812562484183054546161423976795807575792892955358231583791059988100013635583580253819304960874848406232448126213019673128572797569638089158911415106268293671325339044322044393512256271342583571937580755554709981275280586509274891485606150149058672218630181453955271543377441157484301460454210472371065909374589455812860185074706555125049620797634952629628585741910611986843374359599027675135124284216278738270407361798129018226421161905654523559821346500984434684749893425519419061256853947121550938357783997339853597992081308044091401401301969205884816241657792074385061659298842954287592676532576461278658136538693023064324813195148722915683419489339773257723831101860728599213827439955316707179778694631024120965629925156369078132070979765746223022481118369933795400372890400355281383879166964514630501744667830267733915658485131381333733221345559120169428199446355869119901046702572488630391431318926902723427880765595671435508100852813433287367618883314330625840285446138179091649151138986886102042441096949303994618815643469225923822718135542373255618657637319111383935082984473757876309088819066974875034626160773620105614764919585888952681361757302986600028449208833098693563896669357365831543219805114630291803035328239125122651457960451129813713620481416074263483689048725347741460497928968665471804311096370206936618003815649264601763228235468138752577251006348108332460496397458189485625071592798514006882345658766432861696499447028761727860740181396278793760031340305365372001633610673119735402165742745526613772464146797016342322109483927352053992814016184668443165780514857874873899561173561574229271079978937830411746342331723123687062988799395637968141932343814093077303166738558758336589487921922929917029253219531310631375169956489555627920773263344381429956069913401234556618660027238644091295776817456745562042696966397914924854631761555583478849112031814332980810938202001667082142619538393913519494332455874157725836948116349214048473354670485252762669908144959144485709083160423866343355234799524193321743127082642757150153738114470464896147792343239188365981457604173276069183964760678663226749291933231611318776739191327131564491305693705855153395058229226297814693669280098890127374401107299130758483919483725163875251526812093561550689661281565278504377438567378147065968657129040745040213967864098050162871632426642267337613821529562365220402118843091692449620167081483983772402290077519119901733887256549451670248842314466733016979564931389538586123981116683082572022814933372469857377872517673016746885270115642775820059393570981225869012588927727534775124596954525038988150261166802128775738056368563156444219945818740281065680175318556456529558228861695528627420028196403081516143910590032153797953969302185194232688079468527914072587719484690411764169152274721106824390965834815293681740724391256726014139205537504438778509718690612830895421445090454534852381522612136091363279628153561871364143164942213935544220600533827345153079867230668801356293013165017655537704716300915062479281541237391937057541387260377844094217302591125049238615493819007039732269827084459330938371631480611283815541179486313084619959430789684964111687084337933440570079526478025532429988270212239589071572621544918156883119891179649225568725795187376437265210419618862359708076370825191601974822344820994433323650040181575103308033450987342082127921412004204801805010797985617232164735044013698114855410588119726087395394815825490862873783903746809883208172214796830743130269381543636845378457615575201994791177412336708593578159176920959284028880000629172087162737977415351295805029709944241913807628723085063578557022002901343281607092777298737515761662474840473928515508631642153028208352650155756311959083682307340304392715181050816102752650033708689498428813235684965007249398847401056947343380563733840238243607253887330911137388408162764500037734478470910018648045541171100256140540878369928869527413926193790851385229297895810628398081635904499241387273763985719482912844834765974014041432598188502453910670591768324622694839736115718148816498528770650237921321789269536116379304464677102539916568443144432020298116859366166592552065597956848165826916762997773403173737803087482081178487672545868373342463345241994141078015369212415987783399746681669973954295186818200906496976103678215280989529876069957103569096028371008599789898946334872095708021816779233665748707146777367360972463992215753219402369880425601500007584041175731957498416740333035260398168480973788565390288665909901358403196480373293898604594203986896616222754894365507600023458141070896181695093946926452773942351146940111277191491369254378585394835272648575521602087204812491691018527179951817083756073284426677184767954071116218015353987918247749816185835646452280308632399771384992835920927058171553078665155645276895916218692034701564555734028766926384132577036016059645969040322551231020295599781720989164180907129145748986244302977071138941462836484848715767856779487814312512432935502476872684689817346933878930968619372172452421687392718595032641171831981357089270756010792991851456275028662192436978174984178114140454031960916424784392143902783386837264171155494396304194058880675238187742910855178800281750788117679147787731136388027728566969401182727554750200093592740494837691964174174743764309935882811817649024158567172118654518195403274463085084900186721365271788742362751336854382584357260976576339859358177364879062020368888102701585005808302800529052500592040995400955993382815605515780805692775037640593281784228538216945892473083726933480345155440890818030000971359031387603695064629525581193233191042017397817969685110785451020588411747429566742640862762260667721607633383260924431171632661044281459586062506998180868607477542904124446463286078462792080416316171887736540720514693121214325169234294535433247282417281819604332479029063540574426435510165761886887575528924905830732266885794063610726347131451280390967940818293684979336814875713298697813211924730599496014027781864831950609839994902924848226451969076694936688183091852924654025480077219908917729196093156605486780271484478376604390600314714645229672337382101872581840391731552458699554238861364979298934057309118689822968756922198783526788848165620121799323557181193818539478997294113162503823771607476012250789091391360073698161644961550771156247518486718642741875222098186836992625110794587674427102605491018377141493953846017308993344936047697330192877913802703135070732181870981882099042177479582446759902008357116817844883047873914753449351938140117520881370598439846549557818805501018947463317851354478060500245322289869595610981274453720034050684331619519836303181703747898628189663270724406537943927775061173843773910037015604508542441718294622323098741599261379231030639797519681902906214954936751493482955342557326734057366254563878208772478017012519108061380763294191048376862061819155039901710577549379437198149860227457432768735866547211937247364836888473863695504723045861687577898192926241799192428880868466327656215489453775846426936601705490410696791396585650472314269792668892085681939296287842331651540087970794840446062660205914207157264149118427257725445185179225229922899892552417819493132955616293338761041608491996663174423087794058873508394787307283099169773983497943684774634480158195790691042083874953549261759171854122935975189900892226217219144593067886197603562218812780638813224581966355560680694152552978974969052102555871166688039462531658155902647017179900039902483340191847418611819717791425087957832200374313389994388787901749321783285709136225934523987992119413582964860423871824068198741709862281219018573336815685703235943091990841310032742416308560704018396764542197565982152583422881998679649061753328803833759251880213557889351191633363591256530761963446885955556790319313426753383306820063164340607697250337461204565785754274944560577318094734904463642115299853304353698384660984613766938201430846170005490836101239165487402155201807438320463746783904999935185678107922897258746903677495791382023853503513360755073213256002919103155131072831771162507725515312573049623272208602252146484022028427820398593292836688799077140819239883785035622052945336156802820375313954033176431589405632531123586823948204728921042814777090452957049128759352412051358687603284514258273469448854564319334456061039277195821282059219413108746666766592457491385391579446355239886906767996953556594034008392663094891563705155183329820639400050322641708848899460174496659076686847228668101834234733580748167860825699263614579414341577378207969727619536251481604750464457139352852592175783952785644120276963185951519925370647385437507348419882080458523109952456640263945256711483053596867831113800408161923406923403260989704104568037934836010544820992920692731323910928948941612252877254172588071576980029023276929926539672222312595423789781879617298210736923126986290413294069304779269034079608593696955308287063349885358980631703790655102345550359811082114722630784324378875026808665286661970123584310754871934469961351102465382307632638598946857435306560821258275300173591298306951563954194337812121118044070153615314384579873166672036184046659229140007286158213704709231838888371259011377511015467281568312617313584544495556934040160625159122144520263040073167882146242123473984156636061570022957579512596067890949180714872199201151338603342012490334326901903152471821511117705376749037925070477108000780724379721999748678051270543865809773836608455714159223131125076998216438505749572084470616176464289701673424853130726531131411329692244997325898693793362053823104304688182171672702967817935315147925262277150873178413472011750829199181400243851651872933219223671393302183937821818018284319234620686122487712481614464372623846672273871692704343226676282133595720865759252993357048219693016713770629372316184028128146654033939299764799450835563529313404481499746082157314367827706020982200362000236561479481796166953389820330364315197605893882403131045864624539039457563768870592794191446822135131656563853034138055116073830115234965016026289833117526654089514276454873943642900031046497563418222864670633839370264043271999344450176536211941839809140543543120466110710229491479572822300488815098982232880052029822219560313715553191807236758087351573949415863863465924264929827124687428737887107211779822460934285282218507517612031632878650509567859784696943970668574363944173341905638350440729438621752618225006067399446571445256508218511081123473497709235330607315603438336668128028972835529497834686120793082266536662298488684458973023686950573180717092710488020936988600525942346855824214663237148360334708879822705083467514163185997873182137711360933796792267130480840063571274044761901699021280503624955146493758228628572555347220155291627360048420717450788079507618459136069577882486187479496027948214683255363696482298055794751958042265961817575455372575780063850078828942880154045147286645076936364292616561464092376823009919442302530717760664764609748901300712832067009583444148679596428844265653348062698500890014358598231793432049547007397901976240218318645022518735576819538466957130700628882926375616032787642159655931282325292492422161329574504065382201672623986186616485814342988831519203159057960073366305926447801768242823380579377519254991161387408165551961800806191448772948511662569977245150821371463281903651808773347378234532213901795694554698558946099509944819766231605827389739243085310494440787084726990640317835935290482356138482240608140130673921194035926589229119690168304343622797153048445980731590371353990852305554135823685030330599426307530084474973121329228139004149372925731581039036715734392981372366096770703723997568237471131383650360610405488716098619039618499361053903230560359089527165216882441207600029377720542005482389345059959328476579144513894804179203585085252993874450064907705032042624603929134791860529641815140823973543083458770362016261363564753671667605974780085903142936133379293319175008485509604389718110409888240775200492122237069558581249625713314476066506933678827688873103244542439828907735107267733266784393282413322019262193656446632205485521963628598869821245905948414538983552431719342491299006181463959235638824228594061690297564763112622914667465366265823575832972216617099689212152632249540972530092760909689098243298153985477810475460397048056409701943861124378321613301721735201695386677893805184729999611330175382440953639202007972943843344271324196298010719595118940802076078542247534707659726795708604373801337156824514849302325710198132874943896149485487837329709427816336254436333082693990557968810494892037587507858246453764050536575757195557194024139210826876090887690522636865403018708227018835475847239992289403407982470795136796379635072634422455419128095770590315877255589220778969111186865369280723830240389236271049824880728883128755350717511334248096928769720158667518914217143425576390489594698580750060927981004390928249494524081766250952741727415601614543159451852217185574955268475277271673891390290147202350598954961582507417316989042855399440283027838377623650108590936919201540276948681440882683921593425318596862968867825170735568178360341970518419116791939661833729700019382298015027248308350801097177309111058708948946728252305428927151182464154409106645329532393545051930527899093172811499649272530603470215987196134565002082536310713361365178616544164970357368209762583749438630392248773435717559667110116693127919204620889828825475388710715363136881554667959015531454623653372771094192927484041691314541970017754019166194192795238255260188825373033775233601219617116125553889783561767083773878526075631342058656819701929804205050345082569501358373027020583244706964639692236906385933110811220139677100067477245536145173982465787334364145825751852124685804072880187810597648717763079789332546458009321561354841948421779175593309357859671946998258195056191293167993441194597294243460001028579758994049694365666190975793295668054246701383744999094882598656972175297862499944403863256488733167600407677690717691102171332461667136933577677517966874823798826011974164138932966510983219131889123061288321306175347306459432631236902194248765044265680064037237358261652001243194823731911164158611994016234561070555880366626031622166878471348964997725714436357031875082620753298600633308289970512791458197779206078069420505494926820444046342562971575340949274355797251601826357207979726607019969187009861222418896922478331223069883519302680013335158234809746911378369744867638264207815466488126392408284186516024914954979864427209866051820357176456894993560204307104892958158650682653951917305638559382217514301314348075986693326504874799038056468350956561639841602315510479659885931826668474522978453271156302256796382458057087383359848615942699923530317472056202203726152708976066846028267608874471195186752852500561782972888719675246604895413107910513002573103926269088847423715651830991682683546737457239943835000925165391918101842370641827844631996490552888569939325282656262824286907604695826991229338888263678905258896297992600436583512928591660168162711585038595099200450238288052578716079998270148577951174107145878927892859445542297574892663914906061225590184674242048983069603260992416053731982718039930958031845874187561196551694103025884274613267715286041675625997166890091974462057078876061938827224714430682007869995158218691523480946205994733672841618743801837624468431146227199718354041990857218273267006752205570817790802076422387700830231459632437697248430228137474801499459678297652451111647562882744494882391126580223207233939672487353483796834709037217278071821993045796170874846683226075483119464827563631629550461428918187034402551606610996043968227976008510510903936291091994211938826655136431104598276377398233754702234897098938238334960622241445881815717448698580076801768098313544889080730980104598282779884067101286138185559779131126585794627976344020932540464256523214487854998370452126786486295967723827859938670287589062826992794921488808890259752971774789067202993671236787634519865957080118747717986488279451089825195533914045264040275752862201560983909743678839234336869029379490238806297699255692023125082804277051089435097832023702609078772210288838691730652029707426870592354303768898474913311508457272408828192727685293202568303822902698549830926642798169621548264378964612836838042073209244634810624823762868282784819581085473378891721650337093171623008278354460953550001570873258537182960697550817043583499220482833478239737270858232696362370176097674845003041090604011687748131236415722492541367350659699997435146828483113000479043763389468381150750447983622497756891870633121598257365693430609810105810751283202846448285444466922583587764541076542454461602377782788423014324148376077527228666458631768687572843620346387282866464703378104558038408699001847001329490672016291067320866560152720035703770087723639337084619152832828704882311403505825354128671849769189874018370111971124740816615401897014577602302374503811231109971028288646614140418572610895636960583124466251033442176986955312306918353300561885184871146756537471284253782898375360270025404781526769638680028149067082684714366270449383420886829795605591530914319592305379389829070909123501683175231569389220817236677947717971362719241455588880860190380407494601510951815732199268291316308153672778639533982650376935093196217493071036054682746385192384010858938048215379605703755413682923419453179102144027724400228595051052507885300563625487962039630514167505389028154839893826056184605829396925430923050118448202444057353339948646232469861642715255204141839454588339064507002112028162690378294643723678632709238480835704928556654225657004171664346794270566931694659035590025009811020461599706982952226960430393134150112385202084330783492768521280232291152519737913751743284056717195786548200968348829639493549870633410451091155802399789655537286716719980635621882290898597135945659956583900719908411358297290070321279848681737876376919750159650347621049267928002979882816144262470454993187358737961144612282980750417737680384233088995124892738217191170599517713453429945729725215214038343046073402932129297183829959902336716755190204836798893485785428130740917112127491351889665038805950364886600193051774797377208300060385947944314665010410771923517224472581698761357315539473606361022608171954947748733465753076976283013829299706659381130355666982838308327669547610966886531811220411325508888982062797980648030112172279830223341819607984129997207200884183938722113903472473108515327748366983782486796544853960546733245178288303218373712906848843226097503190635530179412648238953511473878639950548602246000335769136031838256952283043930439416276778650226367159054260821794162606278653413781787284203815659300744636406739896675492687830564939571849031321211365620239026152298406287309564812816930350186968503713109547232937674722247857298306641708198589405216965981052533788923350319872584948893728640768329664533840034139733684656642998129683072074532556516610754825373816739692277169563653668258137853929592804863934624068004561289736777656499830826444527556162223994317489110997868141300340878616096406890919344660106857817399649669192940715197978309706196735563278083037486762428189532993799350174377033041267846394107423900040751986059181564659477583108609699994125596896228698815789024265778977792045289457268597880151203918786449716049993622264612495831186877214347718177827215403315790874383331809450293538191572814541832682112481972325972143223494026288312954695747621010807874258476571478016088334049625546506324147444237115967899237058982776656858977194583137925992692904083389327233247930254203274120827944369363547913979579720396366395782104958416314403965831442409386047528332592434350078130659491794990770388167056714485647590147081936288460634387083087301398315992537252983668910410331359439434771325452511125521110927987277859513827089163665909520741709275251283169902620455410308034810322700046208199313497741033969935705200813490694208037872203790464382890249902831740122138046339798024218210683934685088493016791828966213042549333879965487438610932085149105332758778318322690267241292966256736459068755914896312050174243945263893979024423237032649035968525782137809651583190454498931866068559097566323944226182229519656421572541809032099804496613813953120985347967114699342832069493824514966747515985290047518052766122600719775722496708151505803914346182401252180929356344269768321907759366545209082025060278046714933632677872058168159702504818400764542843654950033719423356553170683221100284423030042053052952933086763760286456546110382753741547484910093128725956442056976109993020881832304035318669489262396099535657223357475743158786184590483196642956322272610527164819839854633794370838324657296409394888203974869606943333151457916397207480723433442706976286568508894730949815971906831106183252001028675230952011106399785970418819427843873191795483746036719035569303839940154837381862624892618832615817546723094662836205565121691747032788728457031534544485852236960697986889224934532820969343567618327679260108472382625897599052637923259164150327636255946077462741704332544934574448894772168762718277283287072947967992940703725682106129508999370246217199889894467876686273457941352264033498177530833993906832970296652133803469837272890532476006619392545820659289701415261295072742629227932465791704383716269328330075365011196015575259469406191818184873777134268344442405293066005733445888690588803931774845117741083312397358775282284385958672028239874374352959211556243224389289630027291056872887268161611773035695272833231697743695929142484462118989457501169031295742514828451744198713371748657674635397474576159541608788333152194938038219063171978546364806877248861810391894489750730538558049092079632148308935231848037909083346668134527178233532246612521949926765291427590890922621175108174670500059568093135195284008043900757833526178665775125745288433053553174841429175337424877509489933543735835955457882706037397391292269370308336124396568971237739451673185967041931739307423102053944927937255669514349788055457033059083401130455283374208837745301823471483685405703839803008349014666157562782972454384494736538947399853428754328227478833853813731163246992938367029583215296762931690157701637645970731154556827663490194825042032716235543768339160628961010317789208130071331349683386548654072526999424381887465482728672722781054698999243638538383408917100915927170823049066727659616237816864044108587574547936667543859698670955474999659120236471863834102513423428660312308328872542614846504913339140845571348974212133262795637514158859383437023288367638342614272109109163264381199307118058137053205218187168903404084228331495613971410009101715099373550162583430498698021280775524186200458708968444383063445989495551440098765192200443482688701270198303940692242834485391443443769252569060378563316363591695975636285511685563162452502775453761962942890436619458968028345391851580679143860655457630666538550897916719672277397520763582919057664796718038856453881886603506483465431683355124532052382832782772109259629794743650827334190694841174771358669416235515154189766502736834752437782927375010905109308258678984624186849472218794509286730565647293726572105569324973753017203008348342984629399035760405532694801975212600306698038435039953622458649675717353644866229608676650221147683491971906683670007878619525727724960774953015827040191563034896276315535912935217020929815099957118977835071246908544676144850835054133339784826134395314953719150241321492525701145762701032683591978855164108351361473764759625097622302881118895404713480424617911538541632328400543710846426909503621868337287756483524555584451321260709365088896899626104066097271490158259265168477635062365733527671953832978920009067835329856532354522274816541019480074074983918823027932639144942369573528899527704109953394755282701081948354335733697184319508165751817731361789203722200462320225025710195997579524022444777321462083760083485583553877306273902091886835251019639767078418503278393034561640141876545693800041666721878598301833249780835643066841370878997780609708751312245373317921047765321963226929206244411860240382393958269384876943868357479921582750767801607506536356019247816328848950673931704750819664627195118968792595048559814225373583583491882022522322545270640311004505864934019626832439967502709419772579999621126315498180662935407155835983610274971906518427406565937254512574742135652740612551420873683195358915340183005643761475560005908360188755943248998734235441853629889772464142911298518495310609053070368529095174747046621759278212702883614427202763242218865003628293273448127781908247371971787331228262452933903310566123136943767215970190836256278625102314965083850517849547462579286335484676475056193895604871272476315354271306025732461970738363058891449957628661080519401608773839935947596879342063061649761016289384743787627083980936528689093683642413539742230974044012337734528350622583007681949535057372712472914630242934201182055942858754096729836598247743329952532893889102882623850029186860662230600769541453440141543780274354652779811248059501088366815688653909581055179251789261685947619890185128854853300197191365805093430865137339156714425310693383674558535936906805731112135220901489843226163964326307761140249595727575518017958941940131977457342289836822330997391962454237815316373992053247664553480610143673068325795760516674364736620234621205488325798369620677794658961534666628496225125599883736635615457380994239822341397785731811852669450921933340027883703956605221904343907952187695286295362583451142883374188013897668334834519923543727595099724884754998837153482128754160212142000716742527322818658471302437403801247212757715517354380686932178170984693047728372138693436239351851772094380919024767919123501634197498300194349251439227328399895275284543098006139783735570079141708167825793398258034505303504355997163018455281682926422796379517399826256972139310348886837495236503388767235345917921388311578797662440444585686266118761866077854423457825562175139151512175068375997028267121482353761675339029972479438694009843980337239260825759149712252496999091625168224188302783767064831538112236871275612260858402325217728238991975461696687100468066683951394054683014706632437280837797173085261750040540584635799643871306025046653245098513711350478406669674081206228084952470827367788378489675066868066569520461593590640327826022810236552083797774909998813393057249306686654387869383628983794312535175161385304765696084834268921637953176445418916273051752216789720804110223722838862096566304838032693750538126058074357155644252030153606598273724463194200272636840007290391352321609780682089800258381039711541356380741843338384377559456889934327573287635899539343330132152259001208386005125201093186683828826735672604998799535122658646076878454488418338341366254221969714632518921172825009741219838894379838396477424611182875649274008010958068107163190905554406637684199248303038244538612047639180787774784098384553293677312666506230463491542094550301318699283858704049776949876230868160119822506037840778293313783851486931955769041248096002894285901471563003599521187511349609284646438827763668164442908723542365626838624184913110970711588110759956848824186276594293115532643553365781078624936606809735256728328243880478387149533651630446322041993562377636592354694982486122240436933050644547086698381945613271731670628721183882922330882782287685661129367040431097366815821566525309531927357606575536633813081141261504182742591838997915846860975661711155359265047245289013979730748365684566763766075030008038868274480925601952501828390287786775116835185139009239907351059703270669619154073287289116846607505209092006071456463839356591583916554266871106258607999663404577588827698230347449917712787416589237797961170443306654990881949703719839292812185309204245501010187280970744329043394827028863200729296823007160613009672672956269791838625418393923927466039000712109973496105323355847256759415833536503896957888361222771610209908180784994235623083949210965202007496819097023368204647962109385232105587621508865676768483543211634698215738765508378320839537338143199007420263497842810116848957540102189754507098326654276214693339080399046753111520241502488396320056656158063597923618193230076288272946688783790788539740489695339314700311313244930932277053261383970028850543429077890063403191002285599374199590545341982948388657641910838216642991461141910541040721839871837577155061513515392771400877552001228409781872581662708931273964546477259808894904638744412033838399403984705474826484342166015060409787038719760453329681594560397417927703866116917540306056042759474984002737317580608753112966079880717230218830918163103554699678999676814113223840584872150451109777541309840127334808561399431389195645917913746129612274326490289450582869601839766326676818486367297844296108248402575327353237855810127991695760753661632844571547967757002225920394790124564718859527332353801320498684037071615509158782889567274613439615495902481052675789916395615629228002473414729092945654241442384279840475134894573060583395554662066270210014102767079458435211648908816862436979656823419770822333130158028405821876841167102851911373496255504415650032201321878072083632156727583289411942930094201762773431074984063222163016969037110211968178145961129850803567824717557225952337646404023992449941171332270648140922840708903934067741659079335822479617612719575790623216075333480442592524721663765328124917378791355454538408182838865387075647639734081624444987933614312318569653401386442209305743912872763381581387125506737184092242883009985818632101563534940227831056311703310767124990400513200129348970272130995215492391507859841004214026893130046098656152361405253039272543131409786703723671598135087041444155684740934242858068268411691887058701331464632050819150562484760044352070807540878211494946211509279233564167673683350164228484122786529339283279284533215152892040943012000817086185841075044157621681026060833568283697384319713651841308293621246800257976799115539990764840380499281718037565345951838459509934009339260311050879753764138414354905293957087659913428997297701816142947608013283728437159059062879686640047061491784659514338089784159790174722888221305314151452675047969517343623347261533030009304974265653945794747407885636678194708841675812034604862122119732683985031983988067512355607212314224839768206933579702545411426785688286857628417181461668246755029523775266140894926217941023421516354117757026907294430769570908960644149658816717484182121668318114963709144779139340867791720363604718337590738200996909450123084402978243198983074299124841974750965950540243211346298334415639386846663845113041716880468008283501799096954455742858132774403018420400336368378712361162753223918520093151086954785404060385142967533705144922858168231754675785993324884219704331947481163136568762244209211961639847807493990632550658610472649946278570911848293076400523023842295716940453022977484337534496934791042788046497550916892848110273355938094404693489578483196619161918423568767866474420917676961460159614300711876371159818435709487634197399138085628617818195168335660513184249780945322585426552516534052564189836041918098775647547009333545646386374588183707193089927774747776842551940071210016021292429042884377518855696937984137461959487866404952885179702994403417092257126983648426347792342000445089724019564277684357400046918068857882963825556857695524334810592353696323776654121384276136594165896489360126908303912189079669346387826994625689894323842694790019544917649079925967283332842801502040550563958228832298654215201273903857125511583389460147882679613070593684462714073176635850748429877351536087854710599450815737503768721757586689747637142045085859347552037159289414490384555188824784307822488860567681794844885054248271176560204127562510816987302947899169290417780732082029453912387288843150578047115027943406781972067987066773468991759685701709642214988438621317233301403648409062296336618432397312051267854801975140106876149786782238295155301447754388009420919581119084559317284191284475424584339302404344156046849603652232207039181979547390237479288943062875587989550434633272922942658198189938843449643390390174859190074549851943243774688971516350617840447658172638369808979750933160686709027362908435679673652827703154632011642375553779929847464033232739853551610977778107521262296894986051351716560284364102871037724129408278075558919925350758497154770214909146833655432231086547487771386228875760810079843727178589790259875918863519630604566663336319217407944530334592773012404904323289169886310725490859038438950130666659273011702603766298106832918880154007740068222930213859576454235684172436497530339103424784395954667977697080027375943580064715248683506681994620785001781035428128258352865340395212327966035363844024082231808982544771052047503704252264797228699159145224300070833200074295977322725795037652993767688441720265918931466788798396187665084089721207162147080505329655306838233758647809970173621775251826622584429448897555479107900294328073777695412037888193857533624535557555386215137215790485645195524782723839844304392255558608545983783242042248996058662215842368888782818875032877205784097787089910123979622359288444130415428146206709469072943044276373570795194638240638535397538932514553204039865813187666506718012884455529209290281388464944991314896215110965735382736711051946125607048321120628812596874969053325465166844609855153284705020721844897915130385996182707552535083094178815330737133334832472877747905181060994008447650621846957914160902586333765370269503363251590124006107726551850408574372050402869641903450601543484481482587482135948966805169716220412921890901365194266163349101517770935418782341159443425730184584604844979674977341123967367460769375849063542999397454530071743091496740145218588375807908410093952825123998450394188780009800085298325011797155246966298052393594260533425668348417106596468996024067593181873007684510771656964600274918478453928375977395610105436229722833079671242759581913381790783409621408277302609845245983024116813392425402102479082958427192272091231049877774360082282040479398238357631732443171948318453569713300108285253401780917584652294174735919734937221873348650377566376945451734805841274192964806284543788474696003236329645607187500856199400629019636181432769610791010248477449948177473036975189922813845555769357501446845470381796435604192748202966411484264755388461609284317366732609511714145514664208778456593721160664005713187183194037824930356602642114555465509638156171759883263066063541502910121381757484570705460347589437776573433474433136145706954995855206815968719207955264670235032289325886926552115837845840457176792697869830936584416052175398397969141646921305288712473482152684048633544160366671645452058459728789206539039689657009883303927822831246398832259368184889730076202950191392217469639190081298224484607578103017840712413711813334742069153806373196342037227001353128231561282092730787333606573188224330846135267753616851440128481421604692792800626149042372647529552898067238689801124635261708922360941951428462983185054938776422055983978423549606838430804446309187389828110323261749424902459296870542909598932784637188672788181490220518594249649786437220191508458725241513773308659016343738990369096183941846604804846476412857748573396024328884856159481653913099507843261527612427437304198132191310971382332353652196258465656568413210099779346586712530980916312369454565524086709902579573737869073570795762333041520457760184665138834558474196237479266731639431708110461614928063588389189301292776504366428922229524865961964742846750156393651304555422184136981155056022645692242688442709219082491387974604688426215352222321596952978468204600356284480180514309235146490648315581470733739099094033063516284763645243070399022890691032269084696335776036486055194090278268031593780882659283867885892833398144312107432421057444077972553048758075847043827180897381605829460510483029383863211204406323798531018120096800478401312104193172311588019894128471899950944905182352028550174784547276205986369707009621505367367800710401866180814138596278076915303384720859735979222742977968064432368930843822216161344502909244442413428682045989239144100586494855598206847302849227162477870269955897422814270143672583620201910469241114324811365678238853166167823059101302958474772373949421822062853229253296628105627894293746615051753207102325403956069542024998214315397713255484753297586855252724801325259204962363918642824022950565291717349820738772748645347449926663833468080472847684310211378092719503669398370888980792873532815339847426064500740808443294502104866023527925853133128477965313224536877330895416706614836311068277941901052865443855254758821389430878387554697438926764549684786213807228842572393450520834542156644577393590327231975817176591609149922300536477728381273341666225847933841472242629942411924622400978544729798291278440392639981696982498319988102820240201894960606712638480656610074693970892064689403357049238092701070510535093856117942730216979882535416280152727203897968384815160423690238188359887210402920190710560875100167903711110517939171375466236838325414471785938653029848270564626260948159605973111282072557182811133246076104217747759645483911179713618873474878682539845868483689749210617703503217366706570821698555986605315272702364292962106033276295129349217521429748836174984848973053872979523177137651695656076009410257209652641367228047189019484536577305232471845768564345313848534180912602575401390394116388610927763073561477104298203714855880998828077011820768860435818055569748486289513493920850270360998529136566724200040934068156266480004775036926701006718756549830267840394977984870284984080411286490427373187873235749233515777926654640587552701973317415255343693433358781774394766848876986534109034241828856004682442717355891956299625079790827374560677653849024226242434139444105147668489832862609811698696299573291894803130938365787720305440635688808739217336431685630197495882407785656484906911005844850632217485602786987082544923435009462428781142479255709287588160371333704989444793554135849178617677742593003501994878818935464570699898023884285943402352939573590363877995548580184443559823168492908424883535500656784002486228853977905919021010083266439140423785834714153921125211966441271967985084930140377737816113954694556263934396372291698397034431618022638018535077274790383583877603813757838647849401213631520655028504382092685471604804944672487705111529563991984619660704801990922543875919360489948495177642432378782451275097624575285549009194966343005632504215824785039438656573470302650698002722496584963816227554125812383002246685055927019280952766320805532391360748859854952576989950792761407664345764849764290971818152704084341168648751952915242506986869720912197272764166399894803529381557206103652854298498980422793399098463092628786791888447458228183849154137902575761730557372190989173358087060952118139184993922837017330476881808509917109050444013024907362722374529981247942216588118589638088129678928602717850035024790613642266669709655633060101790505226554257504425919798843096292810306578173471637056821333168501954675385257041275570407558625868324966666399960771750714245424347638073499350925572652501928764086485029276184971730458976251487164885915989512553752282229553578092755157717734942544940646365328643887343850334217530702797210788843935784080519477756982541739321292803528190432830422660811527761503372809322228504161462728022551727594025891404956780402766853683560064837512119565560379290890174970568828924953768085050055117044514709040276477095266126178911643527084947663336330375047626681813493831684698386036717861850680757090384099944166818885088571567337508594523816058288505949719141157735194691638266329100093631968507937626265633997143885908306240500221068562483937545166453897795264550145438489917421968312193140137285089951184100975097941992374688409542501321236476707532895687164905935102896844431703315138814848447542850991156551495493239860473470143099453095929657329964069617905657189155713959225222377996616334929240928510690021217235135430809375801321612313775451234872903356146091481642758104995200236087135985496480127585119693337261148782204827141654286109728738531498106973275369685591326889312465886397377860527964731457851274438703755129143836310148088010255497501850563438374232649428840380798143255578001639249929690852848513589836391329251793706254015022668173596465759859416332244151575736726621923042569556660186221382619085148801925812037238815460077600385904490388617664212001571276624408763052928397860029377083531090043918851565881200087431950741028998065659379888701230973100697017955799260447386963611607865159837648650167948516328593343196281286555160845291905914267792049399041189678877878667430392997576167646554681342473563285175818313412266269003748336985031872001174603213572511554875102276922014334441704147593650389209545499851876990021428049303569545892006008908812289808480549761464239812417065357454304376304063168249955435898519767797872906794047694811267909513557437820175241646753461329758000981295779099727071190393638094497185203956296258726823835894718541656384732924275869509842767377721923321752765396866061772823715965708211852130355810363815182791325694461193091588133531942734066542884074159970819492402918388497625748315339378522525466736508284396554011389663016763904630178354753694786523936554798320943468147633789840657847245685231420759944989774128751744945814534657383789979602559586269280739502699277569907760849202215589743467852439263779175303666438705307148525194702209570892828636950493585584893209095586866702334575543192545148525425181288007849915141850033013801828358291916795101513506325891573568794876741918382330615913768592285263498332250831999552784862550590848674550469516024205215252356676382666432062440113462461848355382319852719030789790489156492881675694951297606022618515957509091442772246331356835722350994112552809162282428528406941132232568995320003903020219696821738613098796980072131163862039032729719199555770591894651777085299310867334359701908675463750777494181642136624587122836257130969042522142409274144442862946764111157853033390260689928399591420734459182101298789382713047503738331667957872739006283488172123432793167900788531017927782057627942474196395117775094573952744389586335334736796607055052701214254429947908049134644785323573810923689307860356623664611507441594192307991226358053752635962493588388549945357860888234906479853301666245572094788231038700999172108651627001741277647893143063607031726839611668179673599740524372188534012062348194046773515110115013575303935536135039838765404636303172924040044393454222886650437559521685357963855990474148107366357622269326643306422466225136196475599479394475167428303938849538786086663136853656608760867401686825424385950930983900950824741461151827971514792538782363231160391015979083705326768537133565305010892559736947825669352228981542080144662048550197653232102181616621953034657184128801650285386448317775303785757210757216727037351922240314148705332812556025237909652855171060447447911806731970853971002068603349095233692899435173460169991071845070490952869577741317941205305663931582598080094541598540456847401673376199344464418595248458578067918467182672145793302716286484233254970208681474069158570585412483014262513491301317931897383824525493171754034351063059441518585179933228918463985687661286780829854282141129066850039256207747696005665324348516251485428270485614233397106339613269314052482118402280208543876493282460070792951867118770746416457364563422226184718124284383548826605654175590498795369362959585446649725411837193356979846993998266970823283120991093412559948081987322038686457497615007315013080359854540504067340560123257097874696291882994649670095532299328883162376227702344608416178629584181003305958546177229060066089581303058313139558858804827622596251755183942649806312004512718100192221949705766974885478445965926929976916207972664234143396980960850145452991168678452787722580150857428597643180504071622854854946512152689507976140983569243094174676545181719566747204449842860326968037184108259382733558497438549868558051359522845528759636138602758981945310017076089442733247468724295891164782188536209845829468385500304075110083054667661213169494465638662336973149053630487890788328740420726733833969258348281353332855146261196639727672957698744403654713600165916747714238618199164530627228981557735662292266108971779778552150083462794644093605843157320637834761951700001658106021009287840443568206520194527028568264322176085537135816017522219734672233277802743989435971155978038127627806526046703857508556025560810516667781838855426369162112027595476357509273561033756517976994657794959611449116213116791600460723425681348221091748555704161025408424839924042350962196912636812091643490379266934922254635101740341015465437528316207061085565390821226693539714144670163871339195724562013513920405091861473232182936195189123645492088239049722855748828791425729913397782224781865210133914143716010778081000716129662093680467263377030194059184785858558965573088936450785793600087862868663380797636890280780619857010023224477251403933032211957205696718685594238802321863347761125994354864992447475166117836031669526375416043600635663238710592793579217568711856099982281111089142464610154655356596212704209994403197587351534398333195609894173093865474546514099938561893976935539224586430358876231576156258615874628728187813371123513458788378558042169776439852599278985620499624290653889621582122218978878116258382965907363248496977987612007130681883372519003703774034872856325042973496099347660728486400016319929606695437071427118319214099244239469582566542054191451204553618564423648841481602605377486614986411028375951629099962209123298192167833923964256139072775365707736393785652511982297369678692468915137165264869759651344357671228268583753144012628041840462286935889735824637856637878484474816412107338167587759228223079154982210804795904348319338763433073399499251942433721363218567191536581087255275493903497011795310565274368888944085474666472727078090980804699730940520281612958285684460656291655076968023561451397859995356144918568579496089902281540993189622735210747582448567245261856995100482672561527017230093439430290688053019264553530429770999782891887127297756731225080121569089898570210462061030326541953558830843463311842324326679350246989405747391049323557387286249786807514404987385718143435118385255825859650848619765348305165577465354849251847062358463611289612310634756134878291962857208080290215418895671695470578412636065128050970044865339456921267610746489021826015136002176404207598573343042515496047121656063826907266881060328142047412200888667349415179972464443148785230281956677300985742434525278035472371332498112111447527196051728526390932400074100850410135349534043775070868269290958857596450567776975505181699765477424907498713768970805422231030736998621442134449704808333886290361924628576099417006595275523499456084088835277119951256411788748775542690695378901665837170505976068817790849185771618570218746070392004112101273866342584584512364593848810490498891712468573926962218064811341034779857899102853345043363529355994699910797483860730938322241856554365049764945838570957547589241810795493778579643168962607343645891301527446565211457861415577099210493343713276548550207819757756130190263162731285804397224267414660169404353621126647620668955718147149979122203905936045317129530955540122855108112121858102657296975654697231782827535893252633833111069657658155611735948679547594241902955820124457509075378582337046035362261549710395443112933407783239085701809046135796288485527163402699650631291909942696959685836225589497975628721287757198542419673475301587463470733050737845796145354542520644230878240841408078858446279673687388788958520447092790810107121198779872783592423393355755619371324997959387609841477989828585138182650343224013063857454488549358970704862514278724296521006566497870701568388386453995903650801785861114364104266278696724141998326547334111284879330934395808667890754340702026793784774345535265665129858729013433723462897801078201155221887239373120160937097040686325536770926191900398941884114592615370118588666865895636731505221633041077984886772114941600466211065860524850410795479483814251404996368249707385899689414424666717487367463168517045635775424231051505809864764641739106287459904737924888107274308142859062952489093198549576289832417190896199838410018154664437808237533284022544160414895993190873008472478591285574881837697581895347939088019845806289421123611333546325400404665357173166732386520784503080166185929577080902713241189165462019807089554609187238543726113874966299766658252314714818800323795003806670859311859894219599482184048922604588548768880233759401421579154295287123568227193941659500062439118359348594267816404835416238496792420808770996375733873397271385700510172163901028140061996402955555109205148285953727888939586225063582005762355860460670033354514888308803206990796123184492379733390033115058829483859680206876710240916485958888394432465634466757463358495322414165188032825488208991824102940683182206518597171221056358109508052676082430037550648338281503658350774394016308024374809798482956648727702134170085985589113966218009352304353954888255902667090006571188533595233013070087619042828655767907621690733940859985607061588936193013487802595249967031591436244219977851983004379844414548655165908282041411393767318600810408771959657893608900600929857187848245431621802453861168378585862345107828491821691458643309724786016771131495903082734618524789221595763617619415803413031319184160775944101215743941774531300010795056860244225251093067375232236885432427912135305575926210031122118620382975027538178425417311733755171196818603652409284367663014028433123610329234523189183702230344454974141886397398650837286068616943625131655986048064294041596095582815279474489407960067040156066354233056608882241092462255818735880428279346966420860562741124597521522027613182620967360927370341863068042962094801519011215646323354619949604974083444358606453142115006726825166877950667254182169648683330823372445854924129216731909818022915171702763953907686075960845015945874597607378223637182049117249030372172847521476818938282858524186640140709140991778837860813956921617076979010060192305266297842195100992184012322062914006048217819490156194790264663131287508609290832444837155466248494038615248535327366354838102400072695037536724813331564958131952983295824894586106994701540983863588375105274450387542374163505345484390591298010160337024065091419654406408930992874861156350361224915848602375132873373130617776438334911416797427956353582643265650934389743876971254048908612995439761030944701223017049596779161345460240920721494649710448748038255096475579233784085015704696586134092609937529297506575632445478640178182086899760355012046052898752372284096564154010430487466276071861499592900351813908226465627800691749938188975755041245526281187695373575052501272801592229277826773718615946137192165164001807111032606654657645725683990411126551032698984776200494525732076336611879466854686168075655577881616833650598047997528938859344621827274827697573534811670385110008812060026845121931613861749872922797354351452516206626446755043513009958875998659114434873302760578327386061081960325678335368618252139853721463271371437336685259428978409279847787866474664495788358966808204514776727190703126288086197710771780875944659287949105828127513178451193902192043621739992710417481747355300551496807137461376862068261024582297889026864070620871691840805906684021071179755073163609712321042997983319216599464118768621739047383582397271020669138686758222340768371402512878602433601375456956121012111866856952757609838786226242013180600973001510948770418647501460347190956001644591325816011088700342409510860065966824661861862337003404540305650156032108961119564327940113323206244129685271897339002930438752682641325237281181878624341837726683170798223668198492551731114048429226360049729836646471747032035892511190314552637820369786254827376444746579634703436277452109556074920999706859663108318811970526754076084185209907452641268309862601434767342985506555550495836710687190384924438850171624189592415970643895517919761248010511832662108627839518091919316864715007622854915463321002949231384348040570977701398274451934839221971306082370165486286337256801393503481012122660511497687829462858623206434741211262663352782157747324524831241354286604862941401919056371445619336167340996637827149600978057687541695344544059947939618148914947728839344493868630237854457107150266682904961403798499699799041773145349852052515468029679746264819668702286164231214786317629241242965831276366150132159956875563032138349578504195023669392820440838149111506865684280960304863248529697382538002417267698709458055882387667508804699912381136464981780323271388627539998143064746128633404775417177869633386139656178859648317563519023653894286098798132431059641075020220490603935987091586349547794213809864179132509391514302291823591945291150294344931341236215198182158312032029486003940276863569012663220706625706516546005274752240101992387346902997506116316619281850976779226093100513544564938636611645965660284911284552622478572687470611594626032730492603873190984272702230227936371756711926858386376471857815155133520340200942557325702413567497929832606616892374772379092315644836993982219062239598863835129277487404921884865148618006764683647476634904354685227044181503294734668805980259970451471908678639269754209092714637247939872429080014659603061266441660222860405072133181508294609888507098056622798186405499892792431405323990348617380802149334102633155051103722338875148162043988162961449937118414730654864139725635803732060537419376715721551625202628791243475176956627450405183387160885984370464672049769258642718626306817461111789650712733894134312640042190022842688463221924960269928537680961589319489023042586438339012860852902135855253522872936927725731124839805870962208930684664626363416474317898670004740615864466857637857107584274947429648579667625487697959410694492681165765692579106373912809174332934276600828645347445122646817244791345411283289744575514650786956589905282466534990938715111169679515364328261511986468278986688971093101695910417845024882873523192384486242263629734975768439282263112020004713218720170864717837109757566855371393824758533811898056805524561758925329012410446061386262529720144955188459248618648076157532019523792106931822465517728586422660477869383984421519139188494771204012480322261461711385986494797565685911745747244418275564366755031861737105312840615915488212497193717302126743920082041117549865085468363984135677460883816733867417100470330451223726996329675335035568374255932788505284843970995348651151765903293840285069219964260910899068429037128452934549490793498403703950159436563446313995129824586528133353138964830395468537774238675823879959507312791666339121357622930082381374995088042414367706341865318679457902022252519770235995448842923046328754923496722087300742261853262394415846865082615318656058654778576997292533518074404638289730436121312487416649557732058303198526492284003382122961982940003572186558896092227607689217373213756128171401278947680860184617347613358304779955557011084658991846526471602865690624326823097213791999950260020076779284281280102189046550368644940685163746947400979670522871746658657334653476683285299305839175291925684229461333033502992661474903553099705929443017566334383432230441586584343703476466404927395026581091264882415178063849558473212925984863914337804053563760280606861278168865988921524835645436191658459051120653701944847924254620558790155833335432558659101839153275563432530478660913740702466588858551732641557851082711621409191150201876161758170251311700794414086348631483190552986616155411318677747603095539999860807938437497622730370371697491622920021830001353391812999182960402359866229481622403757349964789815652622682469224661822660033465631554440691909194461335922947647617530984018663445696494985417874172123136077955700462315757407016476128273409638979769774019876160194157601529109186640925312276183834786795185241937060797916559070575151805129542831018535917318636529202913084205780739866526757411563134564106004814859065977727755892339730476017611861094666839383170513676765980608645465328666753844171933248210350034614387006425749998217425218212189204246983459694601714541080967173547847902886679649005709369565850736027996266961684643111823719819499540175555079372487801969337650451347412370232866878581717052728754067680867786573319191806541465070234693041076026043807649839841877624335388381358188669313963322978304519273542000124434770143914102028058351376152486834654009224148555589073720292194609486709678309380472522542715397156446139320717562051057479473825563034044998409055189312252581517064469135867199454941078976605283937995021912602612047720514588368772774203939349274661742316966127244888142028638672914202278124193533297421694509467954520673956977382806280091534195572092962087021781623595731539858086734940599130964597843674616880332762471313321871636394671809366747344033575552621977254844202499963393867417486166811685800241610193571815876391393715915310763425043384067749110062398885979546113555397558398675653053924251133851519729571507256719493159144543886748094127009297425772211701976780777554115314644486761588881354640461003436754633954381365737941755202298370463378124045276311595878742915414204162066248867791261623850077703928634847262333435064417462265548889643289608471692123310844633335053371471733303318678901721153077481815975318740320652065466630383402472404436419295851566207720195731935194885916298153386790055105279952540010923346567985970645405142910657105043026284793759359388054120084681207165725958968868027794362993111922904628749893381516161241807541838876597271700031938896653365652735965704729837055568681510026802792385167950336520665309178435468005322211811784568324368004432665902546285945991038547579686825209123438950325105958302845145019453098923277198489280787845546749643627564616966261836486662036715868357849813839868252876195638573608520419332025764108658530820783460937354267441745879179816509776067488684034235879437881661119989595666794464838215477158445223575130963086132598323044566468192097250293449086853578658988884052055288786406593898270941098662152737161752449269126472228562674431790670660513250331868645720678344046379514260173334959206264618127328737794001301535715736623761268528321103911201661948118687558779550403940865122360419497579357189797408115563734672074274241577377404441091238485558451967364886883504888683099313898234421248549562023391981900603548985180440671358033140872413265815580856335529235868965055624340622173863587100591091666902011060085192106206152172988987083613379458825841989297281359378690846386408146209732157488764585454529056485693476254092899106691922560246425452910014982009451475388686919058507821574990164238325826612333030842360171331330197402643659281051697460061129741349954361141507869278901552316163627582116073452193855111272300896003399371087363400847445858281169291728401471592927128693719738225355396398764592473836932611280374299401387580817617506936047380882591607654996602854941583986947942913044178937413498128512994331756758244076734176951024244331173208054198122503155476482578701650869586576670230978527121343260960828280847222735516127980217943248638989060292519154480885294492491323858696753214896412844565058336515343983943537063223690868184748916340829302685671978579660416012152288340986978644950300613637984752788790195341774348444672748004363482761808233991610087405112235165967744517830869881921670275125143549469966872668737082784919199168202590371147765982606846429716828871519648270565798699379456630484995342582827100202874575142531348788698880801239182527547486293592025797500281821975100987009462917837851103466716091576507689424057643488232454106255171455768523557408154552326601776743209479870101564520546687532565105251479763201112266026752483321395508993126832634930136851924284030942602387908702532320478767938488157817991207588399895118242016254924399375292502926833808912965124723281499026982387030237888614435318987992150720017872694765932161051852405076863648912351751671937073774216243588562940870462359477043120052660625697625096842178121148882988002661604405922232933162417612290874337902228780458705617013577237506195216034268628062905378649688713933857125624169640793244758313698859182729992757829487069295751304825043666028532371402054964473380738245775558257092700759153582136224878739519806447536509870722833873219737894509894881222431666501069873961667298992096442059681756961923183986619179340847425788708681546159414589386406022961329500381200383897674502086338557826679881065690369990815678277851637829387094599361943366980652979221522153666288839940268038621838784138954997920072289371169507757061724002344871087289868380888946932582186337823435691207402895687188566870960612738621934987326322409606596069917608711200545360381658966021438717712875530983709902071330847123039179755744838100506832809511893292721912387121654940906640214568359874463216265575739792837308702860612939772368385814919939258415742549146335154871382041412850525611641438473862157948502590959169401670192222715205159244638478673684403410197602254858714058596203745202103401958672160817127019264607046079599287131210748035118825068233530449698126552095687157080884541941022535199131368352911597222819779651917510914125749066752719879928439903727410645886716871698118350910120568349817677310095484699100664217037510129640279526680792620134649082657083731273088778717034985381688301804159107350878027897814445251654077081274884737965503318298936026105151709009201102287182071001669479948606498841609925577821033292542220238243161693794552445077116612781957202899490592371871978763071379162077328051900435950630278372052428607168631975683199449535965461758237933195492218355718720406382172621701189906243630164683498799430673248974840299006267563686639344986687029574632955927635887212274173904767366468327098725400825658274079373013421250157872246935933602320278802133447547116925472872244278823478857202047848109668249573259465069381839328994408562932954845234695473247072095768155000318723362868183058735976655244562923337098003920244653970819808809751677590008294523393382538737975166366887244848199061917189230530293275282052288738997779857757464433066738428466834238197778223941515224363898872574249517010656678530267666437085462406145075109823826508232921923116946593605521624370127430023949248726600084644191371345373908817105432971996259217859583689002275354693441992705635449944646484635692114787273954542342093035095619125962942760332314028381564195812399216843570592611552186436729390811404988429872895401350304582616685615119192470424806777874883871318987189673826192473974908922169656489981576717048729289017449666205968008681990919566483987127996000606600983366508501317267050667807381053625332404361587306109801108476755494877494236585163719465279328497990577018451049091701533568613632443894879659034367873159034956002166426558152444392827872271735945948307893872024847342032229005213360684605312929409749758732988932013490501554663997880699917008737158891759567768947270618115030196472891325767848161909193884587339773052888173913796341910139122828818689576669158175066401906642575911857638875482934362992117191271873405497738537301557783810188444186065783059241045272431966922764394688190230293660368939291435279006788735345492052288961178860518754083104918089177592609625711828832708643634672781816274725571485025357509387365601944533705704297279316518324369707363874856092728216957075593521798282931763040398854389505725017873794655341196643840611832817122580580931386536690163234155042355394880397710071250704105678774162025858738990840071768209894144867462299227628920255085808162173150838975538840534942791905673448766048309707987391086659225293101759747853825571471946452962908784519565174095947894396337685688784133633407353907274874037663722052802244591605345737540661837169580524217180032186022858375322597888350188042317887568940238741197519743744461335259745789740055466244243249759344049537626823640150573472695398011010025658251311987425753891584938212512967996772536212764607639106722691844111059166671823174812066194772280535025793861874389871073293114319621955835900757325454926544053448587623799704869639821290623046526023715456974639828744185040240616064721224738628536914542275828158930325786719200381523130703012314500162038355855970846387456288728568661829588038151412597924271222800658072175375995609753028168132431908826758112139786458977874699156707712334130061405072073787477542271334777231879138778060411602833892807322946298610943899480428747687763090413828200824932764378445694666855969135097280929656029683784248319063766489758940229747652387483737070759029573229676410744477902854220571083318641606283483284039376713381480941530810038363462098874967409231416257725926016424131076838385360967743938964538812198718470878357602846575850066264301318358750637759834394232563195673889217864742511539146483061056176185226614849862117352993003941962679783511587514324719792100999023599501018504522633621366295417587904115529116300595092988709372051119953209519197875261191111785656856314582374252733634874426217894373425559443882721099552583440480781533630123181725048753761120985862139119503812768576842227060228808579228022789927013545026898289812867084694808586907736887547310488241352092533779928151782807224730432956057066223456189965692940799043010318005588385154956003875571015362883393296308388611837572513442929623743625690286239908180896674784072154164821536466985251118756835609376953883824779268205403556229310339823461721774992876114310711261869817671651010213281748432287576860492899962137442648917874708005217789914597936832576908254470499557365460738332954455037605455616875893846299352695559825481436952274513515963501284438165762387821902834477841943484916754332208988657258759107216380125745592050062613832353331001746356326967882997952231221335922955987771478425621528196600987605824803979607418806864814622218467350238464996209482900237216747151301761618348664856900958044527129876124136107744855016454016588210094695318516709496532028368556343942755258676230939902626468802521002348762839881081031395915672216752103640311682769802044708468275102160076529128596181232892391998983761546587634015288476402389564008009111707771686632584715188865213418100963097892468142777674442490984819462072876409911860617837882725606027748920250775654960922415372184898191399949304356168693621596429177109525698765509706990063231006108564855544823176816949189203353825938397977955201780600261504538466022348058428087666680800540972724248870988991814030172108374085197168446555068686682595762131761853474144377640981168876797462020371211318615031805348163709928051005793939581839605381572799053173564620472564675646573375238768249604428666275422833411947710115861482251329057472336964545935077863028139703502693355867202542065387692019113645684278522271130499308474015508320553450220711151829250378245841515954238572909205590931555877027093715730436507139197066270720836605065359257807538799662427829626027190863678584203426179427292788771387207422703925864789969888520172854373296389141798564954987123131742107811174584783471481011302200687726918811713906332237746391442787135013391013614654758235473132163877978594229259092873266039806170514877351051893526138463564900758234863291520258655103110341381404910157351617886075764396461883410175654448774148747743969587125931820683929218116808835597127226537119526746391354728890901025277774299066816800587753198706232475569631647941994318772899895890737174479138221069168303144302108832718736937223637159824877685112777376585439522066498763027698123461345369762104739754844398066496855150018242872413962930020788777423904077017175308740062110388698127516133110767104226560953420656279648030919591712222568605086606987787491958719528511720186301457223111255958058030059590451780162091560033927158135619396152450582940942877938306752231048760275683319313953706159405690082546716340768851873806202839376494141695224789764482748780159243938907385870336831106474829591656363194075978797738936856825365656798119405558294689075620974887816397051586280616049553801992987901072698852640686948961003323272842034061884542128979432188689707273878282736277850137270114963870884664078607942655552555485664825367262388553019570089909441814119681927828783252147436730237577264790630213627009294351935375202448246504450281774735303130558784042890529565361687846955757460304468400201302583472857878603479642966228563383909385040595996338205201313459775949549591878552824913675826557737086309853431031656991864774935235587698561676402569436794965082659516493618563908786677613408634494961092308528159575947324469299784378750695779652340662703489343992200393314202215964087874753079877248547192899031903311360675387409926265876145829524546296274478253060713708610093256561091878806290159370323457846510942541565848633675971714103682469068213645950225938235868980342052145842415628789109771259419886051741846098105218023309134915930553236402118013539938273907609601881270857002216149987904202352285301197851514825409266951856567653410404445485488177660629153334239355883040977080382629431879189443850770239040847501710409323686830979044978493238921559850021435870077134287158470069302471676638792122853028391120296158483322876218731270254402750988697775241867197258039845678345286723372626819425987931376892237327986963699571947508280574929908016092963856488757743668130599330030106516567168643311600879438178433180947698249242660826392564722108563028212285843591291142036032720601825232379462931092541028795512454170051664917496978501765868001286325445737872529326712774516243343601273403978593022215996177587961736148666793967656332219514934298376790374930825170161852849338344242504183230302641005578188318544879728936408740320396600889234387100234092685238849673228445668736570423431566989381131170854980556334248798110903902940206987883668650096416369170528156585835647747550488319116484306459899663270339800109706287997143154871743704811217006209186084162459632196275818916875947150823636892761717485163145845180705435880063797072327895745053875844710075645587473724567162607587558263162416383017589481237273465832842643348801984211990679033276995061878866730634490328278376485909168680653984403931713825696659592365734822356888027609504600206957367369539435373448928789454142994492422965419920687071717990820275112322883020637409880333243082840768023659962230745072395482913251001462315228385669963646481619930610803501193409855128778804308159545015497909832610070008435163220914097131668390509307770678257938489159213209928659807516647788056274042102287069580316910197690665849294116301449041755241528407985584192045942224722408579545248996880661499631295674599317874497834135019747600248558309355697881536973136321445251140829284181280450249198807929598456172978864983652967173740653502757578465341870784213098057357585098708923218338602766809687888086744587673937042506105294559344800003379484411869103438489819927217800456984088256180027740246971556880996345353705817713249665431707954879525776642112068569434074073694165211045301707775144950296642015088810567341856133087936907990859888819541774261880314414174869352930128628687697963497164412421773800196988110974862799608946093642530679104174593571283190402983113155059303861120619275400347429960129769845672881285680075747868256852655888055044650282472340621226723098765095246795551167576075518973671081866487338813913555473038717714825992498209065563624636888744281635475973802009270337279723575620585201948873117588147364152085688799839625539506720457656370866786849616739928990516639547348064688416321612696232140430881504303497879376589552559126127334944313749318755851522035048877154206128323215542501036958420117770608816581131085740672176884473924121518906742976799528434604620851042298929559015388617177785962596590245388177479964480573754259033955717369017939751600199875836990940353460200600611457081297272864924415558859881875024274901019975278569583453344943250025780204344440868289075077439617367055383761578786385387000958819357333590259466811975123738983872665368795543001841504480720527649445702579946868034994929416867471088204745236313650471152698278105520599626500224544073428713991949802538333850588539364994173363696431899882180369532114631746171702038807086634906478634042245846913559042424514028142597209433680394042646957628822203519760525374669196864684057485227322214112634682007326809912835968043371248986512484713338659995888231557036241284311923713805206985546305223962860016932609247618752321257009959416454501759791304831585882422690092440553118658153197845931405135496797501971591305636407967874274388697431812159633202424536958825090810854010748674532233669488741744758456018977639584490217493459710477031541979472175590310489551588260713033750922642894743661501146171128540489836287823217755403355815130890086002311190892831719794615882727339639814755795610481654721822820928241262244086617316118295314627011962136619959410879358356432098828329641893562895075218341609495628660547608202339439036938294410706907378421593711008435508099349512588298480556142602794888117357782314109215630977556334356892809062401470430406809674541428500105312911014883040719318106005561952937599440981612645437443677397892845582361680657305686818893290555248377738869788831833848212690033855255772963294850362572416179456068806250567439834358406885865279847132056820332680188325840118612253710729945929721983140398249546430136414120937944647846329673080412403157916714681071721883354657975950843790654639268944164367020267173333214286872793000675256808959472460540077392143662377478834036693706479892806834363066623573549188363067408969053454196254921859594829635299144250681242195784988353976249362699766843201171783094789764534282159211054419253956738906802587429523470246253627205862445883629916142578749920154783492516043423853492438434103038072737707765701474373435807984511214989021387728837611307493125184849712899174590950039321906256807723932545455469176735002114278251591537139224752151088382619575181255589919223775605562518625777871520402423564300801544064737868647177454853375685133039577883930505542984102745208488245638018117432441150886669417202922513871405259332921890393023484952178373238840533446532626937774732504109205508276270136010762688057349283410615014321179125841093281226749115294988416919441405798335403820079492052726207312385833278588756477905672110416544166147076128836100062438413884205310501400810107987555773152250424635872420813465170781968132664730526526687009753901023548400543198843103030585050732848566621892307361016097987301096045787862725969718214977745931912172420855203832230988447743733627260091079170854159065400695404757694645269352738958908946566093553216942712942611401893368884517558212336609288093686836108412959313689766825463416180797337993114349199450619767414038367395910438846325083789609765463216344296844750471808775387966011594691058469856934631546715196731054018943472532788473510123305556649244625308979855259889634444538294144883825709671236053389198293136490349913321228421884896608736575713694328636338387496569415447710706138034367393954329945548894604432862117042281029757648849901084613036258098852044456528892538656183554374669050757948211069811160943622727817194688442239013688504355582252243301409371154840113662138841082479809005429724928690877078639433835697580891344855483753885176777196589593658751543275029493401163628628419330604817109392399879190088420348729434372149461239708852170343033707916983162457660506136245905491835880524520307312984242588018709607849181635833763214177688535526484660862674494777513116337460985326156771682160131478190445605770892030801852154088126888224610885485420684333127975848092195444438896671131444617893147412936651281987902593291945652736873448363988938855389984361211680689865797567488516548886337690035375291987757693081057355173951443795272703800447049088560728573092526263167309907400068490459975878713209353348147998072978030685925274921540325080620629679885736802909636571196554547498326575576094672472292408920613710562170097933992793206656709458921208390498858846047586480114455232781360281453445795438733659918540295506010018789625823206446714509639808919967588596614659823701412873664688038594032665222408750886052884106719799914085448700729302201722026030478638886007108861726314153139237489947781917810407754525553693605459036378161928639420022669648039758682263458861375812853550796206064636202276341001562539119946325786788360870252437252628303301021044894326226275388622207366765291091628199888719161678669769861721068950090236405929175721859458476306892124704365027536886332835065004334618318970305082839153585060525172234422933189629437257761631522268739500581359156379958864009070457200726096898837387536982426218631495121398835716735638806300562903254751451996618172677820788658962727991656377480299102250947244094198014686901886252851004233665906643076501671002367873518980417886650864760380556088271198478863911696605712575811161433220316239861953996081064489115129903832189244968867711518198579850277044697851841628073295318752217073754278078367450606084368877693049830230414364689188683983700826939640606945628816416952916654437390847572819696146411957158066368813124848782960051923653886981669691441316437821280803774582231914250665372731866015855576310005458819146086341512013406605686188870305399109284222097222772766642007099875823159076294391295156349672083809897247230420387327835086014788714116048285204200743959607793967665745457415734381437629295610953115848209200019968349222746222332034887292297879772093259373458931853036322002185233292266043263277738699295254400374606548044762949827240428873291465600529045986614905305330341184232774713475287632417746860051035196802595048933541617738765023888749319108406652138046674665296435771960522892728790582333626717180104787074150978653274415552281550979887501531432569914109132995250276991641218479890353417341802888078594370474700374687166980729136987810518876913482317431997181756973247169341124042193238323758158340750503251210242327215999762255953608171639688775955459215200626349383277938717450987669553428787897746644363855170650265044857714758789516639052612887861876717387540459387759244936972468702219846805151918260343414635153375173543983465840366500780082518879337619581112539605958941718804721787463604668507755956087664614979975907257254669309501812266059756388803832045120846386446499477556747110488258186245181148216024173113511553376394180161986082932584828502888197215641249354354937014722183714909313527465161404229884034725873584804710030497103678619969039664008882318902701410218747143973930479667127146967452485821961590443588575047471161083558276186011598867992588832327767007791348806270678430582303768443224083728557775850821627326777552157538549313918894433113709888471879765493099063043708381210797273160414688741044273294030727774363782884423977594872346291732896438885236489504230303395254772328529225182097863294127922776106997648396446154980303910368747636700744207288860134868042097834465670780850085124892609127081572378968179538971471665316354179274132493745551049067888770883053829104660986180133549273647157882317517022952925574767294380718432352827893878730585071721698888878408709360848912758296731845035233009100824500894600016837289698553478156770898606637024379918187188892713748359424429636432094727572711041804433460130510702217782472919884095444291559247296793147664168889064679909456377046036998870079612857346705087176357992672641907758648297958015096149717986439323118708891590230974516834357125233587442571650251307838439678124895410287899686721555835181821976729237267508888922719132592890457053921699623157341359810162606343841974111595598712194855707915404099126084315344947889329361825971466635209403043017943612630797077809538770794982864536667632635334220689453430306269748578894296018808465649020974995525667340133802823078862980681870520541252040119990430428919912401546306489688950755234800192945487528805570650554523548791789559874402509130074164191809399729468221035701898118676889672154904495028446259968376782516887270792953349935513985117238049116955666124418804935182119542314548897579329549732901154976327970042572529288516760556706957888189166689264962782660684281788855135682201088985986486442689731040420642038862021415931334335650607977648372861174785410131819538820963263739781867889950156702010351613827622355499078167081762580063265190907230973113261264539480612746157639746972903818900991575806307458753851733483346860760889646227012140401657955979081551364317926971432781160003950929589013053015664053854401446819567416891439500506012989953252062425640256999735405633568511706263129378820890296557630557832675616162922170394518589959392779546333735205016889846436488820731461399285601576461908903608827005218388294490528350185640650433641753501393498570510063500442327755328051663250155536001685589048606321618016788228898592777398070823443012187649829882195076487937452732497757164679437682597865380890577709093158268698932185675410221811370662891505071916924055717515372979854679547716944046087285834028906007168255878503502580689802794309461846725801862557176999143666925677662478882563671023905089297579889072489522270941846744341466441191197624863088675226917379560846434163676355883085129548653711250744903890873228827199257271519966000216669389560503827951906623371071029645261125354820180816234059316123833838909278721545090905442719803200644225323600124989344843636759371914232277851596265768452530758485537358389100841651524777849983556099679145290553712899338041735803322331380434826019161910280534759866238541512891103895606113270055649668928131675551297996763366535540470907939888668953068578101733026605688536895608912211807721622589219199243117304892522497125531228211758822528265092358229122520413837008286387959940889137533142292025537883192590178881759789430772711316048915678508678373881223628875585526611865733674460891422611736332880225562068614958467226605377935752555836093409891638296365998007307845001369945882120518915974271662951889363661788724519387988391498507463670116146235590918089146487824769832377597870963455989163154570680055282070629464310763848171836412428448832224163453064177764928060031678970019137344145995891729081813008273571202445417814606123726714401875382252745351515524245007907975368799187115671028453038918187326563112819187358142050423077462972254036963523357483065620485610864093427383318334634327351271589199264239390049127973028883783463744236046441965815843840531910829032323939150063705253777010659429219892007663931808108787655759690707840731732397323550634413585567460029281228194482626386918581367216041398921546331879072561693081540996943760021476848236668959583386445843391397341957739544589473799649939650189229731801875821543881858049244015386570718876787890605894343970572439680676623307775021542477708237790892344126904120760661717514583290656812401908880652059214459722368760226173024555463740562074808139937748924670094125222153273448841706368152443582561186966261363834029286644970066037996750179376316763918069489253767843386214908962356182010564061401237788509883566708473114371688891394268479485387646650984117195892643370289215848350725860197651524604154356067627464117810379580551105852750942447296557129458895445028927046822567201062098620677182166748688559677813336730489413888303965661219189330587140477845513287672889280301432209927052902106177139212773759052612468035783233612231672451314301832827898769529904655069884892985033434839833599227416481068335963179705040480171635758116961108988752650503945545081890457820333988930880552733617405890660762567887602344899655818219507130679827984374701471305670367804002790888262609689318751798433062161683649757733948961813441882416886502289967808162797562569227498087402088768810359436893292992039572656130506812883876144119591862400223644524800394799942440582531726824651352094895966587268933936634884015099283759846464753424030561559065105449169124218607878117680038993076090690483506727951289341403003404594882920845356727163295012007112146837654494140706925962143328567874574683801853930454624893531369855987326420707337362095268253300224659565421102188316355553221022325835419869926664913531929638936187823490149158700147749921910894650128017261865842411995774784463808881792358967236549615822753535489379969841302939493205679621375776989665420961561839357548510610187366314026732506199565814384095884354893859271042752474485532015362900288790273637151170976115751044744485750023258581485607889851283509556128939212441353238781623331816561192925762099918516879242862423080170586007655853464509921222138629193200689402916671040534441325309940503148420160032899923191032840172480360326411739587737364393158054756344611894166744219590534169466563680049974608917632616393699726800567119190081116460002960099906297666495080108942850800515867038581971813055231732463017352876930349789853304607612670691519805210418792169386199911389431368284102584387483086310227556652408281412368889519506244729375224036690315921818643234026919293237894468871517708076749523898992149245741762991858043348629606089363110625810014138063060123149436279306878945332687687714744549611824196603717301173226721154889414471580764346364476457590703340858879379388551189467519467423534045394122524064570712144659046656734809242615388417502636499676403979640395064536033058894746710659160869493642767063841875250763968961560317311929268633832386744633518113308307439130354337228948790714103079528227165884110344434857882180908028208295544281220038019526602186359524610566606314957689491270251582303335224947078904661050788518613260070870531252100924188140333110980343254472187535643394895032204046595402692850448855646142510526547958472166305729945635788271560772802148217504478700112477938951657070567309892113872193059290580864978398631943466325792242834020275207962010766746046940717056095389525133339937607492713011765060222240784478082149383963988120054778938005665780359904311487101637277035895321449472844806598021024629628637432933375005342109840248586097715946034626507089275768480320183619058954498852289280953768213151504355825172037286016959609587642513950138220984049612226242281734043402808989553997262257739330366102986819922133775791637356034537807550181325596156935501032832994238499747515243895638100115195012131780501387964656284915433248919433718326947019268167675960615918788976365260320865128957658522642452411995901898187884508287694437676631849223848799241374007672294068073105280395354023660389585209984205504305921203882755655930480839116597306245017725252787907988546850842585551738383833851994895934428891591225364411866964417124240013588796072191061349423083302978966344308827110746700052362997438960261023180271422662226187505725439690773814742635221552448324008043756966990710294726405178030151618989611026800926358769818418013034526647105519950731606432675504048745317728164797498493168163518881132546896214996403183140120849999754505654405665114835838717438107104444681995736346286893002713717643069604148963783227327567890305080957691434783086703540161620281849114412320084399928213181848433228813425512488889646686544852708423042840098831385549010037940264844762363637536465110550081029406609915248147926317308896577440642070953919991675563931676247589083224270729482954432815122952903164750609810715170949321661688966130222008489990733519284840900143323698869379175997792387280564485863635604716964436602044525970486889672215144197815912322747578772163986575276098408998893737775089374040658456115404534488982635679449628896864224707161326587499595583440080244940052564753112758294582455523833993886160216709540903950962298438969697536057944381677828156635171719015608678501022971066937877214909889193684543867259730079749381103489702945358118921302910485720499673562211673336635007643262740588295448615756961432047896330591725250029897165595468048765362628154975767658027787559023678734816250424531570274183539064997237143086239536428338972379852588093656358087875872114167358200023785857917146541612112026034272557384221551801587463057767789739395293678912532977700508226250081937416451141684737365725226777890874579968237345277327360629946429897424169967155086229280608031678771501902041616630204935075883776906618674616296470167705634418308967628975661887440329705177881452434012512226794104121776172182888508159721642083847933339829566994034959379089767282033978008796049701378070294014570618322752960348530283719222610059395644991241509277875461366823897714612894699816725882471189854476146641359747240400116726464033832999040150263527121857991381875183828978154225304799215388902846165379294723637963334793127084664272273704354107685379121319034331192450634589792076733343809168129039267109298757177148028222733070858590225913929052589740024375710216995532657613898033518518766386027619970039805239305274289337090169102367520745177016964047237538638287654319043029038981579819304468286320454301891421607505169966851233644518831394315814046520685035597675284062096864840089821463298802638325495627213258275734485355830002225513318596228864977249448196664152819040702879710950898356777558383647075089292801299214655089846527007269657168897401324328795719821723119028109909224942108984691151942704477358752026602177872997393804329178321634672128872843369790316934859245577217598633216989852291013129964934565694568312672848095842925093551561535868203373672201361285171957991790678887948977898687415579507858280400519879514379310240973513754244522910665873007865462514188208080730719268983913508987492537754374420265701651485490390378491533578352391950918422941007958179462613046216881844121746806289882072287104625149387649178333892585359415439913580058590242985408557250448942910311306684106105252152898994364058942822561951509029885349670118520896464332041879321533366847500909379474586244050094419795258990930580847057304417142280778565703712794758093456290877047988346971693235516960591551290394654649194689919769565801044772122115297178854242063014493599903647048816869639454598739566495684468008279740648593899297628886154206344959520477876479602222481404518711220576212828951209642426243976910777918759891509168993967488496901404178146248821899204721539789701004100445191637463548493777672404896305617608574901906689944199208564988244166592591364114979721105709200483463562191125920531594952077285728535022771786911343899517095074741774046112597710544066392888757183933236000244502603875999517421359497976494040004144093988996680931932864233231380731072605234702226995502975336413333363768383076991222391147770558599778428742589976964525973045897989161844009118754738104698043805595170062963032943375011243769165920722953015125432899813940544337789162781914062155168208847363453419799988795161172610284106323369853456622714089825020698999128670444116902582047965765068060833893544908621143873825659946434978803232721758292694516998631267390005875109548455878463140759717201962433708521996779288308204170836282188671042940242600584400437735875900133107041888142219209246071491335029636905846644883203194741017346112878673517942209414546604185340309002155181556232143165747332666107989803109068170082688732101936459561785851734505472858980078728721154190037256740244197902884322531541019214013509123867111032321373145940511561470672128959326381967580376907900423130321615824730407013885893346366335976771547070197732495488145171495615889159727040316443495121859005974704146717150973113294738480850210707300489521237484215403899818595132249014418572919357094375241590069215545692963115014493847033948930762435538342354395078579177058758873286872636137723131795763188119900717493997364582955995596168471447844151898543077414559430091627277706400678452622218860633810672484729008690244026426741339072193530058424406225946425394836856547845053434905296743058974864956438929352506990096872825573073886534797956973796373941631251221135723661242014026468319875234913753259196515806193872901066619391605104935926527132169220962246396992453394941681487697594502275693160173729782522593211392279011972644699078707972112927010072893164141328975540511298607130045424497219982559230173355939919666258890126284890280161029774147281472179960743046863683943583762096637059217800358151699129476731548326243472901325298003800959587555545136352485292336603666133452157849202685061519492034529021461785142032423310429014284863520896879742184540038734941728320117627378226479639784677713658735111930207072225600375074940790158103946338951998454416631432297316080844049828135430303833631635314540529914831642560125106820856569901600160302972916584678918322105869948910040780107692477825728067218658664493575923770660199972606595259017543327336425038947983366014319930730848093451615088048076463666752908667169362062492873981488799043690185333871639691167273697027312653742840860973486972932552788541993019041684282321395857966024873754065901943926084953186341346946867892358336068033944557618564870113259642775582026319256809971589448934540739020545166932384492149911855493382824457707668823052546979612822440415996689237159295093923732119547894590210740806774448900380624434575224611555723894226838593051527754976545431808349023872919846748693162608902287179215124829247615893514149141589042351050735349679694874918633443047936252036510556721569888239529023034980523015312238521251326166449473704612481860990143956546372710175562161122110472247926506088187990242187856456477020191870817409827426388517851782319529341904819315715640400178260080474641545364258579902568822131471202195068707370393121533322394296471014338817639918115074215554226048219902450082052031559026158803107676568812198575038451204473602796923884894398504077669391919178038513117904637264578728005690276499501595762530276734247490355778730320694669762067937109531408787466090719090054787150227573861562902828403119997936014817401814072685593464247081865137267612797342776412408940702412250575912833204487679029508382482335490062243196257292826480566009677509285325730388834182425044101944383749082928907704415190308151343279012631862709344102805833319718393808451124787757790528799614248096853758097666763701569484903134874317475748991463889163350433836273988511029559099726899559047151129179455591269835942930673857439032048698989855944326198964253434921711717619498688138115373601192528376348122187771094392593220573709590336269816464526459305254130817680476849179967094590975627099457464166873129985177713155886207655433151903402630236084922353201840024644269498222009388561981417423529421101204488878651762047723100723557737119035756964540267737869878293238488465868548243072513224599718195176378206516770173496390729119732315211090364508388963690034363456497713884180568029841405323097836878788733235745843716778596231931182129965442903764227460331165621899580738570914074817090777072060125825537255988182554000170967909097413385517915059038034624136279629433752798039212161244942285734805540929961742218675526706638715401971649592580419828490395727233943587273849129806250522990823041441796420186323933597564085626472114098710275684232847105442904004769273722795869343255162372870613062489483176830059503162735392722215559603719126092705632090016889041446422399745990762836038614515601146790867195227442253415373563043636807658209294481681575624407583590424209445041481836940072478719937160807471437048052724122720576200148265567384258527615204225756167756904363448908355159040347559705527811498513025087412165561605854272923028993316547354990791561217866471789044134339282499415905014092363201698408680599677236463118003230917231449065960183944335732467994721363690456714309332268725922769959786634219848604764038331215159824633481575389136213747050626776094939156543904644496650307157560190525614934341239865008633497687725820142616035876421886575309174051824174917841219047530322238300418806639385455889178762006878814048766927605976263885084187671723906882151375344690742090485279687593862965749865441776294251870300911496135284438920514500715511087309466495949907089979305234904901295734938668817859272442308152159066064996075502723760812723870585121372745528886177354454495938519050589568775195180268779856482520266240944486188286727054207475043536799845846802118161245119179164083890518220977886418275681058507677565728648482836037024932871581980604355587998037575747633172000054495984905298725166885657063033528760680930815901814105937213785607881031512925317504110509609751654253710308559053174854899280792792165082670247752463749983785047234114872240388787796856216589184157356593968703031990543507502981382895299683035730430607120754662998058479510773229041914306816287029509007188141342145828905541561163276458979779431852446703335722015183008067730098434281459855594365738971990326286100716746919056150902659464279237556249374235121744508031213499874102105040262541157631141230640337384023024844739390576132777143177832648722787200003132437991158454107320083254717655335778841973881119878308116128253343905850013791097326458045675356269284834551025317569761378314436825247785430693706314325509640762249427099059697276210616798163074586477313621029169131901935053917363387720959307728802113849522530852335642009190604758211321508141634559373276638164620996415041814279261478485611225096974418073994012186495761708774906129853908394199011888587733637311313017101357779033475620443952626076779765685385041517800286220260179062398315357894904544427165705596492052223188354474283111934696037119412186093964743696835216300841130990632122137612361931555091187753464456042937379215166896202425471680377818274638590796820735640934299433906442717920802887522112543317901141491160047963896033187722047145519259305894869335049922335765207063939065366578610808592005775957357706056346934576038849108050669551609381069436621287588273316132286483143190664717672115704619235614650037740538721762741113660178235855845173100298207789993646817768759805771969906704429326564149288895061617432739545348233166639979174849840274783540535912002226094399053120707660199068667274321466731325059919615374919120610926487819537779061425351892234661396095319606252617842571586990699243782660916171746497163472047738961314867194294824902919894191675830888923397311741555417268094753907031027377979970981756504505473602276786210697540450592614388377815161792537901060640229167380269625739071434304645300421104252766230305520724757393067927263937131887228801269585549042486632283070227740155590722803422055731726091592927513287204433777236381546602242627227955242640479069128534664743956703901536907366448251186234027804025378088666113535664410691376972388236540537057203264851330711800188621777680599074795321806543675321022250428000439940618518128895361407337239506631151707000571386315302132936855380190758489869696302851089301202179506470724877503209994836756871724700290558145698405144674694507188717376907636802873473556196853175307566120156930570344309876149723068952866444156407483458808986525661664379729077028958684422039218194317151275641117761475637140593686400010358802638912596923817062276371676287480690782838160227594105114626922888091294330277664959472497384473093376327460037108435907859976671800558687907902873018322966729256651195926100594158100365089290626039997891076469310195227174464519944361699915559080641564121510871438208088680752297850814802286234135318439205666397115246089048131844519231492910632890811540279224893782282515457682716245961176395668864617423953715865744626643996155478905163732521825783908233253564458989290595192605865979867134482744782626667898419196273605935202214966815704365569041670829083575274458817572811609561481857224369546475050830284430753170779235571329348761178390813029105991835590842262237468671157570593774909379757938195247331632266235982695699804734334402616879654751304293461624908526613460747325269570311488146969164293369071948154548179082929107206942973187597197310154261993356469086153283618228701515590331070614653042170066882533797013234495060714168352686098813122722054090309466490876066185857999914153978144847741564082258903540644906463510615433719400401386160350714559736014278623908845148657347962179784675702189899513333644381929190530085773995045234934957189684612711376889575979339089234953320895381453984677028512410913999962409428615356154952015641889962125930051264420968659725289990904184350366818804807529105972336008365482357019198685509260350048765737882951629237418327132367686584909194640005967095067783453610036744259491885819559592690251239311072595121211563382415896067374800718329092468778413078096938241482915189560427550175420651744208813401454360707135560267634995975759600410361690930961213773621820223563980101455924936015689714897933365854991863497304103495007905509710373294892197909464058869953201896649335082043100488523059429848680178555656453897152963868713982393892788628313053889095987044163387485323665505625430238286131768314743993446156093107653849475846489316215158358898933919590966732944334790390909645002015254529742236093348737748570906018648070516991257559332518203044120573389909711692494979374444181721018004869527481582486075771221724138298525297670352688504213303463703205901119098276927084231224737403990344676189570010259178589661470456118869055431800013574114545384809162384560190999398214576980154036744730933242141647275552190877396917417373506414595184607851240181377454588376298910051790660942517996950365872351329115406941185580040575610780435791910515438952930178607056885781172179101421391550953207211970898415221542531647919304616049811760099940434131909911892155136512261155018131191020735194067489641860940284869283055022119924343866309661229983761658981274730669004071331315325819303910320281496745570289271198050230834294907246105491095799550789366026346984656628188055490104387898957449104093141529641433776902605064364098326821763362870988262723974302300550638516752892264837509508861372191059833353460698489068556859024446788863364396043781823649316075069795253661777044807862852104682093268910626682897220715910980081977801926495253830472463607958939173700369328966358022050659802853387029968099107222867542712913386999402663357736086375404720211499273339955963867139414159950635550381622713179928791086143298924595866321022805072720176632829028139513624639259879408411977424214784974887928534813292261910975804296953605684964163335883612464776047176630339853772671737323232435192979733423764606700725905699110784778225901022471861849551087004140155276349224305850649791746999412247016670031010443276265309930191115284206842468595235910530969681058431185510376080853681033317095349081348831311722359377438741462183911292650171560903279402818993561269449639671433207829047319166667808518255197717288006277354539915927899113034010786288963661157080757926371251575321256434587976758227986056217853904634438782602247698316447391140911677313769865439441397481344800381829810375495058853983542914632275329122606239178293199621398691911588177111184244196277187899230573504472457753831194338517932212857660352121687790114047765897677843569116963513653291514930963803910475450116996758780279997955389558550059045533297935637026407703334811205591179679109660880465445819911756967335381794020297742084467140554762538001665796195719912620080781668202911888591586248572361559940162554777079141116006764078260807710789473437289911567613068507322496315912319119634197588462764728819202367627163751947669533254204908916102491648373349659172708001471152710129089091202961211040472462065622820963283626670888972846484919450548524147558133923773626921276628090107039603912129946262725094714117691214291335397513015143177467168584029059686222170801110366607146302062064220739122967367402754445111531868035737119706126321435523468555443824565325519496223092442226276161810763532791231218486711038748633241670789046885223329211115019790098723766740155479167534474858911628126868673604912422299435607682697833173517639411375681873118531093914733161347146429574802588661209843333626447892329125779921718938110490257508983329575231138511638411810192449913293008778472536273658801679273239119566791267377346029231167147252754387732395409644074174493088103356901689944732650629356812407468591689254650912792110914231643396643496535539990522603047114871175019510860362143788792840744982527033242516917795349128323933805375341542863344920057275796819187421842721885884666266028133915912265087032955629743121006091298476462382406120209740885851097134502445345626967484521749379519983660135959959804421055339305799463913054121565926037395454813070900268161647358075309070057946985951218576692820433593133365802104393580169131107908279426644878203528015749847777187536663886871469284922335979702018592163752637064707239232807191321774975523653624170626315463270059026630402473980453353020409393130497397130791718151488632385160351913340918715172725963206039775181898773794298335489621492988306516879726173233429518602919791235420914669134176185808120657850975540518126245478535871423498722824507628021855541643937355728734131770795331826491351069580231812678272926217247904786733132302602879014764854335809993244372349188499585994862583067600913601220473363446686800302177442830895673212065731090929852126853082935352033162609612387192704749103169137941151648388474797456771234335574429812684461432753371060377023811587306886288969394132363006060504291388996520045106037486769613649172511721417104539723698376574825092862531991761037960505070047452751987913906924383079720813365107458086253398704529503657739479437519432553660014210556464148224360616467707919140716585117656108592356346094854976447796211655113187009699029140731514839039089918159185783326502779591413957841825197056152467518107456330457082959442889150666715929760412803354745155100439949339911357400914236810821452010037166333769521213375323959064451506523337907475042857815969527569618178470423817842039143159924171121572817531382552899083172227080319334018499746246615068641371786793594805932728519643357391446880274143158690076520872345466373639831869120209656207541348874115504351794570520219208662862157046914550129595131279374407246762041922665567445333444729681714873544938733848016654282642378338483175654389146333617440873218792199714309719390756152899799193348168456648698943157601438028626335331361857237931691477236606367549438005252967139974035099407121933737585712045559496028444564046130603362226362162934122914845761511654193879168481328096246952444569546212508791189353983221963789994987057551748771886105104529149587091200155027181112140083303394599977286587045234191667304068557004717286117263358849682710717450091503538903363106665809112216112279535205973563154238786279221174002792992766027230910087889644867197751915106448528542367606806783287027160214912208907383598679167790798465468476544328863327545926899764713619152182191936371970943091897609589330741950915357899815945626817403109118621361123870326632874592512380191537221859237596420397178011973301354548630311562876453973330103535199368908917165821184472025394047093915417833060123964167270931216369379193323918425977305276147922930212301316365295613762333052845463774499155667838557241630555328610532755207843894044247233087001494007564853949389708563666247235115549684263791560742241985340721884331711808624785109999817623225805812020490727023675155996038558466728397347325959915761271044969489969280704087235561355018834860982733449421192795115963891421701337136254059591584006579158637103362185943540907214950797192642474168788661350962013130319398165644318423191036741420512556863391592809855207709323995574220458372892438309481108423300876415366308472416897637519419399848086392769531916079016437278029776888061624908419337641036450961260406512736947334321364751668674541875423533249045259161140012619910255049422060899086534891218519778520803538297935164736163639485284975628497148856270364291625437615253034856791421813834154676563036293594327156888851139645341755011355523422660951773817818038916393864430908305399273865319883923708251443497669579512540664055821324953476082446423795952046740371699164104022865060164401188212816887278392342736929260620640964091959614590431451723416161791510706177671791654151129700974362635716917980979131076075544400727482316585363917076912591900555112850732808167705134916674907414501195024810842767773577308103608450037555650268658270894906640961146299690429226983808434969167813891492479886224871671281240892627970065093741291428012018819220654215938973633819322591270713038491688942162931911004907149225362821862035617644685446995943076419072713387818263384790269051413488524088916934159704093166717645848516539046001096347293231702452686080786491800770245426053385920091663315079279170787324832590160442171566874940579151896771159131892750178044518249937438743299329143554374680946834091712608346425268170735136026784411711754768030257828432741271295550926710857402304746960026445711893018917205811218925757250024179106647302011294693754953338392710767838158558088756706132999649915893949904089173749778235503921051363016467163408622693653940345676951865277526856031286808815689169916046013679356091740028878486501738703611861366168233700637624901718703548391653008880657523737679906815547888893864623917538043367881447386263697514446353315136450336525098779541309399414676011222285012782734557551595619849176487267288862169113912786444182650107159343331816055288098093137576021954484236689181404876129698357491770368011755189133005722699475919228724396947107244977040473296751338485372898919851448791269339956272917876286301571782705735523845019366528869425030157128864909899305589774514806497400710813760206766061009179283353983207243594567205949451216844025305614161150472376796871252693156319309816082329795042589816691807480087815264867736414493569584287953879511112090041388243506999888209156555403289250228805141696787918192992662686222467052549066749536250132697003182451011407351929815270911682876316152545336231324226809182452228896149709173971135352554401236086188154541470853204672299469390714881886033268282617228269647891835169840975561328091090492994205890209975868027011829714381130616650165606940509417447084136593172946918403683231488678378340158466652627793811034718565273429011264696899513522043813883592540845087574293409185483048052570263674681999971113924994308238094814731925760115285382473572083149105271608169922281418691867532991179552447748792024698247835770179058176843376667776890217764906219369958965467659969428721801918709781369213674462209747830040927181905137635612325486127214522261680518029325681831093141396659245319188034423688433970673528726638300045419514644230326230190718975985612470235865005420759825248981990750391891653803249502601693723058314817314752430435942498914879189062802634091227267353344853777985327688970919047616726158528835140603525270885199292171330705785763874939374555940096761537521778280116269037726529191898962034412615988106321682532064438164061291711721200955674738391672229623555746124390155990544883291922626441625687126870485003449211415757614315487883822624493825719072052822435654030668643394952786639919319782619662128890293170809150693354760936306950387796483806500970877125842074421149971698556158998979194478765137505785362724536521780662897775073271570349854774716789029566639583511119977254308821083008391958719703001636037548232031811034519634199719570801626375425606969661834362972690706622306143131863618919611611331684184951612964799463540815516628864531220105617962381014438462014132524685102641379341166219197666604435554339672608390029334249856059230477254301604859689878161532425234889479927499568040575087891985961584656399688277050582480803752624440992284265581071965313962147422223415350770031361866522902424919924273397522322011973008959689104985405447427697563805962622690878847643676551937568195199630442280909200247196597798141122997611309966894840654703043061615428405289846055561052774316709454797654256999443292015615151270411776840247262990518468739384403174909227786713746504877565400352618233613582209691595165920231003029947026121379832699551547943004528250404116178992299479111764121739926937741658202028350242619203155795357710192869502646054359241180066807823341749833422352511940395786903578680997957355566463481892044109235356638053216250587339612730165179209152696307741603539343614876508656958944166875931028197227920508421300606989032768124813643408829145069353500784269002833896928900367663065196212569113708251495269206413073002057234260061434794784184662076337424740196523490639302966223377308206402287040880954039448992072602375593027578381867271119555903626438180369441026989560997022402685189290570563411576345663453530920891783644912706551465214527451609570926960198193514825042308309332402085693823257373246556197838050799209823678391489644132121190325383719305126121435120543467213802491720844572406756078389118361442061721992106093241887871539065311934562423143050595975813896800145932726803699031531485898178421841408627035413921123405714063724233441623052011460053724335454408580478491527383560537008329841944194087857728942894299212890556411184890127988174242713094173250224649989776184995844482431963338771360641700505758811206260192138903546125859345154561817568409731473384201495189375815899601208752575627603329500301183188095642910921486792993649140874263226672138684915224129903291462932026823734909566257903206428045338516755725663359215964328298369067971544894914414428445736613121471652577292832283872251912278185033318457537523118138892169104687301120253329343303322817674447909206656325018838874991783124527795687803251857087877108213218921717542299137029990346340824319822001818143016950158675647723184551735160193539741180681625549863346929218974279363836831228620901500847632960271542055409234721977487555773727712535843792997336755041353900992196260754601770478320092090000437030477206239693112361996923069451921228075128062610903396080855119939922036257664560584547489298456610516437763230204762933488331366455334573480473571567444997734717821981579221392629435661485332563525738007537342458569627322644329253912185483500847187261537611935992117554494692228751722095340217149673323008543031277343008442170392235658052374699781195238474449333837385774851142922374622522039346757212327850661052691327977306346288737262224195846716672022151680829100052670223641519224265227407760046197949668504424149290330375261532475565300931531455774156078548884372041571406008765192252807613311400021517609289824898629450626479863972781208733447929847854531512329334051406847255746928922648626315035477092571914420142218588780257279128331177982212336807793116875865477713999462395439860019227782171404451158779337645825217591991088192383005166331028283723613412721407224623795391293388364187992283155329932894879874861538613915230746891741006626186077722679134871363221475165685084419917806948619922954601934089370819232141926382775337591945703264502363043475687173452958399553670973947311374513943329230819779112222693972545912493837982312660709638222596701900838145328629046106065868563209780150854223392314848110590617385229862052817896049500732570427222020393613638247958310354325985507262140340985962778923260172168955987503032882817680409468520938864033636523649442857653338109795334202587523066099473777919233748340996405620837330431676710875929826666843546700959970485895374841511522145022499454415283865780292349285301765856291013881441726693837902070500341910121386791346354652287481407153382029019192351467212923568382751000173948051792235759103106294117826715838186378195464884312297363020759072949613132264235519236084910264998474188701812740398720306793583123154828787803868672076345498495199113445099124424731050592372272527668320660348538056734851263693194665299251629026264658941634139609150972187236402755002697010923888386832494142125712048869645658296361609865368598837883902802070607029639962089291692420117564629219239271784144386609444841530713275382741805124756047008456141960786049544859255813071615271768187109610492401702864624451063869927990313298023938322923078600246111212562537492992069623605549739779337090550915924106159958074626476930706146547336572953880108465930773709264393270961733589798755133298517353358057619242982037560717396495121026056824215353943220657878065433368166837918392543102962997862558313815084290292433460414642850633182078026674085750429654935395449486518527564708814351323195973497899171415169373256924488338933162833896451848870322639893055689451839191243082932515654023675385004309455227522986219363499245993079956068968446618745989474882341366408518853219367311437589463565702142223037174148120127262829192460573318578392273347952606800413122404444690695700343265791095617342284655138302877708170928004370327924752644557620090294898701726471822893276178823467995953896680114028668705263367060063042612994608494999248563827559906026477765219702537583064118146128754387609857828996342210595022534150439826096187609835292491652316543316977214412517700380390215981379748913202929277554387117033911632248075246572497296231247925065093517943567483811431528641333029089123777146612469044864551164926799346341556211882281756423024059251169489544428168314140490438057886059010737006718298499365040749470278557386272032710842602732695690092526412015558094691371012984255290544957645064575600374031494587908210547355911363990672780648145919170925364338706971477366524778443386302556983881025898793095019713128407089187196967493940026571940572215929254958688345786698103181835949381027193116152515301740904031945172383224596330526786264210007457363367992557264614352971498884605529190782295721345692646383479217594057805130367348879544947334464560679667691925627826799049420036288069900260352216652526648809722467212129461678228224742717834105358584909381808439257820769671226221556492524464101160066383911818308730856354226721501721889134911144340742316720185801592584409683941721845529247030666331743969920320999137230793920870633268149502702418363237393557565948355925986434275852715303647534674601181623121808611137993248354514822898630625369332793747372640469312673759260653401997300907614262122865011585689448208037142836120485831617475039077128760465033612361352243121492612049114096204585829225543574900902717114310056202779664273282036840883514218997367661285154174170155926205596692954335533849886870232490206106445807169228633433918553944346597418310331545329102591303606469263226668797794557349045467488232753173759959372322731037104452113311533828930424773972419572744011654192648484315564894048921358055708557627558495534889191385643791638342408939602209788019587504761416457873926538434431980873515751667496820037915379610297349443210947607327004636334366125907117926038296577650489266983399682005284642342068544946993038712496466424858116044200046669339857416855517298369829263584910492674717933844683250433844717587252699366862337570798586379951176474378774221029593262173881717992112564926896076654905036475301128460597199864223972784339196777403895823191755732599419379008549282598066076789269949854843333553305204429781468642262154639070566780479389131776519220499357616638821963223572241387592708048818728755477834305533714162429159181440724910183373607258613130585839379636913731605046386537876927116199765683527896039165412211971231637064638435087505880465755319672008048106320831182153795613800989272353559526093637000645317080644202888377266908268009424750615773653069536999464734442641799088072365892735691623899636517578076237318613662803000677595254569830359350209310340106654882387605906309667152580927431902701805651077417965996417788950664060278847170680779275557035102223714730679500650960753805342639275982026154071272137856032274328861680241733894597905050321379748466149030953017402300954957526179588992766983609703142914084804583842017705933308727898829210653986085497841770226800199431723125607279669350927793784616738081453471081329376345219647441631933117869064998248237276162056150244439447232337910696089278396885603267436594476132436686239105834352637258702655272723546810973613675379988543402247829732195892796473847079849851417285386752779230658409174320605010991022389298189386457216041689492340208559404805928097988871990753899448362457591817958726478548243687178428051181657010359994896167564581441177435999419281557415640541980940777060781817873278088392351665272981172947045182489488694025397849704040125785017092828525229480032644855398293395410250493410544461435613045371236961682202427087546803225777224676453869928306917358463290996597892708572413606852947228418998881119769492577756734731492045418824993538607544859284383273493160249445830184005201100597121122488189926014090339058430141050559807188444154763356093389292859558270335638391892072441156624136346793755416738908930918686080312637892309129166075500989808404308928677173868768493062385333509150410600038306016394885368792106123894105743940346062401637185484252177169287754516397600255050226439611525994294308693498690746297837599701612950308438036606600589226585293056392887886695846678487572600253291839307185472610120143531812300826282453907565263848166284306712414091535928932301737357772231705454533185733039863611629092807965140007625802958683252113035625213499854006783299290057981002626637678051720624754016353702521682187355287204019963596188736069347306728409608128864989292912816545218524083282791281849386363527220300859827544599898999583511157436878788812704855717381485740929230780362942048594206443341579016938395968153358527750878157439719243227798831706054634005330969611599293954373203941299551771974092493728193869104247191680745755805413172816833655379652759510402582937660092946937948476305024368669308749861291151557902990891475114714361655097781089168915938904322861163098089929561601543654239707131733987625561383933492789060574714538169156926488201510262147218325034091656245429296935311732839683741755506978877246043985562610853373740287709972880476114915778576510475290891138178092976546922207217132541594679780555957405449532558779284323247504820257296107211930542720344543111901843929826515998329511924254995688662924512061554435485187784337602284573185525530203857806799642333473943289299325507976814317493529036535523570833622729540297603622459678702246796108729006536915811032977241127193009687184631712015310872022829121678513683286828899841006308305969973295124018343792808075866877889849930160437727540275895229293668539226751399282371615964473732982701750908375680274466691591111497799446679302113569108892437919930942472130807308198426259314434796579085670082562885883611446330706901910636068593039951853870417106238568043241122994069976976521718948993497188045038643217598286433134023273173503448930475527937834864131041994965955257706690456718435502156201896727939734268216256860859224881131666473419305429891013875712757048305145943663609924661062720112440987239997104207565439150686310201357598460146793063026511990342986506396760006966879582828924339782590587485678262692633034683723321240661577602951565930737226106822903836613368341504999895934280932018654247036073590765608162195997593438201724618076958179308834722127150399123937330805981643494623136717495999946304211763818147830191021334473569265625880571093091644687984556617203758742814909984339304652393122000356442486502802002210387238150855436080610859538931017427853246549792311015101812667413846629462674003407290924306775649178579342775165295098460009862829311198651935014863141311338234081864181019598887229593585603437224236723960151462789656548533533174007493121984242601360667355298407544025731777149540219275487625663663209795134838923239847309342827299390954931392262868525828037625710408140414070921533779824712193346482520718387853744500723852593605676595762209314402194519247929124130758546485918127845559512533948537732743954653252016862250537285001304537240004693154744479074597825102944479047597268994937537469280893311554355051420516123636834410073498429947070865931634872826168261194995444598888503596079143671119639139320911200954133512885508992493392853794766561649317159254527588534790680348593042101431778577117245113741846243215533722405654121494232234673410032864093189237227571473170380930584666114105286653492921570438437193875825489184989446589748921123980435592536931949190865890669173908088675009132330542665482077157364025208162483016589873036086598083796157673641179320736273466976156665392134829345642399129280785997987881520429221519091416907854973618725169309999132293217000674997233515576579514366474702374876614964404926134860829976097836260492782317388949792246852097932275995080498826972392495765987223064695118767799160549567269969085152582265295227385885439302173427479323557439187441137663399412859483123438484881279457601367100667616597439589632554530670816842945121140993241221200910866698998915001020556924848523722554213107166139198282765742981882917518337208417523869676932582805910231519925312801445377221647436825950860888636443467208040799574561042901019656088083930982879326160616049121636045869086222897375645574135743071591089367242331664477332829682418831492171649497251493270119493690567095296152704329196175641010185140596083954221011253004320324477290450956867286869283797932889944533473254078320054283548804513088741363193695581682874607904656694590040744288418738123256769969329716469267998695588605208063729838321123862468120288170434815581406294988306263459334499888403865260593307374223073857866400023774153128859094551257535393369408694442939407522182847100107766580951275670201933147754082982594365539007779061803003710403019109218529328478241165518909228702901240416004521493170939332577536081634208565523320144384538895834220684171388239953227063563872426113302172360887531969248201193337906522275084815465360634684320835251951083321606843173343658468059130157408787018229598765822830020933442528355669320450198198817145826117159840001172323248462236802337849839057195842083394188330250004109335026003788342211483673054749609677924297044999837994790440543497108962658967669130028499096038606304693362400933379790920357551625516664005711218771723903001503960954051845816999386430449804010399161286593933747449558276066834824890933733862926698964697053174156089229666242891438192737235672603030501103415979338015039075941159915617925116562289244176755772026392710897852605994713153357004590483012453586022457093397716058212332185295875822030519372890200177343206194287342147523788608300702997965315568103011287992934058939183387796470067520270368877240584066436919090287438763388209714580101749510134645840281278011319341681398978065090074076746422096389980453326207651496082597745227584239041345026846186168145795337175993424622683030636661453659920280300843252851498178817712725738675355028513383679230567432436869620272756934390495694721422424679884360411922631691556788276484222391196274036714598974144543180061688629337635629344397525481610920180628944206508650886517438844517440293615708910665305181913440835241738539089529473393451269090022881476173592405472755741008722118602480706552734785464670810033252880494872818846476645138934671948464700273983663967869110872249068944525449930136135982302100966496626582497907417933026044796169347467896121763047354709410590547677874362769811146481959467653953313260216045188056852012381853835993593482509055867304816958939312668888710724516375807869185298046443759849390149864088672912156151469350544934968003927753771628002844461708872834613320160278469351417103718981359285654440473889353364342252995359350630671486435758226615070847224212139574905881236472608079566539182107806975919196272996137682505271993510168013501825936503904314892374222182997294359105047665101984354967715836390356050902744094547376200935208662551895379897398695524944209452836893729162255864458818572322005097340211242024270133813809750639353870736878622413461626607614186589036757567280494685139294924694749767044828627850379939428327879122093543329713975438436447227794195248300533133083265941268165481431836724185190716453711839456188537671861935514634510098763556103968824034693227431638685638936692078262878666463162305865623208034467033224148969356584429086201191797751836078981178470876262961531940034781546405063456598584539593367839204717781619693571151978159915334832397561116212221045289683087138354599880658578013548593749042639560201729578681154935894079887899895278594495312912475824817137108859096914070619330361800303323891913216840242371178559419359479381751226153735529282048462011908783557824107679589872826483801883630605162587458132380717021270793600311601599319566532110559086844637230112193935288299328435695606597198930148418941924696514195047131936100362091384684087143678688323812487187380582217796916687267705286949172329692975741293715765031048619362498264996394254251535522789265581765932812281351990499862833891769509864987093885286522464162414980093639133604809416167206933424250017253335902412245206966274283806079157097461019323432744228427903009219936471678197965979059549127210553864472407600831000588081819072447870343657454279475046660211686153282079365936704228315767741097870656528899580921512079009106248893864651748603366304880883858583654754195906393665290169607959866719791951547267539998847762188847851073660556792237455158009612734637037295470996414936748954403570700509795971249707914989405750420165030739210083757394132816578085719802851130424796134519368450427776366605487057390164979963880067492763356999017421424708604276336870153889542554486051966156093691145707431101267836061897633765408595584416739699898991714686664840902419001493111173462062958230778937070579486764638556758721099513646830997771609454655720168122853937767374099428303951557494531692065829371037145204582775357833798271161575355475475959880902888250015132690306218375355881522800804994621992693723139514759007671504441201028640422323467572146522255433374645407695544296373365183294408114816553112937331788856853449362565109233822325088751970064021785626240504392039311551274241981278661180457520379039374135226382150021077213050240662418300286247765591111413089474976417044276328777473666951415296279729893754736229019636223154363191418417996968962803592775061551398755785367266353781400817153183187933147980937631663073541838249854774614347582122035033039491346267250843739731331346134971878652215484795211328069377558974510020324872979223925689275374902704259866856149040537528450466261442642599122957699498459561693788866129342741521686045369508582771055380684247063968607781328993106285511287995439433670099191520888937961445556457442279253309475103278639998286086647782469776693646959682093306304832523027286162884091859380402107585750595233549174517563505589431674912911708620738469600487897826391090562573959948749249597993810110901916146590802074849626393582792650583647676708383011968855505051861579809721852980782027546790938277735284594885548642095718480957735502641837966220105606201767241016475961823177144419881009610279479383776081962562468208545749937593917557725550439016442709090994033368202101818918809431446872511944883993847607261064289476377050838168092847287045308547161072786663101220366887582906462496532944215040426089938560795596028483768115833106563981887154102229185636375546808614676806062617591254751326265896334165709386626511726817054930109406586302669220422989483023764432367142194636490032001891029510553731974203939993873038094287078665529147692881385645878149664779808233148266402166554846713406240185971412175424409787938812771828778534134383738258099537774555668639030970006149284077302470091720199524620624539198585923719389345074239998517182249542889513234350318233448378831929595533487901099211718992253652942936533625825993905390946552963581374497293699746511875338537487094217708081745701742251604090438846121574124452850202939137983903699911389696734778804970420888639312843891579868614995357206376948214920930628125131228080499392966626255322428383991735202566745252299084099463258646834111304208458988032414287824148608262105774993934753300377060215168255421685888255205289137193877249869082025393362940473047505009970440709469358919939469900533478304463581196491048316381606807432397475188737745048539320801189209217620032541285900192129395850780087801080961218699721567278787836037834285050223359104738610037900336819582153479531242033219293963791186979738109328501036782788060812745282883103918315704414803727152691119589138273502062661678813939767389300589434987192627542175867837758616929115641969549780500502717441482142253177166456489762559439398758267643094912605529285775355652731149295608791108215961940175702492044626207794680537769554416379093992384442862707600133588293722905895613531099244879237739700126380103906210362971005400902332662052868940055129238893654007663966398392572450824496898926245992439438450876557890902818985683433451099619638409401911643767059605484195253505687872305206791620579739800869587500465611961545040162976777009654701852894024334977644679496028037224229231209258155238064515073175826397848971659561076294495873794568519845906940309369134973227024282382935848347620097279573203973908244049026524593739625729544911772960859885910979404983191619192371557431477730561327586503018671287922333999409221062679094625850811692827966923817237994058551276299352386088317714689728571559104796911352900853677375489955124718689039574466000484795401447940680288223208242567018451147545838594639977604121232182945120720779081768233151618455421959874974455899407015119927062360518963407353934875640953156034070693595825760816676955874920982404806665275624551923294082003251452941755396468271902352195763796378975941750521586754201928536559666201450456338552783571256940971205128227519609295390924578418855401271282860622031840304162523045733499198620336839418549191744319410281417027468348053312363654640800952279867998081678614387670229917642042193577030302889240633823371194118831666892347256653147154261973692488185677444236830676285808035577667085249394327267591827130580282941204744986831092388451839656929128269141358022850879202638155759445885778391763041538247774502736300479413967685689590574290775328240318388741953284725057582369989841855736097379347926210756480012760660056894144856289529627036503340728499245707682166060043085192144993994615927401867906702492509188084254975382941550005736411527656278820683168374561361164661059452960987647876178106573256994413006960404412757484809416590815431525219147593078104140991804367706639566726344353562456193564075135654672716790941187948848094178680923093832873822500428513086155646738231344891197653033059034948850709043640855117089681596818853941855596836776708287592695900122268130634079052180831417534288387501316529218766333357431437101016347799419665888361886988349983289811640070259655020476119906884593064118801374335280937951098305220586575519094202553313247393551842157260882310168318176409724179664282170553923573318235997210559146758099096015712942154536259146573583451080849769670807172669437183081249664139285293242058148352262744693758585695716879422034502237757777835981585809545667455462729794730797569320508562640503528302556722866775444828408620994239813897930370925326425964038534996170546386083723031489481001371999013197012628010849698683279080599942452507493775423599997878374465778371237535757852677710638143561367890794737247924261815992801915542369425358409224109269519498675837014008069125945944555925467047320392800470111600155954170202879503592920194267703968601134563044492333977435455716545727149517353452904622158776693210397256540533868239130580966942700212123248311387049072616349881777525063398803735283044137885040535291419573448626221480332949544889428890854507924805426837419406691885551675721662211092089973185266767829352661329042761712071734330023494295258919537355747509268743152936342844964077178567399584381489421046285181038496434277355192443854011943005600364091860906598300233736845914995840144499012936937258939528898348115564558106103079454580475669431465048935767852752111834079945987442056755069846162829748169274340319574481121269219891324355031983794320546644424960963633748486558714369342400084268306946647268678216054307605555515711301054996369421412943301452860567154928145035636088579354204498831255719599558707858336533055121083928499841126847905712979434220246550138708205244749272341919503603039394603476770851534725433807691354302103233118270994105254394357316371791899608133844403673509209111063173376587401600018697304252984202448885270331725146924974753943693198235035252261761609438480970535124570875131868926737005074427741207097904073463122620529000639189437929099033196435333533778277303380095643552023728118934142222131638412466218762656292621316537474409594382305454016919059121029833254873844314996900817917666244456257105500140603668001332495809064102834877943916419356471430409550576380385738522098716167959104852220807083954438166529535008774606811360273082489440856626139286677283717030323783233467164064186510599162481767070634565314676407449265899040024929433894412034766548273034152265790423510131092975678304848136329763976322746732729909893927449638572144129084944287064480704661630671832626973018955052261750367044376560638608975474809199526394403536046543998237739443561902465026931295891402221059887340881632225625868617445324411589493035550997748247415150737341194794445733373556527627418519164245146201049878262945368950884462321176358003511841835926759864297128139853944584144690969171907995167404678189358750274435035511807996777624987062847592913272616884488849391411289446745320572483591623606741616344638801312351161263321415735073587378908986460331910104790495108805327694472436343801953205313641343554593647041984399732731928183025760085767530258321696714646834358840039142944803707242670826017616253390298986715267562219813060352959484464640403968856006481766109033056079065039449876896844673169485434389183689353793341689876461040506024109359855532664312999759390263679696925137694509369261591022851172165414889215726223597736677014639845855210470747638897225490221795578347385363008945119334378988748156802769759994951212544157027137649027751507877994910956148957426227398794033221282579452532457845619552714971773748923110717580044852610875339714409334236416700073947476053387663802542958694533552936913034769868990613336245908473538052999169523740650576570393490154739065565289258081944696284945401221392455111987603807405660994105231164360192568472205328510725875883708878783540746177976015317309455495005829381247505250302170023610957367090784022351162225972381301444079847918133032105443244311027194569791005913738093483775863613997719436720065592456993814702761918466612118042961718665283106957766092945743771615983151245936172801039016365520466193709252512536313965592011778214276801942804765865348581589458747031199267709791335049110720516524324623125383157448751295415603552750263679614546109344416853578194590273138996999546867343518103443255259516930023300505925727997815904820223589052604792034825075042171946073455466425312528525947844068421333789797245599838145290249134127724342450971795118644615062815283929461865023721292643684081326894231693151888189538526818004763103077803899244121518719858272225449899967794628751458791602397076666044133305940017725196828827618138902540142141154032221880752214931387303943894946383863488048858725731296054402267540119444344271239556902379071500713861064198583888795688054863351729464808444644724813277238595610521301309101510626429327631624722285985257102637159462999401322655051880494654657398980037754421846299791933040060517616187986026555760768914956796240330209203533823006419857512946612805490876812649998662968202160083935774256923900145096765518968300114985803950066246338616802255069467687075912748319753000145540601541198078411349482946568060170741821944826942029145919311797294425352394685139331011218688316780023266376919519389893049565596364430499826362332222131737958633752729015980267946962438208490894364283124967962162500163529966893044625845804167249071090414279544743227764055860644979470993774815979061292220293061983352618004261179665496758054829018106894737221612026571626304363530228294711293372450839435343709678543243805831288950527866356571712880369852845487149507985624665557793170507947290289986859714364593077973507014015227544766934198239263898929453534319021801693875850287786879702049473616823197351992807669758651276064682383916960148671115009603845938820051061526646256272708637399471594740257718107230896204362641552557152127904583542959059101205185086051998335829520276445242512357735153947561451329122133578341196718707585660635000297664587218996568468098354225556797699786152958316206574329476073721099684406194608527521399720774602837961829406778265980996983586608974386510365624255625084235494773545630151219711116732833655070583247917273565142769410984986357066618802528434536119774234900016041947809135980658253251047772348737585884666978580299992241973665041155119628160047321576507005166289845399479963791941447196127536849638484184078353921949516076075298476708413827460440301770757999666767568612594803610514003917168172567805013897837186583796897615017209848060227215120876367111635529356196130402092948173964185286936047265139668755630400875358568683131412868609228255512422695956799303502490113667709369482403499037484587419891089018945705198578124784403575786713931970855498938099970654105791690209598897494839873844727261372435180656164993163897351119703310393978040928094799734337726502122497143409823782365948419658928862792232779903941820506856983767116623772151441202276633794917374373422831797279401193745399485049057971446171836025673221405521946218628591454389656234024894537981195596496870707302186078051319394860946785284844420212843249930715413564423079386272526585208492269484399394853053527270682335863948608948717057740751697385212021062895941771607925413069913460814382463286693523126590734303668095385956084509488167393229096542828854097863778722182590727434195646611659593408713448120299579604000576414684856384194899208402583268552123795496248911586260094009876541358587061925113653719481486085710770837602097237465949095531144030733949423484486152523722666253172090816226940002112275918342552982816899719687610143851919491901289880742428052835555332523257154858756144775201194680111550944054296573101936215959187582194822094927475615307833480300854994330873982134027070003112858879279673962736609207126971151381953771554641063949337455584919631691755255599189224089797833124273545384179602784595898647060095284180866467711094641599494843150009597494702207595874936960934892351315530879522675319228875193269056992695901124280084378089794955802237272111281427715809215786190314382328222158431197363867972722768495813632814701827652361699870949638316548057146175201779780107490052009862225386713437898798488104450302717738606821067182348566610329497815984091857149084770741257737215296236289514281939493449231002475529468768814228268826338199210705094980314822969078127068502360967952456156317625378443908683885454717662505486886145388589401906509184101949958852088336961298773167275269197562386427609513694583842618521833895705186413263202522931391348380829500128796433881362984553904237312857385590062328719791590912181710334920882873657259600675103451691730395014840664773124728536498697032255058028512103145813971655005402199912584671247522962330479476204174835950273396512933884625986054669020687274310798920093600862996258526495569263422443490758898712075405572399503177888983747400628311035989363975368314316379155350844599499815179035719166459579726405356357962285295042323209995625290729565968625666476118217436889365526584209735880483823563270384629174104274634032764950504424721791963389233300452352920028757301356303821117289713316943637220617508581520290849724636905569506676289218426265178197651953852464303642562032129591608958533598154070650245252165708822643889695532095070330712386017719942697998742711966035304852835818441460854913450644431713086666567324744794322805473950839137606275818904283656586598954664885617098590233571893647110221915544801416081086328652657202503739509477965869802896975687596956655171572997817414912551945083377949744669806026864318152342292431677632695105101550537467770920415647646247512496723011428848395397060605607246531422732188958383550139850224798951106163823494536612899404093559178092658682360641984947863949273925514675962185564843402871639984241659512640792243204992151935270942749255097209837640554799507636962370089615853142082854978064406575694610795134012428301167709175408804880626657504874497001006448172817033718571687699052050431269126758942354642951442632192681612607135255937799846876848766637463737084830913023031875975519252439917826264027996616369515709436911253008628435029788667148387735570095408509510925426723708716285087204991001466660693435254395169681324227750520412084311778362086425913741403701893905849130885307671803377759779815450406004508428951716926539549424241734396825797942963322331213218107801293219793602750388852631045872578879049933017249518937169929033635452907496514640560912754875288157487485046656478815713364324270157712065088264725709195191545293554151064551035094710720178800179246413597213842994871045977552798427450697742656414883406830952008092305464626038948326722396040624646594574202522108428812826688967527898024346826557896265626637979521453689109293468920924841097023571316275330238902076986731432584276094818388124585758734014097068671895229561813112229470021978448241581544509819889152942428906934660562607956566439433934279983588235711675952375116329255621499470951835223312458109131586557735917584703694148488150386326409866052441608994421429524372446731857685405261645960803590461604594774723205628789108869923420195755264555491518628810370985595256289818492084536281760741755782246663879072604677554834517443481890496880563765032503535926271374514952698862405482956247369333449623309027391137081058407123726554039444066616546669812794016117438031442549527583611313870018005106422250474212674953997075909715271031416553633477320054963549146671949925664377195281135196471224844213383344829914740191692970978273304820965702365744166216404138597571994011075505481952938356750975367702086214802247690575931284579612052010606527221595997455895639292741610135447771486609530272222807878919031049330486064234888941265365091980468047266792907970770229050202576713844368458156395314829002226658722453892420758678126480742598431037231448350739349163285687087989353089830355384383950953207970780150899316677212153557850476824480668120600816092524900550656068820053943975294042977799777399533095481218233882815997862843934489379186155563845847942592989490543845037369764733322568524240216019595349044724016399444925891545222094738197285735608141629442012082969234213675190569210533735923778160066953556687636414636657904357378244366516685104935195776579079193354900542453748362582641051684378644502959536918358983964405685936888263686371050276878385312777705665995603001572358237147154721905671426014336895377966468436491439499957272215058042899218100989507993449442141990214468925539286769175103982467582463953873438052397350830280687187344606418762993203121704070483046129164263198208628507869517290189970014349539289682624417807819162644171950445075766685632424567458175518591360435999585745988250355384667413282095404525370108050902351148404819530588806416040823552351294128140484544881037085694262600027163923010086954103721424248429126495719569873219052427563394901622464546259347456703005672837508467249825279836734959542617708983651654782788942618610518327692085036036217800339152493371484445501415791162505068909107138295437580224465050986098688327677971183257939187162167678835622419886753868393157565897768652016394528273954488674406517875660068949821735574807444325577590692736378481805133570962701897152058909708119862005229545767934991330405828456720358566472410588945530875223646183843964025960112548528766088662848307636012895467006667228026700036149423026125416550458296169931638437058296750705322926910916119674936127372916312954705863688479052509527351543806222193273002895992407939074438573669093529492586894401073422178024370779548152816124253190882271732715433823740147454362184333256802959940771301498332370451096996545320274533595490702177037070611381910516358803074747708198082653195105524034346189080408772855887102619129910922959955050882251819205851887441986348625188245665450780329536348102634843303083724181136556278301939101618359551174032238450979146875216238771442392232324557636410797470012553983247122601905304886666493332284863295529053808683517096435404402568667911688444342169402517726916720054236587952458648729193194196398370591955308346595565457374554274722525638720491964846804561216346755578001839114580507202910409177461978829659554048612355528726975520004238203818320764255364096320893392454496759815230921518947305019785351001529995555735305428112836484236594743595960959569801620275302395941995334462820826497923607942188680411060241955658741508575194580615688808343018541253781954596974142367787418706672158427522319352770701887762803039557233740286266042073050523785203542104257724425591404270087490764352482693868107163766930730372723741795581754245852247735758270295996649854102311510138743237047991591787902994485501682558654515388125485742955954146042912012322855614889532717717240122627994410826869139972987438255681581112623873262610426424919560914673031393240789967378614329041420844114674153516742689733703219069028747706020088422190321251655295618911717385674777311366153734391751962707954921617093780054340457873789689579406584026092226706663974956270647461914851144652443807415205521286862020067172326368471796723154915335949245342892887485931766429563699362096734074977450530705684314101332632877759213057623147008743738450762603058757749787324207140695646513617994956945601081928431937367328417989351895954235197022893472976977104975358649956731850469509956587396628013953152473360674595746536734225096595010987669623734140606839350348198382718211868440601769566157656025470113953735726783452694559607917709449717272346947334367803872237757479168689555204136215395678014282548673776952837038414279340044001305689783556227986071360705966044685334333224708199605172761956852201080667106523795019070974937418216335299386518917007788988347636092361880526906006408280797134349569978942759592887202610785155541123973730460975923178834688072538351059080021866044902897911896725936795705521396472906857973507367571821697403667069896134578745061097120350147956537516416615312164732544167957189277507245943628192382562336298103756532891328239232227250679417094691318566996226763008474933294929572377248202516805506663161990345780050296216095097127831349754974849708075014692861779720539208773557395735426344654046917507878362978303712221263449953760458706825466567329277539722860367819247326075875375957403639605557551524704479046892790074174408099162153535237955159316825039170841157338947214833770587899575369541534827316071703023202492909454665531205525012632253174142737294089358232313041403596709104925795761838352019535775111030301893738736672956883475900280466901502804156922062794107897682809626966101213957774881195563119677798046812493064783740531627476062834586847164594382436775342760826955765323442760539578399712987080520898985614420659347221575351357313531509643256863269976011816768872330904784738782610895798300271876502608262925233194476909940416700264006555597136991814669791135677806574510572964711963826958043806989602338811353072149858536870862858717892687962978016089416393630120941635523027773429963015269581343577512504135198341187362058334547311853807457268433720690522085625501050610093794285614047418455995822117933927270859725115288005694028053614114492402092462087948741836224854453701673479359020150069908958394711195009547716996064515693409809576087230611679859305447424945855927637542655079098507826227452419584428056419619579470161814101885939670292884088175071326949126451479245871388347220957012545376287115495856135844710131132320149549094464014760003023763285717139536547149001355586963306925811264047920053172958680921179128700967881389373295949068769162309178222864353334059339679160242893274844466315594574856119587320451783064649166224181324629576750918590298833323065514502362940434740549255611764221609388471173495881895740719985035273669869338669851702573938066023027910628085352549353166194585293885401347619818297958990192702699755397627097213320775214288831363827940377954810436396846216952494822984432296896920853359590553085317409539710027448732528352757362479458012780445503610606455857803573626252556360647734905686395918324600588264572996728670647068819718804899591820953876986724126105812313371883281538730532406351716959204883731863483194487855245340213105960543269787362789902736235815268667728648413763217540668998973489593826118601800293600223626158849590389381838347815021647310891383695373808683164369908798085930128373595942876220600536227587287679465791680576358143240925305502388654829492572512760977104308414241327149223959501455502491538011651570107259919660889103344587780201842019868725579834858927941157916548984180796559596981652924400286000892833089959846125154134736412475537056580724960733728968639565510344975858300171895978013929340815934657740749168731401990382842771226233324460588756739838593500769513118556316845738386959855512292940803068422036256724591811386063504801552261670635649642867323459656693799243587293291166889599498393642069797039019159319455970361259262706370837171360797222924483897365994926322185943095293445596001705400945927487032843519938814026708591528949635950763638073234705346230932441509575691850480891957960117391916531000241571429356686909706755384850261080407434064574263428325221102071034503745383407217199602272860930797090878640274037560341962032609518023331944660470439348005406358691029418314381980766263696039229201519626745478890548730085334220881597403289253567824780457234485556638842993651785938154287147960434705407762504079807108683257127209659524702809312984905979030619675080599444217988506983161096380439605185757349320897027921443393913428290098389029276009981034971675340055350266575485135820698171894317396066521873727270386652434205926968399585877165807536293049174582102753301267023622273305213709274757549960727540322486653632392842887880718119434477544394315746337377421905144626384014838452230601326365027889608451471704790583180583489408569494249944151554838633423772040699601933580313753449760284449951541090196091381560664132329431053540356633498250090053413621495974752980282398461972836700621058461397781582746961076579826017847296576463958941877424963316958842283911915905656402281934968017581638401394292081420889611204546902994637652059988197831754480127119965562213173244271608021931664460718450670245160461201179796126382723921134833943879896290584017968636094325530065062888973239251361632702390752395982653489399468961306580594876864627514109406499311534198732172991431259100977718868694557124444935828613812597646375519614134279845737620234356256898312253042059021490709996741603215467075388165029658639915531513429055133396151653248308850347019549055674484101032187658995675839455823828688310814186283547319475525274711575402961654348046617748038786859837871569491342785308294728873541204319023209059529543286106613269760762669269617611352114662527698412773408524191382685828095507583757875182944195381669964759338058109744197040887696188832525737438561825911089750196431479372572070809405896055397098285800445563078599861108297845198039961998823094162509868026351628228075608165070483489644168361836594632976919733266450443327026529644073329620608359487129720563680362999226922055550219361313094392925616898258938095311543481328951849165428725496216286351978103023730034903799179307688612204532651318101381689879195678466786614433105801438125991279962214158876671702906759990712229281727452785443191763775186488544690552141829475460755373456060855634649623203961766709575287454949012046603519646368735772929742823475054967865445927360627608989246978241890796241366910300926678191303055919511695693178319754079624033842110466446524045818686393260964635303347112962592131543695714422067237270190321612831636606835353591402798852609531474419767057640109075306047213869626570676654997265613995625908185085303045559284076141246522180996543530716318507488647893313715980401996271058010242554171356618961206011069761203387121769536277481470240462879594479656892916665615162911773962869461849461776831663594528511716414008796109655867194211638165457893559437474165960191040265069965379629608910884905409088076624223624452531328521785687211710750728725802437027495835664624563513977205964796307873476721370969778743722222285444150516258147590016001034987342164287379415209172808743852870687452963199675850634623615656838065684685866591288392993987491928045097599357621915303453396402416281637564579632337985969012829274187962762503806403057998223939350958921995278510291646380478329362091927804077150496331873006891785738178253793126532269564298480575057043385936993433934560449623259372433043576671477116963464262056671619377737577018204936159782065517759604455742714015958506242086143202210279470032864409749635985311949339722052560172438067839808063019803303871401082373702021780239991965948474208100416246313996369989387267812969837139653343697806394667642860024152824873785639412927935383607707608300750085468836963768496834473813800019480999463927939725480926175571232307228799147294996278293181211799953119139336829638914217080039171083920399625324657124267114807621873238886630273263260510227485587685824829962737856396390375020526294883169608949012916313726348858049819248754553524887326239439367504501654768934020682145964085655661710507751194373805894134256960413139475819197066823026324234090244505409588341087688988058369641001905800856199491033238845013313960419454688283590614806279170274255056983630386819040807698607465096428844236776170546226084543972221940355420265203310445526900704688277458214569663667446999428841734711964348070234795179430778361527574001167542381049782265169967932701790991325359692564131021203176759602639644679551086925989193605152931611639993790605221621826257344736334202630750572642522552550069625037213396458053244844653771497170577712173855502140364109117838972141797635473176486099732370208765716623286273964664066666525224448442370474312602701940529325392038812456116783922607147800119571847504556116152503849647482208269186674529500194547955474267031195338846336750475341192430517289055830639606427300931789903396489713439315840591610085863938221382022717081924757782100150391638486660170908139091359533406190146269964904240956805262401070564777661840736519965983120159148619124791045328208490037696235790452049281474819650448465817268742916011125678009811772691222090702378514866112437144591984668576309473751209424335200496514650532973912516708301825542971302260674660980052603919627557983895090692431900473756401836074549348965259101794475577162863150554887610286729181867586476644478659627827294039993209905335496913847574304229653035802668200501835248565151703420994311072603747508216434958854143210457355741980118294006516384590796547831309473009929939541827181805997731995522537656235226168798804828472031495890625696894424278407617965519747852121117086752944603670533555703336195269940643523308190957437080465607841235006193415649510049656973317383620400422734437891578965349586115919181358972444956070703223227828015791485580886632670092496570423420313927164689630137056221855039903462294679176978329701524127573584580130897595258639855021546965836770509007033290797558326525697330992519942335234267432452628783434878039320990147869741317281125499659644590427779736912668770753379381052959792195600945196472452145664478112940888425973995022893156732096604890035956531488181813352488448698694800612536474277550005042040462103442555588086621442523793246458966161308670915261439688781633677349695124090077391672641409412421645618536462085838052194808988737746349662285140004397923506702424670667069730792355322976556684570476290256322597831961833397249154695255251496633514347973072505898539350344143010372769330828701075552612213237948915324248501547845700977456836739966457064624532316783427160599513253350384476461804529889100892576142364568920937121623357779190101698529665746507433133940386055838356051252991146475251049740083923818804095246656978219067500774512734041374696669485989032430384217737576080925883639849428524916612397421340306639968399457315314592189561854297369966741639291274586602149193256062908354788945387058909910287768426344909242758195382277154455075508282079668848836009388575040713380643144643510663577254200107215128214873801278325521947726666964351963995138896690976645324332723557684264153138097822980463213153774625235404290603580170561927446884847759849178086967074554983296585195346162001081254224267667244659198500373724670009453141832851380224433867264250159569671759211414749624518491204720646756094059335988791797905900136748853864506869620656149908349682257856896721134556483957272889037685647348587027874709244378417015400337456982748232469221776707380599850755861967366871378718683096809676558370216611140772207852210640268269888730728960516843783520367402250033012949674220879972807335520332084982518794763661742905528375912856416497413728193651143325413215966544797508896759663784405834138448245573385931223675087756917458077706663761431383703360433458674650157199994935709967626314983135394760109974600000537658144945733267458610633049321502973839393544273709938641506048173139677381076058253094394198785753236572332304795924957505802346554857601740783004076489467682586409510388096784374399269553415069260955209966849636219609754199025668927300183039884115526354875841019186258565195967989499175436701377526296212355626089075981447245106345316843742039269634125122549425532446603922385419680492180254748828765753640669566568544990494814915280503825352855646720044252289431463574597056054132196811134776183459143500680409751657893967117854851652292067783571075255139531452823122246077432648578021968247106967125824905495325200298011874329803856098208474987810516242573853621749468345607944013868042729683597372177995976134849268369259049454472854534855547672855092626966333515439531919926209022290117916596840354053205354155732396286587788501001210509448364369355456565298702510427337311270368643270185393046968522986390184984977908527046638100741060641993467683487921490182379262315357767600452539830948834995319686297315673811035767138095060268988103260660443176435502995330743512178353637422630730894118909833411996876386055152202496844393942530531427282384519772446016604039958354727913725799487690563099638920470629968837605056521820542134579977355489353836803365282076081251489436246900174250148369489103249786394191149689600540230621618556990861024673154864609880202781073473737770491883439815296069606171715477091558045396909147213794488630702751062591007953739995139486174490302297892181523395588210157649640209459194090016969106116587411111980734335103381902040120299293240314432987716472194187589256763459232199092290155723939692372888607136940617761645093456715228049982747509278302635993198163991685562604495679935194832038447096933965009899853801126586133337947755213032889161978793373276844741328316215382135050223298247951985584969425306440627327567040485421579537173343830136579227169765815254227253190269172158356347906550143393229695211845457743373186545271855941021062294882520434730878381222298316872357783733734451559948232923392696969578929447998242009493926642707394323274713200971603475707441072850307963039075727028380502095916175969750700050166277924293181245052386723996858519317795903884046755651332557582149431535179594987901759399698954018699586162066971538933325756001809207795785012715852501324370267983815321683151058802737455893996998225165079655680674055293358041645869285231652892506244103450725475174669695766475991206556847983177970088386244416469541919134116638313595094269840789705549465807294598318386546217752106311455104336335369701617757305037406342920891277502236209418309382037942049430183256488151462174731495312272496651940332697026694654817482534172522912474970511461616005428188054035419894723457255907901419851829814814599027140970351432660710262296349194812593421453378987245830976048618886695851303907291733920772256896098365209129704793114821797475064465597613403875759224022396034735708491833781121498925829532335444378531833361017497053721712707556161914380532726602449486684750343807525183922459239571783023471419022350350380794112727970674872895040023080474072245560012476207315992125045788619133864990339126851472433091060855943660562489707486764753301033636598577489631546413465281763741261581100781736701249544796541160122490093946034993397080999402392749438135040080294489916879393667610867550354692386570894147039461647784558930701189503601970969684300781588665329135620556891697251578127543955416215195210530013133622187193814571974435467846369710798831874133330551292210015747304782227473543623380608200983366453685586892563315746920243151683123497110672977314170507985368300211465536273578120633869732468790648595875816722867648874376546504490483805971265180229732111795405654379446150420215634066456080621749083449296578888295379303504726086216823201549713984933606588503695960666607613634125466771426576696693825333353829686677801855476375874137561497408597141683629386444454372825282127596573341880697804038637562432135935333827691436403187220519444882699899971586780437905031726519533324288476168006516298029907502324788344342406567828812886076963740649602563079716156567675052037053083913616628392164184509828446743051228444239833464130153027392175042011926614572797175082813903767336357639254460529716017653757738989469139770671718421230296681287204971364532552899308971864012330523226054081611387889253194878617232763152748020476997010841422239979291101028956919632942809719332770835352538903514318588286319374292654222129276285260042254539799810059553667839998923929180915097203877736140092815308194078606647484238225957635285178492414744484368434252066821565966919769728805736972167036215635512499443612266893305803948045462775097887356727161237582571383913941087243195519516053379722651555589253551826979714756066893173531053191521229835917302302675839274164931422439389744310087449197231962224480737158524947552758284137168733885684513971935717435137665104895239029017063092712264684066972492783483998862859594239679364564173558718401990187572546346067620706262789623220348053718363517946919725087763851991107837936690226478961426528198994989440958364692651443165658212471792078920335140593667897262849401779896529798150547543580317758562255869061012302340109361295535357635843299746307928840816702972733667889701281459588474281994287498661437711859701046078611831222856749469131900448256430282620072489728787525394397901252203517990670108864444173332942703850477762959484381499099891262534888002247011268597293866059437662227036508267221232223515725503765038540952531017575868733835311996936024166003965092807973027438071375470484844568868489196872123109819909873074795320541401039597361969675230524421640561900529731674275993979137268686278535430551791257504715766018492371822393484939196929539449988380196572662503697325175749403311969597941172125762371383165114796260557917844027818812255383408963982704978907257430443973303341179108109059950541712207737379747750303681258203099584411948679998579401117139332423952627036199734927063772417033978111333238271568277342014790547261654340193226714421801961053370502633374273190455197358794871348524986266822221111131891445576221042289834739034998125977811080901318642567088910367429803973604913636514213249820339892382623311457754007631638251268666848503158411111411558864267907213460409229737170507459824720702455243140352011956531392458331009142536349587897907439371365970955272555666600702497382028391007459462466313074544675113059937775120411928055649729151234915055327810229864306084053764409973989174443107699871727600381516344286065218306921009179927941709319362942477458068173353359701759893289740603148532015687697915652124189670040309591727757081603018694597140799824436333287543192214073599695297416268303856595845208956554977810132745394340864386526954140660420525015130837808664572997492569037617974209300281616225031870030327371448605125164072390070088238239068114739958043555903512412218232982743669743777890385385862391814781588353258137893191305164723901590515007329258274620428914392667534952154942997442409278561294142586937295146893142705444227000932416109334447817626188849164416925608135907757944738974562060159240401206337499895425291163409524485314231824745868679213510269662875170521064607847049746669746154518814151035167349815783088805062902524727849132883585857196877031633009755390490488456644897468897478824842250422741076906915478241586198518421957909459139269455393497074170826012991361372933199089961974824476112702770438892717017234886176319636850246720826698760848197526515117846839743308317260487854039749033294278644360911489762879741302033675392689318594580161832917944010095832498058750645836641276952997502859826577033300623458265495553231665323056373735121952849214896392942381059559822709275997303299473975175056874498728129347026066244776158346661704916269757179758724292911418797507487821715334199745268059752573225600314170463422031897578207730237386246978504165097975844527164585220435513975928752950895465297532806626969434499014880200418118642039774220404270266955446032990925495943520252796488734580054345846975484945297535391583792911305703761773663375795239771087393379547332118548790619268542240083953610368779755899152210452106502003800518083477093161510544129726850899664228246448977642323194767560243809769463197560016887760572567989369280086502487446760824545957501328381000122974730565399913766112760678583451295975780303840502530416631173982221137922074743939663003407049607643288219873398773338028597936098215354659758591007243170971570609710596868869066479067951508101151970513635751636112075963738637573858499983786497595305790304439430129504109743783727473215821070222676757039661418608774439690962477761429826812572551976082073821062914291792898257797002330749298885823539931935639425268061948642067083324510468170670405549761213418765164192197761886802958921872436739129792967021700260470795407599880696538294706826294750079997622091780545010872131836710302140341239939886741014047291317644420908011091980352443211333653582852718976328432623672503700241162594822559744880831760673701548562891186654465504563052137790450573281851201979764966540943027004974463254612122414112832936643794032198447927665610927170763559401220553590244673070797653784068108916048402263161316537882261306234764932281552291952234092518396017149557062533930191906745976697189900776543585394537305708587673393775225561887590862665572607148136026843048094633781089487053329767533469315286522818485015039938003366387897338934112884345773523321999762575438761947829060841049231797680869792726685650177178453576014440687171686900952806803431893356304270972778706508863333729703100159976932022324797004101814946764613369688447909453611490174462989749323003758025319176955052416250065528429770611437307622654208268221345946753703366218421816566443477572096300136885151459679472036012139399463297716114541444682752648661586756681602323921704745125701348659061643086005885568792084783360624630419584977264174708303366065330053420620428368631888832426681603517521400746402690075876108947946351508449596179773000501827708966824263274755293913446482687560096276222425072962721883787469558539680869873126892374897741269813501287025948529870938537227129950556301593716628582188659160520740380572603304513197216792914977577186756305293557276882390292266219730580487311401175308133892170118618011733725143663530875657342089776941704807219335988747973642686198794102854212952941043654806166646656095350681267986083772342685220697771587747745045440859724123572813629395024877213229181447460352824090500401017736626986417021816703518977818974670512042796054366627945217494148564864034233759590549060136096930916841062916367946892321891209779912740195170618038721228430708796077311372544130605417298995054837882772704666386419113779886974063297807767999608103275565628709067701614858118516715255720673109259432660248555938871841243042256167746151978108389728834242258914850508472905176061899777583007065652520847408208842173373910767398114880773332209782165889114100515854223884063672865672508971288503845294031629188371445378786613054000917050111154718597834363558310332072119813348586311534236019202937183043526169084401955004814506589376871523847124185820978470564413530487420515614512086668096886553647307014517115558399645835678003490949039327445144117799169785379631033825445061267296629820768928347383482756376171383960793925089382875193889083742482839533422597866640130058887766579178359774040670750177108719391145784682542500121104011567813812956625725510917646978703659677805799613086282001150125167924849476048498842037333939543468668590235457523095407381530411679788591919640339500823221212203194858219244347552933753017393518181466920530067683549832608976267360301197897845855487527030732200353241223910296706648167195592545322134782497402500270274805998168376214118183979038760834879258098138151661604146420807520205374549580130513552975387831795560660953452750289995284309791525995863149779903125995926852386759975764413602257604706511987193235262649108130193591599676247754297920054683329136080933231845309103266426957027363688615868419863558986966216126369423462698706529516460979336590889776309436953289214971802597126310791986342343368337985427815924375361059523136767058842514729794686692596225562333882544491533895148078035316009623627236262932109383812134429259616897760712961096597953285812638563528406918707269095087199084875880597680615434384983307862237329950538595446528725800917979638482163952476186691942844092020325285863597342736521084177924065337699487091904006536284002657991029797780858816942811241986780321267661190821206876943902568983185502950735813628332588132934978756119965797980647703233546013593301573718699852759527884015523130446664670070445701673747302944778425837971339579979981023419274301141663356310472002062303466720043473633620918607406379387410837798372659102262266281669800836817461450888105867940209169623707026722707855670246696621523592324890655654114232165300123066831598018137095011751649747417707710478671144231270308259649702806523097265225953502609376032046418104012825980270297152909966301797287496716078187386434604365603126009130801990559134496982430598104481214223239199803883233051748761776106038024224869336078269834879905318712019365657188113798828547000366180337646164198048080056211065665713544573803557216270206698706659611630266928133512859723422734740435504503018436615980570597586025918972971762937820758515214366300584413754353015287363863937559202494019912296147831205339806902040215249571623751771392074048121632069561687837440675142766118193570409262254428125724467479356698079902240001616279356999773793622293288995109667188147254724474423324508328161135885062617781347522637980874166893067961890698173854262071168345202086617225540215131520301426153635292417624887240193843284709809314533568553211634603241191096900498066163653704830044010118129186561089746980695576919135851555938398103791589067981878573696873349166531702934832744826234967893671344072677226840840390785044733709169016981119483417492844768576605582389499762665707260959172810261123708822042404896741798176105971216524341899812876973254051835763906896752464304945981403996019833681862821705860733720146993569728500023185154135798136999413002897984546387206092599165675004257455772138558216066238188184326085590864884230577290245837981454833271946592218906082255771930310244284508802380411824587454595405991187938986652434677760671624119815186100101040907349130306713696907321594348481297454532146506161170158707923782677675224366356639191998166042731264289021440187347592854707425670344996917675233598478138865565705899983318601234615036475938981717115860385697047892499359044412797604188982091303483302149530678261969030240608250991840949624111719818475019366825471966844473398515303878500511069790200649735354559385757078833367688924611079346271444198199802729030596670946542694668000365572482505385372657003464552984375485605766436548468959198703255509982008590937420980486241309926743237286356117618097163687365885258754292899868407066740913105233311691399821017590611779084055504104097301267508771676860043264047173173087489445795368280651668288418809763876898227751677225401507003933693798837135823136755015852875240337553986870947839756157946308525991462120723982385609522922010241942264365500964372816212365929564921203419310855804805792520705609707331100361087259824733655124436397417268775153220654225639339142498791922029924304015135326183042516398217599879940327198257706306529601965946603316609193225213978517420275604532822558009110705570160851977806571014316301211982688091255806498603094804914667610772074550263450695615815328307044196446264440197895304167380833292389827465451537251333168403315256389658947110087988118295323646800461339453767014912177042821942828505066298282188463050880409783570115326654916255249526385096275796749475771603492347359628017615562674390623303982947004453811940952869755093858067970266114568484484630899149431515248817802441697409989060390843944189830502530473572469373056161853793406882946014254022114233731397240857449458623776193225518556891103646398317684070516003606140643570811847797770405995641200104601413000890788089377595295745047655039053183599983214685455407570254194453588172823021718408734015606594770669821729663865913212771651925166629124216009833260824045564181828242071555930414128479212381485951448399656715057646027136104073454888170722718008398342968140120396622375240917625930501196457437538992864618902187410750169415517307487965557943412213401983586194571111414514347679110508738584379543228146239251032152517806102200298506117151152292468440623369836709270892264532410781786234930020364861529930701368469705066369587621303871918496736262861287731353098377721316622088806901178452231994936532272443177479044080521012426828275776057685207211032353363551733983822284658538557907259299765849786886901193452927464227525558504878241741596277439272695086300373919729839324328096423320985806746974551157236703879559324457584531226002395645186342413700109861502651950965098401276333828196736597643559400008983705072192268375625342457964215208141538140352834232745745282188653984199845402774412225452294226541450102462883885257064639199041273858637472377197018166150155930655258049842024490929824495350132778095325642634262634327989951686692296919787694623076382134287918534016638265898436138981055665067401063420828539478180020453642269679016347991779681426970196243141837017933239208206984496391145686534357517893702466426959525960065432609160427090327733412487937622089785456943184741943459845106203974665551472056170610194612226866815969048383942904309928316773541444293722192576392177792342298463773397148488181910169982018278621131812845363263984386215655096776531988541783185586741582390043053984745117073737286728018823354578530695996778806741796430097938413254054481238083190305865408515322785429848313542837423537587216882363220550706527064952513569636752121046320641843223935637795209989654547200198496968351074307701939884197870709476949874864200855470745726706021712740956692665431438337769024013142985078999775677872417957135722306063230523856351476313255726446759773377698628417509403393812169214267359851638646235434020669430635075139402744288976582370030756493010657345186982126947578850411919613610460998523431644074153374395772435885256502313780947543195773054518785207209863861162273043345329587547485512985373383279722191850350478718978842492871068961821089941715867761208380151618886514540012858597164630139854644965160551493822792834449083767432819892114291043106111086869216552792079820164932937458134215076598555118784892767382548793511783235161120855178410837621175281500785185477818607679428641484323323319109985672668500329341289140458582044315576107787857625774238384899315723739598381106078124677863585568996529857736884524094252870459643592076057934668432414532559635624874882117912081839703478464175492914224861998588816983583681912923190240717129570007687463345058546053618974136529114874878826670127663175041210072985903157810889243766403677309117553090409281711961362105392341387334225937678768526257135122434134824499860243786331885276827537431049035445524214357136931385640290400065699362536817799187855871844730770582598612974350574866412708465442603847274453318352984893683898897808289018623074484047084490852849403039434986229554638527408547590152688160003747725228117811611574237139819507406741753431841463505443424383574519863924861158088003960668343940190898737819244040021983228452076515479211369255074787416583660242218546298641946430775152186135581519887540463551761409590543738570052501358093904859672162021606984416156907877986516840681274143766140911181396310855991516614810795445153249599213668254996327123735625684147454143129866312060488195654935028235797994376777571835665900690204179933690917282410490623132712442494160142851698670962807790636038335841419927091542276842581774992219930572580325951237712012994424840701227968679444986873418067925826579349589147678883789154409326316567006088947310932561056198803086054865208774564545249869748535315405011168124284749579043721594155394367029071257786536897542289496401161850244371314084346398700354358064772127114350431362548438660924361550031965108550050907158337041502556889102458400418193352987102521244984571676792556822180232663962315709645890796869949413734326211814954738978562488217201055829872789845333331365484894508887856751904044595926531952158119244898113529022134550383565982719369493176598736578186760047007731691816455034194766774380181590333099302566595666806010250926530115150160622468616987438971930902143214170400219145772685840786520972216809806340340974308690729882230975195198310029861269875704890817788276877579611783302232901846001907160874768423152240507743607793306997142082661884079404698769258063274247275041565742546714723309962603957286538590552888005911222577468976219282389040655521371987797494522321276833845155145768466112776688207883475885860064886573576316527556999411910834661445618679878068127494633928642736615115589122408685970789270075033942198758365359734300410695592267610355330599398791059176312793511629714079606501253293619401366506307941570050211188043581494533791320858732548430463988065963575445347023689576407547704415571493176867930227775311988218483730191178628930694011158935995129881748299120530681295519298249382721477955410129443773451756425117165262161669991858356468746493579240998827724551332802362936675709907697852514226641191193585434501374096079376005086552834228065726478022042988306130795169963953324761662289154668469409691451525256341542697672709654289236696840319253509490673849884509020297243180912312701825519513834600293788217620776766147017910569870953277066003084161810592065898857486560051483952184824992543254856132508585197436417072553803196406928071563221322173345451876615575988652639031833939656842002946070111912900374032234397670106259189549411081661777562192162312113709031399887719951093000601030071533334529015978893587985958847841800525379600879834711092657875489541907538610698886220189959789540593437873947063842367677502183369288728660527834544522024058057113629600759746651977988971111263096946950342384651053143366709511076068629058782907882208713346420036439036633298098850085139890378149631661885771080663125580443242076986475122165823616208346814841408315252753960506270666965263098911902593848744034126606357473771924725215165229394066955245342248129991832656594423759120559882004728989264204206707422287275907409713982157237963214549916729673080286486448406832219033684902698992971020099893204118657870251785918357505527033476887756385854627396075099761474005721928981829667262012031145826098948158553826922251013825611025429443067962436400899781005440067802134276707642549925936710102284674866989522594117529405166755581862694175059399711537675399665098330161573697092270055730969595564927238518259896757875534178887526397885559646244749232640748216285423380363359493748995268060167541421978835090237398971057687503281918259052125331849318306100702202678580527851563024324195553938565711330622522462341479989871144793257899373626522022284579923034601177104157440941246819729500291141398676155035259981948073529899391545285811182229818156494479275635533223506290496237602188857729408189351450563943338935339776554599006340866555282658136000816463334525449484505955566705163107708872505206626022560573629214451674721138990186016916293005420512420641555527240194558735950975262553372909389990752880852423425526878962326127459902355757808171530910245963535539481476277196916419842611182758862589058043661548756206816374340800476099030164419843802937341468286777176160414285412606425641580937439615912924271363136731776124458993385917990477306113329884665524574828349252311945870699891238106008382022702659856257633391903367294000126429069905996683842381794361274698665931896190453222232936031663296014943687182809327430491523893225625519111499067300753148128807206426842226981136185520154479808760107287609450269249454061487952597780986360069669990710137781412349002068691983892641537672255176874951520401488303120411302022780645964589480587137799679908688734939187037982143916720645908696518972256916985099903102030966573633018772157910787814264457256199097411584185877699635635291576611517161175561912146377213801136522636271278503521453330658424042719346991057080561805642862699883193272737246850808063725345867743143564713432991361084587114567017680602415639911987452403858336379398356339349445950307144276942139216593351516100280682600186217108027589909163454699122460226985867174542310977297306019504557502121786672926863366512580710505001747213369207269807192779991306330129190334291822013011713020686124637361536176394805561122679035959983458207368030321560508366409914166915464026087260506651984907574962129633119204608642470105996627520406799085211118873939526222171799151839456743584366250259407567787455206883177021018226392892933319946189556214339398753777418233490776991638559935400871935321557810634349264692166801973069587793471722254480791181111963926392764800123517729917571927478830578397113669060645525433191903222891936095497184324910090454066272923850274056338385485999180188268149435843645843980262611116171765842816097957652506787611795116323992635170032619534150929750991905534048866409658351916597949193508634882192615981448436924375455651122041948055268230753324769740889920472778743545235927210880405262583536868919931984460989716084467426367359168005528478634062691271721799213171756061677171463475561619807884390311358477716426051047474576636143832085499367219745739979786652992227750353980618914088883859093213743752720336230257877956104729285638608513091577846496000873633392039923104897781691990454837211576932614722101693733956770865691376111086915327835405568948605071082295424899240918055808095852840667352878148038653802146646757143896547580860434512955393551309586932110862993111992506058399394249657601065749524026449463655244424073059903652849089666480404679455176056890276317171919926876872772574890336567177856382321653056921291150503264128157327075011383551978930940891074880342610999270882741413711940912309437167869613636072477657104623486150406068547046457718789166038214014347509730992853691031108440796955045623775381198275521595213650187756339707354395801204719660195128825105450331739929051621634109051819226052554631226435532259295747572882001626270808236042444590358136199045960449167599304037553727206181988999514777161493276079799935405323179303743527584995426817187213747300025933561536993119211112926163891621846956695620335649705965093323716885518784203330418075030665055606251741605052629932331664091925223825887095521890288129575052171165597917130825340460843307977465476881666919681447689799333284839179217767764271032151745244795073588076328905416731603181192610241700381775659611825654152518993409679876026163430172783703279617329250813470476548576560590107276735213854598276892987332975832994469935853656599192720272312841968966632593594772667223500113719502646730844926286095985262052240952182235999362003147069826977926672250423655929192492054350354442390940880576201050465309269773134941085727997638993701130492797398655841989887658332015933439610468750796352017847298731730440842726696584060961805465469938563193025050149598884019250855963188092332801473038791291957958251012920437765334741089180758072471299397240276166629686262222231660704487522921471507146159607733512382721669154552729130788761367040033447994071052077005942899727117736591924299132120809706489631255884391194426424834555020727461522672099256449941565283467989949066034174136847615577313440734698003798042141226713203724653210732173573760491932062799425564676654903913028689978015277912027247510532924595527398642066245295718008680915733555397019651293994310048323147041350494293596511826572404982044313975670314705370985061314615599154596790803820633271129944705397643894613068335246691567644480584790531856264957839354546836297097508864072557823669299065081299457064320767425390436885713810940745855659674181134810267297801287659770581626728457561593281266064575994632869835675416943733517186915449429803953280956253296717647427841921710549638534142832198621486189529947679148304004542302437244624942769588188513047879480515092402218472726874326028962048598568318074375299481486290992133913992180695380744363471106230210202399080166428312197903931088989028681277449139877816994901236963493538379048337388616497398864240856403886001217356037125663028241932844139371526035502553659950006846913799512533015708816931761980595766096113281453624863814374708137609973392793407138710218356099514437946559576321085972638056113173862779961866282810658000636060566965160500275463200064283833990047995206861062158978013591870802388375768955791117132702187191386124460922850946621788009123566467142528459953813168832334386170263454531063573268617141732682521099271958324907832321928980485122982303379378592699549722693195895033354126067763684519202799011294351329008525896049061348176846124481858634526732494412995539503370242895528566745576377654831303915449072417446990333489630103269608512640536887822212146215219956942382509078188940264353675156891044885683292128360258157480099845832054876530840824256135089359722999576031858838858038358185664412153867087676012483101046308447443218801447909336747468844785641481744590995891245398103230088592063710156358756516430959611273964015861769781314087950737142883177604366898196269959413475006971940565195045505167742397940196899862527890085237445807328867069741773963572545060985423499605678985204250732286070942026394841828669256606166544407204577568393932312265407812478316668801803018996142250452005355186868485055845308525384975426120579430535330807477508264960885294455727850034413955899962379335051184030225298706162915059642259996005856489572336531798691366969944278665789125256846260414799639811086568557173907213307893310852590333311371858772870349262790271567329168662716674908199318258316996468328285001575707801611931692219315147549377551598046540928399910949374201037170856086058817854490059965704104136040435137642468998152680609255401123465329504349180537477356166667104692983095678920316482099666393173922124840551203478063211131681337322406321645541558823784609194273808850283831236226654974430996705580998982995742584323537642986314656350552835604770907574732826367704396309792346562979493445664139968960851464371303932136774212470904452721540687921542630642597260292018994655298115142612604900763867199694173023572727683904155972345066669386646058829201247114417883178223482153389187605836327618181943322997076955531125819048475174629056200134689964407161982320543471846110205113155509302268251074919901496089971178562605108859036584745150376384915134000329516399106219240557283008103521761979616832213981692408399725763955621165712611219290508716325525855864961663825419359148218187619592329205699550637645818268557997352211527870118029943354674153627620774978540541333031363354236824101084647637490638852798414900764649974697648540094796358954975461448137636970591635699836811987525054793069353207570766780148447701424716299754190816682249007420711186488154772891718653596776539579933503342728214605416964960098470697958559264997630428703636647130713147823306115764199132224206460998988307626858360555274099047846761076042417842159977062851755735299964786255295428367429870664579433758010140740211618614484329765744263428528704778556399780830963143527878304194501970294657577773281674685808745393160393725331589928057943463140873586086177997988263349277461511849116551306818467136773488233410851364039479392088768863363394613823583447940815699980610914293877347138934237736191096460564244474779082076049660271356168954106444832136598082938909729699811891211834291490616389638610693752089534688398334446718982124347807238740745769755450743684674713502998248588183996655681963445288119418331726368250506118649003941255205745712036035578025141904352671837219983921384829905803224695842432315898443251039654435350535432292167470407786146848597625574461535118800399841430569954927847167454497269761283933251838197222328360707522781292813010656941262948730634268837338998518174217060864754827639424239140275321804295190341163517046980742335155605785756245099925320178749969986366404734770389855873065076038709977318431281098978988208543559550943253902371895216820233442455725799875307879263398550901645594237339662522335164875058955694217297244895998825089232112034795894154654603998803787861759157166139886932687374968473054965329378214756481057938082853005324470805065692942234001099989593482946145390788906616264021501307353300331920745637263770770999399922886212243248802062634850888599903036010723436890136064275814252839878594917997961121963797576519245218670960880921371119775000878159999130430729344883930957574159241375285977797291893453850508038319867745900251865791723708085741642971539992807884060713068680361982419715774763895072534684045691927595319372237022290155800656076047385473599099934477996748749969769427137668695533195125337764098587096683863263926164945608684140374568420719405950999470174303546918215090046649399855174138938519757312156826162286223188109672974760601302833119371611409995874727067625585677751199566674861519649129701933180849941096181392964927893609021253544332737506426099966242994120327362558244174983450947309453436615907284163193683075719798068231535737155571816122156787999793642501388711702327555577930226678580319993081083057630765233205074001393909580790163771762925928379998648747901772741256781905555621805048767469911408399779193765423206233747173247033697633579258915152699990315614033321272849194418437150696552087542450598956787961303311646283996346460422090106105779458151100001000110002